Firewall kwenye Linux ina jukumu muhimu katika kupata mfumo wa kompyuta. Inafanya kazi kama kizuizi, kudhibiti na kuchuja trafiki ya mtandao ili kulinda mfumo dhidi ya ufikiaji usioidhinishwa, mashambulizi na vitisho vingine. Bila Firewall iliyosanidiwa ipasavyo, seva inaweza kuathiriwa na aina mbalimbali za mashambulizi ya mtandaoni, na hivyo kusababisha madhara makubwa kwa usalama na usiri wa data.
Katika makala haya, tutaangalia zana mbili kuu za kusanidi Firewall ya Linux: firewalld na iptables. Tutafanya uchambuzi wa kulinganisha wa vipengele, utendaji, na faida zao. Zaidi ya hayo, tutatoa maelekezo ya kina ya kusanidi na kutumia kila moja ya zana hizi, na pia kujadili mbinu bora za kulinda mfumo wako kwa Firewall kwenye jukwaa la Linux. Vitendo vyote vitaonyeshwa kwenye seva pepe yenye ufikiaji wa mizizi.
Inasanidi firewall kwenye Linux
Firewalld (Firewall Daemon) ni programu ya kudhibiti ngome katika mifumo endeshi ya Linux. Inatoa kiolesura cha mtumiaji cha kusanidi sheria za ngome, kuruhusu au kuzuia miunganisho ya programu za mtandao. Imesakinishwa awali kwa chaguo-msingi katika usambazaji mwingi wa seva. Ikiwa Firewalld haijasakinishwa awali, inaweza kusakinishwa kwa kujitegemea kutoka kwenye hazina rasmi za usambazaji.
Kwa mifumo ya Red Hat (kama vile RHEL, CentOS, Fedora) usakinishaji unafanywa kwa amri:
yum install firewalld
Kwa Debian/Ubuntu:
apt-get install firewalld
Baada ya usakinishaji, inaweza kuanza na kuamilishwa mara moja na amri:
systemctl start firewalld
Ifuatayo, unahitaji kuongeza huduma ili kuanza:
systemctl enable firewalld
Katika hatua hii, tunapendekeza kuzima ufw, kwani matumizi ya wakati mmoja ya zana hii na firewalld au iptables haipendekezi. Angalia hali:
systemctl status ufw
Ili kuizuia, ingiza amri:
systemctl stop ufw
Kwa kuzima kabisa:
ufw disable
Baada ya vitendo hivi, unaweza kuendelea kusanidi firewalld.
Kwanza, ni muhimu kufafanua maeneo ya uaminifu. Firewalld hutumia dhana ya kanda ili kubainisha kiwango cha uaminifu kwa violesura vya mtandao. Kila interface imepewa eneo moja, na sheria za firewall zinatumika kulingana na eneo. Orodha ya kanda zote zinazopatikana hufunguliwa kwa amri:
firewall-cmd --get-zones
Kawaida, maeneo 4 kuu hutumiwa:
- Umma: Eneo hili ni la mitandao ambayo unaona si salama;
- Binafsi: Inatumika kwa mitandao ya nyumbani au miunganisho mingine ya mtandao inayoaminika;
- Ndani: Inatumika kwa mitandao ya ndani, kama vile iliyo ndani ya shirika au mtandao wa shirika;
- DMZ: Eneo hili ndipo seva huwekwa kwa kawaida ambazo zinapaswa kufikiwa kutoka kwa mtandao.
Hata hivyo, huu ni mfano mmoja tu. Unaweza kuongeza eneo lako mwenyewe kwa kutumia amri:
firewall-cmd --permanent --new-zone=nameyourzone
Baada ya kuongeza, upakiaji upya unahitajika:
firewall-cmd --reload
Ili kufuta eneo, njia sawa hutumiwa
firewall-cmd --permanent --delete-zone=nameyourzone
Baada ya kubainisha maeneo, ni muhimu kuruhusu trafiki kwa huduma na bandari zinazohitajika. Ili kuruhusu huduma fulani, tumia amri:
firewall-cmd --zone=public --add-service=name
Ambapo jina ni jina la huduma. Kwa mfano, ili kuruhusu trafiki kwa Apache:
firewall-cmd --zone=public --add-service=http
Ili kufafanua bandari zinazoruhusiwa, tumia amri:
firewall-cmd --zone=public --add-port=number/protocol
Kwa mfano, bandari ya kawaida ya 22 ya SSH ingeonekana kama hii:
firewall-cmd --zone=public --add-port=22/tcp
Katika hatua hii, sheria kuu tayari zimeundwa. Kisha, amua jinsi trafiki itakavyoshughulikiwa kulingana na chanzo, unakoenda, lango, na vigezo vingine. Ili kuongeza sheria (kwa kutumia eneo la umma kama mfano):
firewall-cmd --zone=public rule
Kwa mfano, kuruhusu trafiki inayoingia kutoka chanzo chochote hadi bandari 80 (HTTP):
firewall-cmd --zone=public --add-port=80/tcp --permanent
Ili kuondoa sheria:
firewall-cmd --permanent --remove-rule=rule_specification
Ambapo sheria ni aina ya sheria (km, lango, huduma, sheria tajiri, n.k.), na uainishaji_wa_sheria ni vipimo vya sheria yenyewe.
Baada ya kufanya mabadiliko kwenye usanidi wa Firewalld, ni muhimu kuyahifadhi na kuyatumia. Ili kuokoa mabadiliko, tumia amri:
firewall-cmd --runtime-to-permanent
Ili kutekeleza mabadiliko:
firewall-cmd --reload
Baada ya kukamilisha usanidi, unaweza kuthibitisha vigezo vilivyochaguliwa kwa kufungua orodha ya sheria zote:
firewall-cmd --list-all
Ikiwa shida yoyote itatokea, angalia kumbukumbu za Firewalld kwa amri:
journalctl -u firewalld
Kumbuka: Tumeshughulikia tu algoriti ya jumla ya kuanzisha muunganisho. Zana hii ina utendaji mpana. Kwa taarifa kamili kuhusu chaguo zote zinazopatikana, unaweza kutumia hati rasmi au usaidizi wa kufungua:
firewall-cmd --help
Inasanidi iptables kwenye Linux
Tofauti na Firewalld, iptables ni zana ya zamani lakini bado inatumika sana katika Linux kudhibiti ngome. Inatoa mbinu ya moja kwa moja na rahisi zaidi kwa sheria za kuchuja pakiti katika kiwango cha Linux kernel. Hata hivyo, iptables zinahitaji ujuzi na uzoefu wa hali ya juu zaidi ikilinganishwa na Firewalld, na kuifanya isiweze kufikiwa na wanaoanza. Angalia toleo lililosanikishwa la chombo na amri:
iptables -V
Ikiwa chombo hakijasakinishwa, kitahitaji kusanikishwa. Amri ya usakinishaji kwenye Ubuntu, Debian:
apt install iptables
Kwa mifumo ya Kofia Nyekundu (kwa mfano, CentOS, Fedora):
yum install iptables
Amri ya kuwezesha baada ya ufungaji:
systemctl start iptables
Ili kuongeza kwenye kuanza, tekeleza:
systemctl enable iptables
Kabla ya kuanza usanidi wa iptables, ni muhimu kuelewa jinsi inavyofanya kazi. Hii inasaidiwa na syntax ya programu. Inaonekana kama ifuatavyo:
iptables -t table action chain additional_parameters
Wacha tuzame kwa undani zaidi kila kitu.
Iptables ina jedwali kuu nne: kichujio, nat, mangle, na mbichi . Kila moja imeundwa kwa ajili ya kusindika aina fulani za pakiti na ina minyororo yake ya sheria:
- kuchuja: Hili ndilo jedwali linalotumiwa mara nyingi zaidi, lililo na sheria za kuchuja pakiti. Inatumika kufanya maamuzi ya kuruhusu au kukataa pakiti.
- nat: Jedwali hili linatumika kwa kurekebisha anwani za mtandao na milango katika pakiti. Mara nyingi hutumika kusanidi uigaji (NAT).
- kula: Katika jedwali hili, unaweza kurekebisha vichwa vya pakiti. Inatumika kwa shughuli maalum za pakiti, kama vile kuweka alama.
- ghafi: Jedwali hili linatumika kusanidi sheria zinazotumika kabla ya kupitia mfumo wa kufuatilia muunganisho. Kwa kawaida hutumika kuweka sheria ambazo hazifai kurekebishwa na mfumo wa ufuatiliaji, kama vile kudondosha pakiti kutoka kwa anwani fulani.
Kila meza ina seti ya minyororo. Minyororo ni mlolongo wa sheria ambazo huangaliwa kwa mfululizo. Kuna minyororo mitatu iliyoainishwa mapema:
- INPUT (zinazoingia). Sheria katika mlolongo huu huamua nini cha kufanya na pakiti zinazoingia.
- OUTPUT (inayotoka). Msururu huu unatumika kwa pakiti zote ambazo kompyuta yako hutuma kwa vifaa vingine au kompyuta kwenye mtandao.
- MBELE (inasambaza). Sheria katika mlolongo huu zinabainisha nini cha kufanya na pakiti zilizotumwa.
Hatimaye, kila mlolongo una hatua fulani (lengo). Kwa mazoezi, vitendo 5 kuu hutumiwa:
- ACCEPT: Ruhusu pakiti kupita kwenye ngome.
- DHAMBI: Kataa pakiti na uitupe bila jibu lolote.
- KATAA: Kataa pakiti na umtumie mtumaji ujumbe wa hitilafu wa ICMP.
- Ingia: Ingiza pakiti kwenye logi ya mfumo na ufanye kitendo kingine (kwa mfano, KUBALI au DROP).
- Furahisha: Acha kuangalia sheria katika msururu wa sasa na urudi kwenye msururu wa kupiga simu (ikiwa inatumika).
Ili kuanza usanidi, fungua orodha ya sheria zilizopo na amri:
iptables -L
Kama mwongozo wa kusanidi Iptables, hebu tuangalie mifano ya vitendo ya amri zinazotumiwa sana. Kwa urahisi, tutagawanya mifano katika vikundi 3, kulingana na mlolongo maalum.
Mnyororo wa kuingiza :
- Ruhusu trafiki inayoingia kupitia itifaki ya TCP kwenye bandari 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. Ruhusu trafiki inayoingia kupitia itifaki ya UDP kwenye mlango wa 22:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. Zuia trafiki inayoingia kutoka kwa anwani mahususi ya IP:
iptables -A INPUT -s 192.168.1.100 -j DROP
MATOKEO YA Mnyororo :
- Ruhusu trafiki inayotoka kupitia itifaki ya TCP kwenye bandari 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. Ruhusu trafiki inayotoka kupitia itifaki ya UDP kwenye bandari 80:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. Zuia trafiki inayotoka kwa bandari maalum (kwa mfano, 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
Mnyororo MBELE :
- Zuia trafiki iliyotumwa kutoka kwa anuwai maalum ya anwani za IP:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. Zuia usambazaji wa pakiti kutoka kwa kiolesura maalum cha mtandao:
iptables -A FORWARD -i eth1 -j DROP
3. Weka kikomo idadi ya miunganisho ya wakati mmoja kwa mlango maalum (katika mfano huu, miunganisho 10 kwa dakika kwenye mlango wa 80):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
Kama unaweza kuona, katika kila kesi tofauti, hoja ya ziada (amri) hutumiwa. Ili kupata orodha kamili ya hoja zinazowezekana na usaidizi wa jumla wa utendakazi wa zana, ingiza:
iptables -h
Ili kuhakikisha kuwa mipangilio ni sahihi, ingiza tena amri ili kuona orodha ya sheria:
iptables -L
Ili kufuta sheria maalum, tumia amri:
iptables -D chain rule_number
Kwa mfano, ikiwa unataka kufuta sheria nambari 1 kutoka kwa mnyororo wa INPUT, amri itaonekana kama hii:
iptables -D INPUT 1
Ili kufuta sheria zote kwa amri moja:
iptables -F
Dokezo muhimu : sheria za iptables hazihifadhiwi kiotomatiki baada ya kuwasha upya mfumo au huduma. Ili kuhifadhi sheria, zinahitaji kuongezwa kwenye faili ya usanidi na kurejeshwa baada ya kuwasha upya. Huduma za iptables-save na iptables-restore zinaweza kusaidia na hili. Ili kuhifadhi sheria, ingiza amri:
iptables-save > /etc/iptables/rules.v4
Hii huhifadhi sheria za sasa za iptables katika faili ya rules.v4. Ili kurejesha baada ya kuwasha upya, ingiza:
iptables-restore < /etc/iptables/rules.v4
Amri hii inarejesha sheria kutoka kwa sheria.v4 faili.
Hitimisho
Kusanidi Firewall kwenye Linux kwa kutumia firewalld au iptables ni kipengele muhimu cha kuhakikisha usalama wa seva. Zana zote mbili hutoa njia za kuaminika za kudhibiti trafiki ya mtandao na kulinda mfumo dhidi ya ufikiaji usioidhinishwa na mashambulizi ya mtandao. Chaguo kati ya firewalld na iptables inategemea mahitaji maalum na mapendekezo ya mtumiaji, kwa kuzingatia utendaji wao tofauti na nguvu.