FTP является очень небезопасным протоколом, потому что все пароли и все данные передаются в открытом виде. С помощью TLS, все связи могут быть зашифрованы, что делает FTP более безопасным. В этой статье объясняется, как настроить ProFTPd с TLS на Ubuntu 11.04 сервера.
Предварительные замечания
В данной статье я использую имя хоста server1.example.com с IP-адресом 192.168.0.100. Эти параметры могут отличаться в Вашем случае, поэтому вам придется изменить их в случае необходимости. Нам необходимо выполнить все шаги из этого материала с привилегиями суперпользователя, мы можем либо выполнять все команды в этом материале со строкой Sudo, или установить root прямо сейчас, введя:
|
Установка ProFTPd и OpenSSL
OpenSSL нужна для TLS, для установки ProFTPd и OpenSSL, мы просто выполним:
|
Вам будет задан вопрос:
Run proftpd: - standalone
По соображениям безопасности Вы можете добавить следующие строки в /etc/proftpd/proftpd.conf:
|
[...] DefaultRoot ~ ServerIdent on "FTP Server ready." [...]
Создание SSL сертификата для TLS
Для того чтобы использовать TLS, мы должны создать SSL-сертификат. Я создаю его в /etc/proftpd/ssl:
|
После этого мы можем генерировать SSL сертификат следующим образом:
|
Country Name (2 letter code) [AU]: - введите имя Вашей страны (например "RU"). 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) []: - введите полное доменное имя системы (например "server1.example.com"). Email Address []: - введите адрес электронной почты
Включение TLS в ProFTPd
Для того чтобы включить TLS в ProFTPd, откроем /etc/proftpd/proftpd.conf ...
|
... и раскомментировать Включить строку Include /etc/proftpd/tls.conf:
[...] # # This is used for FTPS connections # Include /etc/proftpd/tls.conf [...]
Затем откройте /etc/proftpd/tls.conf и отредактируйте, чтобы он выглядел следующим образом:
|
<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>
Если вы используете TLSRequired, то разрешены только TLS соединения (это блокирует любых пользователей со старыми клиентами FTP, которые не имеют поддержки TLS). Перезапустим ProFTPd:
|
Вот и все. Теперь Вы можете попробовать подключение с помощью вашего FTP-клиента, однако, Вы должны настроить свой FTP-клиент для использования TLS (это необходимо, если вы используете TLSRequired например используя FileZilla.
Если у Вас возникли проблемы с TLS, Вы можете посмотреть в лог-файл /var/log/proftpd/tls.log