Saturday 20 August 2016

Konfigurasi Proxy pada Debian 8.5 dengan menggunakan Squid

Leave a Comment
Assalamualaikum Wr. Wb.
     Hai teman-teman, pada postingan kali ini saya akan share tentang bagaimana cara konfigurasi Proxy pada debian server kita ?. Tapi kalian sudah tahu belum apa itu proxy server ?, jika belum tahu yuk kita pahami pengertian tentang proxy server berikut ini.

A. Pengertian


     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.

     Proxy Server bertindak sebagai gateway terhadap dunia ini Internet untuk setiap komputer klien. Proxy server tidak terlihat oleh komputer klien: seorang pengguna yang berinteraksi dengan Internet melalui sebuah proxy server tidak akan mengetahui bahwa sebuah proxy server sedang menangani request yang dilakukannya. Web server yang menerima request dari proxy server akan menginterpretasikan request-request tersebut seolah-olah request itu datang secara langsung dari komputer klien, bukan dari proxy server.

     Proxy server juga dapat digunakan untuk mengamankan jaringan pribadi yang dihubungkan ke sebuah jaringan publik (seperti halnya Internet). Proxy server memiliki lebih banyak fungsi daripada router yang memiliki fitur packet filtering karena memang proxy server beroperasi pada level yang lebih tinggi dan memiliki kontrol yang lebih menyeluruh terhadap akses jaringan. Proxy server yang berfungsi sebagai sebuah "agen keamanan" untuk sebuah jaringan pribadi, umumnya dikenal sebagai firewall.

B. Latar Belakang

     Sebagai seorang administrator jaringan, kita pasti akan mengelola jaringan kita seoptimal mungkin dan seefisien mungkin. Termasuk mengatur access-access alamat website yang diperbolehkan untuk client. Terkadang kita ingin melakukan pengaturan tentang access-access internet yang digunakan oleh client kita agar jaringan kita dapat dimanfaatkan seoptimal mungkin. Contoh saja dalam bidang kerja seorang staff tidak dierbolehkan untuk mengakses alamat tertentu seperti youtube.com dikarenakan dapat menurunkan produktifitas dari staff tersebut, ataupun anak-anak yang tidak boleh mengakses situs yang bukan untuk umurnya dikarenakan dapat mempengaruhi perkembangan mental dari anak tersebut. Lalu bagaimana cara memfilter-memblok alamat-alamat website yang dituju oleh client kita ?. Caranya adalah dengan melakukan Proxy server pada server kita, dengan adanya proxy server ini kita dapat memblok situs-situs tertentu, pencarian kata-kata tertentu, dan file-file yang didownload.


C. Persiapan Software dan Hardware

  • Koneksi internet
  • Mikrotik RB750
  • 5 kabel straight
  • Switch
  • 1 Debian server sebagai router
  • 1 Server Proxmox sebagai server
  • Access Point 
  • Laptop yang digunakan sebagai client

D. Maksud dan Tujuan

     Kegiatan ini bermaksud agar kita dapat melakukan konfigurasi proxy, memahami fungsi dan cara kerjanya, serta bertujuan agar kita dapat mengelola jaringan kita dengan melakukan filter-filter tertentu terhadap alamat-alamat web yang diakses oleh client kita.  


E. Tahapan Pelaksanaan Kegiatan

1. Buatlah topologinya terlebih dahulu seperti dibawah ini.


2. Pastikan semua perangkat-perangkat yang kita gunakan sudah terhubung, dan client kita sudah mendapatkan koneksi ke internet dengan menggunakan NAT dari debian router. Sedangkan untuk koneksi dari mikrotik ke debian routernya anda dapat membaca postingan saya tentang setting dasar mikrotik, Jika anda belum tahu caranya untuk melakukan NAT pada debian server, anda dapat membaca postingan saya yang dulu di sini.


3. Akseslah server debian anda secara langsung atau dengan menggunakan SSH seperti saya ini. Untuk mengaksesnya melalui SSH, ketikkan perintah "ssh user@ip_server". Contoh "ssh root@192.168.101.1", lalu masukkan password dari user anda.
 

4. Pada debian server anda, lakukan instalasi proxy dengan menggunakan aplikasi squid3. untuk melakukan instalasinya ketikkan perintah "apt-get install squid3".
 

5. Setelah proses instalasi squid3nya selesai, langkah selanjutnya adalah melakuan konfigurasi pada proxy kita dengan melakukan pengeditan file pada /etc/squid3/squid.conf . Ketikkan perintah "nano /etc/squid3/squid.conf" untuk melakukan konfigurasi.

6. Dalam file konfigurasi ini, ada beberapa baris konfigurasi yang akan kita cari yaitu:
  • http_port 3128
  • cache_mgr
  • visible_hostname
  • cache_dir ufs /var
  • cache_mem
  • http_access deny all
  • acl CONNECT
untuk yang pertama kita cari baris konfigurasi http_port 3128, dengan cara tekan Ctrl+W dan ketikkan "http_port 3128" lalu tekan enter.

7. Tambahkan kata "transparent" pada baris konfigurasi tersebut.
 
 

8. Yang kedua carilah baris konfigurasi cache_mgr dengan menekan Ctrl+W dan ketikkan "cache_mgr" lalu tekan enter.

9. Hilangkanlah tanda pagar di depannya dan ubahlah menjadi "cache_mgr email_admin", contoh "cache_mgr smeksa@smkn1kediri.edu".
 

10. Yang ketiga carilah baris konfigurasi visible_hostname dengan menekan Ctrl+W dan ketikkan "visible_hostname" lalu tekan enter.

11. Tambahkan konfigurasi "visible_hostname nama_hostname", contoh "visible_hostname smkn1kediri.edu".

12. Yang ke-empat carilah baris konfigurasi cache_dir ufs /var dengan menekan Ctrl+W dan ketikkan "cache_dir ufs /var" lalu tekan enter.

13. Hilangkan tanda pagar didepan kalimat " #cache_dir ufs /var/spool/squid3 100 16 256"


14. Yang kelima carilah baris konfigurasi cache_mem dengan menekan Ctrl+W dan ketikkan "cache_mem" lalu tekan enter.

15. Hapus tanda pagar didepan kata "# cache_mem 256 MB" dan aturlah besar memorinya sebesar 1/4 RAM.

16. Yang ke-enam carilah baris konfigurasi http_access deny all dengan menekan Ctrl+W dan ketikkan "http_access deny all" lalu tekan enter.

17. Beri tanda pagar (#) didepan baris konfigurasi "http_access deny all".


18. Yang ketujuh carilah baris konfigurasi acl CONNECT dengan menekan Ctrl+W dan ketikkan "acl CONNECT" lalu tekan enter.

19. Setelah anda menemukannya masukan beberapa baris konfigurasi dibawah ini ke bagian bawah “acl CONNECT” :

acl local src 192.168.101.0/24
acl blokir dstdomain "/etc/squid3/domain"
acl blokkey url_regex -i "/etc/squid3/kata"
acl download urlpath_regex \.mp3$ \.avi$ \.mkv$ \.3gp$ \.mp4$

http_access deny blokir
http_access deny blokkey
http_access deny download
http_access allow local



Keterangan :
- acl local src 192.168.101.0/24
membuat acl bernama “local” yang memuat netid 192.168.101.0/24
- acl blokir dstdomain "/etc/squid3/domain"
membuat acl bernama “blokir” yang berisikan domain, dengan daftar domain di file "/etc/squid3/domain" (di sini merupakan situs yang akan diblokir)
- acl blokkey url_regex -i "/etc/squid/kata"
membuat acl bernama “blokkey” yang berisikan kata-kata dengan daftar kata tersebut pada file “/etc/squid/kata” maka link atau lain sebagainya yang mengandung kata tersebut di jaringan akan terblokir
- acl download urlpath_regex \.mp3$ \.avi$ \.mkv$ \.3gp$ \.mp4$ 
membuat acl bernama "download" yang berisikan ekstensi-ekstensi file yang akan dilarang untuk didownload.  
- http_access deny blokir
melarang akses yang menuju ke acl “blokir” (memblokir situs yang didaftar di
("/etc/squid3/domain") sama dengan acl yang bernama blokkey yang saya blok juga
- http_access deny blokkey
melarang akses yang menuju ke acl "blokkey". 
- http_access deny download 
melarang akses yang menuju ke acl "download"  
- http_access allow local 
memperbolehkan akses dari ip yang terdaftar pada acl “local (192.168.101.0/24)

     Simpan dan keluar dari pengaturan proxy tadi dengan menekan CTRL + X, kemudian ketikkan "y" dan tekan enter.

20. Selanjutnya kita akan buat file yang berisikan alamt-alamat domain yang nantinya akan kita blokir dengan mengetikkan perintah "nano /etc/squid3/domain".

21. Isikan nama-nama domain atau alamat website yang ingin diblokir, seperti di bawah ini.

22. Kemudian kita buat file yang berisikan kata-kata pencarian yang nantinya akan kita blokir dengan mengetikkan perintah "nano /etc/squid3/kata".

23. Isikan dengan kata-kata pencarian yang nantinya akan di blokir.

24. Coba check pakah konfigurasi squid anda sudah benar atau belum, dengan mengetikkan perintah "squid -z". jika hasilnya seperti dibawah ini, maka proxi anda sudah berjalan.

25. Restartlah service dari squid3 anda dengan mengetikkan perintah "service squid3 restart ".

26. Agar kita tidak perlu mensetting proxy servernya secara manual pada tap-tiap client, hal yang harus kita lakukan adalah meredirect port 80 (web server) ke port 3128 (port proxy) dengan menggunakan iptables. Jadi nantinya setiap ada request ke web, maka akan dilewatkan proxy server terlebih dahulu. Agar konfigurasi iptables kita bersifat permanen, maka kita harus memasukkan konfigurasinya ke /etc/rc.local. Edit file rc.local dengan perintah "nano /etc/rc.local".

27. Pada rc.local, di atas "exit 0" ketikkan perintah "iptables -t nat -A PREROUTING -p tcp -i eth1 -s 192.168.101.0/24 --dport 80 -j
REDIRECT --to-port 3128
" untuk meredirect port 80 ke port 3128.

28. Agar konfigurasi iptables dapat diterapkan, maka kita perlu mereboot komputer server kita terlebih dahulu dengan mengetikkan perintah "reboot".

29. Kita coba tes proxynya dengan komputer client, pada komputer client saya coba untuk mengakses "www.kaskus.co.id" yang termasuk dalam list blokir tadi. dan hasilnya pasti akan terblokir seperti dibawah ini.

30. Selanjutnya kita coba untuk megetes kata-kata pencariannya, disini saya coba untuk mengakses dengan kata "terlarang" yang tadinya masuk dalam daftar kata yang diblokir. Dan hasilnya juga pasti akan terblokir seperti di bawah ini.


31. Selanjutnya kita coab tes blokir file dwonloadnya, di sini saya akan coba untuk mendownload file yang berekstensi .rar yang tadi masuk dalam daftar ekstensi yang diblokir. Maka hasilnya juga sama, file tidak bisa di download.



F. Referensi
sumber :
https://id.wikipedia.org/wiki/Server_proksi 
+Ebook : Buku Konfigurasi Debian Server_Ver_BLC-Telkom.pdf  
+Ebook : Designing and Implementing Linux Firewalls and QoS.pdf

G. Hasil dan Kesimpulan
     Dengan adanya proxy server ini, kita dapat melakukan pengelolaan terhadap jaringan kita dengan melakukan filter terhadap alamat website yang diakses oleh client. Sehingga hasilnya kita dapat melakukan blok terhadap situs-situs, kata-kata pencarian, download yang biasanya dapat menurunkan produktifitas client kita.

Sekian dari saya, mohon maaf sebesar-besarnya jika terdapat banyak kesalahan dalam postingan saya ^-^ 

Wassalamualikum Wr. Wb.
Read More