Server FTP · 7 min read · Dec 22, 2025
Come installare un server FTP sicuro con vsftpd su Debian 12

vSFTPd o Very Secure FTP Daemon è un software server FTP gratuito e open-source. È un demone FTP per sistemi operativi simili a Unix ed è concesso in licenza sotto la GNU General Public License. vSFTPd è uno dei demoni FTP più utilizzati, è veloce e leggero in termini di risorse di sistema, sicuro grazie all’integrazione di PAM e SSL, e stabile. vSFTPd ha guadagnato la fiducia di grandi aziende come RedHat, SUSE, Debian, Gnome, KDE, ecc. grazie alla sua sofisticatezza.
vSFTPd può funzionare con IPv6 e supporta configurazioni e utenti IP virtuali. Può essere eseguito come demone autonomo o tramite inetd. Per la gestione degli utenti, vSFTPd fornisce una funzionalità che consente agli utenti di impostare la propria configurazione, come restrizioni per IP sorgente, riconfigurabilità e limitazione della larghezza di banda. Inoltre, vSFTPd supporta un modulo di autenticazione plug-in (PAM) per utenti virtuali e fornisce anche integrazione della sicurezza con SSL/TLS.
In questo tutorial, imparerai come configurare e creare un server FTP sicuro con vsftpd su un server Debian 12. In questa guida imparerai anche come proteggere l’installazione del tuo server FTP tramite UFW (Uncomplicated Firewall) e come connetterti al server FTP utilizzando il client FTP FileZilla.
Prerequisiti
Prima di procedere, assicurati di avere quanto segue:
- Un server Debian 12.
- Un utente non root con privilegi di amministratore sudo.
- Il pacchetto openssl è installato sul tuo server.
Installazione di vsftpd
Il vsftpd è un’implementazione del protocollo FTP per sistemi operativi UNIX e Linux. Il pacchetto vsftpd è disponibile sulla maggior parte delle distribuzioni Linux, incluso Debian. Ora installerai vsftpd tramite APT e verificherai il servizio vsftpd per assicurarti che il servizio sia in esecuzione.
Prima di installare il pacchetto vsftpd, esegui il seguente comando per aggiornare il tuo repository Debian.
sudo apt update
Ora installa il pacchetto vsftpd utilizzando il comando apt install qui sotto.
sudo apt install vsftpdConferma l’installazione digitando y e premi INVIO.

Dopo che vsftpd è stato installato, il servizio vsftpd sarà automaticamente in esecuzione e abilitato. Verifica il servizio vsftpd utilizzando il seguente comando.
sudo systemctl is-enabled vsftpd
sudo systemctl status vsftpdL’output seguente conferma che il servizio vsftpd è in esecuzione e abilitato. Inoltre, il servizio vsftpd verrà eseguito automaticamente all’avvio del sistema.

Configurazione di vsftpd
Nel passaggio successivo, configurerai e creerai un server FTP sicuro con vsftpd. Genererai certificati SSL/TLS e modificherai la configurazione predefinita di vsftpd /etc/vsftpd.conf.
Per prima cosa, esegui il comando openssl qui sotto per generare nuovi certificati TLS che verranno utilizzati per l’installazione del tuo server vsftpd.
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pemInserisci le tue informazioni quando richiesto. Dopo che il processo è terminato, i tuoi certificati TLS saranno disponibili in /etc/ssl/private/vsftpd.pem.

Ora esegui il comando qui sotto per creare un nuovo file /etc/vsftpd.userlist per memorizzare gli utenti FTP.
touch /etc/vsftpd.userlistDopo di che, esegui il seguente comando per eseguire il backup della configurazione di vsftpd. Quindi, apri la configurazione di vsftpd /etc/vsftpd.conf utilizzando l’editor nano.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
sudo nano /etc/vsftpd.confDisabilita l’accesso anonimo al tuo server vsftpd cambiando l’opzione anonymous_enable in NO.
anonymous_enable=NOConsenti agli utenti locali all’interno del file /etc/passwd e agli utenti PAM di accedere al server vsftpd cambiando l’opzione local_enable in YES.
local_enable=YESConsenti agli utenti FTP di caricare file sul server vsftpd cambiando l’opzione write_enable in YES.
write_enable=YESOra abilita chroot o jail per gli utenti FTP aggiungendo le seguenti opzioni. Questo bloccherà l’utente FTP nella directory /home/$USER/chroot. Ad esempio, l’utente FTP bob sarà bloccato all’interno della directory /home/bob/chroot.
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/chrootSuccessivamente, aggiungi la seguente configurazione per impostare gli utenti virtuali di vsftpd. Qualsiasi utente all’interno del file /etc/vsftpd.userlist sarà autorizzato ad accedere al server vsftpd.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NOAggiungi le seguenti righe per proteggere il tuo server vsftpd con certificati SSL/TLS. Questo costringerà l’accesso degli utenti e la connessione di trasferimento dati a utilizzare connessioni sicure.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
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=HIGHOra aggiungi la configurazione qui sotto per impostare le connessioni in modalità passiva utilizzando porte tra 20000 e 25000.
pasv_min_port=20000
pasv_max_port=25000Salva e esci dal file quando hai finito.
Ora esegui il seguente comando systemctl per riavviare il servizio vsftpd e applicare le modifiche che hai effettuato.
sudo systemctl restart vsftpdCon questo, il tuo server vsftpd è ora in esecuzione con nuove configurazioni.
Configurazione del Firewall
Nel passaggio successivo, installerai UFW (Uncomplicated Firewall) sul tuo server Debian e proteggerai l’installazione del tuo server FTP con esso. Installerai UFW tramite APT, aprirai la porta del server FTP 20:21/tcp e la porta della connessione dati in modalità passiva 20000:25000/tcp.
Installa UFW utilizzando il seguente comando apt. Digita y per procedere con l’installazione.
sudo apt install ufw
Dopo che UFW è stato installato, esegui i comandi ufw qui sotto per aprire la porta per il servizio OpenSSH, le porte del server vsftpd 20:21 e la connessione FTP in modalità passiva tra le porte 20000 e 25000.
sudo ufw allow OpenSSH
sudo ufw allow 20:21/tcp
sudo ufw allow 20000:25000/tcpSuccessivamente, esegui il comando ufw qui sotto per avviare e abilitare UFW.
sudo ufw enableDigita per confermare e UFW dovrebbe essere in esecuzione e abilitato sul tuo sistema Debian.

Verifica lo stato dettagliato di UFW utilizzando il comando qui sotto.
sudo ufw statusL’output attivo conferma che UFW è in esecuzione e abilitato. Inoltre, il servizio OpenSSH è stato aggiunto e alcune porte per il server vsftpd 20:21/tcp e 20000:25000/tcp sono state aggiunte.

Configurazione degli Utenti Virtuali FTP
A questo punto, hai completato la configurazione del tuo server vsftpd, ora creerai un nuovo utente FTP che verrà utilizzato per accedere al server FTP e caricare file su di esso.
Esegui il seguente comando per creare un nuovo file /bin/ftponly. Quindi, rendilo eseguibile tramite il comando chmod qui sotto. Il file /bin/ftponly sarà utilizzato come shell predefinita per gli utenti FTP.
echo -e '#!/bin/sh
echo "Shell per utenti FTP solo."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponlyAggiungi il file /bin/ftponly a /etc/shells per assicurarti che sia una shell valida.
sudo echo "/bin/ftponly" >> /etc/shellsOra crea un nuovo utente FTP bob e imposta la password eseguendo il comando qui sotto. Inserisci la tua password e ripetila.
sudo useradd -m -s /bin/ftponly bob
sudo passwd bobDopo di che, esegui il seguente comando per creare una nuova directory chroot /home/bob/chroot per l’utente bob. Inoltre, ti assicurerai che la directory chroot /home/bob/chroot abbia la proprietà corretta.
sudo -u bob mkdir -p /home/bob/chroot
sudo chown -R bob: /home/bob/chrootSuccessivamente, esegui il comando qui sotto per creare altre nuove directory data e upload che verranno utilizzate per memorizzare i dati degli utenti FTP. Assicurati di configurare correttamente la proprietà per quelle directory.
sudo -u bob mkdir -p /home/bob/chroot/{data,upload}
sudo chown -R bob: /home/bob/chroot/{data,upload}Ora esegui il comando qui sotto per cambiare i permessi della directory /home/bob/chroot in 550 e entrambe le directory data e upload in 750.
sudo chmod 550 /home/bob/chroot
sudo chmod 750 /home/bob/chroot/{data,upload}Ora che hai creato un nuovo utente, esegui il comando qui sotto per aggiungere l’utente bob al file /etc/vsftpd.userlist.
echo "bob" >> /etc/vsftpd.userlistInfine, esegui il seguente comando per riavviare il servizio vsftpd e applicare le modifiche. Dopo aver eseguito il comando, il tuo utente FTP bob è pronto.
sudo systemctl restart vsftpdCaricamento di File sul Server FTP
Per verificare l’installazione del tuo server vsftpd, ti connetterai al server FTP con il nuovo utente che hai creato tramite software client FTP. Quindi, caricherai anche nuovi file per assicurarti che la tua installazione sia riuscita.
Scarica e installa il client FTP per la tua macchina locale. Puoi utilizzare FileZilla, che può essere installato su Windows, Linux e MacOS. Una volta installato FileZilla, aprilo per connetterti al tuo server FTP sicuro.
Inserisci l’indirizzo IP del tuo server FTP, e il nome utente e la password del tuo utente FTP. Quindi, fai clic su Quickconnect per confermare.
Seleziona l’opzione Fidati sempre di questo certificato nelle sessioni future e fai clic su OK per confermare.

Una volta connesso al tuo server FTP, dovresti vedere due directory di dati e upload disponibili sul tuo server FTP. Puoi caricare file in entrambe le directory data e upload, ma non puoi caricare file al di fuori di quelle directory protette tramite chroot.

Puoi trascinare e rilasciare i tuoi file per caricarli sul server FTP.

Conclusione
Per concludere, hai creato con successo un server FTP sicuro con vsftpd su un server Debian 12. Hai anche protetto l’installazione del tuo server FTP tramite UFW (Uncomplicated Firewall) e hai imparato come creare utenti FTP. Ora puoi utilizzare il server FTP come principale mezzo di trasferimento dati tra la tua macchina locale e il tuo server. Puoi anche trovare un altro software client FTP secondo le tue preferenze.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.