Membangun Proxy Server Dengan
Ubuntu
Proxy dapat dipahami sebagai pihak
ketiga yang berdiri ditengah-tengah antara kedua pihak yang saling berhubungan
dan berfungsi sebagai perantara, sedemikian sehingga pihak pertama dan pihak
kedua tidak secara langsung berhubungan, akan tetapi masing-masing berhubungan
dengan perantara, yaitu Proxy.
Sebuah analogi; bila seorang
mahasiswa meminjam buku di perpustakaan, kadang si mahasiswa tidak
diperbolehkan langsung mencari dan mengambil sendiri buku yang kita inginkan
dari rak, tetapi kita meminta buku tersebut kepada petugas, tentu saja dengan
memberikan nomor atau kode bukunya, dan kemudian petugas tersebut yang akan
mencarikan dan mengambilkan bukunya. Dalam kasus diatas, petugas perpustakaan
tersebut telah bertindak sebagai perantara atau Proxy. Petugas tersebut juga
bisa memastikan dan menjaga misalnya, agar mahasiswa hanya bisa meminjam buku
untuk mahasiswa, dosen boleh meminjam buku semua buku, atau masyarakat umum
hanya boleh meminjam buku tertentu.
Mungkin proses tersebut menjadi
lebih lama dibandingkan bila kita langsung mencari dan mengambil sendiri buku
yang kita inginkan. Namun bila saja setiap kali petugas mencari dan mengambil
buku untuk seseorang, si petugas juga membuat beberapa salinan dari buku
tersebut sebelum memberikan bukunya kepada orang yang meminta, dan menyimpannya
di atas meja pelayanan, maka bila ada orang lain yang meminta buku tertentu,
sangat besar kemungkinan buku yang diminta sudah tersedia salinannya diatas
meja, dan si petugas tinggal memberikannya langsung. Hasilnya adalah layanan
yang lebih cepat dan sekaligus keamanan yang baik.
1. Instalasi
Pertama-tama install terlebih
dahulu squid melalui synaptic atau melalui command prompt dengan cara :
#sudo apt-get install squid
Setelah selesai maka Squid langsung
dapat di konfigurasikan dengan cara :
#sudo vi /etc/squid/squid.conf
Tetapi sebelum di edit terlebih
dahulu backup dulu file aslinya agar kalau rusak bisa dikembalikan ke default :
#sudo cp /etc/squid/squid.conf
/etc/squid/squid.conf.bak
2. Konfigurasi Squid
Selanjutnya konfigurasi script
Squid :
#sudo vi /etc/squid/squid.conf
Akan muncul file konfigurasi squid
yang sangat panjang, berikut langkah-langkah yang harus diperhatikan….
a. HTTP Port : Merupakan port yang
digunakan untuk menjalankan Squid
http_port 8080
b. Visible Host Name : Agar jika
terjadi error Squid dapat menemukan hostname yang valid
visible_hostname localhost
localhost bisa diganti menjadi ip
(e.g 192.168.0.254) atau domain seperti proxy.anu.com
c. Cache Manager : Untuk
mendefinisikan email address dari Cache Manager Squid
cache_mgr admin@domain.com
d. Direktori Cache Squid :
Mendefinisikan letak direktori squid beserta besarannya.
Angka 500 menunjukkan ukuran
direktori dalam MB
Angka 16 menunjukkan jumlah sub
direktori tingkat 1
Angka 256 menunjukkan jumlah
subdirektori tingkat 2 dari subdirektori tingkat 1
Jumlah diatas makin besar makin
baik
cache_dir ufs /var/spool/squid 500
16 256
Filtering : Ini merupakan bagian
terpenting dari Squid, dengan ini kita bisa mngatur rule-rule, dari mulai siapa
saja yang bisa mengakses internet sampai website apa yang diizinkan untuk di
akses.
Access List : Siapa saja yang dapat
mengakses Internet
acl akses src
192.168.0.1/255.255.255.255
acl : merupakan perintah access
list
akses : nama user yang memiliki IP
atau group
src : merupakan source ip yang
digunakan, bisa menggunakan range jika ingin membuat group
acl group-it src
192.168.0.1-192.168.0.12/255.255.255.255
Filtering Waktu : Memberikan izin
akses berdasarkan waktu dan hari
acl waktu-akses time MTWHFA
08:00-16:00
acl : perintah access list
waktu-akses : caption untuk
perintah acl
time : perintah squid utk
mendefinisikan waktu
MTWHFA : merupakan perintah squid
untuk mendefinisikan waktu M : Monday, T : Tuesday, etc…..
08:00-16:00 : Merupakan waktu yang
diperbolehkan untuk memberikan akses internet ke pengguna
Filtering Website : Memfilter
website apa saja yang tidak boleh diakses oleh pengguna.
Sebelumnya harus dibuat dulu suatu
dokumen yang berisikan list-list url yang akan diblock, dengan perintah
#sudo vi /etc/squid/pornourl.txt
kemudian isikan dengan :
www.worldsex.com
www.17tahun.com
dll
Lalu berikan perintah squid pada
file Squid.conf dengan perintah :
acl blokporno dstdomain
“/etc/squid/pornourl.txt”
Filtering Keyword : Memfilter
keyword yang dimasukkan oleh para pengguna, misalkan pengguna memasukkan kata
’sex’ di google maka Squid akan membloknya.
Sebelum menambahkan perintah di
Squid.conf, kita harus membuat file yang berisikan keyword-keyword yang akan
diblok dengan perintah :
#sudo vi
/etc/squid/keywordblock.txt
Lalu isi dengan kata-kata yang akan
di blok :
sex
porn
fuck
dll….
Dan berikan perintah di Squid.conf
dengan perintah :
acl keywordblok url_regex -i
“/etc/squid/keywordblock.txt”
Perintah-perintah filter ini cukup
untuk membuat Squid Server sederhana,
Selanjutnya memberikan hak akses
pada aturan-aturan yang telah dibuat sebelumnya. Di Squid perintahnya dinamakan
http_access. Perintahnya adalah sebagai berikut :
http_access deny blokporno #
men-deny semua url yang terdapat pada acl blokporno
http_access deny keywordblock #
men-deny keyword yang ada pada acl keywordblock
http_access waktu-akses aku #
Memperbolehkan acl waktu-akses pada acl user aku
http_access deny all # Men-deny
semua user yang tidak terdaftar pada squid.conf
http_reply_access allow all
#default
icp_access allow all #default
Kemudian jangan lupa men-save file
konfigurasi squid.conf yang telah diedit dengan menggunakan perintah :
:wq #w : menyimpan q: keluar
(Perintah vi)
Lalu pada command terminal anda
ketikan perintah ;
#sudo squid –z
Transparent Proxy
Merupakan suatu teknik agar Squid
Proxy menjadi transparent atau tidak terlihat, maksudnya jika biasanya kita
memasukkan alamat proxy pada setiap browser (firefox, etc..), jika transparent
proxy diterapkan maka pada browser tidak akan kelihatan kita memasukkan alamat
proxy kita.
Sebelum memasukkan perintah
transparent proxy pada squid, maka kita harus melakukan perintah iptable agar
dapat meredirect port yang ada pada komputer client. Maksudnya jika squid kita
set pada port 3128, maka permintaan client yang umumnya internet itu berada
pada port 80 maka kita harus meredirect port 80 dari client tersebut ke port proxy
kita yang berada pada port 3128.
IP Forwarding, agar transparent
proxy dapat diterapkan, maka kita harus mengaktifkan Ip Forwarding
dengan memberikan nilai 1 pada file
“/proc/sys/net/ipv4/ip_forward” dengan cara :
#sudo echo 1 >
/proc/sys/net/ipv4/ip_forward
Tetapi perintah tersebut harus kita
jalankan auto startup, agar jika komputer squid mati kita tidak perlu repot2
menjalankan perintah tersebut secara terus menerus.
Berikutnya kita harus menjalankan
ip_tables agar client dapat meredirect port squid server kita dengan perintah :
#sudo iptables -A PREROUTING -t nat
-p tcp –dport 80 -j REDIRECT –to-port 3128
Kemudian restart proxy dengan
perintah :
#sudo /etc/init.d/squid restar