ProFTP
17 Sep. 2006
- Auteur : Hyacinthe MENIET
- Responsable : gege13821
- Score ( voter ) :




- Connexes : Même auteur | Même responsable | Historique
1. Installation :
-
Pour les utilisateurs de Mandriva.
Vous n'avez rien à télécharger, tapez simplement ceci dans un terminal :
urpmi proftpd
-
Pour les utilisateurs de Debian.
Vous n'avez rien à télécharger, tapez simplement ceci dans un terminal :
apt-get install proftpd
-
Pour les utilisateurs de RedHat.
Vous pouvez télécharger proftp ici et l'installer par :
rpm -Uvh proftpd-1.2.5-fr1.i386.rpm
-
Pour les autres.
Vous pouvez télécharger la dernière version de proftp ici. L'installation se résume à :
tar -xzvf /où_est_le_fichier/proftpd-1.2.5.tar.gz cd proftpd-1.2.5/ ./configure --prefix=/usr --sysconfdir=/etc make make install
2. Configuration :
2.1 L'utilisateur nobody :
Par défaut le daemon proftpd se lance avec les privilèges de root et cela pose évidemment des problèmes de sécurité. C'est pourquoi je vous conseille d'utiliser un utilisateur sans droits particuliers. Le plus indiqué étant nobody du groupe nobody. Ils existent probablement déjà chez, vous vous pouvez le vérifier par :
cat /etc/group | grep nobody
Si vous n'aviez aucune réponse, c'est que vous n'avez pas de group nobody, sa création se limite à :
groupadd nobody
Ensuite :
cat /etc/passwd | grep nobody
Si vous n'aviez aucune réponse c'est que vous n'avez pas d'utilisateur nobody, sa création et son affectation au groupe nobody se limitent à :
useradd nobody -d / -s /bin/false
usermod nobody -g nobody
2.2 les utilisateurs :
Nous allons créer 2 utilisateurs, le premier, adminftp qui sera le login qui vous permettra de vous loguer depuis le net pour rajouter des fichiers sur votre PC serveur FTP. Le second userftp qui sera le login que devront entrer vos utilisateurs pour se loguer à votre FTP. Vos utilisateurs auront un accès en lecture seule, c'est à dire qu'ils pourront juste récupérer des fichiers. Si vous souhaitiez que d'autres utilisateurs puissent déposer des fichiers sur votre serveur, soit vous leur donnez le mot de passe d'adminftp, soit vous leur créer un compte : pierre, paul ou jacques. Dans mon exemple, je suppose qu'il n'y a qu'un seul utilisateur susceptible de mettre des choses sur mon PC depuis le net : adminftp, les autres sont de simples clients : userftp. Il n'y a pas non plus d'utilisateur anonyme. Tout ceci se fait simplement à l'aide de :
useradd adminftp -s /bin/false
useradd userftp -s /bin/false
Il faut, bien-sûr leurs affecter des mots de passe :
passwd adminftp
passwd userftp
Choisissez les mots de passe de votre choix, par exemple chez moi j'ai choisi :
- pour adminftp : saidmyname
- pour userftp : myname
/bin/false
2.3 Création du partage :
Je vous conseille de mettre tous les fichiers que vous souhaitez rendre disponibles par FTP dans un même répertoire, par exemple /mnt/ftp. Vous pouvez même les classifier : /mnt/ftp/images, /mnt/ftp/mp3, /mnt/ftp/videos, /mnt/ftp/docs. Tout ceci se fait simplement par :
mkdir /mnt/ftp
cd /mnt/ftp
mkdir images mp3 videos docs
chmod -R 777 /mnt/ftp
Avec ça, vous avez crée, un répertoire /mnt/ftp contenant 4 répertoires : images, mp3, videos, docs. Accessibles à tous sans restrictions, pas de panique ! c'est fait exprès et c'est cohérent avec la stratégie qui a été définie plus haut.
Notez que je peux également déposer des choses dans /mnt/ftp sans passer par le net.
2.4 Configuration :
Pour configurer ProFTP, vous disposer de 2 fichiers que vous devrez probablement créer.- /etc/ftpusers
cp /etc/passwd /etc/ftpusers
Le but est simple, il faut qu'apparaissent dans ce fichier tous les utilisateurs de votre linux à l'exception de ceux que vous avez crée précédemment(adminftp et userftp). N'oubliez pas de rajouter anonymous et faîtes le ménage, pour qu'il ressemble à ça :
# This file describes the names of the users that may
# _*NOT*_ log into the system via the FTP server.
# This usually includes "root", "uucp", "news" and the
# like, because those users have too much power to be
# allowed to do "just" FTP...
#
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
ftp
smmsp
mysql
rpc
gdm
pop
nobody
anonymous
kernel
Ceci permet que les utilisateurs du FTP ne soient que des utilisateurs de FTP et rien d'autre.
- /etc/proftpd.conf
# le nom du serveur ServerName "Kernel's ProFTP server" # le daemon reste en mémoire et écoute les connections ServerType standalone # Autoriser l'usage de /etc/ftpusers UseFtpUsers on # Répertoire dans lequel arrivent les utilisateurs acceptés DefaultChdir /mnt/ftp # Répertoire racine, les connectés au ftp ne verrons que lui et son contenu DefaultRoot /mnt/ftp # Utile surtout pour les "virtuals hosts" mais laissez ainsi DefaultServer on # le daemon écoute sur le port 21 Port 21 # On autorise les reprises des téléchargements interrompus : AllowStoreRestart on # Les logs des connections et transferts SystemLog /var/log/proftpd.log TransferLog /var/log/xferlog # Seul le propriétaire d'un fichier peut le modifier. Umask 022 # Nombre de processus fils maximum que va utiliser proftpd, laissez ainsi. MaxInstances 30 # Proftp sera lancé avec les privilèges (c'est à dire aucun) de nobody User nobody Group nobody # Nombre maximum de clients simultanés (sur ADSL ça fait 5ko/s par utilisateurs) MaxClients 3 # Nombre maximum de clients ayant le même login MaxClientsPerHost 3 # Message d'accueil après une connexion réussie AccessGrantMsg "Connexion reussie pour %u" # Pour ne pas donner d'info sur le serveur DeferWelcome off # Un utilisateur peut écraser ses propres fichiers AllowOverwrite on #Seul l'utilisateur adminftp a le droit d'écrire dans /mnt/ftp <Directory /mnt/ftp> <Limit WRITE> AllowUser adminftp DenyAll </Limit> #Si vous souhaitez restreindre le ftp à votre réseau local 192.168.0.x et à #l'adresse 10.0.0.1 décommentez les lignes suivantes : #<Limit LOGIN> #Allow 10.0.0.1 192.168.0. #Deny All #</Limit> </Directory>
3. Lancement du daemon :
On va lancer proftp en standalone, il faut donc le supprimer de la liste des daemons lançables par inetd ou xinetd.-
Si vous utilisez inetd (debian, slackawre) :
Commentez (rajouter un #) la ligne suivante dans /etc/inetd.conf (s'il n'y en pas ne faîtes rien):ftp stream tcp nowait root /usr/sbin/tcpd proftpdPuis relancer inetd par :killall -HUP inetd
-
Si vous utilisez xinetd (Mandriva, redhat) :
Déplacez le fichier /etc/xinetd.d/proftpd (ou /etc/xinetd.d/proftpd-xinetd) vers un autre répertoire, puis redémarrez xinetd (s'il n'y a pas de fichier /etc/xinetd.d/proftpd ne faîtes rien) :
mv /etc/xinetd.d/proftpd /root/ killall -HUP xinetd
/usr/sbin/proftpd
Et vérifier qu'il est bien lancé par :
ps ax | grep proftp
S'il restait sans réponse, c'est qu'inetd ou xinetd vous bloque, refaites les étapes ci-dessus.
Plus tard, si vous faites des modifications dans /etc/proftp.conf pour qu'elles soient prises en compte par le daemon (déjà lancé) il vous suffira de taper :
killall -HUP proftpd
4. Trucs et astuces :
-
Pour tester rapidement votre serveur ProFTP vous pouvez exécuter la commande qui va suivre, je donne également le dialogue :
[kernel@slackware kernel]$ ftp localhost Connected to localhost. 220 ProFTPD 1.2.5 Server (Kernel's ProFTP server) [slackware.workstation] Name (localhost:kernel): userftp 331 Password required for userftp. Password: 230 Connexion reussie pour userftp Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for file list. drwxrwxrwx 2 root root 48 Jul 20 22:52 docs drwxrwxrwx 2 root root 48 Jul 20 22:52 images drwxrwxrwx 2 root root 48 Jul 20 22:52 mp3 drwxrwxrwx 2 root root 152 Jul 21 01:38 videos 226 Transfer complete. ftp> exit 221 Goodbye. [kernel@slackware kernel]$
-
Pour suivre les connections en direct, vous devez taper en root dans un terminal :
tail -f /var/log/proftpd.log
-
Pour suivre le téléchargement des fichiers en direct :
tail -f /var/log/xferlog