Как установить и настроить FTP-сервер в RHEL 8

Читать первым в Telegram

FTP (File Transfer Protocolпротокол передачи файлов) — это стандартный и проверенный временем сетевой протокол, используемый для передачи файлов между клиентом и сервером в компьютерной сети. Основан на технологии “клиент-сервер”, что позволяет получать доступ к файлам и каталогам при помощи FTP-клиента, загружать файлы на сервер, а также скачивать их оттуда.

В данной статье будут описаны процессы установки и настройки FTP-сервера в RHEL 8 для базового обмена файлами между компьютерами.

Установка FTP-сервера в RHEL 8

  1. Чтобы установить защищённый пакет FTP, используйте следующую команду dnf:
#dnf install vsftpd

Установка VsFTP в RHEL 8

  1. После завершения установки, необходимо запустить службу vsftpd, а также разрешить автоматический запуск службы во время загрузки системы и проверить состояние с помощью следующих команд systemctl:
# systemctl start vsftpd
# systemctl enable vsftpd
# systemctl status vsftpd

Запуск и проверка службы FTP

  1. Следующим шагом следует открыть порт 21 в фаерволе, чтобы открыть доступ службам FTP для систем извне.
# firewall-cmd --zone=public --permanent --add-port=21/tcp
# firewall-cmd --zone=public --permanent --add-port=45073/tcp
# firewall-cmd --reload

Настройка FTP-сервер в RHEL 8

  1. Чтобы настроить FTP-сервер, необходимо сделать бэкап основного файла конфигурации FTP /etc/vsftpd/vsftpd.conf, используя следующую команду копирования:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
  1. Затем откройте файл конфигурации:
# vi /etc/vsftpd/vsftpd.conf

Установите следующие параметры с соответствующими значениями (см. man vsftpd.conf для значений параметров конфигурации):

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
  1. Теперь необходимо настроить FTP для того, чтобы разрешать/запрещать пользователям доступ к службам FTP на основе файла списка пользователей /etc/vsftpd.userlist.

Изначально, пользователям, описанным в файле /etc/vsftpd.userlist, запрещён доступ параметром userlist_deny равным YES, если userlist_enable = YES, то он разрешает доступ.

Однако, изменение параметра userlist_deny=NO изменяет настройку, а это означает, что доступ будет предоставлен только пользователям, указанным в userlist_file=/etc/vsftpd.userlist.

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

userlist_enable=YES                   # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames. userlist_deny=NO

Сохраните внесённые изменения и закройте файл.

  1. Теперь допишите следующие строки в файл конфигурации vsftpd.conf, чтобы ограничить пользователей FTP их домашним каталогом.
chroot_local_user=YES #means local users will be placed in a chroot jail, their home directory after login by default settings. user_sub_token=$USER
local_root=/home/$USER/ftp

Сохраните внесённые изменения и закройте файл.

  1. Чтобы разрешить FTP чтение файлов и запись в файлы домашнего каталога пользователя, необходимо установить следующее логическое правило SELinux:
# semanage boolean -m ftpd_full_access --on
  1. Наконец, чтобы все вышеописанные изменения вступили в силу, перезапустите службу vsftpd следующим образом:
# systemctl restart vsftpd

Тестирование FTP-сервера в RHEL 8

  1. Проверим корректно ли работают настройки FTP. Первым делом, создайте FTP-пользователя при помощи команды useradd, а также создайте пароль для этого пользователя:
# useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
# passwd tecmint
  1. Затем, занесите пользователя tecmint в /etc/vsftpd.userlist, используя следующую ECHO команду:
# echo "tecmint" | tee -a /etc/vsftpd.userlist
# cat /etc/vsftpd.userlist
  1. После чего создайте альтернативный локальный корневой каталог для пользователя и установите соответствующие разрешения для этого каталога:
# mkdir -p /home/tecmint/ftp
# chown nobody:nobody /home/tecmint/ftp
# chmod a-w /home/tecmint/ftp
  1. Создайте каталог внутри локального корневого каталога, в котором пользователь будет хранить свои файлы:
# mkdir /home/tecmint/ftp/files
# chown tecmint:tecmint /home/tecmint/ftp/files
# chmod 0700 /home/tecmint/ftp/files/
  1. И, наконец, присоединитесь к FTP-серверу при помощи одного из FTP-пользователей:
# ftp [email protected]

Пример вывода:

Connected to 192.168.56.100
220 Welcome to TecMint.com FTP service.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Спасибо за внимание! Надеемся, что данная статья помогла вам.

Удачи!

Оригинальная статья: How to Install, Configure and Secure FTP Server in RHEL 8

Поддержать проект

Социальные сети проекта:

Подпишись, чтобы ничего не пропустить!