RHCSA Series Firewall Essentials i sieciowe sterowanie ruchem za pomocą Firewalld i IPTables - Część 11

RHCSA Series Firewall Essentials i sieciowe sterowanie ruchem za pomocą Firewalld i IPTables - Część 11

Krótko mówiąc, a Zapora to system bezpieczeństwa, który kontroluje ruch przychodzący i wychodzący w sieci oparty na zestawie predefiniowanych reguł (takich jak miejsce docelowe / źródło pakietu lub rodzaj ruchu).

RHCSA: Kontroluj ruch sieciowy z Firewalld i IPTables - Część 11

W tym artykule przejrzymy podstawy Firewalld, Domyślny dynamiczny demon zapory Red Hat Enterprise Linux 7, I iptables usługa, starsza usługa zapory dla Linux, z którą większość administratorów systemu i sieci jest dobrze zaznajomiona z tym, która jest również dostępna RHEL 7.

Porównanie Firewalld i IPTables

Pod maską, oba Firewalld i iptables Rozmowa serwisowa z Netfilter ramy w jądrze przez ten sam interfejs, co nie jest zaskoczeniem, polecenie IPTABLES. Jednak w przeciwieństwie do usługi IPTABLES, Firewalld może zmienić ustawienia podczas normalnej pracy systemowej bez utraty istniejących połączeń.

Firewalld należy domyślnie zainstalować w systemie RHEL, choć może nie działać. Możesz zweryfikować za pomocą następujących poleceń (Firewall-Config to narzędzie konfiguracyjne interfejsu użytkownika):

# Yum Info Firewalld Firewall-Config 
Sprawdź informacje o zaporze ogniowej

I,

# SystemCtl Status -l Firewalld.praca 
Sprawdź status zapory ogniowej

Z drugiej strony iptables usługa nie jest domyślnie uwzględniona, ale można ją zainstalować.

# Yum Update && Yum Instal IPTables-Services 

Oba demony można uruchomić i umożliwić uruchomienie się od zwykłego Systemd polecenia:

# systemCtl start firewalld.usługa | IPTABLES-SERVICE.Service # Systemctl Włącz zaporę ogniową.usługa | IPTABLES-SERVICE.praca 

Przeczytaj także: Przydatne polecenia do zarządzania usługami systemowymi

Jeśli chodzi o pliki konfiguracyjne, usługa IPTables używa /etc/sysconfig/iptables (który nie będzie istniał, jeśli pakiet nie zostanie zainstalowany w twoim systemie). Na polu RHEL 7 używanym jako węzeł klastra ten plik wygląda następująco:

Konfiguracja zapory iptables

Podczas gdy Firewalld przechowuje swoją konfigurację w dwóch katalogach, /usr/lib/firewalld I /itp./Firewalld:

# ls/usr/lib/firewalld/etc/firewalld 
Konfiguracja zapory ogniowej

Przeanalizujemy te pliki konfiguracyjne w dalszej części tego artykułu, po dodaniu kilku reguł tu i tam. Do tej pory wystarczy przypomnieć, że zawsze możesz znaleźć więcej informacji na temat obu narzędzi z.

# Man Firewalld.conf # man firewall-cmd # man iptables 

Poza tym pamiętaj o przejrzeniu niezbędnych poleceń i dokumentacji systemowej - Część 1 bieżącej serii, w której opisałem kilka źródeł, w których można uzyskać informacje o pakietach zainstalowanych w Twoich RHEL 7 system.

Korzystanie z IPTABLES do sterowania ruchem sieciowym

Możesz odwołać się do konfiguracji zapory ogniowej iptables - część 8 Inżynier certyfikowanego Linux Foundation (Lfce) Seria, aby odświeżyć pamięć iptables wewnętrzne przed kontynuowaniem. W ten sposób będziemy mogli wskoczyć do przykładów.

Przykład 1: Umożliwianie zarówno przychodzącego, jak i wychodzącego ruchu internetowego

Porty TCP 80 I 443 to domyślne porty używane przez serwer WWW Apache do obsługi normalnego (Http) i bezpieczne (Https) Ruchu internetowe. Możesz zezwolić na przychodzący i wychodzący ruch internetowy przez oba porty na ENP0S3 interfejs w następujący sposób:

# iptables -a wejście -i ENP0S3 -P TCP -DPORT 80 -M Stan --state Nowy, ustanowiony -j akceptuj # iptables -a wyjście -o ENP0S3 -p J Akceptuj # iPtables -A wejście -i ENP0S3 -P TCP - -DPORT 443 -M Stan --state NOWY, Ustanowiony -J Accept # iptables -a wyjściowe -o ENP0S3 -P TCP - -SPORT 443 -M State --state Ustanowiony -j akceptuj 
Przykład 2: Blokuj wszystkie (lub niektóre) połączenia przychodzące z określonej sieci

Mogą być czasy, w których trzeba zablokować cały (lub jakiś) rodzaj ruchu pochodzącego z określonej sieci, powiedzmy 192.168.1.0/24 Na przykład:

# iptables -i wejście -s 192.168.1.0/24 -J Drop 

upuści wszystkie pakiety pochodzące z 192.168.1.0/24 sieć, podczas gdy,

# iptables -a wejście -s 192.168.1.0/24 -DPORT 22 -J Zaakceptuj 

pozwoli jedynie na ruch przychodzący przez port 22.

Przykład 3: Przekieruj ruch przychodzący do innego miejsca docelowego

Jeśli używasz swojego RHEL 7 Pudełko nie tylko jako zapora oprogramowania, ale także jako faktyczna oparta na sprzęcie, tak że znajduje się między dwiema odrębnymi sieciami, przekazywanie adresów IP musiało być już włączone w systemie. Jeśli nie, musisz edytować /etc/sysctl.conf i ustaw wartość internet.IPv4.ip_forward Do 1, następująco:

internet.IPv4.ip_forward = 1 

Następnie zapisz zmianę, zamknij edytor tekstu i wreszcie uruchom następujące polecenie, aby zastosować zmianę:

# sysctl -p /etc /sysctl.conf 

Na przykład możesz mieć drukarkę zainstalowaną w wewnętrznym pudełku z IP 192.168.0.10, z KUBKI Słuchanie usługi na porcie 631 (zarówno na serwerze drukowanym, jak i na zaporze). Aby przekazać prośby od klientów po drugiej stronie zapory ogniowej, powinieneś dodać następującą zasadę IPTABLES:

# iptables -t Nat -a Prerouting -i ENP0S3 -P TCP -DPORT 631 -J Dnat -do 192.168.0.10: 631 

Pamiętaj o tym iptables czyta jego reguły sekwencyjnie, więc upewnij się, że domyślne zasady lub później.

Pierwsze kroki z Firewalld

Jedna ze zmian wprowadzonych z Firewalld Czy strefy. Ta koncepcja pozwala oddzielić sieci na różne strefy zaufania, które użytkownik postanowił umieścić na urządzeniach i ruchu w tej sieci.

Aby wymienić strefy aktywne:

# Firewall-CMD-Get-Active-Zones 

W poniższym przykładzie, strefa publiczna jest aktywny i ENP0S3 interfejs został do niego przypisany automatycznie. Aby wyświetlić wszystkie informacje o określonej strefie:

# Firewall-CMD-Zone = public--list-all 
Wymień wszystkie strefy zapory ogniowej

Ponieważ możesz przeczytać więcej o strefy W przewodniku bezpieczeństwa RHEL 7 wymienimy tylko kilka konkretnych przykładów tutaj.

Przykład 4: Zezwolenie na usługi za pośrednictwem zapory

Aby uzyskać listę obsługiwanych usług, użyj.

# Firewall-CMD-Get-Services 
Wymień wszystkie obsługiwane usługi

Zezwolić http I https Ruch w sieci przez zaporę ogniową, skuteczny od razu i na kolejnych butach:

# firewall-cmd --zone = myzone --add-service = http # firewall-cmd --zone = myzone --permanent --add-service = http # firewalll-cmd –zone = myzone --add-service = Https # Firewall-CMD-Zone = myzone --Permanent --add-service = https # firewall-cmd--relad 

Jeśli kod>-strefa jest pominięty, domyślna strefa (możesz sprawdzić Firewall-CMD -Get-Default-Zone) Jest używane.

Aby usunąć regułę, wymień słowo Dodaj do usuwania w powyższych poleceń.

Przykład 5: Przekazywanie IP / Port

Po pierwsze, musisz dowiedzieć się, czy masquerading jest włączony dla żądanej strefy:

# Firewall-CMD-Zone = MyZone-Query-Masquerade 

Na poniższym obrazku możemy to zobaczyć Maszynkowanie jest włączony dla Strefa zewnętrzna, Ale nie dla publiczny:

Sprawdź status udawania

Możesz albo włączyć udręki dla publiczności:

# Firewall-CMD-Zone = public --add-Masquerade 

lub użyj maskaradu zewnętrzny. Oto, co zrobilibyśmy, aby powtórzyć Przykład 3 z Firewalld:

# Firewall-CMD-Zone = zewnętrzny --add-forward-port = port = 631: proto = tcp: toport = 631: Toaddr = 192.168.0.10 

I nie zapomnij ponownie załadować zapory.

Kolejne przykłady można znaleźć w części 9 serii RHCSA, w której wyjaśniliśmy, jak zezwolić lub wyłączyć porty zwykle używane przez serwer WWW i serwer FTP, oraz jak zmienić odpowiednią regułę, gdy domyślny port dla tych usług są zmienione. Ponadto możesz odwołać się do wiki zapory, aby uzyskać kolejne przykłady.

Przeczytaj także: Przydatne przykłady zapory ogniowej do konfigurowania zapory w RHEL 7

Wniosek

W tym artykule wyjaśniliśmy, co Zapora jest to, jakie są dostępne usługi do wdrożenia RHEL 7, i dostarczył kilka przykładów, które mogą pomóc Ci zacząć od tego zadania. Jeśli masz jakieś komentarze, sugestie lub pytania, daj nam znać, używając poniższego formularza. Z góry dziękuję!