FTP это сокращение от File Transfer Protocol (Протокол Передачи Файлов), является популярным протоколом для передачи файлов на FTP-сервер и с него. Но это чревато рисками для безопасности, так как он отправляет данные и конфиденциальную информацию, такую как имя пользователя и пароль, в обычном тексте. VSFTPD (Очень безопасный демон FTP) — это быстрый, безопасный и стабильный FTP — сервер, который использует шифрование для защиты данных.
В этой инструкции мы покажем как выполняется установка FTP сервера vsftpd в Debian 11.
Так же вам может быть интересно:
Шаг 1: Установка vsftpd в Debian 11
Сначала откройте терминал и обновите списки пакетов на вашем сервере Debian.
$ sudo apt update
Пакет vsftpd размещен в официальных репозиториях Debian. Поэтому используйте диспетчер пакетов APT, как показано ниже.
$ sudo apt install vsftpd
Эта команда устанавливает vsftpd наряду с другими зависимостями. После установки vsftpd запускается автоматически. Вы можете проверить это выполнив команду:
$ sudo systemctl status vsftpd
Из данных вы можете видеть, что vsftpd работает, как и ожидалось.
В случае если служба vsftpd не запущена, вы можете запустить ее вручную для этого введите.
$ sudo systemctl start vsftpd
Затем включите запуск службы во время загрузки операционной системы.
$ sudo systemctl enable vsftpd
Шаг 2. Создание уникального пользователя FTP
Теперь мы создадим уникальную учетную запись пользователя FTP. Эту запись мы будем использовать для входа на FTP — сервер. Просто используйте команду adduser
, за которой поставьте имя пользователя и отвечайте на вопросы соответствующим образом.
$ sudo adduser ftpuser
Шаг 3. Добавьте пользователя FTP в список разрешенных пользователей для входа
Далее мы добавим vsftpd.userlist
в файл пользователя FTP. Локальным пользователям указанным в этом файле, разрешается доступ к FTP-серверу.
Итак, выполните команду:
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
Теперь давайте продолжим и настроим 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«.
После того как все каталоги загрузились вы можете начать безопасную передачу файлов по протоколу SSL.
Так же можно сделать при помощи командной строки. Для этого выполните команду:
$ sftp ftpuser@server-IP
При появлении запроса для продолжение введите » YES «, далее введите пароль для входа пользователя FTP.
Заключение
В этой инструкции мы показали, как установить FTP сервер vsftpd в Debian 11. А так же показали как создать пользователя, настроить сервер и войти в систему с помощью FTP-клиента и командной строки.
Ооо спасибо, очень помогли. Не поверите 3 день не мог установить долбаный ftp на долбаный Дебиан
Очень странно, либо Вы скриншоты не те вставляете, либо не понимаете разницу между ftp и sftp.
По сути Вы можете выполнить всего одну команду из Вашей статьи и у Вас все заработает, не нужно даже устанавливать vsftpd.
просто создайте пользователя
sudo adduser ftpuser
и можете подключаться по команде sftp ftpuser@server-IP, и все будет работать.
Вы подключаетесь не по ftp протоколу а по sftp который работает по 22 порту.
В начале статьи файл со списком пользователей у вас называется /etc/vsftpd.userlist, потом вдруг переименовывается в /etc/vsftpd.user_list, вы уж определитесь, как его назвать