Jumat, 17 April 2015

Instalasi Dan Konfigurasi Squid 2.7 Stable 7 di Ubuntu 10.04

Squid 2.7 Stable 7 adalah versi squid yang sudah termasuk didalam repository Ubuntu 10.04 yang saya gunakan. Saya sengaja menggunakan versi stable 7 karena alasan kemudahan dalam instalasi. Sebenarnya Squid 2.7 Stable 9 memiliki kelebihan yang sangat menguntungkan yaitu dapat menandai paket hit yang berasal dari proxy server (squid) itu sendiri sehingga disaat kita akan mem-bypass paket hit tersebut dari limitasi bandwith (misal menggunakan router mikrotik) maka hal tersebut mudah untuk dilakukan. Namun, untuk permulaan kita akan tetap akan menggunakan Squid 2.7 Stable 7. Informasi lebih jauh mengenai Proxy dapat dibaca disini. Perhatikan perintah berikut ini yang menunjukkan versi Ubuntu yang saya gunakan.

root@proxy:/home/it# lsb_release -d
Description: Ubuntu 10.04.4 LTS

root@proxy:/home/it# lsb_release -c
Codename: lucid

root@proxy:/home/it# lsb_release -r
Release: 10.04

root@proxy:/home/it# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.04.4 LTS
Release: 10.04
Codename: lucid

root@proxy:/home/it# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"

Dan perintah berikut menunjukkan versi Squid beserta parameter-parameter yang dapat anda gunakan disaat melakukan kompilasi Squid secara manual.

root@proxy:/home/it# squid -v
Squid Cache: Version 2.7.STABLE7
configure options:  '--prefix=/usr' '--exec_prefix=/usr' '--bindir=/usr/sbin' '--sbindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--sysconfdir=/etc/squid' '--localstatedir=/var/spool/squid' '--datadir=/usr/share/squid' '--enable-async-io' '--with-pthreads' '--enable-storeio=ufs,aufs,coss,diskd,null' '--enable-linux-netfilter' '--enable-arp-acl' '--enable-epoll' '--enable-removal-policies=lru,heap' '--enable-snmp' '--enable-delay-pools' '--enable-htcp' '--enable-cache-digests' '--enable-underscores' '--enable-referer-log' '--enable-useragent-log' '--enable-auth=basic,digest,ntlm,negotiate' '--enable-negotiate-auth-helpers=squid_kerb_auth' '--enable-carp' '--enable-follow-x-forwarded-for' '--with-large-files' '--with-maxfd=65536' 'i386-debian-linux' 'build_alias=i386-debian-linux' 'host_alias=i386-debian-linux' 'target_alias=i386-debian-linux' 'CFLAGS=-Wall -g -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='

Untuk melihat daftar paket-paket Squid yang dapat diinstall pada Ubuntu, ketikkan perintah dibawah ini.

root@proxy:/home/it# apt-cache search squid
squid-langpack - Localized error pages for Squid
adzapper - proxy advertisement zapper add-on
awffull - web server log analysis program
biosquid - utilities for biological sequence analysis
biosquid-dev - headers and static library for biological sequence analysis
calamaris - log analyzer for Squid or Oops proxy log files
ccze - A robust, modular log coloriser
dansguardian - Web content filtering
ebox-squid - eBox - HTTP Proxy (Cache and Content Filter)
frox - Transparent caching ftp proxy
gadmin-squid - GTK+ configuration tool for squid
gadmin-squid-dbg - GTK+ configuration tool for squid (debug)
gadmintools - GTK+ server administration tools
havp - HTTP Anti Virus Proxy
jesred - A redirector for the Squid proxy
kernel-patch-wrr - Extension to traffic Control/network bandwidth management
libsnmp-session-perl - Perl support for accessing SNMP-aware devices
modlogan - A modular logfile analyzer
polipo - a small, caching web proxy
proxytrack - Build HTTP Caches using archived websites copied by HTTrack
runit-services - a UNIX init scheme with service supervision (services)
sarg - squid analysis report generator
sqcwa - Workaround for Squid not caching some pages
squid-prefetch - Simple page-prefetch for Squid web proxy
squidtaild - Squid log monitoring program
squidview - monitors and analyses squid access.log files
srg - Fast, Flexible and Detailed log analysis for the Squid Proxy
tinyproxy - A lightweight, non-caching, optionally anonymizing http proxy
squid - Internet object cache (WWW proxy cache)
squid-common - Internet object cache (WWW proxy cache) - common files
squid-cgi - Squid cache manager CGI program
squid-deb-proxy - Squid proxy configuration optimized for deb packages
squid-deb-proxy-client - Automatic proxy discovery for apt based on avahi
squid3 - A full featured Web Proxy cache (HTTP proxy)
squid3-cgi - A full featured Web Proxy cache (HTTP proxy) - control CGI
squid3-common - A full featured Web Proxy cache (HTTP proxy) - common files
squid3-dbg - A full featured Web Proxy cache (HTTP proxy) - Debug symbols
squidclient - A full featured Web Proxy cache (HTTP proxy) - control utility
squidguard - filter, redirector and access controller plug for Squid
root@proxy:/home/it# apt-cache search squid2.7
root@proxy:/home/it# apt-cache search squid
squid-langpack - Localized error pages for Squid
adzapper - proxy advertisement zapper add-on
awffull - web server log analysis program
biosquid - utilities for biological sequence analysis
biosquid-dev - headers and static library for biological sequence analysis
calamaris - log analyzer for Squid or Oops proxy log files
ccze - A robust, modular log coloriser
dansguardian - Web content filtering
ebox-squid - eBox - HTTP Proxy (Cache and Content Filter)
frox - Transparent caching ftp proxy
gadmin-squid - GTK+ configuration tool for squid
gadmin-squid-dbg - GTK+ configuration tool for squid (debug)
gadmintools - GTK+ server administration tools
havp - HTTP Anti Virus Proxy
jesred - A redirector for the Squid proxy
kernel-patch-wrr - Extension to traffic Control/network bandwidth management
libsnmp-session-perl - Perl support for accessing SNMP-aware devices
modlogan - A modular logfile analyzer
polipo - a small, caching web proxy
proxytrack - Build HTTP Caches using archived websites copied by HTTrack
runit-services - a UNIX init scheme with service supervision (services)
sarg - squid analysis report generator
sqcwa - Workaround for Squid not caching some pages
squid-prefetch - Simple page-prefetch for Squid web proxy
squidtaild - Squid log monitoring program
squidview - monitors and analyses squid access.log files
srg - Fast, Flexible and Detailed log analysis for the Squid Proxy
tinyproxy - A lightweight, non-caching, optionally anonymizing http proxy
squid - Internet object cache (WWW proxy cache)
squid-common - Internet object cache (WWW proxy cache) - common files
squid-cgi - Squid cache manager CGI program
squid-deb-proxy - Squid proxy configuration optimized for deb packages
squid-deb-proxy-client - Automatic proxy discovery for apt based on avahi
squid3 - A full featured Web Proxy cache (HTTP proxy)
squid3-cgi - A full featured Web Proxy cache (HTTP proxy) - control CGI
squid3-common - A full featured Web Proxy cache (HTTP proxy) - common files
squid3-dbg - A full featured Web Proxy cache (HTTP proxy) - Debug symbols
squidclient - A full featured Web Proxy cache (HTTP proxy) - control utility
squidguard - filter, redirector and access controller plug for Squid

Perhatikan output perintah diatas, terdapat 2 versi Squid. Paket Squid adalah versi 2.7 (Stable 7) sedangkan paket Squid3 adalah Squid Versi 3. Dalam implementasinya, Squid terpecah menjadi 2. Squid 2.7 lebih mengutamakan fungsi web cache, sedangkan Squid 3 lebih mengutamakan / fokus pada web filtering. Untuk menginstall Squid 2.7 Stable 7 di Ubuntu 10.04 ini, ketikkan perintah berikut.

root@proxy:/home/it# apt-get install squid

Setelah selesai menginstall, anda dapat melihat versi squid yang telah diinstall beserta parameter-parameter default yang digunakan dengan perintah "squid -v" seperti diatas. Parameter-parameter tersebut dapat membantu anda jika suatu saat ingin menginstall Squid 2.7 Stable 7 ini dengan cara mengkompilasi source code secara manual.
Baiklah, setelah selesai melakukan instalasi Squid, selanjutnya adalah mengkonfigurasi Squid. Konfigurasi dasar Squid cukup mudah. Ketikkan perintah seperti dibawah ini.

root@proxy:/home/it# cp /etc/squid/squid.conf /etc/squid/squid.conf.asli
root@proxy:/home/it# nano /etc/squid/squid.conf
http_port 3128 transparent
icp_port 0

cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

cache_effective_user proxy
cache_effective_group proxy

cache_mem 512 MB
maximum_object_size 102 MB
maximum_object_size_in_memory 32 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_swap_low 98
cache_swap_high 99

cache_dir aufs /cache-squid2.7 80000 187 256
cache_mgr sysadm@domainku.lcl

visible_hostname proxy.domainku.lcl
unique_hostname proxy@domainku.lcl

acl all src 0.0.0.0/0.0.0.0
http_access allow all

Cukup mudah bukan ?

Parameter-parameter diatas adalah konfigurasi dasar yang dapat menjadikan Squid bekerja optimal sebagai web cache. Disamping sebagai webcache, Squid 2.7 juga dapat digunakan sebagai web filtering dan bandwith limiter. Berdasarkan referensi yang saya dapat, untuk kinerja optimal sebagai web cache maka gunakan Squid 2.7, sedangkan untuk kinerja optimal sebagai web filtering maka gunakan Squid 3.x.
Selanjutnya kita akan membahas parameter-parameter diatas satu-persatu. Yang pertama adalah direktif "http_port 3128 transparent" berarti proxy server akan mendengarkan request dari client melalui port 3128. dan opsi "transparent" akan menjadikan proxy server dapat bekerja sebagai transparent proxy.
Squid biasa digunakan dalam 2 mode yaitu Tranpsarent Proxy dan Direct Proxy. Jika Squid di-set sebagai Direct Proxy, maka seorang administrator harus mengeset secara manual aplikasi-aplikasi pada setiap komputer user agar menggunakan proxy server (ip address proxy server). Sedangkan jika Squid di-set sebagai Transparent Proxy, maka administrator tidak perlu mengeset secara manual aplikasi-aplikasi pada setiap komputer user, administrator cukup melakukan redirect traffic http agar melalui proxy server, hal ini dapat dilakukan disisi router gateway. Kelemahan menggunakan Transparent Proxy adalah tidak dapat digunakan untuk melewatkan traffic https, sedangkan kelebihannya adalah administrator tidak perlu mengeset secara manual satu-persatu komputer user yang ada dalam jaringan, bayangkan jika komputer user berjumlah hingga ratusan unit, tentu ini akan dapat menghabiskan energi si admin jaringan. Sementara kelemahan Direct Proxy adalah si admin jaringan harus menngeset satu-persatu komputer user dalam jaringan, namun kelebihannya proxy dapat digunakan untuk melewatkan traffic https.
Direktif "icp_port 0" menunjukkan bahwa proxy server bekerja sendiri / tidak berhubungan dengan proxy lain. Squid proxy dapat dikonfigurasi secara bertingkat, artinya squid proxy yang satu dapat menghubungi squid proxy yang lain. Untuk saat ini cukup gunakan parameter "icp_port 0", yang berarti Squid Proxy Server yang kita gunakan langsung merespons request dari client dan memforward request client ke web server di internet sesuai dengan permintaan client. Jika anda ingin mengetahui lebih jauh mengenai ICP (Internet Cache Protocol), silahkan baca dibagian "Hirarki Cache" dari link berikut ini.
Kemudian perhatikan ketiga direktif berikut ini.

cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

Ketiganya menunjukkan dimana letak file-file untuk keperluan log yang digunakan squid.

cache_effective_user proxy
cache_effective_group proxy

Dua parameter diatas mendefinisikan bahwa proxy adalah user dan group yang memiliki hak akses untuk Squid. Kemudian perhatikan lagi tiga parameter berikut.

cache_mem 512 MB
maximum_object_size 102 MB
maximum_object_size_in_memory 32 KB

Direktif pertama menunjukkan maksimum ukuran memory tambahan yang akan digunakan oleh Squid untuk keperluan cache dari objek. Semakin besar semakin baik, sesuaikan dengan resource memory / RAM yang anda miliki. Jumlah total memory yang akan digunakan oleh Squid dalam seluruh process-nya akan bergantung dari parameter dibawahnya yang akan kita bahas kemudian.
Direktif kedua (maximum_object_size 102 MB) adalah ukuran maksimum dari objek yang akan disimpan oleh Squid didalam cache-nya (hardisk). Ini berguna untuk meningkatkan kecepatan akses client terhadap content-content di internet yang berukuran hingga 102 MB. Sesuaikan dengan kebutuhan / kondisi jaringan anda.
Direktif ketiga (maximum_object_size_in_memory 32 KB) merupakan ukuran maksimum objek yang akan disimpan oleh Squid didalam memory (RAM). Ini berfungsi untuk meningkatkan kinerja dari Squid. Objek-objek yang berukuran hingga 32 KB akan langsung diambil dari memory. Jika ada client yang me-request object yang berukuran diatas 32 KB, maka Squid akan mencarikannya di hardisk (lokasi cache Squid) kemudian memberikannya ke client jika memang content tersebut tersedia di dalam cache hardisk nya.
Setelah selesai menuliskan parameter-parameter konfigurasi diatas, langkah selanjutnya adalah membuat direktori-direktori cache yang telah dideklarasikan di squid.conf ("/cache-squid2.7") dengan cara mengetikkan perintah berikut ini :

root@proxy:/home/it# squid -z

Kemudian restart Squid :

root@proxy:/home/it# /etc/init.d/squid restart

Sekarang Squid 2.7 Stable 7 sudah siap digunakan sebagai Transparent Proxy. Silahkan konfigurasi router anda agar traffic http dibelokkan ke proxy server. Adapun topology jaringan saya secara umum adalah seperti daftar berikut :

Router Gateway : Mikrotik
IP DMZ : 172.16.16.0/24
IP Proxy Server : 172.16.16.106
IP Clients : 192.168.0.0/16

Maka untuk membelokkan traffic http dari client, saya cukup mengetikkan perintah berikut ini pada router gateway (mikrotik) :

[htadm@GW1] > ip firewall nat add chain=dstnat action=dst-nat to-addresses=172.16.16.106 to-ports=3128 protocol=tcp src-address=192.168.0.0/16 dst-port=80 

Sekarang semua traffic http seluruh user/client sudah di-redirect ke proxy server. Untuk memonitor traffic client gunakan perintah berikut ini :

it@proxy:~$ sudo tail -f /var/log/squid/access.log | ccze

Baiklah, sampai disini dulu tutorial kali ini, mudah-mudahan artikel lanjutan mengenai proxy server dapat dilanjutkan pada lain kesempatan. Amin.

2 komentar:

  1. Gan Untuk Partisi HDD nya gimana ya ???
    maaf sebelumnya masih newbie :D

    BalasHapus
  2. Silahkan lihat disini :

    http://havizul.blogspot.com/2015/05/ubuntu-server-1204-bag-2-instalasi.html

    BalasHapus