Blog

Chrooter les utilisateurs FTP en www-data (Vsftpd)

Inscrivez-vous à notre newsletter

Si vous utilisez l’excellent serveur FTP Vsftpd (serveur FTP léger et efficace écrit pour la sécurité …) et que vous uploadez les sources de votre CMS (WordPress ou Joomla par exemple), vous risquez rapidement d’avoir des problèmes d’écriture. En effet, le serveur Web (Apache) est exécuté avec l’utilisateur www-data. Et donc, comme vous avez uploadé vos fichiers avec un utilisateur FTP, votre CMS ne parvient pas à écrire dans certain dossiers ou bien même à écraser certain fichiers (en cas de mise à jour du CMS via le backoffice par exemple) avec le fameux “permission denied” …

Afin de palier à ce problème, il convient de “chrooter” l’utilisateur FTP afin qu’il puisse uploader avec les droits de l’utilisateur www-data. Ainsi, aussi bien en FTP que via le CMS, le propriétaire restera toujours www-data.

Chrooter l'utilisateur FTP en www-data

On part du principe que vous avez déjà installé le serveur FTP Vsftp sur votre serveur. Modifiez la configuration du fichier de configuration /etc/vsftpd.conf :

listen=YES
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
guest_enable=YES
ftp_username=www-data
chmod_enable=YES
chown_uploads=YES
chown_username=www-data
guest_username=www-data
force_dot_files=YES
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=1024
pasv_max_port=65535
max_clients=10
max_per_ip=10
port_promiscuous=YES
port_enable=YES
listen_port=21988
ftp_data_port=20
user_sub_token=$USER
hide_ids=YES
user_config_dir=/etc/vsftpd
chroot_local_user=YES
allow_writeable_chroot=YES
log_ftp_protocol=YES
vsftpd_log_file=/var/log/vsftpd.log

Ainsi on a déterminé que nous souhaitons que le propriétaire des fichiers uploadés  soit www-data.

On a également spécifié le chemin de configuration des utilisateurs FTP user_config_dir=/etc/vsftpd

Notez au passage, que pour des raisons de sécurité, il convient de modifier le port d’écoute par défaut du serveur FTP (21) par un autre (ici 21988). Cela évite, en effet, que le serveur se fasse bêtement scanner et/ou attaquer en force brute sur le port 21.

CREER le dossier et le fichier de config de l'utilisateur FTP

Il convient de créer le dossier /etc/vsftpd comme précédemment spécifié

$ mkdir /etc/vsftpd

Puis il faut créer le fichier portant le même nom que votre utilisateur FTP.  Dans l’exemple, l’utilisateur s’appelle ‘wpsite

$ nano /etc/vsftpd/wpsite

Enfin, il reste a spécifier dans le fichier de l’utilisateur le chemin ou se trouve votre CMS (exemple : /var/www/html) :

local_root=/var/www/html

Pour terminer, il faut redémarrer le serveur Vsftpd afin que la nouvelle configuration soit prise en compte :

$ service vsftpd restart

Fabien

Rédacteur Wapeo

D'autres potins intéressants :

[DISPLAY_ULTIMATE_SOCIAL_ICONS]
[DISPLAY_ULTIMATE_SOCIAL_ICONS]
smartphone

Contactez-nous

Nous sommes joignable du lundi au vendredi de 9h à 13h et de 14h à 18h. 

03 20 70 76 79

Inscrivez-vous à notre Newsletter

wapeo-gradient

Pour être certain(e) de ne rater aucun potin !

Veuillez activer le javascript sur cette page pour pouvoir valider le formulaire

Nous avons bien reçu votre message, nous le traiterons dans les meilleurs délais :)