Kā veikt pakešu filtrēšanu, tīkla adrešu tulkošanu un kodola izpildlaika parametru iestatīšanu - 2. daļa


Kā solīts 1. daļā (“Statiskā tīkla maršrutēšanas iestatīšana”), šajā rakstā (RHCE sērijas 2. daļa) mēs sāksim, pirms niršanas ieviest pakešu filtrēšanas un tīkla adrešu tulkošanas (NAT) principus Red Hat Enterprise Linux 7. iestatīt izpildlaika kodola parametrus, lai modificētu darbojošā kodola darbību, ja mainās noteikti apstākļi vai rodas vajadzības.

Tīkla pakešu filtrēšana RHEL 7

Kad mēs runājam par pakešu filtrēšanu, mēs atsaucamies uz procesu, ko veic ugunsmūris, kurā tas nolasa katra datu paketes galveni, kas mēģina tai iziet cauri. Pēc tam tas filtrē pakešu, veicot nepieciešamo darbību, pamatojoties uz noteikumiem, kurus iepriekš ir definējis sistēmas administrators.

Kā jūs droši vien zināt, sākot ar RHEL 7, noklusējuma pakalpojums, kas pārvalda ugunsmūra kārtulas, ir firewalld. Tāpat kā iptables, tā runā ar netfilter moduli Linux kodolā, lai pārbaudītu un manipulētu ar tīkla paketēm. Atšķirībā no iptables, atjauninājumi var stāties spēkā nekavējoties, nepārtraucot aktīvos savienojumus - jums pat nav jārestartē pakalpojums.

Vēl viena ugunsmūra priekšrocība ir tā, ka tā ļauj mums definēt noteikumus, pamatojoties uz iepriekš konfigurētiem pakalpojumu nosaukumiem (vairāk par to minūtē).

1. daļā mēs izmantojām šādu scenāriju:

Tomēr jūs atceraties, ka, lai vienkāršotu piemēru, mēs atspējojām ugunsmūri maršrutētājā Nr. 2, jo mēs vēl nebijām aptvēruši pakešu filtrēšanu. Apskatīsim, kā mēs varam iespējot ienākošās paketes, kas paredzētas noteiktam pakalpojumam vai portam galamērķī.

Pirmkārt, pievienosim pastāvīgu kārtulu, lai atļautu ienākošo datplūsmu enp0s3 (192.168.0.19) līdz enp0s8 (10.0.0.18):

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

Iepriekš minētā komanda kārtulu saglabās mapē /etc/firewalld/direct.xml:

# cat /etc/firewalld/direct.xml

Pēc tam iespējojiet kārtulu, lai tā stātos spēkā nekavējoties:

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

Tagad jūs varat telnet uz tīmekļa serveri no lodziņa RHEL 7 un vēlreiz palaist tcpdump, lai uzraudzītu TCP trafiku starp abām mašīnām, šoreiz ar ugunsmūri maršrutētājā Nr. 2.

# telnet 10.0.0.20 80
# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

Ko darīt, ja vēlaties atļaut ienākošos savienojumus ar tīmekļa serveri (ports 80) tikai no 192.168.0.18 un bloķēt savienojumus no citiem avotiem tīklā 192.168.0.0/24?

Tīmekļa servera ugunsmūrī pievienojiet šādus noteikumus:

# 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

Tagad jūs varat veikt HTTP pieprasījumus tīmekļa serverim no 192.168.0.18 un no kādas citas mašīnas 192.168.0.0/24. Pirmajā gadījumā savienojuma izveidei vajadzētu būt veiksmīgai, bet otrajā - noildze.

Lai to izdarītu, jebkura no šīm komandām veiks triku:

# telnet 10.0.0.20 80
# wget 10.0.0.20

Noteikti iesakām iepazīties ar Firewalld Rich Language dokumentāciju Fedora Project Wiki, lai iegūtu sīkāku informāciju par bagātīgajiem noteikumiem.

Tīkla adrešu tulkošana RHEL 7

Tīkla adrešu tulkošana (NAT) ir process, kurā privātu tīklu datoru grupai (tā var būt arī tikai viena no tām) tiek piešķirta unikāla publiska IP adrese. Rezultātā viņi joprojām tiek unikāli identificēti pēc savas privātās IP adreses tīklā, bet ārpusē viņi visi "šķiet" vienādi.