Jinsi ya kusanidi FirewallD katika RHEL/CentOS 7 na Fedora 21


Kichujio cha mtandao kama tunavyojua sote ni ngome katika Linux. Firewalld ni daemon inayobadilika ya kudhibiti ngome kwa kutumia maeneo ya mtandao. Katika toleo la awali, RHEL & CentOS 6 tumekuwa tukitumia iptables kama daemoni kwa mfumo wa kuchuja pakiti. Katika RHEL/CentOS 7/8, Fedora na kiolesura cha openSUSE – rong>iptables kinabadilishwa na firewalld.

Inapendekezwa kuanza kutumia Firewalld badala ya iptables kwa sababu hii inaweza kukoma katika siku zijazo. Walakini, iptables bado zinatumika na zinaweza kusakinishwa kwa amri ya yum. Hatuwezi kuweka Firewalld na iptables katika mfumo mmoja jambo ambalo linaweza kusababisha migogoro.

Katika iptables, tulikuwa tukisanidi kama MIFUGO YA KUPITIA, KUTOA NA KUPELEKA lakini hapa Firewalld, dhana hutumia Kanda. Kwa msingi, kuna kanda tofauti zinazopatikana kwenye firewalld, ambayo itajadiliwa katika nakala hii.

Eneo la msingi ambalo ni kama eneo la umma na eneo la kibinafsi. Ili kufanya mambo yafanye kazi karibu na maeneo haya, tunahitaji kuongeza kiolesura na usaidizi wa eneo uliobainishwa kisha tunaweza kuongeza huduma kwenye firewalld.

Kwa chaguo-msingi, kuna huduma nyingi zinazopatikana, mojawapo ya vipengele bora zaidi vya firewalld ni, inakuja na huduma zilizoainishwa awali na tunaweza kuchukua huduma hizi kama mfano wa kuongeza huduma zetu kwa kuzinakili kwa urahisi.

Firewalld inafanya kazi vizuri na IPv4, IPv6, na madaraja ya Ethaneti pia. Tunaweza kuwa na usanidi tofauti wa wakati wa kukimbia na wa kudumu katika firewalld.

Wacha tuanze jinsi ya kufanya kazi na maeneo na kuunda huduma zetu wenyewe na utumiaji wa kufurahisha zaidi wa firewalld.

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

Hatua ya 1: Kufunga Firewalld katika CentOS

1. Kifurushi cha Firewalld kimesakinishwa kwa chaguomsingi katika RHEL/CentOS 7/8, Fedora na openSUSE. Ikiwa sivyo, unaweza kuisanikisha kwa kutumia amri ifuatayo ya yum.

# yum install firewalld -y

2. Baada ya kifurushi cha firewalld kimewekwa, ni wakati wa kuthibitisha ikiwa huduma ya iptables inafanya kazi au la, ikiwa inaendesha, unahitaji kuacha na mask (usitumie tena) huduma ya iptables na amri zilizo chini.

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

Hatua ya 2: Kujadili Vipengele vya Firewalld

3. Kabla ya kuelekea kwa usanidi wa firewalld, ningependa kujadili kila kanda. Kwa chaguo-msingi, kuna baadhi ya kanda zinazopatikana. Tunahitaji kugawa kiolesura kwa ukanda. Kanda inafafanua kuwa eneo ambalo liliaminika au kukataliwa kiwango cha kusano ili kupata muunganisho. Eneo linaweza kuwa na huduma na bandari.

Hapa, tutaelezea kila kanda zinazopatikana katika Firewalld.

  • Eneo la Kuacha: Pakiti zozote zinazoingia hutupwa ikiwa tutatumia eneo hili la kuacha. Hii ni sawa na tunayotumia kuongeza iptables -j drop. Tukitumia kanuni ya kuacha, inamaanisha hakuna jibu, miunganisho ya mtandao inayotoka pekee ndiyo itapatikana.
  • Eneo la Kuzuia: Eneo la kuzuia litakataa miunganisho inayoingia ya mtandao iliyokataliwa na icmp-host-imepigwa marufuku. Miunganisho iliyowekwa ndani ya seva pekee ndiyo itaruhusiwa.
  • Eneo la Umma: Ili kukubali miunganisho iliyochaguliwa tunaweza kufafanua sheria katika eneo la umma. Hii itaruhusu lango mahususi kufunguka katika seva yetu miunganisho mingine itaondolewa.
  • Eneo la Nje: Ukanda huu utafanya kama chaguo za vipanga njia huku uigaji umewashwa miunganisho mingine itadondoshwa na haitakubali, muunganisho uliobainishwa pekee ndio utakaoruhusiwa.
  • Eneo la DMZ: Ikiwa tunahitaji kuruhusu ufikiaji wa baadhi ya huduma kwa umma, unaweza kulifafanua katika eneo la DMZ. Hii pia ina kipengele cha miunganisho inayoingia iliyochaguliwa pekee inayokubaliwa.
  • Eneo la Kazi: Katika ukanda huu, tunaweza kufafanua mitandao ya ndani pekee i.e. trafiki ya mitandao ya kibinafsi inaruhusiwa.
  • Eneo la Nyumbani: Eneo hili linatumika hasa katika maeneo ya nyumbani, tunaweza kutumia eneo hili kuamini kompyuta zingine kwenye mitandao zisidhuru kompyuta yako kama kila eneo. Hii pia inaruhusu tu miunganisho inayoingia iliyochaguliwa.
  • Eneo la Ndani: Hii ni sawa na eneo la kazi na miunganisho iliyochaguliwa inayoruhusiwa.
  • Eneo Linaloaminika: Tukiweka eneo linaloaminika trafiki yote itakubaliwa.

Sasa umepata wazo bora kuhusu kanda, sasa hebu tujue kanda zinazopatikana, kanda chaguo-msingi, na tuorodhe kanda zote kwa kutumia amri zifuatazo.

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

Kumbuka: Toleo la amri iliyo hapo juu halitatoshea kwenye ukurasa mmoja kwa vile hii itaorodhesha kila kanda kama vile block, dmz, drop, external, home, internal, public, kuaminika, na kazi. Iwapo kanda zina kanuni wasilianifu, huduma zilizowezeshwa au bandari pia zitaorodheshwa pamoja na taarifa hizo za eneo husika.

Hatua ya 3: Kuweka Eneo Chaguomsingi la Firewalld

4. Ikiwa ungependa kuweka ukanda chaguo-msingi kuwa wa ndani, wa nje, wa kushuka, wa kazi au ukanda mwingine wowote, unaweza kutumia amri iliyo hapa chini ili kuweka eneo chaguo-msingi. Hapa tunatumia eneo la ndani kama chaguo-msingi.

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

5. Baada ya kuweka kanda, thibitisha eneo la msingi kwa kutumia amri iliyo hapa chini.

# firewall-cmd --get-default-zone

6. Hapa, Kiolesura chetu ni enp0s3, Ikiwa tunahitaji kuangalia eneo letu ambalo kiolesura kimefungwa tunaweza kutumia amri iliyo hapa chini.

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

7. Kipengele kingine cha kuvutia cha firewalld ni ‘icmptype’ ni mojawapo ya aina za icmp zinazotumika na firewalld. Ili kupata uorodheshaji wa aina za icmp zinazotumika tunaweza kutumia amri iliyo hapa chini.

# firewall-cmd --get-icmptypes

Hatua ya 4: Kuunda Huduma za Mwenyewe katika Firewalld

8. Huduma ni seti ya sheria zilizo na bandari na chaguzi ambazo hutumiwa na Firewalld. Huduma ambazo zimewashwa, zitapakiwa kiotomatiki huduma ya Firewalld itakapowashwa na kufanya kazi.

Kwa chaguo-msingi, huduma nyingi zinapatikana, ili kupata orodha ya huduma zote zilizopo, tumia amri ifuatayo.

# firewall-cmd --get-services

9. Ili kupata orodha ya huduma zote zinazopatikana chaguo-msingi, nenda kwenye saraka ifuatayo, hapa utapata orodha ya huduma.

# cd /usr/lib/firewalld/services/

10. Ili kuunda huduma yako mwenyewe, unahitaji kufafanua katika eneo lifuatalo. Kwa mfano, hapa nataka kuongeza huduma kwa bandari ya RTMP 1935, kwanza fanya nakala ya huduma yoyote.

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

Kisha, nenda kwenye eneo ambalo faili yetu ya huduma ilinakiliwa, kisha ubadilishe jina la faili 'ssh.xml' hadi 'rtmp.xml' kama inavyoonyeshwa kwenye picha hapa chini.

# cd /etc/firewalld/services/

11. Kisha fungua na uhariri faili kama Kichwa, Maelezo, Itifaki na nambari ya Bandari, ambayo tunahitaji kutumia kwa huduma ya RTMP kama inavyoonyeshwa kwenye picha iliyo hapa chini.

12. Kufanya mabadiliko haya kuamilisha, anzisha upya huduma ya ngome au pakia upya mipangilio.

# firewall-cmd --reload

13. Ili kuthibitisha, ikiwa huduma imeongezwa au la, endesha amri iliyo hapa chini ili kupata orodha ya huduma zinazopatikana.

# firewall-cmd --get-services

Hatua ya 5: Kukabidhi Huduma kwa Maeneo ya Firewalld

14. Hapa tutaona jinsi ya kudhibiti ngome kwa kutumia amri ya firewall-cmd. Ili kujua hali ya sasa ya firewall na kanda zote zinazofanya kazi, andika amri ifuatayo.

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

15. Ili kupata eneo la umma la kiolesura cha enp0s3, hiki ndicho kiolesura chaguo-msingi, ambacho kinafafanuliwa katika faili ya /etc/firewalld/firewalld.conf kama DefaultZone= umma.

Kuorodhesha huduma zote zinazopatikana katika eneo hili la kiolesura chaguo-msingi.

# firewall-cmd --get-service

Hatua ya 6: Kuongeza Huduma kwa Maeneo ya Firewalld

16. Katika mifano hapo juu, tumeona jinsi ya kuunda huduma zetu wenyewe kwa kuunda huduma ya rtmp, hapa tutaona jinsi ya kuongeza huduma ya rtmp kwenye kanda pia.

# firewall-cmd --add-service=rtmp

17. Kuondoa eneo lililoongezwa, chapa.

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

Hatua iliyo hapo juu ilikuwa ya muda tu. Ili kuifanya iwe ya kudumu tunahitaji kutekeleza amri iliyo hapa chini kwa chaguo –ya kudumu.

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

18. Bainisha sheria za anuwai ya chanzo cha mtandao na ufungue lango lolote. Kwa mfano, ikiwa ungependa kufungua masafa ya mtandao sema ‘192.168.0.0/24’ na port ‘1935‘ tumia amri zifuatazo.

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

Hakikisha kuwa umepakia upya huduma ya ngome baada ya kuongeza au kuondoa huduma au bandari zozote.

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

Hatua ya 7: Kuongeza Kanuni Nzuri za Masafa ya Mtandao

19. Ikiwa ninataka kuruhusu huduma kama vile http, https, vnc-server, PostgreSQL, unatumia sheria zifuatazo. Kwanza, ongeza utawala na uifanye kudumu na upakie upya sheria na uangalie hali.

# 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

Sasa, safu ya Mtandao 192.168.0.0/24 inaweza kutumia huduma iliyo hapo juu kutoka kwa seva yangu. Chaguo –ya kudumu linaweza kutumika katika kila sheria, lakini inabidi tufafanue sheria na tuangalie na mfikio wa mteja baada ya hapo lazima tuifanye iwe ya kudumu.

20. Baada ya kuongeza sheria zilizo hapo juu, usisahau kupakia tena sheria za firewall na uorodheshe sheria kwa kutumia:

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

Ili kujua zaidi kuhusu Firewalld.

# man firewalld

Hiyo ndiyo yote, tumeona jinsi ya kusanidi kichujio cha wavu kwa kutumia Firewalld katika RHEL/CentOS na Fedora.

Net-filter ni mfumo wa ngome kwa kila usambazaji wa Linux. Huko nyuma katika kila matoleo ya RHEL na CentOS, tulitumia iptables lakini katika matoleo mapya zaidi, wameanzisha Firewalld. Ni rahisi kuelewa na kutumia firewalld. Natumai umefurahiya uandishi.