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

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


FTP (расшифровывается как «Протокол передачи файлов») — это стандартный и старый сетевой протокол, используемый для передачи файлов между клиентом и сервером в компьютерной сети. Он построен на архитектуре модели клиент-сервер, которая предлагает доступ к файлам и каталогам через FTP-клиент, для загрузки файлов на сервер, а также скачивания файлов с него.

В нашей предыдущей статье мы объяснили, как установить, настроить и защитить FTP-сервер в CentOS/RHEL 7 для передачи компьютерных файлов между клиентом и сервером в компьютерной сети.

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

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

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

dnf install vsftpd

2. Когда установка будет завершена, вам необходимо на время запустить службу vsftpd, включить ее автоматический запуск при загрузке системы, а затем проверить статус с помощью следующих команд systemctl.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Далее вам необходимо открыть FTP-порт 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

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

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

5. Затем откройте файл конфигурации с помощью вашего любимого редактора командной строки.

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        

6. Далее вам необходимо настроить 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   

7. Теперь добавьте следующие строки в файл конфигурации 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   	

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

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

semanage boolean -m ftpd_full_access --on

9. Наконец, перезапустите службу vsftpd, чтобы применить все изменения, которые мы внесли выше:

systemctl restart vsftpd

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

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

useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint

11. Затем добавьте пользователя tecmint в файл /etc/vsftpd.userlist с помощью команды echo следующим образом.

echo "tecmint" | tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

12. Затем создайте альтернативный локальный корневой каталог для пользователя (tecmint, ваш, вероятно, другой) и установите соответствующие разрешения для этого каталога.

mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp

13. Затем создайте каталог внутри локального корневого каталога, где пользователь будет хранить свои файлы.

mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/

14. Теперь подключитесь к FTP-серверу с помощью любого FTP-клиента следующим образом.

ftp [email 
Пример вывода
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

Вот и все! В этой статье мы описали, как установить, настроить и защитить FTP-сервер в RHEL 8. В нашей следующей статье мы покажем, как защитить FTP-сервер с помощью соединений SSL/TLS. А пока оставайся с нами.