Как установить FTP-сервер vsftpd и защитить его с помощью TLS в Debian 11
Это руководство существует для этих версий ОС
- Debian 11 (Bullseye)
- Debian 6 (Squeeze)
На этой странице
- Предпосылки
- 1. Установить vsftpd
- 2. Создайте пользователя FTP и настройте для входа в систему FTP
- 3. Создать каталог пользователя FTP
- 4. Настроить Vsftpd
- 5. разрешить vsftpd в брандмауэре и получить доступ к серверу vsftpd
- 6. Безопасный Vsftpd с использованием SSL/TLS
- 7. Доступ к FTP через SSL/TLS
- Заключение
Протокол передачи файлов или 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-сертификата.