Vyhledávání na webu

Jak provádět filtrování paketů, překlad síťových adres a nastavení parametrů běhu jádra – část 2


Jak bylo slíbeno v části 1 („Nastavení statického směrování sítě “), v tomto článku (část 2 série RHCE) začneme představením principy filtrování paketů a překladu síťových adres (NAT) v Red Hat Enterprise Linux 7, než se ponoříte do nastavení parametrů běhového jádra za účelem úpravy chování běžícího jádra, pokud se změní určité podmínky nebo nastanou potřeby.

Filtrování síťových paketů v RHEL 7

Když mluvíme o filtrování paketů, máme na mysli proces prováděný firewallem, při kterém čte hlavičku každého datového paketu, který se jím pokouší projít. Poté paket filtruje provedením požadované akce na základě pravidel, která byla dříve definována správcem systému.

Jak pravděpodobně víte, počínaje RHEL 7 je výchozí službou, která spravuje pravidla brány firewall, firewall. Stejně jako iptables komunikuje s modulem netfilter v jádře Linuxu, aby prozkoumal a manipuloval se síťovými pakety. Na rozdíl od iptables se aktualizace mohou projevit okamžitě bez přerušení aktivních připojení – službu ani nemusíte restartovat.

Další výhodou firewallu je, že nám umožňuje definovat pravidla na základě předem nakonfigurovaných názvů služeb (více o tom za minutu).

V části 1 jsme použili následující scénář:

Pamatujete si však, že jsme deaktivovali firewall na směrovači #2, abychom příklad zjednodušili, protože jsme se ještě nezabývali filtrováním paketů. Podívejme se nyní, jak můžeme povolit příchozí pakety určené pro konkrétní službu nebo port v cíli.

Nejprve přidejte trvalé pravidlo, které povolí příchozí provoz v enp0s3 (192.168.0.19) až enp0s8 (10.0.0.18 silný>):

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Výše uvedený příkaz uloží pravidlo do /etc/firewalld/direct.xml:

cat /etc/firewalld/direct.xml

Poté povolte, aby se pravidlo okamžitě projevilo:

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Nyní můžete telnet na webový server z pole RHEL 7 a znovu spustit tcpdump ke sledování provozu TCP mezi dvěma počítači, tentokrát s firewallem v routeru #2 povoleno.

telnet 10.0.0.20 80
tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

Co když chcete povolit pouze příchozí připojení k webovému serveru (port 80) z 192.168.0.18 a blokovat připojení z jiných zdrojů v 192.168.0.0/ 24síť?

Do brány firewall webového serveru přidejte následující pravidla:

firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' --permanent
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' --permanent

Nyní můžete odesílat požadavky HTTP na webový server z 192.168.0.18 a z jiného počítače v 192.168.0.0/24. V prvním případě by mělo být připojení úspěšně dokončeno, zatímco v druhém případě vyprší časový limit.

K tomu stačí některý z následujících příkazů:

telnet 10.0.0.20 80
wget 10.0.0.20

Důrazně vám doporučuji, abyste se podívali na dokumentaci Firewalld Rich Language na Wiki projektu Fedora, kde najdete další podrobnosti o rozšířených pravidlech.

Překlad síťových adres v RHEL 7

Překlad síťových adres (NAT) je proces, kdy je skupině počítačů (může to být i jen jeden z nich) v privátní síti přidělena jedinečná veřejná IP adresa. Výsledkem je, že jsou stále jednoznačně identifikováni svou vlastní privátní IP adresou uvnitř sítě, ale navenek se všichni „zdají“ stejní.