Memblokir Situs atau Kata tertentu dengan Squid

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

http://www.17tahun.com

http://www.indonona.com

http://www.facebook.com

http://www.worldsex.com

dll…

~   

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 http://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 http://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 http://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

hasilnya

  1. keren🙂

    • ucup
    • September 24th, 2011

    lalu ada cara untuk menjebolnya?

  2. waaah, keren nih😀
    jangan lupa mampir di blog saya yaa

    • Eli Rujito
    • December 29th, 2011

    Mas Bro…
    Kalau saya mau bikin supaya komputer hanya bisa membuka gmail.com, YM / Yahoo saja bagaimana ya caranya…??
    Mohon pencerahannya…

  3. Mantap Bg. . . .
    makasih bahan jih beh. . . . .

    • jopy
    • September 5th, 2013

    Mas bro tlg bantu saya krmin saya tutorial daftar client melalui terminal ubuntu..tlg mas skrng kta lgi susah..

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: