
Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora
FTP — протокол передачи файлов (способ передачи файлов) между локальным и удаленным серверам. Это самый популярный метод передачи файлов, но его перестают использовать из-за отсутствия безопасности.
Очень хорошая альтернатива — SFTP. Этот протокол реализует совместное использование файлов через SSH. Если вы хотите использовать FTP, вы должны по крайней мере обеспечить связь с SSL / TLS сертификатами.
По этому мануалу «Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora», я тестировал свою конфигурацию vsftpd с TLS/SSL сертификатами на CentOS 6.6 и CentOS 7.
Настройку с основными параметрами я описывал ранее в своей статье, вы можете ознакомится с нею тут:
Установка vsftpd на CentOS
В той статье очень подробно расписано использование данного FTP сервиса с различными опциями.
Может быть полезна еще следующая статья:
Скачивать и закачивать файлы по FTP используя консоль
Настройка SSL с vsftpd
Первый шаг к получению полноценного VSFTPD — это работать с SSL, по этому, создадим сертификат SSL. Мы на самом деле будет использовать TLS (это тоже протокол), и он является преемником от SSL и более безопасный.
Мы создадим подкаталог внутри каталога SSL для хранения наших файлов:
$ sudo mkdir /etc/ssl/private
Создадим сертификат с ключем и поместим все в однин файл, для этого можно использовать следующую команду:
$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Ответьте на вопросы, которые он просит. Наиболее важным из которых является «общее имя» («Common Name») вашего сервера, который будет иметь IP-адрес или доменное имя и будет использоваться для дальнейшего подключения.
Добавить SSL в файла конфигурации VSFTPD
Теперь мы должны изменить нашу конфигурацию и указать на новые ключи и настройки защищенного соединения.
Откройте файл конфигурации Vsftpd как root:
# vim /etc/vsftpd/vsftpd.conf
В нижней части файла добавляем SSL/TLS. Мы должны указать расположение нашего сертификата и ключей. Мы на самом деле, используем 2 в 1 и используем все в одном файле, так что мы будем указывать оба варианта в том же файле:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
Далее, нам необходимо разрешить использование данных файлов, так же стоит отключить анонимных пользователей в конфиге. Мы должны также прописать настройку на использование SSL для передачи данных и входе подпрограмм:
[...] ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES [...]
Далее, мы ограничиваем тип подключения к TLS, который более безопасен, чем SSL. Мы будем делать это явно позволяя использовать TLS и отрицая использовать SSL:
[...] ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO [...]
Добавим несколько настроек конфигурации:
[...] require_ssl_reuse=NO ssl_ciphers=HIGH [...]
Сохраняем и закрываем данный конфигурационный файл.
Перезапускаем VSFTPD чтобы наши изменения применились:
# /etc/init.d/vsftpd restart
или
# service vsftpd restart
Также настраиваем его для автоматического запуска при каждой перезагрузке ОС:
# chkconfig vsftpd on
Все, сервер готов. На этом, моя тема «Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora» завершена.