Écrit par VieuxProf
|
01-01-1999 |
Proftpd est une alternative souple et fiable pour mettre en place un serveur de fichiers FTP.
Choix des arborescences et politique des accès :
- Par défaut, les utilisateurs locaux ont accès à leur /home via FTP mais ils ne sont pas chrooted. Il est donc préférable de créer une arborescence particulière pour FTP. Les choix retenus dans cet exemple sont décrits ci-dessous.
- On utilise 3 classes d'utilisateurs FTP : anonymous/ftp, invités FTP (type ftpbienvenue) et utilisateurs UNIX (type markus).
- On crée l'arborescence suivante :
- /var/ftp - racine du serveur FTP, accessible en lecture aux invités FTP et aux utilisateurs UNIX
- /var/ftp/public - répertoire de download accessible en lecture à tous, y compris anonymous
- /var/ftp/upload - racine du répertoire d'upload, accessible en lecture aux invités FTP et aux utilisateurs UNIX spécifiquement autorisés
- /var/ftp/upload/ftpbienvenue - répertoire d'upload accessible en lecture/écriture aux invités FTP et aux utilisateurs UNIX spécifiquement autorisés.
- Vérifier si Wu-ftpd est installé et si c'est le cas, le désactiver
- Installer le RPM ou le TGZ
# ./configure; make; make install
- S'assurer que /etc/ftponly figure dans /etc/shells (sinon, le rajouter)
# cat /etc/shells | grep ftponly
- Créer un utilisateur système sans mot de passe ni shell
Par défaut, Proftpd est lancé par l'utilisateur root. Il est préférable de l'attribuer à l'utilisateur nobody:nobody ayant pour shell /etc/ftponly
# cat /etc/passwd |grep nobody; cat /etc/group | grep nobody # L'utilisateur et le groupe nobody existent-t'ils ?
# useradd -s /etc/ftponly nobody # ...Sinon les créer
# usermod -d / -c "FTP système" nobody # Changer le /home de nobody
# rm -Rf /home/nobody # supprimer le /home créé par défaut
# cat /etc/passwd |grep nobody; cat /etc/group | grep nobody # Vérifier
nobody:x:501:501::/:/etc/ftponly
nobody:x:501:
- Créer un utilisateur 'ftp' sans mot de passe ni shell pour les connexions anonymes
# cat /etc/passwd |grep ftp; cat /etc/group |grep ftp # L'utilisateur et le groupe ftp existent-t'ils ?
# useradd -s /etc/ftponly ftp # ...Sinon les créer
# usermod -d /var/ftp/public -c "FTP anonymous" ftp # Changer le /home de ftp
# rm -Rf /home/ftp # supprimer le /home créé par défaut
# cat /etc/passwd |grep ftp; cat /etc/group | grep ftp # Vérifier
ftp:x:503:503::/var/ftp/public:/etc/ftponly
ftp:x:503:
- Créer l'arborescence FTP et octroyer les permissions UNIX (permissions FTP déterminées par les permissions locales)
# mkdir /var/ftp /var/ftp/public /var/ftp/upload
# chown root.root /var/ftp; chmod -R 755 /var/ftp # racine du serveur
# chown root.root /var/ftp/public; chmod 755 /var/ftp/public # lecture seule pour tout le monde
# groupadd ftpusers # création d'un groupe ftpusers pour les invités et utilisateurs autorisés
# chown root.ftpusers /var/ftp/upload; chmod 750 /var/ftp/upload # lecture seule pour les ftpusers
# ls -lR /var/ftp # vérification de l'arborescence
- Paramétrer proftpd.conf (voir section Exemples)
Les droits FTP sont déterminés au final par les permissions locales UNIX, mais des restrictions supplémentaires peuvent être ajoutées dans proftpd.conf. De plus, c'est dans ce fichier qu'on définit les accès anonymes.
- Paramétrer le démarrage automatique de Proftpd au démarrage du système
# echo "/usr/local/sbin/proftpd" >> /etc/rc.d/rc.local
Création des invités FTP et de leur arborescence :
- Créer un utilisateur sans shell de type ftpbienvenue
# useradd -s /etc/ftponly ftpbienvenue; passwd ftpbienvenue
- Modifier son home directory et l'intégrer au groupe ftpusers
# usermod -G ftpusers -d /var/ftp -c "FTP activé" ftpbienvenue
- Supprimer le home directory créé par défaut avec l'utilisateur
# rm -Rf /home/ftpbienvenue
- Créer un répertoire d'upload pour ftpbienvenue et octroyer les droits
# mkdir /var/ftp/upload/ftpbienvenue
# chown ftpbienvenue.ftpusers /var/ftp/upload/ftpbienvenue; chmod 700 /var/ftp/upload/ftpbienvenue
- Vérifier et tester
# cat /etc/passwd |grep ftpbienvenue; cat /etc/group | grep ftpusers
ftpbienvenue:x:502:502::/var/ftp/:/etc/ftponly
ftpusers:x:502:ftpbienvenue
# ftp monhote
/usr/local/etc/proftpd.conf |
unique fichier de configuration du démon proftpd |
/var/log/messages, /var/log/xferlog, /var/log/ftp.log |
fichiers de logs de proftpd |
/var/log/wtmp, /var/run/utmp |
enregistrement des connexions au service FTP |
/etc/ftponly |
pseudo-shell pour utilisateurs FTP |
/usr/local/sbin/proftpd |
démarrage du serveur |
killall -HUP proftpd |
redémarrage du serveur |
kill -15 proftpd |
arrêt du serveur en tuant son processus |
/usr/local/sbin/ftpshut now |
arrêt du serveur sans tuer son processus (/etc/shutmsg) |
/usr/local/bin/ftpcount, /usr/local/bin/ftpwho |
état courant des connexions |
ps aux | grep proftpd |
proftpd est-il actif? |
ftp monserveur |
ftp client interactif |
- On peut également instaurer des quotas pour les serveurs communautaires et gérer des hôtes virtuels. |
- Proftpd peut fonctionner en standalone ou avec inetd. |
http://www.proftpd.org/ |
man proftpd |
|
Dernière mise à jour : ( 03-02-2008 )
|