Как установить и настроить FTP сервер vsftpd в Debian 11

FTP это сокращение от File Transfer Protocol (Протокол Передачи Файлов), является популярным протоколом для передачи файлов на FTP-сервер и с него. Но это чревато рисками для безопасности, так как он отправляет данные и конфиденциальную информацию, такую как имя пользователя и пароль, в обычном тексте. VSFTPD (Очень безопасный демон FTP) – это быстрый, безопасный и стабильный FTP – сервер, который использует шифрование для защиты данных.

В этой инструкции мы покажем как выполняется установка FTP сервера vsftpd в Debian 11.

Так же вам может быть интересно:

УСТАНОВКА И НАСТРОЙКА VSFTPD С SSL/TLS НА UBUNTU 20.04

Шаг 1: Установка vsftpd в Debian 11

Сначала откройте терминал и обновите списки пакетов на вашем сервере Debian.

$ sudo apt update

Пакет vsftpd размещен в официальных репозиториях Debian. Поэтому используйте диспетчер пакетов APT, как показано ниже.

$ sudo apt install vsftpd

Эта команда устанавливает vsftpd наряду с другими зависимостями. После установки vsftpd запускается автоматически. Вы можете проверить это выполнив команду:

$ sudo systemctl status vsftpd

Из данных вы можете видеть, что vsftpd работает, как и ожидалось.

Проверка службы vsftpd в Debian 11
Проверка службы vsftpd в Debian 11

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

$ sudo systemctl start vsftpd

Затем включите запуск службы во время загрузки операционной системы.

$ sudo systemctl enable vsftpd

Шаг 2. Создание уникального пользователя FTP

Теперь мы создадим уникальную учетную запись пользователя FTP. Эту запись мы будем использовать для входа на FTP – сервер. Просто используйте команду adduser, за которой поставьте имя пользователя и отвечайте на вопросы соответствующим образом.

=

$ sudo adduser ftpuser

Создание пользователя FTP в Debian 11
Создание пользователя FTP в Debian 11

Шаг 3. Добавьте пользователя FTP в список разрешенных пользователей для входа

Далее мы добавим vsftpd.userlist в файл пользователя FTP. Локальным пользователям указанным в этом файле, разрешается доступ к FTP-серверу.

Итак, выполните команду:

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

Добавление пользователя FTP в файл списка пользователей vsftpd
Добавление пользователя FTP в файл списка пользователей vsftpd

Теперь давайте продолжим и настроим vsftpd.

Шаг 4: Создание каталога пользователя FTP

Далее нам потребуется создать каталог FTP для пользователя. И назначить соответствующие права доступа к каталогу и права собственности.

$ sudo mkdir -p /home/ftpuser/ftp_dir
$ sudo chmod -R 750 /home/ftpuser/ftp_dir
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir

Шаг 5: Настройка vsftpd в Debian

Для настройки vsftpd требуется несколько дополнительных манипуляций. И их надо выполнить, прежде чем мы сможем войти в систему и начать взаимодействовать с сервером. Для этого отредактируйте основной файл конфигурации – /etc/vsftpd.conf.

$ sudo vim /etc/vsftpd.conf

Есть несколько настроек, которые вам необходимо сделать.

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

anonymous_enable=NO
local_enable=YES

Далее вам необходимо разрешить локальному пользователю загружать файлы и получать доступ к домашнему каталогу, а также вносить изменения в файлы. Сделайте следующую настройку:

write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

Кроме того, вы можете ограничить локальных пользователей, которые могут получать доступ к файлам и загружать их, указав пользователей содержащихся в файле vsftpd.userlist.

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

Чтобы обеспечить безопасное FTP-соединение с сервером, нам нужно зашифровать сервер с помощью SSL – сертификата. Мы создадим самозаверяющий сертификат SSL для шифрования сервера. Чтобы сделать это выполните команду.

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Далее вернитесь к файлу конфигурации и вставьте эти строки, чтобы указать путь к сгенерированным сертификатам SSL и включить SSL.

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES

Файл конфигурации должен содержать следующие строки:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
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
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

Чтобы изменения вступили в силу, перезапустите сервер. Сделать это можно командой:

$ sudo systemctl restart vsftpd

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

$ sudo systemctl status vsftpd

Шаг 5. Доступ к серверу vsftpd в Debian

На этом мы закончили с конфигурациями. Последний шаг – это войти в систему. Если у вас включен брандмауэр, разрешите порты 20 и 21.

$ sudo ufw allow 20/tcp

$ sudo ufw allow 21/tcp

Затем перезагрузите брандмауэр, чтобы изменения вступили в силу.

$ sudo ufw reload

Теперь включите свой FTP-клиент, например FileZilla, и заполните данные следующим образом:

Хост: sftp://сервер-IP

Имя пользователя: пользователь ftpuser

Пароль: Пароль пользователя ftpuser

Теперь как вы заполнили все поля, нажмите кнопку “QuickConnect“.

Подключение к ftp серверу vsftpd на Дебиан 11
Подключение к ftp серверу vsftpd на Дебиан 11

После того как все каталоги загрузились вы можете начать безопасную передачу файлов по протоколу SSL.

Безопасная передача файлов на сервер и с сервера с помощью SSL
Безопасная передача файлов на сервер и с сервера с помощью SSL

Так же можно сделать при помощи командной строки. Для этого выполните команду:

$ sftp ftpuser@server-IP

При появлении запроса для продолжение введите ” YES “, далее введите пароль для входа пользователя FTP.

Заключение

В этой инструкции мы показали, как установить FTP сервер vsftpd в Debian 11. А так же показали как создать пользователя, настроить сервер и войти в систему с помощью FTP-клиента и командной строки.

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем. Мои глубокие знания и обширный практический опыт в этих сферах позволяют мне создавать детальные руководства и учебные материалы, ценные для пользователей всех уровней.

Я стремлюсь делать сложные темы доступными и понятными, надеюсь что мой вклад в сообщество IT будет оценен по достоинству.

Моя работа направлена на образование и распространение знаний в области информационных технологий, помогая другим расширять свои возможности и углублять понимание современных технологий.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.

  1. Евгений

    Ооо спасибо, очень помогли. Не поверите 3 день не мог установить долбаный ftp на долбаный Дебиан

    Ответить
  2. Александр

    Очень странно, либо Вы скриншоты не те вставляете, либо не понимаете разницу между ftp и sftp.
    По сути Вы можете выполнить всего одну команду из Вашей статьи и у Вас все заработает, не нужно даже устанавливать vsftpd.
    просто создайте пользователя
    sudo adduser ftpuser
    и можете подключаться по команде sftp ftpuser@server-IP, и все будет работать.
    Вы подключаетесь не по ftp протоколу а по sftp который работает по 22 порту.

    Ответить
  3. twicolor

    В начале статьи файл со списком пользователей у вас называется /etc/vsftpd.userlist, потом вдруг переименовывается в /etc/vsftpd.user_list, вы уж определитесь, как его назвать

    Ответить