RHCSA Series Instalowanie, konfigurowanie i zabezpieczenie serwera Web i FTP - Część 9

RHCSA Series Instalowanie, konfigurowanie i zabezpieczenie serwera Web i FTP - Część 9

Serwer internetowy (znany również jako A Http serwer) to usługa obsługująca treść (najczęściej strony internetowe, ale inne typy dokumentów) do klienta w sieci.

Serwer FTP jest jednym z najstarszych i najczęściej używanych zasobów (nawet do dziś) do udostępniania plików klientom w sieci w przypadkach, w których uwierzytelnianie nie jest konieczne, ponieważ FTP używa nazwa użytkownika I hasło bez szyfrowania.

Serwer sieciowy dostępny w RHEL 7 to wersja 2.4 serwera Apache HTTP. Jeśli chodzi o serwer FTP, użyjemy bardzo bezpiecznego demona FTP (aka VSFTPD) w celu ustalenia połączeń zabezpieczonych przez TLS.

RHCSA: Instalowanie, konfigurowanie i zabezpieczanie Apache i FTP - Część 9

W tym artykule wyjaśnimy, jak instalować, skonfigurować i zabezpieczyć serwer WWW i serwer FTP w RHEL 7.

Instalowanie serwera Apache i FTP

W tym przewodniku użyjemy serwera RHEL 7 ze statycznym adresem IP 192.168.0.18/24. Aby zainstalować Apache i VSFTPD, uruchom następujące polecenie:

# Yum Update && Yum Zainstaluj HTTPD VSFTPD 

Po zakończeniu instalacji obie usługi będą początkowo wyłączone, więc musimy je zacząć ręcznie na razie i umożliwić rozpoczęcie automatycznie od następnego rozruchu:

# Systemctl start httpd # Systemctl Włącz httpd # Systemctl start vsftpd # Systemctl Enable vsftpd 

Ponadto musimy otwierać porty 80 I 21, Tam, gdzie słuchają odpowiednio demony sieci i FTP, aby umożliwić dostęp do tych usług z zewnątrz:

# firewall-cmd --zone = public --add-port = 80/tcp --Permanent # firewall-cmd --zone = public --add-service = ftp --PerMent # firewall-cmd--relad 

Aby potwierdzić, że serwer WWW działa poprawnie, zwolnij przeglądarkę i wprowadź adres IP serwera. Powinieneś zobaczyć stronę testową:

Potwierdź serwer WWW Apache

Jeśli chodzi o serwer FTP, będziemy musieli go dalej skonfigurować, co zrobimy za minutę, zanim potwierdzimy, że działa zgodnie z oczekiwaniami.

Konfigurowanie i zabezpieczenie serwera WWW Apache

Główny plik konfiguracyjny dla Apache znajduje się w /etc/httpd/conf/httpd.conf, ale może polegać na innych plikach obecnych w środku /etc/httpd/conf.D.

Chociaż domyślna konfiguracja powinna być wystarczająca dla większości przypadków, dobrym pomysłem jest zapoznanie się ze wszystkimi dostępnymi opcjami opisanymi w oficjalnej dokumentacji.

Jak zawsze, zrób kopię zapasową głównego pliku konfiguracyjnego przed jego edycją:

# cp/etc/httpd/conf/httpd.conf/etc/httpd/conf/httpd.conf.$ (data +%y%m%d) 

Następnie otwórz go z preferowanym edytorem tekstu i poszukaj następujących zmiennych:

  1. Serverroot: katalog, w którym przechowywane są konfiguracja konfiguracji, błędu i dziennika serwera.
  2. Słuchać: Instruuje Apache, aby słuchał określonego adresu IP i / lub portów.
  3. Włączać: umożliwia włączenie innych plików konfiguracyjnych, które muszą istnieć. W przeciwnym razie serwer nie powiedzie się, w przeciwieństwie do dyrektywy AclemaPtional, która jest cicho ignorowana, jeśli określone pliki konfiguracyjne nie istnieją.
  4. Użytkownik i grupa: Nazwa użytkownika/grupy, aby uruchomić usługę HTTPD.
  5. DocumentRoot: Katalog, z którego Apache będzie służyć Twoim dokumentom. Domyślnie wszystkie żądania są pobierane z tego katalogu, ale symboliczne linki i aliasy mogą być używane do wskazywania innych lokalizacji.
  6. Nazwa serwera: Ta dyrektywa ustawia nazwę hosta (lub adres IP) i port, którego serwer używa do identyfikacji.

Pierwszy środek bezpieczeństwa będzie polegał na utworzeniu dedykowanego użytkownika i grupy (i.mi. Tecmint/Tecmint) Aby uruchomić serwer WWW i zmieniać domyślny port na wyższy (9000 w tym przypadku):

Serverroot "/etc/httpd" posłuchaj 192.168.0.18: 9000 użytkowników grupa Tecmint Documentroot "/var/www/html" Servername 192.168.0.18: 9000 

Możesz przetestować plik konfiguracyjny za pomocą.

# APACHECTL CONFIGTEST 

A jeśli wszystko jest OK, Następnie uruchom ponownie serwer WWW.

# Systemctl restart httpd 

I nie zapomnij włączyć nowego portu (i wyłączyć stary) w zaporze:

# Firewall-CMD --Zone = public--Remove-Port = 80/tcp --Permanent # Firewall-CMD --zone = public --add-port = 9000/tcp --Permanent # Firewall-CMD--RELOOD 

Zauważ, że z powodu Selinux zasady, możesz używać tylko portów zwróconych

# semanage port -l | grep -w '^http_port_t' 

dla serwera internetowego.

Jeśli chcesz użyć innego portu (i.mi. Port TCP 8100), będziesz musiał go dodać Selinux kontekst portu dla httpd praca:

# semanage port -a -t http_port_t -p tcp 8100 
Dodaj port Apache do zasad Selinux

Aby dodatkowo zabezpieczyć instalację Apache, wykonaj następujące kroki:

1. Użytkownik Apache działa, ponieważ nie powinien mieć dostępu do powłoki:

# usermod -s /sbin /nologin tecmint 

2. Wyłącz listę katalogu, aby zapobiec wyświetlaniu zawartości katalogu, jeśli nie ma indeks.html obecny w tym katalogu.

Edytować /etc/httpd/conf/httpd.conf (i pliki konfiguracyjne dla hostów wirtualnych, jeśli istnieją) i upewnij się, że Opcje Dyrektywa, zarówno u góry, jak i na poziomie bloków katalogów, jest ustawiona Nic:

Opcje brak 

3. Ukryj informacje o serwerze internetowym i systemie operacyjnym w odpowiedzi HTTP. Edytować /etc/httpd/conf/httpd.conf następująco:

Servertokens Prod Serversignature wyłącz 

Teraz jesteś gotowy, aby zacząć obsługiwać treści ze swojego /var/www/html informator.

Konfigurowanie i zabezpieczenie serwera FTP

Jak w przypadku Apache, główny plik konfiguracyjny dla VSFTPD (/etc/vsftpd/vsftpd.conf) jest dobrze skomentowany i chociaż domyślna konfiguracja powinna wystarczyć dla większości aplikacji, powinieneś zapoznać się z dokumentacją i stroną Man (Man vsftpd.conf) Aby skuteczniej obsługiwać serwer FTP (nie mogę tego wystarczająco podkreślić!).

W naszym przypadku są to używane dyrektywy:

anonimous_enable = nie local_enable = tak, write_enable = tak local_umask = 022 dirmessage_enable = tak xferlog_enable = tak connect_from_port_20 = tak xferlog_std_format = tak chroot_local_user 

Używając CHROOT_LOCAL_USER = Tak, Lokalni użytkownicy zostaną (domyślnie) umieszczone w więzieniu Chroot'ed w swoim katalogu domowym zaraz po zalogowaniu. Oznacza to, że lokalni użytkownicy nie będą mogli uzyskać dostępu do żadnych plików poza odpowiednimi katalogami domowymi.

Wreszcie, aby umożliwić FTP czytanie plików w katalogu domowym użytkownika, ustaw następujące Selinux Boolean:

# setsebool -p ftp_home_dir 

Możesz teraz połączyć się z serwerem FTP za pomocą klienta, takiego jak FileZilla:

Sprawdź połączenie FTP

Zauważ, że /var/log/xferlog Log rejestruje pliki do pobrania i przesyłania, które zgadzają się z powyższą listą katalogu:

Monitoruj pobieranie i prześlij FTP

Przeczytaj także: Ogranicz przepustowość sieci FTP używana przez aplikacje w systemie Linux z strumieniem

Streszczenie

W tym samouczku wyjaśniliśmy, jak skonfigurować sieć i serwer FTP. Ze względu na ogrom tematu nie można opisać wszystkich aspektów tych tematów (i.mi. wirtualne hosty internetowe). Dlatego zalecam sprawdzenie innych doskonałych artykułów na tej stronie na temat Apache.