Partie X. Installation du serveur FTP VSFTPD
Précédent ACCUEIL Suivant

X. INSTALLATION DU SERVEUR FTP VSFTPD

Mon objectif est de créer un serveur FTP qui utilisera le nom de connexion "ftpuser" avec des droits sur le dossier [/var/www/html]. Ainsi, il sera possible d'utiliser un client FTP comme "FIleZilla" pour téléverser des pages Web dans le bon répertoire.

10.1 - Les paquetages

Vous devez installer les paquets "vsftpd", "db4" et "db4-utils".

# yum install vsftpd db4 db4-utils

10.2 - Le fichier de configuration "vsftpd.conf"

Le fichier "vsftpd.conf" se trouve dans le répertoire [/etc/vsftpd/].

Editez le fichier [/etc/vsftpd/vsftpd.conf] et modifiez-le en tenant compte du listing ci-dessous.

# vim /etc/vsftpd/vsftpd.conf
  anonymous_enable=NO
  local_enable=YES
  write_enable=NO
  local_umask=022
  anon_upload_enable=NO
  anon_mkdir_write_enable=NO
  dirmessage_enable=YES
  xferlog_enable=YES
  connect_from_port_20=YES
  chown_uploads=NO
  chown_username=nobody
  xferlog_file=/var/log/xferlog
  xferlog_std_format=YES
  async_abor_enable=NO
  ascii_upload_enable=NO
  ascii_download_enable=NO
  ftp_banner=Bienvenue sur smnet.fr
  chroot_local_user=YES
  chroot_list_enable=NO
  listen=YES
  pam_service_name=vsftpd
  userlist_enable=YES
  tcp_wrappers=YES
  user_config_dir=/etc/vsftpd/user_conf
  max_clients=10
  max_per_ip=2

La configuration du fichier "vsftpd.conf" est terminée.

10.3 - Créer l'utilisateur "ftpuser"

Créez le fichier "login.txt".

# touch /etc/vsftpd/login.txt

Ajouter l'utilisateur "ftpuser" et le mot de passe "password" dans le fichier "login.txt".

# vim /etc/vsftpd/login.txt
  ftpuser
  password    <= Faîtes un retour chariot après le mot de passe !
   

Changez les droits sur le fichier "/etc/vsftpd/login.txt".

# chmod 600 /etc/vsftpd/login.txt

Créez la base de données "PAM" des utilisateurs autorisés.

# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

Changez les droits sur le fichier "/etc/vsftpd/login.db".

# chmod 600 /etc/vsftpd/login.db

10.4 - Associer l'utilisateur "ftpuser" au dossier Web "/var/www/html"

L'objectif est "d'emprisonner" l'utilisateur "ftpuser" dans le répertoire "/var/www/html".

# useradd -g apache -d /var/www/html -s /bin/false ftpuser
# passwd ftpuser
# usermod -a -G apache ftpuser

Créez le répertoire [/etc/vsftpd/user_conf].

# mkdir /etc/vsftpd/user_conf

Créez le fichier "/etc/vsftpd/user_conf/ftpuser" pour l'utilisateur "ftpuser".

# touch /etc/vsftpd/user_conf/ftpuser
# vim /etc/vsftpd/user_conf/ftpuser
  download_enable=YES
  anon_world_readable_only=NO
  write_enable=YES
  anon_upload_enable=YES
  anon_mkdir_write_enable=YES
  anon_other_write_enable=YES
  chmod_enable=YES
  virtual_use_local_privs=YES
  force_dot_files=NO
  hide_ids=YES
  local_root=/var/www/html
  guest_username=ftpuser

Modifiez le propriétaire, le groupe et les droits sur le répertoire [/var/www/html].

# chown -R ftpuser:apache /var/www/html
# chmod -R 775 /var/www/html

10.5 - Configurer "PAM"

PAM (Pluggable Authentification Modules) permet de changer la politique d'authentification sans avoir à recompiler le programme. Il suffit de modifier un fichier de configuration. Pour le serveur VSFTPD modifiez le fichier "/etc/pam.d/vsftpd" de la manière suivante :

# vim /etc/pam.d/vsftpd
  # session   optional   pam_keyinit.so   force   revoke
  # auth      required   pam_listfile.so file=/etc/.....
  # auth      required   pam_shells.so
  # auth      include    password-auth
  # account   include    password-auth
  # session   required   pam_loginuid.so
  # session   include    password-auth
  auth        required   /lib/security/pam_userdb.so  db=/etc/vsftpd/login
  account     required   /lib/security/pam_userdb.so  db=/etc/vsftpd/login
note Note

La version de la CentOS utilisée ici est la 64 bits. Pour ce type d'architecture remplacez "lib" par "lib64".

Démarrez le serveur VSFTPD par la commande :

# service vsftpd start

Automatisez le démarrage du serveur VSFTPD :

# chkconfig vsftpd on

Le servuer VSFTPD est prêt !

10.6 - Tester le serveur VSFTPD

Le test peut se faire directement sur le serveur avec la commande "ftp".

# ftp centos.smnet.fr
  Connected to centos.smnet.fr
  220 Bienvenue sur smnet.fr.
  Name (centos.smnet.fr:root):        <= Tapez ftpuser
  331 Please specify the password.
  Password:                           <= Tapez le mot de passe de ftpuser
  230 Login successful.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp>

Le serveur ftp fonctionne ! Vous pouvez bien sûr utiliser un logiciel comme "FIleZilla".

Figure 26 - FileZilla et VSFTPD

FileZilla et VSFTPD

Auteurs : Eddy et Stéphane Maas / 2013-2023
Précédent ACCUEIL Suivant