Ako bolo sľúbené v Časť 1 (“Nastavte statické smerovanie siete”), V tomto článku (Časť 2 z RHCE séria) začneme predstavením princípov filtrovania paketov a prekladu sieťových adries (NAT) v Red Hat Enterprise Linux 7, pred ponorením sa do nastavenia parametrov jadra runtime na úpravu správania bežiaceho jadra, ak sa zmenia určité podmienky alebo vzniknú potreby.
Keď hovoríme o filtrovaní paketov, odkazujeme na proces vykonaný bránou firewall, v ktorom číta hlavičku každého dátového paketu, ktorý sa ho pokúša prejsť. Potom filtruje paket vykonaním požadovanej akcie na základe pravidiel, ktoré boli predtým definované správcom systému.
Ako pravdepodobne viete, začínajúc RHEL 7, predvolená služba, ktorá spravuje pravidlá brány firewall, je firewalld. Rovnako ako iptables, hovorí s modulom netfilter v jadre Linuxu, aby preskúmal a manipuloval so sieťovými paketmi. Na rozdiel od iptables sa aktualizácie môžu prejaviť okamžite bez prerušenia aktívnych pripojení - službu nemusíte ani reštartovať.
Ďalšou výhodou firewalld spočíva v tom, že nám umožňuje definovať pravidlá na základe vopred nakonfigurovaných názvov služieb (o tom viac za minútu).
V Časť 1, použili sme nasledujúci scenár:
Pamätáte si však, že sme vypli bránu firewall router č. 2 na zjednodušenie príkladu, pretože sme ešte nepokrývali filtrovanie paketov. Teraz sa pozrime, ako môžeme v cieľovom mieste povoliť prichádzajúce pakety určené pre konkrétnu službu alebo port.
Najprv pridajme trvalé pravidlo, ktoré povolí prichádzajúci prenos enp0s3 (192.168.0.19) do enp0s8 (10.0.0.18):
# firewall -cmd --permanent --direct --add -rule filter ipv4 DOPREDU 0 -i enp0s3 -o enp0s8 -j PRIJAŤ.
Vyššie uvedený príkaz uloží pravidlo do /etc/firewalld/direct.xml:
# cat /etc/firewalld/direct.xml.
Potom aktivujte pravidlo, aby sa okamžite uplatnilo:
# firewall -cmd --direct --add -rule filter ipv4 DOPREDU 0 -i enp0s3 -o enp0s8 -j PRIJAŤ.
Teraz môžete telnetovať na webový server z RHEL 7 boxovať a bežať tcpdump opäť monitorovať prenos TCP medzi týmito dvoma počítačmi, tentokrát so zapnutým firewallom router č. 2 povolené.
# telnet 10.0.0.20 80. # tcpdump -qnnvvv -i enp0s3 hostiteľ 10.0.0.20.
Čo keď chcete povoliť iba prichádzajúce pripojenia na webový server (port 80) od 192.168.0.18 a blokovať pripojenia z iných zdrojov v 192.168.0.0/24 sieť?
Do brány firewall webového servera pridajte nasledujúce pravidlá:
# 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" adresa zdroja = "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.
Teraz môžete na webový server odosielať požiadavky HTTP z 192.168.0.18 a z nejakého iného stroja v 192.168.0.0/24. V prvom prípade by sa malo pripojenie úspešne dokončiť, zatiaľ čo v druhom prípade nakoniec vyprší časový limit.
Na to vám pomôže ktorýkoľvek z nasledujúcich príkazov:
# telnet 10.0.0.20 80. # wget 10.0.0.20.
Dôrazne vám odporúčame pozrieť sa na Bohatý jazyk Firewalld ďalšie podrobnosti o podrobných pravidlách nájdete v dokumentácii k projektu Wiki Fedora.
Preklad sieťových adries (NAT) je proces, kedy je skupine počítačov (môže to byť aj len jeden z nich) v súkromnej sieti priradená jedinečná verejná IP adresa. Výsledkom je, že sú stále jedinečne identifikovaní svojou vlastnou súkromnou IP adresou v sieti, ale navonok všetky „pôsobia“ rovnako.