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.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.
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
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
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 | |
---|---|
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.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".