Installation d'un serveur FTP avec VSFTPD sur Debian Buster

par Administrateur :: il y a 8 mois , Mise à jour :: il y a 7 mois

Installation de VSFTPD avec des utilisateurs virtuels

Installation du paquet vsftpd.

apt-get install vsftpd

Il faut modifier le système d’authentification pour pouvoir utiliser les utilisateurs virtuels comme suit:

nano /etc/pam.d/vsftpd
# Standard behaviour for ftpd(8).
#auth   required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
#@include common-account
#@include common-session
#@include common-auth
#auth   required        pam_shells.so
auth    required        pam_userdb.so  db=/etc/vsftpd/users
account required        pam_userdb.so  db=/etc/vsftpd/users

Nous allons pointer les répertoires sur les différents sites (2 dans notre test) :

mkdir /var/www/html/site1 /var/www/html/site2

Puis on donne les droits pour le serveur web :

chown 33:33 /var/www/html/ -R

« Attention, ces deux étapes sont inutiles si la formation sur le serveur apache2 a déjà été faite. »

Installation de la base de données nécessaire pour la gestion des utilisateurs :

apt-get install db5.3-util 

« Attention, la version du paquet varie en fonction de la distribution Linux et de la release. »

Sauvegardons le fichier de configuration d’origine :

cp /etc/vsftpd.conf /etc/vsftpd.confBK

Et on vide le fichier de configuration afin de le remplir comme suit :

echo "" > /etc/vsftpd.conf
nano /etc/vsftpd.conf
listen=yes      # Ceci configure vsFTPd en mode "standalone"
anonymous_enable=NO  # Désactive les utilisateurs anonymes
local_enable=YES   # Oblige les personnes à s'identifier avec un utilisateur
guest_enable=YES   # Cela active les utilisateurs virtuels!
guest_username=www-data # Définie le groupe pour les fichiers et répertoires 
nopriv_user=www-data  # Définie l’utilisateur pour les fichiers et répertoires 
write_enable=YES   # Autorise l’accès en écriture
chroot_local_user=YES  # Pas besoin d'avoir un accès root 
allow_writeable_chroot=YES # Autorise les utilisateurs virtuels en écriture
pam_service_name=vsftpd  # Nom du service que PAM doit utiliser
user_config_dir=/etc/vsftpd/users.conf #Chemin des fichiers de configuration des utilisateurs virtuels
xferlog_enable=YES   # Active les log du transfert de fichier
xferlog_std_format=NO  # Désactive les log au format xferlog
log_ftp_protocol=YES  # Toutes les demandes et réponses FTP sont consignées
xferlog_file=/var/log/vsftpd.log # Chemin du fichier de log
virtual_use_local_privs=YES # Donne les mêmes droits aux utiliseurs virtuels qu’à l’utilisateur local
local_umask=022   # Applique les droits utilisateurs

Optionnel pour passer en mode passif :

port_enable=YES   # Autorise l’envoi des ports pour le mode passif
pasv_enable=YES   # Active le mode passif
pasv_min_port=65000  # Ouvre le port pour le mode passif de 65000 a
pasv_max_port=65100  # 65100
pasv_address=196.196.196.196 # Adresse IP de la connexion de l’adresse du serveur

Ensuite nous allons créer les différents fichiers et dossier :

mkdir -p /etc/vsftpd/users.conf
touch /etc/vsftpd/users.conf/site1 /etc/vsftpd/users.conf/site2

Et pour chaque utilisateur :

nano /etc/vsftpd/users.conf/site1
anon_world_readable_only=NO # Interdit les utilisateurs anonymes à utiliser les fichiers
local_root=/var/www/html/site1 ç attention à vérifier le pointage du dossier
write_enable=YES   # Autorise l’écriture
anon_upload_enable=YES  # Autorise les utilisateurs virtuel à uploader
anon_mkdir_write_enable=YES # Les utilisateurs virtuel sont autorisés à créer de nouveaux répertoires
anon_other_write_enable=YES # Autorise les utilisateurs virtuels en écriture

Une fois la liste des utilisateurs effectuée, il faut générer la base des utilisateurs :

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

« Attention : Commande à exécuter à chaque modification pour que la base soit mise à jour. »

Et pour terminer, on relance le serveur vsftpd :

service vsftpd restart

Bon à savoir

La différence entre mode passif et mode actif :

FTP actif

En mode actif, le client FTP se connecte au port 21 du serveur FTP à partir d’un port non privilégié aléatoire, généralement supérieur à 1024 (numéro de port). Voici la façon de communiquer entre le client FTP et le serveur FTP dans FTP active.

Le port de commande du client contacte le port de commande du serveur et communique son port de données.

Le serveur communique un accusé de réception au port de commande du client.
Le serveur établit une connexion entre son port de données et le port de données du client.
Enfin, le client envoie un accusé de réception au serveur.

Le FTP actif doit être utilisé lorsque le serveur FTP qui tente de se connecter ne prend pas en charge les connexions FTP passives ou si le serveur FTP se trouve derrière un pare-feu ou un routeur.

FTP passif

Le mode FTP passif est développé pour résoudre les problèmes de connexion du mode actif. Le client FTP peut utiliser la commande PASV pour indiquer au serveur que la connexion est passive. C’est la communication entre le client FTP et le serveur en mode passif.

Le client contacte le port de commande de serveur et émet une commande PASV pour indiquer qu’il s’agit d’une connexion passive.

Ensuite, le serveur communique son port de données d’écoute au client.

Ensuite, le client établit une connexion de données entre le serveur et lui-même en utilisant le port communiqué (Le port est communiqué par le serveur).

Enfin, le serveur envoie un accusé de réception au client.

FTP passif devrait être utilisé tout le temps, sauf si une erreur est survenue ou si la connexion FTP utilise des ports FTP non standards.

0 commentaire
2 + 5 =

@Copyright 2012 - 2020 MJMS Informatique et services

Site web réalisé avec WebDev