How To: Trasferimenti FTP sicuri con Ubuntu 9.10 Server

cRoW2k
8 feb 2010

Il procollo FTP (appunto File Transfer Protocol) è di per se insicuro perchè durante la trasmissione sia le password che i dati vengono inviati/ricevuti in chiaro (senza protezione) quindi un malintenzionato potrebbe mettersi nel mezzo e “sniffarvi” credenziali e via dicendo. Tramite questo how-to vi mostrerò come mettere in sicurezza i vostri trasferimenti tramite l’implementazione del protocollo crittografico TLS (Transport Layer Security).

In questo tutorial userò come hostname server1.example.com con indirizzo IP 192.168.0.100. Sicuramente le impostazioni della vostra rete potrebbero essere diverse, quindi modificate dove necessario.
Siccome dobbiamo eseguire tutti i passaggi con privilegi di root, possiamo direttamente aumentare i nostri privilegi e diventare root digitando semplicemente:

sudo su

Per procedere con la configurazione dobbiamo necessariamente installare OpenSSL (richiesto da TLS) e ovviamente il server FTP. In questo tutoria utilizzeremo proFTPd.

aptitude install proftpd openssl

Vi verrà posta una domanda alla quale rispondere con:

Run proftpd: <– standalone

Per una maggiore sicurezza, potete aggiungere al file di configurazione del server FTP (proftpd.conf) le seguenti opzioni:

nano /etc/proftpd/proftpd.conf

[...]
DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."
[...]

Per poter utilizzare TLS, dobbiamo creare un certificato SSL. Creare in /etc/proftpd la cartella ssl (nome di comodo):

mkdir /etc/proftpd/ssl

Dopodiche possiamo creare il certificato con il seguente comando:

openssl req -new -x509 -days 365 -nodes -out  /etc/proftpd/ssl/proftpd.cert.pem -keyout  /etc/proftpd/ssl/proftpd.key.pem

Vi verranno poste delle domande alle quali dovrete rispondere correttamente:

Country Name (2 letter code) [AU]: <– Inserisci il tuo codice regione (es, “IT”).
State or Province Name (full name) [Some-State]: <– Inserisci lo stato o la provincia.
Locality Name (eg, city) []: <– Inserisci la tua città.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <– Nome della tua organizzazione/azienda.
Organizational Unit Name (eg, section) []: <– Inserisci la tua mansione/reparto (es. “Resp. CED”).
Common Name (eg, YOUR name) []: <– il nome del tuo dominio/hostame completo (es. “server1.example.com”).
Email Address []: <– Il tuo indirizzo email.

Ora abilitiamo il TSL nel file di configurazione di ProFTPd:

nano /etc/proftpd/proftpd.conf

Andando a decommentare la riga:

#Include /etc/proftpd/tls.conf -> eliminate il cancelletto

Ora modifichiamo il file tls.conf:

nano /etc/proftpd/tls.conf

<IfModule mod_tls.c>
TLSEngine                  on
TLSLog                     /var/log/proftpd/tls.log
TLSProtocol                SSLv23
TLSOptions                 NoCertRequest
TLSRSACertificateFile      /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile   /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient            off
TLSRequired                on
</IfModule>

Se si utilizza TLSRequired, allora solo le connessioni TLS sono ammesse (questo blocca tutti gli utenti con i vecchi client FTP che non hanno il supporto per TLS), commentando la linea o utilizzando TLSRequired off sia le connessioni non-TLS sia quelle TLS sono ammesse, a seconda del supporto del client FTP.

Ora reinizzialiate il demone ProFTPd

/etc/init.d/proftpd restart

Questo è quanto. È ora possibile connettersi utilizzando il client FTP, tuttavia, è necessario configurarlo per l’utilizzo di TLS (questo è obbligatorio se si utilizza il TLSRequired) -vedremo ora come configurare il client.

Se ci sono problemi con TLS, è possibile dare un’occhiata al file di log /var/log/proftpd/tls.log per capire l’eventuale anomalia.

Come client FTP utilizzeremo l’ottimo programma opensource FileZilla recuperabile al seguente indirizzo: FileZilla

Lanciate FileZilla e cliccate sul menù File->Gestore Siti

Si aprirà la seguente schermata:

Selezionare il server che utilizza ProFTPd con TLS, nella casella di riepilogo Tipo di server a tendina, selezionare FTPES invece del normale FTP:

Se tutto è andato a buon fine, vi si presenterà una schermata che vi chiederà la convalida/accettazione del certificato. Dato l’ok, verrete catapultati dentro il vostro serverino FTP!

Buon trasferimento!

Articoli molto simili