Senin, 28 Februari 2011

Pra KBM Squid (Delay Pool)

Sumber: http://intrik.wordpress.com/2007/04/25/manajemen-bandwidth-di-squid-menggunakan-delay-pools/

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

Kamis, 27 Januari 2011

Pra KBM PROXY

Sumber:
bikhorion.blogspot.com/2010/05/proxy.html
lecturer.eepis-its.edu/.../jarkom2%20-%204.%20NAT%20dan%20Proxy.pdf
http://smk7ambon.forumotion.com/t16-aplikasi-aplikasi-pada-jaringan
www.anggablog.wordpress.com/


Pengertian Proxy

Proxy adalah perantara antara ip satu ke ip yang lain. Apabila kita browsing atau mengakses suatu website (dengan ip tertentu) menggunakan proxy maka kita cukup mengambil data website tersebut dari pihak proxy tersebut yang selanjutnya proxylah yang berperan mengambilkan data dari server suatu situs dan kemudian menghantarkan ke ip kita atau sampai di komputer kita

Proxy-Server
Proxy server adalah sebuah server pada jaringan komputer yang memberikan pelayanan
pada komputer client untuk dapat melakukan koneksi tidak langsung (indirect connection) dengan jaringan yang lainnya. Client meminta koneksi ke arah proxy server kemudian server melakukan koneksi ke arah server tujuan, atau mengambil data dari dalam tempat penyimpanan sementara (cache). Ilustrasi Proxy dapat dilihat pada Gb. 3. Untuk mesin Linux, dapat menggunakan aplikasi “squid”. Dimana pada squid tersebut dapat melakukan pembatasan akses. File konfigurasi squid berada di direktori /etc/squid/, dan file konfigurasinya bernama “squid.conf”. Squid menggunakan port tertentu untuk menerima request dari client, defaultnya adalah 3128. Untuk menggunakan proxy, client dapat merubah preferences / options pada software web browsernya dengan mengarahkan IP proxy dan portnya.

CARA KERJA

Proxy bekerja dengan mendengarkan request dari client internal dan mengirim request tersebut ke jaringan eksternal seolah-olah proxy server itu sendiri yang menjadi client. Pada waktu proxy server menerima respon dan server publik, ia memberikan respon tersebut ke client yang asli seolah-olah ia public server.

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.

Analogi diatas menjelaskan konsep dan fungsi dasar dari suatu proxy dalam komunikasi jaringan komputer dan internet. Proxy Server mempunyai 3 fungsi utama, yaitu,

  • Connection Sharing
  • Filtering
  • Caching
Konfigurasi Proxy Server Linux/Ubuntu

Sebelumnya, pastikan proses internet gateway (routing)sudah berjalan dalam komputer ini.
eth0 digunakan untuk ip internet
eth1, ip LAN

1. Instalasi
Pertama-tama install terlebih dahulu squid melalui synaptic atau melalui command prompt dengan cara :
# apt-get install squid
Setelah selesai maka Squid langsung dapat di konfigurasikan dengan cara :
# vi /etc/squid/squid.conf
Tetapi sebelum di edit terlebih dahulu backup dulu file aslinya agar kalau rusak bisa dikembalikan ke default :
# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

2. Konfigurasi Squid
Selanjutnya konfigurasi script Squid :
# vim /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 3128
http_port 192.168.10.1:8080
#log dan error
access_log /var/log/squid/access.log squid
error_directory /usr/share/squid/errors
logfile_rotate 7

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.10.254) atau domain seperti proxykoe.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
e. 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 (acl) : Siapa saja yang dapat mengakses Internet
acl all src all
acl manager proto cache_object
acl localnet src 192.168.10.1/255.255.255.0
#############################################################
### BANDWIDTH MANAJEMEN
##############################################################
acl admin src “/etc/squid/admin
acl situs url_regex “/etc/squid/situs”
acl download urlpath_regex “/etc/squid/download”
#################################################################
acl denied_domains dstdomain “/etc/squid/denied_domains.acl”

http_access allow manager localhost
http_access deny manager
# Only allow purge requests from localhost
http_access allow purge localhost
http_access deny purge
http_access allow localhost
http_access allow admin
http_access deny workhours denied_domains
http_access allow localnet
http_access deny all
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access allow CONNECT !SSL_ports

#delay pools 0, untuk bandwidth management
delay_pools 3
delay_class 1 1
delay_class 2 1
delay_class 3 1
#unlimitted access untuk admin
delay_parameters 1 -1/-1
delay_access 1 allow admin
delay_access 1 deny all
#pembatasan kecepatan akses untuk “situs” dimana kecepatan maksimum hanya 2kbps jika #besarnya situs lebih dari 64kB
delay_parameters 2 2000/64000
delay_access 2 allow situs
delay_access 2 deny all
#pembatasan kecepatan akses untuk “download” dimana kecepatan maksimum hanya 1kbps jika #besarnya download lebih dari 32kB
delay_parameters 3 1000/32000
delay_access 3 allow download
delay_access 3 deny all

keluar dari squid.conf dan menyimpan yang sudah dirubah dengan perintah
:wq

bagaimana dan apa saja yang membatasi akses sudah kita nyatakan perintahnya dan Access List,
acl admin src “/etc/squid/admin
maka yang pertama kita lakukan adalah membuat dan menuliskan apa saja yang dalam “admin”, dengan cara:
vim /etc/squid/admin

192.168.10.26
192.168.10.5
192.168.10.4
192.168.10.100
192.168.10.102
192.168.10.157
192.168.10.249
192.168.10.250
192.168.10.15
192.168.10.14

Keluar dan simpan, dengan perintah, :wq
Maka IP-IP di atas, adalah IP yang mendapat hak penuh sebagai admin.

acl situs url_regex “/etc/squid/situs”
– vim /etc/squid/situs
gudangupload
easyshare
savefile
megaupload
share
boxing
tube
movie
facebook

Keluar dan simpan, dengan perintah, :wq

acl download urlpath_regex “/etc/squid/download”, diedit dengan perintah:
vim /etc/squid/download, dan dituliskan
./doc$
./exe$
./pdf$
./xls$
./docx$
./mpeg$
./tar.gz$
./tar.bz2$
./mp3$
./jpg$
./jpeg$

Keluar dan simpan, dengan perintah, :wq

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 :

# 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 :

# iptables -A PREROUTING -t nat -p tcp –dport 80 -j REDIRECT –to-port 8800

Kemudian restart proxy dengan perintah :
# /etc/init.d/squid restart