Wyszukiwanie w witrynie

Jak zainstalować, skonfigurować i zabezpieczyć serwer FTP w RHEL 8


FTP (skrót od „File Transfer Protocol”) to standardowy i stary protokół sieciowy używany do przesyłania plików pomiędzy klientem a serwerem w sieci komputerowej. Jest zbudowany w oparciu o architekturę modelu klient-serwer, która oferuje dostęp do plików i katalogów za pośrednictwem klienta FTP, w celu przesyłania plików na serwer, a także pobierania plików z niego.

W naszym poprzednim artykule wyjaśniliśmy, jak zainstalować, skonfigurować i zabezpieczyć serwer FTP w CentOS/RHEL 7 w celu przesyłania plików komputerowych między klientem a serwerem w sieci komputerowej.

W tym artykule opiszemy, jak zainstalować, skonfigurować i zabezpieczyć serwer FTP na RHEL 8 w celu podstawowego udostępniania plików między komputerami.

Zainstaluj serwer FTP na RHEL 8

1. Aby zainstalować bezpieczny pakiet FTP, użyj następującego polecenia dnf.

dnf install vsftpd

2. Po zakończeniu instalacji musisz w międzyczasie uruchomić usługę vsftpd, włączyć jej automatyczne uruchamianie przy starcie systemu, a następnie sprawdzić status za pomocą następujących poleceń systemctl.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Następnie musisz otworzyć port FTP 21 w zaporze systemowej, aby umożliwić dostęp do usług FTP z systemów zewnętrznych.

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

Skonfiguruj serwer FTP w RHEL 8

4. Aby skonfigurować serwer FTP, musisz wykonać kopię zapasową głównego pliku konfiguracyjnego FTP /etc/vsftpd/vsftpd.conf za pomocą następującego polecenia kopiowania.

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

5. Następnie otwórz plik konfiguracyjny za pomocą ulubionego edytora wiersza poleceń.

vi /etc/vsftpd/vsftpd.conf

Ustaw następujące parametry z odpowiadającymi im wartościami (znaczenie parametrów konfiguracyjnych znajdziesz w pliku 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. Następnie musisz skonfigurować FTP, aby zezwalał/odmawiał użytkownikom dostępu do usług FTP na podstawie pliku listy użytkowników /etc/vsftpd.userlist.

Domyślnie użytkownicy wymienieni w pliku /etc/vsftpd.userlist nie mają dostępu z opcją userlist_deny ustawioną na YES, jeśli userlist_enable =YES, umożliwia dostęp.

Jednak ustawienie parametru userlist_deny=NO zmienia to ustawienie, co oznacza, że tylko użytkownicy wyraźnie wymienieni w userlist_file=/etc/vsftpd.userlist będą mogli się zalogować.

Dlatego dodaj następujące linie do pliku konfiguracyjnego vsftpd.conf (lub jeśli już istnieją, odkomentuj je i ustaw ich wartości, jak pokazano):

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

7. Teraz dodaj następujące wiersze do pliku konfiguracyjnego vsftpd.conf, aby ograniczyć użytkownikom FTP dostęp do ich katalogów domowych.

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   	

Zapisz zmiany w pliku i zamknij go.

8. Ustaw następującą regułę logiczną SELinux, aby umożliwić FTP odczytywanie/zapisywanie plików w katalogu domowym użytkownika.

semanage boolean -m ftpd_full_access --on

9. Na koniec uruchom ponownie usługę vsftpd, aby wpłynąć na wszystkie zmiany, które wprowadziliśmy do tej pory powyżej:

systemctl restart vsftpd

Testowanie serwera FTP na RHEL 8

10. Aby sprawdzić, czy powyższa konfiguracja FTP działa prawidłowo, zacznij od utworzenia użytkownika FTP za pomocą polecenia useradd i utwórz hasło dla tego użytkownika.

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

11. Następnie dodaj użytkownika tecmint do pliku /etc/vsftpd.userlist za pomocą polecenia echo w następujący sposób.

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

12. Następnie utwórz alternatywny lokalny katalog główny dla użytkownika (tecmint, Twój prawdopodobnie jest inny) i ustaw odpowiednie uprawnienia w tym katalogu.

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

13. Następnie utwórz katalog w lokalnej lokalizacji głównej, w którym użytkownik będzie przechowywać swoje pliki.

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

14. Teraz połącz się z serwerem FTP za pomocą dowolnego klienta FTP w następujący sposób.

ftp [email 
Przykładowe wyjście
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

Otóż to! W tym artykule opisaliśmy, jak zainstalować, skonfigurować i zabezpieczyć serwer FTP w RHEL 8. W kolejnym artykule pokażemy jak zabezpieczyć serwer FTP za pomocą połączeń SSL/TLS. Do tego czasu zostań z nami.