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.