Yow yow yow.. ketemu lagi dengan saya, blum bosen kan? Hihihi.. Pada topik kali ini ingin membahas mengenai transparent proxy. Berhubung saya masih newbie, maka yang akan saya tulis kali ini tentunya yang basic2 ajah.. Hehehe
Tapi sebelumnya, temen2 udah pada tau kan ttg proxy itu sendiri? Oke, kenalan dulu yuk sama makhluk bernama proxy ini (mengutip dari modul praktikum Jaringan Komputer Teknik Informatika UII Yogyakarta *rada promo dikit*).
1. Pengertian Proxy
Secara terminologi istilah proxy dapat diartikan sebagai seseorang/lembaga yang bertindak sebagai perantara atau atas nama dari orang lain/lembaga dalam suatu hal. Namun dalam dunia jaringan komputer, istilah proxy berarti komputer yang berfungsi sebagai perantara antara client dan server dalam jaringan komputer.
2. Fungsi Proxy
Proxy memiliki 3 fungsi utama, yaitu:
a. Firewall
Proxy bekerja pada layer aplikasi (dalam OSI Layer), maka filtering yang dilakukan oleh proxy lebih “cerdas” daripada firewall biasa. Proxy web server dapat mengecek URL dari outgoing request (permintaan akses keluar) untuk halaman web. Dengan kemampuan ini, administrator dapat melarang atau mengizinkan akses ke domain tertentu. Firewall biasa tidak dapat melihat nama domain di dalam pesan tersebut, karena firewall hanya memeriksa header paket data.
b. Gateway
Untuk dapat mengakses internet, sebuah komputer harus memiliki sebuah IP public. Untuk dapat mengakses internet secara bersama-sama dengan menggunakan satu IP public, dibutuhkan sebuah komputer yang memiliki IP public, yang digunakan sebagai gateway komputer-komputer lain. Dalam hal ini, proxy server juga berfungsi sebagai gateway. Server ini mempunyai dua interface, untuk koneksi ke internet dan untuk koneksi ke jaringan lokal.
c. Cache
Fungsi proxy server yang lain adalah untuk web caching. Caching di sini diartikan sebagai penyimpanan internet object (gambar/halaman web) dari suatu website yang sudah pernah diakses, sehingga bila akan mengakses objek yang sama di internet, tidak perlu mengambil dari internet, tetapi cukup dari proxy karena sudah disimpan. Bandwidth yang dipakai pun akan lebih hemat, dan dapat mempercepat akses ke website.
Nah, sampe di sini temen2 udah tau kan kegunaannya makhluk bernama proxy itu.. Sekarang kita kenalan sama aplikasinya yuuuk..
SQUID PROXY
Squid adalah aplikasi untuk proxy yang berjalan di lingkungan sistem operasi *.nix. Namun, dalam perkembangannya ada pula squid yang berjalan di lingkungan sistem operasi Windows.
Konfigurasi Squid
File konfigurasi untuk squid adalah squid.conf yang terletak pada direktori /etc/squid/squid.conf. Beberapa konfigurasi penting dari squid.conf adalah:
- http_port : Mendefinisikan port yang digunakan untuk koneksi dengan client. Defaultnya adalah 3128.
- icp_port : Mendefinisikan port yang digunakan untuk koneksi dengan proxy lain.
- cache_mem : Menentukan besar memori yang digunakan untuk menyimpan objek yang pernah di-download.
- cache_dir : Menentukan direktori penyimpanan objek yang disimpan.
- http_access : Menunjuk alamat-alamat yang diperbolehkan atau tidak untuk mengakses proxy.
- cache_mgr : Alamat Email yang di tampilkan bila proxy tidak dapat menampilkan halaman web yang diminta.
- visible_hostname : Informasi di footer bila proxy tidak dapat menampilkan halaman web yang diminta.
Oke, sekarang gimana to caranya bikin proxy pake squid?? Yuuuk, mari kita sama-sama belajar…
1. Spesifikasi Sistem
Untuk percobaan, saya menggunakan laptop yang selanjutnya kita sebut sbg host karena dlm percobaan ini juga dipakai VMWare yang berisi 2 mesin (guest) di dalamnya.
Host (laptop) :
- Sudah konek ke internet, so pasti IP DNS nya juga udah ada π
- OS : Windows XP
- IP : 10.10.10.2/24
- Gateway : 10.10.10.1
Proxy server :
- OS : Ubuntu Server 8.04 (jadul bet yah.. wkwkwk.. maklum pake CD yang ada ajah, maap2..)
- Squid versi 2.6.18-1ubuntu3.2 (install dari repo)
- Ethernet 1 : mode Bridged (1 jaringan dengan IP ke internet, IP = 10.10.10.3/24; Gateway = 10.10.10.1)
- Ethernet 2 : mode Custom, saya pilih VMNet7 (1 jaringan dengan client lokal, IP = 192.168.231.2/24)
- IP DNS mengikuti IP DNS-nya si host yah…
Client Proxy :
- OS : apa ajah terserah yang penting ada browsernya, klo yg saya pake itu Ubuntu Desktop 9.04 (jadul lagi yah :mrgreen:)
- Browser : saya pake Mozilla Firefox bawaan Ubuntu-nya
- Ethernet : mode Custom, saya pilih VMNet7 biar samaan kayak si Proxy Server (1 jaringan dengan IP lokal-nya proxy server, IP = 192.168.231.3/24; Gateway = 192.168.231.2 –> IP nya si Proxy Server)
- IP DNS-nya jangan lupa diisi mengikuti IP DNS-nya si host.
2. Konfigurasi IP Proxy Server
– Setting IP untuk Proxy server :
# vim /etc/network/interfaces
– Isikan dengan parameter berikut, kemudian simpan.
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 10.10.10.2 netmask 255.255.255.0 gateway 10.10.10.1 # The secondary network interface auto eth1 iface eth1 inet static address 192.168.231.2 netmask 255.255.255.0
– Setting IP DNS di file /etc/resolv.conf
# vim /etc/resolv.conf
Isikan dengan format berikut, kemudian simpan.
nameserver<spasi>ip_dns_anda
– Restart konfigurasi IP network dengan cara :
# /etc/init.d/networking restart
3. Instalasi Squid
Jangan lupa login menjadi root. Berikut merupakan langkah-langkah instalasi squid di Ubuntu :
– Periksa apakah squid sudah terinstal atau belum.
# dpkg -l | grep squid
– Jika belum, install squid melalui apt-get.
# apt-get install squid
4. Konfigurasi squid.conf untuk Transparent Proxy
Kelemahan dari proxy yang konvensional adalah masih harus men-setting di browser yang digunakan oleh user. Apabila user yang ada di jaringan sangat banyak, maka hal ini akan menjadi sesuatu yang merepotkan. Oleh karena itu, maka digunakanlah suatu metode di mana user dipaksa menggunakan proxy tanpa tahu kalau user tersebut mengakses halaman web melalui proxy. Metode ini disebut Transparent Proxy.
Berikut merupakan langkah-langkah konfigurasi squid di Ubuntu :
– Buka file squid.conf dengan teks editor.
# vim /etc/squid/squid.conf
– Lakukan konfigurasi berikut dan simpan.
http_port 3128 transparent icp_port 3130 udp_incoming_address 0.0.0.0 udp_outgoing_address 255.255.255.255 hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin ? no_cache deny QUERY cache_mem 8 MB maximum_object_size 4096 KB cache_dir ufs /var/spool/squid 100 16 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 563 acl Safe_ports port 70 acl Safe_ports port 210 acl Safe_ports port 1025-65535 acl Safe_ports port 280 acl Safe_ports port 488 acl Safe_ports port 591 acl Safe_ports port 777 acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access allow all http_reply_access allow all icp_access allow all cache_mgr webmaster cache_effective_user proxy cache_effective_group proxy visible_hostname ningnong's squid memory_pools on log_icp_queries on coredump_dir /var/spool/squid
– Buat direktori cache
# /usr/sbin/squid -z
– Menjalankan squid agar aktif.
# /etc/init.d/squid start
– Untuk administrasi service dari Squid, berikut cara-caranya :
- Menghidupkan service squid : /etc/init.d/squid start
- Mematikan service squid : /etc/init.d/squid stop
- Apabila ada perubahan konfigurasi, restart service squid dengan cara : /etc/init.d/squid restart, atau dapat dengan perintah : squid -k reconfigure
5. Buat script untuk Transparent Proxy
Berikut langkah-langkah yang dilakukan untuk setting transparent proxy.
– Buat aturan di firewall dengan script berikut. Gunakan teks editor
# vim /etc/squid/script.sh
Isinya adalah sbb :
#!/bin/sh # Squid server IP # Isikan IP Lokal Proxy Server SQUID_SERVER=β192.168.231.2β # Interface connected to Internet # Isikan interface IP yang ke arah internet INTERNET=βeth0β # Address connected to LAN # Isikan network IP Lokal Proxy Server LOCAL=β192.168.231.0/24β # Squid port SQUID_PORT=β3128β # Clean old firewall iptables βF iptables βX iptables βt nat βF iptables βt nat βX iptables βt mangle βF iptables βt mangle βX # Enable forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # Setting default filter policy iptables βP INPUT DROP iptables βP OUTPUT ACCEPT # Unlimited access to loop back iptables βA INPUT βi lo βj ACCEPT iptables βA OUTPUT βo lo βj ACCEPT # Allow UDP, DNS, and Passive FTP iptables βA INPUT βi $INTERNET βm state --state ESTABLISHED,RELATED βj ACCEPT # Set this system as a router for Rest of LAN iptables βt nat βA POSTROUTING βo $INTERNET βj MASQUERADE iptables βA FORWARD βs $LOCAL βj ACCEPT # Unlimited access to LAN iptables βA INPUT βs $LOCAL βj ACCEPT iptables βA FORWARD βs $LOCAL βj ACCEPT # DNAT port 80 request coming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy iptables βt nat βA PREROUTING βs $LOCAL βp tcp --dport 80 βj DNAT --to $SQUID_SERVER:$SQUID_PORT # If it is same system iptables βt nat βA PREROUTING βi $INTERNET βp tcp --dport 80 βj REDIRECT --to-port $SQUID_PORT # DROP everything and log it iptables βA INPUT βj LOG iptables βA INPUT βj DROP
– Jalankan script firewall tsb.
# chmod +x /etc/squid/script.sh # /etc/squid/script.sh
– Restart service squid dengan perintah :
# /etc/init.d/squid restart
6. Konfigurasi di client
Setting terlebih dahulu IP client dengan cara :
– Setting IP untuk client (bisa menggunakan wizard versi GUI ataupun edit file-nya :D)
# vim /etc/network/interfaces
– Isikan dengan parameter berikut, kemudian simpan.
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.231.3 netmask 255.255.255.0 gateway 192.168.231.2
– Setting IP DNS di file /etc/resolv.conf
# vim /etc/resolv.conf
Isikan dengan format berikut, kemudian simpan.
nameserver<spasi>ip_dns_anda
– Restart konfigurasi IP network dengan cara :
# /etc/init.d/networking restart
– Saatnya browsing… Hohoho…
7. Untuk melihat aktivitas client, pada Proxy server jalankan perintah berikut :
# tail -f /var/log/squid/access.log
Sekian dulu yah.. mohon maaf skali klo banyak kekurangannya.. CMIIW.. Ayooo sinauuuu!!! π
Thanks to sumber berikut :
http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html
Pingback: Transparent Proxy… Edisi ACL dan Reporting « senenkliwon
Pingback: Squid Proxy | apangs
Pingback: Web Proxy dengan MikroTik⦠| jhoena cyber
Pingback: Web Proxy dengan MikroTik – mappesona
Pingback: Transparent Proxy Edisi ACL & Reporting – mappesona