Настройка сервера · 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 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.pemCountry 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 Ссылки
- 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.