Поиск по сайту:

Как установить FTP-сервер vsftpd и защитить его с помощью TLS в Debian 11


Это руководство существует для этих версий ОС

  • Debian 11 (Bullseye)
  • Debian 6 (Squeeze)

На этой странице

  1. Предпосылки
  2. 1. Установить vsftpd
  3. 2. Создайте пользователя FTP и настройте для входа в систему FTP
  4. 3. Создать каталог пользователя FTP
  5. 4. Настроить Vsftpd
  6. 5. разрешить vsftpd в брандмауэре и получить доступ к серверу vsftpd
  7. 6. Безопасный Vsftpd с использованием SSL/TLS
  8. 7. Доступ к FTP через SSL/TLS
  9. Заключение

Протокол передачи файлов или 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-серверу и можете загружать и скачивать файлы/папки.

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

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

Заключение

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