Le tradizionali connessioni FTP sono afflitte da un problema da non sottovalutare, ossia nome utente e password vengono trasmesse in chiaro durante la sessione di autenticazione. La risposta a questo problema è l’adozione del protocollo FTPS o FTPES. Vediamo come configurare vsftpd affinché effettui una criptazione del canale sul quale effettuiamo la connessione e la trasmissione dei dati.
Installare vsFTPd e OpenSSL
Se non avete già installato vsftpd, potete seguire questo articolo. Per quanto riguarda OpenSSL, il famosissimo progetto open source per l’implementazione dei protocolli SSL e TLS, è sufficiente eseguire il seguente comando senza necessità di alcuna configurazione:
# apt-get install openssl
Generare un certificato di sicurezza
Per generare un certificato di sicurezza per il nostro server vsftpd useremo l’appena installato OpenSSL. Anche qui è sufficiente eseguire un unico comando:
# openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /usr/share/ssl/certs/vsftpd.pem -out /usr/share/ssl/certs/vsftpd.pem
- L’opzione req -x509 indica che stiamo per generare un certificato usando il sistema di gestione X.509, dall’inglese X.509 Certificate Signing Request (CSR) Management.
- L’opzione -days 365 indica il numero di giorni nei quali il certificato sarà valido. In genere si supera difficilmente i 365 giorni.
- L’opzione -newkey rsa:1024 indica che genereremo una nuova chiave di crittografia usando l’algoritmo di cifratura RSA a 1024 bit.
- Le opzioni -keyout e -out servono ad indicare dove verrà generato il certificato. Il percorso riportato è quello di default usato da vsftpd, ma potete benissimo usare un qualunque altro percorso.
Configurare vsftpd per l’uso del protocollo SSL/TLS
Editiamo il file di configurazione di vsftpd.
# nano /etc/vsftpd.conf
Di seguito vi riporto tutte le principali opzioni di cui avete bisogno per l’uso del protocollo SSL/TLS.
ssl_enable
ssl_enable=YES
Abilitando questa opzione si dichiara di voler usare un protocollo di cifratura. Tale protocollo verrà applicato in tutte le connessioni di controllo e le connessioni dati. Ovviamente avrete bisogno di un client FTP che supporti le connessioni cifrate. Potete trovare una lista di client FTP, ed i protocolli che supportano, a questo indirizzo.
ssl_tlsv1
ssl_tlsv1=YES
Se abilitata, imposta vsftpd per usare il protocollo di cifratura TLS che in pratica è il successore dell’SSL. È sempre preferibile usare TLS che SSL. In caso vogliate usare l’SSL l’opzione da usare è ssl_sslv3.
force_local_data_ssl
force_local_data_ssl=YES
Se abilitata, tutte le connessione non anonime saranno forzate ad usare una connessione cifrata per l’invio e la ricezioni di dati.
force_local_logins_ssl
force_local_logins_ssl=YES
Se abilitata, tutte le connessione non anonime saranno forzate ad usare una connessione cifrata per l’invio di nome utente e password.
rsa_cert_file
rsa_cert_file=/usr/share/ssl/certs/vsftpd.pem
Questa opzione specifica il percorso in cui si trova il certificato RSA da usare per le connessioni cifrate.
Se avete bisogno di opzioni più specifiche, potete dare uno sguardo al manpage di vsftpd.conf. In ogni caso ricordatevi di riavviare il servizio di vsftpd affinché le modifiche abbiano effetto.
# /etc/init.d/vsftpd restart









Sottoscrivi il nostro Feed


Lascia un commento Feed dei commenti