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!