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 -y

Debian имеет очень большой репозиторий, и пакет vsftpd доступен в официальном репозитории, поэтому вы можете легко установить vsftpd, выполнив следующую команду:

sudo apt install vsftpd -y

После установки пакета запустите службу Vsftpd, проверьте статус службы и включите службу при запуске.

sudo systemctl start vsftpd  

sudo systemctl status vsftpd  

systemctl enable vsftpd.service

2. Создайте FTP пользователя и настройте вход в FTP

Теперь создайте новую учетную запись пользователя для FTP, с помощью этого пользователя мы позже войдем на FTP сервер.

sudo adduser sohan

Пользователи, добавленные в файл vsftpd.userlist, имеют разрешение на доступ к FTP серверу.

Далее нам нужно добавить пользователя sohan в список пользователей vsftpd. Откройте файл и добавьте пользователя, выполнив следующую команду:

echo "sohan" | sudo tee -a  /etc/vsftpd.userlist

3. Создайте каталог 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_data
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
cd /home/sohan/ftp_directory/
chmod -R 777 ftp_data

4. Настройте Vsftpd

Далее вам нужно изменить некоторые параметры по умолчанию, чтобы настроить FTP сервер.

Сначала создайте резервную копию оригинального файла конфигурации vsftpd.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

На FTP сервере анонимным пользователям по умолчанию предоставляется доступ. Чтобы сделать FTP сервер более безопасным, мы отключим вход анонимных пользователей и предоставим доступ только конкретному пользователю.

Далее откройте файл vsftpd.conf и внесите изменения, как указано ниже:

vim /etc/vsftpd.conf
anonymous_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 vsftpd

5. Разрешите vsftpd в брандмауэре и получите доступ к серверу vsftpd

Далее, если вы используете брандмауэр, разрешите порт 21 и порт 22, выполнив следующую команду:

sudo ufw allow 21/tcp  
  
sudo ufw allow 22/tcp

Затем перезагрузите брандмауэр, чтобы применить изменения:

sudo ufw reload

Далее откройте любой FTP клиент, например, FileZilla, и введите данные вашего сервера, такие как Протокол, Хост, Пользователь:

Настройка брандмауэра
Теперь нажмите на подключение, затем введите ваш пароль:

Введите пароль

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

Принять новый хост

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

Подключение к серверу 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 vsftpd

7. Доступ к FTP через SSL/TLS

Откройте клиент FTP FileZilla и перейдите в Файл>Менеджер сайтов. Здесь нажмите на добавление нового сайта и введите имя хоста/сайта, добавьте IP-адрес, определите протокол для использования, Шифрование: Требовать явного FTP через TLS и тип входа. Затем нажмите кнопку Подключиться. Вы должны увидеть следующее изображение:

Доступ к FTP через SSL/TLS

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

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

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

Подключение к серверу FTP прошло успешно

Заключение

В приведенном выше руководстве мы установили сервер VSFTPD на Debian 11. Мы также узнали, как подключаться через нешифрованное и зашифрованное соединение с использованием SSL сертификата.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.