Installation de vsftpd
apt-get install vsftpd
Une fois le serveur installé, il créé un user ‘ftp’ avec un groupe ‘nogroup’.
L’utilisateur ftp possède maintenant un répertoire dans /home/ftp/ en root:nogroup.
On peut d’or et déjà se logguer en tant qu’utilisateur anonyme.
Si on veut modifier le répertoire du serveur il suffit de modifier son chemin.
Ex :
on va choisir le chemin /var/ftp
donc :
mkdir /var/ftp chown root:nogroup /var/ftp
On modifie le répertoire personnel de l’user ftp et tout devrait être bon.
Installation de db nécessaire pour la gestion des utilisateurs au cas par cas :
apt-get install db4.8-util
Maintenant que tout ca marche pensons à sauvegarder les fichiers de configuration même
si les modifications sont des plus légères.
cp /etc/vsftpd.conf /etc/vsftpd.conf1 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak1
Attaque au cas du cas par cas :
pour la liste des utilisateurs virtuels il faut créér un fichier virtual.txt
( on peut choisir un autre nom, il vous suffira d’adapter ), du style :
jack
none
polo
senva
jack étant l’user et none son passe, polo l’user et senva son passe, donc pour résumer :
login
pass
login
pass
Ensuite il nous faut formater les données de ce fichier pour qu’elles puissent être lu par PAM :
db_load -T -t hash -f virtual.txt virtual.db
Un petit chmod 600 virtual.* s’impose sinon juste le .db et vous supprimer le .txt qui ne sert plus à rien.
Direction /etc/pam.d/ :
vi vsftp
Soit vous supprimez les lignes déjà existantes soit vous mettez des commentaires
et placez y ces lignes :
auth required /lib/security/pam_userdb.so db=/etc/virtual account required /lib/security/pam_userdb.so db=/etc/virtual
Reste à configurer vsftpd.conf pour accepter ces utilisateurs :
anonymous_enable=NO #désactive les anonymes guest_enable=YES #active les users virtuels guest_username=ftp #nom de l'utilisateur, j'ai choisit de mettre celui créé à l'installation par vsftpd.
Testez maintenant le serveur en vous connectant avec un des comptes de la base PAM, essayez en anonyme ou avec un compte réel, pour voir le résultat.
Maintenant que ca marche, nous pouvons passer à un paramétrage plus complet de vsftpd.conf
avant de vraiment attaquer le cas par cas.
listen=YES # #listen_ipv6=YES # #definie le nombre de clients et de fois qu'il peut-être connecté max_clients=4 max_per_ip=1 # #montre les fichiers et répertoire comme appartenant a FTP hide_ids=YES # anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES guest_enable=YES guest_username=ftp user_config_dir=/etc/vsftpd_user # # #écrire sur le serveur et droit des anonymes write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_world_readable_only=YES # local_umask=022 # dirmessage_enable=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using 'root' or uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # You may override where the log file goes if you like. The default is shown # below. #xferlog_file=/var/log/vsftpd.log # # If you want, you can have your log file in standard ftpd xferlog format #xferlog_std_format=YES # idle_session_timeout=600 # data_connection_timeout=120 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # async_abor_enable=YES # #pas d'up ni dl en ascii ascii_upload_enable=NO ascii_download_enable=NO # ftpd_banner=Welcome On My Domain. # #deny_email_enable=YES # #banned_email_file=/etc/vsftpd.banned_emails # #cantonne les utilisateurs locaux à leur répertoire personnel chroot_local_user=YES # # #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list # #désactivation du ls récursif ls_recurse_enable=NO # secure_chroot_dir=/var/run/vsftpd # # nom du fichier pam pam_service_name=vsftpd # #location de la certification rsa pour le ssl rsa_cert_file=/etc/ssl/certs/vsftpd.pem
Aprés avoir créér la base de la gestion par utilisateurs, passons à un affinement des règles. Dans le fichier vsftpd.conf, il faut rajouter la ligne:
user_config_dir=/etc/vsftpd_user
Avec ca on indique à vsftpd qu’il existe un répertoire /etc/vsftpd_user qui contiendra les fichiers de configurations pour chaque utilisateur.
mkdir /etc/vsftpd_user
Il suffit maintenant de créér un fichier portant le nom de la personne voulu dans ce dossier avec les options désirées pour chaque personne et créér une réelle gestion des membres au cas par cas.
Petit exemple :
nous voulons que l’utilisateur polo puisse monter et télécharger des données, il nous faut donc lui créér un fichier de configuration à son nom dans /etc/vsftpd_user
touch polo vi polo
et les options à mettre pour contrer les règles principales définies pour vsftpd :
anon_upload_enable=YES write_enable=YES anon_world_readable_only=NO
Maintenant il peut télécharger mais aussi stocker des données sur le serveur.
Ca peut-être utile de traiter les utilisateurs au cas par cas ou par groupe, mais pour certains cas rien ne faut un répertoire « chrooter » ou seul le membre pourra y rentrer.
echo 'local_root=polo' >> /etc/vsftpd_user/polo
Ceci permet de créér un répertoire perso à polo ( bien entendu penser au mkdir et chown ).
Laisser un commentaire