Sheria 25 Muhimu za IPtable Firewall Kila Msimamizi wa Linux Anapaswa Kujua
sanidi ngome kwa njia ambayo itakidhi mahitaji ya mfumo na watumiaji kwa miunganisho inayoingia na inayotoka, bila kuacha mfumo katika hatari ya kushambuliwa.
Hapa ndipo iptables
huja kwa manufaa. Iptables ni ngome ya mstari wa amri ya Linux ambayo inaruhusu wasimamizi wa mfumo kudhibiti trafiki inayoingia na kutoka kupitia seti ya sheria za jedwali zinazoweza kusanidiwa.
Iptables hutumia seti ya jedwali ambazo zina minyororo iliyo na seti ya sheria zilizojumuishwa au zilizobainishwa na mtumiaji. Shukrani kwao msimamizi wa mfumo anaweza kuchuja vizuri trafiki ya mtandao ya mfumo wake.
Kwa mwongozo wa iptables, kwa sasa kuna aina 3 za jedwali:
CHUJI
– hili ndilo jedwali chaguo-msingi, ambalo lina minyororo iliyojengewa ndani ya:- INPUT – vifurushi vinavyolengwa kwa soketi za ndani
- MBELE - pakiti zinazopitishwa kwenye mfumo
- OUTPUT - pakiti zinazozalishwa ndani
- PREROUTING - hutumika kwa kubadilisha pakiti mara tu inapopokelewa
- OUTPUT - hutumika kwa kubadilisha pakiti zinazozalishwa ndani ya nchi
- POSTROUTING - hutumika kwa kubadilisha pakiti zinapokaribia kutoka
- PREROUTING - kwa kubadilisha miunganisho inayoingia
- OUTPUT - kwa kubadilisha pakiti zinazozalishwa ndani ya nchi
- INPUT - kwa pakiti zinazoingia
- POSTROUTING - kwa kubadilisha pakiti zinapokaribia kutoka
- MBELE - kwa pakiti zinazopitishwa kwenye kisanduku
Katika makala hii, utaona amri muhimu ambazo zitakusaidia kudhibiti firewall yako ya sanduku la Linux kupitia iptables. Kwa madhumuni ya makala haya, nitaanza na amri rahisi na kwenda kwenye tata zaidi hadi mwisho.
1. Anza/Stop/Anzisha upya Iptables Firewall
Kwanza, unapaswa kujua jinsi ya kudhibiti huduma ya iptables katika usambazaji tofauti wa Linux. Hii ni rahisi sana:
------------ On Cent/RHEL 7 and Fedora 22+ ------------ # systemctl start iptables # systemctl stop iptables # systemctl restart iptables
------------ On Cent/RHEL 6/5 and Fedora ------------ # /etc/init.d/iptables start # /etc/init.d/iptables stop # /etc/init.d/iptables restart
2. Angalia Kanuni zote za Firewall za IPtables
Ikiwa unataka kuangalia sheria zako zilizopo, tumia amri ifuatayo:
# iptables -L -n -v
Hii inapaswa kurudisha pato sawa na ile iliyo hapa chini:
Chain INPUT (policy ACCEPT 1129K packets, 415M bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 0 0 ACCEPT tcp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67 0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * lxcbr0 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 354K packets, 185M bytes) pkts bytes target prot opt in out source destination
Ikiwa ungependa kuangalia sheria za jedwali mahususi, unaweza kutumia chaguo la
-t
likifuatiwa na jedwali ambalo ungependa kuangalia. Kwa mfano, ili kuangalia sheria katika jedwali laNAT
, unaweza kutumia:# iptables -t nat -L -v -n
3. Zuia Anwani Maalum ya IP katika Firewall ya IPtables
Ukipata shughuli isiyo ya kawaida au ya matusi kutoka kwa anwani ya IP unaweza kuzuia anwani hiyo ya IP kwa sheria ifuatayo:
# iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
Ambapo unahitaji kubadilisha
\xxx.xxx.xxx.xxx\
na anwani halisi ya IP. Kuwa mwangalifu sana unapoendesha amri hii kwani unaweza kuzuia kwa bahati mbaya anwani yako ya IP. Chaguo la-A
huongeza sheria katika mwisho wa msururu uliochaguliwa.Iwapo ungependa tu kuzuia trafiki ya TCP kutoka kwa anwani hiyo ya IP, unaweza kutumia chaguo la
-p
ambalo linabainisha itifaki. Kwa njia hiyo amri itaonekana kama hii:# iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
4. Fungua Anwani ya IP katika Firewall ya IPtables
Ikiwa umeamua kuwa hutaki tena kuzuia maombi kutoka kwa anwani maalum ya IP, unaweza kufuta sheria ya kuzuia kwa amri ifuatayo:
# iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
Chaguo la
-D
hufuta sheria moja au zaidi kutoka kwa msururu uliochaguliwa. Ukipendelea kutumia chaguo refu zaidi unaweza kutumia--delete
.5. Zuia Bandari Maalum kwenye IPtables Firewall
Wakati mwingine unaweza kutaka kuzuia miunganisho inayoingia au inayotoka kwenye bandari maalum. Ni kipimo kizuri cha usalama na unapaswa kufikiria juu ya jambo hilo wakati wa kusanidi ngome yako.
Ili kuzuia miunganisho inayotoka kwa matumizi maalum ya bandari:
# iptables -A OUTPUT -p tcp --dport xxx -j DROP
Ili kuruhusu miunganisho inayoingia tumia:
# iptables -A INPUT -p tcp --dport xxx -j ACCEPT
Katika mifano yote miwili badilisha
\xxx\
na mlango halisi unaotaka kuruhusu. Ikiwa unataka kuzuia trafiki ya UDP badala ya TCP, badilisha tu\tcp\
na\udp\
katika sheria ya iptables iliyo hapo juu.6. Ruhusu Bandari Nyingi kwenye IPtables kwa kutumia Multiport
Unaweza kuruhusu bandari nyingi mara moja, kwa kutumia multiport, hapa chini unaweza kupata sheria kama hiyo kwa miunganisho inayoingia na inayotoka:
# iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -j ACCEPT # iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT
7. Ruhusu Masafa Mahususi ya Mtandao kwenye Mlango Maalum kwenye Jedwali la IP
Unaweza kutaka kupunguza miunganisho fulani kwenye bandari maalum kwa mtandao fulani. Hebu tuseme ungependa kuruhusu miunganisho inayotoka kwenye mlango
22
kwa mtandao192.168.100.0/24
.Unaweza kuifanya kwa amri hii:
# iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT
8. Zuia Facebook kwenye IPtables Firewall
Waajiri wengine hupenda kuzuia ufikiaji wa Facebook kwa wafanyikazi wao. Chini ni mfano wa jinsi ya kuzuia trafiki kwa Facebook.
Kumbuka: Ikiwa wewe ni msimamizi wa mfumo na unahitaji kutumia sheria hizi, kumbuka kwamba wenzako wanaweza kuacha kuzungumza nawe :)
Kwanza pata anwani za IP zinazotumiwa na Facebook:
# host facebook.com facebook.com has address 66.220.156.68
# whois 66.220.156.68 | grep CIDR CIDR: 66.220.144.0/20
Kisha unaweza kuzuia mtandao huo wa Facebook kwa:
# iptables -A OUTPUT -p tcp -d 66.220.144.0/20 -j DROP
Kumbuka kwamba anuwai ya anwani ya IP inayotumiwa na Facebook inaweza kutofautiana katika nchi yako.
9. Weka Usambazaji wa Bandari katika IPtables
Wakati mwingine unaweza kutaka kusambaza trafiki ya huduma moja kwenye bandari nyingine. Unaweza kufanikisha hili kwa amri ifuatayo:
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525
Amri iliyo hapo juu inapeleka mbele trafiki yote inayoingia kwenye kiolesura cha mtandao
eth0
, kutoka lango25
hadi lango2525
. Unaweza kubadilisha bandari na zile unazohitaji.10. Zuia Mafuriko ya Mtandao kwenye Bandari ya Apache na IPtables
Wakati mwingine anwani za IP zinaweza kuomba miunganisho mingi sana kuelekea bandari za wavuti kwenye tovuti yako. Hii inaweza kusababisha idadi ya maswala na kuzuia shida kama hizo, unaweza kutumia sheria ifuatayo:
# iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT
Amri iliyo hapo juu inaweka mipaka miunganisho inayoingia kutoka kwa kila dakika hadi
100
na kuweka kikomo cha kupasuka hadi200
. Unaweza kuhariri kikomo na kupasuka kwa kikomo kwa mahitaji yako mahususi.11. Zuia Maombi ya Ping yanayoingia kwenye IPtables
Baadhi ya wasimamizi wa mfumo hupenda kuzuia maombi ya ping yanayoingia kutokana na masuala ya usalama. Ingawa tishio sio kubwa sana, ni vizuri kujua jinsi ya kuzuia ombi kama hilo:
# iptables -A INPUT -p icmp -i eth0 -j DROP
12. Ruhusu Ufikiaji wa loopback
Ufikiaji wa loopback (ufikiaji kutoka
127.0.0.1
) ni muhimu na unapaswa kuiacha ikifanya kazi kila wakati:# iptables -A INPUT -i lo -j ACCEPT # iptables -A OUTPUT -o lo -j ACCEPT
13. Weka Logi ya Pakiti za Mtandao zilizoshuka kwenye IPtables
Ikiwa unataka kuweka pakiti zilizodondoshwa kwenye kiolesura cha mtandao
eth0
, unaweza kutumia amri ifuatayo:# iptables -A INPUT -i eth0 -j LOG --log-prefix "IPtables dropped packets:"
Unaweza kubadilisha thamani baada ya
\--log-prefix\
na kitu kwa chaguo lako. Ujumbe umeingia katika/var/log/messages
na unaweza kuzitafuta kwa:# grep "IPtables dropped packets:" /var/log/messages
14. Zuia Ufikiaji wa Anwani Maalum ya MAC kwenye IPtables
Unaweza kuzuia ufikiaji wa mfumo wako kutoka kwa anwani maalum ya MAC kwa kutumia:
# iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
Bila shaka, utahitaji kubadilisha
\00:00:00:00:00:00\
na anwani halisi ya MAC ambayo ungependa kuzuia.15. Punguza Idadi ya Viunganisho vya Wakati Mmoja kwa Anwani ya IP
Ikiwa hutaki kuwa na miunganisho mingi ya wakati mmoja iliyoanzishwa kutoka kwa anwani moja ya IP kwenye bandari fulani unaweza kutumia amri iliyo hapa chini:
# iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
Amri iliyo hapo juu hairuhusu miunganisho isiyozidi
3
kwa kila mteja. Bila shaka, unaweza kubadilisha nambari ya bandari ili kufanana na huduma tofauti. Pia--connlimit-ave
inapaswa kubadilishwa ili kuendana na mahitaji yako.16. Tafuta ndani ya Kanuni ya IPtables
Baada ya kufafanua sheria zako za iptables, utataka kutafuta mara kwa mara na huenda ukahitaji kuzibadilisha. Njia rahisi ya kutafuta ndani ya sheria zako ni kutumia:
# iptables -L $table -v -n | grep $string
Katika mfano ulio hapo juu, utahitaji kubadilisha
$table
na jedwali halisi ambalo ungependa kutafuta na$string
na mfuatano halisi ambao unatafuta.Hapa kuna mfano:
# iptables -L INPUT -v -n | grep 192.168.0.100
17. Bainisha Msururu Mpya wa IPTables
Kwa iptables, unaweza kufafanua mlolongo wako mwenyewe na kuhifadhi sheria maalum ndani yake. Ili kufafanua mnyororo, tumia:
# iptables -N custom-filter
Sasa unaweza kuangalia ikiwa kichujio chako kipya kipo:
# iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination
Chain FORWARD (policy ACCEPT) target prot opt source destination
Chain OUTPUT (policy ACCEPT) target prot opt source destination
Chain custom-filter (0 references) target prot opt source destination
18. Osha Minyororo ya Ngome ya IPtables au Kanuni
Ikiwa unataka kufuta minyororo yako ya ngome, unaweza kutumia:
# iptables -F
Unaweza kufuta minyororo kutoka kwa meza maalum na:
# iptables -t nat -F
Unaweza kubadilisha
\nat\
na jedwali halisi ambalo minyororo ungependa kuiondoa.19. Hifadhi Kanuni za IPtables kwenye Faili
Ikiwa ungependa kuhifadhi sheria zako za ngome, unaweza kutumia amri ya
iptables-save
. Unaweza kutumia zifuatazo kuhifadhi na kuhifadhi sheria zako kwenye faili:# iptables-save > ~/iptables.rules
Ni juu yako wapi utahifadhi faili na jinsi utakavyoipa jina.
20. Rejesha Kanuni za IPtables kutoka kwa Faili
Ikiwa ungependa kurejesha orodha ya sheria za iptables, unaweza kutumia
iptables-restore
. Amri inaonekana kama hii:# iptables-restore < ~/iptables.rules
Kwa kweli njia ya faili yako ya sheria inaweza kuwa tofauti.
21. Weka Kanuni za IPtables kwa Uzingatiaji wa PCI
Baadhi ya wasimamizi wa mfumo wanaweza kuhitajika kusanidi seva zao ili zitumike PCI. Kuna mahitaji mengi ya wachuuzi tofauti wa kufuata PCI, lakini kuna wachache wa kawaida.
Katika visa vingi, utahitaji kuwa na anwani zaidi ya moja ya IP. Utahitaji kutumia sheria zilizo hapa chini kwa anwani ya IP ya tovuti. Kuwa mwangalifu zaidi unapotumia sheria zilizo hapa chini na uzitumie tu ikiwa una uhakika kile unachofanya:
# iptables -I INPUT -d SITE -p tcp -m multiport --dports 21,25,110,143,465,587,993,995 -j DROP
Ikiwa unatumia cPanel au paneli sawa ya kudhibiti, unaweza kuhitaji kuzuia bandari zake pia. Hapa kuna mfano:
# iptables -I in_sg -d DEDI_IP -p tcp -m multiport --dports 2082,2083,2095,2096,2525,2086,2087 -j DROP
Kumbuka: Ili kuhakikisha kuwa unakidhi mahitaji ya mchuuzi wako wa PCI, angalia ripoti yao kwa makini na utumie sheria zinazohitajika. Katika baadhi ya matukio unaweza kuhitaji kuzuia trafiki ya UDP kwenye bandari fulani pia.
22. Ruhusu Viunganisho Vilivyoanzishwa na Vinavyohusiana
Kwa vile trafiki ya mtandao ni tofauti kwa zinazoingia na zinazotoka, utataka kuruhusu trafiki iliyoanzishwa na inayohusiana inayoingia. Kwa miunganisho inayoingia ifanye na:
# iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Kwa matumizi yanayotoka:
# iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
23. Weka Vifurushi Batili kwenye IPtables
Inawezekana kuweka baadhi ya pakiti za mtandao alama kuwa si sahihi. Watu wengine wanaweza kupendelea kuweka vifurushi hivyo, lakini wengine wanapendelea kuviacha. Ili kuacha pakiti zisizo sahihi, unaweza kutumia:
# iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
24. Zuia Muunganisho kwenye Kiolesura cha Mtandao
Mifumo mingine inaweza kuwa na zaidi ya kiolesura kimoja cha mtandao. Unaweza kupunguza ufikiaji wa kiolesura hicho cha mtandao au kuzuia miunganisho kutoka kwa anwani fulani ya IP.
Kwa mfano:
# iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP
Badilisha \xxx.xxx.xxx.xxx na anwani halisi ya IP (au mtandao) ambayo ungependa kuzuia.
25. Zima Barua Zinazotoka kupitia IPTables
Ikiwa mfumo wako haupaswi kutuma barua pepe zozote, unaweza kuzuia bandari zinazotoka kwenye milango ya SMTP. Kwa mfano, unaweza kutumia hii:
# iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT
Hitimisho
Iptables ni ngome yenye nguvu ambayo unaweza kufaidika nayo kwa urahisi. Ni muhimu kwa kila msimamizi wa mfumo kujifunza angalau misingi ya iptables. Ikiwa unataka kupata habari zaidi juu ya iptables na chaguzi zake inashauriwa sana kusoma mwongozo wake:
# man iptables
Ikiwa unafikiri tunapaswa kuongeza amri zaidi kwenye orodha hii, tafadhali zishiriki nasi, kwa kuziwasilisha katika sehemu ya maoni hapa chini.