Ricerca nel sito web

Configurazione di un server FTP sicuro utilizzando SSL/TLS su Ubuntu


In questo tutorial descriveremo come proteggere un server FTP (VSFTPD sta per "Very Secure FTP Daemon ") utilizzando SSL /TLS in Ubuntu 16.04/16.10.

Se stai cercando di configurare un server FTP sicuro per distribuzioni basate su CentOS, puoi leggere – Proteggi un server FTP utilizzando SSL/TLS su CentOS

Dopo aver seguito i vari passaggi di questa guida, avremo appreso i fondamenti per abilitare i servizi di crittografia in un server FTP per trasferimenti sicuri di dati che sono cruciali.

Requisiti

  1. È necessario installare e configurare un server FTP in Ubuntu

Prima di andare oltre, assicurati che tutti i comandi in questo articolo verranno eseguiti come account privilegiato root o sudo.

Passaggio 1: generazione del certificato SSL/TLS per FTP su Ubuntu

1. Inizieremo creando una sottodirectory in: /etc/ssl/ per archiviare il certificato SSL/TLS e i file chiave, se non è così. non esiste:

sudo mkdir /etc/ssl/private

2. Ora generiamo il certificato e la chiave in un unico file, eseguendo il comando seguente.

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

Il comando precedente ti chiederà di rispondere alle domande seguenti, non dimenticare di inserire i valori applicabili al tuo scenario.

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

Passaggio 2: configurazione di VSFTPD per utilizzare SSL/TLS su Ubuntu

3. Prima di eseguire qualsiasi configurazione VSFTPD, per coloro che hanno il firewall UFW abilitato, è necessario aprire le porte 990 e 40000 -50000 per consentire le connessioni TLS e l'intervallo di porte passive da impostare rispettivamente nel file di configurazione VSFTPD:

sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status

4. Ora apri il file di configurazione VSFTPD e definisci i dettagli SSL al suo interno:

sudo vi /etc/vsftpd/vsftpd.conf
OR
sudo nano /etc/vsftpd/vsftpd.conf

Quindi, aggiungi o individua l'opzione ssl_enable e imposta il suo valore su YES per attivare l'uso di SSL, ancora una volta, poiché TLS è più sicuro di SSL, limiteremo VSFTPD a utilizza invece TLS, abilitando l'opzione ssl_tlsv1:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. Successivamente, commenta le righe seguenti utilizzando il carattere # come segue:

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Successivamente, aggiungi le righe seguenti per definire la posizione del certificato SSL e del file chiave:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6. Ora dobbiamo anche impedire agli utenti anonimi di utilizzare SSL, quindi forzare tutti gli accessi non anonimi a utilizzare una connessione SSL sicura per il trasferimento dei dati e a inviare la password durante l'accesso:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Inoltre, possiamo utilizzare le opzioni seguenti per aggiungere ulteriori funzionalità di sicurezza nel server FTP. Con l'opzione require_ssl_reuse=YES, tutte le connessioni dati SSL devono mostrare il riutilizzo della sessione SSL; dimostrando di conoscere lo stesso master secret del canale di controllo. Quindi, dovremmo disabilitarlo.

require_ssl_reuse=NO

Inoltre, possiamo impostare quali cifrari SSL VSFTPD consentirà per le connessioni SSL crittografate con l'opzione ssl_ciphers. Ciò contribuirà a vanificare eventuali sforzi da parte degli aggressori che tentano di forzare un codice specifico in cui potrebbero aver scoperto vulnerabilità in:

ssl_ciphers=HIGH

8. Quindi, definiamo l'intervallo di porte (porta minima e massima) delle porte passive.

pasv_min_port=40000
pasv_max_port=50000

9. Per abilitare il debug SSL, ovvero la diagnostica della connessione openSSL viene registrata nel file di registro VSFTPD, possiamo utilizzare l'opzione debug_ssl:

debug_ssl=YES

Infine salva il file e chiudilo. Quindi riavvia il servizio VSFTPD:

systemctl restart vsftpd

Passaggio 3: verifica FTP con connessioni SSL/TLS su Ubuntu

10. Dopo aver eseguito tutte le configurazioni di cui sopra, verifica se VSFTPD ora utilizza le connessioni SSL/TLS provando a utilizzare FTP dalla riga di comando come di seguito.

Dall'output seguente, è presente un messaggio di errore che ci informa che VSFTPD può consentire solo agli utenti (non anonimi) di accedere da client sicuri che supportano i servizi di crittografia.

ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

La riga di comando non supporta i servizi di crittografia, risultando così nell'errore sopra riportato. Pertanto, per connetterci in modo sicuro a un server FTP con servizi di crittografia abilitati, abbiamo bisogno di un client FTP che supporti le connessioni SSL/TLS per impostazione predefinita, come FileZilla.

Passaggio 4: installa FileZilla sui client per connettere FTP in modo sicuro

FileZilla è un client FTP multipiattaforma potente e ampiamente utilizzato che supporta FTP su SSL/TLS e altro ancora. Per installare FileZilla su un computer client Linux, utilizzare il seguente comando.

--------- On Debian/Ubuntu ---------
sudo apt-get install filezilla   

--------- On CentOS/RHEL/Fedora --------- 
yum install epel-release filezilla

--------- On Fedora 22+ --------- 
sudo dnf install filezilla

12. Una volta completata l'installazione, aprila e vai su File=>Gestione siti o (premi Ctrl+S) per ottenere il Interfaccia di gestione del sito di seguito.

13. Ora, definisci il nome host/sito, aggiungi l'indirizzo IP, definisci il protocollo da utilizzare, la crittografia e il tipo di accesso come nella schermata seguente (utilizza i valori che si applicano al tuo scenario):

Fai clic sul pulsante Nuovo sito per configurare una nuova connessione sito/host.

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. Quindi fare clic su Connetti dall'interfaccia in alto per inserire la password, quindi verificare il certificato utilizzato per la connessione SSL/TLS, e fai nuovamente clic su OK per connetterti al server FTP:

15. Ora, dovresti aver effettuato correttamente l'accesso al server FTP tramite una connessione TLS, controlla la sezione sullo stato della connessione per ulteriori informazioni dall'interfaccia sottostante.

16. Infine, trasferiamo i file dal computer locale al server FTP nella cartella dei file, diamo un'occhiata all'estremità inferiore dell'interfaccia di FileZilla per visualizzare i report relativi ai trasferimenti di file.

È tutto! Ricorda sempre che l'installazione di un server FTP senza abilitare i servizi di crittografia ha alcune implicazioni sulla sicurezza. Come spiegato in questo tutorial, puoi configurare un server FTP per utilizzare connessioni SSL/TLS per implementare la sicurezza in Ubuntu 16.04/16.10.

Se riscontri problemi nella configurazione di SSL/TLS sul server FTP, utilizza il modulo di commento qui sotto per condividere i tuoi problemi o pensieri riguardanti questo tutorial/argomento.