Приведу пример настройки FTPS в ProFTP, и запретим простые подключения без шифрования.
Допустим ProFTPd установлен например как я описывал в статье:
Установка и настройка ProFTPd в Ubuntu
Сертификат можно получить бесплатно от Let’s Encrypt, например как я описывал в статье:
Установка Certbot в Ubuntu
Или сгенерируем вручную, например (файл proftpd.key должен быть доступен для чтения только пользователю root):
sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 3650
Потом откроем стандартный файл с конфигурацией:
sudo nano /etc/proftpd/tls.conf
В этом файле укажем параметры:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRequired yes
TLSRSACertificateFile /etc/letsencrypt/live/ixnfo.com/cert.pem
TLSRSACertificateKeyFile /etc/letsencrypt/live/ixnfo.com/privkey.pem
TLSCACertificateFile /etc/letsencrypt/live/ixnfo.com/chain.pem
</IfModule>
Если сертификат генерировали вручную, то укажем его так:
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
Откроем основной файл конфигурации ProFTPd:
sudo nano /etc/proftpd/proftpd.conf
Раскомментируем или укажем строку подключающую файл tls.conf:
Include /etc/proftpd/tls.conf
Проверим корректность конфигурации и перезапустим ProFTPd чтобы применить изменения:
sudo proftpd --configtest
sudo service proftpd restart
Теперь можно подключаться к FTP серверу используя шифрованное соединение.
TLSRequired yes — запрещает подключения без шифрования.
Смотрите также мою статью:
Client did not reuse SSL session from control channel, rejecting data connection