In questo articolo spiegheremo come proteggere le comunicazioni via ftp utilizzando un certificato TLS autogenerato. Questa procedura è necessaria in quanto il protocollo FTP classico trasmette le informazioni in chiaro, e questo è un problema per la sicurezza. Qui non verrà trattata l'installazione e la configurazione classica di proftpd, ma solo l'implementazione del certificato. La guida è per ubuntu, ma è molto simile anche per le altre distro. Innanzitutto bisogna creare la cartella che conterrà i certificati:
sudo mkdir /etc/proftpd/ssl
Il passo successivo è quello di generare i certificati attravero openssh
sudo openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
A questo punto dovrete riempire i campi del certificato con i vostri valori:
Country Name (2 letter code) [AU]: # Codice Internazionale a 2 cifre (e.s., "IT").
State or Province Name (full name) [Some-State]: # Lo stato (e.s. Italy)
Locality Name (eg, city) []: # La cità (e.s. Roma).
Organization Name (eg, company) [Internet Widgits Pty Ltd]: # La ragione sociale della vostra attività.
Organizational Unit Name (eg, section) []: # Lasciare vuoto
Common Name (eg, YOUR name) []: # Il nome del dominio (e.g. "ftp.example.com").
Email Address []: # La Vostra Email
Poi dovete rendere leggibile i certificati solo da root:
sudo chmod 600 /etc/proftpd/ssl/proftpd.*
Ora si deve caricare il file di configurazione TLS nel file di proftpd, perciò modificate il file /etc/proftpd/proftpd.conf
sudo nano /etc/proftpd/proftpd.conf
E decommentate (se presente) oppure aggiungete (se assente) la seguente istruzione:
Include /etc/proftpd/tls.conf
Adesso create il file /etc/proftpd/tls.conf come segue:
sudo nano /etc/proftpd/tls.conf
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol
TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations NoSessionReuseRequired
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell no
N.B. Se usate l'opzione
TLSRequired on
saranno abilitate solo le connessioni TLS e saranno disabilitate quelle normali. Utilizzate l'opzione
TLSRequired off
oppre commentate la riga per avere entrambe le connessioni attive.
Ora è sufficiente ravviare proftpd per concludere l'operazione.
sudo service proftpd restart
Configurare Filezilla per accedere con Protocollo TLS Create o Modificate la connessione che vi interessa, selezionare in "Criptazione" - Richiedi FTP esplicito su TLS. Trattandosi, ovviamente, di un certificato autogenerato, filezilla vi avvertirà con un messaggio simile al seguente: Selezionando "Considera sempre sicuro il certificato nelle sessioni future", non riceverete più l'avviso.