Weboldal keresés

Csomagszűrés, hálózati cím fordítás és kernel futásidejű paraméterek beállítása – 2. rész


Ahogyan azt az 1. részben ("Statikus hálózati útválasztás beállítása") ígértük, ebben a cikkben (2. rész az RHCE sorozatból) kezdjük a a csomagszűrés és a hálózati címfordítás (NAT) alapelvei a Red Hat Enterprise Linux 7 rendszerben, mielőtt belemerülnének a futásidejű kernelparaméterek beállításába, hogy módosítsák a futó kernel viselkedését, ha bizonyos feltételek megváltoznak vagy igények merülnek fel.

Hálózati csomagszűrés az RHEL 7-ben

Amikor csomagszűrésről beszélünk, egy tűzfal által végrehajtott folyamatra utalunk, amelyben minden egyes adatcsomag fejlécét beolvassa, amelyik megpróbál áthaladni rajta. Ezután a rendszergazda által korábban meghatározott szabályok alapján kiszűri a csomagot a szükséges művelet végrehajtásával.

Amint azt valószínűleg tudja, az RHEL 7-től kezdve a tűzfalszabályokat kezelő alapértelmezett szolgáltatás a tűzfal. Az iptables-hoz hasonlóan a Linux kernel netfilter moduljával is kommunikál a hálózati csomagok vizsgálata és kezelése érdekében. Az iptables-szal ellentétben a frissítések azonnal életbe léphetnek az aktív kapcsolatok megszakítása nélkül – még a szolgáltatást sem kell újraindítania.

A tűzfal másik előnye, hogy lehetővé teszi számunkra, hogy szabályokat határozzunk meg előre konfigurált szolgáltatásnevek alapján (erről egy percben bővebben olvashat).

Az 1. részben a következő forgatókönyvet alkalmaztuk:

Emlékezhet azonban arra, hogy a példa egyszerűsítése érdekében letiltottuk a tűzfalat a 2. útválasztón, mivel a csomagszűréssel még nem foglalkoztunk. Lássuk most, hogyan tudjuk engedélyezni a célállomáson egy adott szolgáltatásra vagy portra szánt bejövő csomagokat.

Először adjunk hozzá egy állandó szabályt, amely engedélyezi a bejövő forgalmat az enp0s3 (192.168.0.19) és az enp0s8 között (10.0.0.18).):

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

A fenti parancs menti a szabályt a /etc/firewalld/direct.xml mappába:

cat /etc/firewalld/direct.xml

Ezután engedélyezze a szabályt, hogy azonnal életbe lépjen:

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

Most már telnetezhet a webszerverrel az RHEL 7 dobozból, és újra futtathatja a tcpdump parancsot a két gép közötti TCP-forgalom figyeléséhez, ezúttal a 2-es útválasztó tűzfalával. engedélyezve van.

telnet 10.0.0.20 80
tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

Mi a teendő, ha csak a bejövő kapcsolatokat szeretné engedélyezni a webszerverhez (80-as port) a 192.168.0.18-ról, és blokkolni szeretné a más forrásokból származó kapcsolatokat a 192.168.0.0/ 24hálózat?

Adja hozzá a következő szabályokat a webszerver tűzfalához:

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

Mostantól HTTP-kéréseket küldhet a webszervernek a 192.168.0.18 címről és más gépekről a 192.168.0.0/24 címen. Az első esetben a kapcsolatnak sikeresnek kell lennie, míg a második esetben időkorlát lesz.

Ehhez a következő parancsok bármelyike megteszi a trükköt:

telnet 10.0.0.20 80
wget 10.0.0.20

Nyomatékosan azt tanácsolom, hogy nézze meg a Firewalld Rich Language dokumentációt a Fedora Project Wikiben, ha további részleteket szeretne megtudni a gazdag szabályokról.

Hálózati cím fordítása az RHEL 7-ben

A Network Address Translation (NAT) az a folyamat, amelynek során egy privát hálózaton lévő számítógépek egy csoportja (lehet csak egy is közülük) egyedi nyilvános IP-címet kap. Ennek eredményeként továbbra is egyedileg azonosíthatók a saját privát IP-címük alapján a hálózaton belül, de kívülről nézve mind egyformának tűnnek.