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.
Vous devez installer les paquets "vsftpd", "db4" et "db4-utils".
#yum install vsftpd db4 db4-utils
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.confanonymous_enable=NOlocal_enable=YESwrite_enable=NOlocal_umask=022anon_upload_enable=NOanon_mkdir_write_enable=NOdirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESchown_uploads=NOchown_username=nobodyxferlog_file=/var/log/xferlogxferlog_std_format=YESasync_abor_enable=NOascii_upload_enable=NOascii_download_enable=NOftp_banner=Bienvenue sur smnet.frchroot_local_user=YESchroot_list_enable=NOlisten=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YESuser_config_dir=/etc/vsftpd/user_confmax_clients=10max_per_ip=2
La configuration du fichier "vsftpd.conf" est terminée.
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.txtftpuserpassword <= 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
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/ftpuserdownload_enable=YESanon_world_readable_only=NOwrite_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESchmod_enable=YESvirtual_use_local_privs=YESforce_dot_files=NOhide_ids=YESlocal_root=/var/www/htmlguest_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
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-authauth required /lib/security/pam_userdb.so db=/etc/vsftpd/loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd/login
|
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 !
Le test peut se faire directement sur le serveur avec la commande "ftp".
#ftp centos.smnet.frConnected to centos.smnet.fr220 Bienvenue sur smnet.fr.Name (centos.smnet.fr:root): <= Tapez ftpuser331 Please specify the password.Password: <= Tapez le mot de passe de ftpuser230 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".