Cara Konfigurasi Proxy Untuk Filtering Menggunakan Squid pada Linux Debian
Linux Tuesday, April 28, 2020
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.
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
- Fungsi Connection Sharing
- Fungsi Filtering
- Fungsi Caching
- Menghemat Bandwidth
- Meninkatkan Kinerja Internet
- Memblokir Situs Tertentu
- Keamanan Jaringan Komputer
- Akses Internet Lebih Cepat
- Anonymous Proxy (Proksi Anonim)
- High Anonymity Proxy
- Transparent Proxy (Proksi Transparan)
- Reverse Proxy
- Menyembunyikan alamat IP komputer
- Mengakses situs yang diblokir oleh ISP
- Memblokir akses ke situs sensitif atau berbahaya
- Menyaring cookies yang tidak diinginkan
- Meningkatkan keamanan dan privacy pengguna internet
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.
BACA JUGA :
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.