Как установить 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
Нажмите « y » и нажмите ENTER, чтобы начать установку. Установка занимает несколько секунд и завершится в кратчайшие сроки. Приведенный ниже вывод подтверждает, что vsftpd успешно установлен.
Вывод показывает, что мы установили 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 нам нужно, чтобы он работал, чтобы облегчить доступ к общим файловым ресурсам.
Чтобы запустить службу vsftpd, выполните команду:
$ sudo systemctl start vsftpd
Вы также можете включить его автоматический запуск при перезагрузке. Для этого запустите команду
$ sudo systemctl enable vsftpd --now
Чтобы проверить статус vsftpd в вашей системе, запустите:
$ sudo systemctl status vsftpd
Если вы видите директиву « 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. Соединение не является безопасным, а информация отправляется в виде обычного текста и не зашифрована. Поэтому нам необходимо предпринять дополнительные шаги для шифрования сообщений, отправляемых на сервер.
Шаг 4) Настройте SSL / TLS для vsftpd
Чтобы зашифровать обмен данными между сервером и клиентской системой, нам необходимо сгенерировать сертификат TLS, а затем настроить сервер для его использования.
Чтобы сгенерировать сертификат, выполните следующую команду:
$ sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
За этим последует серия запросов, в которых вам потребуется указать некоторые детали, такие как название страны, штата или провинции, название организации и многое другое. Заполните все данные соответственно, как показано.
Нам также необходимо сообщить серверу, где хранятся файлы сертификатов. Итак, вернитесь к файлу конфигурации /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 --reload
Шаг 6) Проверьте свой vsftpd или FTP-сервер
Когда все настройки выполнены, пришло время проверить нашу связь. В этом примере мы используем FTP-клиент, известный как FileZilla, который является бесплатным FTP-клиентом как для клиентских, так и для серверных систем. Он поддерживает как простой FTP, так и FTP через TLS, что мы и собираемся протестировать.
При запуске интерфейс выглядит так, как показано на рисунке. Укажите IP-адрес хоста (vsftpd), имя пользователя и пароль пользователя ftp, а затем нажмите кнопку « Быстрое подключение ».
Вскоре после этого появится всплывающее окно с информацией о сертификате и сеансе FTP-сервера. Чтобы продолжить подключение, нажмите « Всегда доверять этому сертификату в будущем сеансе », а затем нажмите Enter.
Если все ваши конфигурации верны, вы должны получить доступ без каких-либо проблем, как показано. В правом нижнем углу домашний каталог удаленного сервера, как показано. Теперь вы можете загружать, скачивать и редактировать файлы по своему усмотрению.
На этом мы завершаем нашу тему по установке vsftpd на CentOS 8. Мы надеемся, что теперь вы можете удобно настроить свой собственный сервер vsftpd (безопасный ftp). Пожалуйста, поделитесь им со своими техническими друзьями, а также поделитесь своими ценными отзывами и комментариями.