Masih seputar FreeBSD, kali ini untuk mengakali bandwith dan mempercepat koneksi dengan caching di router, saya memasang proxy dengan squid. Router saya memakai FreeBSD 7.2 stable. Caranya gampang gampang susah, tapi asusmsinya seperti ini:
- Router FreeBSD sudah terkonfigurasi nat dengan baik
- Router menggunakan block ip localnet standar 192.168.xxx.0/24, supaya konfigurasi squid.conf nya ga susah aja. sebenarnya bisa aja bikin acl bru sendiri.
oke langsung aja, yang dibutuhkan adalah paket squid (saya menggunakan squid versi 3 yakni squid-3.0.STABLE14.tar.bz2) versi lain seharusnya ga jadi masalah. Saya menginstall dengan menggunakan ports, kalau dengan cara compile dari source silahkan aja, sama aja.. stepnya :
- Pindah ke directory squid di ports collection:
# cd /usr/ports/www/squid30/
- Install squid dengan perintah:
# make install clean
- Jika paket squidnya belum ada, maka otomatis dia akan mendownload sendiri. kalau mau download manual juga bisa, tinggal masukin ke folder /usr/ports/distfiles/squid3xx/
- Setelah proses install selesai, konfigurasi squid dengan kebutuhan dan sesuaikan dengan network and
# ee /usr/local/etc/squid/squid.conf
- Contoh konfigurasi squid:
acl web src 192.168.2.0/24 #source IP yg boleh konek ke Squid
acl web2 src 192.168.1.0/24 #source IP-2 yg boleh konek ke Squid
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow web
http_access allow web2
http_access deny all
icp_access allow all
http_port 3128 transparent #Squid akan listen di port 3128 dan bersifat transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin ?
cache deny QUERY
cache_mem 64 MB
cache_dir ufs /cache1 7000 16 256 #cache_dir, direktori dimana file2 cache squid disimpan
access_log /var/log/squid/access.log #log buat si squid
cache_log /var/log/squid/cache.log #log buat si squid
cache_store_log none
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mgr admin@proxy.ngarai.com #nama admin squid
cache_effective_user squid
cache_effective_group squid
visible_hostname proxy.ngarai.com #hostname unutk squid
- Selesai konfigurasi, simpan file tersebut. Secara standar nat di freebsd belum dialihkan ke port tertentu, untuk itu buat/edit file untuk konfigurasi nat di /etc/
# cd /etc
# touch ipnat.rules
# ee ipnat.rules
- Tambahkan baris berikut agar nat melakukan redirect ke port squid kita.
rdr rl0 0/0 port 80 -> 127.0.0.1 port 3128 tcp #rl0 adalah nama interface ethernet
- Tambahkan baris berikut di /etc/rc.conf agar ipnat berjalan dengan baik.
ipfilter_enable=”YES”
ipnat_enable=”YES”
ipmon_enable=”YES”
ipfs_enable=”YES”
- Buat directory cache squid dengan perintah:
# squid -z
- Agar squid berjalan pada saat startup tambahkan baris berikut di /etc/rc.local
/usr/local/sbin/squid -sYD
- Restart komputer dan squid sudah berjalan.
Terima kasih
freebsd : 255.255.0.0
mikrotik : 255.255.0.0
192.168.3.1 dan 192.168.2.1 itu berbeda class. jadi harus ‘diakali’ dengan menyamakan subnet. hehehe