
Настройка 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 для хранения наших файлов:
1
|
$ sudo mkdir /etc/ssl/private
|
Создадим сертификат с ключем и поместим все в однин файл, для этого можно использовать следующую команду:
1
|
$ 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:
1
|
# vim /etc/vsftpd/vsftpd.conf
|
В нижней части файла добавляем SSL/TLS. Мы должны указать расположение нашего сертификата и ключей. Мы на самом деле, используем 2 в 1 и используем все в одном файле, так что мы будем указывать оба варианта в том же файле:
1
2
|
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
|
Далее, нам необходимо разрешить использование данных файлов, так же стоит отключить анонимных пользователей в конфиге. Мы должны также прописать настройку на использование SSL для передачи данных и входе подпрограмм:
1
2
3
4
5
6
|
[...]
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
[...]
|
Далее, мы ограничиваем тип подключения к TLS, который более безопасен, чем SSL. Мы будем делать это явно позволяя использовать TLS и отрицая использовать SSL:
1
2
3
4
5
|
[...]
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
[...]
|
Добавим несколько настроек конфигурации:
1
2
3
4
|
[...]
require_ssl_reuse=NO
ssl_ciphers=HIGH
[...]
|
Сохраняем и закрываем данный конфигурационный файл.
Перезапускаем VSFTPD чтобы наши изменения применились:
1
|
# /etc/init.d/vsftpd restart
|
или
1
|
# service vsftpd restart
|
Также настраиваем его для автоматического запуска при каждой перезагрузке ОС:
1
|
# chkconfig vsftpd on
|
Все, сервер готов. На этом, моя тема «Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora» завершена.