Monday, April 12, 2010

Konfigurasi Tranparent Proxy squid 2.4

Pada tutorial sebelumnya, kita sudah mempelajari apa itu squid dan bagaimana cara mengkonfigurasinya dan disertai dengan erbagai macam kasus. Namun, perlu diketahui bahwa jika kita menggunakan konfigurasi tersebut maka kita harus men-setting secara manual setting-an proxy di web browser agar dapat berinternet. Nah, bagaimana jika computer yang harus disetting berjumlah ratusan? Apalagi jika suatu saat ada perubahan IP dan port proxy server yang digunakan, tentu akan sangat merepotkan sekali.

Untuk menyiasati hal tersebut, diperlukan suatu cara agar kita tidak perlu memasukkan secara manual settinga-an proxy yang berlaku yaitu dengan menggunakan transparent proxy. Prinsip kerja transparent proxy adalah sebuah firewall atau redirector lainnya akan menangkap koneksi TCP yang ditujukan ke port tertentu ke port tertentu pada remote host, dan kemudian akan mengarahkan koneksi TCP tersebut ke proxy server lokal. Proxy server menggunakan header HTTP untuk menentukan ke mana proxy akan melakukan koneksi dan request dari mana yang akan di-proxy. Untuk mengaplikasikan transparant proxy, Anda dapat memerlukan aplikasi Iptables. Dengan Iptables, anda cukup membuat rule untuk menangkap trafik yang ditujukan untuk port 80, dan mengarahkan trafik ini ke port dari proxy server (biasanya 3128 atau 8080). Konfigurasi untuk membuat transparent proxy terbagi dua yaitu konfigurasi di dalam server dimana firewall dan squid digabung dan konfigurasi di dalam server dimana firewall dan squid terpisah.

II. Syarat-Syarat Transparent Proxy

Untuk dapat menjalankan transparent proxy, maka syarat-syarat dibawah ini harus terpenuhi:

1. Pastikan proxy sudah terinstal dalam sistem.

2. Pastikan paket dan service iptables sudah terinstal dalam sistem.

3. Squid terkonfigurasi dengan menggunakan port 3128.
III. Konfigurasi transparan Proxy
1. Masuk ke file sysctl.conf di /etc/sysctl.conf dan mengubah nilainya pada bagian ip_forward dari 0 menjadi 1 sehingga akan menjadi seperti berikut:

net.ipv4.ip_forward = 1

Jika sudah selesai, restart network dengan cara:

# sysctl -p

2. Edit file squid.conf, kemudian tambahkan baris dibawah ini pada bagian paling bawah dari file ini:

# transparent proxy
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

3. Lakukan masquerading dengan menggunakan iptables. IP masquerading berguna untuk menghubungkan beberapa komputer yang terkoneksi ke sebuah komputer yang sudah terkoneksi ke Internet agar dapat mengakses ke Internet, atau istilahnya Internet Connection Sharing.

iptables -A POSTROUTING -j MASQUERADE -t nat -s 192.168.0.0/24 -o eth0

Option -o tersebut tolong disesuaikan dengan interface yang terdekat dengan jaringan luar.

4. Selanjutnya arahkan semua permintaan web pada port 80 ke port squid. Untuk kondisi ini, terdapat dua buah opsi. Jika squid dan firewall yang mengarahkan berada pada satu komputer, gunakan perintah ini:

iptables -t nat -p tcp -A PREROUTING -s 192.168.0.0/24 -d 0/0 –dport 80 -j REDIRECT –to-ports 3128

Tapi, Jika Squid dan firewall yang mengarahkan tidak berada pada satu komputer maka ikuti langkah berikut:

5. Misal Squid berada pada komputer yang ber-IP 192.168.0.4 dan port yang digunakan adalah 3128 atau kita sebut saja komputer ini dengan nama squid-box. Dan satunya lagi komputer yang terhubung ke Internet langsung sebagai firewall mempunyai IP 192.168.0.1 kita sebut saja komputer ini dengan nama iptables-box. Dari komputer iptables-box, coba Anda ketikkan perintah berikut untuk mengaktifkan transparant proxy di mesin squid-box.

iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.0.4 -p tcp --dport 80 -j DNAT --to 192.168.0.4:3128
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -d 192.168.0.4 -j SNAT –to 192.168.0.1
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.0.4 -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT

6. Setelah itu, coba amati file access.log di mesin proxy kita yang berada di folder /var/log/squid, lalu ketikkan:

# tail -f access.log

Jika semuanya sudah benar, seharusnya jika ada user yang sedang mengakses web, Anda sudah dapat mengamati prosesnya dari mesin proxy tersebut dan akan terlihat seperti berikut:



Referensi
Jaringan Komputer Teori dan Implementasi Berbasis Linux, Wagito
Ilmukomputer.org

No comments: