vsftpd настройка · 4 min read · Dec 18, 2025
Как установить и настроить vsftpd с TLS на Debian 8 (Jessie)
Эта статья объясняет, как настроить сервер vsftpd с поддержкой TLS на сервере Debian 8 и как получить доступ к FTP-серверу с помощью FileZilla. FTP по умолчанию является очень небезопасным протоколом, так как все пароли и данные передаются в открытом виде. Используя TLS, всю коммуникацию можно зашифровать, что делает FTP гораздо более безопасным.
1 Предварительная заметка
В этом руководстве я буду использовать имя хоста server1.example.com с IP-адресом 192.168.1.100. Эти настройки могут отличаться у вас, поэтому вам нужно заменить их в соответствующих местах. Я использую минимальную установку сервера Debian 8 в качестве основы для этого руководства.
2 Установка vsftpd и OpenSSL
OpenSSL необходим для TLS; чтобы установить vsftpd и OpenSSL, мы просто выполняем:
apt-get -y install vsftpd openssl3 Создание SSL-сертификата для TLS
Для использования TLS необходимо создать SSL-сертификат. Я создаю его в /etc/ssl/private - если директория не существует, создайте её сейчас:
mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/privateПосле этого мы можем сгенерировать SSL-сертификат следующим образом:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pemНазвание страны (2 буквы) [AU]: <– Введите название вашей страны (например, “DE”).
Название штата или провинции (полное название) [Some-State]: <– Введите название вашего штата или провинции.
Название населённого пункта (например, город) []: <– Введите ваш город.
Название организации (например, компания) [Internet Widgits Pty Ltd]: <– Введите название вашей организации (например, название вашей компании).
Название организационного подразделения (например, отдел) []: <– Введите название вашего организационного подразделения (например, “IT-отдел”).
Общее название (например, ВАШЕ имя) []: <– Введите полное доменное имя системы (например, “server1.example.com”).
Адрес электронной почты []: <– Введите ваш адрес электронной почты.
4 Включение TLS в vsftpd
Чтобы включить TLS в vsftpd, откройте /etc/vsftpd.conf…
nano /etc/vsftpd.conf… и добавьте или измените следующие параметры:
[...]
# Включить SSL
ssl_enable=YES
# Разрешить анонимным пользователям использовать защищённые SSL-соединения
allow_anon_ssl=YES
# Все неанонимные входы вынуждены использовать защищённое SSL-соединение для
# отправки и получения данных по соединениям данных.
force_local_data_ssl=YES
# Все неанонимные входы вынуждены использовать защищённое SSL-соединение для отправки пароля.
force_local_logins_ssl=YES
# Разрешить соединения по протоколу TLS v1. Предпочтительны соединения TLS v1
ssl_tlsv1=YES
# Разрешить соединения по протоколу SSL v2. Предпочтительны соединения TLS v1
ssl_sslv2=NO
# Разрешить соединения по протоколу SSL v3. Предпочтительны соединения TLS v1
ssl_sslv3=NO
# Отключить повторное использование SSL-сессий (требуется для WinSCP)
require_ssl_reuse=NO
# Выберите, какие SSL-шифры будет разрешать vsftpd для зашифрованных SSL-соединений (требуется для FileZilla)
ssl_ciphers=HIGH
# Этот параметр указывает местоположение RSA-сертификата, который будет использоваться для SSL
# зашифрованных соединений.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
[...] Если вы используете force_local_logins_ssl=YES и force_local_data_ssl=YES, то разрешены только соединения TLS (это блокирует всех пользователей со старыми FTP-клиентами, которые не поддерживают TLS); используя force_local_logins_ssl=NO и force_local_data_ssl=NO, разрешены как TLS, так и не-TLS соединения, в зависимости от того, что поддерживает FTP-клиент.
Помимо параметров TLS, убедитесь, что у вас также есть следующие настройки в вашем vsftpd.conf для включения неанонимных входов:
[...]
# Раскомментируйте это, чтобы разрешить локальным пользователям входить в систему.
local_enable=YES
#
# Раскомментируйте это, чтобы включить любую форму команды записи FTP.
write_enable=YES
#
# Значение umask по умолчанию для локальных пользователей - 077. Вы можете изменить это на 022,
# если ваши пользователи этого ожидают (022 используется большинством других ftpd)
local_umask=022
[...] Перезапустите vsftpd после этого:
service vsftpd restartВот и всё. Теперь вы можете попробовать подключиться с помощью вашего FTP-клиента; однако вам следует настроить ваш FTP-клиент для использования TLS (это обязательно, если вы используете force_local_logins_ssl=YES и force_local_data_ssl=YES) - смотрите следующую главу, чтобы узнать, как это сделать с помощью FileZilla.
5 Добавление пользователя в vsftpd
На этом этапе мы добавим локального пользователя Linux, к которому мы можем подключиться. Я создам пользователя “till” с паролем “howtoforge”. Все FTP-пользователи должны иметь свои домашние директории в mkdir /var/ftproot, поэтому я сначала создам эту директорию.
mkdir /var/ftprootЗатем добавьте пользователя с помощью команды:
adduser --home /var/ftproot/till tillКоманда adduser запросит пароль пользователя и некоторые другие данные
root@server1:/# adduser --home /var/ftproot/till till
Добавление пользователя `till' ...
Добавление новой группы `till' (1001) ...
Добавление нового пользователя `till' (1001) с группой `till' ...
Создание домашней директории `/var/ftproot/till' ...
Копирование файлов из `/etc/skel' ...
Введите новый UNIX-пароль: <-- Введите новый пароль здесь
Повторите новый UNIX-пароль: <-- Введите новый пароль здесь
passwd: пароль успешно обновлён
Изменение информации о пользователе для till
Введите новое значение или нажмите ENTER для значения по умолчанию
Полное имя []: <-- Введите ваше имя здесь или нажмите enter, чтобы пропустить
Номер комнаты []: <-- Введите номер комнаты здесь или нажмите enter, чтобы пропустить
Рабочий телефон []: <-- Введите рабочий телефон здесь или нажмите enter, чтобы пропустить
Домашний телефон []: <-- Введите домашний телефон здесь или нажмите enter, чтобы пропустить
Другое []: <-- Введите другие данные пользователя здесь или нажмите enter, чтобы пропустить
Информация верна? [Y/n] <-- YМы успешно добавили FTP-пользователя.
6 Настройка FileZilla для TLS
Чтобы использовать FTP с TLS, вам нужен FTP-клиент, который поддерживает TLS, такой как FileZilla.
В FileZilla откройте Диспетчер серверов:

Введите IP-адрес или имя хоста FTP-сервера в поле сервера, выберите протокол “FTP” и “Требовать явный FTP через TLS”, и введите имя пользователя в поле пользователя.

Теперь вы можете подключиться к серверу. Если вы делаете это в первый раз, вам нужно будет принять новый SSL-сертификат сервера:

Если всё прошло хорошо, вы теперь должны быть вошли на сервер:

7 Ссылки
- vsftpd: https://security.appspot.com/vsftpd.html
- FileZilla: http://filezilla-project.org/
- Debian: http://www.debian.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.