Configuration d'un service ftp anonyme

La mise en place d'un service ftp anonyme demande plus de manipulations. Vous allez mettre l'environnement dans /home.

  1. Vérifiez que le fichier /etc/passwd dispose bien d'un compte ftp :

    knoppix@master:~/tmp$ grep ftp /etc/passwd
    ftp:x:1003:1003:Compte ftp anonyme:/home/ftp:/bin/true
    

    sinon modifie les fichier "/etc/passwd" pour ajouter la ligne. Attention, prenez un "UID" libre.

  2. Créez un compte de groupe dans le fichier /etc/group :

    knoppix@master:~/tmp$ grep ftp /etc/group
    ftp:x:1003:
    
  3. Utilisez la commande "pwconv" pour mettre à jour le fichier shadow.

    Remarque si vous avez des problèmes d'accès sur le serveur 
    ftp anonyme par la suite :
    Il s'agit peut être d'un problème de définition du compte 
    dans le fichier "/etc/shadow". Vous pouvez pour cela utiliser 
    plusieurs options :
    A) Première option
    1 - taper "pwunconv"
    2 - modifier le fichier "/etc/passwd" comme indiqué ci-dessus
    3 - taper "pwconv" pour "recacher" les mots de passe.
    
    B) Deuxième option
    1 - utiliser la commande "adduser ftp" qui va mettre les fichiers 
    "/etc/passwd" et "/etc/shadow" à jour. Mettez un mot de passe bidon.
    2 - taper "pwunconv" et supprimer le mot de passe du compte dans
    "/etc/passwd" (mettre "*" par exemple)
    3 - remplacer aussi le shell "/bin/bash" par "/bin/true", enregistrer.
    4 - taper "pwconv" pour "recacher" les mots de passe.
    5 - supprimer /home/ftp (rm -rf /home/ftp)
    6 - continuer la procédure ci-dessous.
    
  4. Sous le compte root vous allez créer l'environnement pour le service ftp :

    cd /home && mkdir -p ftp/lib ftp/bin ftp/pub ftp/incoming ftp/etc
    

    On copie le programme ls dans ~ftp/bin. Vous pouvez en mettre d'autres, mais soyez prudent.

    cp /bin/ls  ftp/bin
    

    Il reste à créer les comptes dans un fichier local passwd et group. On y met juste les comptes nécessaires pour l'utilisation des programmes mis dans ~ftp/bin.

    root@master:/home# grep ftp /etc/group > ftp/etc/group
    root@master:/home# grep root /etc/passwd > ftp/etc/passwd
    root@master:/home# grep ftp /etc/passwd > ftp/etc/passwd
    

    Vérifiez que vous avez bien les informations dans les fichiers ftp/passwd et ftp/group.

    On change les permissions

    chmod -R 111 ftp/bin ; chmod 111 ftp/etc; chmod 444 ftp/etc/*;\
     chmod 555 ftp/pub; chmod 1733 ftp/incoming
    

    On rajoute dans ~ftp/lib les librairies utilisées par les programmes mis dans ~ftp/bin. Vous avez, vous le programme "ls". Les librairies utilisées par le programme ls sont visibles avec la commande "ldd".

    Si vous ajoutez d'autres programmes, il faudra y mettre également les bonnes librairies.

    root@master:/home# ldd /bin/ls
            librt.so.1 => /lib/librt.so.1 (0x4001f000)
            libc.so.6 => /lib/libc.so.6 (0x40031000)
            libpthread.so.0 => /lib/libpthread.so.0 (0x40141000)
            /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
    
    

    Il faut donc copier toutes ces librairies dans ~ftp/lib.

    cp /lib/librt.so.1 /lib/libc.so.6 /lib/libpthread.so.0 /lib/ld-linux.so.2 ftp/lib
    

    Voici donc ce que vous devriez avoir à la fin:

    root@master:/home# ls -alR ftp
    root@mr:/home# ls -alR ftp
    ftp:
    total 28
    drwxr-sr-x    7 root     root         4096 2003-09-19 12:19 .
    drwxrwsr-x    7 root     root         4096 2003-09-19 12:21 ..
    d--x--x--x    2 root     root         4096 2003-09-19 12:22 bin
    d--x--x--x    2 root     root         4096 2003-09-19 12:19 etc
    drwx-wx-wt    2 root     root         4096 2003-09-19 12:19 incoming
    drwxr-sr-x    2 root     root         4096 2003-09-19 12:21 lib
    dr-xr-xr-x    2 root     root         4096 2003-09-19 12:19 pub
    
    ftp/bin:
    total 76
    d--x--x--x    2 root     root         4096 2003-09-19 12:22 .
    drwxr-sr-x    7 root     root         4096 2003-09-19 12:19 ..
    ---x--x--x    1 root     root        64428 2003-09-19 12:22 ls
    
    ftp/etc:
    total 16
    d--x--x--x    2 root     root         4096 2003-09-19 12:19 .
    drwxr-sr-x    7 root     root         4096 2003-09-19 12:19 ..
    -r--r--r--    1 root     root           12 2003-09-19 12:19 group
    -r--r--r--    1 root     root           87 2003-09-19 12:19 passwd
    
    ftp/incoming:
    total 8
    drwx-wx-wt    2 root     root         4096 2003-09-19 12:19 .
    drwxr-sr-x    7 root     root         4096 2003-09-19 12:19 ..
    
    ftp/lib:
    total 1296
    drwxr-sr-x    2 root     root         4096 2003-09-19 12:21 .
    drwxr-sr-x    7 root     root         4096 2003-09-19 12:19 ..
    -rwxr-xr-x    1 root     root        82456 2003-09-19 12:22 ld-linux.so.2
    -rwxr-xr-x    1 root     root      1104040 2003-09-19 12:22 libc.so.6
    -rw-r--r--    1 root     root        81959 2003-09-19 12:22 libpthread.so.0
    -rw-r--r--    1 root     root        26592 2003-09-19 12:22 librt.so.1
    
    ftp/pub:
    total 8
    dr-xr-xr-x    2 root     root         4096 2003-09-19 12:19 .
    drwxr-sr-x    7 root     root         4096 2003-09-19 12:19 ..
    
  5. C'est normalement terminé.