Kaip konfigūruoti „FirewallD“ RHEL, „CentOS“ ir „Fedora“


„Net-filter“ , nes visi žinome, kad tai yra „Linux“ užkarda. Firewalld yra dinaminis demonas, skirtas valdyti užkardas palaikant tinklo zonas. Ankstesnėje versijoje „RHEL & CentOS 6“ mes naudojome „iptables“ kaip paketinių filtrų sistemos demoną. RHEL / CentOS 7/8 sąsajas Fedora ir openSUSE - rong> iptables keičia ugniasienė.

Vietoj „iptables“ rekomenduojama pradėti naudoti Firewalld , nes ateityje tai gali būti nutraukta. Tačiau „iptables“ vis dar palaikomi ir juos galima įdiegti su komanda „yum“. Negalime laikyti užkardos ir „iptable“ abiejų toje pačioje sistemoje, o tai gali sukelti konfliktų.

Programoje „iptables“ mes anksčiau konfigūravome kaip ĮĖJIMO, IŠĖJIMO IR PERDAVIMO GRANDINĖS , tačiau čia, Firewalld, koncepcijoje naudojamos zonos. Pagal numatytuosius nustatymus ugniasienėje yra skirtingos zonos, kurios bus aptartos šiame straipsnyje.

Pagrindinė zona, tokia kaip viešoji ir privati zona. Kad viskas veiktų su šiomis zonomis, turime pridėti sąsają su nurodytu zonų palaikymu ir tada galime pridėti paslaugas prie užkardos.

Pagal numatytuosius nustatymus yra daugybė prieinamų paslaugų, viena iš geriausių „firewalld“ funkcijų yra tai, kad ji ateina su iš anksto nustatytomis paslaugomis ir galime šias paslaugas naudoti kaip pavyzdį, kad pridėtume savo paslaugas, paprasčiausiai jas nukopijuodami.

„Firewalld“ taip pat puikiai veikia su „IPv4“, „IPv6“ ir „Ethernet“ tiltais. Mes galime turėti atskirą vykdymo laiką ir nuolatinę konfigūraciją užkardoje.

Pradėkime, kaip dirbti su zonomis ir kurti savo paslaugas bei daug įdomiau naudoti užkardą.

Operating System :	CentOS Linux release 7.0.1406 (Core)
IP Address       :	192.168.0.55
Host-name	:	server1.tecmintlocal.com

1 veiksmas: įdiekite „Firewalld“ į „CentOS“

1. „Firewalld“ paketas pagal numatytuosius nustatymus yra įdiegtas RHEL/CentOS 7/8, „Fedora“ ir „openSUSE“. Jei ne, galite jį įdiegti naudodami šią komandą yum.

# yum install firewalld -y

2. Įdiegus „firewalld“ paketą, laikas patikrinti, ar „iptables“ paslauga veikia, ar ne, jei ji veikia, turite sustabdyti ir užmaskuoti (nebenaudoti) „iptables“ paslaugą naudodamiesi šiomis komandomis.

# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables

2 žingsnis: aptarkite užkardos komponentus

3. Prieš eidamas į užkardos konfigūraciją, norėčiau aptarti kiekvieną zoną. Pagal numatytuosius nustatymus yra keletas zonų. Mes turime priskirti sąsają zonai. Zona apibrėžia, kad zona, kuria buvo pasitikima arba kuri buvo atmesta, lygiavertė sąsajai, kad gautų ryšį. Zonoje gali būti paslaugos ir prievadai.

Čia aprašysime kiekvieną „Firewalld“ prieinamą zoną.

  • Nuleidimo zona : visi gaunami paketai yra išmesti, jei naudojame šią nuleidimo zoną. Tai tas pats, ką mes naudojame norėdami pridėti iptables -j drop . Jei naudosime atsisakymo taisyklę, reiškia, kad nėra atsakymo, bus pasiekiami tik išeinantys tinklo ryšiai.
  • Blokuoti zoną : blokavimo zona neleis, kad įeinantys tinklo ryšiai būtų atmesti naudojant „icmp-host“ draudimą. Leidžiami tik užmegzti ryšiai serveryje.
  • Viešoji zona : norėdami priimti pasirinktus ryšius, galime apibrėžti taisykles viešojoje zonoje. Tai leis tik tam tikram uostui atsidaryti mūsų serveryje, kiti ryšiai bus nutraukti.
  • Išorinė zona : ši zona veiks kaip maršrutizatoriaus parinktys su maskavimu yra įjungtos, kiti ryšiai bus nutraukti ir nepriimami, bus leidžiamas tik nurodytas ryšys.
  • DMZ zona : jei mums reikia leisti visuomenei pasiekti kai kurias paslaugas, galite ją apibrėžti DMZ zonoje. Tai taip pat turi savybę, kad priimami tik pasirinkti įeinantys ryšiai.
  • Darbo zona: šioje zonoje galime apibrėžti tik vidinius tinklus, t. y. leidžiamas privačių tinklų srautas.
  • Namų zona : ši zona yra specialiai naudojama namų teritorijose. Mes galime naudoti šią zoną, kad patikėtume kitiems tinklų kompiuteriams, kad nepakenktų jūsų kompiuteriui, kaip ir kiekvienoje zonoje. Tai taip pat leidžia tik pasirinktus gaunamus ryšius.
  • Vidinė zona : ši yra panaši į darbo zoną su pasirinktais leidžiamais ryšiais.
  • Patikima zona : jei nustatysime patikimą zoną, visas srautas bus priimtas.

Dabar jūs turite geresnę idėją apie zonas, dabar sužinokime galimas zonas, numatytąsias zonas ir išvardykime visas zonas naudodami šias komandas.

# firewall-cmd --get-zones
# firewall-cmd --get-default-zone
# firewall-cmd --list-all-zones

Pastaba: pirmiau nurodytos komandos išvestis netilps į vieną puslapį, nes čia bus nurodytos visos zonos, tokios kaip „block“, „dmz“, „drop“, „external“, „home“, „internal“, „public“, „trusted“ ir „work“. Jei zonose yra kokių nors „Rich-taisyklių“, įgalintos paslaugos ar prievadai taip pat bus pateikti su atitinkama zonos informacija.

3 žingsnis: Numatytosios užkardos zonos nustatymas

4. Jei norite nustatyti numatytąją zoną kaip vidinę, išorinę, „drop“, „work“ ar bet kurią kitą zoną, galite naudoti šią komandą norėdami nustatyti numatytąją zoną. Čia mes naudojame „vidinę“ zoną kaip numatytąją.

# firewall-cmd --set-default-zone=internal

5. Nustatę zoną, patikrinkite numatytąją zoną naudodami žemiau esančią komandą.

# firewall-cmd --get-default-zone

6. Čia mūsų sąsaja yra enp0s3 . Jei reikia patikrinti savo zoną, kurioje sąsaja yra ribota, galime naudoti toliau pateiktą komandą.

# firewall-cmd --get-zone-of-interface=enp0s3

7. Kita įdomi „firewalld“ ypatybė yra „icmptype“ yra vienas iš „icmp“ tipų, kurį palaiko „firewalld“. Norėdami gauti palaikomų icmp tipų sąrašą, galime naudoti žemiau esančią komandą.

# firewall-cmd --get-icmptypes

4 žingsnis: Savo paslaugų kūrimas užkardoje

8. Paslaugos yra ugniasienės naudojamų taisyklių rinkinys su uostais ir parinktimis. Įgalintos paslaugos bus automatiškai įkeltos, kai paleidžiama „Firewalld“ paslauga.

Pagal numatytuosius nustatymus yra daugybė paslaugų, kad gautumėte visų galimų paslaugų sąrašą, naudokite šią komandą.

# firewall-cmd --get-services

9. Norėdami gauti visų numatytųjų galimų paslaugų sąrašą, eikite į šį katalogą, čia gausite paslaugų sąrašą.

# cd /usr/lib/firewalld/services/

10. Norėdami sukurti savo paslaugą, turite ją apibrėžti šioje vietoje. Pvz., Noriu pridėti 1935 m. RTMP prievado paslaugą, pirmiausia padarykite bet kurios paslaugos kopiją.

# cd /etc/firewalld/services/
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

Tada eikite į vietą, kur buvo nukopijuotas mūsų paslaugų failas, tada pervardykite failą „ssh.xml“ į „rtmp.xml“, kaip parodyta žemiau esančiame paveikslėlyje.

# cd /etc/firewalld/services/

11. Tada atidarykite ir redaguokite failą Antraštė, aprašas, protokolas ir prievado numeris , kuriuos turime naudoti RTMP paslaugai, kaip parodyta žemiau esančiame paveikslėlyje.

12. Norėdami suaktyvinti šiuos pakeitimus, iš naujo paleiskite užkardos paslaugą arba iš naujo įkelkite nustatymus.

# firewall-cmd --reload

13. Norėdami patikrinti, ar paslauga pridėta, ar ne, vykdykite toliau pateiktą komandą, kad gautumėte galimų paslaugų sąrašą.

# firewall-cmd --get-services

5 veiksmas: priskirkite paslaugas ugniasienės zonoms

14. Čia mes pamatysime, kaip valdyti užkardą naudojant komandą firewall-cmd. Norėdami sužinoti dabartinę užkardos būseną ir visas aktyvias zonas, įveskite šią komandą.

# firewall-cmd --state
# firewall-cmd --get-active-zones

15. Norėdami gauti sąsajos enp0s3 viešąją zoną, tai yra numatytoji sąsaja, kuri faile /etc/firewalld/firewalld.conf apibrėžiama kaip DefaultZone = viešas .

Norėdami išvardyti visas galimas paslaugas šioje numatytojoje sąsajos zonoje.

# firewall-cmd --get-service

6 veiksmas: paslaugų pridėjimas prie užkardos zonų

16. Pirmiau pateiktuose pavyzdžiuose matėme, kaip sukurti savo paslaugas kuriant rtmp paslaugą, čia pamatysime, kaip pridėti zoną ir rtmp paslaugą.

# firewall-cmd --add-service=rtmp

17. Norėdami pašalinti pridėtą zoną, įveskite.

# firewall-cmd --zone=public --remove-service=rtmp

Minėtas žingsnis buvo tik laikinas laikotarpis. Kad jis būtų nuolatinis, turime paleisti žemiau esančią komandą naudodami parinktį –permanent .

# firewall-cmd --add-service=rtmp --permanent
# firewall-cmd --reload

18. Apibrėžkite tinklo šaltinio diapazono taisykles ir atidarykite bet kurį iš prievadų. Pvz., Jei norite atidaryti tinklo diapazoną, sakykite „192.168.0.0/24“, o prievadas „1935“ naudokite šias komandas.

# firewall-cmd --permanent --add-source=192.168.0.0/24
# firewall-cmd --permanent --add-port=1935/tcp

Pridėję arba pašalinę bet kokias paslaugas ar prievadus, būtinai iš naujo įkelkite užkardos paslaugą.

# firewall-cmd --reload 
# firewall-cmd --list-all

7 veiksmas: pridėkite turtingas tinklo diapazono taisykles

19. Jei noriu leisti tokias paslaugas kaip http, https, vnc-server, PostgreSQL, naudokitės šiomis taisyklėmis. Pirmiausia pridėkite taisyklę ir padarykite ją nuolatinę, iš naujo įkelkite taisykles ir patikrinkite būseną.

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' 
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' --permanent

Dabar tinklo diapazonas 192.168.0.0/24 gali naudoti aukščiau nurodytą paslaugą iš mano serverio. Parinktis - nuolatinė gali būti naudojama kiekvienoje taisyklėje, tačiau mes turime apibrėžti taisyklę ir patikrinti kliento prieigą po to, kai turime ją padaryti nuolatinę.

20. Pridėję minėtas taisykles, nepamirškite iš naujo įkelti užkardos taisyklių ir išvardyti taisykles naudodami:

# firewall-cmd --reload
# firewall-cmd --list-all

Norėdami sužinoti daugiau apie „Firewalld“.

# man firewalld

Tai viskas, mes matėme, kaip nustatyti tinklo filtrą naudojant „Firewalld“ RHEL/CentOS ir „Fedora“.

„Net-filter“ yra ugniasienės pagrindas kiekvienam „Linux“ paskirstymui. Visuose RHEL ir CentOS leidimuose mes naudojome „iptables“, tačiau naujesnėse versijose jie pristatė „Firewalld“. Tai lengviau suprasti ir naudoti užkardą. Tikiuosi, kad jums patiko rašyti.