Vyhledávání na webu

Jak nainstalovat, nakonfigurovat a zabezpečit FTP server v RHEL 8


FTP (zkratka pro „File Transfer Protocol “) je standardní a starý síťový protokol používaný pro přenos souborů mezi klientem a serverem v počítačové síti. Je postaven na architektuře modelu klient-server, který nabízí přístup k souborům a adresářům prostřednictvím FTP klienta, umožňuje nahrávat soubory na server a také z něj stahovat soubory.

V našem předchozím článku jsme vysvětlili, jak nainstalovat, nakonfigurovat a zabezpečit FTP server v CentOS/RHEL 7 pro přenos počítačových souborů mezi klientem a serverem v počítačové síti.

V tomto článku popíšeme, jak nainstalovat, nakonfigurovat a zabezpečit FTP server na RHEL 8 pro základní sdílení souborů mezi počítači.

Nainstalujte FTP server na RHEL 8

1. Chcete-li nainstalovat zabezpečený balíček FTP, použijte následující příkaz dnf.

dnf install vsftpd

2. Po dokončení instalace je třeba mezitím spustit službu vsftpd, povolit její automatické spouštění při spouštění systému a poté ověřit stav pomocí následujících příkazů systemctl.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Dále musíte otevřít port FTP 21 na systémové bráně firewall, abyste umožnili přístup ke službám FTP z externích systémů.

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload

Nakonfigurujte FTP server na RHEL 8

4. Chcete-li nakonfigurovat server FTP, musíte provést zálohu hlavního konfiguračního souboru FTP /etc/vsftpd/vsftpd.conf pomocí následujícího příkazu pro kopírování.

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

5. Poté otevřete konfigurační soubor pomocí svého oblíbeného editoru příkazového řádku.

vi /etc/vsftpd/vsftpd.conf

Nastavte následující parametry s těmito odpovídajícími hodnotami (význam konfiguračních parametrů viz 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. Dále musíte nakonfigurovat FTP tak, aby uživatelům umožňoval/zakazoval přístup ke službám FTP na základě souboru se seznamem uživatelů /etc/vsftpd.userlist.

Ve výchozím nastavení mají uživatelé uvedení v souboru /etc/vsftpd.userlist přístup odepřen s možností userlist_deny nastavenou na YES, pokud je userlist_enable =YES, umožňuje přístup.

Nastavení parametru userlist_deny=NO však toto nastavení změní, což znamená, že pouze uživatelé výslovně uvedení v userlist_file=/etc/vsftpd.userlist se budou moci přihlásit.

Přidejte proto do konfiguračního souboru vsftpd.conf následující řádky (nebo pokud již existují, odkomentujte je a nastavte jejich hodnoty podle obrázku):

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

7. Nyní přidejte do konfiguračního souboru vsftpd.conf následující řádky, abyste omezili uživatele FTP na jejich domovské adresáře.

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   	

Uložte změny do souboru a zavřete jej.

8. Nastavte následující booleovské pravidlo SELinux, aby FTP mohl číst/zapisovat soubory domovského adresáře uživatele.

semanage boolean -m ftpd_full_access --on

9. Nakonec restartujte službu vsftpd, aby se projevily všechny změny, které jsme dosud provedli výše:

systemctl restart vsftpd

Testování FTP serveru na RHEL 8

10. Chcete-li otestovat, zda výše uvedené nastavení FTP funguje správně, začněte vytvořením uživatele FTP pomocí příkazu useradd a vytvořte pro tohoto uživatele heslo.

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

11. Poté přidejte uživatele tecmint do souboru /etc/vsftpd.userlist pomocí příkazu echo následovně.

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

12. Poté vytvořte alternativní místní kořenový adresář pro uživatele (tecmint, váš je pravděpodobně jiný) a nastavte pro tento adresář příslušná oprávnění.

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

13. Dále vytvořte adresář v místním kořenovém umístění, kde budou uživatelé uchovávat své soubory.

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

14. Nyní se připojte k FTP serveru pomocí libovolného FTP klienta následovně.

ftp [email 
Ukázkový výstup
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

A je to! V tomto článku jsme popsali, jak nainstalovat, nakonfigurovat a zabezpečit FTP server v RHEL 8. V našem dalším článku si ukážeme, jak zabezpečit FTP server pomocí SSL/TLS připojení. Do té doby zůstaňte s námi.