Как установить vsftpd (ftp-сервер) на CentOS 8 / RHEL 8

Как установить vsftpd (ftp-сервер) на CentOS 8 / RHEL 8

 

FTP , сокращение от File Transfer Protocol , — это протокол, который обеспечивает доступ к файлам, находящимся на сервере. Это один из первых протоколов, который позволял пользователям загружать файлы через Интернет. С помощью протокола FTP пользователи могут легко загружать и выгружать файлы на серверы.

Vsftpd , сокращение от Very Secure FTP daemon , — это демон защищенного FTP, который является обновлением протокола FTP. Он обеспечивает безопасные соединения с FTP-серверами, шифруя трафик, отправляемый на сервер и с него, и тем самым обеспечивает безопасность передачи файлов от хакеров.

В этой теме мы освещаем установку vsftpd на CentOS 8 / RHEL 8.

Шаг 1) Установите vsftpd с помощью команды dnf

Сразу же мы собираемся установить vsftpd. Для этого мы запустим следующую команду:

$ sudo dnf install vsftpd

Как установить vsftpd (ftp-сервер) на CentOS 8

Нажмите « y » и нажмите ENTER, чтобы начать установку. Установка занимает несколько секунд и завершится в кратчайшие сроки. Приведенный ниже вывод подтверждает, что vsftpd успешно установлен.

Как установить vsftpd (ftp-сервер) на CentOS 8

Вывод показывает, что мы установили vsftpd версии 3.0.3-31.el8.x86_64 . Чтобы подтвердить это, выполните следующую команду:

[root@infoit.com.ua ~]$ rpm -q vsftpd
vsftpd-3.0.3-31.el8.x86_64
[root@infoit.com.ua ~]$

После успешной установки вывод должен совпадать с версией, напечатанной на терминале. Чтобы получить более подробную информацию о Vsftpd, добавьте в конце флаг -i, как показано:

$ rpm -qi vsftpd

Это напечатает дополнительную информацию на экране, такую ​​как архитектура, дата установки, лицензия и подпись, чтобы упомянуть некоторые из них.

Как установить vsftpd (ftp-сервер) на CentOS 8

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

Чтобы запустить службу vsftpd, выполните команду:

$ sudo systemctl start vsftpd

Вы также можете включить его автоматический запуск при перезагрузке. Для этого запустите команду

$ sudo systemctl enable vsftpd --now

Чтобы проверить статус vsftpd в вашей системе, запустите:

$ sudo systemctl status vsftpd

Как установить vsftpd (ftp-сервер) на CentOS 8

Если вы видите директиву « active: (running) » зеленым цветом, как показано на терминале, то служба vsftpd запущена и работает.

Шаг 2) Создайте пользователя ftp и его каталог

Затем мы создадим пользователя, которого будем использовать для доступа к FTP-серверу. В этом случае пользователь будет ftpuser, но вы можете дать своему пользователю любое имя по вашему выбору.

$ sudo adduser ftpuser
$ sudo passwd ftpuser

Имея пользователя 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

Нам также необходимо добавить пользователя FTP в файл /etc/vsftpd/user_list, чтобы разрешить пользователю доступ к серверу vsftp.

$ sudo bash -c 'echo ftpuser >> /etc/vsftpd/user_list'

Шаг 3) Настройте vsftpd через его файл конфигурации

Пока что нам удалось установить и подтвердить, что vsftpd запущен и работает. Дальнейшие настройки необходимы для Vsftpd, чтобы разрешить пользователям доступ к серверу.

Файл конфигурации по умолчанию для vsftpd — это файл /etc/vsftpd/vsftpd.conf . Файл изобилует директивами, которые помогают повысить безопасность вашего FTP-сервера.

В этом разделе мы внесем несколько изменений в файл конфигурации и предоставим пользователям доступ к серверу.

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

anonymous_enable=NO
local_enable=YES

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

write_enable=YES

В целях безопасности вы можете запретить пользователям доступ к любым файлам и каталогам за пределами их домашних каталогов. Поэтому используйте следующую директиву.

chroot_local_user=YES

Чтобы предоставить пользователям доступ на запись в их соответствующие домашние каталоги, убедитесь, что у вас есть эта директива.

allow_writeable_chroot=YES

Далее мы собираемся определить настраиваемые порты для включения пассивных FTP-соединений. В этом случае мы укажем порты 30000 и 31000. Позже мы откроем их на брандмауэре.

pasv_min_port=30000
pasv_max_port=31000

Далее мы собираемся разрешить доступ к серверу только пользователям, указанным в /etc/vsftpd/user_list, а остальных заблокировать. Для этого используйте строки ниже.

userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

Наконец, сохраните и закройте файл. Чтобы изменения сохранились, перезапустите службу Vsftpd.

$ sudo systemctl restart vsftpd

На этом этапе вы можете проверить FTP-соединение, запустив

$ ftp ip-address

Укажите имя пользователя ftp, а затем введите пароль. Вы должны получить результат, как показано.

Как установить vsftpd (ftp-сервер) на CentOS 8

Хотя мы установили подключение к серверу vsftpd. Соединение не является безопасным, а информация отправляется в виде обычного текста и не зашифрована. Поэтому нам необходимо предпринять дополнительные шаги для шифрования сообщений, отправляемых на сервер.

Шаг 4) Настройте SSL / TLS для vsftpd

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

Чтобы сгенерировать сертификат, выполните следующую команду:

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

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

Как установить vsftpd (ftp-сервер) на CentOS 8

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

rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd.pem

Затем дайте серверу команду включить SSL.

ssl_enable=YES

Сохраните и выйдите из файла конфигурации. Чтобы внести указанные выше изменения в эффект, перезапустите службу vsftpd,

$ sudo systemctl restart vsftpd

Шаг 5) Разрешите порты ftp-сервера (vsftpd) в брандмауэре

Если вы используете брандмауэр, вам необходимо разрешить эти важные порты »

  • 20 — разрешить FTP-трафик
  • 21 — порт данных FTP
  • 30000-31000 — разрешить пассивную связь с FTP-сервером.

Поэтому выполните следующие команды:

$ sudo firewall-cmd --permanent --add-port=20-21/tcp
$ sudo firewall-cmd --permanent --add-port=30000-31000/tcp

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

$ sudo firewall-cmd --relo­ad

Шаг 6) Проверьте свой vsftpd или FTP-сервер

Когда все настройки выполнены, пришло время проверить нашу связь. В этом примере мы используем FTP-клиент, известный как FileZilla, который является бесплатным FTP-клиентом как для клиентских, так и для серверных систем. Он поддерживает как простой FTP, так и FTP через TLS, что мы и собираемся протестировать.

При запуске интерфейс выглядит так, как показано на рисунке. Укажите IP-адрес хоста (vsftpd), имя пользователя и пароль пользователя ftp, а затем нажмите кнопку « Быстрое подключение ».

Как установить vsftpd (ftp-сервер) на CentOS 8

Вскоре после этого появится всплывающее окно с информацией о сертификате и сеансе FTP-сервера. Чтобы продолжить подключение, нажмите « Всегда доверять этому сертификату в будущем сеансе », а затем нажмите Enter.

Как установить vsftpd (ftp-сервер) на CentOS 8

Если все ваши конфигурации верны, вы должны получить доступ без каких-либо проблем, как показано. В правом нижнем углу домашний каталог удаленного сервера, как показано. Теперь вы можете загружать, скачивать и редактировать файлы по своему усмотрению.

На этом мы завершаем нашу тему по установке vsftpd на CentOS 8. Мы надеемся, что теперь вы можете удобно настроить свой собственный сервер vsftpd (безопасный ftp). Пожалуйста, поделитесь им со своими техническими друзьями, а также поделитесь своими ценными отзывами и комментариями.