Serveur Debian : FTP

Administration con centré . com !

Serveur Debian : FTP

Serveur FTP

Un serveur FTP permet de transférer des fichiers depuis son ordinateur personnel sur lequel est installé un client ftp comme FileZilla.

vsFTPd (Very Secure FTP Daemon), créé en 2000, est un serveur FTP qui mise beaucoup sur la sécurité développé par Chris Evans, chargé de la sécurité de Google Chrome. Il est l'un des premiers logiciels serveurs à mettre en œuvre la séparation des privilèges, minimisant ainsi les risques de piratage.

Autre paquets pour configurer un serveur FTP : ProFTPD - Pure-FTPd - FTP sur SSH (SFTP via OpenSSH) - vsftpd avec PAM et MySQL - FileZilla Server - TFTP

dpkg -l | grep ftp
Si openssh-server est deja installé vous pouvez vous connecter avec votre clef ssh sur le port 2222!
sudo apt install openssh-server

Installation d'un serveur FTP avec vsftpd

sudo apt install vsftpd -y

sudo ufw disable

sudo systemctl status vsftpd
sudo systemctl restart vsftpd

sudo nano /etc/vsftpd.conf

anonymous_enable=NO
local_enable=YES   #Autoriser les utilisateurs locaux
write_enable=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list    #empêcher les utilisateurs de naviguer en dehors de leur répertoire ajouter chroot_list
chroot_local_user=NO
allow_writeable_chroot=YES


Générer et configurer des certificats SSL auto-signé

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
sudo nano /etc/vsftpd.conf
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem


sudo systemctl enable vsftpd
sudo systemctl reload vsftpd


sudo tail -f /var/log/vsftpd.log


Une fois le serveur FTP installé, vous devez configurer les accès utilisateurs (local ou virtuel) pour qu'ils puissent se connecter.

Votre nom d'utilisateur

Pour les utilisateurs Système Locaux

sudo adduser username
echo "username" | sudo tee -a /etc/vsftpd.chroot_list
sudo nano /etc/vsftpd.chroot_list

#Configurer les permissions du répertoire personnel
sudo chown username:username /home/username
sudo chmod 755 /home/username


Pour les utilisateurs Virtuels

ne sont pas des utilisateurs système, souvent gérés via une base de données ou un fichier.


sudo nano /etc/vsftpd.conf
pam_service_name=vsftpd.mysql
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/ftpusers/$USER
write_enable=YES

sudo nano /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=ftp_user passwd=password host=localhost db=ftp_users table=users usercolumn=username passwdcolumn=password crypt=1
account required pam_mysql.so user=ftp_user passwd=password host=localhost db=ftp_users table=users usercolumn=username passwdcolumn=password crypt=1

 

Supprimer le Serveur FTP

sudo systemctl stop vsftpd
sudo apt-get remove --purge vsftpd
sudo rm -rf /etc/vsftpd.conf
sudo rm -rf /etc/vsftpd/
sudo rm -rf /var/log/vsftpd.log
sudo deluser ftpuser
sudo rm -rf /home/ftpuser