24 Des 2008

Install Squid Di Fedora

Download dan simpan, misalnya di /home/user.

/home/user@ wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE16.tar.bz2

* Akses sebagai root

/home/user@ su -l root

Setelah password yang dimasukkan benar maka anda sudah sebagai root

* Buat direktori untuk menyimpan cache dan user owner squid:

squid# mkdir /cache1
squid# useradd -d /cache1 -r -s /dev/null squid >/dev/null 2>&1
squid# groupadd squid

Untuk penamaan direktori penyimpanan cache ini bisa apa saja, dan sebaiknya dibuat pada saat proses instalasi sistem dengan membagikan partisi secara terpisah dari filesystem. Umumnya saya membuat lebih dari satu partisi untuk cache tersebut.

* Ubah kepemilikan dir cache yang sudah kita buat ke squid user yang baru kita buat sebelumnya.

squid# chown -R squid:squid /cache1

Gunakan juga command di atas untuk mengubah kepemilikan bila mempunyai lebih dari satu cache directory.

* Decompress source file:

squid#cd /home/user
squid# tar -xvf squid-2.6.STABLE16.tar.bz2
squid# cd squid-2.6.STABLE16

* Langkah berikutnya adalah meng-compile source:
Konfigurasi 1

./configure --prefix=/usr/local/squid --enable-storeio=aufs,diskd --enable-removal-policies=heap --enable-icmp --enable-delay-pools --enable-kill-parent-hack --enable-snmp --enable-arp-acl --enable-htcp --enable-cache-digests --enable-linux-transparent --enable-large-cache-files --enable-truncate --enable-stacktraces --enable-follow-x-forwarded-for --disable-ident-lookups

Konfigurasi 2 ( untuk tune up maksimal)

./configure --prefix=/usr/local/squid --enable-async-io=24 --enable-aufs-threads=24 --enable-storeio=aufs --enable-removal-policies=heap,lru --enable-icmp --enable-delay-pools --enable-snmp --enable-htcp --enable-cache-digests --enable-linux-transparent --enable-large-cache-files --enable-truncate --enable-stacktraces --enable-follow-x-forwarded-for --with-maxfd=16384 --enable-poll --bindir=/usr/sbin --libexecdir=/usr/lib/squid --disable-ident-lookups --enable-default-err-languages=English --enable-err-languages=English

Keterangan mengenai kegunaan options di atas selengkapnya dapat dibaca di Squid FAQ.

squid# make && make install

* Buat direktori log, misalnya di /usr/local/squid/logs/

squid# mkdir -p /usr/local/squid/var/logs/

* Buat file logs untuk squid

squid# touch /usr/local/squid/var/logs/access.log
squid# touch /usr/local/squid/var/logs/cache.log
squid# touch /usr/local/squid/var/logs/store.log

* Ganti kepemilikan direktori log ke squid:

squid# chown squid:squid /usr/local/squid/var/logs/

* Ganti kepemilikan file log ke squid:

Squid# chown –R squid:squid /usr/local/squid/var/logs/

* Ubah permission direktori log dan cache, agar dapat ditulisi oleh user squid.

squid# chmod 777 /cache1

Ubah juga permission di semua direktori cache yang lain, apabila lebih dari satu direktori cache.

squid# chmod 777 /usr/local/squid/var/logs

hapus squid.conf
squid# touch squid.conf

2. Konfigurasi Squid

Sampai pada langkah di atas, proses instalasi Squid sudah berhasil jika sebelumnya tidak terdapat kesalahan. Untuk membuat Squid dapat berfungsi secara optimal, kita harus mengedit file konfigurasi yang disediakan oleh Squid, umumnya file konfigurasi Squid adalah squid.conf. Bila anda butuh bantuan mengenai optimasi Squid ini, silakan kunjungi Forum Komunitas Linux Indonesia. Teman-teman di forum tersebut akan senang membantu permasalahan anda.

Tutorial ini tidak akan membahas baris per baris keterangan yang terdapat di file squid.conf. Contoh squid.conf yang biasa saya gunakan dapat anda akses di arsip File Konfigurasi Squid

3. Membuat Swap dan Menjalankan Squid

Gunakan command berikut untuk membuat swap:

squid# /usr/local/squid/sbin/squid -z

Jika terdapat kesalahan pada pembuatan swap, perhatikan dengan baik pesan error dan kemudian edit file squid.conf. Setelah selesai mengedit squid.conf dan menyimpan perubahan tersebut, lakukan lagi perintah pembuatan swap diatas.
Bila tidak ada kesalahan pada file konfigurasi, lanjutkan dengan mengaktifkan daemon Squid dengan command:

squid# /usr/local/squid/sbin/squid -YD

Selamat, anda sudah berhasil menginstalasi dan mengkonfigurasi Squid sebagai proxy server. Langkah selanjutnya adalah mengkonfigurasi rule firewall untuk memungsikan squid sebagai transparent proxy.

Untuk melihat akses klien ke squid, gunakan perintah

squid# tail -f /usr/local/squid/logs/access.log

Untuk melihat kesalah pada saat menjalankan squid, gunakan perintah

squid# tail -f /usr/local/squid/logs/cache.log

4. Transparent Proxy dengan iptables

Bila menggunakan iptables untuk konfigurasi transparent proxy, sebaiknya pada saat kompilasi Squid menyertakan opsi –enable-linux-netfilter.

Pengguna iptables, jalankan command berikut:

squid# iptables -t nat -A PREROUTING -s 192.168.1.0/24 -d 0/0 -p tcp –dport 80 -j REDIRECT –to-ports 3128

squid# iptables-save > /etc/sysconfig/iptables

Pada kebanyakan distro Linux, command kedua berfungsi untuk menyimpan command iptables sebelumnya agar saat booting, konfigurasi transparent proxy tetap aktif. Bagi pengguna Linux yang tidak menyimpan file konfigurasi firewall di direktori /etc/sysconfig silakan untuk menyesuaikan sendiri.

================= Squid.conf =========================================
#tambahkan menjadi "http_port 3128 transparent" untuk transparent proxy
#kalau anda tidak suka port 3128 sebagai port default proxy silahkan ganti
http_port 3128
icp_port 3130
#cache peer di set ke proxy yang kita tuju contoh parent proxy seperti berikut ini
#cache_peer 202.111.222.33 parent 7001 3130 no-query default
udp_incoming_address 0.0.0.0
udp_outgoing_address 255.255.255.255
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
#cache memory silahkan tentukan sendiri
#apabila anda menggunakan proxy server untuk keperluan yang lain maksimal memori = 1/4 total memori
cache_mem 128 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 10240 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 8 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
cache_replacement_policy lru
memory_replacement_policy lru
#sesuaikan ukuran cache anda disini contoh disini pakai 1Gb
cache_dir ufs /cache1 1000 16 256
cache_access_log /usr/local/squid/logs/access.log
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log
mime_table /usr/local/squid/etc/mime.conf
pid_filename /usr/local/squid/logs/squid.pid
debug_options ALL,1
client_netmask 255.255.255.255
ftp_user Squid@
ftp_list_width 32
ftp_passive on
ftp_sanitycheck on
ftp_telnet_protocol on
unlinkd_program /usr/local/squid/libexec/unlinkd
redirect_children 10
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
negative_ttl 5 minutes
connect_timeout 1 minute
read_timeout 15 minutes
request_timeout 5 minutes
persistent_request_timeout 1 minute
client_lifetime 5 day
pconn_timeout 120 seconds
shutdown_lifetime 30 seconds

#Recommended minimum configuration:
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 563
acl Safe_ports port 80 # http
acl Safe_ports port 81 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
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 Safe_ports port 4461
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#atur dan sesuaikan dengan ip berapa saja yang ingin anda kasih akses ke proxy
#disini di contohkan 192.168.0.1/24 atau 192.168.0.1 - 192.168.0.255
acl our_networks src 192.168.0.1/24
http_access allow our_networks
http_access deny all
http_reply_access allow our_networks
http_reply_access allow all
icp_access allow all
miss_access allow all
#sesuaikan dengan mail admin proxy anda
cache_mgr admin@proxy.com
visible_hostname proxy.rre-net.com
#limit download file
acl donlot url_regex -i ftp .exe$ \.cab$ \.mp3$ \.rm$ \.mpg$ \.mpeg$ \.dat$ \.avi$ \.zip$ \.iso$ \.rar$ \.wmv$ \.mp4$ \.3gp$
delay_pools 1
delay_class 1 1
delay_parameters 1 2048/200000
delay_access 1 allow donlot
delay_access 1 deny all
cache_effective_user squid
cache_effective_group squid
logfile_rotate 10
buffered_logs off
error_directory /usr/local/squid/errors/English
snmp_port 3401
snmp_access allow localhost
snmp_access deny all
snmp_access deny all
coredump_dir /cache1
ie_refresh on