  Comment installer un serveur FTP securise
  Christopher Klaus <cklaus@shadow.net>
  26 Juillet 94

  Ce  document pourra interesser tous ceux qui envisagent d'installer un
  serveur FTP anonyme sur leur systeme  Linux.  Ecrit  par   Christopher
  Klaus,  il  est  poste  regulierement  dans  le  groupes  de nouvelles
  comp.security.misc  sous  le  titre  ``computer-security/anonymous-ftp
  FAQ''.   Traduction et adaptation par Michel Billaud <billaud@labri.u-
  bordeaux.fr> (Septembre 1995).

  11..  IInnttrroodduuccttiioonn

  Ce qui suit est une liste  de  questions-reponses  sur  l'installation
  d'un serveur FTP securise.

  Il  est  bien  connu que les serveurs FTP sont utilises pour effectuer
  des transferts illegaux de fichiers.  Un  serveur  FTP  mal  configure
  offre   beaucoup d'opportunites d'acces a des pirates. Enfin, beaucoup
  de serveurs presentent des breches de securite.

  Cette FAQ (liste de questions frequentes) est destinee a  limiter  les
  degats  en donnant aux administrateurs une liste de points a controler
  pour s'assurer que leur serveur FTP  est  bien  configure,  et  qu'ils
  possedent bien la derniere version du demon FTP.

  22..  LLiissttee ddee qquueessttiioonnss--rreeppoonnsseess

  Le texte est organise comme suit :

  1. Description generale de l'installation d'un serveur de FTP anonyme

  2. Installation d'un serveur FTP securise a racine deplacee

  3. Informations specifiques au systeme d'exploitation et suggestions

  4. Ou obtenir d'autres demons FTP.

  5. Comment savoir si votre serveur FTP anonyme est securise

  6. Archie

  22..11..   DDeessccrriippttiioonn  ggeenneerraallee  ddee  ll''iinnssttaallllaattiioonn  dd''uunn  sseerrvveeuurr ddee FFTTPP
  aannoonnyymmee

  Comment installer un ftp anonyme securise  ?

  LLiisseezz ttoouutteess lleess nnootteess eett ttoouuss lleess aavveerrttiisssseemmeennttss !!

  1. Ajoutez  un  nouvel  utilisateur ftp dans /etc/passwd.  Utilisez un
     groupe ordinaire. Le repertoire d'accueil de cet  utilisateur  sera
     ~ftp,  ce  sera  la  racine  de l'arborescence que les utilisateurs
     anonymes verront.

     Utilisez un mot de  passe  et  un  shell  invalides  pour  plus  de
     securite.  Cette ligne du fichier passwd ressemblera a ceci :

     ftp:*:400:400:Anonymous FTP:/home/ftp:/bin/true

  2. Creez  le  repertoire  d'accueil ~ftp, et  donnez-en la propriete a
     root (ppaass aa ftp). Ainsi, les permissions  du  proprietaires  seront
     attribuees  a  root, et les permissions de groupes concerneront les
     utilisateurs anonymes. Mettez les droits  d'acces  de  ~ftp  a  555
     (lecture, pas d'ecriture, execution).

       Certaines pages de manuel recommandent d'attribuer le reper-
       toire ~ftp a l'utilisateur ftp. NNee llee ffaaiitteess ssuurrttoouutt ppaass  si
       vous tenez a la securite de votre systeme.

  3. Creez  le  repertoire ~ftp/bin appartenant a root (groupe wheel par
     exemple),  avec  les  droits  d'acces  111  (pas  de  lecture,  pas
     d'ecriture, execution).

  4. Copiez le programme ls dans  ~ftp/bin. ls appartiendra a root, avec
     les droits 111 (pas de lecture, pas  d'ecriture,  execution).  Vous
     donnerez  les  memes droits a toutes les commandes que vous mettrez
     ulterieurement dans  ~ftp/bin.

  5. Creez le repertoire ~ftp/etc, propriete de  root  avec  les  droits
     111.

  6. Creez  des fichiers passwd et group dans  ~ftp/etc, avec les droits
     444. Le fichier passwd ne devrait contenir que root,  daemon,  uucp
     et  ftp.   Le  fichier  group  contiendra  le  groupe  choisi  pour
     l'utilisateur ftp. Utilisez vos fichiers /etc/passwd et  /etc/group
     comme modeles pour ~ftp/etc/passwd et  ~ftp/etc/group.  Vous pouvez
     changer les noms  d'utilisateurs  dans  ce  fichier,  ils  ne  sont
     utilises  que  par  la  commande ls. Si par exemple les fichiers de
     votre arborescence ~ftp/pub/linux sont  geres  par  un  utilisateur
     balon ayant l'uid 156, vous pouvez mettre la ligne

             linux:*:156:120:Kazik Balon::

  dans  le  fichier   ~ftp/etc/passwd  (independemment de son vrai nom).
  Ne faites figurer que les utilisateurs qui possedent des fichiers dans
  l'arborescence  FTP, (c'est-a-dire root, daemon, ftp...)  et supprimez
  resolument ttoouuss les mots de passe en  les  replacant  par  une  etoile
  ``*''.  Les  lignes  du fichier   ~ftp/etc/passwd ressembleront donc a
  ceci :

          root:*:0:0:Ftp maintainer::
          ftp:*:400:400: Anonymous ftp::

  Pour  plus  de  securite,  vous  pouvez  tout   simplement   supprimer
  ~ftp/etc/passwd  et  ~ftp/etc/group (dans ce cas la commande ``ls -l''
  ne montrera pas les noms des groupes des repertoires). Le demon FTP de
  Wuarchive (et d'autres) se base egalement  sur le contenu des fichiers
  group et passwd : lire la documentation appropriee.

  7. Creez le repertoire ~ftp/pub. Ce repertoire  vous  appartiendra  et
     aura le meme groupe que ftp avec les droits 555. Sur la plupart des
     systemes  (comme  SunOs)  vous  pourrez  donner  les  droits   2555
     (positionnant le bit set-group-id) pour que les fichiers crees dans
     ce repertoire appartiennent au meme groupe.

     Les  fichiers  deposes  dans  ce  repertoire   seront   accessibles
     publiquement.  Vous mettrez les memes droits d'acces 555 a tous les
     sous-repertoires de  ~ftp/pub.

     Ni le repertoire d'accueil  ~ftp, ni aucun de ses  sous-repertoires
     ne  devra  appartenir  a  l'utilisateur ftp (ni aucun fichier nulle
     part ailleurs).  Les demons FTP  modernes  supportent  des  tas  de
     commandes  tres  utiles, comme chmod, qui permettent de modifier de
     l'exterieur  les  droits  d'acces  que  vous  avez   laborieusement
     positionnes. Des options de configurations permettent de desactiver
     ces commandes (ici WuFTP) :

     ___________________________________________________________________
     # all the following default to "yes" for everybody
     delete          no      guest,anonymous         # delete permission?
     overwrite       no      guest,anonymous         # overwrite permission?
     rename          no      guest,anonymous         # rename permission?
     chmod           no      anonymous               # chmod permission?
     umask           no      anonymous               # umask permission?
     ___________________________________________________________________

  8. Si vous voulez que les utilisateurs anonymes puissent  deposer  des
     fichiers, creez le repertoire ~ftp/pub/incoming (proprietaire root,
     droits  733).  Faites  un   ``chmod   +t    ~ftp/pub/incoming   ''.
     Normalement   le  demon  FTP  interdit  aux  utilisateurs  anonymes
     d'ecraser un fichier existant, mais un utilisateur normal  pourrait
     detruire  n'importe  quoi.  En mettant les droits a 1733 ce ne sera
     plus possible. Avec wuftpd vous pouvez configurer le demon pour que
     les fichiers crees le soient avec les droits 600 et appartiennent a
     root (ou tout autre utilisateur).

     Parfois repertoires ``incoming'' sont utilises frauduleusement pour
     echanger  de  fichiers pirates ou pornographiques.  Les fraudeurs y
     creent des sous-repertoires caches precisement  dans  ce  but.   Ca
     aide  un  peu  de  rendre  le repertoire incoming illisible par les
     utilisateurs anonymes.  Avec les serveurs FTP usuels,  on  ne  peut
     pas  empecher  la creation de repertoires dans incoming. Le serveur
     ftp  de  WUarchive  permet  de  limiter  les  depots   a   certains
     repertoires,  et  de  mettre des restrictions sur les noms que l'on
     peut donner aux fichiers, comme par exemple:

     ___________________________________________________________________
     # specify the upload directory information
     upload  /var/spool/ftp  *       no
     upload  /var/spool/ftp  /incoming       yes     ftp     staff   0600    nodirs

     # path filters                                                                                  # path-filter...
     path-filter  anonymous  /etc/msgs/pathmsg  ^[-A-Za-z0-9_\.]*$  ^\.  ^-
     path-filter  guest      /etc/msgs/pathmsg  ^[-A-Za-z0-9_\.]*$  ^\.  ^-
     ___________________________________________________________________

       SSuuggggeessttiioonn : installez votre arborescence FTP  (ou  tout  au
       moins  la  partie  incoming)  dans  un systeme de fichiers a
       part.  Ceci empechera une _a_t_t_a_q_u_e _p_a_r_a_l_y_s_a_n_t_e  consistant  a
       saturer  completement  votre  partition  principale  (via le
       repertoire incoming) avec des cochonneries.
  Si vous avez wuftpd vous pourrez installer quelques  extensions  comme
  la  compression-decompression  _a_u  _v_o_l, ou la creation de fichiers tar
  pour les  arborescences.  Recuperez  les  sources  necessaires  (gzip,
  gnutar,  compress),  compilez-les avec une edition des liens _s_t_a_t_i_q_u_e,
  et editez le  fichier  qui  contient  la  definition  des  conversions
  autorisees.  Le programme /usr/bin/tar est deja lie statiquement. Vous
  prefererez probablement utiliser  GNU-tar  de  toutes  facons.   Garry
  Mills a ecrit le petit programme qui fait ca :

       J'ai  pris compress sur ftp.uu.net, a la racine je crois, et
       je l'ai compile. Pour  tar et compress, j'ai ecrit un  petit
       programme  appele  ``pipe'',  que j'ai lie statiquement. Mon
       fichier  /etc/ftpconversions  ressemble a ceci : (-- Note du
       traducteur:  les  3  lignes  qui ne commencent pas par deux-
       points ou diese sont  la  continuation  de  celles  qui  les
       precedent.   J'ai  du  les tronquer pour des raisons de for-
       mattage.--)

       ____________________________________________________________
       #strip prefix:strip postfix:addon prefix:addon postfix:external command:
       #types:options:description
        :.Z:  :  :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
        :-z:  :  :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
        :  :  :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
        :  :  :.tar:/bin/tar cf - %s:T_REG|T_DIR:O_TAR:TAR
        :  :  :.tar.Z:/bin/pipe /bin/tar cf - %s | /bin/compress -c:T_REG|T_DI
       R:O_COMPRESS|O_TAR:TAR+COMPRESS
        :  :  :.tar:/bin/gtar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
        :  :  :.tar.Z:/bin/gtar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR
       +COMPRESS
        :  :  :.tar.gz:/bin/gtar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TA
       R+GZIP
       ____________________________________________________________

       Voila le programme:

  ____________________________________________________________
  /* pipe.c: exec two commands in a pipe */

  #define NULL (char *)0
  #define MAXA 16

  main(argc, argv) int argc; char *argv[]; {
      char *av1[MAXA], *av2[MAXA];
      int i, n, p[2], cpid;
      i = 0; n = 0;
      while ( ++i < argc && n < MAXA ) {
          if ( *argv[i] == '|' && *(argv[i]+1) == '\0' ) break;
          av1[n++] = argv[i];
      }
      if ( n == 0 ) uexit();
      av1[n] = NULL;
      n = 0;
      while ( ++i < argc && n < MAXA )
        av2[n++] = argv[i];
      if ( n == 0 ) uexit();
      av2[n] = NULL;
      if ( pipe(p) != 0 ) exit(1);
      if ( ( cpid = fork() ) == (-1) ) exit(1);
      else if ( cpid == 0 ) {
          (void)close(p[0]);
          (void)close(1);
          (void)dup(p[1]);
          (void)close(p[1]);
          (void)execv(av1[0], av1);
          _exit(127);
      }
      else {
          (void)close(p[1]);
          (void)close(0);
          (void)dup(p[0]);
          (void)close(p[0]);
          (void)execv(av2[0], av2);
          _exit(127);                                                                   }
      /*NOTREACHED*/
  }

  uexit() {
      (void)write(2, "Usage: pipe <command> | <command>\n", 34);
      exit(1);
  }
  ____________________________________________________________

  9. Autres choses a faire :

  +o  Sous root creez des fichiers .rhosts et .forward vides, appartenant
     a rootn en faisant par exemple

             touch ~ftp/.rhosts ~ftp/.forward
             chmod 400 ~ftp/.rhosts ~ftp/.forward

  +o  Prevoyez  un  alias  de courrier pour que les utilisateurs puissent
     signaler leurs problemes a l'administrateur FTP.

  +o  Si vous montez des disques d'autres machines (ou meme de la  votre)
     dans l'arborescence  ftp, montez-les en lecture seulement. La ligne
     correcte dans /etc/fstab (sur la machine ou tourne ftpd)  ressemble
     a :

     other:/u1/linux /home/ftp/pub/linux nfs ro,noquota,nosuid,intr,bg 1 0

  Ceci   monte   le  disque  de  la  machine  other  sur  le  repertoire
  /home/ftp/pub/linux sans quotas, sans aucun programme a  ``suid''  (on
  ne  sait jamais), interruptible (pour le cas ou other s'arrete), et en
  arriere-plan ``bg'', pour que si vous redemarrez votre  machine  alors
  que  other  est  arrete, elle ne vous bloque pas en reessayant contin-
  uellement de monter  /home/ftp/pub/linux.

  22..22..  IInnssttaallllaattiioonn dd''uunn sseerrvveeuurr FFTTPP sseeccuurriissee aa rraacciinnee ddeeppllaacceeee

       Note  du  traducteur  : Il s'agit la des serveurs ``chrooted
       FTP'', c'est-a-dire qui ne montrent a tous les  utilisateurs
       (pas seulement les anonymes) qu'une sous-arborescence volon-
       tairement limitee, dont la racine  apparente  _n_'_e_s_t  _p_a_s  la
       vraie racine de la hierarchie de fichiers.

  Contribution de   Marcus J. Ranum <mjr@tis.com>.

  Etapes d'installation :

  1. Faites  une  version  de ftpd qui soit liee _s_t_a_t_i_q_u_e_m_e_n_t, et mettez
     dans ~ftp/bin. Assurez-vous que root en est le proprietaire.

  2. Si vous avez besoin de  /bin/ls,  faites-en  une  version  _s_t_a_t_i_q_u_e
     egalement, que vous mettrez dans ~ftp/bin.  Il y a un portage de la
     commande ls de BSD net2 pour SunOs sur ftp.tis.com dans
      pub/firewalls/toolkit/patches/ls.tar.Z . Verifiez que root en  est
     proprietaire.

  3. Remplissez  ~ftp/etc/passwd   ~ftp/etc/group  comme  vous le feriez
     normalement,  mmaaiiss  ssuurrttoouutt  ne  mettez  pas  la  racine  /   comme
     repertoire  d'accueil pour l'utilisateur ftp.  Assurez-vous que ces
     deux fichiers appartiennent a root.

  4. Ecrivez un ``lanceur'' (wrapper) pour  ftpd  et  installez-le  dans
     /etc/inetd.conf.  En  supposant  que  ~ftp  =  /var/ftp, le lanceur
     ressemble a ceci :

     ___________________________________________________________________
     main()
     {
             if(chdir("/var/ftp")) {
                     perror("chdir /var/ftp");
                     exit(1);
             }
             if(chroot("/var/ftp")) {
                     perror("chroot /var/ftp");
                     exit(1);
             }
             /* optional: seteuid(FTPUID); */
             execl("/bin/ftpd","ftpd","-l",(char *)0);
             perror("exec /bin/ftpd");
             exit(1);
     }
     ___________________________________________________________________

  Autres possibilites :

  +o  Vous pouvez utiliser netacl de la boite a outils standard,  ou  des
     ``tcp-wrappers'' pour obtenir le meme resultat.

  +o  Nous   utilisons   netacl   pour   pouvoir   activer/desactiver  le
     confinement pour que quelques machines qui se connectent au service
     FTP nnee ssooiieenntt ppaass confinees des le debut. Ceci rend le transfert de
     fichiers un peu moins penible.

  +o  Vous pouvez aussi modifier les sources de ftpd et enlever tous  les
     appels  a seteuid(). Ceux qui connaissent des trous de securite qui
     permettent de passer root n'y  arriveront  plus.  Detendez-vous  et
     imaginez combien ils vont etre frustres.

  +o  Si  vous  bricolez  les  sources  de  ftpd,  je  vous recommande de
     desactiver un tas d'options dans ftpcmd.y en enlevant  l'indicateur
     ``implemented''.  Ca  ne  sera commode que si votre serveur FTP est
     destine uniquement a la consultation.

  +o  Comme d'habitude, faites un tour dans votre zone FTP,  et  verifiez
     que  les  fichiers ont des droits convenables et que rien ne traine
     qui  puisse etre execute.

  +o  Notez que le fichier /etc/passwd de votre zone FTP  est  maintenant
     completement  separe  de  votre  vrai  /etc/passwd.   Il  y  a  des
     avantages et des inconvenients.

  +o  Certains programmes peuvent ne pas fonctionner, comme syslog, parce
     qu'il n'y a pas de /dev/log. Dans ce cas vous pouvez construire une
     version de ftpd avec une routine syslog() basee sur UDP, ou  encore
     faire  tourner un second syslogd reposant sur le code BSD Net2, qui
     avec l'option -p ~ftp/dev/log gerera un socket _u_n_i_x_-_d_o_m_a_i_n.

       RRaappppeelllleezz--vvoouuss :: si on peut passer root par  une  faille  de
       votre  ftpd,  on  peut  vous  causer  des degats meme sur un
       serveur a arborescence deplacee. Si vous n'avez pas peur  de
       bricoler  du  code,  s'arranger pour faire tourner ftpd sans
       permissions est une tres bonne chose. Vous  pouvez  verifier
       le  bon  fonctionnement  de  votre serveur bricole en vous y
       connectant et (pendant qu'il en est  a  la  chaine  d'invite
       utilisateur)  en  faisant un ps-axu pour voir s'il le tourne
       pas sous root.

  22..33..  IInnffoorrmmaattiioonnss sseecciiffiiqquueess aauu ssyysstteemmee dd''eexxppllooiittaattiioonn eett ssuuggggeessttiioonnss

  22..33..11..  VViieeuuxx ssyysstteemmeess SSVVRR22 eett SSVVRR33,, ......

  Concurrent Real Time UNIX), machines AT&T 3B1 et 3B2 :

  Ces systemes peuvent avoir besoin de dev/tcp.

  ((ddeevv//ttccpp)) Ces implementations de ftpd peuvent requerir un ~ftp/dev/tcp
  en etat de marche pour que le FTP anonyme fonctionne.

  Il  faut  creer un fichier special en mode caracteres avec les nombres
  majeur  et  mineur   convenables.   Les   nombres   convenables   pour
  ~ftp/dev/tcp sont ceux de /dev/tcp.

  ~ftp/dev est un repertoire, et  ~ftp/dev/tcp est un fichier special en
  mode caracteres. Fixez-en le groupe et le  proprietaire  a  root.  Les
  droits  d'acces de ~ftp/dev sont lecture-ecriture-execution pour root,
  et lecture-execution pour le groupe et les autres. Pour  ~ftp/dev/tcp,
  root aura le droit de lire et ecrire, les autres et le groupe le droit
  de lire seulement.

  22..33..22..  HHPPUUXX

  ((FFiicchhiieerrss ddee ttrraaccee)) Si vous utilisez  le  ftpd  de  HP,  la  ligne  de
  /etc/inetd.conf   devrait   lancer   ftpd  -l,  qui  fait  des  traces
  supplementaires.

  22..33..33..  SSuunnOOss

  ((BBiibblliiootthheeqquueess)) Pour que SunOs utilise  ses  bibliotheques  dynamiques
  partagees, suivez ces etapes :

  1. Creez  le  repertoire  ~ftp/usr. Le proprietaire est root, avec les
     droits 555.

  2. Creez le repertoire ~ftp/usr/lib. Le proprietaire  est  root,  avec
     les droits 555.

  3. Copiez  le  chargeur  dynamique ld.so dans  ~ftp/usr/lib pour qu'il
     soit utilisable par ls. ld.so appartient a  root  avec  les  droits
     555.

  4. Copiez  la  version  la plus recente de la bibliotheque X partagee,
     (libc.so.*) dans ~ftp/usr/lib pour qu'elle soit utilisee par ls. La
     copie libc.so.* appartiendra a root avec les droits 555.

     Utilisateurs de 4.1.2 (ou au-dela) : il faut aussi copier
      /usr/lib/libdl.so.* dans ~ftp/lib.

  5. Creez  le  repertoire ~ftp/dev. Proprietaire root et droits d'acces
     111.

  6. Le  chargeur  a  besoin  de  ~ftp/dev/zero.  Placez-vous  dans   le
     repertoire ~ftp/dev et creez-le par la commande :

             mknod zero c 3 12

  transferez-en la propriete a root. Assurez-vous qu'il est lisible.

       AAvveerrttiisssseemmeenntt   aauuxx   nnoovviicceess  ::  N'essayez  pas  de  copier
       /dev/zero dans ~/ftp/dev/zero !!! C'est un fichier sans  fin
       de zeros et il va remplir completement votre partition !

  7. Si  vous  voulez  que  l'heure  locale  s'affiche quand les gens se
     connectent,  creez  le  repertoire  ~ftp/usr/share/lib/zoneinfo  et
     copiez-y /usr/share/lib/zoneinfo/localtime.

  8. Si vous n'aimez pas l'idee de copier vos bibliotheques pour pouvoir
     utiliser le ls de  Sun  qui  est  lie  dynamiquement,  vous  pouvez
     essayer  de  recuperer un ls statique a la place.  Il y en a un sur
     le CD-ROM de distribution de SunOS. Dans ce cas  vous  pouvez  vous
     dispenser des etapes 6 a 8.

     Si vous voulez un autre ls statique, recuperez fileutils de GNU sur
     un serveur d'archives proche et liez-le statiquement.

  ((FFiicchhiieerrss ddee ttrraaccee)) Le demon ftpd standard de Sun enregistre _t_o_u_s  les
  mots de passe. Pour corriger ca, passez le patch :

  101640-03     SunOS 4.1.3: in.ftpd logs password info when -d option is used.

  Dans //eettcc//iinneettdd..ccoonnff trouvez la ligne qui commence par ftp.  La fin de
  la ligne qui devrait  etre  ``in.ftpd'',  remplacez-la  par  ``in.ftpd
  -dl>>. Dans /etc/syslog.conf, ajoutez une ligne

  daemon.*                                        /var/adm/daemonlog

  L'information peut-etre ventilee sur plusieurs fichiers, en faisant :

  daemon.info                                    /var/adm/daemon.info
  daemon.debug                                   /var/adm/daemon.debug
  daemon.err                                     /var/adm/daemon.err

  Attention, l'espace entre les deux colonnes doit contenir au moins une
  tabulation, et pas seulement des espaces, sinon ca ne va pas  marcher.
  Vous  pouvez  mettre  vos  fichiers de traces ou vous voulez. Ensuite,
  creez   les   fichiers   de   traces   (par    exemple    par    touch
  /var/adm/daemonlog).   Pour  finir,  relancez  inetd  et syslogd, soit
  manuellement, soit en demarrant le systeme. Ca devrait fonctionner.

  Si vous n'installez pas le  patch,  assurez-vous  que  le  fichier  de
  traces  appartient bien a root et qu'il a les droits 600, parce que le
  demon ftpd enregistrera absolument tout, y compris les mots  de  passe
  des utilisateurs.

       Pour  des  raisons  de  securite  les  fichiers de traces ne
       doivent etre lisibles que par root : si par erreur un  util-
       isateur  tape  son mot de passe au lieu de son nom, il pour-
       rait etre pirate par quiconque peut lire les traces.

  22..44..  OOuu ssee pprrooccuurreerr dd''aauuttrreess ddeemmoonnss FFTTPP ??

  WWuuaarrcchhiivvee FFTTPP 22..44 - Un demon FTP securise  qui  ameliore  le  controle
  d'acces, les fichiers de traces, les bannieres d'avant-login, et offre
  de nombreuses options de configuration. Par ftp sur ftp.uu.net dans le
  repertoire  /networking/ftp/wuarchive-ftpd.  Verifiez bien le checksum
  pour etre sur d'avoir charge une copie valide.  (AAvveerrttiisssseemmeenntt  :  les
  anciennes  versions  de  Wu-FTP sont tres vulnerables et certaines ont
  des chevaux de Troie.)

                          BSD        SVR4
       File               Checksum   Checksum    MD5 Digital Signature
       -----------------  --------   ---------   --------------------------------
       wu-ftpd-2.4.tar.Z  38213  181  20337 362  cdcb237b71082fa23706429134d8c32e
       patch_2.3-2.4.Z    09291    8  51092  16  5558a04d9da7cdb1113b158aff89be8f

       For DECWRL ftpd, sites can obtain version 5.93 via anonymous FTP
       from gatekeeper.dec.com in the "/pub/misc/vixie" directory.

                          BSD        SVR4
       File               Checksum   Checksum    MD5 Digital Signature
       -----------------  --------   --------- --------------------------------
       ftpd.tar.gz        38443  60  1710 119  ae624eb607b4ee90e318b857e6573500

       For BSDI systems, patch 005 should be applied to version 1.1 of
       the BSD/386 software.  You can obtain the patch file via
       anonymous FTP from ftp.bsdi.com in the "/bsdi/patches-1.1"
       directory.

                          BSD        SVR4
       File               Checksum   Checksum    MD5 Digital Signature
       -----------------  --------   ---------   --------------------------------
       BU110-005          35337 272  54935 543   1f454d4d9d3e1397d1eff0432bd383cf

  Sources dans le domaine public :

     ftp.uu.net            ~ftp/systems/unix/bsd-sources/libexec/ftpd
     gatekeeper.dec.com    ~ftp/pub/DEC/gwtools/ftpd.tar.Z

  22..55..  CCoommmmeenntt ssaavvooiirr ssii vvoottrree sseerrvveeuurr FFTTPP aannoonnyymmee eesstt sseeccuurriissee

  Cette  section  offre  a l'administrateur une petite liste de points a
  verifier pour verifier  que  son  serveur  n'est  pas  trop  facile  a
  fracturer.

  1. Verifiez  que  votre  serveur n'a pas la commande SITE EXEC en vous
     connectant par telnet sur le port 21 et en tapant ``SITE EXEC''. Si
     votre  demon FTP accepte cette commande, verifiez qu'il est dans sa
     version la  plus  recente  (c'est-a-dire  Wu-FTP  2.4).   Dans  les
     versions  plus  anciennes,  la  commande  permet  a  n'importe  qui
     d'executer un shell par le port 21.

  2. Verifiez que personne ne peut se connecter et creer des fichiers et
     des  repertoires  dans  le  repertoire principale. Si n'importe qui
     peut se connecter sous anonymous et creer des fichiers .rhosts,  et
     .forward, l'acces est alors ouvert a tout intrus.

  3. Verifiez  que le repertoire principal nn''aappppaarrttiieenntt ppaass a ftp. Sinon
     un intrus peut faire ``SITE CHMOD 777'' sur le repertoire principal
     et installer des fichiers qui lui donneront immediatement un acces.
     La commande  SITE  CHMOD  devrait  etre  supprimee  parce  que  les
     utilisateurs anonymes n'ont besoin d'aucun privilege particulier.

  4. Verifier  qu'aauuccuunn  fichier  ou  repertoire n'appartient a ftp.  Si
     c'etait le cas, un intrus pourrait les remplacer par un  cheval  de
     Troie.

  5. Il  y  a  plusieurs erreurs dans les vieux demons, il est donc tres
     important de vous assurer que  vous  avez  les  versions  les  plus
     recentes.

  22..66..  AArrcchhiiee

  Recherche  des  programmes  dans  les  sites FTP. Connectez-vous a ces
  sites sous le nom archie ou utilisez un client Archie  pour  un  acces
  plus  rapide. Pour faire ajouter votre site dans la liste des serveurs
  explores par  Archie,  envoyez  un  courrier  electronique  a  archie-
  updates@bunyip.com.

      archie.ac.il               132.65.20.254    (Israel server)
      archie.ans.net             147.225.1.10     (ANS server, NY (USA))
      archie.au                  139.130.4.6      (Australian Server)
      archie.doc.ic.ac.uk        146.169.11.3     (United Kingdom Server)
      archie.edvz.uni-linz.ac.at 140.78.3.8       (Austrian Server)
      archie.funet.fi            128.214.6.102    (Finnish Server)
      archie.internic.net        198.49.45.10     (ATT server, NY (USA))
      archie.kr                  128.134.1.1      (Korean Server)
      archie.kuis.kyoto-u.ac.jp  130.54.20.1      (Japanese Server)
      archie.luth.se             130.240.18.4     (Swedish Server)
      archie.ncu.edu.tw          140.115.19.24    (Taiwanese server)
      archie.nz                  130.195.9.4      (New Zealand server)
      archie.rediris.es          130.206.1.2      (Spanish Server)
      archie.rutgers.edu         128.6.18.15      (Rutgers University (USA))
      archie.sogang.ac.kr        163.239.1.11     (Korean Server)
      archie.sura.net            128.167.254.195  (SURAnet server MD (USA))
      archie.sura.net(1526)      128.167.254.195  (SURAnet alt. MD (USA))
      archie.switch.ch           130.59.1.40      (Swiss Server)
      archie.th-darmstadt.de     130.83.22.60     (German Server)
      archie.unipi.it            131.114.21.10    (Italian Server)
      archie.univie.ac.at        131.130.1.23     (Austrian Server)
      archie.unl.edu             129.93.1.14      (U. of Nebraska, Lincoln (USA))
      archie.uqam.ca             132.208.250.10   (Canadian Server)
      archie.wide.ad.jp          133.4.3.6        (Japanese Server)

  33..  RReemmeerrcciieemmeennttss

  Merci  a toutes les personnes suivantes, dont les suggestions ont aide
  a realiser cette FAQ :
  Tomasz Surmacz (tsurmacz@asic.ict.pwr.wroc.pl)
  Wolfgang Ley (Ley@rz.tu-clausthal.de)
  Russel Street (russells@ccu1.auckland.ac.nz)
  Gary Mills (mills@CC.UManitoba.CA)
  Nicholas Ironmonger (ndi@sam.math.ethz.ch)
  Morten Welinder (terra@diku.dk)
  Nick Christenson (npc@minotaur.jpl.nasa.gov)
  Mark Hanning-Lee (markhl@romoe.caltech.edu)
  Marcus J Ranum <mjr@tis.com>

  44..  CCooppyyrriigghhtt

  Ce document est (c) 1994 par  Christopher Klaus de  Internet  Security
  Systems, Inc.

  La permission de donner des copies gratuites est accordee. Vous pouvez
  distribuer, transferer ou repandre  ce  papier.  Vous  ne  pouvez  pas
  pretendre  en etre l'auteur. Cet avertissement doit figurer dans toute
  copie.

  This paper is Copyright ((c)) 1994 by Christopher  Klaus  of  Internet
  Security Systems, Inc.

  Permission  is  hereby  granted  to  give  away  free copies.  You may
  distribute, transfer, or spread this paper.  You may not pretend  that
  you  wrote  it.   This copyright notice must be maintained in any copy
  made.

  55..  DDeenneeggaattiioonn ddee rreessppoonnssaabbiilliitteess

  Les informations contenues  dans  ce  document  peuvent  changer  sans
  preavis.   Elles  sont  presentees  _e_n  _l_'_e_t_a_t,  et  leur  utilisation
  constitue une acceptation de cette condition. Elles ne sont  nullement
  garanties.  En  aucun  cas  l'auteur ou le traducteur ne pourront etre
  tenus  responsables  des  dommages  pouvant  resulter  directement  ou
  indirectement  de l'usage ou de la diffusion de ces informations. Tout
  usage se fait aux risques de l'utilisateur lui-meme.

  66..  AAddrreessssee ddee ll''aauutteeuurr

  Vous pouvez envoyer vos suggestions, mise-a-jour et commentaires a

  Christopher Klaus <cklaus@shadow.net>
  Internet Security Systems, Inc. <iss@shadow.net>
  Internet Security Systems, Inc.
  2209 Summit Place Drive,
  Atlanta,GA 30350-2430. (404)998-5871.

