Squid adalah salah satu aplikasi HTTP proxy server. Squid mendukung SSL,kontrol akses yang extensif dan loging permintaan penuh. Dengan menggunakan ukuran berat internet cache protokol, squid dapat disusun dalam sebuah hierarki untuk pengaturan bandwidth. Squid dapat melakukan berbagai filtering untuk membatasi akses internet komputer-komputer client, misalnya: mengeblok situs-situs tertentu (domain, url, ip address), membatasi waktu akses, membatasi file-file download (memblok filetype tertentu, membatasi bandwidth). Squid juga memiliki kemampuan web caching. Web caching akan meningkatkan response time koneksi HTTP, dan meningkatkan efisiensi bandwidth HTTP.
Dalam percobaan membangun proxy server dengan squid ini saya menggunakan Linux centos 5.3. supaya pembaca tidak binggung nantinya saya jelaskan nantinya saya akan melakukan remote ke server centos melalui linux ubuntu. makanya nanti jangan heran kok tampilan linux centos mirip ubuntu… hehe… tapi walau remote melalui ubuntu akan tetapi kita bekerja di server yang menggunakan linux centos.
Topologi yang digunakan di sini adalah seperti gambar berikut ini:
Untuk memastikan ip seperti topologi di atas atau lebih jelasnya dapat dilihat dengan mengetik perintah ifconfig dengan terlebih dahulu masuk sebagai root pada command line yang berada system operasi linux centos yang digunakan di sini.
root@hacker ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:30:18:A9:99:CF
inet addr:10.10.10.179 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::230:18ff:fea9:99cf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:31155 errors:0 dropped:0 overruns:0 frame:0
TX packets:8117 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5138483 (4.9 MiB) TX bytes:1845503 (1.7 MiB)
Interrupt:233
eth1 Link encap:Ethernet HWaddr 00:1B:11:F1:4A:F6
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21b:11ff:fef1:4af6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8846 errors:0 dropped:0 overruns:0 frame:0
TX packets:8183 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1752022 (1.6 MiB) TX bytes:3524733 (3.3 MiB)
Interrupt:225 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope: Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:76 (76.0 b) TX bytes:76 (76.0 b)
Dari hasil diiatas dapat diketahui ip komputer server eth0 adalah 10.10.10.179 dan eth1 adalah 192.168.1.1.
Instalasi Squid
Apabila terkoneksi ke internet menginstall squid sanggatlah mudah yaitu membuka command line dengan masuk sebagai root, kemudian menjalankan perintah berikut:
[root@hacker ~]# yum –y install squid.
Seandainya tidak terhubung ke internet atau gagal maka harus dilakukan instalasi secara manual dengan mendownload dari komputer yang terhubung ke internet. Jika proses instalasi sudah selesai selanjutnya mengonfigurasikan di /etc/squid/squid.conf.
Sebelumnya jika anda ingin mengetahui squid versi apa yang digunakan dalam membangun proxy server ini maka dapat diketahui jelas dengan mengetikkan perintah di terminal atau command line.
[root@hacker ~]# squid -version
Squid Cache: Version 2.6.STABLE21
Dari hasil di atas dapat diketahui bahwa aplikasi squid yang digunakan untuk proxy server ini adalah squid versi 2.6.STABLE21.
Memblokir Situs Terlarang dan Kata Terlarang
Sebelumnya harus dibuat dulu suatu dokumen atau file yang berisikan list-list url ataupun kata-kata yang akan diblok. Dalam hal ini nama domain yang akan diblok juga dapat di gabung dengan kata-kata yang akan diblok. Antara nama domain dan kata-kata yang akan diblok bisa dibuat dalam satu file namun bisa juga dipisahkan antara nama domain dan kata-kata yang akan di blok dengan membuat file lain. Namun dalam hal ini nama domain dan kata-kata terlarang yang akan diblok dibuat dalam satu file dengan nama porno.txt dengan mengetikkan perintah sebagai berikut:
# vi /etc/squid/porno.txt
Kemudian isikan file dengan URL (nama domain) atau dengan kata-kata yang akan diblok seperti di bawah ini.
[root@hacker ~]# vi /etc/squid/porno.txt
seks
memek
gay
adult
www.17tahun.comwww.indonona.comwww.facebook.comwww.worldsex.comdll…
~
Untuk memudahkan daftar kata-kata porn dan noporn dapat di download di internet seperti di situs
http://web.onda.com.br/orso/sxcontrol.html. Sehingga tidak perlu menuliskan satu per satu kata-kata tersebut.
Berikan perintah squid pada file Squid.conf dengan perintah :
acl porno url_regex -i “/etc/squid/porno.txt dalam hal ini memfilter keyword yang dimasukkan oleh para pengguna, misalkan pengguna memasukkan kata ’seks’ di google maka Squid akan membloknya begitu juga dengan nama situs tersebut. Lengkapnya sebagai berikut:
[root@hacker ~]# vi /etc/squid/squid.conf
http_port 3128 transparent
icp_port 0
cache_mem 64 MB
maximum_object_size 256 KB
maximum_object_size_in_memory 4 KB
cache_dir ufs /var/spool/squid 5000 16 256
memory_pools_limit 32 MB
redirect_rewrites_host_header off
#replacement_policy GDSF
half_closed_clients off
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
emulate_httpd_log on
log_ip_on_direct on
#——————————————-
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl lan src 192.168.1.0/255.255.255.0
acl Safe_ports port 80 443 210 119 563 70 21 1025-65535
acl porno url_regex -i “/etc/squid/porno.txt”
acl CONNECT method CONNECT
http_access deny porno
http_access allow lan
http_access allow localhost
#http_access deny porno
http_access deny !Safe_ports
http_access deny CONNECT
http_access deny all
#—————- administration info ————
cache_mgr munawir
cache_effective_user squid
cache_effective_group squid
visible_hostname bpde
log_icp_queries off
cachemgr_passwd mypassword all
forwarded_for off
#red_logs on
“/etc/squid/squid.conf” 40L, 1126C
[root@hacker ~]# squid -k reconfigure
Bila tidak terjadinya error berarti squid.conf yang telah dibuat sudah benar.Selanjutnya jalankan service squid.
[root@hacker~]#service squid restart
[root@hacker~]#chkconfig squid on
Secara default squid berjalan pada port 3128, untuk memastikan squid sudah jalan maka cek dengan perintah berikut :
[root@hacker ~]#netstat -tulpn | grep 3128
Hasilnya:
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 2900/(squid)
Selanjutnya melakukan setting Proxy pada web browser user
Kemudian cobalah tes koneksi ke internet dari komputer 192.168.1.1 misalnya dengan tujuan
www.google.co.id. apabila google terbuka maka proxy sudah berjalan selanjutnya tinggal menambahkan konfigurasi seperti yang diinginkan.
Cara lain untuk memudahkan dan tidak diperlukan settting pada browser di setiap komputer client yaitu dengan membuat transparansi proxy. Transparansi proxy adalah sentralisasi konfigurasi proxy pada sebuah jaringan komputer local. Dengan transparansi proxy maka semua browser pada Komputer client di jaringan tidak perlu di setting satu persatu untuk menggunakan proxy server atau dengan kata lain semua client otomatis akan melewati squid. Langkah pertama menambahkan baris berikut pada squid.conf
http_accel_host virtual
http_accel_port 80
http_accel_with_proxy on
http_accel_uses_host_header on
Langkah selanjutnya menambahkan pada /etc/rc.local:
iptables –t nat –A PREROUTING –i eth1 –p tcp –dport 80 –j REDIRECT –to-port3128
Perintah di atas ditulis di dalam satu baris. Dalam membangun jaringan ini eth1 dihubungkan ke jaringan local dan jika yang terhubung ke jaringan local eth0 maka ganti eth1 dengan eth0 pada perintah di atas.
jalankan etc/rc.local dengan mengetikkan:
[root@hacker ~]# etc/rc/local
kemudian merestart squid dengan menjalankan perintah:
[root@hacker ~]# squid -k reconfigure
Pada komputer client harus dipastikan default gateway mengarah pada Squid Ip Proxy Server, dengan demikian maka seluruh komputer client yang menjadikan squid proxy server sebagai default gateway akan menggunakan transparent proxy
Sekarang akan dilakukan pengujian terhadap proxy yang telah dibuat sebelumnya yaitu dengan mengunakan squid. Buka web bowser, selanjutnya mengakses ke situs
www.facebook.com. Ternyata proxy yang telah dibuat sudah berhasil yaitu situs
www.facebook.com yang telah diblok berhasil terblokir sehingga user/client tidak bisa lagi membuka situs tersebut. hasilnya dapat di lihat seperti gambar di bawah ini:
bisa juga dilihat dengan perintah
[root@hacker ~]# tail -f /var/log/squid/access.log
192.168.1.248 – - [26/Aug/2009:12:01:58 +0700] “GET
https://www.facebook.com/notifications.php HTTP/1.1″ 403 1419 TCP_DENIED:NONE
192.168.1.248 – - [26/Aug/2009:12:02:40 +0700] “POST
https://apps.facebook.com/ajax/chat/buddy_list.php HTTP/1.1″ 200 877 TCP_MISS:DIRECT
sedangkan proxy untuk kata yang dilarang atau yang difilter
Sumber:
http://munawiraceh.wordpress.com/2011/06/24/memblokir-situs-atau-kata-tertentu-dengan-squid/