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 y
eENTER
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 y
eENTER
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).
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 ftp
su no nobody:nogroup
.,
sudo chown nobody:nogroup /home/ftpuser/ftp
Imposta le autorizzazioni per la directory ftp
usando 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 nano
utilizzandoCTRL
+ W
Cercare#write_enable=YES
e rimuovere il commento rimuovendo il segno#. Ciò consentirà agli utenti FTP di scrivere file sul server.
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.
chroot_local_user=YES
Cerca#local_umask=022
e decommenta rimuovendo il segno#. Questo darà ai file e alle cartelle caricate le autorizzazioni corrette.
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)
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)
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!
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 nano
usando CTRL
+ W
)
ssl_enable=NO
Cambialo in:
ssl_enable=YES
Incolla il seguente sotto di esso.
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!,
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