# Server FTP su Ubuntu: come funziona la configurazione

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](https://security.appspot.com/vsftpd.html "Server FTP con licenza GPL per sistemi compatibili con Unix") nel gestore di pacchetti, che devi solo installare. Per installare l’applicazione, è sufficiente aprire il terminale e dare il seguente comando:

```bash
sudo apt-get install vsftpd
```

[![Immagine: Ubuntu 22.04: installazione di vsftpd nel terminale](https://www.ionos.it/digitalguide/fileadmin/_processed_/0/5/csm_vsftpd-installation-ubuntu-2204_90633f9b4b.webp "Ubuntu 22.04: installazione di vsftpd nel terminale")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/vsftpd-installation-ubuntu-2204.png) 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](https://www.ionos.it/hosting/server-ftp "Noleggia un server secure FTP su IONOS") su IONOS, con SSH, SSL/[TLS](https://www.ionos.it/digitalguide/server/sicurezza/tls-transport-layer-security/) 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)](https://www.ionos.it/server/vps "Noleggia VPS su IONOS a un prezzo conveniente") e i [server dedicati](https://www.ionos.it/server/dedicated-server "Server dedicati di IONOS") 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.

<table>
  <thead>
    <tr>
      <th>Scenario server FTP su Ubuntu</th>
      <th>Pacchetto IONOS adatto</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Server FTP semplice; trasmissione dati sporadica</td>
      <td>VPS Linux M</td>
    </tr>
    <tr>
      <td>Server FTP esteso nella propria azienda; trasmissione dati regolare</td>
      <td>VPS Linux XL</td>
    </tr>
    <tr>
      <td>Server FTP pubblico; trasmissione dati continua</td>
      <td>Server dedicato AR6-32 SSD</td>
    </tr>
  </tbody>
</table>

## 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](https://www.ionos.it/digitalguide/fileadmin/_processed_/1/b/csm_etc-folder-vsftpd-conf_580205b5d1.webp "Screenshot dei documenti disponibili nella cartella etc")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/etc-folder-vsftpd-conf.png) 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](https://www.ionos.it/digitalguide/fileadmin/_processed_/3/a/csm_vsftpd-conf-gedit_45c5d273e0.webp "Visualizzazione del file vsftpd.conf")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/vsftpd-conf-gedit.png) 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](https://www.ionos.it/digitalguide/server/know-how/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`:

```txt
anonymous_enable=YES
```

[![Immagine: vsftpd.conf: configurazione dell’accesso FTP anonimo](https://www.ionos.it/digitalguide/fileadmin/_processed_/c/3/csm_ubuntu-ftp-server-anonymous-login_d4dd7e57f4.webp "vsftpd.conf: configurazione dell’accesso FTP anonimo")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/ubuntu-ftp-server-anonymous-login.png) 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:

```txt
chroot_local_user=YES
```

### 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:

```txt
#local_enable=YES
```

[![Immagine: Server FTP su Ubuntu: configurazione die permessi degli utenti locali](https://www.ionos.it/digitalguide/fileadmin/_processed_/e/2/csm_local-ftp-user-allowed_5740df46aa.webp "Server FTP su Ubuntu: configurazione die permessi degli utenti locali")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/local-ftp-user-allowed.png) 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:

```txt
write_enable=YES
```

### 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:

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

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:

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

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.

### Server FTP su Ubuntu: altre opzioni in una tabella di riepilogo

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

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

```bash
man vsftpd.conf
```

[![Immagine: Pagina man del file di configurazione vsftpd](https://www.ionos.it/digitalguide/fileadmin/_processed_/5/0/csm_vsftpd-conf-manuals_ced84c321a.webp "Pagina man del file di configurazione vsftpd")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/vsftpd-conf-manuals.png) Nei manuali dell’applicazione server FTP su Ubuntu trovi descrizioni dettagliate per tutte le opzioni disponibili. ## 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:

```bash
sudo systemctl restart vsftpd
```

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

```bash
sudo systemctl start vsftpd
```

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

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

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

```txt
/usr/sbin/nologin
```

### 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](https://www.ionos.it/digitalguide/server/configurazione/tutorial-sul-programma-ftp-filezilla/). L’installazione avviene quindi come di consueto dal terminale:

```bash
sudo apt-get install filezilla
```

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](https://www.ionos.it/digitalguide/fileadmin/_processed_/b/e/csm_filezilla-site-manager_b93e88813c.webp "Gestore siti di FileZilla")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/filezilla-site-manager.png) 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ì:

```bash
chmod a-w */home/user*
```

2. **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:

```txt
allow_writeable_chroot=YES
```


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/server-ftp-su-ubuntu-installazione-e-configurazione/](https://www.ionos.it/digitalguide/server/configurazione/server-ftp-su-ubuntu-installazione-e-configurazione/) for AI/LLM consumption.