FTP сервер · 6 min read · Dec 22, 2025
Как установить безопасный FTP-сервер с vsftpd на Debian 12

vSFTPd или Very Secure FTP Daemon — это бесплатное и открытое программное обеспечение для FTP-сервера. Это демон FTP для операционных систем, подобных Unix, и лицензирован под лицензией GNU General Public License. vSFTPd является одним из самых широко используемых демонов FTP, он быстрый и легковесный с точки зрения системных ресурсов, безопасный благодаря интеграции PAM и SSL, и стабильный. vSFTPd завоевал доверие крупных компаний, таких как RedHat, SUSE, Debian, Gnome, KDE и др., благодаря своей сложности.
vSFTPd может работать с IPv6 и поддерживает виртуальные IP-конфигурации и пользователей. Его можно запускать как отдельный демон или через inetd. Для управления пользователями vSFTPd предоставляет функцию, позволяющую пользователям устанавливать свою собственную конфигурацию, такую как ограничения по IP-адресу, возможность перенастройки и ограничение пропускной способности. Кроме того, vSFTPd поддерживает модуль аутентификации плагина (PAM) для виртуальных пользователей и также обеспечивает интеграцию безопасности с SSL/TLS.
В этом руководстве вы узнаете, как настроить и создать безопасный FTP-сервер с vsftpd на сервере Debian 12. В этом руководстве вы также узнаете, как защитить установку вашего FTP-сервера с помощью UFW (Uncomplicated Firewall) и как подключиться к FTP-серверу с помощью FTP-клиента FileZilla.
Предварительные требования
Перед тем как продолжить, убедитесь, что у вас есть следующее:
- Сервер Debian 12.
- Пользователь, не являющийся root, с правами администратора sudo.
- Пакет openssl установлен на вашем сервере.
Установка vsftpd
vsftpd — это реализация протокола FTP для операционных систем UNIX и Linux. Пакет vsftpd доступен на большинстве дистрибутивов Linux, включая Debian. Теперь вы установите vsftpd через APT и проверите службу vsftpd, чтобы убедиться, что служба работает.
Перед установкой пакета vsftpd выполните следующую команду, чтобы обновить репозиторий Debian.
sudo apt update
Теперь установите пакет vsftpd, используя команду apt install ниже.
sudo apt install vsftpdПодтвердите установку, набрав y и нажав ENTER.

После установки vsftpd служба vsftpd будет автоматически запущена и включена. Проверьте службу vsftpd, используя следующую команду.
sudo systemctl is-enabled vsftpd
sudo systemctl status vsftpdСледующий вывод подтверждает, что служба vsftpd работает и включена. Также служба vsftpd будет запущена автоматически при загрузке системы.

Настройка vsftpd
На следующем шаге вы настроите и создадите безопасный FTP-сервер с vsftpd. Вы сгенерируете SSL/TLS сертификаты и измените конфигурацию по умолчанию vsftpd /etc/vsftpd.conf.
Сначала выполните команду openssl ниже, чтобы сгенерировать новые TLS сертификаты, которые будут использоваться для установки вашего сервера vsftpd.
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pemВведите свои данные, когда будет запрошено. После завершения процесса ваши TLS сертификаты будут доступны по адресу /etc/ssl/private/vsftpd.pem.

Теперь выполните команду ниже, чтобы создать новый файл /etc/vsftpd.userlist для хранения FTP пользователей.
touch /etc/vsftpd.userlistПосле этого выполните следующую команду для резервного копирования конфигурации vsftpd. Затем откройте конфигурацию vsftpd /etc/vsftpd.conf с помощью редактора nano.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
sudo nano /etc/vsftpd.confОтключите анонимный доступ к вашему серверу vsftpd, изменив параметр anonymous_enable на NO.
anonymous_enable=NOРазрешите локальным пользователям из файла /etc/passwd и пользователям PAM входить на сервер vsftpd, изменив параметр local_enable на YES.
local_enable=YESРазрешите FTP пользователям загружать файлы на сервер vsftpd, изменив параметр write_enable на YES.
write_enable=YESТеперь включите chroot или тюрьму для FTP пользователей, добавив следующие параметры. Это заблокирует FTP пользователя в директории /home/$USER/chroot. Например, FTP пользователь bob будет заблокирован в директории /home/bob/chroot.
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/chrootДалее добавьте следующую конфигурацию для настройки виртуальных пользователей vsftpd. Любой пользователь в файле /etc/vsftpd.userlist будет иметь возможность войти на сервер vsftpd.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NOДобавьте следующие строки, чтобы защитить ваш сервер vsftpd с помощью SSL/TLS сертификатов. Это заставит вход пользователей и соединение передачи данных использовать защищенные соединения.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
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Теперь добавьте конфигурацию ниже, чтобы настроить пассивные соединения с использованием портов между 20000 и 25000.
pasv_min_port=20000
pasv_max_port=25000Сохраните и выйдите из файла, когда закончите.
Теперь выполните следующую команду systemctl, чтобы перезапустить службу vsftpd и применить внесенные изменения.
sudo systemctl restart vsftpdС этим ваш сервер vsftpd теперь работает с новыми конфигурациями.
Настройка брандмауэра
На следующем шаге вы установите UFW (Uncomplicated Firewall) на своем сервере Debian и защитите установку вашего FTP-сервера с его помощью. Вы установите UFW через APT, откроете порты FTP-сервера 20:21/tcp и порты для пассивного соединения данных 20000:25000/tcp.
Установите UFW, используя следующую команду apt. Наберите y, чтобы продолжить установку.
sudo apt install ufw
После установки UFW выполните команды ufw ниже, чтобы открыть порт для службы OpenSSH, порты сервера vsftpd 20:21 и пассивное FTP соединение между портами 20000 и 25000.
sudo ufw allow OpenSSH
sudo ufw allow 20:21/tcp
sudo ufw allow 20000:25000/tcpЗатем выполните команду ufw ниже, чтобы запустить и включить UFW.
sudo ufw enableВведите для подтверждения, и UFW должен работать и быть включенным на вашей системе Debian.

Проверьте детальный статус UFW, используя команду ниже.
sudo ufw statusВывод active подтверждает, что UFW работает и включен. Также служба OpenSSH добавлена, и некоторые порты для сервера vsftpd 20:21/tcp и 20000:25000/tcp добавлены.

Настройка виртуальных пользователей FTP
На данный момент вы завершили настройку вашего сервера vsftpd, теперь вы создадите нового FTP пользователя, который будет использоваться для входа на FTP сервер и загрузки файлов на него.
Выполните следующую команду, чтобы создать новый файл /bin/ftponly. Затем сделайте его исполняемым с помощью команды chmod ниже. Файл /bin/ftponly будет использоваться в качестве оболочки по умолчанию для FTP пользователей.
echo -e '#!/bin/sh
echo "Shell for FTP users only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponlyДобавьте файл /bin/ftponly в /etc/shells, чтобы убедиться, что это действительная оболочка.
sudo echo "/bin/ftponly" >> /etc/shellsТеперь создайте нового FTP пользователя bob и установите пароль, выполнив команду ниже. Введите свой пароль и повторите его.
sudo useradd -m -s /bin/ftponly bob
sudo passwd bobПосле этого выполните следующую команду, чтобы создать новую директорию chroot /home/bob/chroot для пользователя bob. Также вы убедитесь, что директория chroot /home/bob/chroot имеет правильное владение.
sudo -u bob mkdir -p /home/bob/chroot
sudo chown -R bob: /home/bob/chrootДалее выполните команду ниже, чтобы создать еще две новые директории data и upload, которые будут использоваться для хранения данных FTP пользователя. Убедитесь, что вы настроили правильное владение для этих директорий.
sudo -u bob mkdir -p /home/bob/chroot/{data,upload}
sudo chown -R bob: /home/bob/chroot/{data,upload}Теперь выполните команду ниже, чтобы изменить разрешения директории /home/bob/chroot на 550, а обе директории data и upload на 750.
sudo chmod 550 /home/bob/chroot
sudo chmod 750 /home/bob/chroot/{data,upload}Теперь, когда вы создали нового пользователя, выполните команду ниже, чтобы добавить пользователя bob в файл /etc/vsftpd.userlist.
echo "bob" >> /etc/vsftpd.userlistНаконец, выполните следующую команду, чтобы перезапустить службу vsftpd и применить изменения. После выполнения команды ваш FTP пользователь bob готов.
sudo systemctl restart vsftpdЗагрузка файлов на FTP сервер
Чтобы проверить установку вашего сервера vsftpd, вы подключитесь к FTP серверу с новым пользователем, которого вы создали, через программное обеспечение FTP-клиента. Затем вы также загрузите новые файлы, чтобы убедиться, что ваша установка успешна.
Скачайте и установите FTP-клиент для вашего локального компьютера. Вы можете использовать FileZilla, который можно установить на Windows, Linux и MacOS. После установки FileZilla откройте его, чтобы подключиться к вашему безопасному FTP серверу.
Введите IP-адрес вашего FTP сервера, а также имя пользователя и пароль вашего FTP пользователя. Затем нажмите Quickconnect, чтобы подтвердить.
Выберите опцию Always trust this certificate in future sessions и нажмите OK, чтобы подтвердить.

После подключения к вашему FTP серверу вы должны увидеть две директории data и upload, доступные на вашем FTP сервере. Вы можете загружать файлы в обе директории data и upload, но не можете загружать файлы вне этих директорий, защищенных через chroot.

Вы можете перетаскивать файлы для загрузки на FTP сервер.

Заключение
В заключение, вы успешно создали безопасный FTP сервер с vsftpd на сервере Debian 12. Вы также защитили установку вашего FTP сервера с помощью UFW (Uncomplicated Firewall) и узнали, как создавать FTP пользователей. Теперь вы можете использовать FTP сервер в качестве основного средства передачи данных между вашим локальным компьютером и вашим сервером. Вы также можете найти другое программное обеспечение FTP-клиента по вашему выбору.
Get new posts in your inbox
No spam. Unsubscribe anytime.