Il protocollo FTP è una delle soluzioni più apprezzate per l’upload e il download dei file. In questa guida scoprirai come configurare il tuo server FTP su Ubuntu e a cosa dovresti assolutamente prestare attenzione.

Installazione di un server FTP su Ubuntu

Prima di poter cominciare con la configurazione del tuo server FTP, devi trovare il software adatto. I sistemi Ubuntu come Ubuntu 22.04 hanno già una propria soluzione a disposizione con vsftpd nel gestore di pacchetti, che devi solo installare. Per installare l’applicazione, è sufficiente aprire il terminale e dare il seguente comando:

sudo apt-get install vsftpd
bash
Immagine: Ubuntu 22.04: installazione di vsftpd nel terminale
I permessi di root e di amministratore (sudo) sono necessari per l’installazione di vsftpd.
Consiglio

Vorresti salvare o trasferire i tuoi dati? Crea una base sicura per la trasmissione e noleggia il tuo server secure FTP su IONOS, con SSH, SSL/TLS e backup giornalieri.

Il giusto hardware per il tuo server FTP su Ubuntu

A seconda dello scenario applicativo, un server FTP su Ubuntu 22.04 presenta requisiti diversi. Per ottenere un collegamento ottimale a internet ti consigliamo in ogni caso l’hosting affidandoti a un provider professionale come IONOS. Con i server virtuali (VPS) e i server dedicati puoi scegliere fra due modelli di server per utilizzare un potente server FTP.

La panoramica seguente mostra tre possibili scenari per il tuo server FTP su Ubuntu e il pacchetto IONOS più adatto allo scopo.

Scenario server FTP su Ubuntu Pacchetto IONOS adatto
Server FTP semplice; trasmissione dati sporadica VPS Linux M
Server FTP esteso nella propria azienda; trasmissione dati regolare VPS Linux XL
Server FTP pubblico; trasmissione dati continua Server dedicato AR6-32 SSD
Server virtuali (VPS)
Virtualizzazione totale con accesso root completo
  • Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
  • Storage SSD NVMe veloce
  • Plesk Web Host Edition incluso

Tutorial del server FTP su Ubuntu: come configurare il servizio

Dopo il breve processo di installazione puoi chiudere di nuovo il terminale e cominciare con la configurazione del server FTP su Ubuntu. A tal fine, apri il file di configurazione vsftpd.conf, che si trova per impostazione predefinita nella cartella etc.

Immagine: Screenshot dei documenti disponibili nella cartella etc
La cartella “etc” contiene diversi file di configurazione e informazioni, come ad esempio il file vsftpd.conf.

Per poter aprire e modificare il file di configurazione del server FTP su Ubuntu è necessario un semplice editor di testo. Per impostazione standard su Ubuntu trovi già installato il programma gedit (editor di GNOME).

Il contenuto testuale si può suddividere in due ambiti:

  • Le righe che cominciano con il simbolo del cancelletto (#) sono trasformate in commenti e vengono perciò ignorate dal server vsftpd. Si tratta di righe con commenti riguardo alle diverse opzioni di impostazione o di funzioni disattivate.
  • Le righe che non cominciano con il simbolo del cancelletto comprendono invece quelle informazioni che vengono interpretate successivamente dal server.
Immagine: Visualizzazione del file vsftpd.conf
I cancelletti non sono solo segnali per i server vsftpd, ma servono anche per la comprensione e l’ottimizzazione della leggibilità.

Per l’ulteriore configurazione del server FTP su Ubuntu 22.04 non ci sono direttive generali; infatti, la configurazione varia a seconda di quali requisiti decidi di imporre al server FTP. Nei paragrafi seguenti di questa guida per il server FTP su Ubuntu trovi perciò informazioni sulle opzioni di impostazione più importanti e le loro funzioni.

N.B.

Per salvare le modifiche al file vsftpd.conf hai bisogno dei permessi di root, altrimenti puoi solo leggere il file di configurazione.

Consentire l’accesso anonimo

Per impostazione standard vsftpd è configurato di modo che gli utenti si possano registrare sul server FTP solo con un account specifico. Il File Transfer Protocol consente però anche una procedura di login, in cui gli utenti possono registrarsi anonimamente senza dover fornire dati personali. Per attivare questo tipo di accesso, cerca la voce anonymous_enable=NO e sostituisci il parametro NO con YES:

anonymous_enable=YES
txt
Immagine: vsftpd.conf: configurazione dell’accesso FTP anonimo
Digitando la riga “anonymous enable=YES” puoi abilitare il login anonimo sul tuo server FTP su Ubuntu.

Ampliare i permessi degli utenti anonimi

I permessi sono per impostazione predefinita molto limitati se l’utente si registra anonimamente su un server FTP Ubuntu. Così è ad esempio possibile solo scaricare i file che sono leggibili per tutte le persone (anon_world_readable_only=YES). Se neghi questa direttiva, sarà consentito anche il download degli altri file.

N.B.

Se il server FTP è connesso a internet, ti sconsigliamo di ampliare i permessi per le sessioni anonime. In caso contrario corri il rischio che terzi prendano il controllo del tuo server.

Ulteriori opzioni disponibili per ampliare i permessi degli utenti anonimi sono le seguenti:

  • anon_mkdir_write_enable: gli utenti anonimi possono creare nuove directory se inseriscono qui il valore YES ed eliminando il simbolo # per i commenti. Come requisito è necessario che sia attivato write_enable.
  • anon_other_write_enable=YES: se inserisci questa riga, puoi rinominare ed eliminare i file e le directory sul server FTP anche nel caso di un accesso non autorizzato.
  • anon_upload_enable=YES: con questa riga di testo viene attivato l’upload anonimo di file. A tal fine, i prerequisiti sono aver attivato write_enable e creato una directory di upload separata, visto che gli utenti anonimi non possono scrivere direttamente nella cartella home.

Limitare l’accesso per gli utenti locali alla directory home

Se desideri garantire l’accesso alla directory home /home/username solo agli utenti locali, puoi definire anche questa possibilità nel vsftpd.conf. Il parametro di markup responsabile in questo caso è chroot_local_user. In Ubuntu 22.04, questa riga è intesa come commento predefinito. Elimina il simbolo # per vietare agli account locali l’accesso a tutte le altre directory:

chroot_local_user=YES
txt

Attivare e disattivare il login degli utenti locali

Per garantire agli utenti locali l’accesso al server FTP, la voce local-enable=YES deve essere impostata (in genere è così per impostazione standard). Se desideri negare agli utenti locali l’accesso al tuo server FTP su Ubuntu, devi trasformare in commento solo la riga relativa, anteponendo il simbolo del cancelletto:

#local_enable=YES
txt
Immagine: Server FTP su Ubuntu: configurazione die permessi degli utenti locali
Per impostazione predefinita, nel vsftpd.conf è consentito il login a tutti gli account utente locali.

Attivare l’accesso globale in scrittura

La configurazione standard di Ubuntu 22.04 definisce che possono utilizzare i comandi FTP sia gli account locali che quelli anonimi. La riga corrispondente per la scrittura globale write_enable=YES viene trasformata in commento. Se deve essere data la possibilità alle persone che hanno effettuato il login di modificare il file system del server vsftpd, occorre di conseguenza rimuovere il simbolo del cancelletto:

write_enable=YES
txt

Limitare l’accesso FTP a determinati utenti

In particolari situazioni può essere utile vietare a determinati utenti l’accesso al server FTP su Ubuntu o definire chiaramente quali utenti possono effettuare il login.

Per vietare l’accesso a determinati utenti aggiungi le seguenti righe alla fine del file di configurazione:

userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txt

In questo modo si vieta l’accesso agli utenti che sono inseriti nel file esterno vsftpd.user_list. Tutti gli altri utenti possono in questo caso registrarsi come di consueto.

Se desideri concedere l’accesso solo a determinate persone, è necessario negare il parametro userlist_deny. Il risultato è che soltanto gli account utente che hai inserito nel file vsftpd.user_list possono effettuare il login:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txt
N.B.

In entrambi i casi è necessario creare manualmente il file di testo esterno vsftpd.user_list nella directory /etc/. Per ogni voce di account utente devi utilizzare una riga separata.

Opzione Valore standard Descrizione
download_enable - Attiva (YES) o disattiva i download (NO)
ssl_enable NO Abilita la crittografia SSL per l’accesso FTP
force_anon_logins_ssl NO Rende obbligatoria la connessione SSL per gli utenti anonimi (YES)
force_local_logins_ssl NO Rende obbligatoria la connessione SSL per gli utenti locali (YES)
anon_max_rate 0 Velocità di trasmissione massima (in byte/secondo) per gli utenti anonimi; 0 indica una velocità illimitata
local_max_rate 0 Velocità di trasmissione massima (in byte/secondo) per gli utenti locali; 0 indica una velocità illimitata
max_clients 0 Valore massimo di client che possono effettuare l’accesso contemporaneamente; 0 significa che non ci sono limitazioni
max_per_ip 0 Numero massimo di connessioni che sono possibili da un singolo indirizzo IP; 0 significa che non ci sono limitazioni
anon_root /home/ftp Directory standard per gli utenti anonimi

Una lista completa di tutte le opzioni è consultabile dando il seguente comando sul terminale:

man vsftpd.conf
bash
Immagine: Pagina man del file di configurazione vsftpd
Nei manuali dell’applicazione server FTP su Ubuntu trovi descrizioni dettagliate per tutte le opzioni disponibili.
Server dedicati
Performance e innovazione
  • Hardware dedicato al 100%
  • Fatturazione al minuto
  • Potenziato dai processori Intel® Xeon® e AMD

Come utilizzare il server FTP su Ubuntu 22.04

Dopo aver configurato il file di configurazione secondo le tue preferenze, ricordati di salvarlo. Per fare in modo che l’applicazione server apporti tutte le modifiche, è necessario un riavvio, eseguibile con il seguente comando:

sudo systemctl restart vsftpd
bash

Se non hai ancora riavviato il server FTP, puoi farlo con questo comando dal terminale:

sudo systemctl start vsftpd
bash
Consiglio

Se vuoi chiudere nuovamente il server FTP su Ubuntu, ti basta sostituire il parametro start con stop nel comando precedente.

Creare un account utente FTP

Dopo aver impostato e avviato il tuo server FTP su Ubuntu, hai bisogno di un account utente per poter effettuare il login. Ad esempi, a questo punto creiamo l’utente con il nome “ftpuser” e la password “test123”.

sudo useradd -m user -s/usr/sbin/nologin
sudo passwd user
bash

Successivamente, consenti l’accesso alla shell NoLogin inserendo alla fine del file /etc/shells la riga seguente:

/usr/sbin/nologin
txt

Stabilire la connessione al server FTP

Ora è possibile utilizzare l’account utente creato per instaurare la connessione al server vsftpd con il client FTP di tua scelta. Una famosa soluzione già presente su Ubuntu è l’applicazione open source multipiattaforma FileZilla. L’installazione avviene quindi come di consueto dal terminale:

sudo apt-get install filezilla
bash

Apri FileZilla e aggiungi una nuova connessione con i dati richiesti: alla voce host inserisci l’indirizzo IP del tuo server FTP su Ubuntu, che ascolta le richieste sulla porta 21 (se non hai modificato le impostazioni standard). Scegli il File Transfer Protocol e se possibile SFTP (Secure FTP) o FTP over TLS, visto che una semplice connessione FTP tramite la porta 21 rappresenta davvero un elevato rischio per la sicurezza. Nel campo “Logon Type” scegli la voce “Normal”. Per ”User” e “Password” hai bisogno dei dati di login generati prima. Fai clic su ”Connect“ per collegarti al server.

Immagine: Gestore siti di FileZilla
Il client FileZilla offre opzioni di impostazione dettagliate per instaurare una connessione a un server FTP.

500 OOPS: una funzione di sicurezza che causa problemi

Se hai configurato un server FTP su Ubuntu e delle determinate impostazioni non funzionano, ciò può dipendere da diversi motivi: quindi è pensabile che tu abbia dimenticato di riavviare il server FTP o di proteggere il file di configurazione. Altrettanto velocemente si intrufolano degli errori di sintassi nel file vsftpd.conf, quando ad esempio viene inserito uno spazio al posto sbagliato. Un messaggio di errore frequente che ha tutta un’altra causa è il seguente:

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

In questo messaggio che può verificarsi durante il tentativo di connessione non si tratta però di un messaggio di errore in senso stretto, ma di una funzione di sicurezza. Alla base vi è una possibile vulnerabilità della libreria glibc (la libreria standard di Ubuntu del linguaggio di programmazione C), che gli utenti potrebbero sfruttare con i permessi di scrittura per la loro directory root. Per aggirare questo blocco di sicurezza, esistono due soluzioni:

  1. Rimuovere i permessi di scrittura nella root dell’utente: revoca agli utenti locali i permessi di scrittura per la propria directory root, di modo che possano ancora scrivere nelle sottocartelle. Questa limitazione risolve il problema “500 OOPS”, si dimostra però poco vantaggiosa se i file devono essere scritti forzatamente nella root. Il comando dal terminale per questa soluzione si presenta così:
chmod a-w */home/user*
bash
  1. Consentire i permessi di scrittura per la root nel file vsftpd.conf: se non temi alcuna violazione dei permessi di scrittura, puoi anche comunicare al server FTP su Ubuntu che la funzione è richiesta esplicitamente. A questo scopo è necessaria solamente un’altra voce nel file di configurazione:
allow_writeable_chroot=YES
txt
Novità: offerta VPS
Il tuo server virtuale a prezzi imbattibili

Prova il nostro VPS. I primi 30 giorni sono in omaggio e se allo scadere del periodo di prova non sarai convinto, ti rimborseremo tutte le spese sostenute.

Hai trovato questo articolo utile?
Vai al menu principale