Ang aking unang blog

Sunday, July 23, 2006

Bridge network at IPTables sa Linux

Sa pagkakataong ito ay tatalakayin ko naman kung paano gumawa ng Bridged type na firewall.

Una sa lahat, ano ba ang bridged type na network?

LAN ---- BRIDGE DEVICE ---- ROUTER


sa pagsasalarawan na nasa itaas ay makikita natin an ang posisyon ng bridge device ay naka IN-LINE sa LAN at ROUTER, pero hindi alam ng LAN na may BRIDGE DEVICE sa pagitan niya at ng ROUTER samakatuwid, ang bridge type na firewall ay isang epektibong solusyon kung ayaw mong magpalit ng IP ng router at ng LAN. Tinatawag din ang bridged type na firewall na Transparent Firewall.


Ang mga kinakailangan:
IPTables (siyempre naman)
bridged-utils
Dalawa o higit pang Network Card (siyempre din naman)


Ipagpalagay nating dalawa ang network card ng ating bridge firewall, kinakailangan nating i up ang NIC ngunit hindi natin lalagyan ng IP, bakit? kasi nga bridged firewall ito at hindi niya kailangan ng IP


ifconfig eth0 0.0.0.0 up
ifconfig eth1 0.0.0.0 up

yan, naka up na ang NIC pero walang IP, kapag nag issue ka ng command na ifconfig, ganito dapat ang lalabas

eth0 Link encap:Ethernet HWaddr 00:0B:6A:C5:C2:5D
inet6 addr: fe80::20b:6aff:fec5:c25d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3332563221 errors:0 dropped:0 overruns:0 frame:0
TX packets:3382238062 errors:0 dropped:0 overruns:20 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2729358673 (2.5 GiB) TX bytes:386041953 (368.1 MiB)
Interrupt:10 Base address:0xb800

eth1 Link encap:Ethernet HWaddr 00:04:76:73:3C:2C
inet6 addr: fe80::204:76ff:fe73:3c2c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3377799673 errors:0 dropped:0 overruns:30349 frame:0
TX packets:3314537649 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3566158420 (3.3 GiB) TX bytes:8320849 (7.9 MiB)
Interrupt:5 Base address:0xbc00



ang susunod nating gagawin ay gagawa na tayo ng interface para sa bridge. Gwain lamang ang mga command na gaya ng nasa ibaba

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig br0 up


yung unang hanay ay nagsasabing mag gawa ng bridge interface na ang pangalan ay br0 (puede nyo itong baguhin, nasa sainyo yun)

yung pangalawa at pangatlong hanay ay nagsasabing ang miyembro ng bridged na br0 ay eth0 at eth1

yung pang huli ay nagsasabing i up na ang bridge interface na br0

Sa pagkakataong ito ay dapat na gumagana na ang ating bridged type na setup. para ma test ito ay ikonekta ito ng naka IN-LINE sa LAN at ROUTER dapat ay parang walang nangyari kapag ginawa ito.

Ang mga packet ay dapat na dumaloy na walang problema dahil sa hindi pa naman tayo gumagawa ng mga restriksyon sa ating bridged device.

kung ang mga packet ay dumadaloy ng maayos, oras na para gumawa ng mga rules na maglilimita sa pagdaloy ng packet.


kung paano gumawa ng rules ay basahing muli ang aking isinulat patungkol sa IPTables

huwag kalimutang i enable ang ip forwarding

echo "1" > /proc/sys/net/ipv4/ip_forward




Hanggang sa muli.

Tuesday, July 11, 2006

Transparent Proxy at IPTables

marami ang nagtatanong kung paano ba ang gumawa ng isang transparent na proxy. Marami nang mga documents na nagkalat sa internet kung paano ito gawin pero wala lang gusto ko lang itong ilagay.

Simulan na natin.

Ang mga kinakailangan:
Squid - karamihan malamang ay sasangayon sa akin kapag sinabi kong ito ang pinaka popular na proxy server na open source.
IPTables - kung paano ito gamitin eh basahin nyo lang ang blog ko, may isinulat na akong tutorial tungkol dito.


Sa palagay ko ay hindi ko na kailangang talakayin kung paano mag install ng squid at IPTables dahil kung hindi kayo marunong nun eh malaki ang problema nyo.

simulan natin sa pagconfigure ng squid

buksan ang squid.conf na file at ilagay ang mga impormasyong kagaya ng nasa ibaba


httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on



then mag lagay lang ng rule na mag redirect ng http traffic sa squid port


iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


sa senaryong ito ay pinapalagay na ang gateway ng mga client ay ang proxy server mismo

ang kinakailangan na lang gawin ay paandarin ang squid at i test na ang mga client.


PAANO NAMAN KUNG ANG PROXY AT IPTABLES AY MAGKAIBANG MAKINA, POSIBLE BA??

wag kag sumigaw, ang sagot sa tanong mo eh posible.

May dalawang approach para magawa ito, una:

sa IPTables na makina, maglagay lamang ng IPTables rules na kagaya ng mga sumusunod:
iptables -t nat -A PREROUTING -i eth0 -s ! IP_NG_SQUID -p tcp --dport 80 -j DNAT --to IP_NG_SQUID:3128
iptables -t nat -A POSTROUTING -o eth0 -s IP_NG_NETWORK -d IP_NG_SQUID -j SNAT --to IP_NG_IPTABLES


Tandaan: ang nasa itaas na approach eh hindi gumagana sa iba, wag nyo akong tanungin kasi hindi ko rin alam kung bakit

Pangalawang approach:
mangangailangan tayo ng tools na part ng iproute2 na package,normaly ay kasama na ito sa inyong linux distribution.

gawin lamang ang mga sumusunod na commands sa IPTables na makina

iptables -t mangle -A PREROUTING -j ACCEPT -p tcp --dport 80 -s IP_NG_SQUID
iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -p tcp --dport 80
ip rule add fwmark 3 table 2
ip route add default via IP_NG_SQUID dev eth0 table 2
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


kung may problema o nais nyo pa ng mas maraming impormasyon ay sumangguni na lamang sa link na ito

http://www.tldp.org/HOWTO/TransparentProxy.html



yun lang at maraming salamat. Hanggang sa muli