Ang aking unang blog

Monday, February 13, 2006

Paano gumawa ng Firewall na gamit ang IPTables (Part 3)

Ngayon ay gagawa tayo ng disenyo ng isang basic na firewall, may mga makikita kayo ditong mga bagong opsyon na ginamit, sisikapin kong ipaliwanag ang mga ito habang ating pinag-aaralan.


Ang mga requirements ay ang mga sumusunod:

Mga services na tumatakbo sa firewall:
Web (80)
SMTP (25)
Secured Web (443)
Secured Shell (22)


ang kailangan lang ay yung mga nabanggit na services ang dapat lang na payagang makalusot sa firewall, at dapat na ang firewall natin ay makakuha ng updates mula sa internet para masigurong latest at patched ang mga packages na naka install.


pakatandaan na ang mga services ay sa firewall mismo tumatakbo kaya ang gagamitin nating CHAIN ay ang INPUT chain.

Isang magandang practice sa kahit anong firewall design ang mag set ng Default policy na DROP

kaya ang unang linya na dapat makita sa ating firewall ay kagaya ng nasa ibaba

iptables -P INPUT DROP

at marapat lang na sundan agad ng pag Flush ng rule para masigurong walang aktibong rule na tumatakbo kapag pinatakbo na natin ang ating firewall. magagawa ito sa pamamagitan ng paggaya sa rule na nasa ibaba.

iptables -F

hindi muna tayo mag seset ng default policy na DROP sa FORWARD at OUTPUT chain dahil tatalakayin din natin yun sa ibang pagkakataon kung saan ang firewall natin ay ginagamit din nating router o gateway ng ating LAN

Sa ibaba nito ay ang pag allow ng mga services isa-isa. tingnan ang halimbawa sa ibaba

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

dito ay gumamit tayo ng mga panibagong opsyon na -p at --dport kung saan ang -p ay tumutukoy sa pangalan ng protocol na sa pagkakataong ito ay tcp habang ang --dport naman ay tumutukoy sa mismong port number na sa pagkakataong ito ay 80.

mapapansin nyo rin na ang opsyon na --dport ay may dalawang gitling (dashes), ito ay sa kadahilanang ito ay tinatawag na sub-options, ibig sabihin, hindi ito magiging available kung hindi gagamitin ang parent module option, samakatuwid ang rule na kagaya ng nasa ibaba ay hindi maaaring gamitin

iptables -A INPUT --dport 80 -j ACCEPT

ito ay mag reresulta sa pagkakamaling kagaya ng nasa ibaba

iptables v1.2.11: Unknown arg `--dport'
Try `iptables -h' or 'iptables --help' for more information.


sinabi niyang "Unknown arg `--dport' dahil hindi nag specify ng parent module option na siyang mag eenable sa --dport na sub-option

pakatandan na isa sa napakaimportanteng pre-requisites sa paggawa ng firewall ay ang kaalaman sa mga standard na port.


kung isusulat nating muli ang firewall rule para magawa natin ang mga requirements ay ganito ang kalalabasan


iptables -P INPUT DROP

iptables -F

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dpor 22 -j ACCEPT



sa tingin nyo ba ay okay na ito? kung ang sagot nyo ay Oo eh nagkakamali po kayo, dahil meron pang isang requirement na hindi pa natin nagagawa. Yun ang ang pag payag sa firewall na makakuha ng updates mula sa internet.

Nag set tayo ng Default policy sa INPUT chain na DROP, ngunit hindi tayo nag set sa FORWARD at OUTPUT chain, ibig bang sabihin nito eh pinapayagang nang makalabas ang packet? Ang sagot ay OO.

Pero kapag nagtangka tayong kumuha ng updates mula sa internet eh hindi tayo makakuha, bakit kaya?

Ganito yan, pinapayagan ng firewall na makalabas ang packet dahil ACCEPT ang default policy sa OUTPUT chain, NGUNIT yung packet na pabalik na yun nga ang mga packet na galing sa internet papunta sa ating firewall ay hindi pinapayagang makapasok dahil ito ay dadaan sa INPUT chain, at dahil ang pabalik na packet ay iba ang port na dadaanan na magsisimula sa port 1025 hanggang 65535 na tinatawag din nating mga "unprivelege port", ito ay hindi papayagan ng ating firewall dahil ang pinapayagan lang na makapasok ay ang packet na ang destinasyon ay ang port na 80, 443, 25 at 22. Paano ngayon yan? hindi naman natin puedeng ibukas ang port magmula 1025 hanggang 65535 dahil ito'y magiging sanhi ng pag ka hack ng ating system dahil marami nang port na bukas.

Ang solusyon ay kailangan nating gawing stateful ang ating firewall. Ano ba ang stateful firewall? Ito ay ang pagpayag sa mga packet na parte na ng existing ng connection (ESTABLIHED) o di kaya'y ng packet na may relasyon na sa existing na connetion (RELATED).

dahil state na ng packet ang pinag-uusapan dito, kailangan na natin ng panibagong modules option na -m na kasunod ang salitang "state" at sub-option na --state at ito ay i aapply natin sa INPUT chain. Tingan ang halimbawa sa ibaba

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


kaya kung kukumpletohin na natin ang ating firewall rule ay ganito ang kalalabasan

iptables -P INPUT DROP

iptables -F

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT





ngayon, kumpleto na ang ating basic na firewall design na kung saan ay limitado lang sa port na 80, 443,25 at 22 ang pinapayagang makapasok.

3 Comments:

At 6:37 PM, Anonymous Anonymous said...

wow!!! nabuhay n ulit ang idol ko.... i am not worthy master.... keep on postin....

penoi alyas boy kislot
penoycentral.blogdrive.com

 
At 8:01 PM, Anonymous Anonymous said...

sir pag ayaw parin gumana yung smtp may iba pa bang dahilan kung bakit ayaw?

ayaw kasi ng akin

 
At 8:43 PM, Blogger jond3rd said...

para hindi gumana ang SMTP is maraming dahilan, ang tanong ko muna, gumagana ba ang SMTP kapag walang firewall? kung gumagana ito, inspeksiyunin monng maigi ang IPTables rules, makakatulong kung idescribe mo sa akin ang iyong network setup.

 

Post a Comment

<< Home