Abilitare il protocollo TLS in proftpd con Debian Lenny

Il servizio ftp viene utilizzato quotidiamente da milioni di utenti in tutto il mondo per aggiornare il proprio sito web. Non tutti sanno pero' che sia l'autenticazione che il trasferimento dei dati avviene in 'chiaro', permettendo cosi' a chi gestisce il tratto di rete che congiunge la vostra postazione al sito web (ci riferiamo ad esempio al vero e proprio gestore oppure ad un hacker) di poter catturare le credenziali di autenticazione o copiare i file  mentre vengono inviati sul sito. Vediamo quindi come configurare il servizio per utilizzare il protocollo TLS garantendo cosi' l'autenticazione e la comunicazione crittografata. In questo caso, se i nostri dati fossero catturati non potrebbero esser letti.

Per default in proftpd viene gia' caricato il modulo mod_tls. Possiamo verificarlo accedendo nel file /etc/proftpd/modules.conf e cercando:

LoadModule mod_tls.c

Dobbiamo decommentare (eliminando il carattere # ad inizio riga) questa riga nel file /etc/proftpd/proftpd.conf

Include /etc/proftpd/tls.conf

Generiamo il certificato autofirmato in questo modo

openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365

Generating a 1024 bit RSA private key
...........................++++++
...............++++++
writing new private key to '/etc/ssl/private/proftpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:IT
State or Province Name (full name) [Berkshire]: Lazio
Locality Name (eg, city) [Newbury]: Frosinone
Organization Name (eg, company) [My Company Ltd]:Deec
Organizational Unit Name (eg, section) []: Reparto_Tecnico
Common Name (eg, your name or your server's hostname) []: www.deec.it
Email Address []: luca@deec.it

N.B. Se l'appliazione "openssl" non viene trovata dovrete installare il paccehtto "openssl". Si fa in questo modo "apt-get install openssl"

Decommentiamo queste direttive in /etc/proftpd/tls.conf

TLSEngine
TLSLog
TLSProtocol
TLSRSACertificateFile
TLSRSACertificateKeyFile
TLSOptions
TLSVerifyClient
TLSRequired

N.B. Impostando ad "on" il valore della direttiva "TLSRequired" il servizio accettera' solamente connessioni TLS, impostandolo invece ad "off" allora gli utenti potranno collegarsi sia con il certificato che senza.

E riavviamo il servizio

/etc/init.d/proftpd restart