Как установить FTP server vsftpd на Debian 11 | Debian 10

Как установить FTP server vsftpd на Debian 11 | Debian 10

 

FTP, сокращение от File Transfer Protocol, является популярным протоколом для передачи файлов на FTP-сервер и с него. Однако это чревато угрозами безопасности, поскольку отправляет данные и конфиденциальную информацию, такую ​​как имена пользователей и пароли, в виде обычного текста. VSFTPD (Very Secure FTP Daemon) — это быстрый, безопасный и стабильный 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 для пользователя 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

Требуется несколько дополнительных шагов, прежде чем мы сможем войти в систему и начать взаимодействие с сервером. Продолжите и отредактируйте основной файл конфигурации — /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

Мы закончили с настройками. Последний бит — войти в систему. Если у вас включен брандмауэр, разрешите порты 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

Введите «да», когда будет предложено продолжить, и укажите пароль для входа в систему пользователя FTP.

 

Вывод

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