Ecco come proteggere maggiormente la connessione ad un server FTP: attiviamo le connessioni TLS.
Seppur tendenzialmente insicuro, il protocollo FTP viene utilizzato da un gran numero di utenti per effettuare il download o l’upload di file. Ma si può fare qualcosa per rendere più sicura una connessione FTP.
Come? Utilizzando il protocollo TLS che di fatto cripta l’intera comunicazione. Essenzialmente, quello che ci occorre è OpenSSL e vsftpd: scopriamo dunque come installarli su una distribuzione Debian based.
Per installare OpenSSL e vsftpd ci basta digitare da terminale il comando:
sudo apt-get -y install vsftpd openssl
Al terminel del setup, possiamo procedere alla configurazione dei due tool. Più nel dettaglio, per utilizzare TLS è necessario creare un certificato SSL che deve essere messo nella directory /etc/ssl/private. Creiamola co:
mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/private
E procediamo alla creazione del certificato con:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Ci verrà richiesto di inserire il codice del Paese (nel nostro caso IT) e altri dati come il nome della nostra città e un indirizzo e-mail valido. Possiamo quindi passare all’attivazione di TLS in vsftpd. Apriamo con un editor di testo non formattato il file /etc/vsftpd.conf e aggiungiamo al suo interno le righe:
[…]
# Turn on SSL
ssl_enable=YES# Allow anonymous users to use secured SSL connections
allow_anon_ssl=YES# All non-anonymous logins are forced to use a secure SSL connection in order to
# send and receive data on data connections.
force_local_data_ssl=YES# All non-anonymous logins are forced to use a secure SSL connection in order to send the password.
force_local_logins_ssl=YES# Permit TLS v1 protocol connections. TLS v1 connections are preferred
ssl_tlsv1=YES# Permit SSL v2 protocol connections. TLS v1 connections are preferred
ssl_sslv2=NO# permit SSL v3 protocol connections. TLS v1 connections are preferred
ssl_sslv3=NO# Disable SSL session reuse (required by WinSCP)
require_ssl_reuse=NO# Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla)
ssl_ciphers=HIGH# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
[…]
Con force_local_logins_ssl e force_local_data_ssl impostati su TRUE permetteremo accessi unicamente con connessione TLS. Non ci resta che riavviare vsftpd con:
service vsftpd restart
e verificare che l’accesso al server FTP sia eseguibile unicamente con una connessione TLS.
Fonte: HowtoForge