Помимо стабильности и высокой скорости работы vsftpd может предложить работу с использованием TLS для безопасного обмена данными с сервером. Используя TLS, вы сможете существенно обезопасить персональные данные ваших пользователей, если в том возникнет необходимость. Продолжая тему быстрого и надёжного FTP-демона для UNIX, в этой заметке мы с вами рассмотрим способ настройки vsftpd для работы с использованием TLS.
Файл конфигурации vsftpd в различных системах по умолчанию располагается в различных местах:
- в FreeBSD — /usr/local/etc/vsftpd.conf
- в Fedora — /etc/vsftpd/vsftpd.conf
- в Debian — /etc/vsftpd.conf
Создание SSL-сертификата
Прежде чем vsftpd сможет функционировать в качестве TLS FTP-сервера, необходимо создать сертификат, содержащий необходимые данные для работы протокола TLS в том числе и закрытый ключ. Сертификат мы будем создавать self-signed, хотя никто не мешает вам в случае необходимости использовать сертификат подписанный одним из доверенныхцентров сертификации.
Для генерации сертификата используется присутствующая практически во всех системах утилита openssl.
# /usr/bin/openssl req -x509 -nodes -days 3065 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Обратите внимание на значение параметра -days, определяющее срок действия сертификата и выберите подходящий для вас вариант. И, естественно, не забудьте убедиться в правильности пути, где будете размещать файл сертификата. После ввода команды вам необходимо будет ответить на несколько вопросов касательно идентификационной информации ключа и в завершении вы получите готовый файл сертификата и закрытого ключа в указанном вами месте.
Настройка vsftpd
Теперь, когда сертификат и закрытый ключ готовы, можно переходить к настройке vsftpd. Откройте конфигурационный файл vsftpd.conf в вашем любимом текстовом редакторе и добавьте/измените параметры, описанные ниже.
Первым делом необходимо включить использование SSL:
ssl_enable=YES
Если необходимо, разрешить анонимным пользователям использовать SSL:
allow_anon_ssl=YES
Указать расположение файла, содержащего сертификат и закрытый RSA-ключ:
rsa_cert_file=/etc/vsftpd/vsftpd.pem
На этом всё. Осталось перезапустить vsftpd. В FreeBSD:
# /usr/local/etc/rc.d/vsftpd restart
В Debian/Fedora:
# service vsftpd restart
Конечно же, vsftpd обладает ещё массой параметров, управляющих настройкой TLS-соединений. Как правило, приведённых мной вполне достаточно для работы, оставив остальные в состоянии «по умолчанию». Если же вам требуется настроить TLS в vsftpd более тонко, вы можете обратиться к man-странице демона.
TLS FTP-клиенты
Теперь, когда всё настроено и сервер перезапущен, можно подключаться. Чтобы подключиться к FTP-серверу, используя TLS, необходимо чтобы ваш клиент имел поддержку этого протокола. Из консольных клиентов под UNIX/Linux рекомендую:
- lftp — доступен в FreeBSD/Debian/Fedora
- ftp-ssl — доступен в стандартных репозиториях Debian
- ftp-tls — доступен в коллекции портов FreeBSD
Среди графических кроссплатформенных FTP-клиентов для работы с FTPS подойдут: