Installazione di un server FTP (vsftpd) su Ubuntu 18.04 / 18.10 / 19.04 / 19.10

postato in: Articles | 0

Prima di iniziare

È sorprendente come molti sviluppatori web siano ancora all’oscuro di SFTP e dei vantaggi rispetto a FTP/FTPS. SFTP viene fornito con Linux Server preinstallato e funziona proprio come normale FTP, ma è più sicuro e meno problemi da configurare. Se il tuo client FTP supporta SFTP, dovresti usarlo!

  • Come configurare SFTP per un server web document root

Installa vsftpd

Iniziamo aggiornando gli elenchi dei pacchetti e installando vsftpd su Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,

Di seguito abbiamo due comandi separati da&&. Il primo comando aggiornerà gli elenchi dei pacchetti per assicurarsi di ottenere l’ultima versione e le dipendenze per vsftpd. Il secondo comando scaricherà e installerà vsftpd. Premere yeENTER quando viene chiesto di continuare.

sudo apt update && sudo apt install vsftpd

Una volta installato, controllare lo stato di vsftpd

sudo service vsftpd status

Sopra possiamo vedere il nostro server FTP è ora attivo e funzionante.,

Configura firewall

Se non lo hai già fatto, si consiglia di abilitare ilufw firewall per Ubuntu 18.04 / 18.10 / 19.04 / 19.10. Prima di abilitareufw firewall, assicurati di aggiungere una regola per SSH, altrimenti potresti essere bloccato dal tuo server se sei connesso da remoto. Se non si desidera impostare un firewall, passare al passaggio 3.

sudo ufw allow OpenSSH

Apriamo le porte 20 e 21 per FTP e le porte 40000-50000 per FTP passivo. Apriremo anche la porta 990 per TLS, che configureremo in seguito.,

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp

Ora, abilitare il firewall se non lo è già. Premere yeENTER se si avverte di interrompere la connessione SSH.

sudo ufw enable

controllare lo stato del firewall, eseguire:

sudo ufw status

Se il firewall è in esecuzione, si dovrebbe vedere Status: active e le regole del firewall che abbiamo appena aggiunto.

Crea utente FTP

Ora creeremo un nuovo utente che useremo per accedere a FTP., In questo esempio, creeremo un nuovo utente chiamato ftpuser.

sudo adduser ftpuser

Genera una password complessa e tienila al sicuro.

Potrebbe anche essere richiesto di inserire alcune informazioni di contatto. Puoi semplicemente premere ENTER per ciascuno di questi.

Se vuoi solo ftpuser per accedere via FTP, dovresti disabilitare il loro accesso SSH inserendo il loro nome utente nel file di configurazione SSH. In caso contrario, passare al passaggio 4.

Apri la configurazione SSH in nano.,

sudo nano /etc/ssh/sshd_config

Aggiungere quanto segue nella parte inferiore del file sostituendo ftpuser con l’utente che si desidera negare l’accesso SSH e SFTP. È possibile aggiungere più utenti qui separati da un unico spazio. (Per incollare in nano, premere il tasto destro del mouse).

/etc/ssh/sshd_config
DenyUsers ftpuser

salvare il file e uscire, premere CTRL + X premere Y e premere ENTER.

Riavviare il servizio SSH.,

sudo service sshd restart

Autorizzazioni directory

Ora devi decidere dove questo nuovo utente FTP è autorizzato a visualizzare e caricare file.

vsftpd utilizza le jail chroot per limitare gli utenti alle loro directory home e richiede che la directory home non sia scrivibile. Per questo motivo, dobbiamo impostare alcune directory e autorizzazioni.

Se si prevede di utilizzare questo account utente FTP per caricare file su un server Web, continuare al passaggio 4.1. Se si desidera solo caricare in una cartella home, passare al passaggio 4.2.

4.1., Caricare su un server Web

In molti casi, si desidera essere in grado di caricare i file nella radice del documento sul server Web.

Se si è seguita una precedente guida per l’impostazione di più domini, la radice del documento può essere situato da qualche parte, come /var/www/test1.com/public_html in questo caso, è necessario impostare la cartella home per ftpuser nella cartella sopra la radice del documento: /var/www/test1.com (in sostituzione test1.com per il tuo dominio).,

Se non si utilizzano più domini, assumeremo che si stia utilizzando la radice del documento predefinito /var/www/html sia per Apache che per Nginx in Ubuntu 18.04 / 18.10 / 19.04 / 19.10. In questo scenario, dobbiamo rendere /var/www/la directory home per il nostro utenteftpuser.

Impostiamo la cartella sopra la radice del documento come home directory perftpuser.

sudo usermod -d /var/www ftpuser

Questo permetterà al nostro utente FTP di scrivere e modificare i file nella directory principale del documento.,

sudo chown ftpuser:ftpuser /var/www/html

Ora vai al passaggio 5 per configurare vsftpd.

4.2 Carica in una cartella Home

Se invece vuoi che questo utente carichi i file nella directory home, crea una nuova directory chiamataftp nella directory home dell’utente e un’altra al suo interno chiamatafiles. In questo esempio qui sotto il nostro utente è chiamato ftpuser.

sudo mkdir /home/ftpuser/ftp

Imposta la proprietà della directory ftpsu no nobody:nogroup.,

sudo chown nobody:nogroup /home/ftpuser/ftp

Imposta le autorizzazioni per la directory ftpusando chmod in modo che non sia scrivibile da nessuno, altrimenti vsftpd non ti permetterà di accedere. a-w significaa = tutti/tutti- = rimuoviw = autorizzazione di scrittura, quindi, rimuovi le autorizzazioni di scrittura per tutti.

sudo chmod a-w /home/ftpuser/ftp

Successivamente creeremo una nuova directory all’interno di /ftp dove l’utente può visualizzare e caricare file.,

sudo mkdir /home/ftpuser/ftp/files

Assegna la proprietà di questa directory al nostro nuovo utente FTP altrimenti non sarà in grado di scrivervi.

sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

Configura vsftpd

Ci sono alcune modifiche che dobbiamo apportare al file di configurazione vsftpd prima di poter iniziare a utilizzare FTP su Ubuntu 18.04 / 18.10 / 19.04 / 19.10.

Prima di modificare il file di configurazione, creare un backup.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Ora, apri il file di configurazione nell’editor nano.,

sudo nano /etc/vsftpd.conf

Questo è un file piuttosto grande ma è per lo più pieno di commenti per aiutarti.

Devi andare giù nel file e assicurarti che le impostazioni corrispondano a quelle qui sotto. Nota: è possibile cercare in nanoutilizzandoCTRL + W

Cercare#write_enable=YES e rimuovere il commento rimuovendo il segno#. Ciò consentirà agli utenti FTP di scrivere file sul server.

etc / vsftpd.,conf
write_enable=YES

Cerca#chroot_local_user=YES e decommenta rimuovendo il segno#. Ciò impedirà agli utenti FTP di navigare al di fuori della propria directory.

etc / vsftpd.conf
chroot_local_user=YES

Cerca#local_umask=022 e decommenta rimuovendo il segno#. Questo darà ai file e alle cartelle caricate le autorizzazioni corrette.

etc / vsftpd.conf
local_umask=022

Ora dobbiamo aggiungere alcune direttive che non esistono nel file.,

Poiché Linux non mostra file che iniziano con un punto, file come.htaccess non saranno visibili in FTP. Questo potrebbe essere un problema se si intende utilizzare Apache e si desidera lavorare con .htaccess.

Per forzare vsftpd a mostrare i nomi dei file che iniziano con un punto, incollare quanto segue nella parte inferiore del file. (Per incollare in nano, premere il tasto destro del mouse)

etc / vsftpd.conf
force_dot_files=YES

Infine, aggiungiamo alcuni intervalli di porte per FTP passivo per assicurarci che siano disponibili connessioni sufficienti. Incolla quanto segue nella parte inferiore del file., (Per incollare in nano, premere il tasto destro del mouse)

etc / vsftpd.conf
pasv_min_port=40000pasv_max_port=50000

Se hai seguito il passaggio 4.2 in precedenza e vuoi solo che questo utente carichi i file nella cartella home, dobbiamo dire a vsftpd che la cartellalocal_rootè la cartella/ftp che abbiamo creato in precedenza.

Non aggiungere queste due righe se si desidera che l’utente carichi nella radice del documento Web!

etc / vsftpd.conf
user_sub_token=$USERlocal_root=/home/$USER/ftp

Abbiamo finito con vsftpd.conf per il momento, ma tornerà nei passaggi successivi per impostare la sicurezza e SSL.,

Per salvare il file e uscire, premere CTRL + X, premere Y e quindi premere ENTER.

Riavvia vsftpd.

sudo systemctl restart vsftpd

Test FTP

Ora possiamo testare vsftpd per vedere se possiamo accedere come utente che abbiamo creato in precedenza. Si consiglia FileZilla, che funziona su Windows, Mac e Linux.

Immettere l’IP del server, il nome utente FTP e la password creati in precedenza e fare clic su Quickconnect.,

Sopra possiamo vedere che abbiamo collegato con successo e la directory radice web html viene visualizzato, anche se questo può essere diverso sul server.

Prova a caricare, creare e modificare cartelle e file all’interno della directory root Web per assicurarti che le autorizzazioni funzionino correttamente.

Noterai che abbiamo un avviso in FileZilla ” Stato: Server insicuro, non supporta FTP su TLS.”Si consiglia vivamente di configurare TLS in modo che le credenziali di accesso e il traffico siano crittografati tramite la connessione FTP.,

Se si riscontrano problemi di accesso al server FTP, provare a controllare il registro vsftpd. Per visualizzare le ultime 200 voci utilizzando tail:

sudo tail /var/log/vsftpd.log -n 200

FTP sicuro con TLS (opzionale)

È importante tenere a mente alcune cose quando si utilizza FTP: non è crittografato per impostazione predefinita, il che significa che le credenziali ei file inviati sono vulnerabili all’intercettazione. Per risolvere questo problema è necessario connettersi a vsftpd utilizzando FTPS (FTP su SSL/TLS).

Iniziamo creando un nuovo certificato con lo strumentoopenssl.,

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Ti verrà chiesto di inserire alcuni dettagli come paese, ecc. Non devi compilare questi. Puoi semplicemente premere ENTER per i valori predefiniti.

Ora che la tua chiave privata è stata creata, ci sono alcune modifiche che dobbiamo apportare al file di configurazione di vsftpd.

Apri il file di configurazione nell’editor nano.

sudo nano /etc/vsftpd.conf

Trova la seguente riga: (Nota: puoi cercare in nanousando CTRL + W)

etc / vsftpd.,conf
ssl_enable=NO

Cambialo in:

etc / vsftpd.conf
ssl_enable=YES

Incolla il seguente sotto di esso.

etc / vsftpd.conf

Salvare il file e uscire (premere CTRL + X premere Y e premere ENTER).

Riavvia vsftpd.

sudo systemctl restart vsftpd

Test TLS con FileZilla

Ora possiamo testare TLS. Si consiglia FileZilla, che funziona su Windows, Mac e Linux.,

Immettere l’IP del server, il nome utente FTP e la password creati in precedenza e fare clic su Quickconnect.

Si può essere presentato con un avviso di certificato sconosciuto. Fare clic su Considera sempre attendibile questo certificato nelle sessioni future e fare clic su OK.

Se sei connesso tramite TLS, ti dirà nel registro delle connessioni. Vedrai anche un lucchetto nell’angolo in basso a destra.

Hai finito!,

4.79 (42 voti)

fatemi sapere se questo ha aiutato. Seguimi su Twitter, Facebook e YouTube, o buy comprami un frullato.

ps Ho aumentato le mie entrate AdSense del 68% utilizzando AI 🤖. Leggi la mia recensione Ezoic per scoprire come.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *