RHCSA serija: ugniasienės pagrindai ir tinklo srauto valdymas naudojant FirewallD ir Iptables – 11 dalis


Paprastais žodžiais tariant, ugniasienė yra saugos sistema, valdanti įeinantį ir išeinantį srautą tinkle pagal iš anksto nustatytų taisyklių rinkinį (pvz., paketo paskirties vietą/šaltinį arba srauto tipą). .

Šiame straipsnyje apžvelgsime pagrindinius firewall, numatytojo Red Hat Enterprise Linux 7 dinaminės ugniasienės demono ir pasenusios paslaugos iptables pagrindus. ugniasienės paslauga, skirta Linux, su kuria dauguma sistemos ir tinklo administratorių yra gerai susipažinę ir kuri taip pat pasiekiama RHEL 7.

FirewallD ir Iptables palyginimas

Po gaubtu tiek firewall, tiek paslauga iptables susisiekia su netfilter sistema branduolyje per tą pačią sąsają, nenuostabu, kad iptables komanda . Tačiau, priešingai nei iptables paslauga, ugniasienė gali pakeisti nustatymus normaliai veikiant sistemai, neprarandant esamų ryšių.

Ugniasienė turėtų būti įdiegta pagal numatytuosius nustatymus jūsų RHEL sistemoje, nors ji gali neveikti. Galite patikrinti naudodami šias komandas (firewall-config yra vartotojo sąsajos konfigūravimo įrankis):


yum info firewalld firewall-config

ir,


systemctl status -l firewalld.service

Kita vertus, paslauga iptables nėra įtraukta pagal numatytuosius nustatymus, tačiau ją galima įdiegti per.


yum update && yum install iptables-services

Abu demonus galima paleisti ir įgalinti paleisti įkrovos metu naudojant įprastas systemd komandas:


systemctl start firewalld.service | iptables-service.service
systemctl enable firewalld.service | iptables-service.service

Taip pat skaitykite: Naudingos komandos tvarkyti sistemines paslaugas

Kalbant apie konfigūracijos failus, iptables paslauga naudoja /etc/sysconfig/iptables (kurios nebus, jei paketas neįdiegtas jūsų sistemoje). RHEL 7 dėžutėje, kuri naudojama kaip klasterio mazgas, šis failas atrodo taip:

Tuo tarpu ugniasienė saugo savo konfigūraciją dviejuose kataloguose /usr/lib/firewall ir /etc/firewall:


ls /usr/lib/firewalld /etc/firewalld

Šiuos konfigūracijos failus toliau išnagrinėsime vėliau šiame straipsnyje, kai čia ir ten pridėsime keletą taisyklių. Iki šiol pakaks priminti, kad daugiau informacijos apie abu įrankius visada rasite.


man firewalld.conf
man firewall-cmd
man iptables

Išskyrus tai, nepamirškite pažvelgti į svarbiausių komandų ir sistemos dokumentacijos peržiūrą – dabartinės serijos 1 dalį, kur aprašiau kelis šaltinius, kuriuose galite gauti informacijos apie RHEL 7 sistemoje įdiegtus paketus. .

„Iptables“ naudojimas tinklo srautui valdyti

Jei norite atnaujinti atmintį apie iptables vidines dalis, galite peržiūrėti „Iptables ugniasienės konfigūravimas“ – serijos Linux Foundation Certified Engineer (LFCE) 8 dalį. prieš tęsdami toliau. Taigi galėsime pereiti tiesiai į pavyzdžius.

1 pavyzdys: įeinančio ir išeinančio žiniatinklio srauto leidimas

TCP prievadai 80 ir 443 yra numatytieji „Apache“ žiniatinklio serverio naudojami įprasti (HTTP) ir saugūs (HTTPS<) prievadai.) interneto srautą. Galite leisti įeinantį ir išeinantį žiniatinklio srautą per abu enp0s3 sąsajos prievadus taip:


iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
2 pavyzdys: blokuokite visus (arba kai kuriuos) gaunamus ryšius iš konkretaus tinklo

Kartais gali prireikti blokuoti viso (arba tam tikro) tipo srautą, kilusį iš konkretaus tinklo, pvz., 192.168.1.0/24:


iptables -I INPUT -s 192.168.1.0/24 -j DROP

atsisakys visų paketų, gaunamų iš 192.168.1.0/24 tinklo, tuo tarpu


iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT

leis įeinantį srautą tik per prievadą 22.

3 pavyzdys: nukreipkite įeinantį srautą į kitą paskirties vietą

Jei naudojate RHEL 7 dėžutę ne tik kaip programinės įrangos užkardą, bet ir kaip tikrąją aparatūros užkardą, kad ji būtų tarp dviejų skirtingų tinklų, IP persiuntimas jau turi būti įjungtas jūsų sistemoje. . Jei ne, turite redaguoti /etc/sysctl.conf ir nustatyti net.ipv4.ip_forward reikšmę į 1, kaip nurodyta toliau:


net.ipv4.ip_forward = 1

tada išsaugokite pakeitimą, uždarykite teksto rengyklę ir galiausiai paleiskite šią komandą, kad pritaikytumėte pakeitimą:


sysctl -p /etc/sysctl.conf

Pavyzdžiui, vidinėje dėžutėje su IP 192.168.0.10 gali būti įdiegtas spausdintuvas, o CUPS paslauga klausosi per prievadą 631 (abu spausdinimo serveryje ir užkardoje). Norėdami persiųsti spausdinimo užklausas iš kitoje ugniasienės pusėje esančių klientų, turėtumėte pridėti šią iptables taisyklę:


iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631

Atminkite, kad iptables skaito savo taisykles nuosekliai, todėl įsitikinkite, kad numatytosios politikos arba vėlesnės taisyklės nepaiso tų, kurios aprašytos anksčiau pateiktuose pavyzdžiuose.

Darbo su FirewallD pradžia

Vienas iš ugniasienės pakeitimų yra zonos. Ši koncepcija leidžia atskirti tinklus į skirtingas zonas, kurių pasitikėjimo vartotojas nusprendė priskirti įrenginiams ir srautui tame tinkle.

Norėdami išvardyti aktyvias zonas:


firewall-cmd --get-active-zones

Toliau pateiktame pavyzdyje viešoji zona yra aktyvi, o enp0s3 sąsaja jai priskirta automatiškai. Norėdami peržiūrėti visą informaciją apie tam tikrą zoną:


firewall-cmd --zone=public --list-all

Kadangi daugiau apie zonas galite perskaityti RHEL 7 saugos vadove, čia pateiksime tik keletą konkrečių pavyzdžių.

4 pavyzdys: paslaugų leidimas per užkardą

Norėdami gauti palaikomų paslaugų sąrašą, naudokite.


firewall-cmd --get-services

Jei norite leisti http ir https žiniatinklio srautą per užkardą, įsigalioja nedelsiant ir vėliau paleidžiant:


firewall-cmd --zone=MyZone --add-service=http
firewall-cmd --zone=MyZone --permanent --add-service=http
firewall-cmd --zone=MyZone --add-service=https
firewall-cmd --zone=MyZone --permanent --add-service=https
firewall-cmd --reload

Jei–zone praleista, naudojama numatytoji zona (galite patikrinti firewall-cmd –get-default-zone).

Norėdami pašalinti taisyklę, aukščiau pateiktose komandose žodį pridėti pakeiskite žodžiu pašalinti.

5 pavyzdys: IP/prievado peradresavimas

Pirmiausia turite išsiaiškinti, ar norimoje zonoje įjungtas maskavimas:


firewall-cmd --zone=MyZone --query-masquerade

Toliau pateiktame paveikslėlyje matome, kad užmaskavimas įgalintas išorinėje zonoje, bet ne viešai:

Galite įjungti maskavimą viešai:


firewall-cmd --zone=public --add-masquerade

arba naudokite maskaradą išorėje. Štai ką darytume, kad atkartotume 3 pavyzdį su užkarda:


firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10

Ir nepamirškite iš naujo įkelti ugniasienės.

Daugiau pavyzdžių galite rasti RHCSA serijos 9 dalyje, kur paaiškinome, kaip leisti arba išjungti prievadus, kuriuos paprastai naudoja žiniatinklio serveris ir ftp serveris, ir kaip pakeisti atitinkamą taisyklę, kai numatytasis šių paslaugų prievadas. yra keičiami. Be to, galbūt norėsite ieškoti kitų pavyzdžių ugniasienės wiki.

Taip pat skaitykite: naudingi ugniasienės D pavyzdžiai, kaip konfigūruoti užkardą RHEL 7

Išvada

Šiame straipsnyje paaiškinome, kas yra ugniasienė, kokios yra paslaugos, kurias galima įdiegti naudojant RHEL 7, ir pateikėme kelis pavyzdžius, kurie gali padėti pradėti ją naudoti. užduotis. Jei turite kokių nors pastabų, pasiūlymų ar klausimų, nedvejodami praneškite mums naudodami toliau pateiktą formą. Iš anksto dėkoju!