Linux. Настройка безопасного сервера FTP с помощью ProFTP и SSL-сертификата

  Linux admin

Установка ProFTPd проста до безобразия, также вместе с ним установим openssl

sudo apt-get install proftpd openssl

Режим запуска выбираем standalone

Редактируем основной конфигурационный файл proftpd.conf

sudo nano/etc/proftpd/proftpd.conf

Для активации функции защищенной передачи данных добавим в него следующие строки

DefaultRoot ~IdentLookups offServerIdent on "Secure FTP Server."

Далее нам необходимо сгенерировать SSL сертификат для нормальной работы TLS, который будем хранить в директории proftpd для лучшего понимания создадим директорию ssl где все и будет находиться.

sudo mkdir /etc/proftpd/ssl

Генерируем новый сертификат на 1 год, хотя, срок его действия, можно выбрать по своему смотрению

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) [AU]: Название страны 
State or Province Name (full name) [Some-State]: <-- Указываем область проживания
Locality Name (eg, city) []: <-- Название города
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Название организации
Organizational Unit Name (eg, section) []: <-- Название отдела в этой организации
Common Name (eg, YOUR name) []: <-- доменное имя вашего сервера.
Email Address []: <-- адрес электронной почты

Все ваш самоподписанный сертификат готов и находится по адресу /etc/proftpd/ssl

Теперь нам необходимо включить возможность передачи данных по защищенному соединению.

nano /etc/proftpd/proftpd.conf

В конфигурационном файле необходимо найти строку Include /etc/proftpd/tls.conf по умолчанию она закомментирована.

Далее нам необходимо отредактировать файл /etc/proftpd/tls.conf

nano /etc/proftpd/tls.conf

Остановимся на нем немного подробнее:
В этом файле необходимо отредактировать секцию <IfModule mod_tls.c> которая отвечает за функционал передачи данных, а также указывает на то, где находятся необходимые ключи и сертификаты.
В принципе все что там написано можно удалить и вписать все занова, но лучше, все что не нужно и дублирует наши записи закомментировать, строку ниже добавить в конец конфига.

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

Все готово!
Теперь необходимо перезапустить FTP сервер

sudo systemctl restart proftpd