Membuat Proxy Server

Pada saat ini banyak organisasi, baik edukasi, pemerintahan, privat maupun komersial berusaha membatasi akses para penggunanya ke internet (terutama web) dengan alasan bandwith yang dimiliki mulai terasa lambat ketika para penggunanya mulai ?nge-Web?.
Salah satu solusi untuk pembatasan akses di atas adalah dengan menggunakan Proxy Server. Di sini proxy server berguna sebagai mediator antara pengguna dan dunia luar (Web), semua request HTTP dari pengguna akan diarahkan ke Proxy Server (dengan mengkonfigurasi semua browser pengguna) dan data berupa tujuan (misal http://www.itb.ac.id) yang di minta oleh user akan diteruskan oleh Proxy server ke tujuan yang diminta. Data yang telah didapat oleh Proxy server tidak dibuang begitu saja, data ini selain akan dikembalikan ke arah pengguna yang meminta juga akan di simpan (di-Cache) sehingga apabila data yang sama diminta oleh pengguna yang lain, proxy tidak usah meminta data tersebut ke server yang diminta, tapi cukup mengirimkan data yang telah ada di cachenya ke pengguna yang meminta.
Pada beberapa jenis Proxy server tertentu kita mempunyai aturan-aturan yang bisa membatasi akses pengguna ke web, sebagai misal pengguna dari suatu workgroup bisa mengakses web pada selang waktu tertentu. Hal di atas bisa berjalan apabila semua request HTTP dari pengguna harus melewati proxy server terlebih dahulu, sehingga kita dapat menjamin semua request dari pengguna selalu melewati Proxy server terlebih dahulu.

INSTALASI SQUID UNTUK PROXY SERVER

Pada artikel ini, kita akan membuat sebuah proxy server dengan software Squid, Squid adalah software public domain berbasis UNIX, berfungsi meng-?cache? data yang diminta oleh pengguna (biasanya berupa web pages dan ftp). Platform UNIX yang di support oleh Squid adalah FreeBSD, BSDI, Digital Unix, Irix, Linux, Solaris dan SunOs. Tidak semua data bisa di cache oleh Squid, data-data yang bersifat dinamik seperti CGI-BIN tidak di cache oleh Squid, jadi tiap kali ada permintaan CGI-BIN, maka Squid akan menghubungi langsung server tujuan. Saat ini protokol yang bisa dilayani oleh Squid adalah ?http?, ?ftp?, ?gopher? dan ?wais?. Versi dari Squid yang paling baru (pada saat artikel ini ditulis) adalah versi 1.1.10 dan bisa didapat melalui anonymous FTP ke ftp://squid.nlanr.net/pub/squid-1.1.

Hardware yang anda butuhkan untuk dapat membuat Proxy server dengan Squid adalah (konfigurasi tipikal) :
 Pentium 133 atau lebih tinggi (Pentium Pro lebih baik)
 RAM 32 MB atau lebih tinggi (Squid menyimpan sementara data yang sedang diminta oleh pengguna ke RAM sebelum disimpan di hard disk, data ini disebut juga hot object)
 Hard Disk 1.7 GB untuk instalasi FreeBSD (memakan space kurang lebih 300 MB) dan Squid (executable files tidak memakan space tetapi cache membutuhkan space yang cukup besar).

Setelah anda memiliki source file dari Squid, kita uncompress dahulu source file dari Squid dengan mengetikkan :

% tar xvpfz squid-1.1.10.tar.gz

setelah selesai, akan tampak satu sub direktori squid-1.1.10 di tempat anda meng-uncompress file di atas. Langkah selanjutnya adalah masuk ke subdirektori tersebut lalu jalankan perintah berikut :

% ./configure ?prefix=/usr/local/squid

Maksud dari prefix di atas adalah, kita menunjukkan letak direktori tempat executable files dan konfigurasi disimpan setelah instalasi selesai. Jadi bisa juga prefix yang diberikan bukan /usr/local/squid tapi bisa juga /usr/squid misalnya. Sedangkan perintah configure sendiri berguna untuk mengektraksi parameter-parameter dari Operating System yang kita gunakan. Langkah selanjutnya adalah jalankan perintah berikut :

% make all

lalu setelah perintah selesai dijalankan ketik perintah :

% make install

yang akan menginstall executable files dari Squid ke direktori /usr/local/squid (sesuai dengan prefix yang kita berikan). Setelah perintah ini selesai direktori kerja kita pindah ke /usr/local/squid. Di direktori ini akan kita lihat ada 3 buah direktori yaitu : bin. etc, dan log. Direktori bin berisi executable files dari Squid dan direktori etc berisi file konfigurasi dari Squid, yaitu file Squid.conf.

KONFIGURASI DASAR PROXY SERVER

File yang dibaca ketika Squid pertama kali dieksekusi adalah file squid.conf (terletak di direktori /usr/local/squid/etc). File ini berisi directive-directive, option dan rules yang akan kita terapkan ketika kita menjalankan proxy server. Bebeberapa directive dan option penting yang harus kita isi adalah (konfigurasi minimum) :

1. http_port

directive ini berguna untuk menunjukkan ke port berapa proxy server harus mendengarkan permintaan dari pengguna, isi http_port dengan bilangan integer sesuai dengan keinginan anda (misal 8080) asalkan tidak bentrok dengan well known ports dari server anda atau gunakan default yang ada (3128). Kegunaan directive ini dapat ditunjukkan oleh contoh sebagai berikut : pada browser pengguna kita set option proxy server untuk http adalah 167.205.154.22 port 8080, ini berarti request http akan dialamatkan ke proxy server 167.205.154.22 pada port 8080, apabila proxy server tersebut telah diset untuk mendengarkan permintaan pengguna pada port 8080 maka permintaan dari pengguna tersebut akan dilayani.

2. icp_port

directive ini berguna untuk menunjukkan port bahwa proxy server yang anda buat harus mendengar (listen) pada permintaan dari proxy server (apabila dalam network anda telah dibuat suatu hirarki caching) yang menyampaikan permintaannya melalui protokol ICP (Internet Cache Protocol). Di sini anda dapat menggunakan default yang sudah ada (3130) atau bilangan integer sesuai dengan keinginan anda asalkan tidak bentrok dengan well known ports yang sudah ada. Apabila hanya ada satu server cache saja dalam network anda maka option ini dapat tidak digunakan.

3. local_domain

isi directive ini dengan domain dari network anda, misal EE.ITB.ac.id, sehingga apabila ada permintaan data dimana tujuan masih terletak satu domain dengan proxy server anda, maka data akan diminta langsung ke server tujuan.

4. Beberapa directive untuk menunjukkan direktori tempat Squid menyimpan data yang didapat (untuk cache) dan log files (access.log, hierarchy.log, store.log). Harap diingat directive ini wajib diisi karena Squid tidak akan bisa dieksekusi tanpa adanya directive ini. Saran dalam pembuatan direktori tempat squid menyimpan data cache adalah buat direktori khusus tempat squid menyimpan data dan log files (satu direktori khusus dengan 2 subdirektori untuk cache dan log file) serta letakkan direktori tersebut pada partisi yang berukuran cukup besar (dengan trafik HTTP medium data yang di cache bisa mencapai 500MB) .
5. pid_filename

Directive ini berguna untuk menunjukkan file tempat squid menulis nomer proses yang dijalankan, file ini penting untuk merestart Squid ataupun untuk mematikan proses Squid. Dalam FreeBSD, sebaiknya anda letakkan pada /var/run/squid.pid

6. cache_ftp_program

Secara default directive ini di comment (berarti di-ignore oleh Squid ketika pertama kali dieksekusi). Sebaiknya directive ini digunakan (di-uncomment).. Directive ini digunakan untuk menjukkan letak program ftpget, yang digunakan sebagai proxy untuk protokol FTP. Ubah letak sesuai dengan letak ftpget di server anda.

7. cache_dns_program

Secara default directive ini di comment. Sebaiknya directive ini digunakan karena program dnsserver yang ditunjuk lokasinya oleh directive ini berguna untuk mengubah nama server ke nomer IP.

8. visible_hostname

Directive ini berguna untuk menunjukkan nama proxy server anda kepada pengguna. Isi dengan nama yang anda sukai (nama ini tidak perlu sama dengan nama yang ada pada record DNS).

Dengan mengisi direktive-direktive di atas maka anda sudah dapat menjalankan Squid. Untuk menjalankan Squid ketik perintah :

% ./RunCache — Pada direktori /usr/local/squid/bin

Untuk mencoba jalannya proxy server, coba jalankan perintah di bawah ini :

% telnet mesin-proxyku.ITB.ac.id 8080
connected to mesin-proxyku.ITB.ac.id
escape character is ?]
GET http://nic.itb.ac.id HTTP/1.0

apabila display mengeluarkan beberapa tag HTML dan bukan berupa pesan error berarti proxy server anda sudah bisa digunakan. Proxy server anda juga bisa dites melalui browser, caranya : set option proxy server pada browser anda dengan IP atau nama dari proxy-server yang anda buat, sedangkan port diisi dengan HTTP_port dari file konfigurasi squid.conf.

Apabila anda ingin melakukan perubahan pada file konfigurasi squid.conf dan ingin merestart Squid (file konfigurasi squid.conf hanya dibaca satu kali oleh Squid yaitu pada saat program di start), anda tidak perlu mematikan semua proses yang telah di-launch oleh Squid tapi cukup mengetikkan perintah :

% kill -HUP (Squid Parent ID)

Squid Parent ID dapat dilihat pada file /var/run/squid.pid atau pada file lain di yang ditunjukkan pada directive pada squid.conf. Apabila anda ingin mematikan semua proses dari Squid, perintah yang anda jalankan adalah :

% kill -9 (Squid Parent ID)

Demikian sekilas cara instalasi dari Squid untuk Proxy server. Keterangan lebih lengkap mengenai Squid dapat dibaca di http://www.nlanr.net/Squid.

+++++++++++++++++++++++++++++++++++++++++++++++++++++
Manajemen Bandwidth dengan proxy

Squid … pasti udah pernah denger khan ? atau udah pernah coba menjalankan ? .. ok sekedar berbagi aja nieh. Squid itu adalah proxy HTTP yang paling lengkap. Proxy dapat menghemat bandwidth internet, karena proxy bekerja seperti web-cache yaitu dengan mendownload hasil request ke harddisk lokal. Jika ada web atau file yang sering direquest, squid akan merespon request tersebut dengan cepat karena sudah didownload di harddisk lokal.
Tapi kalo misalnya sudah baca tulisan di atas pasti akan timbul pertanyaan dr kita, yang dimanage itu cuma HTTP aja yah ? trus file yang lain bagaimana ? … seperti film, download file dan lain-lain ?
ok disini saya gak coba jelasin gimana cara nginstall squid, karena banyak sekali tutorial” tentang cara menginstall squid yang mungkin bisa anda baca. yang menjadi titik berat disini adalah bagaimana kita me-manage bandwidth untuk file-file selain HTTP ? …
berikut ini panduannya :

Dokumen ini menjelaskan bagaimana cara mengkonfigurasikan proxy server anda untuk membatasi bandwidth download atau incoming traffic.
Berikut langkah-langkah pengkonfigurasian manajemen bandwidth di squid:
1. Pertama-tama periksa apakah squid telah berjalan di server dan telah dikonfiguraisi sebagai mesin proxy server.
2. Sebelum memulai memanajemen bandwidth di squid, kita jelaskan dulu komponen-komponen manajement bandwidth di squid :

delay_pools
Opsi ini untuk menspesifikasi berapa jumlah pool yang digunakan untuk membatasi jumlah bandwidth dari ACL. Opsi ini akan dirangkaikan bersama opsi delay_class dan delay_parameters yang akan dibahas di bawah ini.

delay_class
Opsi ini menspesifikasikan kelompok dari masing-masing pool yang telah didefinisikan pada opsi delay-pools. Ada tiga class yang didukung Squid, antara lain:
• class 1: Semua akses dibatasi dengan single bucket, artinya hanya bisa mendefinisikan overall bandwidth untuk suatu ACL saja, tidak bisa mendefinisikan bandwidth dengan lebih mendetail
• class 2: Semua akses dibatasi dengan single agregate dengan dua parameter bandwidth. Parameter pertama mendefinisikan berapa bandwidth maksimal yang didapatkan ACL, parameter kedua mendefinisikan berapa bandwidth overall untuk ACL yang spesifik yang ada pada network tersebut.
• class 3: Kelompok yang definisi bandwidth-nya paling mendetail. Parameter pertama mendefinisikan berapa bandwidth maksimal yang didapatkan ACL, parameter kedua mendefinisikan berapa bandwidth normal yang didapatkan ACL secara umum, dan parameter yang ketiga adalah mendefinisikan bandwidth yang didapatkan ACL jika mengakses ACL-ACL tertentu yang spesifik, misalnya file mp3.

delay_parameters
Opsi ini menspesifikasikan rumus bandwidth yang akan didapatkan oleh ACL yang akan memasuki delay_pool. Misalnya ada entry berikut ini pada delay_parameters:
delay_parameters 1 -1/-1 2100/4000
Angka 1 berarti rumus ini berlaku untuk pool 1. Angka -1/-1 berarti bandwidth maksimal yang diberikan Squid adalah tidak terbatas untuk pool ini.

Angka 2100/4000 berarti bandwidth yang didapatkan oleh ACL setelah masuk ke pool ini. Angka ini berada dalam kelipatan 8 b, sehingga untuk mendapatkan nilai bandwidth yang sebenarnya harus dikalikan delapan. Angka 2100 adalah bandwidth yang didapatkan ACL pada masa-masa normal. Jika dikalikan 8, maka bandwidth normal yang akan didapatkan ACL sekitar 18 Kbps. Angka 4000 adalah bandwidth maksimal yang didapatkan ACL pada masa-masa jalur sedang kosong. Jika dikalikan 8, maka bandwidth yang didapatkan sekitar 32 Kbps.

delay_access
Opsi ini mendefinisikan siapa-siapa ACL yang akan dimasukkan ke pool tertentu untuk mendapatkan “perlambatan” bandwidth. Bentuk umumnya adalah seperti ini:
delay_access 1 allow labprog
Opsi di atas berarti kita memasukkan ACL labprog ke dalam pool 1.

3. Jika sudah mengerti komponen-komponen delay pool, kita mulai konfigurasi delay pool .
Di umpamakan kita mempunyai bandwidth dari ISP sebesar 512kb, dan kita membuat rule seperti berikut ini:
– Batas kecepatan koneksi overall adalah 256 Kbps. per-network adalah 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika digunakan untuk download file bertipe exe, mp3, vqf, tar.gz, gz, rpm, zip, rar, avi, mpeg, mpe, mpg, qt, ram, rm, iso, raw, dan wav. Jika tidak, maka koneksi perhost HANYA mengikuti aturan per-Network saja.

Penyelesaian:
Edit file /etc/squid/squid.conf
#vi /etc/squid/squid.conf
Lalu tambahkan contoh konfigurasi ini:
# Sebelum kita melakukan pembatasan, kita perlu mendefinisikan ACL network # # yang kita perlukan terlebih dahulu. ACL yang didefinisikan pada host bridge
# seperti di bawah ini:
acl lokal src 192.168.1.0/24
# Kemudian kita membatasi maksimum download dengan tag di bawah ini:
# Batas kecepatan koneksi overall adalah 256 Kbps. per-network adalah
# 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika digunakan untuk
# download file bertipe exe, mp3, vqf, tar.gz, gz, rpm, zip, rar, avi,
# mpeg, mpe, mpg, qt, ram, rm, iso, raw, dan wav. Jika tidak, maka
# koneksi perhost HANYA mengikuti aturan per-Network saja.

acl filegede url_regex -i \.exe
acl filegede url_regex -i \.mp3
acl filegede url_regex -i \.vqf
acl filegede url_regex -i \.gz
acl filegede url_regex -i \.rpm
acl filegede url_regex -i \.zip
acl filegede url_regex -i \.rar
acl filegede url_regex -i \.avi
acl filegede url_regex -i \.mpeg
acl filegede url_regex -i \.mpe
acl filegede url_regex -i \.mpg
acl filegede url_regex -i \.qt
acl filegede url_regex -i \.ram
acl filegede url_regex -i \.rm
acl filegede url_regex -i \.iso
acl filegede url_regex -i \.raw
acl filegede url_regex -i \.wav

# Kita buat dulu ACL untuk mendefinisikan file-file di atas dengan menggunakan # regularexpression. Kemudian kita mendefinisikan 2 delay pool untuk
# menampung bandwidth.
# Satu pool masuk dalam kategori class 2 untuk mendefinisikan aturan overall
# 256 Kbps dan per-network 64 Kbps. Satu pool lainnya masuk kategori class 3
# untuk mendefinisikan aturan tambahan jika user mendownload file-file yang
#didefinisikan dalam ACL url_regex dengan bandwidth maksimal 2 Kbps.
delay_pools 2
delay_class 1 3
delay_parameters 1 32000/32000 8000/8000 250/250
delay_access 1 allow lokal filegede
delay_access 1 deny all
delay_class 2 2
delay_parameters 2 32000/32000 8000/8000
delay_access 2 allow lokal
delay_access 2 deny all

Jika sudah selesai, simpan hasil konfigurasi dan restart squid
#/etc/init.d/squid restart

=====================================================
http://www.wcc.web.id/articles.php?article_id=23
=====================================================

Satu Tanggapan to “Membuat Proxy Server”

  1. mantabbbb….. maksih pak …

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: