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

update repo

Ora installa il pacchetto vsftpd utilizzando il comando apt install qui sotto.

sudo apt install vsftpd

Conferma l’installazione digitando y e premi INVIO.

install vsftpd

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 vsftpd

L’output seguente conferma che il servizio vsftpd è in esecuzione e abilitato. Inoltre, il servizio vsftpd verrà eseguito automaticamente all’avvio del sistema.

verify vsftpd

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.pem

Inserisci le tue informazioni quando richiesto. Dopo che il processo è terminato, i tuoi certificati TLS saranno disponibili in /etc/ssl/private/vsftpd.pem.

generate tls

Ora esegui il comando qui sotto per creare un nuovo file /etc/vsftpd.userlist per memorizzare gli utenti FTP.

touch /etc/vsftpd.userlist

Dopo 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.conf

Disabilita l’accesso anonimo al tuo server vsftpd cambiando l’opzione anonymous_enable in NO.

anonymous_enable=NO

Consenti 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=YES

Consenti agli utenti FTP di caricare file sul server vsftpd cambiando l’opzione write_enable in YES.

write_enable=YES

Ora 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/chroot

Successivamente, 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=NO

Aggiungi 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=HIGH

Ora 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=25000

Salva 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 vsftpd

Con 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

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/tcp

Successivamente, esegui il comando ufw qui sotto per avviare e abilitare UFW.

sudo ufw enable

Digita per confermare e UFW dovrebbe essere in esecuzione e abilitato sul tuo sistema Debian.

setup ufw

Verifica lo stato dettagliato di UFW utilizzando il comando qui sotto.

sudo ufw status

L’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.

verify ufw

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/ftponly

Aggiungi il file /bin/ftponly a /etc/shells per assicurarti che sia una shell valida.

sudo echo "/bin/ftponly" >> /etc/shells

Ora 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 bob

Dopo 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/chroot

Successivamente, 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.userlist

Infine, 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 vsftpd

Caricamento 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.

accept certificates

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.

connected to ftp server

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

uploAded files

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.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.