RHCSA Series Instalowanie, konfigurowanie i zabezpieczenie serwera Web i FTP - Część 9
- 4958
- 674
- Tacjana Karpiński
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ęść 9W 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 ApacheJeś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:
- Serverroot: katalog, w którym przechowywane są konfiguracja konfiguracji, błędu i dziennika serwera.
- Słuchać: Instruuje Apache, aby słuchał określonego adresu IP i / lub portów.
- 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ą.
- Użytkownik i grupa: Nazwa użytkownika/grupy, aby uruchomić usługę HTTPD.
- 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.
- 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 8100Dodaj 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 FTPZauważ, że /var/log/xferlog
Log rejestruje pliki do pobrania i przesyłania, które zgadzają się z powyższą listą katalogu:
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.
- « Sekcja.Wydany IO - Skonfiguruj kompletne rozwiązanie pamięci podręcznej lakier
- 10 niesamowitych i tajemniczych zastosowań (!) Symbol lub operator w poleceń Linux »