08 Januari 2012

Malas memahami ipfw(8)

Setelah otak atik, bahkan sampe switch untuk redirect packet untuk proxy-squid via packet filter OpenBSD, akhirnya ketemu juga cara yg lebih efesien/efektif, intinya "Terlalu malas untuk memahami man page ipfw(8)" :-(. Berikut salah satu study-casenya:
${fwcmd} add 30 fwd ${ipproxy},${portproxy} tcp from ${ipclproxy} to any dst-port ${porthttp} in via ${ifint0}
${fwcmd} add 52 pipe 2 ip from any to ${ipclient} via ${ifint0}
${fwcmd} add 53 pipe 3 ip from ${ipclient} to any via ${ifint0}
${fwcmd} pipe 2 config bw ${bwcldown} mask dst-ip 0xffffffff
${fwcmd} pipe 3 config bw ${bwclup} mask src-ip 0xffffffff
Kendala dengan ruleset spt diatas adalah traffic control loss artinya traffic yg lewat transparent proxy gak kena limit. Jika saya tuker ruleset diatas menjadi:
${fwcmd} add 52 pipe 2 ip from any to ${ipclient} via ${ifint0}
${fwcmd} add 53 pipe 3 ip from ${ipclient} to any via ${ifint0}
${fwcmd} pipe 2 config bw ${bwcldown} mask dst-ip 0xffffffff
${fwcmd} pipe 3 config bw ${bwclup} mask src-ip 0xffffffff
${fwcmd} add 70 fwd ${ipproxy},${portproxy} tcp from ${ipclproxy} to any dst-port ${porthttp} in via ${ifint0}
Kendalanya adalah traffic yg lewat kena limit tetapi transparent proxynya tidak jalan. Nah, dilematis memang jika running dalam satu masin yang sama. Cara yg ampuh adalah ngeset sysctl variable net.inet.ip.fw.one_pass=0, dengan ini artinya "paket yg masuk melalui dummynet/pipe
akan diterukan ke rule berikutnya.", jadi tetep rule dummynet harus sebelom rule transparent proxy ( Ruleset no 2 ). ( Big Thank To: Ian Smith ).

Tidak ada komentar: