Blocking facebook di router linux October 9, 2009 Di suatu pagi yang cerah, Yahoo! Messenger saya tiba tiba di 'buzz' oleh seorang teman, kemudian dia mengajukan pertanyaan berikut ; Friend : kang, kantor saya pakai pc router linux os nya fedora 9, koneksi internet pakai ISP XXXXX via wireless, nah ... problemnya nih , saya mau block akses ke www.facebook.com dari user internal, jadi biar mereka ngga bisa fb-an di jam kerja, kalau di luar jam kerja sih biarin aja . Friend : saya pengennya kalau mereka browsing ke fb di arahkan ke www.okezone.com misalnya, nah rule itu diterapkan dari jam 8 pagi sampai jam 4 sore aja, gitu kang, bisa ngga ? Me : client internal di NAT ngga boss ? Me : client internal pakai proxy ngga buat browsing ke internet ? Friend : yoi ... di nat di router, disini ngga pakai proxy abis nambah delay trus ngga safe juga, takut jadi open proxy, soalnya aku males juga setting proxynya . Me : hmmm ... ok, soalnya kalau pakai proxy bisa juga filtering access-list berdasarkan keyword di SQUID nya. Friend : ...oh gitu ya, jadi musti setting proxy yaaa ? Me : ngga juga sih, bisa dengan cara lain Me : bisa coba pakai iptables kok, tambahin script dikit buat timernya Friend : gimana dong kang ... Me : kalau buat blocking via iptablesnya, bisa coba pakai ini iptables -I PREROUTING -t nat -m comment --comment "REDIRECT-FB1-SP8" -p tcp --dport 80 -d 66.220.144.0/20 -j DNAT --to 202.147.200.160 iptables -I PREROUTING -t nat -m comment --comment "REDIRECT-FB2-SP8" -p tcp --dport 80 -d 69.63.176.0/20 -j DNAT --to 202.147.200.160 66.220.144.0/20 dan 69.63.176.0/20 range ip facebook.com yang didapat dari check alokasi ip facebook, paling gampang check dari 'nslookup www.facebook.com' trus tambahin range network nya. 202.147.200.160 ip www.okezone.com
*** penerapan di linux : [rizky@localhost ~]# iptables -I PREROUTING -t nat -m comment --comment "REDIRECT-FB1-SP8" -p tcp --dport 80 -d 66.220.144.0/20 -j DNAT --to 202.147.200.160 [rizky@localhost ~]# iptables -I PREROUTING -t nat -m comment --comment "REDIRECT-FB2-SP8" -p tcp --dport 80 -d 69.63.176.0/20 -j DNAT --to 202.147.200.160 check counter di filternya, dengan command : iptables -vnL PREROUTING -t nat *** penerapan di linux : [rizky@localhost ~]# iptables -vnL PREROUTING -t nat Chain PREROUTING (policy ACCEPT 759K packets, 67M bytes) pkts bytes target prot opt in out source destination 62 3224 DNAT tcp -- * * 0.0.0.0/0 69.63.176.0/20 /* REDIRECT-FB2-SP8 */ tcp dpt:80 to:202.147.200.160 0 0 DNAT tcp -- * * 0.0.0.0/0 66.220.144.0/20 /* REDIRECTFB1-SP8 */ tcp dpt:80 to:202.147.200.160 perhatikan counter pkts (packets) & bytes yang terus bertambah bila ada user yang mencoba akses ke www.facebook.com nah untuk timer nya, tinggal bikin script aja yang dijalankan oleh crontab, gampang kan . Friend : ooh ok ok, thanks kang di coba dulu implementasi nya. Friend : ... kang ... sekaliang dong script untuk timer di crontabnya Me : ...
Bikin file script : vi /usr/local/sbin/tblock.sh
*** isi file dengan scriptnya dibawah ini :
.
#!/bin/sh # # # Waktu awal blocking : TBLOCK_START=11 # Waktu akhir blocking : TBLOCK_END=16 # IP destinasi yang di block DST="66.220.144.0/20 69.63.176.0/20"; # IP pengalihan block RDST="202.147.200.160"; # # set $(date +%H) # # echo "Blocking time start at : $TBLOCK_START, Blocking time stop at : $TBLOCK_END" # if [ "$1" -ge "$TBLOCK_START" -a "$1" -lt "$TBLOCK_END" ] then for r in $DST ; do echo "Blocking $r" iptables -D PREROUTING -t nat -m comment --comment "REDIRECT-FBSP8" -p tcp --dport 80 -d $r -j DNAT --to $RDST 2>/dev/null iptables -I PREROUTING -t nat -m comment --comment "REDIRECT-FBSP8" -p tcp --dport 80 -d $r -j DNAT --to $RDST 2>/dev/null done exit fi if [ "$1" -ge "$TBLOCK_END" -o "$1" -lt "$TBLOCK_START" ] then for r in $DST ; do echo "Unblocking $r" iptables -D PREROUTING -t nat -m comment --comment "REDIRECT-FBSP8" -p tcp --dport 80 -d $r -j DNAT --to $RDST 2>/dev/null done exit fi # # simple script by spikecursed #
trus : chmod 755 /usr/local/sbin/tblock.sh trus masukin di crontab : crontab -e pastekan line berikut pada crontab : * 0-23/1 * * * /usr/local/sbin/tblock.sh Trus jangan lupa atur parameter pada scriptnya yaa. Udah deh ... kan bilangnya cuma simple script masing masing deh.
yang lain tergantung kreativitas