Tutorial Konfigurasi Proxy Server (Squid3)

Pada post ini, saya akan menjelaskan bagaimana menginstall lalu mengatur konfigurasi squid untuk memenuhi kondisi - kondisi berikut
  1. IP salah satu host memiliki kecepatan download maksimal 10 kbps. IP lainnya memiliki kecepatan download maksimal 20 kbps sebelum jam 14.00
  2. Kedua IP memiliki kecepatan download maksimal sebesar 30 kbps setelah jam 14.00 atau hari libur (Sabtu, Minggu)
  3. Buatlah agar host1 tidak dapat melakukan download file pdf, mp3 doc
  4. Buatlah agar host1 memiliki kecepatan download maksimal sebesar 20 kbps untuk file pdf, mp3 dan doc
  5. Batasi hanya ada 2 buah koneksi secara bersamaan pada tiap host
  6. Jelaskan 5 poin log squid
Program yang akan membuat server kita menjadi proxy server adalah Squid3.
apt-get install squid3
Sebelum menambahkan konfigurasi di /etc/squid3/squid.conf, carilah sebuah baris di squid.conf yang berisi
http_access deny all
dan rubah menjadi
#http_access deny all
Lalu tambahkan 
http_access allow all
pada baris pertama squid.conf sehingga squid akan menerima semua request http.
Selain itu, anda juga dapat mengkonfigurasi port yang digunakan squid, dengan mencari baris http_port. Pada awalnya, squid akan menggunakan port 3128.

Lalu agar sebuah host menggunakan server tersebut sebagai proxy, ketik baris ini di terminal
export http_proxy=ip_serverproxy:3128

Sekarang akan dijelaskan cara konfigurasi squid agar memenuhi kondisi yang diinginkan. Konfigurasi ini semuanya dituliskan di /etc/squid3/squid.conf
1. IP salah satu host memiliki kecepatan download maksimal 10 kbps. IP lainnya memiliki kecepatan download maksimal 20 kbps sebelum jam 14.00

Sebelumnya, kita akan mengenal dulu apa itu ACL. ACL (Access Control List)  merupakan nama/alias dari sebuah jenis peraturan. Misalnya kita ingin mengatur sebuah IP tertentu, maka kita harus membuat ACL yang jenisnya IP dan diisikan dengan IP tersebut.
Pada kondisi ini, misalkan IP host yang mau diberi peraturan adalah 172.16.0.1, maka aclnya sebagai berikut
acl host1 src 172.16.0.1

Untuk pembatasan kecepatan, squid sudah memiliki syntax khusus yaitu delay pools. Delay pool dapat mengatur berapa kecepatan maksimal, overall dari setiap ACL yang terdaftar dalam pool tersebut. Perhatikan baris berikut untuk membatasi agar download host1 maksimal 20 kbps
delay_pools 4
delay_class 1 2
delay_parameters 1 1250/1250 1250/1250
delay_access 1 allow host1
Syntax delay_pools N menyatakan bahwa ada delay pool sebanyak n. Lalu syntax delay_class #dp n_kelas menyatakan bahwa delay pool ke #dp merupakan delay pool kelas n_kelas. Setiap kelas memiliki parameter yang berbeda - beda. Untuk delay pool 1, parameternya hanya 1 yaitu kecepatan overall yang didapat setiap ACL terdaftar dalam pool. Untuk kelas 2, parameternya ada 2, yaitu kecepatan maksimal yang didapat dan kecepatan overall, dan masih ada 3 kelas lagi. Di sini digunakan delay_pool kelas 2 karena kita ingin membatasi maksimum kecepatan dari host1. Delay_parameter #dp maksimal overall berarti membatasi delay pool nomor sekian mendapat kecepatan maksimal sekian dengan kecepatan overall sekian. delay_access #dp allow/deny acl berarti menerapkan allow/deny di delay pool #dp untuk suatu acl.

Untuk IP lainnya
acl sebelum time 07.00-14.00
delay_class 2 2
delay_parameters 2 2500/2500 2500/2500
delay_access 2 allow sebelum
delay_access 2 allow all

Disini kita mengatur untuk waktu dari jam 7 - 14 untuk semua host yang terhubung akan mendapat kecepatan maksimal 20 kbps atau 2,5 KB. Perlu di ingat bahwa dalam konfigurasi Squid, satuan yang digunakan untuk kecepatan akses adalah Byte. Kita tidak perlu mendeklarasikan banyaknya delay pools lagi karena sudah di deklarasikan di awal bahwa ada 4 delay pool.

2. Kedua IP memiliki kecepatan download maksimal sebesar 30 kbps setelah jam 14.00 atau hari libur (Sabtu, Minggu)

acl setelah time 14.01-23.59
acl setelah2 time 00.00-07.00
acl harilibur time AS
delay_class 3 2
delay_parameters 3750/3750 3750/3750
delay_access 3 allow setelah
delay_access 3 allow setelah2
delay_access 3 allow harilibur
delay_access 3 allow all

untuk ACL harilibur, waktunya adalah AS yang berarti sAturday Sunday. Perlu diperhatikan bahwa dalam mendaftarkan ACL ke delay pool, di daftarkan yang lebih kecil cakupannya terlebih dahulu baru yang lebih besar. Selain itu, Squid tidak dapat menerjemahkan reverse time misalnya 14.01-07.00 sehingga waktunya harus dipisah menjadi dua bagian.

3. Buatlah agar host1 tidak dapat melakukan download file pdf, mp3 doc

acl pdf rep_mime_type application/pdf
acl mp3 rep_mime_type audio/mpeg3
acl doc rep_mime_type application/msword
http_reply_access deny pdf host1
http_reply_access deny mp3 host1
http_reply_access deny doc host1

4. Buatlah agar host1 memiliki kecepatan download maksimal sebesar 20 kbps untuk file pdf, mp3 dan doc

delay_class 4 2
delay_parameters 4 2500/2500 2500/2500
delay_access 4 allow pdf
delay_access 4 allow mp3
delay_access 4 allow doc
delay_access 4 allow host1

5. Batasi hanya ada 2 buah koneksi secara bersamaan pada tiap host

acl koneksi maxconn 2
http_access deny koneksi
http_access deny all

* jangan lupa pada bagian akhir dari setiap konfigurasi
http_access allow all

6. Pada log squid akan terdapat 7 kolom secara defaultnya

Kolom pertama menyatakan waktu dari kapan akses tersebut dilakukan.
Kolom ketiga adalah alamat dari host yang melakukan request
Kolom keempat adalah aksi dari Squid sebagai proxy. Terdapat banyak sekali aksi dari Squid. Beberapa di antaranya : TCP_DENIED berarti koneksi TCP host kepada Squid ditolak, TCP_HIT berarti Squid akan mendownload file dari cachenya, TCP_MISS berarti Squid akan mendownload file langsung dari URL/alamat tujuan, dan masih banyak lagi.
Kolom berikutnya adalah jumlah Bytes yang di download oleh Squid
Kolom keenam berisi metode http yang digunakan
Kolom terakhir berisi URL/alamat tujuan dari request

0 comments:

Post a Comment