FTP, abbreviazione di File Transfer Protocol, è un protocollo popolare per il trasferimento di file da e verso un server FTP. Tuttavia, è irto di rischi per la sicurezza poiché invia dati e informazioni sensibili come nomi utente e password in testo normale. VSFTPD ( Very Secure FTP Daemon ) è un server FTP veloce, sicuro e stabile che utilizza la crittografia per proteggere i dati scambiati con il server.
In questo tutorial impariamo come installare il server FTP vsftpd su Debian 11 .
Fase 1:installa vsftpd su Debian 11
Per prima cosa, apri il terminale e aggiorna gli elenchi dei pacchetti sul tuo server Debian.
$ sudo apt update
Il pacchetto vsftpd è ospitato su repository Debian ufficiali. Pertanto, usa il gestore di pacchetti APT come mostrato.
$ sudo apt install vsftpd
Il comando installa vsftpd, insieme ad altre dipendenze. Una volta installato, vsftpd si avvia automaticamente. Puoi confermarlo eseguendo il comando:
$ sudo systemctl status vsftpd
Dall'output, puoi vedere che vsftpd funziona come previsto.
Nel caso in cui il servizio vsftpd non sia in esecuzione nel tuo caso, puoi avviarlo come indicato.
$ sudo systemctl start vsftpd
Quindi abilita l'avvio del servizio all'avvio.
$ sudo systemctl enable vsftpd
Fase 2:crea un utente FTP univoco
Successivamente, creeremo un account utente FTP univoco che utilizzeremo per accedere al server FTP. Usa semplicemente il adduser
comando seguito dal nome dell'utente e rispondere alle richieste di conseguenza.
$ sudo adduser ftpuser
Fase 3:aggiungi un utente FTP all'elenco degli utenti con accesso consentito
Andando avanti, aggiungeremo l'utente FTP a vsftpd.userlist
file. Agli utenti locali specificati in questo file viene concessa l'autorizzazione ad accedere al server FTP.
Quindi, esegui il comando:
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
Perfetto. Procediamo ora e configuriamo vsftpd.
Fase 4:crea una directory utente FTP
Quindi, crea una directory FTP per l'utente FTP e assegna le autorizzazioni e la proprietà della directory appropriate.
$ sudo mkdir -p /home/ftpuser/ftp_dir
$ sudo chmod -R 750 /home/ftpuser/ftp_dir
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir
Fase 5:Configura vsftpd
Sono necessari alcuni passaggi aggiuntivi prima di poter accedere e iniziare a interagire con il server. Procedi e modifica il file di configurazione principale - /etc/vsftpd.conf
.
$ sudo vim /etc/vsftpd.conf
Ci sono un paio di impostazioni che devi assicurarti che siano impostate.
Iniziamo con l'accesso FTP . Per impostazione predefinita, agli utenti anonimi viene concesso l'accesso. Ma questo non è ciò che vogliamo per motivi di sicurezza. Pertanto, disabiliteremo l'accesso da parte dell'utente anonimo e concederemo l'accesso solo all'utente locale.
anonymous_enable=NO
local_enable=YES
Successivamente, è necessario consentire all'utente locale di caricare file e accedere alla propria home directory, nonché di apportare modifiche ai file come indicato.
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
Inoltre, puoi limitare gli utenti locali che possono accedere e caricare file specificando solo gli utenti contenuti in vsftpd.userlist
file.
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Per fornire una connessione FTP sicura al server, è necessario crittografare il server utilizzando un certificato SSL. Genereremo un certificato SSL autofirmato per crittografare il server. Per farlo, esegui il comando.
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Torna di nuovo al file di configurazione predefinito e incolla queste righe per specificare il percorso dei certificati SSL generati e abilitare SSL.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
In sintesi, il tuo file di configurazione dovrebbe contenere queste righe:
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
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
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Per rendere effettive le modifiche, riavvia il server.
$ sudo systemctl restart vsftpd
Solo per assicurarti che tutto sia a posto, puoi verificarne lo stato di esecuzione.
$ sudo systemctl status vsftpd
Fase 5:accedi al server vsftpd
Ora abbiamo finito con le configurazioni. L'ultimo bit è accedere. Se hai un firewall abilitato, consenti le porte 20 e 21.
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
Quindi ricarica il firewall per applicare le modifiche.
$ sudo ufw reload
Infine, prendi il tuo client FTP come FileZilla e inserisci i dettagli come segue:
Ospite :sftp://IP server
Nome utente: ftpuser
Password :Password di ftpuser
Dopo aver compilato i dettagli, fare clic sul pulsante 'QuickConnect'.
Dopo che l'elenco delle directory è riuscito, ora puoi iniziare a trasferire i file in modo sicuro tramite SSL.
Sulla riga di comando, esegui semplicemente il comando:
$ sftp ftpuser@server-IP
Digita "sì" quando ti viene chiesto di continuare e fornisci la password all'utente FTP per accedere.
Conclusione
Questo è stato un tutorial in cui abbiamo imparato come installare il server FTP vsftpd su Debian 11. Siamo andati avanti e abbiamo creato l'utente, configurato il server e effettuato l'accesso da un client FTP e dalla riga di comando.