Ricerca nel sito web

Come installare il server FTP vsftpd e proteggerlo con TLS su Debian 11


Questo tutorial esiste per queste versioni del sistema operativo

  • Debian 11 (Bullseye)
  • Debian 6 (Squeeze)

Su questa pagina

  1. Prerequisiti
  2. 1. Installa Vsftpd
  3. 2. Creare un utente FTP e configurare per l'accesso FTP
  4. 3. Crea una directory utente FTP
  5. 4. Configura Vsftpd
  6. 5. consenti vsftpd nel firewall e accedi al server vsftpd
  7. 6. Proteggi Vsftpd utilizzando SSL/TLS
  8. 7. Accedi all'FTP tramite SSL/TLS
  9. Conclusione

File Transfer Protocol o FTP è un protocollo di rete molto antico e uno dei più conosciuti. Al giorno d'oggi non è sicuro rispetto a SFTP o SCP, ma è ancora la prima scelta di molti utenti per il trasferimento di file tra un server e un client. L'FTP è noto come non sicuro perché trasferisce i dati insieme alle credenziali dell'utente senza alcun tipo di crittografia.

Al giorno d'oggi disponiamo di una vasta gamma di server FTP open source come FTPD, VSFTPD, PROFTPD e pureftpd. Tra tutti, VSFTPD è un protocollo molto sicuro, veloce e ampiamente utilizzato per il trasferimento di file tra due sistemi.

VSFTPD è noto anche come \Very Secure File Transfer Protocol Daemon\ con supporto di SSL , IPv6, FTPS esplicito e implicito.

In questa guida, ti mostreremo come installare il server FTP vsftpd su Debian 11.

Prerequisiti

Un server che esegue Debian 11.
Un utente non root con privilegi sudo.

1. Installa Vsftpd

Prima di iniziare l'installazione, aggiorna il tuo server Debian 11 eseguendo il seguente comando nel terminale:

sudo apt update -y
sudo apt upgrade -y

Debian ha un repository molto grande e il pacchetto vsftpd è disponibile nel repository ufficiale, quindi puoi installare facilmente vsftpd eseguendo il seguente comando:

sudo apt install vsftpd -y

Dopo l'installazione del pacchetto, avviare il servizio Vsftpd, controllare lo stato del servizio e abilitare il servizio all'avvio.

sudo systemctl start vsftpd

sudo systemctl status vsftpd

systemctl enable vsftpd.service

2. Creare un utente FTP e configurare l'accesso FTP

Ora, crea un nuovo account utente per FTP, utilizzando questo utente effettueremo l'accesso al server FTP in seguito.

sudo adduser sohan

Gli utenti aggiunti nel file vsftpd.userlist hanno il permesso di accedere al server FTP.

Successivamente, dobbiamo aggiungere l'utente sohan nell'elenco utenti vsftpd. Apri il file e aggiungi un utente eseguendo il seguente comando:

echo "sohan" | sudo tee -a  /etc/vsftpd.userlist

3. Creare una directory utente FTP

Successivamente, dobbiamo creare una directory FTP per il nostro utente FTP e impostare la proprietà con il seguente comando:

sudo mkdir -p /home/sohan/ftp_directory

sudo chown nobody:nogroup /home/sohan/ftp_directory

sudo chmod a-w /home/sohan/ftp_directory

Ora, crea una directory in cui i file possono essere caricati e dai la proprietà all'utente sohan eseguendo il comando:

sudo mkdir -p /home/sohan/ftp_directory/ftp_data
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
cd /home/sohan/ftp_directory/
chmod -R 777 ftp_data

4. Configurare Vsftpd

Successivamente, è necessario modificare alcuni parametri predefiniti per configurare un server FTP.

Per prima cosa, crea una copia di backup del file di configurazione vsftpd originale.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Nel server FTP, agli utenti anonimi viene concesso l'accesso per impostazione predefinita. Per rendere più sicuro il server FTP, disabiliteremo l'accesso utente anonimo e concederemo l'accesso solo all'utente specifico.

Successivamente, apri il file vsftpd.conf e apporta le modifiche come di seguito:

vim /etc/vsftpd.conf
anonymous_enable=NO

local_enable=YES

Ci sono alcune altre modifiche che dobbiamo apportare nella configurazione, First Open vsftpd.conf

sudo vim /etc/vsftpd.conf

Successivamente, assicurati che vsftpd.conf contenga le seguenti righe:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
user_sub_token=$USER
local_root=/home/$USER/ftp_directory
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Salva e chiudi il file. Puoi modificare la configurazione di cui sopra in base alle tue esigenze.

Ora riavvia il servizio vsftpd e controlla lo stato del servizio eseguendo i seguenti comandi:

sudo systemctl restart vsftpd


Successivamente, assicurati che il servizio vsftpd sia in esecuzione eseguendo il seguente comando nel Terminale:

sudo systemctl status vsftpd

5. consentire vsftpd nel firewall e accedere al server vsftpd

Successivamente, se utilizzi un firewall, consenti la porta 21 e la porta 22 eseguendo il seguente comando:

sudo ufw allow 21/tcp

sudo ufw allow 22/tcp

Quindi ricaricare il firewall per applicare le modifiche:

sudo ufw reload

Successivamente, apri qualsiasi client FTP come FileZilla e inserisci i dettagli del tuo server, come protocollo, host, utente:

Quindi, mostrerà i dettagli come di seguito, fai clic su OK.

A questo punto, sei connesso al server FTP e puoi caricare e scaricare file/cartelle.

6. Proteggi Vsftpd utilizzando SSL/TLS

Supponiamo che tu voglia trasferire i dati crittografati tramite FTP, per farlo devi creare un certificato SSL e devi abilitare la connessione SSL/TLS.

Puoi creare un certificato usando OpenSSL usando il seguente comando:

sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem

Ora dovrai modificare il file vsftpd.conf e apportare alcune modifiche:

sudo vim /etc/vsftpd.conf

Aggiungi infine le seguenti righe:

rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

Salva ed esci dal file, quindi riavvia Vsftpd utilizzando il seguente comando:

sudo systemctl restart vsftpd

7. Accedi all'FTP tramite SSL/TLS

Successivamente, inserisci la tua password:

Conclusione

Nella guida sopra, abbiamo installato il server VSFTPD su Debian 11. Impariamo anche come connettersi tramite connessione non crittografata e tramite connessione crittografata utilizzando un certificato SSL.