.:My Black Corner:.

Thursday, August 30, 2007

Mencegah syn flood attack dengan iptables

SYN flooding attack adalah istilah teknologi informasi dalam bahasa Inggris yang mengacu kepada salah satu jenis serangan Denial-of-service yang menggunakan paket-paket SYN. (sumber: wikipedia Indonesia).

Disini saya menerapkan limit pada paket-paket SYN yang masuk, dengan iptables. "--limit" dalam script ini terbagi menjadi dua penjelasan:
--limit [params]: Adalah jumlah maksimal dalam satuan [params]. Dimana [params] disini adalah /s (second), /m (minute), /h (hour), /d (day). Default adalah 3/hour.
--limit-burst [number]: Adalah inisialisasi jumlah paket SYN yang tertangkap. Default adalah 5.

Pada script iptables ini saya juga menerapkan pengamanan terhadap service SSH (port 22). Dimana saya melakukan pembatasan koneksi. Saya ambil cuplikan salah satu script.

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 600 --hitcount 11 -j DROP

Default port SSH adalah 22.
"--seconds 600" adalah waktu untuk 10 menit koneksi, dimana 600 detik=10 menit (1 menit=60 detik; 10 menit=600 detik).
"--hitcount 11" adalah jumlah connection limit untuk tidak melampaui 10, andaikata lebih dari 10 maka berlaku "-j DROP".

KESIMPULAN script diatas adalah:
iptables akan membatasi port 22 (SSH) untuk tidak melayani permintaan koneksi lebih dari 10 koneksi dalam rentang waktu 10 menit.

Penjelasan selebihnya bisa didapatkan pada man iptables atau pada dokumentasi netfilter/iptables.

Berikut cara penggunaan script untuk mem-blok syn flood. Buatlah file dengan nama "terserah.sh" lalu masukan script iptables pada akhir artikel ini. Jangan lupa untuk memberikan hak akses untuk dapat di eksekusi (chmod 700).


#SCRIPT BLOK SYN FLOOD IPTABLES
clear
printf "Copyright by cybercolombuzz\n"
printf "\n\n"
printf "Masukan ip address server:"
read SERVER_IP
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -N syn_flood
iptables -A INPUT -p tcp --syn -j syn_flood
iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A syn_flood -j DROP
iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j ACCEPT

iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j LOG --log-prefix PING-DROP:
iptables -A INPUT -p icmp -j DROP

iptables -A OUTPUT -p icmp -j ACCEPT
iptables -I INPUT -p tcp -s 0/0 -d $SERVER_IP --sport 513:65535 --dport 22 -m state --state NEW,ESTABLISHED -m recent --set
-j ACCEPT

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 600 --hitcount 11 -j DROP

iptables -A OUTPUT -p tcp -s $SERVER_IP -d 0/0 --sport 22 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT

posted by .:CyberColombuzz:. at 4:56 PM 0 comments

Wednesday, August 29, 2007

Upgrade Kernel Ubuntu Feisty Fawn

Secara default kernel milik ubuntu 7.04 adalah kernel-2.6.20.15-generic. Pada artikel kali ini saya publish bagaimana upgrade kernel default feisty fawn ke kernel-2.6.22-9-generic. Untuk mengetahui fitur kernel 2.6.22-9-generic ini bisa dilihat disini. Ada langkah penting yang harus kita lakukan sebelum meng-upgrade kernel ini pada feisty fawn. Pertama kita harus menambahkan repository milik gusty gibbon (ubuntu 7.10), hal ini dilakukan sementara untuk menerapkan versi kernel baru pada feisty.

root# echo ‘deb http://archive.ubuntu.com/ubuntu/ gutsy main restricted’ | sudo tee -a /etc/apt/sources.list

Lalu jangan lupa untuk meng-update source list apt.
root# apt-get update

Berikutnya kita install kernel beserta modul bawaannya.
root# apt-get install linux-backports-modules-2.6.22-9-generic linux-headers-2.6.22-9 linux-headers-2.6.22-9-generic linux-image-2.6.22-9-generic linux-restricted-modules-2.6.22-9-generic linux-ubuntu-modules-2.6.22-9-generic

Setelah system selesai meng-install jangan lupa untuk menghapus kembali source.list gusty gibbon yang tadi dibuat. Caranya edit file /etc/apt/sources.list , dan berikan tanda comment ("#") pada baris:
deb http://archive.ubuntu.com/ubuntu/ gutsy main restricted

Setelah selesai langkah berikutnya adalah meng-update kembali source list dengan perintah:
root# apt-get update

Apabila sampai sini tidak ada masalah. Untuk menerapkan versi kernel yang baru pada sistem feisty kita, yang harus kita lakukan adalah me-reboot kompi.


TROUBLESHOOTING

Apabila setelah reboot, kompi kita bermasalah, maka ikuti langkah berikut untuk mengembalikan kernel ke versi sebelumnya.
Uninstall kernel versi baru, perintahnya:
root# apt-get remove linux-backports-modules-2.6.22-9-generic linux-headers-2.6.22-9 linux-headers-2.6.22-9-generic linux-image-2.6.22-9-generic linux-restricted-modules-2.6.22-9-generic linux-ubuntu-modules-2.6.22-9-generic

Hal ini akan menghapus list kernel pada menu Grub, tapi untuk beberapa kasus kita harus menghilangkannya secara manual. Edit file /boot/grub/menu.lst.
root# vi /boot/grub/menu.lst

Hapus baris-baris seperti dibawah ini:

title Ubuntu, kernel 2.6.22-9-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-9-generic root=UUID=34f3806f-36b8-494d-be17-78325684a0a5 ro quiet splash
initrd /boot/initrd.img-2.6.22-9-generic
quiet
savedefault

title Ubuntu, kernel 2.6.22-9-generic (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-9-generic root=UUID=34f3806f-36b8-494d-be17-78325684a0a5 ro single
initrd /boot/initrd.img-2.6.22-9-generic

Simpan dan keluar, lalu restart kompi.
Selamat mencoba...

posted by .:CyberColombuzz:. at 10:15 AM 0 comments

Thursday, August 16, 2007

Menginstall server game Counter Strikes di mesin Linux

Keperluan installasi:

128kB/s down/upload,

1 GHz CPU,

512MB memori,

1 GB ruang HDD,

libstdc++.so.5.



Sebelumnya kita harus mendonlot beberapa paket yang dibutuhkan. Dan buat direktori tempat menyimpan file.

# mkdir /usr/hlds
# cd /usr/hlds

Download link-link dibawah ini dengan menggunakan wget [url_link].

hldsupdatetool.bin
metamod-1.19-linux.tar.gz
amxmodx-1.75a-base.tar.gz
amxmodx-1.75-cstrike.tar.gz


Installasi HDLS:

Lakukan perintah dibawah ini, masih dalam direktori /usr/hdls/ :

# chmod +x hldsupdatetool.bin
# ./hldsupdatetool.bin

Jika pada saat penginstalan muncul pesan “sh: uncompress: command not found”, langkah yang harus dilakukan adalah:

# ln -s /usr/bin/gunzip /usr/bin/uncompress

Setelah langkah-langkah diatas berhasil dilakukan maka kita akan mendapatkan file dengan nama `steam`. Dengan perintah inilah kita memulai installasi server CS yang sebenarnya:

# ./steam -command update -game cstrike -dir .

Sebaiknya setelah memberikan perintah ini kita menyeduh secangkir kopi ato siapkan tempat untuk istirahat sejenak. Ini akan berlangsung relatif lama (200MB) tergantung bandwidth internet masing-masing. Proses ini akan berakhir ditandai dengan pesan:

HLDS installation up to date


Konfigurasi HLDS

Kita membutuhkan konfigurasi server HDLS. Bisa di donlot pake perintah:

# wget http://download.softpedia.ro/linux/games/diverse/server.cfg


Installasi MetaMOD

Buat direktori yang diperlukan dalam meng-install MetaMOD:

# mkdir /usr/hlds/cstrike/addons
# mkdir /usr/hlds/cstrike/addons/metamod
# mkdir /usr/hlds/cstrike/addons/metamod/dlls

Lalu masuk ke direktori yang sudah dibuat tadi:

# cd /usr/hlds/cstrike/addons/metamod/dlls

Ekstrak file archive yang kita simpan di /usr/hlds/ :

# tar xfz /usr/hlds/metamod-1.19-linux.tar.gz

Setelah ini kita akan mendapatkan file `metamod_i386.so`. Langkah selanjutnya adalah membuat HDLS mengenal letak file `dll` metamod game. Edit file /usr/hlds/cstrike/liblist.game.

# vi /usr/hlds/cstrike/liblist.game

Edit baris:
gamedll_linux “dlls/cs_i386.so”

Ganti menjadi:
gamedll_linux “addons/metamod/dlls/metamod_i386.so”


Installasi AmxMODX

Masuk ke direktori cstrike dan lakukan perintah berikut ini:

# cd /usr/hlds/cstrike
# tar xfz /usr/hlds/amxmodx-1.75a-base.tar.gz
# tar xfz /usr/hlds/amxmodx-1.75-cstrike.tar.gz

Setelah di-ekstrak maka kita akan mendapatkan direktori dengan nama `amxmodx` di dalam /usr/hlds/cstrike. Berikutnya kita harus membuat MetaMOD menggunakan plugin AMXModX, dengan perintah:

# echo “linux addons/amxmodx/dlls/amxmodx_mm_i386.so” > /usr/hlds/cstrike/addons/metamod/plugins.ini


Konfigurasi AMXModX

Direktori konfigurasi ini terletak di /usr/hlds/cstrike/addons/amxmodx/configs.


Buat user agar dapat menggunakan akses ke server

Kita bisa membuat username dan password untuk administrator game di server. Penambahan user ini akan disimpan di file `users.ini`. Sebagai contoh, jika kita menambahkan account admin dengan username “Player” dan password “Player123”, maka user admin harus mengetikan perintah berikut ini untuk dapat konek ke server:

# name Player setinfo _pw Player123

Sintak “_pw” disini dapat dimodifikasi di file amxx.cfg juga di file “amx_password_field” cvar. Contoh, variable “_pw” disini bisa diganti dengan variable “_terserah”, tapi player harus mengetikan perintah berikut sebelum konek ke server:

# setinfo _terserah Player123


Menambahkan statistik permainan

Ini merupakan pilihan yang tidak wajib, tapi bisa saja kita tambahkan untuk melihat statistik permainan dalam beberapa sesi. Statistik ini akan ditampilkan pada akhir ronde permainan. Plugin ini dinamakan “StatsX” dan dapat diaktifkan dengan meng-edit file modules.ini dan plugins.ini.

Buka modules.ini lalu hapus tanda comment (#) pada baris:

csx_amxx_i386.so

Buka plugins.ini lalu hapus tanda comment (#) pada baris:

statsx.amxx
miscstats.amxx
stats_logging.amxx


Memulai menggunakan server

Pada direktori /usr/hlds ketikan perintah:

# cd /usr/hlds
# ./hlds_run -game cstrike -autoupdate +maxplayers 20 +map de_dust2

Jika kita menginginkan server berjalan pada background, perintahnya:

# ./hlds_run -game cstrike -autoupdate +maxplayers 20 +map de_dust2 > /dev/null 2>&1 &

Menggunakan tampilan GUI pada layar

Kita asumsikan system sudah memiliki GUI pada linux kita. Lalu start server CS dengan perintah:

# cd /usr/hlds
# screen -A -m -d -S hlds ./hlds_run -game cstrike -autoupdate +maxplayers 20 +map de_dust2

Karena dalam artikel ini saya menggunakan Ubuntu Feisty Fawn, maka untuk mengaktifkan server ini agar dapat berjalan pada saat boot system, perintahnya:

# echo “cd /usr/hlds” >> /etc/rc.local
# echo “screen -A -m -d -S hlds ./hlds_run -game cstrike -autoupdate +maxplayers 20 +map de_dust2″ >> /etc/rc.local

Lalu reboot kompi.

Intermezo: AK47 senjata paling favorit klo maen CS. Beware TNT, terorists is not tired...

Selamat bermain game Counter Strikes dengan server system Linux.

Get out of there she's gonna blow... :D


posted by .:CyberColombuzz:. at 2:49 PM 4 comments

Friday, August 10, 2007

Akhirnya Feisty Fawn datang juga

Fuiiih... akhirnya setelah menunggu kurang lebih hampir sebulanan, Feisty Fawn yang saya pesan dari https://shipit.ubuntu.com/ datang juga. Akhirnya merasakan juga punya cd Ubuntu versi "asli", bukan Ubuntu "Pirate Edition". Saya pesan 2 cd Feisty Fawn versi PC biasa dan 1 cd Feisty Fawn versi PC 64bit plus dikasi bonus 4 sticker Ubuntu. Bagi Linuxer khususnya Ubuntu(ers) cara mendapatkan cd Ubuntu gampang banget, tinggal registrasi di https://shipit.ubuntu.com/ dan klik apa yang di pesan. Sementara ini saya lagi menunggu Ubuntu 7.10 dengan codename "Gusty Gibbon" di shipit. Oia saya mau share sedikit foto kebahagiaan saya bersama Feisty Fawn nih... Sampe-sampe helm kesayangan pun ikut merasakan pernah ditempeli sticker ubuntu. Cuma sayang ternyata kiriman dari Belanda gak ada bau-bau kejunya, hehehe...



posted by .:CyberColombuzz:. at 9:02 AM 1 comments

Wednesday, August 08, 2007

Bandwidth Limiter dengan Delay Pools (Lanjutan squid-2.6.STABLE12)

Pada installasi squid di artikel sebelumnya saya membuat satu blok script dengan nama Parameter Delaypool pada file /etc/squid.conf, berikut ini cuplikannya:

#--------------------------------------------------------------------------
# Parameter Delaypool
#--------------------------------------------------------------------------
acl dadhee src 192.168.0.111/255.255.255.255 # Access Control List dengan nama dadhee
acl server src 192.168.0.254/255.255.255.255 # acl dengan nama server
acl umum src 192.168.0.0/255.255.255.0
acl fenti src 192.168.0.11

acl TIME time SMTWHFA 08:00-17:00 # acl dengan nama TIME [nama_hari] [waktu_akses]

acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
acl download url_regex -i ftp \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$
acl download url_regex -i \.midi$ \.rmi$ \.wma$ \.wmv$ \.ogg$ \.ogm$ \.m1v$ \.mp2$ \.mpa$ \.wax$
acl download url_regex -i \.m3u$ \.asx$ \.wpl$ \.wmx$ \.dvr-ms$ \.snd$ \.au$ \.aif$ \.asf$ \.m2v$
acl download url_regex -i \.m2p$ \.ts$ \.tp$ \.trp$ \.div$ \.divx$ \.mod$ \.vob$ \.aob$ \.dts$
acl download url_regex -i \.ac3$ \.cda$ \.vro$ \.deb$

delay_pools 4

delay_class 1 1
delay_parameters 1 -1/-1
delay_access 1 allow dadhee
delay_access 1 allow server
delay_access 1 deny all

# bandwidth 8 kbytes/sec, bila file yang diakses melebihi 64Kbte
delay_class 2 2
delay_parameters 2 8000/8000 1000/64000
delay_access 2 allow umum
delay_access 2 allow download TIME
delay_access 2 deny all

# bandwidth unlimited
delay_class 3 1
delay_parameters 3 -1/-1
delay_access 3 allow umum
delay_access 3 allow download !TIME
delay_access 3 deny all

# bandwidth 4 kbytes/sec, bila file yang diakses melebihi 32 Kbyte
delay_class 3 1
delay_parameters 3 4000/32000
delay_access 3 allow fenti
delay_access 3 allow download TIME
delay_access 3 deny all


Penjelasan:

delay_pools [jumlah delay_pools]
Adalah pen-deklarasian berapa delay_pools yang akan kita buat.

delay_class
Adalah pen-deklarasian mengenai class pembagian bandwidth dari setiap pool. Dengan syarat 1 pool hanya boleh memiliki 1 class


Berikut adalah pembagian class bagaimana cara membagi bandwidth:

Class 1:
Bandwidth yang tersedia akan diberikan sama rata kepada setiap user squid.
Contoh: apabila total bandwidth 256 kbps, maka akan dipakai bersama untuk keperluan browsing.

Class 2:
Bandwidh yang tersedia akan dibatasi untuk keperluan download dan sisanya digunakan untuk keperluan browsing secara bersama oleh user-user squid.
Contoh: apabila total bandwidth 256 kbps, Dipakai 64 kbps untuk keperluan download dan sisanya 192 kbps untuk keperluan browsing.


Class 3:
Bandwidth yang tersedia akan dibatasi menurut jumlah network yang terkoneksi. Dan tiap-tiap user squid dalam wilayah network tersebut akan menerima sama rata sesuai dengan total bandwidth per network.
Contoh: Misal total bandwidth 256 kbps, 64 kbps dipakai untuk browsing dan sisanya dipakai untuk keperluan lain. Dalam jaringan terbagi 3 network, A(192.168.1.0/24), B(192.168.2.0/24) dan C(192.168.3.0/24). Misal oleh admin jatah tiap-tiap network tersebut 64 kbps. Maka,
User-user yang online pada net A akan mendapat bandwidth sama besar dari total 64 kbps.
User-user yang online pada net B akan mendapat bandwidth sama besar dari total 64 kbps.
User-user yang online pada net C akan mendapat bandwidth sama besar dari total 64 kbps.

misal:
delay_class 1 2 # pool 1 menggunakan type class 2
delay_class 2 3 # pool 2 menggunakan type class 3


delay_access [nama_acl]
Memberikan batasan siapa saja yang diperbolehkan menggunakan delay pools ini dengan memanggil nama bagian acl (Access Control List). Dengan catatan setelah menentukan batasan jangan lupa akhiri dengan 'deny all'.
Contoh:
delay_access 1 allow dadhee
delay_access 1 deny all
delay_access 2 allow admin
delay_access 2 deny all


delay_parameters
Ini adalah rule terpenting dari delay_pools, mempunyai format yang disesuaikan dengan class yang dipakai. Di setiap tipe yang dipakai hanya ada satu aturan main yaitu restore/max.
restore adalah indikator maksimum kecepatan data yang dapat dilewatkan bila harga max sudah terlampaui, dalam satuan bytes/second.
max adalah besarnya file yang dapat dilewatkan tanpa melewati proses delay, dalam satuan bytes.

Misalkan:

Class 1:
delay_parameter [pool individual]
Contoh: delay_parameters 1 1000/128000
Berarti semua network akan mendapatkan bandwidth yang sama di pool nomor 1. Sebesar 1 kbytes/second atau setara dengan 8 kbps dengan burstable (maks bandwidth yang dapat diakses) sebesar 128 kb.

Class 2:
Contoh: delay_parameters 1 64000/64000 1000/128000
Berarti squid akan memakai bandwidth maksimum (64000*8) sama dengan 512 kbps dari semua bandwidth. Apabila terdapat network yang berbeda, maka total yang dihabiskan tetap 512 kbps dan tiap user akan mendapat bandwidth maksimum 1 kbytes.second (8 kbps), dengan burstable 64 kb.

Class 3:
Contoh: delay_parameters 1 32000/32000 8000/8000 1000/128000
Berarti squid akan memakai bandwidth maksimum (32000*8) sama dengan 256 kbits dari semua bandwidth. Apabila terdapat lebih dari satu network, maka setiap network akan dipaksa maksimum (8000*8) sama dengan 64 kbps dan tiap user pada satu network akan mendapat bandwidth maksimum 1 kbytes/sec (8 kbps), dengan burstable 64 kb.

CATATAN:

1 byte = 8 bit.



Waktu akses:
Penjelasan pada baris:
acl TIME time SMTWHFA 08:00-17:00
Adalah bentuk acl pewaktuan yang dimana SMTWHFA berarti:
S=Sunday, M=Monday, T=Tuesday, dan seterusnya
Bentuk baris
acl TIME time SMTWHFA 08:00-17:00 harus diikuti dengan:
delay_access [delay_pools] allow [nama_acl_download] TIME untuk memperbolehkan menggunakan fasilitas download berlaku selama 7 hari dan dengan batasan waktu dari jam 08:00 sampai 17:00. Atau delay_access [delay_pools] deny [nama_acl_download] TIME untuk menolak menggunakan fasilitas download pada waktu yang sudah ditentukan.


posted by .:CyberColombuzz:. at 11:05 AM 3 comments

Friday, August 03, 2007

squid-2.6.STABLE12 Installasi dan konfigurasi sebagai proxy filtering, cache server, dan bandwidth limiter

Salam opensource..!
Saya rencanakan artikel ini di bagi ke beberapa bagian. Untuk artikel yang pertama ini saya khususkan pada cara installasi, konfigurasi sederhana dan bagaimana cara menggunakan squid. Untuk mendapatkan squid bisa di download di sini. Dalam artikel ini saya menggunakan squid 2.6 STABLE 12. Berikut adalah cara installasi squid paket tarball. Selalu menggunakan root user dalam meng-install.
root# tar xfvz squid-2.6.STABLE12.tar.gz -C /usr/local/share
root# cd /usr/local/share
root# ./configure --prefix=/usr/local/squid --sysconfdir=/etc/ --sbindir=/usr/local/squid/sbin --bindir=/usr/local/squid/sbin --enable-linux-netfilter --enable-delay-pools --enable-snmp --enable-cache-digest --enable-useragent-log --enable-arp-acl --enable -gnuregex --enable-icmp --enable-htcp --enable-ssl --enable-large-cache-files --enable-carp --with-pthreads --enable-removal-policies=heap --enable-arp-acl --with-large-files --enable-forw-via-db --enable-leakfinder --enable-storeio=diskd,ufs --enable-truncate --enable-err-languages=English --enable-default-err-languages=English
root# make
root# make install


Apabila sudah diinstall maka yang perlu diperhatikan adalah letak dari file squid.conf yang ada di /etc/squid.conf dan letak file-file yang dibutuhkan squid di /usr/local/squid/.

Buat direktori cache:
root# mkdir --mode=777 /usr/local/squid/var/cache/
root# chown -Rf squid:squid /usr/local/squid/var/cache/


Buat user squid:
root# useradd –d /usr/local/squid/var/cache/ -r –s /dev/null squid >/dev/null 2>&1

Buat file kosong access.log dan cache.log:
root# touch /usr/local/squid/var/logs/access.log
root# touch /usr/local/squid/var/logs/cache.log
root# chown -Rf squid:squid /usr/local/squid/var/logs/
root# chmod -Rf 777 /usr/local/squid/var/cache/

Download file squid.conf.tar.gz di sini. Lalu ekstrak file tersebut di /etc/.
root# tar xfvz squid.conf.tar.gz -C /etc/

Setelah meng-ekstrak file squid.conf.tar.gz di /etc/ langkah selanjutnya adalah membuat direktori /usr/local/squid/etc/squid/. Direktori ini akan menjadi tempat rule file manajemen akses untuk browsing dari client.
root# cd /usr/local/squid
root# mkdir etc
root# mkdir squid
root# chown -Rf squid:squid /usr/local/squid/etc/


Langkah selanjutnya adalah membuat rule berupa file-file yang isinya adalah nama-nama domain yang kita ijinkan/tidak untuk di browsing oleh komputer client. Atau untuk lebih gampangnya silahkan download file-file tersebut disini. Kemudian ekstrak file tersebut di /usr/local/squid/etc/squid/. Setelah di ekstrak akan berisi 8 file dengan nama masing-masing: domains_agressif, domains_hacking, domains_warez, noporn, porn, urls_agressif, urls_hacking, dan urls_warez. Ubah kepemilikan file-file tersebut:
root# chown -Rf squid:squid /usr/local/squid/etc/

File-file ini berhubungan dengan blok konfigurasi "Manajemen Akses" di /etc/squid.conf. Penjelasan, dalam blok "Manajemen Akses" ada baris sbb:
acl porn url_regex "/usr/local/squid/etc/squid/porn"
http_access deny porn


Maksudnya adalah kita membuat acl atau rule pada URL address yang dibuka di komputer client yang melewati proxy, dengan rule yang disimpan pada /usr/local/squid/etc/squid/porn. Pada baris kedua, http_access deny [nama_acl] berarti menolak semua list domain yang telah dideklarasikan oleh 'acl [nama_acl]', apabila komputer-komputer client membuka salah satu rule pada file porn (nama_acl), yang terletak di /usr/local/squid/etc/squid/.

Begitu pula sebaliknya, masih dalam blok "Manajemen Akses" sbb:
acl noporn url_regex "/usr/local/squid/etc/squid/noporn"
http_access allow noporn

Berarti kita membuat acl dengan nama 'noporn' dan rule-nya disimpan di /usr/local/squid/etc/squid/noporn. Sedangkan http_access allow [nama_acl] adalah syntax untuk mengijinkan komputer client membuka rule [nama_acl].

Blok "Manajemen Akses" di /etc/squid.conf ini berfungsi sebagai filtering browsing. Hal ini berlaku pada komputer client yang melewati proxy squid. Ini dapat mencegah user pada client membuka alamat situs-situs yang tidak kita inginkan untuk dibuka.

Untuk menjalankan squid untuk pertama kali kita harus membuat cache terlebih dahulu dengan perintah:
root# /usr/local/squid/sbin/squid -z

Apabila pada saat pembentukan cache kita mengalami masalah folder cache tidak bisa ditulis oleh squid, maka cek kembali hak kepemilikan terhadap file tersebut. Atau lakukan perintah dibawah ini, serta ulangi langkah diatas.
root# chown -Rf squid:squid /usr/local/squid/*

Cek apakah service squid sudah berjalan, dengan perintah:
root# /usr/local/squid/sbin/squid -NCdl

atau dengan perintah:

root# /usr/local/squid/sbin/squid -sYD

Jika ditemukan kesalahan konfigurasi akan terlihat dengan perintah ini. Jika konfigurasi sudah fix, silahkan terminate squid dengan menekan Ctrl+C. Kemudian jalankan squid dengan perintah:
root# /usr/local/squid/sbin/squid -D

Apabila kita ingin squid jalan setiap kali kompi restart, ketikan command berikut:
root# echo "/usr/local/sbin/squid -z" >> /etc/rc.local

root# echo "/usr/local/sbin/squid start" >> /etc/rc.local

(akan ada penambahan/revisi pada tutorial ini)



posted by .:CyberColombuzz:. at 4:08 PM 4 comments

Burning CD lewat console mode

Salam open source..!
Burning CD lewat console? Kenapa tidak... Silahkan surfing di situs BashBurn. Sebelumnya download dulu aplikasi BashBurn. Setelah download selesai kita akan mendapatkan file BashBurn-2.1.1.tar.gz. Cara installasinya gampang:
root# tar xfvz BashBurn-2.1.1.tar.gz -C /usr/local/share

Masuk ke direktori /usr/local/share tempat dimana file BashBurn-2.1.1.tar.gz di-ekstrak, lalu install dengan meng-eksekusi file Install.sh, dan ikuti perintahnya
root# cd /usr/local/share
root# ./Install.sh





























Cara menjalankan aplikasi ini adalah dengan mengetikan perintah:
root# bashburn

Maka yang akan muncul seperti menu dibawah ini:





















Kita diharuskan terlebih dahulu meng-Configure BashBurn, maka tekan angka '7' kemudian 'enter'.



























Disini saya menggunakan Ubuntu Feisty Fawn dimana path dari cdrom berada di /media/cdrom0. Apabila telah selesai mengkonfigurasi maka 'Apply defaults' dengan mengetikan angka '26', lalu '0' untuk kembali ke menu utama. Untuk cara burn data silahkan baca manualnya, terlalu panjang kalau saya sertakan juga disini :D.
Selamat mencoba...

posted by .:CyberColombuzz:. at 2:51 PM 0 comments

Menginstall Webmin di Ubuntu Feisty Fawn

Salam open source...!
Ini artikel kedua mengenai installasi webmin di blog ini. Pada artikel pertama installasi webmin terkesan mudah dan tidak ada masalah. Masalah ditemui ketika meng-install webmin pada distro Ubuntu Feisty Fawn. Ketika googling banyak user yang menyarankan agar terlebih dahulu meng-install LAMPP. Saya lebih memilih tidak menuruti suara mayoritas di google, lebih baik kalau kita punya pemikiran sendiri kan.. siapa tau orang lain mengikuti jejak yang sudah kita tinggalkan... :D

Pertama-tama pembaca harus mengikuti aturan main yang mau gak mau harus disepakati bersama, karena ini blog saya. Hehehe... Saya lebih senang installasi menggunakan console mode dan bertindak sebagai root user (bukan memakai perintah "sudo").

Source webmin bisa didapatkan di sini. Dan untuk mendapatkannya kita butuh bantuan 'wget'.
root#
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.340_all.deb

Setelah kita men-download 'webmin_1.3.40_all.deb', selanjutnya installasi dengan perintah.
root#
dpkg -i webmin_1.340_all.deb
Selecting previously deselected package webmin.
(Reading database ... 135556 files and directories currently installed.)
Unpacking webmin (from webmin_1.340_all.deb) ...
Setting up webmin (1.340) ...
Webmin install complete. You can now login to https://pegel-linux:10000/
as root with your root password, or as any user who can use sudo
to run commands as root.


Kalau pada saat installasi webmin, system meminta library-library yang kurang maka ketikan perintah ini:
root# apt- get install -f

Apabila sudah berhasil meng-install, langkah selanjutnya adalah mengganti default password webmin dengan password baru yang kita inginkan. Aturannya: changepass.pl .
root# /usr/share/webmin/changepass.pl /etc/webmin root [password]


Langkah berikutnya hampir sama dengan langkah-langkah installasi pada artikel pertama.
Selamat mencoba...

posted by .:CyberColombuzz:. at 9:34 AM 0 comments

Wednesday, August 01, 2007

Monitoring Ubuntu Desktop dan Service Menggunakan Monit

Satu lagi aplikasi sederhana untuk me-monitor proses, file, direktori dan device menggunakan web interface. Dengan aplikasi jenis monit ini user dapat me-maintain systemnya dari jarak jauh dan dapat langsung meng-eksekusi daemon pada saat shell tidak dapat diandalkan. Berikut adalah fitur monit yang diambil dari man page.

Monit Features

* Daemon mode - poll programs at a specified interval
* Monitoring modes - active, passive or manual
* Start, stop and restart of programs
* Group and manage groups of programs
* Process dependency definition
* Logging to syslog or own logfile
* Configuration - comprehensive controlfile
* Runtime and TCP/IP port checking (tcp and udp)
* SSL support for port checking
* Unix domain socket checking
* Process status and process timeout
* Process cpu usage
* Process memory usage
* Process zombie check
* Check the systems load average
* Check a file or directory timestamp
* Alert, stop or restart a process based on its characteristics
* MD5 checksum for programs started and stopped by monit
* Alert notification for program timeout, restart, checksum, stop resource and timestamp error
* Flexible and customizable email alert messages
*Protocol verification. HTTP, FTP, SMTP, POP, IMAP, NNTP, SSH, DWP,LDAPv2 and LDAPv3
*An http interface with optional SSL support to make monit accessible from a webbrowser

Cara mendapatkan monit di Ubuntu Feisty Fawn sangat gampang, tinggal ketikan perintah ini pada console mode. (Lagi-lagi saya lebih senang bertindak sebagai root).

root# apt-get install monit

Setelah monit ter-install maka langkah selanjutnya adalah meng-edit file /etc/monit/monitrc. Tambahkan baris-baris berikut pada file tersebut.

set daemon 120 # monit akan refresh tiap 2 menit
set logfile syslog facility log_daemon
set httpd port 2812 # port http yang digunakan monit
use address localhost # memungkinkan diakses dari localhost
allow 192.168.0.111/255.255.255.255 # mengijinkan akses dari ip tertentu
allow admin:monit # User: admin dan Password:monit
# Check HTTPD
check process apache2 with pidfile /var/run/apache2.pid
start program = "/etc/init.d/apache2 start"
stop program = "/etc/init.d/apache2 stop"
# Check performa CPU
if cpu is greater than 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if totalmem > 200.0 MB for 5 cycles then restart
if children > 250 then restart
if loadavg(5min) greater than 10 for 8 cycles then stop
if 3 restarts within 5 cycles then timeout
group server
# Check MySQL
check process mysql with pidfile /var/run/mysqld/mysqld.pid
group database
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
# Check SSHD
check process sshd with pidfile /var/run/sshd.pid
start program "/etc/init.d/ssh start"
stop program "/etc/init.d/ssh stop"
if failed port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

include /etc/monit/default.monitrc
include /etc/monit/mysql.monitrc

Disini penulis hanya mengidentifikasikan 3 service saja. Apabila ingin memonitor service lain tinggal ditambahkan konfigurasi di baris bawahnya, isi script konfigurasi tidak jauh beda dari yang sebelumnya. Keterangan lebih lanjut bisa di http://www.tildeslash.com/monit/doc/manual.php .

Apabila selesai di konfigurasi awal, kita bisa cek konfigurasi tadi dengan perintah:

root# monit -t

Sebelum menjalankan monit yang perlu diperhatikan adalah meng-edit terlebih dahulu file /etc/default/monit .
Ganti nilai '0' dengan '1' pada baris:
startup = 0

menjadi

startup = 1

Lalu start aplikasi monit dengan perintah:

root# /etc/init.d/monit start
Menjalankan aplikasi ini di kompi klien dengan membuka web browser dan ketikan http://[ip_server]:[port_monit]/ . Perhatikan port default monit 2812 tidak di block oleh server.

misal: http://www.pegel-linux.com:2812/

Maka dialog pertama yang akan muncul adalah:

Masukan username: admin dan password: monit. Lalu OK.
Tampilan setelah masuk seperti ini:

Selamat mencoba.


posted by .:CyberColombuzz:. at 1:37 PM 0 comments