GNU/Linux >> Linux Esercitazione >  >> Debian

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

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

Al giorno d'oggi abbiamo una vasta gamma di server FTP open source disponibili 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 è anche noto 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, avvia il servizio Vsftpd, controlla lo stato del servizio e abilita il servizio all'avvio.

sudo systemctl start vsftpd

sudo systemctl status vsftpd

systemctl enable vsftpd.service

2. Crea un utente FTP e configura per l'accesso FTP

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

sudo adduser sohan

Gli utenti aggiunti nel file vsftpd.userlist hanno l'autorizzazione per accedere al server FTP.

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

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

3. Crea 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 assegna 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. Configura Vsftpd

Successivamente, devi 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 il server FTP più sicuro, disabiliteremo l'accesso anonimo dell'utente e concederemo l'accesso solo all'utente specifico.

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

vim /etc/vsftpd.conf
anonymous_enable=NO

local_enable=YES

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

sudo vim /etc/vsftpd.conf

Quindi, 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 verifica lo stato del servizio eseguendo i seguenti comandi:

sudo systemctl restart vsftpd


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

sudo systemctl status vsftpd

5. consenti vsftpd nel firewall e accedi al server vsftpd

Quindi, se stai utilizzando il firewall, consenti la porta 21 e la porta 22 eseguendo il comando seguente:

sudo ufw allow 21/tcp

sudo ufw allow 22/tcp

Quindi ricarica il firewall per applicare le modifiche:

sudo ufw reload

Quindi, apri qualsiasi client FTP come FileZilla e inserisci i dettagli del tuo server, come Protocollo, Host , Utente:


Ora, fai clic su Connetti, quindi inserisci la tua password:

Quindi, mostrerà 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 dati crittografati tramite FTP, per farlo devi creare un certificato SSL e 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 comando seguente: 

sudo systemctl restart vsftpd

7. Accedi a FTP su SSL/TLS

Apri il client FTP FileZilla e vai su File>Gestione siti. Qui, fai clic su Aggiungi nuovo sito e inserisci il nome host/sito, aggiungi l'indirizzo IP, definisci il protocollo da utilizzare, Crittografia:richiede di esplicitare FTP su TLS e tipo di accesso. Quindi fare clic sul pulsante Connetti. Dovresti vedere la seguente immagine:

Successivamente, inserisci la tua password:


Successivamente, vedrai il certificato SSL, verifica i dettagli del certificato e fai clic su OK.


Alla fine, vedrai i contenuti del tuo server FTP e potrai trasferire i tuoi dati in modo sicuro da un sistema a un altro.

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.


Debian
  1. Come installare un server FTP su CentOS 7 con VSFTPD

  2. Come installare un server FTP su Ubuntu con vsftpd

  3. Come installare e configurare un server FTP (vsftpd) con SSL/TLS su Ubuntu 20.04

  4. Come installare e proteggere MariaDB su Debian 11

  5. Come installare un server FTP su Rocky Linux 8 con VSFTPD

Come installare il server VsFTPD con TLS su Ubuntu 18.04 LTS

Come configurare un server FTP sicuro su Debian 10 con Pure-FTPd

Come installare il server vsftpd su Debian 11

Come installare il server FTP su Debian 10

Come installare il server FTP su Debian 11

Come installare e configurare il server FTP VSFTPD su Ubuntu