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
Berikut
ini akan coba saya tulis cara instalasi Proxy Server menggunakan Squid
pada Debian dan konfigurasi minimum agar Squid bisa berjalan. Sedangkan
untuk konfigurasi tingkat lanjut seperti penambahan rules, blocking
situs, bandwidth management .
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.
No comments:
Post a Comment