Jinsi ya Kusakinisha na Kusanidi UFW - FireWall isiyo ngumu katika Debian/Ubuntu


Kwa kuwa kompyuta zimeunganishwa kwa kila mmoja, huduma zinakua haraka. Barua pepe, Mitandao ya Kijamii, Duka la Mtandaoni, Piga gumzo hadi Mikutano ya Wavuti ni huduma zinazotumiwa na mtumiaji. Lakini kwa upande mwingine muunganisho huu unapenda kisu cha pande mbili. Pia inawezekana kutuma ujumbe mbaya kwa kompyuta hizo kama vile Virusi, programu hasidi, programu za trojan ni mojawapo.

Mtandao, kama mtandao mkubwa wa kompyuta sio kila wakati hujaa watu wazuri. Ili kuhakikisha kuwa kompyuta/seva zetu ziko salama, tunahitaji kuzilinda.

Mojawapo ya lazima iwe na sehemu kwenye kompyuta/seva zako ni Firewall. Kutoka Wikipedia, ufafanuzi ni:

Katika kompyuta, ngome ni mfumo wa usalama wa mtandao wa programu au maunzi ambao hudhibiti trafiki ya mtandao inayoingia na kutoka kwa kuchanganua pakiti za data na kubaini ikiwa zinapaswa kuruhusiwa kupitia au la, kulingana na sheria zilizowekwa.

Iptables ni mojawapo ya firewall ambayo hutumiwa sana na seva. Ni programu inayotumiwa kudhibiti trafiki inayoingia na kutoka kwenye seva kulingana na seti ya sheria. Kwa ujumla, muunganisho unaoaminika pekee ndio unaoruhusiwa kuingia kwenye seva. Lakini IPTables inafanya kazi katika hali ya koni na ni ngumu. Wale wanaofahamu sheria na amri za iptables, wanaweza kusoma makala ifuatayo ambayo inaelezea jinsi ya kutumia firewall ya iptables.

  1. Mwongozo wa IPTables Msingi (Linux Firewall)

Ufungaji wa Firewall ya UFW katika Debian/Ubuntu

Ili kupunguza ugumu wa jinsi ya kuweka IPTables, kuna mengi ya mbele. Ikiwa unaendesha Ubuntu Linux, utapata ufw kama zana ya msingi ya firewall. Hebu tuanze kuchunguza kuhusu ufw firewall.

Ufw (Uncomplicated Firewall) ni sehemu ya mbele ya ngome za iptables zinazotumiwa sana na inafaa kwa ngome zinazoegemezwa na wapangishaji. ufw inatoa mfumo wa kudhibiti netfilter, na vile vile hutoa kiolesura cha safu ya amri kwa kudhibiti ngome. Inatoa kiolesura cha urafiki na rahisi kutumia kwa wanaoanza Linux ambao hawajui sana dhana za ngome.

Wakati, kwa upande mwingine amri hizo ngumu husaidia wasimamizi kuweka sheria ngumu kwa kutumia kiolesura cha mstari wa amri. Ufw ni mkondo wa juu kwa usambazaji mwingine kama vile Debian, Ubuntu na Linux Mint.

Kwanza, angalia ikiwa ufw imewekwa kwa kutumia amri ifuatayo.

$ sudo dpkg --get-selections | grep ufw

ufw 		install

Ikiwa haijasakinishwa, unaweza kuisakinisha kwa kutumia apt amri kama inavyoonyeshwa hapa chini.

$ sudo apt-get install ufw

Kabla ya kutumia, unapaswa kuangalia ikiwa ufw inaendesha au la. Tumia amri ifuatayo kuiangalia.

$ sudo ufw status

Ikiwa umepata Hali: haitumiki, inamaanisha kuwa haitumiki au imezimwa.

Ili kuiwezesha, unahitaji tu kuandika amri ifuatayo kwenye terminal.

$ sudo ufw enable

Firewall is active and enabled on system startup

Ili kuizima, andika tu.

$ sudo ufw disable

Baada ya firewall kuanzishwa unaweza kuongeza sheria zako ndani yake. Ikiwa unataka kuona ni sheria gani za msingi, unaweza kuandika.

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$

Kama unavyoona, kwa chaguo-msingi kila muunganisho unaoingia unakataliwa. Ikiwa unataka kuweka mashine yako kwa mbali basi lazima uruhusu bandari inayofaa. Kwa mfano unataka kuruhusu muunganisho wa ssh. Hapa kuna amri ya kuiruhusu.

$ sudo ufw allow ssh

[sudo] password for pungki :
Rule added
Rule added (v6)
$

Ukiangalia hali tena, utaona pato kama hili.

$ sudo ufw status

To 		Action 			From
-- 		----------- 		------
22 		ALLOW 			Anywhere
22 		ALLOW 			Anywhere (v6)

Ikiwa una sheria nyingi, na unataka kuweka nambari kwenye kila sheria kwenye kuruka, tumia parameter iliyohesabiwa.

$ sudo ufw status numbered

To 		Action 			From
------ 		----------- 		------
[1] 22 		ALLOW 			Anywhere
[2] 22 		ALLOW 			Anywhere (v6)

Sheria ya kwanza inasema kwamba muunganisho unaoingia kwa bandari 22 kutoka Popote, pakiti zote za tcp au udp zinaruhusiwa. Je, ikiwa unataka kuruhusu pakiti ya tcp pekee? Kisha unaweza kuongeza parameter tcp baada ya nambari ya bandari. Hapa kuna mfano na matokeo ya sampuli.

$ sudo ufw allow ssh/tcp

To 		Action 			From
------ 		----------- 		------
22/tcp 		ALLOW 			Anywhere
22/tcp 		ALLOW 			Anywhere (v6)

Ujanja sawa unatumika kwa sheria ya Kataa. Wacha tuseme unataka kukataa sheria ya ftp. Kwa hivyo unapaswa kuandika tu.

$ sudo ufw deny ftp

To 		Action 			From
------ 		----------- 		------
21/tcp 		DENY 			Anywhere
21/tcp 		DENY 			Anywhere (v6)

Wakati mwingine tuna bandari maalum ambayo haifuati viwango vyovyote. Hebu tuseme tunabadilisha bandari ya ssh kwenye mashine yetu kutoka 22, hadi 2290. Kisha kuruhusu bandari 2290, tunaweza kuiongeza hivi.

$ sudo ufw allow

To 		Action 			From
-- 		----------- 		------
2290 		ALLOW 			Anywhere
2290 		ALLOW 			Anywhere (v6)

Pia inawezekana kwako kuongeza masafa ya bandari kwenye sheria. Ikiwa tunataka kufungua bandari kutoka 2290 - 2300 na itifaki ya tcp, basi amri itakuwa kama hii.

$ sudo ufw allow 2290:2300/tcp

To 			Action 			From
------ 			----------- 		------
2290:2300/tcp 		ALLOW 			Anywhere
2290:2300/tcp 		ALLOW			Anywhere (v6)

wakati ikiwa unataka kutumia udp, tumia tu amri ifuatayo.

$ sudo ufw allow 2290:2300/udp

To 			Action 			From
------ 			----------- 		------
2290:2300/udp 		ALLOW 			Anywhere
2290:2300/udp 		ALLOW			Anywhere (v6)

Tafadhali kumbuka kwamba unapaswa kuweka ‘tcp’ au ‘udp’ kwa uwazi la sivyo utapata ujumbe wa hitilafu sawa na hapa chini.

ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports

Hapo awali tumeongeza sheria kulingana na huduma au bandari. Ufw pia hukuruhusu kuongeza sheria kulingana na Anwani ya IP. Hapa kuna amri ya mfano.

$ sudo ufw allow from 192.168.0.104

Unaweza pia kutumia mask ya subnet kupanua safu.

$ sudo ufw allow form 192.168.0.0/24

To 		Action 			From
-- 		----------- 		------
Anywhere	ALLOW 			192.168.0.104
Anywhere	ALLOW 			192.168.0.0/24

Kama unaweza kuona, kutoka kwa paramu itapunguza tu chanzo cha unganisho. Wakati fikio - ambalo linawakilishwa na To column - ni Mahali Popote. Unaweza pia kudhibiti lengwa kwa kutumia kigezo cha 'To'. Hebu tuone sampuli ili kuruhusu ufikiaji wa bandari 22 (ssh).

$ sudo ufw allow to any port 22

Amri iliyo hapo juu itaruhusu ufikiaji kutoka mahali popote na kutoka kwa itifaki yoyote hadi bandari 22.

Kwa sheria maalum zaidi, unaweza pia kuchanganya Anwani ya IP, itifaki na bandari. Wacha tuseme tunataka kuunda sheria inayozuia muunganisho tu kutoka kwa IP 192.168.0.104, itifaki tcp pekee na bandari 22. Kisha amri itakuwa kama ilivyo hapo chini.

$ sudo ufw allow from 192.168.0.104 proto tcp to any port 22

Syntax ya kuunda kanuni ya kukataa ni sawa na kuruhusu sheria. Unahitaji tu kubadilisha parameta kutoka kuruhusu hadi kukataa.

Wakati fulani unaweza kuhitaji kufuta sheria yako iliyopo. Kwa mara nyingine tena na ufw ni rahisi kufuta sheria. Kutoka kwa sampuli hapo juu, unayo sheria hapa chini na ungependa kuifuta.

To 		Action 			From
-- 		----------- 		------
22/tcp		ALLOW 			192.168.0.104
21/tcp		ALLOW 			Anywhere
21/tcp 		ALLOW 			Anywhere (v6)

Kuna njia mbili za kufuta sheria.

Amri iliyo hapa chini itafuta sheria zinazolingana na huduma ya ftp. Kwa hivyo 21/tcp ambayo inamaanisha bandari ya ftp itafutwa.

$ sudo ufw delete allow ftp

Lakini ulipojaribu kufuta sheria ya kwanza kwa mfano hapo juu kwa kutumia amri ya chini.

$ sudo ufw delete allow ssh

Or 

$ sudo ufw delete allow 22/tcp

Unaweza kupata ujumbe wa makosa kama vile.

Could not delete non-existent rule
Could not delete non-existent rule (v6)

Basi unaweza kufanya hila hii. Kama tulivyotaja hapo juu, unaweza kuonyesha nambari ya sheria ili kuonyesha ni sheria gani tunataka kufuta. Hebu tukuonyeshe.

$ sudo ufw status numbered

To 		Action 			From
-- 		----------- 		------
[1] 22/tcp		ALLOW 			192.168.0.104
[2] 21/tcp		ALLOW 			Anywhere
[3] 21/tcp 		ALLOW 			Anywhere (v6)

Kisha unaweza kufuta sheria ya kwanza kwa kutumia. Bonyeza \y itafuta sheria kabisa.

$ sudo ufw delete 1

Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

Kutoka kwa njia hizo utaona tofauti. Njia ya 2 itauliza uthibitisho wa mtumiaji kabla ya kufuta sheria wakati njia ya 1 sio.

Katika hali fulani, unaweza kutaka kufuta/kuweka upya sheria zote. Unaweza kuifanya kwa kuandika.

$ sudo ufw reset

Resetting all rules to installed defaults. Proceed with operation (y|n)? y

Ukibonyeza \y, basi ufw itahifadhi nakala za sheria zote zilizopo kabla ya kuweka upya ufw yako. Kuweka upya sheria pia kutazima ngome yako. Unahitaji kuiwasha tena ikiwa ungependa kuitumia.

Kama nilivyosema hapo juu, firewall ya ufw inaweza kufanya chochote ambacho iptables zinaweza kufanya. Hii inakamilishwa kwa kutumia seti mbalimbali za faili za sheria, ambazo sio zaidi ya iptables-rejesha faili za maandishi zinazofaa. Kurekebisha vizuri ufw na/au kuweka amri za iptables za ziada zisizoruhusiwa kupitia amri ya ufw ni suala la kuhariri faili kadhaa za maandishi.

  1. /etc/default/ufw: Usanidi mkuu wa sera chaguo-msingi, usaidizi wa IPv6 na moduli za kernel.
  2. /etc/ufw/before[6].rules: sheria katika faili hizi huhesabiwa kabla ya sheria zozote kuongezwa kupitia amri ya ufw.
  3. /etc/ufw/after[6].rules: sheria katika faili hizi huhesabiwa baada ya sheria zozote kuongezwa kupitia amri ya ufw.
  4. /etc/ufw/sysctl.conf: kernel network tunables.
  5. /etc/ufw/ufw.conf: huweka iwapo ufw imewashwa kwenye kuwasha na kuweka LOGLEVEL.

Hitimisho

UFW kama sehemu ya mbele ya iptables hakika hufanya kiolesura rahisi kwa mtumiaji. Mtumiaji hawana haja ya kukumbuka syntax ngumu ya iptables. UFW pia hutumia 'plain english' kama kigezo chake.

Ruhusu, kataa, weka upya ni mmoja wao. Ninaamini kuwa kuna iptables nyingi zaidi za mbele huko nje. Lakini kwa hakika ufw ni mojawapo ya njia mbadala bora kwa watumiaji wanaotaka kusanidi ngome zao haraka, rahisi na bila shaka salama. Tafadhali tembelea ukurasa wa mwongozo wa ufw kwa kuandika man ufw kwa maelezo zaidi.