Installare proftpd ed abilitare il protocollo TLS in CentOS GNU/Linux

Di seguito viene illustrata l'installazione del daemon proftpd configurandolo per utilizzare il protocollo TLS al fine di garantire autenticazione e comunicazione crittografata all'utente che lo utilizza.

Il primo comando da eseguire e'

yum install proftpd

Successivamente se desideriamo che il server ftp venga attivato ogni qualvolta il server venga riavviato dobbiamo digitare

chkconfig --level 345 proftpd on

Il servizio e' installato e non ci rimane che avviarlo

/etc/init.d/proftpd start

Per disabilitare l'accesso via ssh all'utente che utilizziamo per pubblicare i dati via ftp, e' necessario eseguire l'applicazione

vipw

impostamo quindi la shell da /bin/bash a /bin/false ed usciamo da vipw (digitando :wq ed n alla richiesta di editare il file shadow) Adesso pero' dobbiamo impostare /bin/false come shell valida per l'accesso ftp. Si fa inserendo la riga /bin/false in /etc/shells

echo "/bin/false" >> /etc/shells

Adesso dobbiamo generare un certificato SSL

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

Generating a 1024 bit RSA private key
...........................++++++
...............++++++
writing new private key to '/etc/pki/tls/certs/proftpd.key.pem'
-----
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

Aprire il file/etc/proftpd/proftpd.conf ed inserire alla fine queste righe:

TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/pki/tls/certs/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.key.pem
TLSVerifyClient off
TLSRequired off

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.

Riavviate il servizio

/etc/init.d/proftpd restart