Настройка сервера · 3 min read · Dec 23, 2025

Настройка vsftpd + TLS на Debian Squeeze

Настройка vsftpd + TLS на Debian Squeeze

Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter

FTP — это очень небезопасный протокол, потому что все пароли и все данные передаются в открытом виде. Используя TLS, всю коммуникацию можно зашифровать, что делает FTP гораздо более безопасным. Эта статья объясняет, как настроить vsftpd с TLS на сервере Debian Squeeze.

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

В этом руководстве я использую имя хоста server1.example.com с IP-адресом 192.168.0.100. Эти настройки могут отличаться для вас, поэтому вам нужно заменить их, где это необходимо.

2 Установка vsftpd и OpenSSL

OpenSSL необходим для TLS; чтобы установить vsftpd и OpenSSL, мы просто выполняем:

apt-get install vsftpd openssl

3 Создание 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

Country Name (2 letter code) [AU]: <– Введите название вашей страны (например, “DE”).
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) []: <– Введите название вашего структурного подразделения (например, “IT Department”).
Common Name (eg, YOUR name) []: <– Введите полное доменное имя системы (например, “server1.example.com”).
Email Address []: <– Введите ваш адрес электронной почты.

4 Включение TLS в vsftpd

Чтобы включить TLS в vsftpd, откройте /etc/vsftpd.conf…

vi /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 [...] # Вы можете ограничить локальных пользователей их домашними директориями. Смотрите FAQ для # возможных рисков перед использованием chroot_local_user или # chroot_list_enable ниже. chroot_local_user=YES [...] |

Перезапустите vsftpd после этого:

/etc/init.d/vsftpd restart

Вот и все. Теперь вы можете попробовать подключиться, используя ваш FTP-клиент; однако вам следует настроить ваш FTP-клиент для использования TLS (это обязательно, если вы используете force_local_logins_ssl=YES и force_local_data_ssl=YES) - смотрите следующую главу, чтобы узнать, как это сделать с FileZilla.

5 Настройка FileZilla для TLS

Чтобы использовать FTP с TLS, вам нужен FTP-клиент, который поддерживает TLS, такой как FileZilla.

В FileZilla откройте Диспетчер серверов:

Выберите сервер, который использует vsftpd с TLS; в выпадающем меню Тип сервера выберите FTPES вместо обычного FTP:

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

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

6 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.