Jumat, 22 Mei 2009

Sistem Quota ala Speedy dengan Squish

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

Posting Lebih Baru

Artikel Lainnya Cari Dibawah Ini :

Posting Lama Beranda