Monday, December 22, 2008

Sistem Quota ala Speedy dengan Squish

Hufff, dah lama kita nggak ketemu. :D~~ Kira-kira beberapa bulan yang lalu, saya mencoba mencicipi layanan speedy personal, dan nggak kerasa, baru sekitar 10 hari, bandwithnya sudah overquota, lebih 7 mB kalo nggak salah. Padahal penulis sendiri waktu itu hanya diberikan jatah 1 GB perbulannya. Wekzz !! Maklum penulis termasuk orang yang rakus dalam pemakaian bandwith. :D. Download download ... !!! Terpaksa merogok kocek saku sang mahasiswa yang notebenenya selalu bokek :D~~~.


Tapi berhubung sakunya bolong mau bagaimana lagi, terpaksa pemakaian internet di rumah di cabut. :(~

Kali ini penulis mencoba untuk menjelaskan sebuah system quota ala speedy, dengan pembatasan berdasarkan waktu dan kapasitas pemakaian tentunya.

Kita ambil contoh : user A di berikan batas waktu pemakaian 5 jam, dan 20 MB perharinya. Walaupun sebelum 5 jam kapasitasnya sudah full maka sang user terpaksa menunggu hari berikutnya untuk bisa kembali bermain. Istilah kerennya yakni Squished.

System quota ini menggunakan sebuah paket aplikasi tambahan, Squish. Yang penulis gunakan adalah squish versi 0.0.18.

Di tutorial ini penulis menggunakan distro fedora core 4, yang didalamnya telah terinstall paket squid. Berikut adalah peralatan yang kita butuhkan nantinya :

gd-2.0.33-2.i386.rpm
perl-GD-2.35-1.fc4.i386.rpm
squish-0.0.18.tar.gz

Download dulu paket-paket di atas :
# wget http://h1.ripway.com/ilmuwebsite2/gd-2.0.33-2.i386.rpm
# wget http://h1.ripway.com/ilmuwebsite2/perl-GD-2.35-1.fc4.i386.rpm
# wget http://h1.ripway.com/ilmuwebsite2/squish-0.0.18.tar.gz

Kemudian Install paket gd-2.0.33-2.i386.rpm, dan perl-GD-2.35-1.fc4.i386.rpm
# rpm –ivh gd-2.0.33-2.i386.rpm
# rpm –ivh perl-GD-2.35-1.fc4.i386.rpm

Setelah itu ekstrak file squish-0.0.18.tar.gz :
# tar –xzvf squish-0.0.18.tar.gz

Terdapat sebuah direktori baru disana, squish-0.0.18, kemudian masuk kedalamnya, kemudian install :
# cd squish-0.0.18
# make install

Pindah ke direktori di mana squish berada :
# cd /usr/local/squish/

Kemudian jalankan option run pada file squish.pl, ini dilakukan untuk membuat sebuah tampilan awal dari pemakaian bandwith :

# ./squish.pl --install

Dengan fasilitas crontab tambahkan sebuah perintah baru untuk daemon crond :

# crontab -e
5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/squish/squish.cron.sh

Kemudian tekan ESC :x!

Jalankan perintah baru tersebut untuk pertama kalinya :

# /usr/local/squish/squish.cron.sh

Kemudian kita tambahkan authentikasi ncsa_auth pada file konfigurasi squid.conf yang terletak di /etc/squid/squid.conf :

# nano /etc/squid/squid.conf
# baris ini ditambahkan di area authentikasi

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

# yang ini ditambahkan pada area acl
acl ncsa proxy_auth REQUIRED

# kemudian simpan
Setelah itu edit di bagian bawah baris kalimat ini

### added by squish (begin)

Menjadi seperti ini :

# acl's for squish - autodetected, sometimes
acl SQUISHLOC dst ns.multimedia.com
acl SQUISHED1 proxy_auth -i "/etc/squid/squished"

#acl SQUISHED2 ident "/etc/squid/squished"
acl SQUISHED3 src "/etc/squid/squished"
acl password proxy_auth REQUIRED

# Error info that says you're squished
deny_info http://ns.multimedia.com/squish/?squished& SQUISHED1

# deny_info http://ns.multimedia.com/squish/?squished& SQUISHED2
deny_info http://nd.multimedia.com/squish/?squished& SQUISHED3

# HTTP access controls for squish

http_access allow SQUISHLOC
http_access allow password !SQUISHED1
http_access deny SQUISHED1

# http_access deny SQUISHED2

http_access deny SQUISHED3

### added by squish (end )

http_access allow ncsa


Kemudian, edit file konfigurasi httpd :

# nano /etc/httpd/conf/httpd.conf
# tambahkan baris berikut di paling bawah dari file konfigurasi tersebut :

include /usr/local/squish/apache-squish.conf

Kemudian edit file apache-squish.conf :
# nano /usr/local/squish/apache-squish.conf

Edit file tersebut menjadi seperti ini :
Alias /squish "/usr/local/squish/"


Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex squish.cgi
AllowOverride None
Order allow,deny
Allow from all

Di bagian terakhir, anda cukup membuat user yang diperbolehkan untuk mengakses internet, dengan membuat sebuah file yang berisi user yang diperbolehkan login :

# htpasswd /etc/squid/passwd mamang

Berikan permission r untuk user lain agar file /etc/squid/passwd dapat dibaca oleh apache.

# chmod o+r /etc/squid/passwd

Kemudian restart service squid dan httpd :

# service squid restart
# service httpd restart

Untuk melakukan pembatasan pemakaian pada user, silahkan edit file konfigurasi squish.conf

# nano /etc/squid/squish.conf

squish.conf:
# This file contains data formatted as follows:
#
# Blank lines and hashed stuff is for comments
# user amount/period
# bandwidth: 999[kmG]b / period: day, week, month
# time: 999[smh] / period: day, week, month
#
# Whitelist entries - they can have as much as they like

192\.168\.99\.44 25h/day
192\.168\.97\.43 25h/day

mamang 12h/day 120Mb/day

# Poor guy:
root 1h/day 1Mb/day 2Mb/week

# Catchall -- people and IP's not matched by the above rules
.* 4h/day 20Mb/day 20h/week 100Mb/week

Tampilan ketika user habis masa pemakaiannya.

No comments:

Post a Comment