SQUID SERVER
------------
by Ronald ( QarBa )
Download packet squid di ftp.nusa.net.id (squid-2.5.STABLE2)
Lakukan pengektrakan file
[root@alif root]# tar xzvf squid-2.5.STABLE2.tar.gz
[root@alif root]# cd squid-2.5.STABLE2
Buat user untuk menjalankan squid nantinya, NO ROOT untuk menjalankannya,
dan jangan beri shell (eq:/bin/bash) thd user yang menjalankanya.
[root@alif root]#useradd -d /usr/local/squid/ -r -s /dev/null squid > /dev/null 2>&1
Ada baiknya bagi serer proxy yang sibuk untuk menaikkan nilai file deskriptor,
#define __FD_SETSIZE 1024 (default, normalnya 10 request/detik)
[root@alif squid-2.5.STABLE2]vi +62 /usr/include/bits/types.h
#define __FD_SETSIZE 8192
[root@alif squid-2.5.STABLE2]# ulimit -HSn 8192
Dan jangan lupa setelah installasi selesai,
silahkan untuk mengkonfigurasi kernel anda agar file deskriptor tsb berguna,
[root@alif root]# vi /etc/sysctl.conf
fs.file-max = 8192
[root@alif root]# sysctl -p /etc/sysctl.conf
Kompilasi dimulai,
[root@alif squid-2.5.STABLE2]#
./configure \
--prefix=/usr/local/squid \
--exec-prefix=/usr/local/squid \
--enable-delay-pools \
--enable-cache-diggests \
--enable-poll \
--disable-ident-lookups \
--enable-snmp
dimana:
--enable-delay-pools: supaya bisa menggunakan pembatasan bandwith
--disable-ident-lookups: mengurasi dos
[root@alif squid-2.5.STABLE2]# make
[root@alif squid-2.5.STABLE2]# make install
Sekarang masuk ke bagian configurasinya
[root@alif root]# vi /usr/local/squid/etc/squid.conf
Saat ini karena masih hangat dengan acl (access control),
Lets Rock `n Roll!!
------------- cut -----------------------------------
http_port 192.168.0.254:3128 #port 3128 dipakai untuk melisten squid di ip tsb
#Parameter ini berfungsi supaya halaman web dinamik tidak masuk ke dalam cache
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
#Parameter cache_mem akan membatasi pemakaian RAM untuk digunakan Squid,
#umumnya pemakaian RAM ini menggunakan aturan sepertiga dari RAM komputer.
#Ukuran file maksimum bisa dibatasi, terutama jika alokasi cache anda tidak
#terlalu besar, sedangkan ukuran minimum file yang dicache bertujuan
#mengefektifkan filesystem dimana biasanya ext2 diformat dengan 4 KB setiap
inode.
cache_mem 20 MB
maximum_object_size 256 KB
minimum_object_size 4 KB
#ACCESS CONTROL
#meblok situs keywords (sex,adult,porn,nude)
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl user src 192.168.0.0/255.255.0.0 #IP LAN
acl porno url_regex -i "/usr/local/squid/etc/porno.txt" #url yang diblok
http_access deny user porno
http_access allow user
http_access deny all
------------- cut -------------------------------------
dan ini kasus pada Warnet merbau mas net
yang hanya mengijinkan beberapa website aja yang boleh, dan lainnya diblok
------------- cut -------------------------------------
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl user src 192.168.0.0/255.255.0.0 #IP LAN
acl NotBad url_regex -i "/usr/local/squid/etc/NotBad.txt" #url yang diijinkan
http_access allow user NotBad
http_access deny all
------------- cut -----------------------------------
sekarang kita akan membatasi download
yang dibatasi ada beberapa file (*.mpeg .wav .mp3) dan lainya
dimana pada configure tadi kita telah mengenable kan option
--enable-delay-pools
--------------- cut ---------------------------------
#Kita tidak ingin membatasi download pada range ip 192.168.0.0-192.168.255.255
acl LAN url_regex -i 192.168.
#Batasi dl pada jenis file berikut
acl extensions url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar
.avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav
#saat ini kita mempunya 2 jenis delay pools
delay_pools 2
#yang pertama kita tidak ingin membatasi dlnya,
#yang kedua akan dibatasi dlnya
delay_class 1 2
#-1/-1 berarti tidak ada batasan untuk delay pools 1
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow LAN
#sekarang delay pools ke 2 yang akan dibatasin
delay_class 2 2
#5000/128000 jumlah bytes untuk seluruh network
#2000/100000 jumlah bytes untuk satu client
#setelah dl mencapai batas maximum 128000 bytes
#maka download akan mandapat -+ 5000 bytes
#
delay_parameters 2 5000/128000 2000/100000
delay_access 2 allow extensions
------------ cut -----------------------------------------
Setelah config file selesai (walaupun hanya potongan saja), distart squid
#/usr/local/squid/sbin/squid -z
#/usr/local/squid/sbin/squid
Untuk memastikan jalan squidnya
#ps ax|grep squid
[root@alif root]# ps ax|grep squid
2106 ? S 0:00 /usr/local/squid/sbin/squid -f
/usr/local/squid/etc/squid.conf
2119 ? D 5:16 [squid]
2332 pts/0 S 0:00 grep squid
Berarti Ok!
dan agar ketika waktu booting squid langsung up,
maka kita letakkan di /etc/rc.local
[root@alif root]#vi /etc/rc.local
/usr/local/squid/sbin/squid -f /usr/local/squid/etc/squid.conf
Ada baiknya kita membuat rotasi untuk log squid,
Hal ini agar partisi squid tidak penuh, dan akan dilakukan per tiap.
[root @alif root]# vi /etc/logrotate.d/squid
/usr/local/squid/var/access.log {
weekly
rotate 5
copytruncate
compress
notifempty
missingok
}
/usr/local/squid/var/cache.log {
weekly
rotate 5
copytruncate
compress
notifempty
missingok
}
/usr/local/squid/var/store.log {
weekly
rotate 5
copytruncate
compress
notifempty
missingok
postrotate
/usr/local/squid/sbin/squid -k rotate
endscript
}
[root@alif root]#iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
Pasti masih banyak yang kurang, jadi harap maklum ya!
Kalo ada salah kirim email aja, kalo ngak tanya mas Wardi, atau Uncle Google
Malam Sabtu di Citr@Net, jam 10.45 - 11.40 WIB
Referensi:
Securing and Optimizing Linux, Gerald Mourani
Uncle Google!
Asumsi squid di set menggunakan port 3128, IP Address Proxy Server=192.168.0.1
Pake DNAT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to
192.168.0.1:3128
Pake REDIRECT
iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 80 -j REDIRECT --to-port
3128
iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 8080 -j REDIRECT
--to-port 3128
Port 443 (https) kalo perlu (?) di-redirect juga.
Kalo untuk restart atau melakukan perubahan confignya
#/usr/local/squid/sbin/squid -k reconfigure ; umumnya kalo kita yg install
atau
#/etc/init.d/squid restart ; di WarNet TheNet, karena pake paket rpm
/usr/local/squid/sbin/squid -k shutdown
/usr/local/squid/sbin/squid -D -f /usr/local/squid/etc/squid.conf
tail -n 10 /var/log/messages
iptables -t nat -A PREROUTING -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE
|