Kako izvršiti filtriranje paketa, prijevod mrežne adrese i postaviti parametre vremena izvođenja jezgre - 2. dio


Kao što je obećano u 1. dijelu (“Postavljanje statičkog mrežnog usmjeravanja”), u ovom članku (2. dio serije RHCE) počet ćemo predstavljanjem načela filtriranja paketa i prevođenja mrežnih adresa (NAT) u Red Hat Enterprise Linux 7, prije nego što se upustite u postavljanje parametara jezgre za vrijeme izvođenja radi izmjene ponašanja jezgre koja radi ako se promijene određeni uvjeti ili se pojave potrebe.

Filtriranje mrežnih paketa u RHEL 7

Kada govorimo o filtriranju paketa, mislimo na proces koji izvodi vatrozid u kojem čita zaglavlje svakog podatkovnog paketa koji pokušava proći kroz njega. Zatim filtrira paket poduzimajući potrebne radnje na temelju pravila koja je prethodno definirao administrator sustava.

Kao što vjerojatno znate, počevši od RHEL 7, zadana usluga koja upravlja pravilima vatrozida je firewalld. Kao iptables, komunicira s modulom netfilter u Linux kernelu kako bi ispitao i manipulirao mrežnim paketima. Za razliku od iptables, ažuriranja mogu odmah stupiti na snagu bez prekidanja aktivnih veza - čak ne morate ponovno pokrenuti uslugu.

Još jedna prednost vatrozida je da nam omogućuje definiranje pravila na temelju unaprijed konfiguriranih naziva usluga (više o tome za minutu).

U 1. dijelu koristili smo sljedeći scenarij:

Međutim, prisjetit ćete se da smo onemogućili vatrozid na usmjerivaču #2 kako bismo pojednostavili primjer budući da još nismo pokrili filtriranje paketa. Pogledajmo sada kako možemo omogućiti dolazne pakete namijenjene određenoj usluzi ili priključku na odredištu.

Prvo, dodajmo trajno pravilo za dopuštanje ulaznog prometa u enp0s3 (192.168.0.19) u enp0s8 (10.0.0.18 jak>):

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

Gornja naredba će spremiti pravilo u /etc/firewalld/direct.xml:

cat /etc/firewalld/direct.xml

Zatim omogućite pravilo da odmah stupi na snagu:

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

Sada se možete telnetom povezati s web poslužiteljem iz okvira RHEL 7 i ponovno pokrenuti tcpdump za nadzor TCP prometa između dva računala, ovaj put s vatrozidom u usmjerivaču #2 omogućeno.

telnet 10.0.0.20 80
tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

Što ako želite dopustiti samo dolazne veze s web poslužiteljem (port 80) s 192.168.0.18 i blokirati veze s drugih izvora u 192.168.0.0/ 24mreža?

U vatrozidu web poslužitelja dodajte sljedeća pravila:

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

Sada možete upućivati HTTP zahtjeve web poslužitelju s 192.168.0.18 i s nekog drugog stroja na 192.168.0.0/24. U prvom slučaju veza bi se trebala uspješno završiti, dok će u drugom slučaju na kraju isteći vrijeme.

Da biste to učinili, poslužit će bilo koja od sljedećih naredbi:

telnet 10.0.0.20 80
wget 10.0.0.20

Toplo vam savjetujem da provjerite dokumentaciju Firewalld Rich Language u Fedora Project Wiki za dodatne pojedinosti o bogatim pravilima.

Prijevod mrežne adrese u RHEL 7

Prijevod mrežne adrese (NAT) je proces u kojem se grupi računala (može biti i samo jedno od njih) u privatnoj mreži dodjeljuje jedinstvena javna IP adresa. Kao rezultat toga, oni su još uvijek jedinstveno identificirani vlastitom privatnom IP adresom unutar mreže, ali izvana svi "izgledaju" isto.