Параноя. Шифруем FTP сервер ProFTP.

Я уже рассказал с картинками как установить ProFTP. Теперь прикрутим к нему шифрование и закроем вход без шифрования, посекретничаем. Тут картинок не будет, будет только текст.

Первым делом нужно сгенерить самоподписной сертификат и положить его рядом с настройками ProFTP, что бы все лежало одной кучей. Для него организуем отдельную директорию:

sudo mkdir /etc/proftpd/ssl

Теперь сгенерим сам сертификат:

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

Аккуратно отвечаем на вопросы, там все просто, в поля, которые хотим оставить пустыми ставим точку:

Country Name (2 letter code) [GB]:RU
State or Province Name (full name) [Berkshire]:_Ваш_Регион_или_поставить точку_
Locality Name (eg, city) [Newbury]:_Ваш_город_
Organization Name (eg, company) [My Company Ltd]:_Название _организации_запросившей_сертификат_
Organizational Unit Name (eg, section) []:_Подразделение_организации_или_поставить_точку_
Common Name (eg, your name or your server's hostname) []:_Ваше_имя_или_название_сервера_
Email Address []:_Ваш_адрес_электронной_почты_

Осталось только выставить права на ключ и сертификат, ключ должен читать только root, сертификат могут читать все:

sudo chmod 0640 /etc/proftpd/ssl/proftpd.cert.pem
sudo chmod 0600 /etc/proftpd/ssl/proftpd.key.pem

Все, сертификат готов, можно пользоваться. Теперь нужно включить TLS/SSL на самом сервере. Для этого нужно в файле конфигурации ProFTP, расположенного /etc/proftpd/proftpd.conf найти раскомментировать подключение файла конфигурации шифрования. Ищем и раскомментируем:

include /etc/proftpd/tls.conf

Теперь идем в файл конфигурации /etc/proftpd/tls.conf и раскомментируем следующее, по ходу меняя пути к файлам ключу и сертификату:


TLSEngine                 on
TLSLog                     /var/log/proftpd/tls.log
TLSProtocol                 SSLv23
TLSRSACertificateFile           /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile        /etc/proftpd/ssl/proftpd.key.pem
TLSOptions                NoCertRequest EnableDiags NoSessionReuseRequired
TLSOptions                AllowClientRenegotiations
TLSVerifyClient            off
TLSRequired                 on
TLSRenegotiate                 required off

Проверяем, все должно работать с шифрованием, а без - не должно.

Заметка на полях: можно, конечно, поступить просто и прямо в конфиграционный файл ProFTP /etc/proftpd/proftpd.conf добавить эту секцию, но это не совсем правильно.

Вот и все, быстрых вам коннектов, и толстых вам каналов!