===== FTP =====
==== Abstract ====
vsftpd est le deamon qui gère les connexions à webusers et webassos en FTP. Le but de vsftpd est de fournir un accès au dossier ''/var/www/(nom de l'user)'' via le protocole FTP.
* FTP sur [[http://fr.wikipedia.org/wiki/File_Transfer_Protocol|wikipedia]]
* Le **site officiel** avec la **doc** de vsftpd par [[https://security.appspot.com/vsftpd.html|ici]]
==== Installation ====
L'installation actuelle comprend **vsftpd** ainsi que le système de **pam_mysql**. Il à été installé via la commande :
apt-get install vsftpd libpam-mysql openssl
==== Configuration ====
Les fichiers de configuration sont :
* ''/etc/vsftpd.conf'' -> configuration du deamon
* ''/etc/vsftpd/'' -> fichiers de conf de chaque utilisateur
=== Configuration générale ===
La configuration générale ce trouve dans dans ''/etc/vsftpd.conf''
Les lignes qui nous intéressent sont :
[...]
listen=YES
listen_port=14258
[...]
Ceci permet de dire à vsftpd que **le port d'écoute** est 14258. le port **n**'est **pas** 21 car le port 21 est bloqué par notre firewall, ainsi que celui de la disi !
[...]
# "guest_enable" active les utilisateurs virtuels
# "guest_username" fait correspondre tous les utilisateurs virtuels à l'utilisateur d'Apache 2
guest_enable=YES
guest_username=www-data
user_config_dir=/etc/vsftpd
[...]
Ceci permet d'enable les guests, c'est à dire les utilisateurs du ftp qui __n'ont pas de compte sur la machine__. Lorsqu'ils se connectent, le système les reconnais en tant que **www-data**, __l'user qui gère__ le serveur web et a les droits sur ''/var/www''
* user_config_dir -> specifie le directory dans le quel se trouve les informations sur les guests //(voir la section suivante)//
[...]
#Fichier de configuration par défaut, aucun droit !!!!!!!
anon_world_readable_only=YES
#local_root=/var/www/chroot
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
hide_file=*
force_dot_files=YES
[...]
Cette partie sert de protection, elle ne donne pas les droits par défaut.
=== Configuration des guests ===
Le ftp authentifie les users via ce qui est présent dans la table ''users'' de la base de donnée ''ftp'' présent sur sql.minet.net.
La configuration des guests se trouve dans le dossier ''/etc/vsftpd/''.
Prenons l’exemple de **superman**, voici le fichier ''/etc/vsftpd/superman'' :
anon_world_readable_only=NO
local_root=/var/www/superman
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
hide_file=(none)
force_dot_files=YES
Ce bout de code permet de dire à vsftpd quel est **le dossier dans le serveur qui appartient** à superman. Il donne les droits à superman d'écrire dans son propre dossier.
==== Utilisation ====
vsftpd est un **deamon**. Sous Debian, les daemon/services se gère via :
services vsftpd start|stop|restart