Sabtu, 07 Januari 2012

PROXY pada DEBIAN

PROXY
Pengertian Proxy
Proxy adalah sebuah fungsi/tugas yang dijalankan suatu perangkat jaringan, biasanya
Sebagai perantara antara client dan server. Lebih ditujukan untuk mengatur akses client ke
server. Jadi Proxy berarti fungsi. Ada beberapa jenis proxy, ada web proxy, ada irc proxy dan
lain-lain.
Sedangkan Squid adalah sebuah software yang dapat menjalankan fungsi proxy di mesin
Linux (pada umumnya), squid merupakan aplikasi server yang stabil dengan performance
yang tinggi, selain itu bersifat open source, dan juga merupakan aplikasi web proxy yang
fleksibel untuk digunakan sebagai web cache.

1. Secara umum fungsi atau kegunaan Squid dapat dibagi ke dalam dua fungsi penting,
yaitu:
Pertama, Squid server menerima permintaan-permintaan halaman (object) web dari Proxy adalah sebuah fungsi/tugas yang dijalankan suatu perangkat jaringan, biasanya
sebagai perantara antara client dan server. Lebih ditujukan untuk mengatur akses client ke
server. Jadi Proxy berarti fungsi. Ada beberapa jenis proxy, ada web proxy, ada irc proxy dan
lain-lain.
Sedangkan Squid adalah sebuah software yang dapat menjalankan fungsi proxy di mesin
Linux (pada umumnya), squid merupakan aplikasi server yang stabil dengan performance
yang tinggi, selain itu bersifat open source, dan juga merupakan aplikasi web proxy yang
fleksibel untuk digunakan sebagai web cache.
1. Secara umum fungsi atau kegunaan Squid dapat dibagi ke dalam dua fungsi penting,
yaitu:
Pertama, Squid server menerima permintaan-permintaan halaman (object) web dari
client dan mengambilkan halaman (object) web untuk diberikan kepada client. Oleh
karena itulah Squid berlaku sebagai Proxy.
2. Kedua, Squid server menyimpan dan memberikan halaman-halaman (objects) web
yang diminta client dari media penyimpanan lokal (local disc) setelah suatu
permintaan yang pertama kali terhadap halaman (object) web terpenuhi, sehingga
permintaan yang sama terhadap halaman web tersebut berikutnya tidak perlu diambil
secara langsung ke website server melainkan dapat diambil dari halaman (object) web
yang telah tersimpan di local disk. Hal inilah yang sering disebut dengan fungsi
“caching” dan disebut web cache.
Jadi Proxy adalah sebuah fungsi, sedangkan squid adalah software yang menjalankan.
fungsi proxy.

Proxy server adalah komputer server dan/atau program komputer yang dapat bertindak
sebagai komputer lainnya, fungsinya untuk melakukan request terhadap
content/halaman/objek dari Internet atau intranet.
Proxy Server bertindak sebagai gateway ke dunia Internet untuk setiap komputer klien, Proxy
server tidak terlihat (software) oleh komputer klien. Jadi jika seorang pengguna yang
berinteraksi dengan Internet melalui sebuah proxy server dia tidak akan mengetahui bahwa
sebuah proxy server sedang menangani request/permintaan content/halaman/objek yang
dilakukannya.

Untuk mengatur penggunaan internet di kantor atau sekolah Proxy Server merupakan suatu hal yang wajib agar user tidak menyalahgunakan fasilitas koneksi internet seperti membuka situs – situs yang tidak baik misalnya situs – situs yang mengandung pornografi, perjudian, kekerasan, dsb. Atau juga mengontrol penggunaan.

Persiapan
PC yang sudah terinstall Linux. Dalam kasus ini saya menggunakan Debian Lenny. Secara umum langkahnya sama. Perbedaannya hanya pada saat proses installasi paket Squid. Jika pada Debian dan turunannya (Ubuntu dll) menggunakan “apt-get”, pada RedHat dan turunannya (Centos dll) menggunakan “yum”. PC ini harus memiliki paling tidak 2 interface. 1 interface terhubung ke LAN dan 1 lagi ke WAN yang dalam contoh kali ini terhubng ke modem speedy.


Network Topology

Modem Speedy —> Proxy Server —> LAN


Modem Speedy
IP Address : 192.168.0.1
Netmask : 255.255.255.0
DNS : 202.134.0.155, 203.130.196.5, 222.124.204.34

Proxy Server
eth0 (connected to Modem Speedy)
IP Address : 192.168.0.2
Netmask : 255.255.255.0
Gateway : 192.168.0.1

eth1 (connected to LAN)
IP Address : 192.168.1.1
Netmask : 255.255.255.0


LAN
IP Address : 192.168.1.2 – 192.168.1.254
Netmask : 255.255.255.0
Default Gateway : 192.168.1.1
DNS Server : 192.168.1.1


Setting Network dan IPtables
Lakukan setting network di Proxy Server dengan mengedit file /etc/network/interfaces (untuk distro selain Debian dan Ubuntu silakan menyesuaikan) sebagai berikut:

auto lo eth0 eth1
iface lo inet loopback

# The primary network interface

iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
broadcast 192.168.0.255
network 192.168.0.0
gateway 192.168.0.1

iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0


Restart network untuk mendapatkan efek.

/etc/init.d/networking restart

atau


/etc/init.d/networking force-reload

Cek hasil konfigurasi network dengan perintah “ifconfig” (tanpa tanda petik). Pastikan hasil konfigurasi telah sesuai.


Edit file /etc/resolv.conf sebagai berikut untuk DNS Server:

nameserver 202.134.0.155
nameserver 203.130.196.5
nameserver 222.124.204.34

Edit file /etc/sysctl.conf dengan menghilangkan tanda # pada baris #net.ipv4.ip_forward=1.

sebelum
#net.ipv4.ip_forward=1

sesudah


net.ipv4.ip_forward=1


Simpan konfigurasi kemudian aktifkan dengan perintah berikut:


sysctl -p


Lakukan konfigurasi IPtables sebagai berikut:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to-source 192.168.0.2
iptables -t nat -A PREROUTING -p tcp -i eth1 –dport 80 REDIRECT –to-ports 3128

Baris pertama melakukan source NAT semua paket yang keluar dari eth0 yang terhubung ke modem speedy sehingga semua client di LAN IP Addressnya akan terbaca 192.168.0.2 (IP Address Proxy Server yang terhubung ke modem speedy) oleh modem speedy. Hal ini dilakukan agar semua client di LAN bisa akses internet.


Sedangkan baris ke 2 berfungsi mengalihkan semua paket yang masuk ke eth1 dari LAN yang menuju port 80 (port web server) ke port Squid yaitu port 3128. Tanpa baris ini maka fungsi Squid sebagai proxy server tidak akan bekerja.


Konfigurasi IPtables di atas bersifat sementara. Jika komputer direstart maka konfigurasi IPtables akan hilang. Untuk mengatasi hal ini lakukan langkah – langkah berikut:


Simpan konfigurasi IPtables ke suatu file (dalm contoh ini ke file /etc/iptables.up.rules) dengan perintah berikut:


iptables-save > /etc/iptables.up.rules

Edit file /etc/network/interfaces. Tambahkan baris “post-up iptables-restore < /etc/iptables.up.rules” agar konfigurasi IPtables di load setelah interface up. Setelah diedit hasilnya adalah sebagai berikut:
auto lo eth0 eth1
iface lo inet loopback

# The primary network interface

iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
broadcast 192.168.0.255
network 192.168.0.0
gateway 192.168.0.1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0


post-up iptables-restore < /etc/iptables.up.rules


Installasi Squid


Setelah network dan Iptables selesai dikonfigure maka tahap selanjutnya adalah installasi Squid. Gunakan perintah berikut:


apt-get install squid


Setelah Squid terinstall lakukan konfigurasi minimum sebagai berikut:
http_port 3128 transparent
cache_dir ufs 20480 16 256
acl localnet 192.168.1.0/24
http_access allow localnet
http_access deny all

Kemudian restart squid dengan perintah berikut:
/etc/init.d/squid restart


Pastikan squid berjalan dengan menggunakan perintah berikut:

ps ax | grep squid

Jika squid telah berjalan maka seharusnya output dari perintah di atas tidak kosong. Atau bisa gunakan utility “nmap” yang terlebih dahulu harus diinstall dengan perintah “apt-get install nmap” (tanpa tanda petik). Ketikkan perintah berikut maka seharusnya ada baris “3128/tcp open squid-http” yang menandakan Squid telah berjalan:


nmap localhost
Install dnsmasq

Tahap selanjutnya adalah menginstall dnsmasq yang berfungsi sebagai caching DNS server (memetakan nama doamin ke IP Address) sehingga di client tidak perlu menggunakan DNS server public (DNS Server speedy.) Hal ini akan mengurangi traffic ke DNS server public sehingga sedikit banyak akan menekan penggunaan bandwidth. Install dnsmasq dengan perintah berikut:

apt-get install dnsmasq

Setalah terinstall cek apakah dnsmasq telah berjalan dengan perintah berikut:

ps ax | grep dnsmasq
Atau bisa juga dengan perintah “nmap localhost” (tanpa tanda petik). Jika dnsmasq telah berjalan maka output perintah tadi akan ada baris “53/tcp open domain”.
Semua konfigurasi telah selesai kita lakukan. Langkah selanjutnya adalah melakukan test dari PC client untuk akses ke internet. Jika halaman web terbuka maka Proxy Server telah berhasil kita buat. Konfigurasi IP Address client bisa dilihat di bagian Network Topology artikel ini.
Langkah selanjutnya adalah membuat rules tambahan untuk mengontrol penggunaan internet. Baik itu blocking situs, bandwidth management, maupun rules lain. Seperti janji saya, artikel tentang ini akan saya terbitkan segera.

Tidak ada komentar:

Posting Komentar