Cara Konfigurasi Proxy Untuk Filtering Menggunakan Squid pada Linux Debian

Tuesday, April 28, 2020

PENDAHULUAN
Halo semuanya!!! Salam sobat networkers, bertemu lagi dengan saya di blog ini tentunya. Pada postingan saya kali ini saya akan membahas mengenai Cara Konfigurasi Proxy Untuk Filtering Menggunakan Squid pada Linux Debian. Materi ini juga termasuk dalam kategori debian router karna memiliki lebih dari satu network. Sebelumnya saya sudah posting mengenai debian router pada link dibawah.


Oke tanpa basa-basi lagi, seperti biasanya sebelum lanjut ke konfigurasi mari kita bahas sedikit pengertiannya serta skenario jaringan yang akan kita gunakan terlebih dahu.

Pengertian PROXY dan Squid
Proxy server (peladen proxy) adalah sebuah komputer server atau program komputer yang dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari Internet atau intranet.
Pada umumnya proxy server digunakan untuk mengamankan jaringan komputer pribadi yang terhubung dengan jaringan publik. Jadi, dari proxy server tersebut maka biasanya server diletakkan di antara aplikasi server dengan aplikasi client, dimana aplikasi client berupa web browser, client FTP dan lainnya sedangkan aplikasi server berupa server FTP dan web server.
Fungsi Proxy Server
  1. Fungsi Connection Sharing
  2. Fungsi Filtering
  3. Fungsi Caching
Manfaat Proxy Server
  1. Menghemat Bandwidth
  2. Meninkatkan Kinerja Internet
  3. Memblokir Situs Tertentu
  4. Keamanan Jaringan Komputer
  5. Akses Internet Lebih Cepat
Jenis-Jenis Proxy Server
  1. Anonymous Proxy (Proksi Anonim)
  2. High Anonymity Proxy
  3. Transparent Proxy (Proksi Transparan)
  4. Reverse Proxy
Kegunaan Web Proxy
  1. Menyembunyikan alamat IP komputer
  2. Mengakses situs yang diblokir oleh ISP
  3. Memblokir akses ke situs sensitif atau berbahaya
  4. Menyaring cookies yang tidak diinginkan
  5. Meningkatkan keamanan dan privacy pengguna internet
Squid adalah sebuah daemon yang digunakan sebagai proxy server dan web cache. Squid merupakan salah satu aplikasi yang sangat populer yang dapat kita gunakan untuk membuat proxy server.

Skenario Jaringan
Pada skenario jaringan kali ini saya menggunakan topologi jaringan sebagai berikut.
Pada konfigurasi kali ini kita hanya akan berfokus pada PROXY-SERVER dan Client. Untuk konfigurasi lainya yang dibutuhkan saya tidak akan bahas di sini, sobat bisa baca postingan saya pada link berikut.
 

Tujuan utama dari konfigurasi kita adalah untuk memfilter website yang bisa diakses dan yang tidak bisa diakses, jadi untuk website www.setyasite.com bisa diakses dan untuk website block.setyasite.com akan di blok oleh proxy. Setelah itu kita akan melakukan konfigurasi filtering untuk client/user dimana client/user dengan rentang IP Address 192.168.10.15-192.168.10.20 tidak diperbolehkan mengakses website, selain itu boleh.

LANGKAH KONFIGURASI
Pertama install aplikasi Squid, berikut perintah yang bisa digunakan.
root@PROXY-SERVER:~# apt-get update
root@PROXY-SERVER:~# apt-get install squid -y
root@PROXY-SERVER:~# apt-get install -f

Sebelum melakukan konfigurasi, kita backup terlebih dahulu file konfigurasi squid.conf seperti berikut.
root@PROXY-SERVER:~# cd /etc/squid/
root@PROXY-SERVER:/etc/squid# cp squid.conf{,.backup}

Sekarang kita edit file konfigurasi squid.conf. Cari lalu ubah dan sesuaikan seperti konfigurasi di bawah ini.
root@PROXY-SERVER:/etc/squid# nano squid.conf
#  TAG: cache_mgr
cache_mgr kevin@setyasite.com >>> Cari dengan kata kunci cache_mgr
........
..............
#  TAG: visible_hostname
#Default:
visible_hostname setyasite.com >>> Cari dengan kata kunci visible_hostname
.......
.............
# And finally deny all other access to this proxy
# http_access deny all >>> Cari dengan kata kunci http_access deny all

Masih pada file yang sama, kita akan melakukan konfigurasi sesuai dengan skenario yang telah dijelaskan diatas. Cari lalu ubah dan sesuaikan seperti berikut ini.
acl CONNNECT method CONNECT
>>> Cari dengan kata kunci acl CONNNECT
acl lan src 192.168.10.0/24
acl client_nakal src 192.168.10.15-192.168.10.20
acl block-url dstdomain "/etc/squid/block-url"
http_access deny client_nakal
http_access deny block-url
http_access allow lan

Penjelasan :
acl lan src 192.168.10.0/24 >> kita membuat acl dengan nama "lan" yang merupakan network dari jaringan lokal milik kita.
acl client_nakal src 192.168.10.15-192.168.10.20 >> kita membuat acl  dengan nama "client_nakal" yang berisikan list IP Address yang akan kita block nantinya.
acl block-url dstdomain "/etc/squid/block-url" >> kita membuat acl dengan nama "block-url" disertai parameter letak file yang berisikan list domain yang akan kita blok.
http_access deny client_nakal >> kita membuat http access untuk blok "client_nakal".
http_access deny block-url >> kita membuat http access untuk blok domain yang ada pada "block-url".
http_access allow lan >> kita membaut http access untuk mengizinkan traffic dari network "lan".


Sekarang kita akan membuat file yang berisikan list domain yang akan kita tolak atau blok sesuai dengan konfigurasi acl tadi dengan nama "block-url".
root@PROXY-SERVER:/etc/squid# nano block-url
block.setyasite.com

Terakhir restart service Squid dengan perintah sebagai berikut.
root@PROXY-SERVER:~# service squid restart

Pastikan PROXY-SERVER sudah meresolv ke DNS-SERVER.
root@PROXY-SERVER:~# cat /etc/resolv.conf 
nameserver 10.10.10.1

Pastikan juga client sudah meresolv ke DNS-SERVER dan sudah terkoneksi ke WEB-SERVER.
kevin@client:~$ cat /etc/resolv.conf 
nameserver 10.10.10.1
kevin@client:~$ ping setyasite.com
PING setyasite.com (10.10.10.3) 56(84) bytes of data.
64 bytes from setyasite.com (10.10.10.3): icmp_seq=1 ttl=63 time=0.579 ms
64 bytes from setyasite.com (10.10.10.3): icmp_seq=2 ttl=63 time=0.627 ms
64 bytes from setyasite.com (10.10.10.3): icmp_seq=3 ttl=63 time=0.663 ms
64 bytes from setyasite.com (10.10.10.3): icmp_seq=4 ttl=63 time=1.19 ms
^C
--- setyasite.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3045ms
rtt min/avg/max/mdev = 0.579/0.765/1.192/0.248 ms

PENGUJIAN MENGGUNAKAN MANUAL PROXY

Pertama kita akan setting web browser pada client agar menggunakan proxy yang tadi kita buat. Pergi ke preference lalu pada General cari Network Settings lalu klik Settings.
Pilih Manual proxy configuration dan berikan IP Address dari PROXY-SERVER berserta port yang digunakan (3128 default).
Kita coba mengakses website www.setyasite.com, maka karna kita tidak masukkan ke daftar list pada block-url maka kita bisa mengakses website tersebut.
Dan sekarang coba akses block.setyasite.com maka akan diblok oleh proxy.
Sekarang kita akan melakukan pengujian dari filtering client/user, Ubah IP Address kita menjadi salah satu list IP Address yang akan diblok, seperti contoh disini saya ubah menjadi 192.168.10.17/24.
kevin@client:~$ sudo ifconfig vboxnet0 192.168.10.17/24
kevin@client:~$ sudo route add def gw 192.168.10.1 dev vboxnet0

Coba akses website www.setyasite.com, maka akan ditolak atau diblok karna IP Addresss kita termasuk list IP Address yang diblok pada PROXY-SERVER.
PENGUJIAN MENGGUNAKAN TRANSPARENT PROXY
Selama ini kita masih membuat manual proxy, artinya kita harus konfigurasi manual pada web browser client agar menggunakan proxy yang kita buat. Nah sekarang kita akan konfigurasi Transparent Proxy dimana mau tidak mau client akan dipaksa menggunakan Proxy yang kita buat tanpa konfigurasi manual proxy di web browser client.

Oke pertama-tama edit file squid.conf, cari lalu ubah dan sesuaikan seperti berikut.
root@PROXY-SERVER:~# nano /etc/squid/squid.conf
# Squid normally listens to port 3128
http_port 3128 transparent

Sekarang restart service squid dengan perintah berikut.
root@PROXY-SERVER:~# service squid restart

Selanjutnya kita akan membuat rule firewall nat agar bisa membelokkan atau redirect traffic dengan port 80 ke port 3128. Berikut konfigurasinya.
root@PROXY-SERVER:~# iptables -t nat -A PREROUTING -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
root@PROXY-SERVER:~# iptables-save > /etc/network/iptables

Sekarang kita setting web browser client agar tidak menggunakan layanan proxy apapun.
Sekarang kita akan buktikan dengan mengakses website block.setyasite.com maka tetap saja website tersebut diblok oleh proxy.
PENUTUP
Oke lah sobat segitu dulu pembelajaran kita kali ini, semoga bisa bermanfaat dan mudah dimengerti. Postingan saya tersebut jauh dari kata 'SEMPURNA' jIka ada kesalahan pada postingan saya kali ini saya mohon maaf karna saya juga masih dalam tahap belajar. Jangan lupa berbagi ilmu yang kita bisa kepada orang lain agar kita bisa manjadi manusia yang bermanfaat. Salam sobat networkers.

You Might Also Like

0 comments

Popular Posts