To setup SSL encryption in ProFTPd you can follow such instructions:
1. Generate self-signed SSL certificate & private key.
# mkdir -pv /etc/proftpd/ssl/ # cd /etc/proftpd/ssl/ # openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
You should fill form below:
Generating a 2048 bit RSA private key .............................+++ ................................+++ writing new private key to '/etc/proftpd/ssl/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) [XX]:UA State or Province Name (full name) []:Kyivska Locality Name (eg, city) [Default City]:Kyiv Organization Name (eg, company) [Default Company Ltd]:Shkodenko V. Taras Ltd Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:shkodenko.com Email Address []:taras@shkodenko.com
2. Create mod_tls SSL configuration file /etc/proftpd/tls.conf :
<IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log TLSCipherSuite AES128+EECDH:AES128+EDH TLSOptions NoCertRequest AllowClientRenegotiations TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem TLSVerifyClient off TLSRequired on RequireValidShell no </IfModule>
3. Include mod_tls SSL configuration file /etc/proftpd/tls.conf into main “/etc/proftpd.conf” using Include :
# ... </Global> # Define the log formats LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" # TLS Include /etc/proftpd/tls.conf # Explained at http://www.castaglia.org/proftpd/modules/mod_tls.html # ...
4. Check ProFTPd configration using command:
# proftpd -td10
5. If there is no errors on step 4: restart ProFTPd service using:
# /etc/init.d/proftpd restart