Kaip atlikti paketų filtravimą, tinklo adresų vertimą ir branduolio vykdymo laiko parametrų nustatymą – 2 dalis


Kaip pažadėta 1 dalyje („Statinio tinklo maršruto nustatymas“), šiame straipsnyje (2 dalis iš serijos RHCE) pradėsime pristatydami paketų filtravimo ir tinklo adresų vertimo (NAT) principus Red Hat Enterprise Linux 7, prieš pradėdami nustatyti vykdymo laiko branduolio parametrus, kad būtų galima pakeisti veikiančio branduolio elgseną, jei pasikeičia tam tikros sąlygos arba atsiranda poreikių.

Tinklo paketų filtravimas RHEL 7

Kai kalbame apie paketų filtravimą, mes kalbame apie procesą, kurį atlieka ugniasienė, kai ji nuskaito kiekvieno duomenų paketo, bandančio jį praeiti, antraštę. Tada jis filtruoja paketą, atlikdamas reikiamus veiksmus pagal taisykles, kurias anksčiau nustatė sistemos administratorius.

Kaip tikriausiai žinote, pradedant nuo RHEL 7, numatytoji ugniasienės taisykles valdanti paslauga yra ugniasienė. Kaip ir iptables, jis bendrauja su Linux branduolio moduliu netfilter, kad galėtų ištirti ir valdyti tinklo paketus. Skirtingai nuo iptables, naujinimai gali įsigalioti iš karto, nenutraukiant aktyvių ryšių – jums net nereikia iš naujo paleisti paslaugos.

Kitas ugniasienės pranašumas yra tai, kad ji leidžia apibrėžti taisykles pagal iš anksto sukonfigūruotus paslaugų pavadinimus (daugiau apie tai per minutę).

1 dalyje naudojome šį scenarijų:

Tačiau prisiminsite, kad išjungėme užkardą 2 maršrutizatoriuje, kad supaprastintume pavyzdį, nes dar neapėmėme paketų filtravimo. Dabar pažiūrėkime, kaip galime įjungti gaunamus paketus, skirtus konkrečiai paslaugai arba paskirties vietos prievadui.

Pirma, pridėkime nuolatinę taisyklę, leidžiančią įeinantį srautą enp0s3 (192.168.0.19) į enp0s8 (10.0.0.18).):

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

Aukščiau pateikta komanda išsaugos taisyklę /etc/firewalld/direct.xml:

cat /etc/firewalld/direct.xml

Tada įgalinkite taisyklę, kad ji įsigaliotų nedelsiant:

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

Dabar galite prisijungti prie žiniatinklio serverio telneto naudodami RHEL 7 laukelį ir dar kartą paleisti tcpdump, kad stebėtumėte TCP srautą tarp dviejų įrenginių, šį kartą naudodami 2 maršrutizatoriaus užkardą. įjungtas.

telnet 10.0.0.20 80
tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

Ką daryti, jei norite leisti tik įeinančius ryšius su žiniatinklio serveriu (80 prievadas) iš 192.168.0.18 ir blokuoti ryšius iš kitų šaltinių 192.168.0.0/ 24 tinkle?

Žiniatinklio serverio užkardoje pridėkite šias taisykles:

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

Dabar galite pateikti HTTP užklausas žiniatinklio serveriui iš 192.168.0.18 ir iš kito įrenginio 192.168.0.0/24. Pirmuoju atveju ryšys turėtų būti sėkmingai baigtas, o antruoju laiku baigsis laikas.

Norėdami tai padaryti, atliks bet kuri iš šių komandų:

telnet 10.0.0.20 80
wget 10.0.0.20

Primygtinai patariu perskaityti Firewalld Rich Language dokumentaciją Fedora Project Wiki, kad gautumėte daugiau informacijos apie išsamias taisykles.

Tinklo adresų vertimas RHEL 7

Tinklo adresų vertimas (NAT) – tai procesas, kai kompiuterių grupei (tai taip pat gali būti tik vienas iš jų) privačiame tinkle priskiriamas unikalus viešasis IP adresas. Dėl to jie vis dar yra vienareikšmiškai identifikuojami pagal savo privatų IP adresą tinkle, tačiau išorėje jie visi „atrodo“ vienodi.