IGOS Nusantara dan proxy server squid trik
Bagian ini membahas beragam trik terkait squid dan iptables, anatar lain:
- Membuat skrip iptables untuk redirect
- Perintah iptables jika pakai ppp0
- Blok satu IP
- ... lain-lain
Daftar isi
Konfigurasi Lain
Koneksi langsung ke server lokal
Misal ada dua server lokal:
- Server Web ada di 192.168.0.10
- Server Billing ada di 192.168.0.20
Tambahkan rule
acl server dst 192.168.0.10/255.255.255.255 acl billing dst 192.168.0.20/255.255.255.255 always_direct allow server no_cache deny server always_direct allow billing no_cache deny billing
Koneksi langsung ke domain tertentu
Beberapa situs tidak tampil jika melalui proxy, sehingga perlu memakai koneksi langsung (tanpa proxy).
Misal situs yang perlu akses langsung adalah "bank.co.id"
## ACL dipasang di awal ## ACL agar direct ke bank.co.id acl direct_domain url_regex bank.co.id always_direct allow direct_domain always_direct deny all ## ACL (Contoh lain) di bawahnya acl windowsupdate dstdomain wustat.windows.com acl windowsupdate2 url_regex -i windowsupdate ## ACL Akses acl jaringanku src 192.168.0.0/24 acl hotspot src 10.1.0.0/24 http_access allow !windowsupdate !windowsupdate2 jaringanku http_access allow !windowsupdate !windowsupdate2 hotspot http_access deny all # ...
Skrip iptables
skrip iptables untuk mengatur redirect ke proxy server squid port 3128
Skema Jaringan http://igos-nusantara.or.id/wiki/Skema_Jaringan
#!/bin/sh
# IP proxy server squid SQUID_SERVER="192.168.0.1" # Interface terkoneksi ke Internet INTERNET="eth0" # Interface terkoneksi ke LAN LAN_IN="eth1" # Squid port SQUID_PORT="3128" # Bersihkan firewall lama iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Muat modul IPTABLES untuk NAT dan sukungan IP conntrack modprobe ip_conntrack modprobe ip_conntrack_ftp # Untuk klien ftp win xp #modprobe ip_nat_ftp echo 1 > /proc/sys/net/ipv4/ip_forward # Seting filter default iptables -P INPUT DROP iptables -P OUTPUT ACCEPT # Unlimited access to loop back iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Allow UDP, DNS and Passive FTP iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT # set this system as a router for Rest of LAN iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT # unlimited access to LAN iptables -A INPUT -i $LAN_IN -j ACCEPT iptables -A OUTPUT -o $LAN_IN -j ACCEPT # DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT # if it is same system iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT # DROP everything and Log it iptables -A INPUT -j LOG iptables -A INPUT -j DROP
Interface ke internet pakai ppp0
Atur agar NAT memakai ppp0
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Pengalihan ke IP dan Port
Protokol jenis TCP yg masuk melalui interfaces eth1 dan port 80 akan dialihkan ke IP 192.168.0.1 dan port 3128/PROXY
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
Blok satu IP
Cara blok salah satu IP untuk tidak diperbolehkan mengakses situs facebook.com
Contoh: IP 192.168.0.3 ---> blok koneksi ke facebook.com IP all ---> bolek koneksi ke facebook.com
Pakai squid:
acl bad_ip src 192.168.1.3/32 acl good_ip src 192.168.1.0/24 acl facebook_deny url_regex -i "facebook.com" http_access deny bad_ip facebook_deny http_access allow good_ip
Pakai iptables:
-A PREROUTING -i local_eth -d facebook.com -s 192.168.0.3 -j DROP
Redirect ke SSH Server
Akses ke port 22/TCP yg masuk dari interfcaes ppp0 akan diarahkan ke ip 192.168.0.2 (SSH Server)
# iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 22 -j DNAT --to-destination 192.168.0.2
Blok dan Buka beberapa situs
Buat dan jalankan skrip
cat > /tmp/situs_daftar << EOF.jr facebook.com detik.com yahoo.com EOF.jr
cat > /tmp/situs_blok << EOF.ns #!/bin/sh while read situs do iptables -A PREROUTING -i local_net -s ip_target -d $situs -j DROP done < /tmp/situs_daftar EOF.ns
cat > /tmp/situs_buka << EOF.jr #!/bin/sh while read situs do iptables -D PREROUTING -i local_net -s ip_target -d $situs -j DROP done < /tmp/situs_daftar EOF.jr
Untuk Blok situs
# /tmp/situs_blok
Untuk Buka situs
# /tmp/situs_buka