Si të konfiguroni FirewallD në RHEL, Rocky dhe AlmaLinux


Net-filter siç e dimë të gjithë se është një mur zjarri në Linux. Firewalld është një demon dinamik për të menaxhuar muret e zjarrit me mbështetje për zonat e rrjetit. Në versionin e mëparshëm, RHEL & CentOS ne kemi përdorur iptables si një demon për kornizën e filtrimit të paketave.

Në versionet më të reja të shpërndarjeve të bazuara në RHEL si Fedora, Rocky Linux, CentOS Stream, AlmaLinux dhe openSUSE – ndërfaqja iptables po zëvendësohet nga firewalld.

[ Ju gjithashtu mund të dëshironi: 10 Firewall të dobishëm të Sigurisë me Burim të Hapur për Sistemet Linux ]

Rekomandohet të filloni të përdorni Firewalld në vend të iptables pasi kjo mund të ndërpritet në të ardhmen. Megjithatë, iptables janë ende të mbështetur dhe mund të instalohen me komandën yum. Nuk mund t'i mbajmë Firewalld dhe iptables të dyja në të njëjtin sistem që mund të çojë në konflikt.

Në iptables, ne kemi përdorur për të konfiguruar si INPUT, OUTPUT & FORWARD CAINS, por këtu në Firewalld, koncepti përdor Zonat. Si parazgjedhje, ekzistojnë zona të ndryshme të disponueshme në murin e zjarrit, të cilat do të diskutohen në këtë artikull.

Zona bazë të cilat janë si zona publike dhe zona private. Për t'i bërë gjërat të funksionojnë me këto zona, duhet të shtojmë ndërfaqen me mbështetjen e zonës së specifikuar dhe më pas mund t'i shtojmë shërbimet në murin e zjarrit.

Si parazgjedhje, ka shumë shërbime të disponueshme, një nga veçoritë më të mira të murit të zjarrit është, ai vjen me shërbime të paracaktuara dhe ne mund t'i marrim këto shërbime si shembull për të shtuar shërbimet tona thjesht duke i kopjuar ato.

Firewalld funksionon shkëlqyeshëm edhe me urat IPv4, IPv6 dhe Ethernet. Mund të kemi një kohë ekzekutimi të veçantë dhe konfigurim të përhershëm në murin e zjarrit.

Le të fillojmë se si të punojmë me zona dhe të krijojmë shërbimet tona dhe përdorimin shumë më emocionues të murit të zjarrit në Linux.

Operating System :	Red Hat Enterprise Linux release 9.0 (Plow)
IP Address       :	192.168.0.159
Host-name	:	tecmint-rhel9

Hapi 1: Instalimi i Firewalld në sistemet e bazuara në RHEL

1. Paketa Firewalld është instaluar si parazgjedhje në RHEL, Fedora, Rocky Linux, CentOS Stream, AlmaLinux dhe openSUSE. Nëse jo, mund ta instaloni duke përdorur komandën e mëposhtme yum.

# yum install firewalld -y

2. Pasi të jetë instaluar paketa firewalld, është koha për të verifikuar nëse shërbimi iptables po funksionon apo jo, nëse funksionon, duhet të ndaloni dhe të maskoni (mos përdorni më) shërbimin iptables me komandat e mëposhtme.

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

Hapi 2: Kuptimi i komponentëve të murit të zjarrit (zonat dhe rregullat)

3. Përpara se të nisem për konfigurimin e murit të zjarrit, do të doja të diskutoja për secilën zonë. Si parazgjedhje, ka disa zona të disponueshme. Duhet të caktojmë ndërfaqen në zonë. Një zonë përcakton zonën që iu besua ose iu mohua niveli i ndërfaqes për të marrë një lidhje. Një zonë mund të përmbajë shërbime dhe porte.

Këtu, ne do të përshkruajmë çdo zonë të disponueshme në Firewalld.

  • Zona e lëshimit: Çdo paketë hyrëse hidhet poshtë nëse përdorim një zonë lëshimi. Kjo është e njëjta gjë që përdorim për të shtuar iptables -j drop. Nëse përdorim rregullin e lëshimit, do të thotë se nuk ka përgjigje, do të jenë të disponueshme vetëm lidhjet dalëse të rrjetit.
  • Zona e bllokimit: Zona e bllokimit do të mohojë që lidhjet hyrëse të rrjetit të refuzohen me një icmp-host-i ndaluar. Vetëm lidhjet e vendosura brenda serverit do të lejohen.
  • Zonë Publike: Për të pranuar lidhjet e zgjedhura, mund të përcaktojmë rregulla në zonën publike. Kjo do të lejojë që porta specifike të hapet në serverin tonë, lidhjet e tjera do të hiqen.
  • Zonë e jashtme: Kjo zonë do të veprojë pasi opsionet e ruterit me maskarim është aktivizuar lidhjet e tjera do të hiqen dhe nuk do të pranohen dhe do të lejohen vetëm lidhjet e specifikuara.
  • Zona DMZ: Nëse duhet t'i lejojmë publikut aksesin në disa prej shërbimeve, mund ta përcaktosh atë në zonën DMZ. Edhe kjo ka veçorinë që pranohen vetëm lidhjet hyrëse të zgjedhura.
  • Zona e punës: Në këtë zonë, ne mund të përcaktojmë vetëm rrjetet e brendshme, d.m.th. lejohet trafiku i rrjeteve private.
  • Home Zone: Kjo zonë përdoret posaçërisht në zonat e shtëpisë, ne mund ta përdorim këtë zonë për t'u besuar kompjuterëve të tjerë në rrjete që të mos dëmtojnë kompjuterin tuaj si në çdo zonë. Kjo gjithashtu lejon vetëm lidhjet e zgjedhura hyrëse.
  • Zona e brendshme: Kjo është e ngjashme me zonën e punës me lidhje të zgjedhura të lejuara.
  • Zonë e besuar: Nëse vendosim zonën e besuar, i gjithë trafiku pranohet.

Tani keni një ide më të mirë për zonat, tani le të gjejmë zonat e disponueshme dhe zonat e paracaktuara dhe të listojmë të gjitha zonat duke përdorur komandat e mëposhtme.

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

Shënim: Dalja e komandës së mësipërme nuk do të futet në një faqe të vetme pasi kjo do të listojë çdo zonë si blloku, dmz, drop, e jashtme, shtëpia, e brendshme, publike, e besueshme dhe puna. Nëse zonat kanë ndonjë rregull të pasur, shërbimet ose portet e aktivizuara do të renditen gjithashtu me ato informacione për zonën përkatëse.

Hapi 3: Vendosja e Zonës së Parazgjedhur të Firewalld-it

4. Nëse dëshironi të vendosni zonën e paracaktuar si të brendshme, të jashtme, të lëshimit, të punës ose ndonjë zonë tjetër, mund të përdorni komandën e mëposhtme për të vendosur zonën e paracaktuar. Këtu ne përdorim zonën e brendshme si parazgjedhje.

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

5. Pas vendosjes së zonës, verifikoni zonën e paracaktuar duke përdorur komandën e mëposhtme.

# firewall-cmd --get-default-zone

6. Këtu, ndërfaqja jonë është enp0s3, nëse duhet të kontrollojmë zonën në të cilën është e kufizuar ndërfaqja, mund të përdorim komandën e mëposhtme.

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

7. Një veçori tjetër interesante e murit të zjarrit është 'icmptype' është një nga llojet icmp të mbështetur nga firewalld. Për të marrë listën e llojeve të mbështetura icmp, mund të përdorim komandën e mëposhtme.

# firewall-cmd --get-icmptypes

Hapi 4: Krijimi i shërbimeve të veta në Firewalld

8. Shërbimet janë një grup rregullash me porte dhe opsione të cilat përdoren nga Firewalld. Shërbimet që janë të aktivizuara do të ngarkohen automatikisht kur shërbimi Firewalld të funksionojë.

Si parazgjedhje, shumë shërbime janë të disponueshme, për të marrë listën e të gjitha shërbimeve të disponueshme, përdorni komandën e mëposhtme.

# firewall-cmd --get-services

9. Për të marrë listën e të gjitha shërbimeve të paracaktuara të disponueshme, shkoni te drejtoria e mëposhtme, këtu do të merrni listën e shërbimeve.

# cd /usr/lib/firewalld/services/

10. Për të krijuar shërbimin tuaj, ju duhet ta përcaktoni atë në vendndodhjen e mëposhtme. Për shembull, këtu dua të shtoj një shërbim për portin RTMP 1935, së pari të bëj një kopje të ndonjë prej shërbimeve.

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

Dhe më pas, lundroni në vendndodhjen ku është kopjuar skedari ynë i shërbimit, më pas riemërtoni skedarin 'ssh.xml' në 'rtmp.xml' siç tregohet në foton e mëposhtme.

# cd /etc/firewalld/services/
# mv ssh.xml rtmp.xml
# ls -l rtmp.xml

11. Më pas hapni dhe modifikoni skedarin si Heading, Description, Protocol dhe Port Number, të cilat duhet t'i përdorim për shërbimin RTMP siç tregohet në foton e mëposhtme.

12. Për t'i aktivizuar këto ndryshime, rinisni shërbimin e murit të zjarrit ose ringarkoni cilësimet.

# firewall-cmd --reload

13. Për të konfirmuar nëse një shërbim është shtuar apo jo, ekzekutoni komandën e mëposhtme për të marrë një listë të shërbimeve të disponueshme.

# firewall-cmd --get-services

Hapi 5: Caktimi i shërbimeve në Zonat e Firewalld

14. Këtu do të shohim se si të menaxhojmë murin e zjarrit duke përdorur komandën firewall-cmd. Për të ditur gjendjen aktuale të murit të zjarrit dhe të gjitha zonave aktive, shtypni komandën e mëposhtme.

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

15. Për të marrë zonën publike për ndërfaqen enp0s3, kjo është ndërfaqja e paracaktuar, e cila përcaktohet në skedarin /etc/firewalld/firewalld.conf si DefaultZone= publike.

Për të renditur të gjitha shërbimet e disponueshme në këtë zonë të ndërfaqes së paracaktuar.

# firewall-cmd --get-service

Hapi 6: Shtimi i shërbimeve në Zonat e Firewalld

16. Në shembujt e mësipërm, ne kemi parë se si të krijojmë shërbimet tona duke krijuar shërbimin rtmp, këtu do të shohim se si të shtojmë shërbimin rtmp në zonë gjithashtu.

# firewall-cmd --add-service=rtmp

17. Për të hequr zonën e shtuar, shkruani.

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

Hapi i mësipërm ishte vetëm një periudhë e përkohshme. Për ta bërë atë të përhershëm, duhet të ekzekutojmë komandën e mëposhtme me opsionin –permanent.

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

18. Përcaktoni rregullat për gamën e burimit të rrjetit dhe hapni cilindo nga portet. Për shembull, nëse dëshironi të hapni një gamë rrjeti, thoni 192.168.0.0/24 dhe portin 1935, përdorni komandat e mëposhtme.

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

Sigurohuni që të ringarkoni shërbimin e murit të zjarrit pasi të keni shtuar ose hequr ndonjë shërbim ose port.

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

Hapi 7: Shtimi i rregullave të pasura me Firewalld për Gamën e Rrjetit

19. Nëse dua të lejoj shërbime të tilla si http, https, vnc-server dhe PostgreSQL, unë përdor rregullat e mëposhtme. Së pari, shtoni rregullin dhe bëjeni të përhershëm dhe rifreskoni rregullat dhe kontrolloni statusin.

# 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

Tani, diapazoni i Rrjetit 192.168.0.0/24 mund të përdorë shërbimin e mësipërm nga serveri im. Opsioni –i përhershëm mund të përdoret në çdo rregull, por ne duhet të përcaktojmë rregullin dhe të kontrollojmë me aksesin e klientit pas kësaj duhet ta bëjmë atë të përhershëm.

20. Pasi të keni shtuar rregullat e mësipërme, mos harroni të rifreskoni rregullat e murit të zjarrit dhe të renditni rregullat duke përdorur:

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

Për të ditur më shumë rreth Firewalld.

# man firewalld

Kjo është e gjitha, ne kemi parë se si të konfigurojmë një filtër rrjeti duke përdorur Firewalld në shpërndarjet e bazuara në RHEL si Fedora, Rocky Linux, CentOS Stream, AlmaLinux dhe openSUSE.

Net-filter është korniza për një mur zjarri për çdo shpërndarje Linux. Kthehu në çdo botim RHEL dhe CentOS, ne përdorëm iptables, por në versionet më të reja, ata kanë prezantuar Firewalld. Është më e lehtë për të kuptuar dhe përdorur murin e zjarrit. Shpresoj se ju ka pëlqyer shkrimi.