.
- 1 1. Introduzione
- 2 2. Installazione di vsftpd
- 3 3. Configurazione di base
- 4 4. Migliorare la Sicurezza
- 5 5. Supporto per Nomi File Giapponesi
- 6 6. Modalità Passiva e Configurazione del Firewall
- 7 7. Configurazione per Utente
- 8 8. Verifica dell’Operatività
- 9 9. Risoluzione dei Problemi
- 10 10. Conclusione
- 11 FAQ
1. Introduzione
Creare un server FTP su Ubuntu è una soluzione estremamente pratica per sviluppatori e amministratori che desiderano trasferire file in modo efficiente. Soprattutto quando si configura un server domestico o un semplice ambiente di condivisione file interno, FTP (File Transfer Protocol) rimane un’opzione facile da distribuire e diretta.
Che cos’è un server FTP?
Un server FTP è un software server dedicato usato per trasferire file su Internet o su una rete locale. Gli utenti si connettono al server tramite un client FTP per caricare o scaricare file.
Mentre alternative più sicure come SFTP e SCP sono diventate più comuni, FTP è ancora ampiamente utilizzato grazie alla sua semplicità e leggerezza. In reti ristrette o per casi d’uso di base, FTP continua a essere un protocollo pratico ed efficace.
Il ruolo di un server FTP su Ubuntu
Ubuntu è una delle distribuzioni Linux più popolari ed è ampiamente usata in ambienti server. Configurando un server FTP su Ubuntu, la condivisione di file tra più dispositivi e utenti diventa molto più semplice.
Tipici casi d’uso includono:
- Trasferimento di file verso un server web
- Integrazione con dispositivi IoT come Raspberry Pi
- Condivisione di documenti interni all’azienda
La combinazione di Ubuntu e un server FTP consente una gestione dei file flessibile ed efficiente.
Scopo di questo articolo e pubblico di riferimento
Questo articolo spiega come creare un server FTP su Ubuntu passo dopo passo, in modo comprensibile anche per i principianti. È destinato a lettori che:
- Conoscono le operazioni di base di Ubuntu ma sono nuovi a FTP
- Vogliono creare un server FTP per uso locale o per piccole attività
- Vogliono comprendere le considerazioni di sicurezza e questioni come la codifica dei nomi file
Seguendo i passaggi di questa guida, sarete in grado di costruire un ambiente server FTP sicuro e pratico. Nella sezione successiva inizieremo con l’installazione di uno dei server FTP più popolari disponibili: vsftpd.
2. Installazione di vsftpd
Quando si costruisce un server FTP su Ubuntu, il software più comunemente usato è vsftpd (Very Secure FTP Daemon). Come suggerisce il nome, è progettato con la sicurezza in mente ed è leggero e stabile, il che lo rende ampiamente adottato in ambienti aziendali ed educativi.
Questa sezione spiega come installare vsftpd su Ubuntu e configurare il servizio per l’avvio automatico.
Installazione di vsftpd
Per prima cosa, installate vsftpd usando il gestore di pacchetti di Ubuntu (APT). Eseguite i seguenti comandi in ordine:
sudo apt update
sudo apt install vsftpd
sudo apt update: Aggiorna l’elenco dei pacchettisudo apt install vsftpd: Installa il pacchetto vsftpd
Una volta completata l’installazione, il servizio vsftpd si avvia automaticamente.
Verifica dello stato del servizio
Per verificare che vsftpd sia installato e in esecuzione correttamente, usate il comando seguente:
sudo systemctl status vsftpd
Se vedete active (running), il server FTP sta funzionando normalmente.
Abilitazione dell’avvio automatico
Di solito vsftpd è già configurato per avviarsi automaticamente, ma è buona pratica confermarlo:
sudo systemctl enable vsftpd
Questo garantisce che vsftpd si avvii automaticamente dopo i riavvii del sistema.
Non dimenticare le impostazioni del firewall (UFW)
Se UFW (Uncomplicated Firewall) è abilitato su Ubuntu, dovete consentire le porte FTP:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
Questo apre le porte standard di FTP: 20 (dati) e 21 (comandi).
Dopo aver modificato le regole del firewall, ricaricate UFW:
sudo ufw reload
3. Configurazione di base
Dopo aver installato vsftpd, il passo successivo è personalizzare il suo comportamento modificando il file di configurazione. Sebbene vsftpd offra un controllo molto fine, molte funzionalità sono disabilitate per impostazione predefinita, quindi è necessario abilitare esplicitamente le funzioni di cui avete bisogno.
Questa sezione spiega le opzioni di configurazione più comuni ed essenziali.
Posizione del file di configurazione
Il file di configurazione principale per vsftpd si trova in:
/etc/vsftpd.conf
Modifica il file utilizzando il seguente comando:
sudo nano /etc/vsftpd.conf
Dopo aver apportato le modifiche, riavvia vsftpd per applicarle:
sudo systemctl restart vsftpd
Consenti Operazioni di Scrittura (Upload, Cancellazioni, Modifiche)
Per impostazione predefinita, vsftpd non consente l’upload o la modifica di file. Per abilitare l’accesso in scrittura, decommenta o aggiungi la seguente riga:
write_enable=YES
Questo consente agli utenti di caricare, eliminare e modificare file all’interno delle loro directory home.
Abilita Accesso per Utenti Locali
Per consentire agli utenti di sistema Ubuntu di accedere via FTP, abilita l’opzione seguente:
local_enable=YES
Questo consente agli utenti elencati in /etc/passwd di accedere utilizzando FTP.
Abilita Elenco Directory
Se l’elenco delle directory fallisce nei client FTP, verifica le seguenti impostazioni:
listen=YES
listen_ipv6=NO
Se IPv6 è disabilitato sul tuo sistema ma listen_ipv6=YES rimane abilitato, potrebbero verificarsi problemi di connessione.
Imposta un Banner di Accesso (Opzionale)
Puoi visualizzare un messaggio personalizzato quando gli utenti si connettono al server FTP:
ftpd_banner=Welcome to your custom Ubuntu FTP server!
Questo è utile per visualizzare avvisi operativi o informazioni di contatto.
Abilita Trasferimenti in Modalità ASCII (Se Richiesto)
Se devi trasferire correttamente file di testo con formati di nuova riga diversi, abilita la modalità ASCII:
ascii_upload_enable=YES
ascii_download_enable=YES
La modalità binaria è sufficiente nella maggior parte dei casi, ma la modalità ASCII può essere utile in ambienti specifici.
vsftpd richiede un permesso esplicito per ogni funzionalità, rendendo la configurazione trasparente e sicura. Riavvia sempre il servizio dopo aver modificato il file di configurazione.
4. Migliorare la Sicurezza
Sebbene FTP sia comodo, non crittografa il traffico per impostazione predefinita, il che solleva preoccupazioni di sicurezza—specialmente quando utilizzato su internet. Una configurazione di sicurezza adeguata è essenziale.
Questa sezione introduce le principali misure di sicurezza disponibili in vsftpd.
Restringi l’Accesso degli Utenti con chroot
Consentire agli utenti FTP di accedere a directory al di fuori della loro directory home è pericoloso. Usa chroot per confinare gli utenti nelle loro directory home.
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_local_user=YESimpedisce agli utenti di accedere a directory al di sopra della loro directory home.allow_writeable_chroot=YESè richiesto quando la directory home ha permessi di scrittura.
Senza questa impostazione, si verifica il seguente errore:
500 OOPS: vsftpd: refusing to run with writable root inside chrootRestringi gli Utenti di Accesso (Lista Bianca)
Consentire a tutti gli utenti di sistema di accedere via FTP aumenta il rischio di sicurezza. Invece, restringi l’accesso utilizzando una lista bianca.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Aggiungi gli utenti consentiti alla lista:
sudo nano /etc/vsftpd.userlist
ftpuser1
ftpuser2
Solo gli utenti esplicitamente elencati possono accedere.
Abilita Comunicazione Crittografata con FTPS (SSL/TLS)
L’FTP standard trasmette credenziali e dati in testo semplice. Per prevenire intercettazioni, abilita FTPS (FTP su SSL/TLS).
Crea un certificato SSL:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Aggiungi quanto segue a vsftpd.conf:
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
I client possono ora connettersi utilizzando FTPS esplicito.
Disabilita Funzionalità Non Necessarie
Disabilita le funzionalità inutilizzate per ridurre la superficie di attacco:
anonymous_enable=NO
Questo disabilita esplicitamente l’accesso anonimo.
5. Supporto per Nomi File Giapponesi
Durante il trasferimento di file via FTP, i nomi file giapponesi potrebbero diventare illeggibili a causa di discrepanze di codifica—specialmente tra Windows e Ubuntu.
Cause Comuni dei Problemi di Codifica dei Nomi dei File
- La locale di Ubuntu non è impostata su UTF-8
- La codifica del client FTP non corrisponde
- vsftpd non opera in modalità UTF-8
Verifica e Configurazione della Locale di Ubuntu
locale
LANG=ja_JP.UTF-8
Se UTF-8 non è abilitato:
sudo update-locale LANG=ja_JP.UTF-8
source /etc/default/locale
sudo locale-gen ja_JP.UTF-8
Verifica del Supporto UTF-8 di vsftpd
utf8_filesystem=YES
Questa opzione potrebbe non esistere in tutte le versioni, ma le locale di sistema UTF-8 sono solitamente sufficienti.
Impostazioni del Client FTP (Esempio con FileZilla)
- Apri il Gestore Siti
- Seleziona il server
- Apri la scheda Charset
- Abilita il charset personalizzato e impostalo su
UTF-8
6. Modalità Passiva e Configurazione del Firewall
I problemi FTP come l’elenco delle directory fallito o i trasferimenti bloccati sono spesso causati da una modalità passiva errata o da impostazioni del firewall.
Cos’è la Modalità Passiva?
- Modalità Attiva: Il server avvia la connessione dati
- Modalità Passiva: Il client avvia tutte le connessioni
La modalità passiva è fortemente raccomandata per le reti moderne.
Abilita la Modalità Passiva in vsftpd
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
Specifica l’Indirizzo IP Esterno (Ambienti NAT)
pasv_address=203.0.113.45
Apri le Porte Richieste in UFW
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
7. Configurazione per Utente
Negli ambienti di produzione, è comune assegnare permessi e directory diversi per utente.
Crea Utenti FTP Dedicati
sudo adduser ftpuser1
sudo useradd -m -s /usr/sbin/nologin ftpuser2
Struttura di Directory Raccomandata
/home/ftpuser1/
└── files/
sudo mkdir /home/ftpuser1/files
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/files
sudo chmod 755 /home/ftpuser1
File di Configurazione Specifici per Utente
user_config_dir=/etc/vsftpd_user_conf
sudo mkdir /etc/vsftpd_user_conf
sudo nano /etc/vsftpd_user_conf/ftpuser1
local_root=/home/ftpuser1/files
write_enable=YES
8. Verifica dell’Operatività
Dopo aver completato tutti i passaggi di configurazione, verifica che il server FTP operi correttamente.
Test da Riga di Comando
ftp localhost
ls
cd files
put test.txt
get test.txt
Test con Client GUI (FileZilla)
Verifica la connessione, l’elenco delle directory, i caricamenti e i download.
9. Risoluzione dei Problemi
I problemi FTP comuni e le soluzioni includono fallimenti di login, errori di permessi, configurazione errata della modalità passiva e problemi di codifica.
10. Conclusione
Questo articolo ha spiegato come costruire un server FTP sicuro e pratico su Ubuntu utilizzando vsftpd, coprendo installazione, configurazione, sicurezza, codifica, modalità passiva, gestione utenti, verifica e risoluzione dei problemi.
FAQ
Domande frequenti sulla configurazione e l’operatività del server FTP su Ubuntu.


