FTP сервер · 4 min read · Sep 23, 2025
Как установить сервер FTP vsftpd и защитить его с помощью TLS на Debian 11

Протокол передачи файлов или FTP — это очень старый и один из самых известных сетевых протоколов. В наши дни он не безопасен по сравнению с SFTP или SCP, но по-прежнему является первым выбором многих пользователей для передачи файлов между сервером и клиентом. FTP считается небезопасным, потому что он передает данные вместе с учетными данными пользователя без какого-либо шифрования.
У нас есть широкий выбор серверов FTP с открытым исходным кодом, таких как FTPD, VSFTPD, PROFTPD и pureftpd. Среди всех них VSFTPD является очень безопасным, быстрым и наиболее широко используемым протоколом для передачи файлов между двумя системами.
VSFTPD также известен как “Демон очень безопасного протокола передачи файлов” с поддержкой SSL, IPv6, явного и неявного FTPS.
В этом руководстве мы покажем вам, как установить сервер FTP vsftpd на Debian 11.
Предварительные требования
Сервер с установленным Debian 11.
Пользователь, не обладающий правами root, с правами sudo.
1. Установите Vsftpd
Перед тем как начать установку, обновите ваш сервер Debian 11, выполнив следующую команду в терминале:
sudo apt update -y
sudo apt upgrade -yDebian имеет очень большой репозиторий, и пакет vsftpd доступен в официальном репозитории, поэтому вы можете легко установить vsftpd, выполнив следующую команду:
sudo apt install vsftpd -yПосле установки пакета запустите службу Vsftpd, проверьте статус службы и включите службу при запуске.
sudo systemctl start vsftpd
sudo systemctl status vsftpd
systemctl enable vsftpd.service2. Создайте FTP пользователя и настройте вход в FTP
Теперь создайте новую учетную запись пользователя для FTP, с помощью этого пользователя мы позже войдем на FTP сервер.
sudo adduser sohanПользователи, добавленные в файл vsftpd.userlist, имеют разрешение на доступ к FTP серверу.
Далее нам нужно добавить пользователя sohan в список пользователей vsftpd. Откройте файл и добавьте пользователя, выполнив следующую команду:
echo "sohan" | sudo tee -a /etc/vsftpd.userlist3. Создайте каталог FTP пользователя
Далее нам нужно создать каталог FTP для нашего FTP пользователя и установить права собственности с помощью следующей команды:
sudo mkdir -p /home/sohan/ftp_directory
sudo chown nobody:nogroup /home/sohan/ftp_directory
sudo chmod a-w /home/sohan/ftp_directoryТеперь создайте каталог, куда можно загружать файлы, и дайте право собственности пользователю sohan, выполнив команду:
sudo mkdir -p /home/sohan/ftp_directory/ftp_datasudo chown sohan:sohan /home/sohan/ftp_directory/ftp_datacd /home/sohan/ftp_directory/chmod -R 777 ftp_data4. Настройте Vsftpd
Далее вам нужно изменить некоторые параметры по умолчанию, чтобы настроить FTP сервер.
Сначала создайте резервную копию оригинального файла конфигурации vsftpd.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bakНа FTP сервере анонимным пользователям по умолчанию предоставляется доступ. Чтобы сделать FTP сервер более безопасным, мы отключим вход анонимных пользователей и предоставим доступ только конкретному пользователю.
Далее откройте файл vsftpd.conf и внесите изменения, как указано ниже:
vim /etc/vsftpd.confanonymous_enable=NO
local_enable=YESЕсть еще некоторые изменения, которые нам нужно внести в конфигурацию. Сначала откройте vsftpd.conf
sudo vim /etc/vsftpd.confДалее убедитесь, что vsftpd.conf содержит следующие строки:
listen=NO
listen_ipv6=YES
anonymous_enable=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
user_sub_token=$USER
local_root=/home/$USER/ftp_directory
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NOСохраните и закройте файл. Вы можете изменить вышеуказанную конфигурацию в соответствии с вашими потребностями.
Теперь перезапустите службу vsftpd и проверьте статус службы, выполнив следующие команды:
sudo systemctl restart vsftpdДалее убедитесь, что служба vsftpd работает, выполнив следующую команду в терминале:
sudo systemctl status vsftpd5. Разрешите vsftpd в брандмауэре и получите доступ к серверу vsftpd
Далее, если вы используете брандмауэр, разрешите порт 21 и порт 22, выполнив следующую команду:
sudo ufw allow 21/tcp
sudo ufw allow 22/tcpЗатем перезагрузите брандмауэр, чтобы применить изменения:
sudo ufw reloadДалее откройте любой FTP клиент, например, FileZilla, и введите данные вашего сервера, такие как Протокол, Хост, Пользователь:

Теперь нажмите на подключение, затем введите ваш пароль:

Затем появится информация, как ниже, нажмите ОК.

На этом этапе вы подключены к FTP серверу, и вы можете загружать и скачивать файлы/папки.

6. Защитите Vsftpd с помощью SSL/TLS
Предположим, вы хотите передавать зашифрованные данные через FTP, для этого вам нужно создать SSL сертификат и включить соединение SSL/TLS.
Вы можете создать сертификат с помощью OpenSSL, используя следующую команду:
sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pemТеперь вам нужно отредактировать файл vsftpd.conf и внести некоторые изменения:
sudo vim /etc/vsftpd.confДобавьте следующие строки в конце:
rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGHСохраните и выйдите из файла, затем перезапустите Vsftpd, используя следующую команду:
sudo systemctl restart vsftpd7. Доступ к FTP через SSL/TLS
Откройте клиент FTP FileZilla и перейдите в Файл>Менеджер сайтов. Здесь нажмите на добавление нового сайта и введите имя хоста/сайта, добавьте IP-адрес, определите протокол для использования, Шифрование: Требовать явного FTP через TLS и тип входа. Затем нажмите кнопку Подключиться. Вы должны увидеть следующее изображение:

Далее введите ваш пароль:

Далее вы увидите SSL сертификат, проверьте детали сертификата и нажмите ОК.

В конце вы увидите содержимое вашего FTP сервера и сможете безопасно передавать данные с одной системы на другую.

Заключение
В приведенном выше руководстве мы установили сервер VSFTPD на Debian 11. Мы также узнали, как подключаться через нешифрованное и зашифрованное соединение с использованием SSL сертификата.
Get new posts in your inbox
No spam. Unsubscribe anytime.