Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Tuesday, February 26, 2013

Contoh Penerapan Delay Pools dalam Pembatasan Bandwidth Menggunakan Squid

Contoh Penerapan Delay Pools dalam Pembatasan Bandwidth Menggunakan Squid

Contoh penerapan delay pools adalah kasus sebuah Universitas yang ingin membatasi total bandwidth hanya sampai 64kbps. Untuk itu, konfigurasi yang perlu dibuat adalah seperti di bawah ini:

acl all src 0.0.0.0/0.0.0.0
delay pools 1
delay_class 1 1
delay_access 1 allow all

...
...

delay_parameters 1 8000/8000

..

Berikut sedikit penjelasan dari konfigurasi tersebut :

Konfigurasi yang pertama memberikan acl untuk semua (acl all src 0.0.0.0/0.0.0.0, biasanya sudah ada pada default squid.conf), kemudian menentukan jumlah pengaturan bandwidth yang diperlukan (delay pools 1, hanya ada 1 class pengaturan untuk universitas). Langkah selanjutnya adalah menentukan pool yang diatur dalam class 1 (delay_class 1 1, menggunakan pool 1). Pada konfigurasi berikutnya, tentukan acl yang menggunakan class 1 (delay_access 1 allow all), konfigurasi class 1 digunakan untuk semua). Terakhir, tentukan batasan maksimum paket setiap detik (delay_parameters 1 8000/8000, yaitu 64kbps atau 8kByte persecond)


Membatasi Bandwidth untuk Setiap User/Komputer

Contoh yang lain adalah membatasi bandwidth untuk setiap komputer maksimum sebesar 12kbps. Sebelumnya, Anda harus mendefinisikan acl yang akan menerima pengaturan tersebut, misalkan nomor IP dengan awalan 192.168.1.

acl user12kbps src 192.168.1.0/255.255.255.0

Selanjutnya, buatlah pengaturan dengan 1 class saja dengan pool 3

delay pools 1
delay_class 1 3

Aturlah acl yang menggunakan pengaturan class 1 dan tolak semua pengguna di luar acl (termasuk dalam acl all)

delay_access 1 allow user12kbps
delay_access 1 deny all

Terakhir, buatlah pengaturan bandwidth untuk keseluruhan jaringan (misalkan 64 kbps), group dari semua host (maksimum bandwidth yang ada) dan setiap individu (12 kbps dari total bandwidth 64kbps)

#delay_parameters 1 <aggregate> <network> <individual></individual></network></aggregate>
delay_parameters 1 8000/8000 -1/-1 1500/8000

Akan didapatkan konfigurasi delay pools untuk mengatur bandwidth setiap user maksimum 12kbps seperti di bawah ini:

...
...
acl user12kbps src 192.168.1.0/255.255.255.0
acl all 0.0.0.0/0.0.0.0.0

delay pools 1
delay_class 1 3

delay_access 1 allow user12kbps
delay_access 1 deny all

#delay_parameters 1 <aggreagate> <network> <individual></individual></network></aggreagate>
delay_parameters 1 8000/8000 -1/-1 1500/8000
...
...


Membatasi  Bandwidth untuk Download File Multimedia

Seringkali pembatasan bandwidth di sekolah, universitas maupun perkantoran lebih ditujukan pada pengguna yang melakukan download file-file multimedia seperti mp3, mpeg, avi, qt (quicktime) dan ram (real audio), dan sejenisnya. Untuk file lainnya diberikan hak akses dengan bandwidth maksimum (dinyatakan dalam notasi -1/-1). Untuk itu, konfigurasi delay pools dapat dibuat seperti di bawah ini:

...
acl pengguna url_regex -i 192.168
acl multimedia_maniac url_regex -i .mp3 .mpeg .mpg .mpe .avi .qt .ram .rm

delay pools 2

delay_class 1 2
delay_access 1 allow pengguna
delay_parameters 1 -1/-1 -1/-1

delay_class 2 2
delay_access 2 allow multimedia_maniac
delay_parameters 2 4000/4000 2000/4000

Berdasarkan konfigurasi di atas, bandwidth untuk seluruh pengguna yang mendownload file-file multimedia dibatasi hanya sampai 4kB/s atau 32kbps, sedangkan individu hanya mempunyai kecepatan download sebesar 2kB/s atau 16kbps saja (fill-rate) sampai dengan maksimum 32kbps terpenuhi (reserve).

Untuk kondisi negara kita, seorang administrator harus cermat memperhatikan kondisi stabilitas bandwidth yang diterima dari penyedia jasa layanan internet (ISP) sebelum mulai mengatur penggunaan delay pools. Ukurlah terlebih dahulu rata-rata bandwidth yang Anda peroleh dari ISP dengan software pengukur bandwidth. Jika administrator tidak cermat menghitung, pengaturan tersebut bisa menjadi sia-sia karena bandwidth yang didapatkan ternyata di bawah konfigurasi maksimum.

(z)

Monday, February 25, 2013

Membatasi Hak Akses Bandwidth Menggunakan Squid

Membatasi Hak Akses Bandwidth Menggunakan Squid

Ide pembatasan bandwidth pada Squid sebetulnya berasal dari Universitas Western Australia yang ingin membatasi biaya dan kepadatan lalu lintas jaringan ke Internet untuk mahasiswa, tetapi tidak mempengaruhi akses internet bagi staf dan akses lokal di dalam universitas. Jika pada Squid versi 1.0 kemampuan tersebut disebut dengan delay_hack, maka mulai versi 2, kemampuan ini disebut dengan delay pools.
Namun demikian, tidak semua instalasi squid langsung mendukung delay pools. Anda perlu menambahkan --enable-delay-pools saat kompilasi paket RPM squid ataupn paket debian. Anda tidak perlu lagi mengubah apapun untuk memperoleh dukungan delay pools.
Pengaturan delay pools membutuhkan konfigurasi minimal seperti di bawah ini:

acl <nama_acl> src <nomor_ip></nomor_ip></nama_acl>
delay_pools <jumlah_pengaturan></jumlah_pengaturan>
delay_class <no_urut_pengaturan> <pilihan_pool_1-3></pilihan_pool_1-3></no_urut_pengaturan>
delay_access <no_urut_pengaturan> allow <nama_acl></nama_acl></no_urut_pengaturan>
delay_parameters <no_urut_pengaturan> <max_bandwidth></max_bandwidth></no_urut_pengaturan>

Pada dasarnya, tag delay pools membagi konfigurasi dalam beberapa class. SEbagai contoh, jika Anda mempunya 2 aturan bandwidth yang berbeda maka konfigurasi delay pools membutuhkan 2 class untuk mengatur 2 perbedaan tersebut. Setiap class dapat memilih untuk menggunakan pengaturan pada pool 1, pool 2 atau pool 3. Perbedaan ketiga pool tersebut adalah :

Pool 1
Hanya mengatur pembatasan bandwidth pada keseluruhan jaringan yang melewati squid (aggregate). Semua user diperlakukan sama dalam satu pengaturan

Pool 2
Mampu mengatur pembatasan bandwidth untuk keseluruhan jaringan dan akses setiap individu (setiap nomor IP) yang melewati squid (aggregate dan individual)

Pool 3
Mampu mengatur pembatasan bandwidth seperti pool 2 ditambah dengan grup dari semua host (aggregate, network, dan individual)

Untuk contoh-contoh penggunaan delay pool, akan saya lanjutkan pada postingan selanjutnya

(z)

Membatasi Hak Akses Internet pada Hari Tertentu Menggunakan Squid

Membatasi Hak Akses Internet pada Hari Tertentu Menggunakan Squid

Pada postingan sebelumnya, telah saya paparkan sedikit tentang bagaimana membatasi hak akses internet pada waktu tertentu dengan menggunakan Squid. Selanjutnya, pada postingan kali ini, saya coba memaparkan cara memberi hak akses internet pada hari tertentu.
Hak akses internet juga dapat diatur penggunaannya berdasarkan hari tertentu. Hal ini dapat diterapkan pada kasus sebelumnya. Apabila lab-a hanya dipakai untuk hari Senin, Rabu, dan Jumat, sedangkan lab-b digunakan hanya pada hari Selasa dan Kamis untuk kelas Internet, maka konfigurasi squid dapat diatur seperti di bawah ini :

#access controls
..
acl lab-a src 192.168.1.11-192.168.1.40/24
acl lab-b src 192.168.1.41-192.168.1.70/24
acl hari-lab-a time MWF
acl hari-lab-b time TH


#http_access

http_access allow hari-lab-a lab-a
http_access allow hari-lab-b lab-b
http_access deny all

Kombinasi huruf MWF dan THpada ACL hari-lab-a dan hari-lab-b merupakan singkatan hari untuk penulisan Access Control. Anda dapat melihat arti dari masing-masing singkatan pada tabel di bawah ini:
Membatasi Hak Akses Internet pada Hari Tertentu Menggunakan Squid


Setelah service squid di-restart atau di-reload, hak akses internet hanya dapat digunakan di lab-a pada hari Senin, Rabu dan Jumat (MWF), sedangkan akses Internet di lab-b hanya dapat digunakan pada hari Selasa dan Kamis. Hal ini dimungkinkan karena http_access hanya memperbolehkan (allow) lab-a pada saat yang telah diatur dalam hari-lab-a dan di lab-b pada waktu yang telah diatur dalam hari-lab-b. Di luar waktu tersebut, akses internet pada kedua ruang tersebut akan ditolak (deny).

Pusingkan?, Iya, emang, harus pusing, kalo tidak, berarti belum mengerti... :

Membatasi Hak Akses Internet pada Jam Tertentu Menggunakan Squid

Membatasi Hak Akses Internet pada Jam Tertentu Menggunakan Squid

Oke, lanjutan dari bahasan yang lalu, Membatasi Hak Akses Internet untuk IP Tertentu Menggunakan Squid. Kali ini akan dicoba melakukan konfigurasi untuk membatasi hak akses internet pada jam-jam tertentu saja dengan menggunakan bantun squid.
Contoh kasus, misalnya suatu Lembaga Pendidikan di mana jadwal kursus internet ada pada pukul 13.00 sampai pukul 21.00 untuk Lab A setiap harinya, sedangkan Lab B hanya mempunyai jadwal dari pukul 17.00 sampai pukul 19.00.
Untuk memenuhi aturan tersebut, maka perlu dibuatkan access control list yang akan membatasi pemakaian internet pada waktu tertentu saja sesuai dengan Lab masing-masing. Kemudian dibuatkan acl dengan directive time

#access control list
acl lab-a src 192.168.1.61-192.168.1.60/24
acl lab-b src 192.168.1.61-192.168.1.70/24
acl jam-lab-a time 13:00-21:00
acl jam-lab-b time 17:00-19:00
#http_access
http_access allow jam-lab-a lab-a
http_access allow jam-lab-b lab-b
http_access deny all

Jika dilihat pada directive http_access, di sana formatnya menjadi
http_access allow jam-lab-a lab-a
dengan bahasa sederhana mungkin seperti ini, akses http, pada waktu acl jam-lab-a, dan dibolehkan untuk acl lab-a, yakni IP 192.168.1.61-192.168.1.60
Jadi penambahan setelah allow dianggap sebagai operator and (dan)

Setelah service squid di-restart atau di-reload, maka aturannya akan menjadi:
- lab-a hanya dapat mengakses internet pada pukul 13.00 - 21.00
- lab-b hanya dapat mengakses internet pada pukul 17.00 - 19.00
Selain itu, maka semua akses internet akan ditolak (deny)


Demikian semoga bermanfaat

(z)

Sunday, February 24, 2013

Instalasi dan Konfigurasi Dasar Squid

Instalasi dan Konfigurasi Dasar Squid

Tentunya dibutuhkan base system (OS) linux dalam instalasi squid, walaupun squid juga mengeluarkan versi untuk windows.
Pada tutorial ini, digunakan Ubuntu Server 12.12. Proses instalasi dasar squid cukup mudah, yang penting dengan satu syarat, Server Anda harus terhubung dengan koneksi internet.

Setelah dipastikan Server sudah terhubung ke internet, selanjutnya ke tahapan instalasi squid

sudo apt-get install squid

Untuk menjalankan squid, bisa menggunakan perintah,

sudo /etc/init.d/squid start

Untuk mematikan squid, bisa menggunakan perintah,

sudo /etc/init.d/squid stop

Selanjutnya, kita akan sedikit mengkonfigurasi squid. File konfigurasi squid bernama squid.conf, yang biasanya/default beraada lada lokasi

/etc/squid/squid.conf

Sebelum diacak-acak, backup terlebih dahulu

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.ori

Lakukan edit pada file squid.conf

pico /etc/squid/squid.conf

File konfigurasi squid, sebenarnya berisi juga manual singkat dari tag-tag yang digunakan, dan itu ada sekitar 5000 baris lebih, akan cukup sulit untuk melakukan pengeditan file.
Olehnya itu, ada trik kecil untuk mengatasi itu, yakni dengan membuang semua manual/komentar yang ada pada file konfigurasi squid itu sendiri.

cat /etc/squid/squid.conf | egrep -v "(^#.*|^$)"

dengan begitu, maka file konfigurasi hanya akan berisi tag-tag saja, tanpa ada lagi komentar atau manualnya.

Selanjutnya, hanya akan ditambahkan settingan dasar saja

tag acl dan http_access
 
Pertama-tama, mendaftarkan jaringan kita ke ACL squid

acl jaringan_saya src 192.168.1.0/24 192.168.2.0/24
http_access allow jaringan_saya


cache_dir

Yang lain yang bisa dikonfigurasi saat ini adalah cache_dir. Defaultnya,

cache_dir ufs /var/spool/squid 100 16 256

Saya jelaskan singkatnya, artinya lokasi direktori cache (tempat menyimpan objek yang dicache) ada di direktori /var/spool/squid dan dialokasikan sebesar 100 mega bytes. Angka 16 dan 256 adalah jumlah direktori cache yang dibuat. 16 artinya akan ada 16 direktori di /vaar/spool/squid, dan didalamnya masing-masing ada 256 direktori lagi.

Jadi kalau Anda ingin mengubah besar alokasi untuk cache, ganti angka 100 itu dengan angka baru. Misal untuk mengalokasikan sebesar 2 GB, ganti dengan 2000.

Setelah dilakukan konfigurasi sangat dasar, saat ini cukup dua konfigurasi itu saja (biar Anda tidak pusing), Anda bisa merestart squid.

sudo /etc/init.d/squid restart

Tapi proses restart biasanya akan agak lama. Untuk mempermudah, tanpa perlu melakukan restart squid, jalankan saja perintah berikut.

sudo squid -k reconfigure 

Selesai, instalasi dan konfigurasi dasar squid

Membatasi Hak Akses Internet untuk IP Tertentu Menggunakan Squid

Membatasi Hak Akses Internet untuk IP Tertentu Menggunakan Squid

Sebenarnya ini catatan untuk saya saja kok. Yakni bagaimana mengatur hak akses penggunaan internet oleh IP tertentu dengan menggunakan Squid.
Contoh kasus, misalnya dalam suatu jaringan kelas C 192.168.1.0/24, terdapat beberapa user yang bisa menggunakan koneksi internet dan ada juga yang tidak boleh.
Berikut ini, contoh user dan IP yang boleh menggunakan akses internet :
1. Si Bos, dengan IP 192.168.1.11 untuk PC dan 192.168.1.12 untuk laptop
2. Sekretaris Bos, dengan IP 192.168.1.13
3. Lima orang Staf Marketing, dengan IP 192.168.1.20 - 192.168.1.24
Selebihnya, hanya bisa menggunakan akses intranet dan tidak boleh mengakses internet.

Berikut pengaturan pada squid.conf nya

#access control lists
acl all src 0.0.0.0/0
acl bos src 192.168.1.11-192.168.1.12/24
acl sekretaris src 192.168.1.13/24
acl marketing src 192.168.1.20-192.168.1.24/24


#http_access
http_access allow bos
http_access allow sekretaris
http_access allow marketing
http_access deny all

Pastikan untuk me-restart service dari squid untuk me-reload konfigurasi yang telah dibuat
/etc/init.d/squid restart

Dari penerapan rule di atas, maka hanya beberapa orang saja yang bisa mengakses internet, yakni hanya si Bos dan sekretaris, beserta beberapa staff marketing. Ini dimungkinkan karena beberapa tag http_access hanya memperbolehkan (allow) ketika jenis pengguna di atas yang telah didaftar sebelumnya, selebihnya ditolak (deny).

Sedikit penjelasan
tag acl

Friday, January 25, 2013

Otomatis Boot Jika suatu Saat Ubuntu Server Crash


Salam...

Otomatis Boot Jika suatu Saat Ubuntu Server Crash


Ini untuk catatan saja buat saya (dan juga buat yang lain) yang pernah ngalami hal kek gini..

Suatu saat, ubuntu server saya crash, terpaksa di turn-OFF paksa sama operator (yang nun jauh di sana).
Setelah reboot, tunggu dan menunggu, belum bisa ngeremot juga.

Ternyata masalahnya adalah, Menu Grub, menunggu kita menekan enter (ini terjadi pada Ubuntu 10.10 yg sy coba).
Akhirnya, sy me-remote pula operator di sana, untuk memasangkan keyboard dan menekan enter (tentunya, setelah dipasang monitor dulu, buat lihat apa masalahnya Click here to enlarge).

Untuk mengatasi hal tersebut terjadi lagi, maka harus mengedit parameter pada konfigurasi grub nya.

sudo pico /boot/grub/grub.cfg

ubah
if [ ${recordfail} = 1 ]; then
set timeout=-1 #ini yang menyebabkan otomatis bootnya, ga bisa
else
set timeout=2

ganti menjadi
if [ ${recordfail} = 1 ]; then
set timeout=2
else
set timeout=2
Itu saja, mudah-mudahan ke depannya Server Ubuntu saya gak Crash lagi...


(z)