PROMO SELL

Monday, March 07, 2005

Instalasi web server apache support php, ms-sql dan mysql

tulisan ini timbul karena banyak teman-teman saya para programer ingin menitipkan aplikasi berbasis web di server web server berbasis linx yang dikelola oleh saya. kebetulan pada saat itu sudah ada web server apache support php dan mysql. kendala timbul ketika saya tanyakan kepada teman-teman programer apa database yang diakses, kebanyakan dari mereka menggunakan ms-sql. Dari kebutuhan tersebut saya mencari referensi-refernsi yang dibutuhkan yang ternyata belum ada referensi yang berbahasa indonesia (mungkin saya yang tidak tau, hehehehe). untuk itu saya membuat tutorial ini untuk teman-teman yang memiliki kebutuhan yang sama.saya sangat mengharapkan sekali kritik, saran dan masukan pada tulisan ini sehingga nantinya terbentuk tutorial yang representatif.
Saran, koreksi, kritik, kesalahan ketik, maupun ucapan silakan dikirimkan ke email tersebut diatas. banyak sekali kekurangan pada tutorial ini. Terima Kasih.


saya tidak terbiasa berpanjang lebar dengan kata-kata, mari kita langsung saja memulai tahapan instalasi

1. Requirement
mysql-4.0.17.tar.gz
freetds-stable.tgz
httpd-2.0.47.tar.gz
php-4.2.3.tar.gz
download file-file tersebut di situs software yang bersangkutan. apabila tidak tahu silahkan surfing di universita google, dijamin ketemu :-).
untuk semua file-file yang telah di extrack saya terbiasa meletakkannya di directory /usr/local/src. silahkan sesuaikan dengan kebutuhan anda. file-file source saya letakkan di directory /home/bdul.


2. Instalasi Mysql (optional, kalo anda ingin install mysql di web server anda)

tidak ada alasan apapun saya menggunakan mysql versi 4.0.17, karena memang saya hanya memanfaatkan source yang sudah ada di pc saya, dan kebetulan hanya itu yang ada.

buat user dan group untuk mysql, kalau sudah ada perintah dibawah ini tidak perlu dilakukan.
root@gateway:/usr/local/srcl# groupadd mysql
root@gateway:/usr/local/srcl# useradd -g mysql mysql

lanjutkan dengan extrak dan intallasi mysql dengan perintah :
root@gateway:/usr/local/srcl# tar zxvf /home/bdul/mysql-4.0.17.tar.gz
root@gateway:/usr/local/srcl# cd mysql-4.0.17
root@gateway:/usr/local/srcl# ./configure --prefix=/usr/local/mysql
root@gateway:/usr/local/srcl# make
root@gateway:/usr/local/srcl# make install

kalo proses ini semua berjalan lancar maka akan terdapat directory /usr/local/mysql. dapat terlihat seperti dibawah ini :
root@gateway:/usr/local/src# ls /usr/local/mysql
bin include info lib libexec man mysql-test share sql-bench var

sampai tahapan ini berarti anda sudah sukses menginstall mysql. tapi jangan senang dulu karena masih ada tahapan lain untuk mengkonfigurasi mysql agar dapat berjalan dengan baik.

masuk ke directory /usr/local/mysql dengan perintah :
root@gateway:/usr/local/srcl#cd /usr/local/mysql

jalankan script untuk menginstall databases pendukung dengan perintah :
root@gateway:/usr/local/mysql# scripts/mysql_install_db

ganti kepemilikan directory mysql beserta directory anak-anaknya sebagai milik root
root@gateway:/usr/local/mysql# chown -R root /usr/local/mysql

ganti kepemilikan directory mysql/data beserta anak-anaknya sebagai milik root
root@gateway:/usr/local/mysql# chown -R mysql /usr/local/mysql/var

ganti kepemilikan group dari directory mysql beserta anak-anaknya sebagai milik mysql
root@gateway:/usr/local/mysql# chgrp -R mysql /usr/local/mysql

ganti kepemilikan directory mysql/bin beserta anak-anaknya sebagai milik root
root@gateway:/usr/local/mysql# chown -R root /usr/local/mysql/bin

apabila sudah semua selesai dilakukan struktur directory mysql dapat dilihat seperti ini:
root@gateway:/usr/local/src# ls /usr/local/mysql -l
total 7
drwxr-xr-x 2 root root 1480 Jun 10 14:35 bin
drwxr-xr-x 3 root mysql 72 Jun 10 14:35 include
drwxr-xr-x 2 root mysql 104 Jun 10 14:35 info
drwxr-xr-x 3 root mysql 72 Jun 10 14:35 lib
drwxr-xr-x 2 root mysql 72 Jun 10 14:35 libexec
drwxr-xr-x 3 root mysql 72 Jun 10 14:35 man
drwxr-xr-x 6 root mysql 232 Jun 10 14:35 mysql-test
drwxr-xr-x 3 root mysql 72 Jun 10 14:35 share
drwxr-xr-x 5 root mysql 888 Jun 10 14:35 sql-bench
drwx------ 4 mysql mysql 288 Jun 16 09:21 var

mari kita jalankan mysql sebagai daemon
root@gateway:/usr/local/mysql# bin/mysqld_safe --user=mysql &

cek apakah mysql sudah aktif pada pc kita dengan perintah :
root@gateway:/usr/local/mysql# ps aux | grep mysql
root 3231 0.0 0.8 2048 1016 tty1 S 09:21 0:00 /bin/sh bin/mysqld_safe
mysql 3248 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3250 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3251 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3252 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3253 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3254 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3255 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3256 0.0 9.9 46092 12428 tty1 S 09:21 0:16 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3257 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3258 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
root 3462 0.0 0.3 1472 492 pts/0 S 15:46 0:00 grep mysql


tahapan konfigurasi telah selesai dan database server mysql sudah siap untuk diakses :-)
untuk lebih amannya mari kita setting password root untuk mysql kita ubah dulu dengan perintah:
root@gateway:/usr/local/mysql# bin/mysqladmin -u root password 'terserah'

sekarang mari kita masuk ke database servernya :
root@gateway:/usr/local/mysql# bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 4.0.17

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

selesai deh intalasi mysql nya. ternyata panjang juga ya :-)


3. Instalasi Freetds

saya memakai versi terbaru dari freetds pada saat ini (12 juni 2004) yaitu versi 0.62.3 dan saya langsung download dari situ http://www.freetds.org. Freetds ini dibutuhkan untuk antar muka koneksi ke database ms-sql, sebetulnya freetds bisa juga sebagai antar muka koneksi ke sybase tapi kita tidak sedang membahas itu :-) kalo mau, cari aja referensi ditempat lain ya.......

mari kita kembali ke directory /usr/local/src dan memulai tahapan instalasi freetds..
root@gateway:/usr/local/srcl# tar zxvf /home/bdul/freetds-stable.tgz
root@gateway:/usr/local/srcl# cd freetds-0.62.3
root@gateway:/usr/local/srcl# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
root@gateway:/usr/local/srcl# make
root@gateway:/usr/local/srcl# make install
root@gateway:/usr/local/srcl# make clean

kalo proses ini semua berjalan lancar maka akan terdapat directory /usr/local/freetds. dapat terlihat seperti dibawah ini :
root@gateway:/usr/local/src# ls -l /usr/local/freetds
total 4
drwxr-xr-x 2 root root 144 Jun 9 10:00 bin
drwxr-xr-x 2 root root 144 Jun 9 10:00 etc
drwxr-xr-x 2 root root 488 Jun 9 10:00 include
drwxr-xr-x 2 root root 656 Jun 9 10:00 lib
drwxr-xr-x 3 root root 72 Jun 9 10:00 man
drwxr-xr-x 3 root root 72 Jun 9 10:00 share

mari kita coba untuk mencoba freetds untuk mengakses database ms-sql. sebelum mencoba kita pindah dulu ke directory freetds
root@gateway:/usr/local/srcl# cd /usr/local/freetds

untuk mencoba koneksi kita menggunakan 'tsql' . untuk lebih jelas tentang -S -U silahkan belajar sendiri aja ya........
root@gateway:/usr/local/freetds# bin/tsql -S 192.168.1.1 -U express
locale is "C"
locale charset is "ANSI_X3.4-1968"
Password:
1>

apabila mendapatkan keluaran seperti yang diatas ini, berarti instalasi freetdsnya berjalan dengan baik.


4. Instalasi apache

apache ini digunakan untuk web server, ada banyak web server yang dapat digunakan salah satunya adalah apache. mari kita mulai tahapan instalasi apache dan kembali ke direktory /usr/local/src.
root@gateway:/usr/local/srcl# tar zxvf /home/bdul/httpd-2.0.47.tar.gz
root@gateway:/usr/local/srcl# cd httpd-2.0.47
root@gateway:/usr/local/srcl# ./configure --enable-so
root@gateway:/usr/local/srcl# make
root@gateway:/usr/local/srcl# make install

kalo proses ini semua berjalan lancar maka akan terdapat directory /usr/local/apache2. dapat terlihat seperti dibawah ini :
root@gateway:/usr/local/src# ls -l /usr/local/apache2
total 23
drwxr-xr-x 2 root root 464 Jun 10 16:04 bin
drwxr-xr-x 2 root root 312 Jun 10 16:04 build
drwxr-xr-x 2 root root 96 Jun 10 16:04 cgi-bin
drwxr-xr-x 2 root root 336 Jun 10 16:08 conf
drwxr-xr-x 3 root root 1024 Jun 10 16:04 error
drwxr-xr-x 3 root root 1400 Jun 10 17:20 htdocs
drwxr-xr-x 3 root root 4600 Jun 10 16:04 icons
drwxr-xr-x 2 root root 3568 Jun 10 16:04 include
drwxr-xr-x 2 root root 448 Jun 10 16:04 lib
drwxr-xr-x 2 root root 112 Jun 11 13:34 logs
drwxr-xr-x 4 root root 96 Jun 10 16:04 man
drwxr-xr-x 14 root root 8320 Jun 10 16:04 manual
drwxr-xr-x 2 root root 112 Jun 10 16:08 modules

mari kita coba untuk mengaktifkan web server dengan perintah:
root@gateway:/usr/local/src# /usr/local/apache2/bin/apachectl start

untuk melihat servis apache berjalan dengan baik lakukan perintah berikut:
root@gateway:/usr/local/apache2# ps aux | grep apache
root 3524 1.0 2.1 5920 2684 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3525 1.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3526 0.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3527 0.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3528 0.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3529 0.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start

apabila mendapatkan keluaran seperti yang diatas ini, berarti instalasi apache berjalan dengan baik.


5. Instalasi php

Tahapan terakhir adalah install php nya sendiri. mari kita kembali ke directory /usr/local/src dan memulai dengan extrak dan installasi
root@gateway:/usr/local/src# tar zxvf /home/bdul/php-4.2.3.tar.gz
root@gateway:/usr/local/src# cd php-4.2.3
root@gateway:/usr/local/src# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql \
--with-sybase=/usr/local/freetds --with-mssql=/usr/local/freetds
root@gateway:/usr/local/src# make
root@gateway:/usr/local/src# make install

kopikan php.ini ke directory /usr/local/lib/php.ini
root@gateway:/usr/local/src# cp php.ini-dist /usr/local/lib/php.ini

edit file httpd.conf pada directory /usr/local/apache2/conf/ dan tambahkan baris berikut
LoadModule php4_module libexec/libphp4.so
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

restart apache anda dengan perintah berikut
root@gateway:/usr/local/src# /usr/local/apache2/bin/apachectl restart

buat file test.php dan letakkan di directory /usr/local/apache2/htdocs. isi file adalah sebagai berikut :
phpinfo();
?>

coba akses file tersebut melalui browser anda, apabila ada keterangan konfigurasi php maka keseluruhan installasi berjalan dengan sukses :-)
jangan lupa untuk mengucapkan 'Alhamdulillah hirobbil alamin'

6. Referensi
www.apache.org
www.php.net
www.mysql.org
www.freetds.org

Pengamanan Shadow Password dengan Bash Scripting + Crontab

1. Persiapan

Login ke level Superuser, lalu buatlah direktori untuk menyimpan file2 shadow password dan direktori untuk file2 script-nya. Terserah anda mau membuatnya dimana..... yang penting mudah dimengerti. Saya meletakkan file2 shadownya di /home/backup/etc dan untuk file script-nya di /home/backup/script.
Lalu backup /etc/shadow ke direktori yg telah anda buat, untuk berjaga-jaga ......... jikalau anda lupa passwd rootnya ....... tinggal di recovery saja .........

[sysadmin@notebook]$ /bin/su root
[root@notebook]# cd /home
[root@notebook]# mkdir -p backup/etc
[root@notebook]# mkdir -p backup/script

[root@notebook]# cp /etc/shadow /home/backup/etc
[root@notebook]# chmod 600 backup
-
Langkah 1. Disini kita membuat passwd baru untuk root
-
[root@notebook]# passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
-
Langkah 2. Kemudian kutip baris yang mengandung kata "root" pada /etc/shadow
-
[root@notebook]# grep ^root /etc/passw > /home/backup/etc/shadow0

Ulangi lagi langkah 1 dengan passwd yang berbeda, dimana pada langkah 2 anda buat spt ini :
-
[root@notebook]# grep ^root /etc/passw > /home/backup/etc/shadow1

Ulangi terus dari langkah1 dan langkah 2 tadi..... jangan lupa untuk mengutip passwd root yang telah anda buat berbeda-beda
-
[root@notebook]# grep ^root /etc/passw > /home/backup/etc/shadow2
[root@notebook]# grep ^root /etc/passw > /home/backup/etc/shadow3
[root@notebook]# grep ^root /etc/passw > /home/backup/etc/shadow4
[root@notebook]# grep ^root /etc/passw > /home/backup/etc/shadow5
-
Ubah permission filenya, lalu lihat apakah file yang memiliki kutipan shadow passwd root sudah komplit ada 6 file -
-
[root@notebook]# chmod 600 /home/backup/etc/*
[root@notebook]# ls -l /home/backup/etc/
-rw------- 1 root root 53 2004-09-12 21:10 shadow0
-rw------- 1 root root 53 2004-09-12 21:11 shadow1
-rw------- 1 root root 53 2004-09-12 21:11 shadow2
-rw------- 1 root root 53 2004-09-12 21:11 shadow3
-rw------- 1 root root 53 2004-09-12 21:11 shadow4
-rw------- 1 root root 53 2004-09-12 21:11 shadow5


2. Pembuatan Script

Pada bagian ini kita akan membuat script yang berfungsi untuk mengubah password /etc/shadow dengan file kutipan shadow passwd root yang anda backup tadi.
Masuk ke direktori /home/backup/script, lalu isi file script tersebut dengan editing favorit anda....
-
[root@notebook]# cd /home/backup/script/
[root@notebook]# vim ubah0
#!/bin/bash
backupfile="/home/backup/etc/shadow0"
usermod -p"`cut -f2 -d: $backupfile`" root
-
[root@notebook]# vim ubah1
#!/bin/bash
backupfile="/home/backup/etc/shadow1"
usermod -p"`cut -f2 -d: $backupfile`" root
-
Buat 6 file script (ubah0, ubah1 s/d ubah5), perhatikan penomoran script maupun penomoran shadow-nya, karena itu bagian yang sensitif .......... ^_^
Setelah ke 6 script tersebut selesai dibuat, ubah permission scriptnya ......
-
[root@notebook]# chmod 700 /home/backup/script/*
[root@notebook]# ls -l /home/backup/script/
-rwx------ 1 root root 114 2004-09-12 21:18 ubah0
-rwx------ 1 root root 114 2004-09-12 21:17 ubah1
-rwx------ 1 root root 114 2004-09-12 21:18 ubah2
-rwx------ 1 root root 114 2004-09-12 21:18 ubah3
-rwx------ 1 root root 114 2004-09-12 21:18 ubah4
-rwx------ 1 root root 114 2004-09-12 21:18 ubah5

3. Mengatur Waktu Eksekusi Script Pengubah Shadow Password Pada Crontab

Pada Skenario ini, aku mengatur script tsb agar dieksekusi setiap 5 menit sekali .......... ^_^
Dimana pada menit ke 1 s/d 29 ... akan meng-eksekusi script ubah0-5, dan pada menit ke 30 s/d 59 akan mengulangi proses eksekusi dari scrip ubah0 lagi .

Tambahkan line ini pada /var/spool/cron/crontabs/root
-
00 * * * * /home/backup/script/./ubah0
05 * * * * /home/backup/script/./ubah1
10 * * * * /home/backup/script/./ubah2
15 * * * * /home/backup/script/./ubah3
20 * * * * /home/backup/script/./ubah4
25 * * * * /home/backup/script/./ubah5
30 * * * * /home/backup/script/./ubah0
35 * * * * /home/backup/script/./ubah1
40 * * * * /home/backup/script/./ubah2
45 * * * * /home/backup/script/./ubah3
50 * * * * /home/backup/script/./ubah4
55 * * * * /home/backup/script/./ubah5
-
Restart crond anda
-
[root@notebook]# killall -HUP crond
-
Lihat penampakan proses eksekusi cronnya di /var/log/cron, perhatikan baik-baik waktunya ............. ^_^
-
[root@notebook]# tail -f /var/log/cron
Sep 12 23:00:01 iman crond[3550]: USER root pid 3555 cmd /home/backup/script/./ubah0
Sep 12 23:05:01 iman crond[3550]: USER root pid 3555 cmd /home/backup/script/./ubah1
Sep 12 23:10:01 iman crond[3550]: USER root pid 3555 cmd /home/backup/script/./ubah2
Sep 12 23:15:01 iman crond[3550]: USER root pid 3555 cmd /home/backup/script/./ubah3
Sep 12 23:20:01 iman crond[3550]: USER root pid 3555 cmd /home/backup/script/./ubah4
Sep 12 23:25:01 iman crond[3550]: USER root pid 3555 cmd /home/backup/script/./ubah5
Sep 12 23:30:01 iman crond[3550]: USER root pid 3555 cmd /home/backup/script/./ubah0

.
.
dst ....

Ikuti juga perubahan passwd rootnya
-
[root@notebook]# tail -f /var/log/secure
Sep 12 23:00:01 iman usermod[3519]: change user `root' password
Sep 12 23:05:01 iman usermod[3519]: change user `root' password
Sep 12 23:10:01 iman usermod[3519]: change user `root' password
Sep 12 23:15:01 iman usermod[3519]: change user `root' password
Sep 12 23:20:01 iman usermod[3524]: change user `root' password
Sep 12 23:25:01 iman usermod[3530]: change user `root' password
Sep 12 23:30:02 iman usermod[3533]: change user `root' password
.
.
dst ....
-
Sekarang passwd root anda telah diubah otomatis menggunakan 5 passwd yang berbeda setiap 5 menit...... silahkan anda tambahkan lagi passwdnya jika merasa hal diatas masih kurang secure ..... dengan menambahkan shadow6 s/d seterusnya... atau juga anda set saja tiap menit passwdnya berubah2 terus.

Jangan sampe lupa passwdnya ............ ^_^

Selamat mencoba, Salam dari Medan City

5. Referensi

1. Manual page cut
2. Manual page crond
3. Manual page crontab
4. Manual page usermod

Flashdisk di Linux

Flashdisk ato orang menyebutnya usb flashdisk adalah piranti kecil penyimpan data portable yang bisa dipakai disemua OS termasuk Linux, untuk mengaktifkan flashdisk ini cukup mudah, syaratnya hanya kernel yang support / mendukung USB, dan biasanya setiap distro (kernel default/bawaan sudah support USB)

1. Cek module usb
Ceklah modul USB apakah sudah terpasang atau belum caranya:
ketik lsmod | grep usb; lsmod | grep ehci
jika sudah terpasang akan terlihat kurang lebih seperti ini:



dihack@idban:~> lsmod | grep usb; lsmod | grep ehci
usb-storage 71168 0
scsi_mod 97248 5 [sd_mod st sr_mod sg usb-storage]
usb-uhci 23888 0 (unused)
usbcore 64844 1 [usb-storage usb-uhci ehci-hcd]
ehci-hcd 18284 0 (unused)
usbcore 64844 1 [usb-storage usb-uhci ehci-hcd]


Catatan: jangan lihat angka - angkanya, tapi perhatikan nama modulenya seperti usb-storage, scsi_mod dan lain lain, jangan lupa untuk memasang juga modul vfat atau fat, karena biasanya type partisi yang digunakan flashdisk adalah FAT16

2. Pasang module usb
Jika module module tadi tidak terpasang, pasanglah satu persatu dng perintah: modprobe nama_module
misalnya modprobe usb-strorage

3. Pasang dan Cek flashdisk
Jika semuanya sudah tepasang, pasanglah flashdisk tadi ke port USB, kemudian jalankan printah dmesg untuk melihat apa yang terjadi

dihack@idban:> dmesg
.....skipped
hub.c: new USB device 00:1d.7-3, assigned address 7
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 7
SCSI device sda: 251904 512-byte hdwr sectors (129 MB)
sda: Write Protect is off
sda: sda4


contoh diatas adalah flashdisk yang terdeteksi pada Linux dan berada pada SCSI pertama (sda) ini dapat berbeda beda tiap komputer.

4. Cek Type flashdisk
Setelah ini cek type partisi flashdisknya, dengan cara:
sfdisk -l /dev/sda

idban:/root # /sbin/sfdisk -l /dev/sda

Disk /dev/sda: 246 cylinders, 32 heads, 32 sectors/track
Units = cylinders of 524288 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sda1 0 - 0 0 0 Empty
/dev/sda2 0 - 0 0 0 Empty
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 * 0+ 245 246- 125936 6 FAT16


terlihat disana flashdisk yang berada di sda menggunakan FAT16

5. Edit /etc/fstab
Setelah kita tahu apa type partisinya kemudian buatlah direktory tempat memount flashdisk tadi
misalnya di /mnt/flashdisk dengan perintah mkdir /mnt/flashdisk
Kemudian tambahkan :

/dev/sda4 /mnt/flashdisk vfat sync,noauto,user,exec 0 0

atau:

/dev/sda4 /mnt/flashdisk auto sync,noauto,user,exec 0 0

pada /etc/fstab

6. Proses Mount
Setelah semua tadi beres, flashdisk bisa dimount dengan perintah

mount /dev/sda4

atau

mount /mnt/flasdisk



CATATAN
tahap 2, 4 dan 5 membutuhkan root akses.
==============================================================

Mount otomatis menggunakan autofs

Kalo mau mount otomatis bisa menggunakan autofs/automount. Kalo di redhat tinggal edit /etc/auto.master dan uncomment baris terakhir

/misc /etc/auto.misc --timeout=60

lalu edit juga /etc/auto.misc dan tambahkan line

usbdisk -fstype=vfat,sync,umask=000,uid=500,gid=500 :/dev/sda1

namanya terserah, bisa "usbdisk" atau "unyil", terserah...

Lalu jalankan service autofs (bisa anda buat jalan otomatis waktu boot, kalo belum). Sesudah itu, nanti automount akan otomatis mount di /misc/usbdisk setiap kali anda mengakses ke sana (misalnya dg nautilus atau 'cd' dari shell). Tip: coba sambil perhatikan /var/log/messages untuk memahami urutan prosesnya dari mulai colok USB sampe mount.

LinuxTutorial

Last edited on Tuesday, March 16, 2004 2:09:08 pm.

USB HDD External di Linux

writer:
Iman Rahmadsyah Harahap / a_ir_hrp (shakysonyo@hotpop.com)

USB Hdd External merupakan suatu device mobile seperti FlashDisk yang dapat menampung data dengan kapasitas besar dalam ukuran Gigabyte serta bisa digunakan pada Linux.
Device ini merupakan solusi bagi siapa saja yang memiliki keterbatasan kapasitas harddisk, baik notebook, PC ataupun sekedar sebagai data backup.

Jenis & Ragam device USB External ini sangat banyak, tapi 2 hal yang umum adalah dari segi ukuran hard drivenya yaitu Hdd PC (with Adapter Power) & Hdd Notebook (without Adapter Power). Biasanya perangkat USB External ini dijual terpisah antara casing dengan hdd-nya.

1. Persiapan perangkat
- Periksa jumper, terserah anda mau di set sebagai primary, secondary ato lainnya ( Saya lebih suka Primary.... :-p )
- Pasang bus data (cable data) & cable powernya ke hdd.
- Baut/mur hdd ke casing jangan lupa di pasang.
- Sekarang pakaikan bajunya... ehh... salah... pasang casing penutup hdd nya & jgn lupa di baut/mur lagi yach ... :D



2. Persiapan Module
- Gih Baca lagi artikel nya mas Idban ...
- Sekedar mengulang saja (maaf mas Idban... saya contek dikit), lihat module USB anda sudah terpasangkah ?
anda dapat melihatnya dengan menjalankan perintah berikut,




sysadmin@iman$ lsmod |grep usb; lsmod |grep ehci
usb_storage 30464 2
usbcore 117092 5 ehci_hcd,usb_storage,uhci_hcd
ehci_hcd 31108 0
usbcore 117092 5 ehci_hcd,usb_storage,uhci_hcd

-

- Jika module tersebut kelihatan seperti diatas, sampai saat ini anda bisa sedikit lega ...
- Jika tidak kelihatan silahkan jalankan module2-nya... uppss jangan lupa login sebagai root.....

-

sysadmin@iman$ /bin/su -
Password:akusayangmama_:-p
root@iman# modprobe usb_storage
root@iman# modprobe usbcore
root@iman# modprobe uhci_hcd
root@iman# modprobe ehci_hcd

-

- Kalo perintah diatas keluar "FATAL: Module nama_module not found."
silahkan lihat config kernel anda, aktifkan module-module pendukung usb, lalu compile module nya :-(



3. Sentuhan Pertama dan periksa koneksi (Bukan Jaringan yach.... !!)
- Baca doa ... mudah2an berhasil ...
- silahkan alirkan listrik ke badannya ... koq badan sih... maaf.. hidupkan power usb hdd external nya :D
- udah hidup? Atur nafas... nah... sekarang masukkan perlahan2 tapi pasti... ke lubang itu loh... (Awas... jangan piktor !! )
- sekarang periksa apakah sudah ke detect ato belom? (detik-detik penuh kecemasan)
-

root@iman# dmesg
usb 1-1: new full speed USB device using address 3
scsi1 : SCSI emulation for USB Mass Storage devices
Vendor: Maxtor 6 Model: Y080L0 Rev: 0 0
Type: Direct-Access ANSI SCSI revision: 02
SCSI device sda: 160086528 512-byte hdwr sectors (81964 MB)
sda: assuming drive cache: write through
/dev/scsi/host1/bus0/target0/lun0: p1 p2 p3 < p5 p6 >
Attached scsi disk sda at scsi1, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi1, channel 0, id 0, lun 0, type 0
USB Mass Storage device found at 3



- **fiiuuuhhh ...** (menghela nafas) ... ternyata kedetect... :-D
- sekarang posisi hdd external anda telah dikenal sebagai sda ^_^





4. Membagi partisi & format
- masuk ke fdisk /dev/sda, lalu bagi sesuai kebutuhan anda.
Disini aku bagi menjadi 4 partisi dimana 2 partisi dengan ext3 dan 2 lagi sebagai vfat.

-

root@iman# fdisk /dev/sda
Device Boot Start End Blocks Id System
/dev/sda1 1 2615 21004956 83 Linux
/dev/sda2 2616 5230 21004987+ 83 Linux
/dev/sda3 5231 9964 38025855 5 Extended
/dev/sda5 5231 7845 21004956 b W95 FAT32
/dev/sda6 7846 9964 17020836 b W95 FAT32



- Setelah partisi dibagi & diberi type nya ... silahkan keluar, huss... huss .. hus... :D
- Saatnya memformat partisi tersebut (perhatikan pada sda berapa partisi linux anda)

-

root@iman# mkfs.ext3 /dev/sda1
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2627520 inodes, 5251246 blocks
262562 blocks (5.00%) reserved for the super user
First data block=0
161 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

-

5. Mount partisi
- buat direktory tempat me-mount partisi dari hdd external anda, lalu mount partisi tersebut

-

root@iman# mkdir /mnt/sda1
root@iman# mkdir /mnt/sda2
root@iman# mount /dev/sda1 /mnt/sda1
root@iman# mount /dev/sda2 /mnt/sda2



- Anda mau partisi2 tersebut mount secara automount saat booting ataupun saat di colokin?
Gih Baca lagi artikelnya mas idban ... Ok.... :D
- Jangan terlalu banyak terguncang pada saat hdd hidup ya...!!!



- Salam dari Medan


6. Referensi
Flashdisk - Idban Secandri
Man fdisk
Man mount
Man lsmod
Man modprobe
Man mkfs.ext3
Man si Iman a_ir_hrp .... hehehehe :D



SELAMAT MENCOBA

Salam dari Medan City .....

-------------------------------------------------------------------------------------------
<<--I.R-Harahap-Medan -->>
Aku bukanlah orang yang merasa pandai :-(
Aku selalu menganggap diriku orang yg kekurangan :-(
Dgn kekurangan itulah aku mau belajar agar bisa pandai ^_^
-------------------------------------------------------------------------------------------
- a_ir_hrp
- 081-361-305-777
- Feb, 15 1981
- My site http://iman.medanlinux.com
- Aku Cuman Seorang Manusia biasa
Cara penggunaan device ini sangat mudah seperti menggunakan Flashdisk..... (Ref. Baca artikel mas Idban Secandri ttg Flashdisk )
Nb. 1. Diasumsikan bahwa hdd tsb masih perawan ... eeehhh.... salah.. maaf.. masih belum di bagi atau di format partisinya .. :D
2. Hdd yang digunakan adalah jenis Hdd PC biasa Maxtor 80 Gb 7200rpm.
3. Di ujicoba ditempat yang sangat menyedihkan dengan mesin Slackware 10 - kernel-2.6.8 :-(

Menyelamatkan data di Windows XP dengan linux Knoppix

Tidak terasa teknologi komputer semakin berkembang, sistem operasi juga semakin banyak mulai dari dos, windows 9x, windows NT, windows XP, OS2, MacOS, Unix, Linux. linux saat ini sangat banyak pengembangnya di site www.distrowatch.com tercatat lebih dari 100 distro, mulai dari distro seperti redhat, fedora, suse, mandrake, debian. perkembangan terakhir distro linux, saat ini mulai banyak dilirik media alternatif selain di install di hardisk PC, yaitu linux live CD dengan linux live cd kita bisa memakai linux tanpa harus menginstall nya. tinggal masukan ke cd-rom drive dan boot ke cd...dan anda telah memakai linux. pelopor linux live cd knoppix dibuat oleh Klaus Knopper dari jerman http://www.knoppix.net. mendapatkan linux knoppix juga sangat mudah download di www.knoppix.net, atau mirror nya di http://kambing.vlsm.org/debian-cd/knoppix/, atau beli di toko cd, beli infolinux.

Banyak di antara kita yang masih memakai windows untuk dirumah, dikantor, di warnet. terlepas dari windows tersebut bajakan atau bukan. Suatu saat windows bisa crash, currupt, tidak bisa di boot, kalau sudah begini baru pusing untuk menyelamat kan data. Untuk windows 95, windows98, windows ME. kita masih bisa memakai disket boot dos dan membaca isi drive nya karena masih memakai file system FAT yang masih bisa dibaca oleh dos. Sedangkan windows NT, 2000, XP kalau memakai file-system NTFS tidak akan bisa dibaca oleh disket dos. jadi menyelamatkan system atau data di file-system NTFS cukup sulit, apalagi jika windows tidak memberi kesempatan kita untuk masuk ke konsol atau pun ke desktop.

Salah satu cara yang mudah untuk memnyelamatkan data dengan menggunakan linux live-cd seperti cd knoppix. setelah kita bisa menjalankan knoppix kita bisa membackup data ke komputer file server, komputer orang lain sementara windows nya bisa kita utak-atik. berikut ini step by step untuk rescue windows XP dengan Linux Knoppix.

Buat komputer untuk bisa boot ke cd, caranya masuk ke bios pada saat boot tekan "del" pada notebook biasanya F2, cari boot squence biasanya di bagian advance (bios ami, award kecuali md intel). Buat first boot ke CD.

Pasang CD Knoppix di cdrom drive

Tunggu kira-kira 5 menit akan masuk ke desktop linux knoppix. kalau gagal, pada saat lilo (boot loader linux) ketik F2 akan masuk ke boot option. kalau vga card tidak mendukung atau memory kurang, coba masuk ke tesk mode dengan boot option "knoppix 2"

Setelah di desktop linux masuk ke menu Knoppix -> Network -> network configuration. kalau jaringan memakai dhcp tekan ok. kalau tidak tekan no, kemudian masukan IP address, DNS, Gateway (yang terpenting adalah IP address). Atau kalau tidak berhasil ke desktop, coba boot ke text mode, di console ketik "netcardconfig", kemudian masukan ipaddress, coba ping ke komputer teman, server.

Coba browse network komputer dengan perintah "smbclient -L nama-komputer", kalau meminta password tekan saja enter (kalau kita yakin komputer yang share tidak di password). Buat direktory mount untuk samba-share "mkdir /mnt/samba-share" Kemudian buka network share yang akan di jadikan backup dengan perintah "smbmount //nama-komputer/nama-share /mnt/samba-share" kalau di share tersebut di password tambahkan option "username=***" "passowrd=***".

Mount hardisk local dengan perintah "mount /mnt/hda1" (primary master, partisi pertama), "mount /mnt/hda5 (primary master, partisi logikal pertama).

Buka program mc (Midnight Commander) dengan perintah "mc" sangat mirip dengan Norton commander jaman dos dahulu kala, kemudian di sebelah kiri bisa dibuka /mnt/hda1, disebelah kanan /mnt/samba-share. select dengan "insert" dan copy "F5" file-file yang ingin di backup (hilangkan check "preserve Attributes" untuk tidak mengganti atribut file yang backup). Kalau ada ftp sever bisa gunakan "FTP link" misalnya kita mau back up ke ftp server "ftp.server.co.id" dengan user=gue password=passgue, di direktory pub/backup masuk ke menu Right -> FTP link kemudian keluar FTP to machine (tekan F1 untuk melihat contohnya) ketikan /#ftp:gue:passgue@ftp.server.co.id/pub/backup.

Setelah selesai membackup file kita bisa mengoprek windows XP nya. kalau prlu di format juga boleh, file-file penting kita telah selamat.

Catatan terakhir, bisa juga digunakan linux live-cd yang lain misalnya Mandrake-Move (tidak ada mc), Slax, Gnoppix, suse-livecd, dll, atau gunakan distro usb-flash seperti RUNT jika kita punya komputer yang bisa boot dari USB. Knoppix versi 3.1 3.2 mc nya suka error jika mengcopy banyak file. jadi gunakan versi 3.3, 3.4 atau yang terbaru 3.7.

Linux Knoppix membuka partisi NTFS dengan readonly, kalau FAT bisa read-write. linux dengan kernel 2.6 bisa membuka NTFS dengan read-write tetapi di live cd knoppix sepertinya belum bisa (saya tidak tahu pasti).

Kurniadi (kurniadi@patrakom.co.id)

Instalasi Squid, Banner Filter, Porn Filter, Limit Bandwith, Transparan Proxy

Sebelum menginstall alangkah baiknya siapkan satu pak rokok (A Mild) dan makanan ringan :) . Dokumen ini ditujukan untuk membantu membuat sebuah proxy server. Sistem Operasi yang digunakan adalah Redhat Linux 7.2. Semua paket tersebut menggunakan format source tarball. Tidak ada copyright apapun dalam dukumen ini, anda bebas menyalin, mencetak, maupun memodifikasi (dengan menyertakan nama penulis asli). Saran, koreksi, kritik, kesalahan ketik, maupun ucapan silakan dikirimkan ke email tersebut diatas. Semoga bermanfaat dan memajukan opensource software di Indonesia.

Pastikan login pada server anda adalah sebagai root

1. Instalasi Banner Filter
Penempatan direktori Banner Filter harus didalam direktori www kita. misal saya di /usr/local/apache/htdocs .download souce Banner Filter di http://phroggy.com/files/unix/bannerfilter-1.21.tar.gz

[root@PROXY hanny]# wget http://phroggy.com/files/unix/bannerfilter-1.21.tar.gz

Ekstrak source bannerfilter-1.21.tar.gz :
[root@PROXY hanny]# tar -xzvf bannerfilter-1.21.tar.gz

Kemudian pindahkan hasil exstrak bannerfilter-1.21.tar.gz ke dalam /usr/local/apache/htdocs
[root@PROXY hanny]# mv bannerfilter-1.21 /usr/local/apache/htdocs/bannerfilter
[root@PROXY hanny]# cd /usr/local/apache/htdocs/bannerfilter

Edit file bannerfilter.conf
[root@PROXY bannerfilter]# mv bannerfilter.conf /etc
[root@PROXY bannerfilter]# vi /etc/bannerfilter.conf

Contoh isi bannerfilter.conf saya :
# Path to the directory containing the data files:
$DATA='/usr/local/apache/htdocs/bannerfilter';

# URL of the directory containing the HTML and graphics files
# (this must be accessible by the machine running Squid; it does
# not need to be accessible to the client machines):
$WWW='http://www.rsds.or.id/bannerfilter/www';

# Path to the banner log file if you want one, or leave empty (if
# specified, Squid must have write access to this file):
$LOG='';

# $LOG='/tmp/bannerlog.txt';
# If you prefer not to see "Blocked", use null.gif instead of
# banner.gif:
$BANNERGIF='banner.gif';

Penambahan script bannerfilter nantinya akan diletakan didalam squid.conf
redirect_program /usr/local/apache/htdocs/bannerfilter/redirector.pl


2. Instalasi Squid
Sebelum installasi squid, pastikan daemon squid yang asli dari redhat harus anda stop atau musnahkan !!
caranya :
[root@PROXY hanny]# /etc/rc.d/init.d/squid stop
[root@PROXY hanny]# for a in `rpm -qa | grep squid`; do rpm -e --nodeps $a; done

Sekarang kita mendownload source squid. Saya menggunakan squid-2.5.STABLE2
Download source squid di http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE2.tar.gz

[root@PROXY hanny]# wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE2.tar.gz

Ekstrak source squid-2.5.STABLE2.tar.gz :
[root@PROXY hanny]# tar -xzvf squid-2.5.STABLE2.tar.gz
[root@PROXY hanny]# cd squid-2.5.STABLE2

Buat user untuk menjalankan squid, nama usernya adalah squid
Guna meningkatkan keamanan server kita, maka user squid tidak bisa digunakan untuk login
[root@PROXY squid-2.5.STABLE2]# useradd -d /usr/local/squid/ -r -s /dev/null squid > /dev/null 2>&1

Kompilasi dan install Squid :
[root@PROXY squid-2.5.STABLE2]# ./configure --prefix=/usr/local/squid --exec-prefix=/usr/local/squid > --enable-delay-pools --enable-cache-diggests --enable-poll > --disable-ident-lookups --enable-async-io=16 > --enable-auth-modules --enable-removal-policies --enable-snmp

[root@PROXY squid-2.5.STABLE2]# make all
Biasanya proses make all ini berlangsung lama, alangkah baiknya kita ambil sebatang rokok lalu di bakar :) betapa indahnya dunia ini !!

[root@PROXY squid-2.5.STABLE2]# make install

Sekarang kita masuk dalam tahap meng-edit konfigurasi ke dalam file squid.conf
[root@PROXY squid-2.5.STABLE2]# cd /usr/local/squid/etc

Anda bisa membaca terlebih dahulu http://www.squid-cache.org/Doc/FAQ/FAQ.html (Ambil sebatang rokok lagi agar ketegangan anda mereda !!)
Dalam meng-edit konfigurasi squid, anda bisa membaca readme yang sudah ada di dalam file squid.conf atau anda juga bisa melihat atau mengambil, file yang sudah saya edit http://www.rsds.or.id/linux/squid.conf.hanny

[root@PROXY etc]# wget http://www.rsds.or.id/linux/squid.conf.hanny
[root@PROXY etc]# vi squid.conf.hanny

kemudian carilah kata-kata dalam file squid.conf.hanny seperti keterangan dibawah ini yang berhurup bold italic :
ftp_user name@domain-anda.com
dns_nameservers IP-Address-DNS-ISP-Anda
acl user src 192.168.0.0/255.255.255.0
(ip192.168.0.0 adalah ranges ip address client kita mulai 192.168.0.0 sampai 192.168.0.255)

Didalam file squid.conf.hanny, sudah saya tambahkan script untuk menjalankan Banner Filter dan Porn Filter :
redirect_program /usr/local/apache/htdocs/bannerfilter/redirector.pl
acl porn url_regex "/usr/local/squid/etc/porn.txt"
http_access deny porn

"Jika anda tidak menginginkan Banner Filter atau Porn Filter berjalan, maka pada awal script Banner Filter atau Porn Filter dalam file squid.conf.hanny harus di beri tanda " # " :
#redirect_program /usr/local/apache/htdocs/bannerfilter/redirector.pl
#acl porn url_regex "/usr/local/squid/etc/porn.txt"
#http_access deny porn


3. Limit Bandwith
Dalam file squid.conf.hanny, juga sudah saya tambahkan script untuk menggunakan delay pool :

#------------------------ DELAY POLL KONFIGURASI HANNY ---------------------------
#This is the most important part for shaping incoming traffic with Squid
#For detailed description see squid.conf file or docs at http://www.squid-cache.org
#We don't want to limit downloads on our local network
acl magic_words1 url_regex -i 192.168.
#We want to limit downloads of these type of files
#Put this all in one line
acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav
#We don't block .html, .gif, .jpg and similar files, because they
#generally don't consume much bandwith
#We have two different delay_pools
delay_pools 2
#First delay pool
#W don't want to delay our local traffic
#There are three pool classes; here we will deal only with the second
delay_class 1 2
#-1/-1 mean that there are no limits
delay_parameters 1 -1/-1 -1/-1
#magic_words1: 192.168
delay_access 1 allow magic_words1
#Second delay pool
#we want to delay downloading files mentioned in magic_words2
delay_class 2 2
#The numbers here are values in bytes;
#we must remember that Squid doesn't consider start/stop bits
#5000/150000 are values for the whole network
#5000/120000 are values for the single IP
#after downloaded files exceed about 150000 bytes,
#(or even twice or three times as much)
#they will continue to download at about 5000 bytes/s
delay_parameters 2 5000/150000 5000/120000
delay_access 2 allow magic_words2
#--------------------------------------------------------------------------------

"Jika anda tidak menginginkan Limit Bandwith berjalan, maka pada awal script delay poll dalam file squid.conf.hanny harus diberi tanda " # "
#------------------------ DELAY POLL KONFIGURASI HANNY ---------------------------
#This is the most important part for shaping incoming traffic with Squid
#For detailed description see squid.conf file or docs at http://www.squid-cache.org
#We don't want to limit downloads on our local network
#acl magic_words1 url_regex -i 192.168.
#We want to limit downloads of these type of files
#Put this all in one line
acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav
#We don't block .html, .gif, .jpg and similar files, because they
#generally don't consume much bandwith
#We have two different delay_pools
#delay_pools 2
#First delay pool
#W don't want to delay our local traffic
#There are three pool classes; here we will deal only with the second
#delay_class 1 2
#-1/-1 mean that there are no limits
#delay_parameters 1 -1/-1 -1/-1
#magic_words1: 192.168
#delay_access 1 allow magic_words1
#Second delay pool
#we want to delay downloading files mentioned in magic_words2
#delay_class 2 2
#The numbers here are values in bytes;
#we must remember that Squid doesn't consider start/stop bits
#5000/150000 are values for the whole network
#5000/120000 are values for the single IP
#after downloaded files exceed about 150000 bytes,
#(or even twice or three times as much)
#they will continue to download at about 5000 bytes/s
#delay_parameters 2 5000/150000 5000/120000
#delay_access 2 allow magic_words2
#--------------------------------------------------------------------------------

Merubah nama file squid..conf yang asli dari komputer anda ke nama file lain. (sebagai back-up)
Dan merubah squid.conf.hanny menjadi squid.conf
[root@PROXY etc]# mv squid.conf squid.conf.punyaku
[root@PROXY etc]# mv squid.conf.hanny squid.conf


4. Instalasi Porn Filter
Buatlah terlebih dahulu file dengan nama porn.txt
[root@PROXY etc]# touch porn.txt

Isikan file porn.txt dengan site-site yang hendak anda tutup, misal www.17tahun.com
[root@PROXY etc]# vi porn.txt
isikan dengan kata 17tahun


Menjalankan squid
Memberi hak direktori squid dan bannerfilter agar proses berjalan lancar :
[root@PROXY etc]# chown -R squid.squid /usr/local/squid
[root@PROXY etc]# chown -R squid.squid /usr/local/apache/htdocs/bannerfilter

Aktifkan cache squid anda terlebih dahulu:
[root@PROXY etc]# /usr/local/squid/sbin/squid -z

Jika muncul permission denied pada saat pembuatan cache, cek dulu owner dan permission untuk directory cache :
[root@PROXY etc]# chmod 777 /usr/local/squid/var/logs/

Sampai tahap ini jika ada pesan error mohon email ke hanny@rsds.or.id

Jalankan daemon squid anda :
[root@PROXY etc]# /usr/local/squid/sbin/squid

Cek squid anda apakah jalan atau tidak :
[root@PROXY etc]# netstat -pln | grep squid
tcp 0 0 0.0.0.0 :8080 0.0.0.0:* LISTEN 777/(squid)
udp 0 0 0.0.0.0 :32771 0.0.0.0:* 777/(squid)
udp 0 0 0.0.0.0 :3130 0.0.0.0:* 777/(squid)

Jika keluar seperti hal diatas, maka squid anda telah berjalan !! rokokan dulu ah...: )


Test Squid Dari Komputer Client
Lakukan penge-test ping antar network anda, misal server anda mempunyai ip 192.168.0.1 dan ip windows client anda 192.168.1.2 :
[root@PROXY etc]# ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2) from 192.168.0.1 : 56(84) bytes of data.
Warning: time of day goes back, taking countermeasures.
64 bytes from 192.168.0.2: icmp_seq=0 ttl=255 time=233 usec
64 bytes from 192.168.0.2: icmp_seq=1 ttl=255 time=161 usec

Jika anda mempunyai client dengan operating system windows 98 atau windows me atau windows XP, pada software internet explorer coba isikan proxy dengan ip server anda dan port 8080 (misal ip server saya 192.168.0.1 maka pengisian proxy adalah 192.168.0.1 : 8080)

Coba anda buka situs-situs berikut ini dalam masing-masing new windows internet explorer :
http://www.yahoo.com , http://www.17tahun.com , http://zdads.e-media.com

1. Bila situs http://www.yahoo.com terbuka maka artinya pengerjaan squid anda sampai tahap ini berjalan lancar.

2. Bila situs http://www.17tahun.com tidak terbuka dan hanya bertulisakan ACCESS DENIED maka Porn Firter anda berjalan lancar. Anda bisa menambahkan situs-situs yang ingin anda tutup, dengan meng-edit kembali file porn.txt
[root@PROXY hanny]# vi /usr/local/squid/etc/porn.txt

3. Bila situs http://zdads.e-media.com tidak berbuka dan hanya bergambar BLOCKED AREA maka Banner Filter anda berjalan lancar.


5. Transparan Proxy
Agar lebih mudah kita akan menggunakan iptables
[root@PROXY hanny]# /sbin/iptables -F -t nat
[root@PROXY hanny]# /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.0.0/255.255.255.0 > --dport 80 -j DNAT --to 192.168.0.1:8080

keterangan iptables diatas :
1. eth1 adalah interface lancard untuk ip gateway client.
2. 192.168.0.0/255.255.255.0 adalah ip client kita mulai dari 192.168.0.0 sampai 192.168.0.255.
3. --dport 80 -j DNAT --to 192.168.0.1:8080 adalah bila ada request port 80 (biasanya browsing), akan di paksa masuk ke squid dengan ip 192.168.0.1 port 8080.

Jika anda mempunyai client dengan operating system windows 98 atau windows me atau windows XP, pada software internet explorer, pastikan tidak terisi proxy. Dan pastikan pengisian ip client dan ip gateway client anda adalah benar adanya !!!
(Misal ip client saya mempunyai ip 192.168.0.2 dan ip gateway 192.168.0.1)

Coba anda buka situs-situs berikut ini dalam masing-masing new windows internet explorer :
http://www.yahoo.com , http://www.17tahun.com , http://zdads.e-media.com

1. Bila situs http://www.yahoo.com terbuka maka artinya pengerjaan squid anda sampai tahap ini berjalan lancar.

2. Bila situs http://www.17tahun.com tidak terbuka dan hanya bertulisakan ACCESS DENIED maka Porn Firter anda berjalan lancar. Anda bisa menambahkan situs-situs yang ingin anda tutup, dengan meng-edit kembali file porn.txt
[root@PROXY hanny]# vi /usr/local/squid/etc/porn.txt

3. Bila situs http://zdads.e-media.com tidak berbuka dan hanya bergambar BLOCKED AREA maka Banner Filter anda berjalan lancar.


Autorun Squid dan Transparan Proxy
Bila server squid kita restart dan kita tidak ingin mengulangi command2x seperti hal-hal pada artikel di atas, maka masukan script pada /etc/rc.local :
[root@PROXY hanny]# vi /etc/rc.local

isikan dengan :
#Menjalankan Transparan Proxy
/sbin/iptables -F -t nat
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.0.0/255.255.255.0 --dport 80 -j DNAT --to 192.168.0.1:8080

#Menghidupkan Squid
/bin/rm /usr/local/squid/var/logs/squid.pid
/usr/local/squid/sbin/squid


6. Lain-Lain
Bila kita inggin melihat siapa saja yang sedang mengunakan squid kita dan situs-situs apa saja yang mereka buka, anda bisa menggunakan:
[root@PROXY hanny]# tail -f /usr/local/squid/var/logs/access.log

Bila anda merubah isi file squid.conf dan ingin mencoba apakah squid.conf yang kita rubah bisa sesuai yang kita inginkan :
[root@PROXY hanny]# /usr/local/squid/sbin/squid -k reconfigure


7. ChangeLog
24 Maret 2003
Penambahan permission pada direktory cache (dani@bisnisweb.com)

24 Maret 2003
Penulisan tutorial ini dimulai (hanny@rsds.or.id)


8. Referensi
1. http://www.squid-cache.org/
2. http://www.tldp.org/HOWTO/mini/TransparentProxy.html
3. http://jateng.linux.or.id/index.html
4. http://netfilter.samba.org/
5. http://phroggy.com/bannerfilter/


9. Ucapan Terima Kasih
1. Kepada asfik , sunar , dani sebagai awal dari penginstallan squid saya.
2. Kepada channel #indolinux server dal.net dan efnet.net sebagai komunitas linux.

Antivirus dengan qmail-scanner dan clam antivirus pada qmail

Diasumsikan diserver anda telah telah terpasang qmail yang sudah dipatch menggunakan qmail-queue patch dari Bruce Guenter ( http://www.qmail.org/qmailqueue-patch) . Tutorial ini disusun menggunakan distro Redhat Linux 7.3 dan mungkin juga bisa anda coba pada distro yang lain. Saran, koreksi, kritik, kesalahan ketik, maupun ucapan silakan dikirimkan ke email tersebut diatas atau langsung join ke channel #indolinux di EFnet. Terima Kasih.

Jika Anda merasa apa yang saya tulis berikut ini berguna dan ingin membuat saya gembira, Anda bisa mengirimkan satu (atau lebih) CD dari daftar wishlist saya. Tentu saja, usaha Anda akan sangat saya hargai :-).
1. Instal clam antivirus

Clam antivirus ( http://clamav.elektrapro.com) merupakan software antivirus yang berlisensi GNU GPL 2 dengan menggunakan database virus dari OpenAntiVirus ( http://www.openantivirus.org). Download, ekstrak dan ganti direktori ke source clam antivirus :


[root@wedus src]# wget http://clamav.elektrapro.com/stable/clamav-0.54.tar.gz
[root@wedus src]# tar -xzvf clamav-0.54.tar.gz
[root@wedus src]# cd clamav-0.54

Buat user dan group yang akan menjalankan daemon clam anvirus :


[root@wedus clamav-0.54]# groupadd clamav
[root@wedus clamav-0.54]# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav

Lakukan kompilasi dan install :


[root@wedus clamav-0.54]# ./configure
[root@wedus clamav-0.54]# make
[root@wedus clamav-0.54]# make install

Pindah file konfigurasi standar dari clam antivirus ke nama file yang lain, karena kita akan menyusun sendiri file konfigurasi tersebut :


[root@wedus clamav-0.54]# mv /usr/local/etc/clamav.conf /usr/local/etc/clamav.conf.default

Buatlah file /usr/local/etc/clamav.conf isinya :


LogFile /tmp/clamd.log
LogFileMaxSize 2M
LogVerbose
LogTime
PidFile /var/run/clamd.pid
DataDirectory /usr/local/share/clamav
LocalSocket /tmp/clamd
MaxDirectoryRecursion 15
User clamav
ScanArchive
ArchiveMaxFileSize 10M
ArchiveMaxRecursion 5
ArchiveMaxFiles 1000

Jalankan daemon clam antivirus (clamd ) :


[root@wedus clamav-0.54]# clamd

Periksa apakah daemon tersebut sudah berjalan seperti yang kita inginkan :


[root@wedus clamav-0.54]# ps axu | grep clamd
clamav 29192 0.0 4.7 9120 5984 ? S 11:06 0:00 clamd
clamav 29193 0.0 4.7 9120 5984 ? S 11:06 0:00 clamd
clamav 29194 0.0 4.7 9120 5984 ? S 11:06 0:00 clamd

Untuk menjalankan daemon clamd setiap server di reboot :


[root@wedus clamav-0.54]# echo /usr/local/sbin/clamd >> /etc/rc.local

Tanpa berpindah dari direktori source clam antivirus, lakukan test dengan cara menscan direktori test :


[root@wedus clamav-0.54]# clamscan -r test

Kemudian download update database virus yang paling baru :


[root@wedus clamav-0.54]# freshclam

Jika sudah selesai kemudian kita jalankan daemon proses update database virus tersebut secara otomatis (akan dilaksanakan pengecekan database virus yang paling baru 2 kali dalam sehari ) :


[root@wedus clamav-0.54]# touch /var/log/clam-update.log
[root@wedus clamav-0.54]# chmod 644 /var/log/clam-update.log
[root@wedus clamav-0.54]# chown clamav /var/log/clam-update.log

Jalankan daemonnya (freshclam ):


[root@wedus clamav-0.54]# freshclam -d -c 2 -l /var/log/clam-update.log

Untuk menjalankan daemon freshclam jika server di reboot :


[root@wedus clamav-0.54]# echo "freshclam -d -c 2 -l /var/log/clam-update.log" >> /etc/rc.local
2. Instal Module Perl Time::HiRes dan DB_FIle

Anda bisa mendapatkan module perl Time::HiRes tersebut yang paling baru melalui http://search.cpan.org/search?module=Time::HiRes, atau anda bisa langsung mendownload di lokal mirror CPAN di Indonesia (terima kasih kepada ISP CBN), download, ekstrak, dan kompilasi :


[root@wedus src]# wget ftp://ftp.cbn.net.id/mirror/CPAN/authors/id/J/JH/JHI/Time-HiRes-1.42.tar.gz
[root@wedus src]# tar -xzvf Time-HiRes-1.42.tar.gz
[root@wedus src]# cd Time-HiRes-1.42
[root@wedus Time-HiRes-1.42]# perl Makefile.PL
[root@wedus Time-HiRes-1.42]# make
[root@wedus Time-HiRes-1.42]# make install

Atau, anda juga bisa menggunakan CPAN auto-install sebagai berikut untuk menginstal module perl Time::HiRes tersebut :


[root@wedus src]# perl -MCPAN -e "install Time::HiRes"

Lakukan juga langkah seperti tersebut diatas untuk module DB_File.
3. Instal maildrop

Yang dibutuhkan oleh qmail-scanner dari paket maildrop sebenarnya adalah program reformime. Download, ekstrak, kompilasi dan install :


[root@wedus src]# wget http://unc.dl.sf.net/courier/maildrop-1.5.2.tar.bz2
[root@wedus src]# tar -jxvf maildrop-1.5.2.tar.bz2
[root@wedus src]# cd maildrop-1.5.2
[root@wedus maildrop-1.5.2]# ./configure
[root@wedus maildrop-1.5.2]# make
[root@wedus maildrop-1.5.2]# make install
4. Instal tnef unpacker

Tnef unpacker digunakan untuk menguraikan attachment MS-TNEF MIME yang digunakan oleh Microsoft mail server.


[root@wedus src]# wget http://unc.dl.sf.net/sourceforge/tnef/tnef-1.2.0.tar.gz
[root@wedus src]# tar -xzvf tnef-1.2.0.tar.gz
[root@wedus src]# cd tnef-1.2.0
[root@wedus tnef-1.2.0]# ./configure
[root@wedus tnef-1.2.0]# make
[root@wedus tnef-1.2.0]# make install
5. Instal perl-suidperl

Karena pada default distribusi RedHat 7.3 tidak menyertakan program perl-suidperl, maka kita perlu menginstal program tersebut (hal ini mungkin bisa anda temui jika anda tidak menginstal program tersebut pada file /var/log/qmail/smtpd/current akan terdapat error Can't do setuid atau jika di server lokal akan anda dapatkan error 451_qq_temporary_problem_(#4.3.0) ) :


[root@wedus src]# wget ftp://rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/perl-suidperl-5.6.1-34.99.6.i386.rpm
[root@wedus src]# rpm -ivh perl-suidperl-5.6.1-34.99.6.i386.rpm
6. Instal qmail-scanner

Download, ekstrak source qmail-scanner yang paling baru :


[root@wedus src]# wget http://unc.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-1.16.tgz
[root@wedus src]# tar -xzvf qmail-scanner-1.16.tgz

Ganti direktori ke source qmail-scanner kemudian lakukan konfigurasi :


[root@wedus src]# cd qmail-scanner-1.16
[root@wedus qmail-scanner-1.16]# ./configure

Jika sukses, script configure akan menemukan path program yang dibutuhkan oleh qmail-scanner dan clam antivirus, misalnya :


....
mimeunpacker=/usr/local/bin/reformime
uudecode=/usr/bin/uudecode
unzip=/usr/bin/unzip
tnef=/usr/local/bin/tnef
clamscan=/usr/local/bin/clamscan
scanners="clamscan_scanner"
....

Buat direktori yang akan digunakan oleh qmail-scanner :


[root@wedus qmail-scanner-1.16]# mkdir -p /var/spool/qmailscan/quarantine/{tmp,cur,new}
[root@wedus qmail-scanner-1.16]# mkdir -p /var/spool/qmailscan/working/{tmp,cur,new}
[root@wedus qmail-scanner-1.16]# mkdir -p /var/spool/qmailscan/archive/{tmp,cur,new}

Salin file quarantine-attachments.txt ke direktori /var/spool/qmailscan :


[root@wedus qmail-scanner-1.16]# cp quarantine-attachments.txt /var/spool/qmailscan/

Ubah kepemilikan dari direktori /var/spool/qmailscan :


[root@wedus qmail-scanner-1.16]# chown -R qmailq:qmail /var/spool/qmailscan/

Salin file qmail-scanner-queue.pl ke direktori /var/qmail/bin :


[root@wedus qmail-scanner-1.16]# cp qmail-scanner-queue.pl /var/qmail/bin/qmail-scanner-queue.pl

Ganti kepemilikan dan mode dari file qmail-scanner-queue.pl tersebut :


[root@wedus qmail-scanner-1.16]# chown qmailq:qmail /var/qmail/bin/qmail-scanner-queue.pl
[root@wedus qmail-scanner-1.16]# chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl

Generate database perl-scanner dan membersihkan file-file sementara :


[root@wedus qmail-scanner-1.16]# /var/qmail/bin/qmail-scanner-queue.pl -z
[root@wedus qmail-scanner-1.16]# /var/qmail/bin/qmail-scanner-queue.pl -g

Edit file /var/qmail/bin/qmail-scanner-queue.pl, sesuaikan dengan konfigurasi yang anda kehendaki, misalnya :


my $V_FROM='virus-notifier@kurowo.edu';
my $QUARANTINE_CC='asfik@indolinuxefnet.org';

Test kirim email bervirus ke root@localhost :


[root@wedus qmail-scanner-1.16]# ./contrib/test_installation.sh -doit

Jika sukses, anda bisa memodifikasi file startup untuk menjalakan qmail-smtpd anda, misalnya jika anda menggunakan supervise anda bisa mengedit file /service/qmail-smtpd/run menjadi :


PATH=$PATH:/usr/local/bin:/var/qmail/bin
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
export PATH QMAILQUEUE

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=30
exec /usr/local/bin/softlimit -m 11000000 tcpserver -H -R -v -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" -u "$QMAILDUID" -g "$NOFILESGID" 0 25 qmail-smtpd 2>&1

Perhatikan perubahan tersebut diatas terutama pada path QMAILQUEUE dan angka (memory) yang digunakan softlimit, jika anda mengeset angka tersebut terlalu kecil, maka biasanya anda akan mendapatkan error perl: error in loading shared libraries: atau failed to map segment from shared object: Cannot allocate memory. Qmail-scanner tidak mendeteksi virus klez jika setting dari soflimit kurang dari 11000000 (11 juta), anda bisa lihat referensinya di http://archive.elektrapro.com/clamav.elektrapro.com/users/2002/10/msg00114.html (thanks kepada tio aka geep di #indolinux EFnet)

Restart daemon qmail anda, jika anda menggunakan supervise anda bisa menggunakan :


[root@wedus qmail-scanner-1.16]# qmailctl restart

Kemudian anda bisa mencoba mengirim email dengan attachment sebuah file eicar.com yang isinya sebagai berikut :


X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Jika anda lakukan tail -f /var/spool/qmailscan/quarantine.log, maka akan anda dapatkan file tersebut akan ditolak dan di log oleh qmail-scanner, misalnya :


04/03/2003 12:31:45 asfik@indolinuxefnet.org asfik@kurowo.edu test email mengandung virus EICAR Test Virus clamscan: 0.54.

Jika sukses, berarti mail server anda telah menggunakan software antivirus :), have fun ! Jika anda menginginkan pembacaan statistik berapa jumlah email yang masuk kedalam file /var/spool/qmailscan/quarantine.log, anda bisa menggunakan Qmail Scanner Statistics (QSS). Caranya, buat direktori qss, download source qss, dan ekstrak :


[root@wedus src]# mkdir qss
[root@wedus src]# cd qss
[root@wedus qss]# wget http://unc.dl.sf.net/sourceforge/qss/qss-2.0.2.tar.gz
[root@wedus qss]# tar -xzvf qss-2.0.2.tar.gz

Tentukan direktori dimana akan kita salin file /var/spool/qmailscan/quarantine.log, misalnya buat direktori /usr/local/httpd/logs/quarantine, kemudian cari user yang menjalankan daemon apache (anda bisa melihat dari file httpd.conf anda bagian User atau anda bisa menggunakan perintah ps axu | grep httpd untuk mencarinya), disini kita misalkan usernya adalah www. Kemudian buatlah file /etc/qss.sh (mulai dibawah ini ganti user www dengan user yang menjalankan daemon apache anda) isinya :


#!/bin/bash
cp -f /var/spool/qmailscan/quarantine.log /usr/local/httpd/logs/quarantine/quarantine.log
chown www /usr/local/httpd/logs/quarantine/quarantine.log

Set menjadi script yang executable :


[root@wedus qss]# chmod +x /etc/qss.sh

Buat direktori /usr/local/httpd/logs/quarantine dan ganti kepemilikannya ke user www :


[root@wedus qss]# mkdir /usr/local/httpd/logs/quarantine
[root@wedus qss]# chown www /usr/local/httpd/logs/quarantine

Tentukan dimana qss akan diinstall, hal ini tergantung setting dari DocumentRoot di file httpd.conf anda, misalnya kita buat di direktori /usr/local/httpd/htdocs/qss (sehingga nantinya bisa diakses melalui http://localhost/qss misalnya) :


[root@wedus qss]# mkdir /usr/local/httpd/htdocs/qss

Salin semua file ke direktori tersebut diatas dan ganti kepemilikannya :


[root@wedus qss]# cp -R * /usr/local/httpd/htdocs/qss
[root@wedus qss]# chown -R www /usr/local/httpd/htdocs/qss

Edit file /usr/local/httpd/htdocs/qss/config.php ganti bagian :


$config["logFile"] = "quarantine.log";

menjadi :


$config["logFile"] = "/usr/local/httpd/logs/quarantine/quarantine.log";

Jalankan script untuk menyalin file quarantine.log untuk pertama kali :


[root@wedus qss]# sh /etc/qss.sh

Test dengan browser anda dengan url http://localhost/qss atau http://ip.address.server.anda/qss tergantung konfigurasi ServerNamepada file httpd.conf anda. Jika sukses anda bisa menambahkan cron setiap 5 menit (jika anda menginginkan waktu yang lebih lama anda bisa mengganti angka 5 menjadi yang lain, misalnya 10,15 atau 30, silakan konsultasi dengan man 5 crontab anda ) :


[root@wedus qss]# echo "*/5 * * * * /etc/qss.sh" > cron.temp
[root@wedus qss]# crontab -u root cron.temp

Enjoy !
Changelog

12 Maret 2003

Penambahan jumlah soflimit karena virus klez tidak terdeteksi oleh qmail-scanner oleh Tio (tioatkaretdotorg)

08 Maret 2003

Penambahan Qmail Scanner Statistic (QSS)

04 Maret 2003

Pembuatan tutorial antivirus di qmail menggunakan qmail-scanner dan clam antivirus dimulai
Referensi :

http://qmail-scanner.sourceforge.net
http://clamav.elektrapro.com/doc/html/

Instalasi Apache 2.0.47 (DSO+suexec)+PHP 4.3.2 (Quick and Dirty)

Jika Anda merasa apa yang saya tulis berikut ini berguna dan ingin membuat saya gembira, Anda bisa mengirimkan satu (atau lebih) CD dari daftar wishlist saya. Tentu saja, usaha Anda akan sangat saya hargai :-).

Download dan instal apache versi 2.0.47 :


[root@nablus src]# wget http://apache.secsup.org/dist/httpd/httpd-2.0.47.tar.gz
[root@nablus src]# tar -xzvf httpd-2.0.47.tar.gz
[root@nablus src]# cd httpd-2.0.47
[root@nablus httpd-2.0.47]# ./configure --prefix=/usr/local/httpd-2.0.47 \
--enable-mods-shared=all \
--enable-suexec \
--with-suexec-bin=/usr/local/httpd-2.0.47/bin/suexec \
--with-suexec-caller=www \
--with-suexec-userdir=htdocs \
--with-suexec-docroot=/ \
--with-suexec-uidmin=99 \
--with-suexec-gidmin=99 \
--with-suexec-logfile=/usr/local/httpd-2.0.47/logs/suexec_log \
--with-suexec-safepath=/usr/local/bin:/usr/bin:/bin
[root@nablus httpd-2.0.47]# make
[root@nablus httpd-2.0.47]# make install

Download dan install imap (disini imap digunakan agar --with-imap di php bisa berjalan) :


[root@nablus src]# wget ftp://ftp.cac.washington.edu/mail/imap.tar.Z
[root@nablus src]# tar -xzvf imap.tar.Z
[root@nablus src]# cd imap-2002d
[root@nablus imap-2002d]# make slx

Jika error, coba dengan perintah dibawah ini :


[root@nablus imap-2002d]# make slx SSLTYPE=none

Buat simlink :


[root@nablus imap-2002d]# ln -s c-client lib
[root@nablus imap-2002d]# ln -s c-client include

Download dan instal php versi 4.3.2 :


[root@nablus src]# wget http://us2.php.net/distributions/php-4.3.2.tar.bz2
[root@nablus src]# tar -jxvf php-4.3.2.tar.bz2
[root@nablus src]# cd php-4.3.2
[root@nablus php-4.3.2]# ./configure \
--with-apxs2=/usr/local/httpd-2.0.47/bin/apxs \
--with-config-file-path=/usr/local/httpd-2.0.47/conf \
--with-imap=../imap-2002d \
--with-jpeg-dir \
--with-ttf \
--with-ftp \
--with-gettext \
--with-dbase \
--with-filepro \
--with-zlib \
--with-xml \
--with-gdbm \
--disable-display-source \
--disable-short-tags \
--enable-track-vars \
--enable-versioning \
--enable-memory-limit
[root@nablus php-4.3.2]# make
[root@nablus php-4.3.2]# make install
[root@nablus php-4.3.2]# cp php.ini-dist /usr/local/httpd-2.0.47/conf/php.ini

Edit file /usr/local/httpd-2.0.47/conf/httpd.conf, jika diperlukan ubah pada ServerName dan ServerAdmin dan serta tambahkan :


AddType application/x-httpd-php .php
DirectoryIndex index.html index.php

Start apache :


[root@nablus asfik]# /usr/local/httpd-2.0.47/bin/apachectl start

You're done :)

Konsep DNS dan tutorial instalasi BIND

Asfihani (asfik@cakraweb.com)
16 Februari 2003
Tutorial ini ditujukan untuk membantu memahami konsep dan cara kerja dari DNS (Domain Name System) serta tutorial instalasi software DNS menggunakan BIND (Berkeley Internet Name Domain). Tutorial ini mencakup instalasi BIND step by step, membuat zone dari sebuah domain beserta record-recordnya, PTR, serta mengkonfigurasi secondary DNS secara simple. BIND yang digunakan adalah versi 9.2.2rc1 (versi yang paling baru ketika tulisan ini dibuat). Tidak ada copyright apapun dalam dukumen ini, anda bebas menyalin, mencetak, maupun memodifikasi (dengan menyertakan nama penulis asli). Masih banyak kekurangan ataupun mungkin kesalahan pada tulisan ini, oleh karena itu saran, koreksi, kritik, maupun kesalahan ketik silakan dikirimkan ke email tersebut diatas. Terima Kasih.

Jika Anda merasa apa yang saya tulis berikut ini berguna dan ingin membuat saya gembira, Anda bisa mengirimkan satu (atau lebih) CD dari daftar wishlist saya. Tentu saja, usaha Anda akan sangat saya hargai :-).
1. Pendahuluan

Setiap kali anda meggunakan internet dalam kegiatan anda sehari-hari, maka setiap kali itu pula secara tidak langsung anda menggunakan DNS (Domain Name System). Penggunaan DNS meliputi aplikasi email (electronic-mail), browsing, ssh/telnet, ftp, maupun aplikasi yang lain yang ada kaitannya dengan internet. Fungsi utama dari sebuah sistem DNS adalah menerjemahkan nama-nama host (hostnames) menjadi nomor IP (IP address) ataupun sebaliknya, sehingga nama tersebut mudah diingat oleh pengguna internet. Fungsi lainnya adalah untuk memberikan suatu informasi tentang suatu host ke seluruh jaringan internet. Sebelum kita mulai instalasi BIND kita flashback dulu dengan sejarah internet, DNS dan BIND, serta konsep DNS.
Sejarah Internet

Pada akhir tahun 1960, US. Department of Defense Advanced Research Projects Administration (ARPA/DARPA) mendanai percobaan dan riset tentang jaringan komputer secara luas yang saling menghubungkan antar hampir semua organisasi di Amerika yang akhirnya dikenal dengan sebutan ARPAnet. Hasil dari riset tersebut email (electronic-mail) mulai digunakan.

Pada awal tahun 1980 protokol TCP/IP (Transmission Control Protocol/Internet Protocol) mulai dikenalkan dan akhirnya menjadi protokol standar dalam struktur jaringan ARPAnet. Jaringan ARPAnet berkembang pesat jumlahnya menjadi ribuan host dan masih menggunakan standar protokol TCP/IP, dan akhirnya jaringan tersebut dikenal dengan internet.

Pada tahun 1988, DARPA digantikan oleh National Science Foundation (NSF) dalam pendanaan riset diikuti dengan penggantian dari ARPAnet menjadi NSFnet sebagai tulang punggung (backbone) jaringan internet. Kemudian pada musim semi tahun 1995, backbone internet melakukan transisi dari NSFnet (yang didanai oleh publik) ke beberapa backbone komersil, dimana memungkinkan interknoneksi antar jaringan bisa menjadi lebih jauh jaraknya. Penyedia backbone komersil tersebut diantaranya adalah MCI dan Sprint serta pemain lama seperti UUNet dan PSINet.

(DNS and BIND 3rd Edition, Paul Albitz & Cricket Liu, 1998 Hal 2)
Sejarah DNS

Pada tahun 1970an jaringan ARPAnet hanya terdiri dari beberapa ratus host saja. Pada waktu itu, sebuah file HOSTS.TXT yang berisi tentang semua informasi host-hosts tersebut masih bisa melayani setiap permintaan query dan menerjemahkan nama ke alamat IP (name-to-address-mapping).Pada sistem operasi berbasis UNIX, file /etc/hosts merupakan hasil dari pengolahan file HOSTS.TXT tersebut. File HOSTS.TXT pada waktu itu dikelola oleh Stanford Research Insitute Network Information Center (SRI-NIC) di Menlo Park, California. File tersebut tersebut didistribusikan ke semua host dan penggunanya hanya dengan menggunakan satu buah host (mesin/komputer) saja. Petugas administrasi dari ARPAnetbiasanya mengirimkan email kepada SRI-NIC tentang perubahan (termasuk penambahan maupun pengurangan) tentang informasi suatu host, dan dalam periode tertentu, mereka melakukan transfer file HOSTS.TXT yang paling baru (biasanya diperbaharui sekali dalam seminggu) dengan menggunakan protokol ftp. Seiring dengan berkembangnya jaringan ARPAnetdan penggunaan protokol TCP/IP, ukuran dari file HOSTS.TXT menjadi besar dengan bertambahnya jumlah host yang bergabung dengan jaringan ARPAnet. Kemudian timbul beberapa masalah dengan penggunaan file HOSTS.TXT ini, misalnya :

Trafik dan Beban (Traffic and load)

Beban mesin dan trafik (bandwith) di SRI-NIC dalam mendistribusikan file menjadi lebih berat dan besar
Penamaan yang saling bentrok (name collisions)

Pada file HOSTS.TXT tidak diperkenankan adanya dua buah nama host yang sama. Namun pada prakteknya, tidak ada cara untuk mencegah seseorang untuk menambahkan nama yang sama sehingga kemungkinan bisa menjadi bentrok dan pada akhirnya merusak skema yang telah ada
Keaslian (consistency)

Mengelola keaslian dan keutuhan sebuah file antar beberapa jaringan yang sedang berkembang pesat merupakan sesuatu hal yang sulit dilakukan

Berangkat dari masalah-masalah tersebut diatas, ARPAnet membentuk suatu sistem alternatif pengganti dari sistem lama yang menggunakan file HOSTS.TXT. Tujuannya adalah untuk memecahkan masalah dalam pengelolaan tabel host yang sangat beraneka ragam dan masih menggunakan metode sentralisasi. Pada sistem yang baru, seorang sistem administrator memungkinkan untuk mengelola data secara loka, namun akan selalu update secara global di internet. Sistem yang menggunakan metode desentralisasi ini diharapkan akan mengurangi beban dan trafik, serta pengelolaan data dan proses update dari sebuah informasi akan menjadi lebih mudah.

Paul Mockapertis dari University of Southern California Information Science Institute di Marina del Rey, California, dipilih sebagai orang yang bertanggung jawab terhadap rancangan, desain, arsitektur dan implementasi dari sistem pengelolaan data host yang baru. Pada tahun 1984 beliau merilis RFC (Request For Comment) 882 dan RFC 883 yang menjelaskan tentang Domain Name System (DNS). Kemudian disusul dengan RFC 1034 dan RFC 1035 yang juga menambahkan tentang masalah kemanan DNS, penerapan (implementasi), pengelolaan (adminstrative),mekanisme pembaharuan data secara dinamis, serta kemanan data dalam sebuah domain dan lain-lainnya.

(DNS and BIND 3rd Edition, Paul Albitz & Cricket Liu, 1998 Hal 3)
Konsep dan hirarki DNS

DNS adalah suatu bentuk database yang terdistribusi, dimana pengelolaan secara lokal terhadap suatu data akan segera diteruskan ke seluruh jaringan (internet) dengan menggunakan skema client-server. Suatu program yang dinamakan name server, mengandung semua segmen informasi dari database dan juga merupakan resolver bagi client-client yang berhubungan ataupun menggunakannya.

Struktur dari database DNS bisa diibaratkan dengan dengan struktur file dari sebuah sistem operasi UNIX. Seluruh database digambarkan sebagai sebuah struktur terbalik dari sebuah pohon (tree) dimana pada puncaknya disebut dengan root node. Pada setiap node dalam tree tersebut mempunyai keterangan (label) misalnya, .org, .com, .edu, .net, .id dan lain-lainnya, yang relatif rerhadap puncaknya (parent).Ini bisa diibaratkan dengan relative pathname pada sistem file UNIX,seperti direktori bin, usr, var, etc dan lain sebagainya. Pada puncak root node dalam sebuah sistem DNS dinotasikan dengan "." atau "/" pada sistem file UNIX.

Pada setiap node juga merupakan root dari subtree, atau pada sistem file UNIX merupakan root direktori dari sebuah direktori. Hal ini pada sistem DNS disebut dengan nama domain. Pada tiap domain juga memungkinkan nama subtree dan bisa berbeda pula, hal ini disebut subdomain atau subdirektori pada sistem file UNIX. Pada bagian subdomainjuga memungkinkan adanya subtree lagi yang bisa dikelola oleh organisasi yang berbeda dengan domain utamanya.

(DNS and BIND 3rd Edition, Paul Albitz & Cricket Liu, 1998 Hal 4)
Sejarah BIND

Program DNS yang bernama JEEVES pertama kali diimplementasikan dan ditulis sendiri oleh Paul Mockapertis. Kemudian diteruskan oleh BIND (versi 4.8.3) yang diimplementasikan pada sistem operasi 4.3 BSD UNIX yang ditulis oleh Douglas Terry, Mark Painter, David Riggle dan Songnian Zhou dari Computer Systems Research Group (CSRG) pada Universitas California di Berkeley. Pada tahun antara 1985-1987, Kevin Dunlap seseorang dari Digital Equipment Corporation (DEC) bergabung dengan CSRG yang kemudian diikuti oleh Doug Kingston, Craig Partridge, Smoot Carl- Mitchell, Mike Muuss, Jim Bloom dan Mike Schwartz. Pemimpin dari proyek ini adalah Mike Karels dan O. Kure.

BIND versi 4.9 dan 4.9.1 kemudian dirilis oleh DEC (yang sekarang diakusisi oleh Compaq Computer Corporation). Pemimpin dari proyek ini adalah Paul Vixie yang merupakan karyawan dari DEC serta dibantu oleh Phil Almquist, Robert Elz, Alan Barrett, Paul Albitz, Bryan Beecher, Andrew Partan, Andy Cherenson, Tom Limoncelli, Berthold Paffrath, Fuat Baran, Anant Kumar, Art Harkin, Win Treese, Don Lewis, Christophe Wolfhugel, dan lain-lainnya. BIND versi 4.9.2 kemudian diambil alih oleh Vixie Enterprises, dan Paul Vixie menjadi arsitek dan programmernya. BIND mulai dari versi 4.9.3 dan seterusnya kemudian diambil alih oleh Internet Software Consortium (ISC) dan akhirnya untuk pertama kalinya, pada tanggal 8 Mei 1997 Bob Halley dan Paul Vixie merilis versi BIND untuk keperluan produksi. Sekarang BINDversi 4 sudah mulai jarang digunakan, dan sebagai penggantinya adalah BIND versi 8 dan versi 9.

(http://www.isc.org/products/BIND/bind-history.html)
Cara kerja DNS

Ketika anda melakukan query (bisa berupa ping, ssh, dig, host, nslookup, email, dan lain sebagainya) ke sebuah host misalnya durmagati.ee.kurowo.edu maka name server akan memeriksa terlebih dahulu apakah ada record host tersebut di cache name server lokal. Jika tidak ada, name serverlokal akan melakukan query kepada root server dan mereferensikan name server untuk TLD .edu , name server lokal kembali melakukan query kepada name server .edu dengan jenis query yang sama dan mereferensikan kurowo.edu . Name server lokal kembali melakukan query ke name server kurowo.edu dan mereferensikan query selanjutnya ke name server lokal yaitu ee.kurowo.edu . Kemudian name server lokal melakukan query kepada name server lokal yaitu ee.kurowo.edu dan akhirnya mendapatkan jawaban address yang diminta. Penamaan host durmagati.ee.kurowo.edu mungkin bisa diartikan nama sebuah komputer (durmagati) pada Electrical Engineering Department (ee) pada Universitas Kurowo (kurowo.edu) , mungkin juga salah :)
2. Instalasi BIND

Anda bisa mendapatkan softare BIND yang paling baru dari website resmi ISC dengan alamat http://www.isc.org/products/BIND. Ketika tulisan ini dibuat versi calon rils (release candidate/rc) yang paling baru adalah 9.2.2rc1 (dirilis pada tanggal 14 Agustus 2002) dan versi stable 9.2.1 (dirilis pada tanggal 1 Mei 2002). Kebetulan mesin yang digunakan untuk percobaan adalah menggunakan sistem operasi Linux dengan distro Redhat 7.2 (Enigma), tentu anda bisa menggunakan distro favorit anda yang lain :). Karena pada distro Redhat pada instalasi default sudah menyertakan BIND dalam format RPM, maka langkah pertama adalah menghapus software tersebut dari sistem. Jika anda tidak menggunakan Redhat ataupun tidak ada software BIND yang telah ada, anda bisa melewati langkah berikut ini (INGAT, jika ada BIND yang telah jalan dan anda ingin melakukan upgrade, silakan kreatif dengan membuat salinan atau backup terlebih dahulu) :


[root@wedus asfik]# for a in $(rpm -qa | grep ^bind); do rpm -e --nodeps $a; done
[root@wedus asfik]# userdel -r named
[root@wedus asfik]# rm -rf /var/named

Diasumsikan anda terhubung ke internet dan terdapat utilitas wget untuk mendowload software dari ISC, jika anda telah mempunyai source BIND anda bisa melewati langkah berikut ini :


[root@wedus asfik]# wget ftp://ftp.isc.org/isc/bind9/9.2.2rc1/bind-9.2.2rc1.tar.gz

Kemudian kita mekarkan file source, melakukan kompilasi dan menambah user yang akan menjalakan BIND, pada proses make install akan terbentuk direktori /usr/local/named sebagai direktori utama dimana software ini disimpan :


[root@wedus asfik]# tar -xzvf bind-9.2.2rc1.tar.gz
[root@wedus asfik]# cd bind-9.2.2rc1
[root@wedus bind-9.2.2rc1]# ./configure --prefix=/usr/local/named
[root@wedus bind-9.2.2rc1]# make
[root@wedus bind-9.2.2rc1]# make install
[root@wedus bind-9.2.2rc1]# adduser -d /var/named -s /bin/false named

Ganti direktori ke home direktori user named serta mendownload file named.root yang berisi tentang informasi dari root-servers :


[root@wedus bind-9.2.2rc1]# cd /var/named
[root@wedus named]# wget ftp://internic.net/domain/named.root

Kemudian buat file untuk reverse PTR localhost (anda bisa menggunakan editor favorit anda, disini kita menggunakan vi) :


[root@wedus named]# vi db.127.0.0

Isi file db.127.0.0 adalah :


$TTL 86400
@ IN SOA localhost. root.localhost. (
2003021500 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum

IN NS localhost.
1 IN PTR localhost.

Kemudian salin file db.127.0.0 ke alamat network IP anda (bisa IP intranet atau IP yang anda dapatkan dari ISP anda), disini dimisalkan network yang akan kita reverse adalah 10.126.24.0/24 dan IP 10.126.24.1 adalah IP dimana software BIND akan kita install :


[root@wedus named]# cp db.127.0.0 db.10.126.24

Kemudian buat file yang berisi tentang zone dari localhost :


[root@wedus named]# vi db.localhost

Isi dari file db.localhost adalah :


$TTL 86400
$ORIGIN localhost.
@ IN SOA localhost. root.localhost. (
2003021500 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum

IN NS localhost.
IN A 127.0.0.1

Buat sebuah direktori untuk menyimpan file konfigurasi dari daemon program BIND :


[root@wedus named]# mkdir /usr/local/named/etc

Buat file /usr/local/named/etc/named.conf yang akan dijadikan sebagai file konfigurasi dari program BIND :


[root@wedus named]# vi /usr/local/named/etc/named.conf

Isi dari file /usr/local/named/etc/named.conf adalah :


options {
directory "/var/named";
allow-transfer { 10.126.24.2/32; };
pid-file "/var/named/named.pid";
};

logging {
category lame-servers { null; };
};

zone "." IN {
type hint;
file "named.root";
};

zone "localhost" IN {
type master;
file "db.localhost";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "db.127.0.0";
allow-update { none; };
};

zone "24.126.10.in-addr.arpa" IN {
type master;
file "db.10.126.24";
};

Kemudian meng-generate file konfigurasi yang akan digunakan oleh program rndc, ingat hasil dari perintah rndc-confgen bisa jadi berbeda dengan apa yang ditampilkan disini :


[root@wedus named]# /usr/local/named/sbin/rndc-confgen

Kemudian copy-paste dari hasil perintah tersebut diatas mulai dari baris "# Start of rndc.conf" sampai dengan baris "# End of rndc.conf", simpan dengan nama file /usr/local/named/etc/rndc.conf . Kemudian copy-paste lagi dengan menghilangkan tanda "#", mulai dari baris "# key "rndc-key"..." sampai dengan baris yang hampir paling bawah diatas baris "# End of named.conf " yaitu sampai dengan baris "};" kemudian tambahkan pada file /usr/local/named/etc/named.conf . Sebagai contohnya adalah sebagai berikut ini, isi dari file /usr/local/named/etc/rndc.confmisalnya :


# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "2LCJImnMimOwc1odWR6jfg==";
};

options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf

Sedangkan pada file /usr/local/named/etc/named.conf ditambahkan sebagai berikut :


key "rndc-key" {
algorithm hmac-md5;
secret "2LCJImnMimOwc1odWR6jfg==";
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};

Atau mungkin anda bisa menggunakan trik dibawah ini (tapi mungkin tidak selalu berhasil seperti yang anda harapkan, use it at your own risk :) ) :


[root@wedus named]# /usr/local/named/sbin/rndc-confgen > confgen.tmp
[root@wedus named]# grep -v "^#" confgen.tmp > /usr/local/named/etc/rndc.conf
[root@wedus named]# grep "^#" confgen.tmp | sed 1,3d | sed -e "s/\# //g" | sed -e "s/End of named.conf//g" >> /usr/local/named/etc/named.conf
[root@wedus named]# rm -rf confgen.tmp

Kemudian langkah selanjutnya adalah mengubah kepemilikan home direktori dari user named, kemudian menjalankan daemon dari program BIND :


[root@wedus named]# chown -R named.named /var/named
[root@wedus named]# /usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf

Jika sukses anda bisa melihat pada file /var/log/messages pesan-pesan sebagai berikut :


[root@wedus named]# tail -f /var/log/messages
Feb 15 12:54:18 wedus named[25139]: starting BIND 9.2.2rc1 -u named -c /usr/local/named/etc/named.conf
Feb 15 12:54:18 wedus named[25139]: using 1 CPU
Feb 15 12:54:18 wedus named[25139]: loading configuration from '/usr/local/named/etc/named.conf'
Feb 15 12:54:18 wedus named[25139]: no IPv6 interfaces found
Feb 15 12:54:18 wedus named[25139]: listening on IPv4 interface lo, 127.0.0.1#53
Feb 15 12:54:18 wedus named[25139]: listening on IPv4 interface eth0, 10.126.24.1#53
Feb 15 12:54:18 wedus named[25139]: command channel listening on 127.0.0.1#953
Feb 15 12:54:18 wedus named[25139]: zone 24.126.10.in-addr.arpa/IN: loaded serial 2003021500
Feb 15 12:54:18 wedus named[25139]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2003021500
Feb 15 12:54:18 wedus named[25139]: zone localhost/IN: loaded serial 2003021500
Feb 15 12:54:18 wedus named[25139]: running

Untuk mengaktifkan daemon BIND setiap kali komputer direstar, tambahkan perintah "/usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf" pada file rc.local didistro kesayangan anda. Jika anda menggunakan Redhat file rc.local terdapat pada direktori /etc, misalnya :


[root@wedus named]# echo "/usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf" >> /etc/rc.local

Kemudian kita set resolver agar menggunakan name server localhost:


[root@wedus named]# echo "nameserver 127.0.0.1" > /etc/resolv.conf

Testing query menggunakan name server localhost dengan perintah host :


[root@wedus named]# host 127.0.0.1
1.0.0.127.in-addr.arpa domain name pointer localhost.
[root@wedus named]# host localhost
localhost has address 127.0.0.1

Atau dengan menggunakan perintah dig :


[root@wedus named]# dig -x 127.0.0.1
; <<>> DiG 9.2.2rc1 <<>> -x 127.0.0.1
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64212
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa. IN PTR

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 86400 IN PTR localhost.

;; AUTHORITY SECTION:
0.0.127.in-addr.arpa. 86400 IN NS localhost.

;; ADDITIONAL SECTION:
localhost. 86400 IN A 127.0.0.1

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Feb 15 13:58:48 2003
;; MSG SIZE rcvd: 93

Jika anda tersambung ke internet anda bisa mencoba untuk query ke suatu host misalnya :


[root@wedus named]# host www.its-sby.edu
www.its-sby.edu is an alias for ns2.its-sby.edu.
ns2.its-sby.edu has address 202.155.84.179

Anda juga bisa mengeset client anda untuk menggunakan name server yang baru saja anda konfigurasi untuk melayani query. Untuk sistem operasi Windows 2000 Server (tm) adalah sebagai berikut : klik kanan pada "My Network Places" pilih "Properties", klik kanan pada "Local Area Connection" pilih "Properties", pilih pada "Internet Protocol (TCP/IP)" klik "Properties", klik radio button pada "Use the following DNS server addresses", isikan pada "Preferred DNS server" alamat IP dimana server DNS/BIND anda tersebut diinstall, disini diumpamakan IPnya adalah 10.126.24.1 . Untuk sistem operasi Windows98 (tm) adalah : dari menu "Start" klik "Settings", klik pada "Control Panel", klik pada "Network" klik pada "TCP/IP" pilih "Properties", pilih pada tabulasi "DNS Configuration" pilih pada "Enable DNS", kemudian pada "DNS Server Search Order" isikan alamat IP dimana server DNS/BIND anda tersebut diinstall, disini diumpamakan 10.126.24.1

Sampai pada langkah ini anda telah mengkonfigurasi BIND sebagai "caching only name server" yang akan menjawab semua query DNS dan mengingat-ingat record tersebut ketika anda melakukan query pada suatu record DNS yang sama. Hal ini mungkin akan membantu anda memperpendek waktu yang anda butuhkan untuk mengqueri suatu record jika anda berada pada koneksi internet yang pas-pasan :) (misalnya dialup atau kabel modem).

Jika anda terhubung ke sebuah ISP dan ingin membagi beban querydari client anda yang menuju ke server anda dengan server DNS ISP anda, maka anda bisa menggunakan opsi forwarder. Misalkan DNS server ISP anda mempunyai IP 10.11.12.1 dan 10.11.12.2 maka di file named.confpada seksi options, bisa anda tambahkan :


forward first;
forwarders {
10.11.12.1;
10.11.12.2;
};
Menambah sebuah domain

Sebelum menambahkan sebuah zone untuk suatu domain, tentunya anda harus memiliki nama domain yang unik. Jika anda merencanakan penggunaan domain di lingkungan intranet, maka anda tidak perlu untuk membelinya ataupun menyewa IP statik dari suatu ISP. Namun jika anda juga merencanakan domain tersebut akan digunakan di internet, tentunya anda harus membeli melalui registrar-registrar yang disetujui oleh Internic dan mendapatkan IP statik dari ISP anda. Misalnya untuk top level domain (TLD) .COM/.NET/.ORG/.EDU/.BIZ/.INFO anda bisa mendaftarkan melalui Network Solutions Inc. ( http://www.nsi.com), GKG Inc. ( http://www.gkg.net), Register Inc. ( http://www.register.com), atau anda bisa melihat daftar registrar yang lengkap di website resmi Internic dengan URL http://www.internic.net/alpha.html . Atau jika anda merencanakan untuk menggunakan DTD-ID (.co.id,.or.id,.web.id,.war.net.id) anda bisa mendaftarkan melalui http://www.idnic.net.id. Setelah domain tersebut selesai anda daftarkan biasanya anda diminta mengkonfigurasi 2 buah name-server yang akan menghandle domain tersebut. Untuk TLD .COM/.NET/.ORG/.EDU/.BIZ/.INFO biasanya anda diminta untuk mendaftarkan dahulu IP statik yang akan digunakan sebagai name-server ke registrar dimana domain tersebut didaftarkan. Untuk DTD-ID sampai tulisan ini dibuat anda bisa langsung mengarahkan name-server anda ke IP statik yang anda dapatkan dari ISP tanpa perlu mendaftarkan IP tersebut.

Sebagai contoh anda sudah mendapatkan domain : kurowo.edu , sebagai rencana primary name server (ns1.kurowo.edu) , IP yang digunakan adalah 10.126.24.1 , secondary name server (ns2.kurowo.edu) : 10.126.24.2 , webserver (kurowo.edu maupun www.kurowo.edu) : 10.126.24.3 , ftp server (ftp.kurowo.edu) dialiaskan ke www.kurowo.edu,sedangkan sebagai primary mail exchanger (dursosono.kurowo.edu) : 10.126.24.4 , secondary mail exchanger / backup mail exchanger (duryudono.kurowo.edu) : 10.26.24.5 dan gateway(gateway.kurowo.edu)nya adalah : 10.126.24.6

Diumpamakan kita telah ssh ke IP 10.126.24.1 yang akan kita jadikan ns1.kurowo.edu setelah su - ke user root pindah ke direktori /var/namedkemudian kita bikin file database untuk zone kurowo.edu :


[root@wedus root]# cd /var/named
[root@wedus named]# vi db.kurowo.edu

Isi file db.kurowo.edu adalah sesuai data-data yang direncanakan seperti diatas :


$TTL 86400
@ IN SOA ns1.kurowo.edu. asfik.kurowo.edu. (
2003021500 ; serial
28800
14400
3600000
86400
)

IN NS ns1.kurowo.edu.
IN NS ns2.kurowo.edu.
IN MX 10 dursosono.kurowo.edu.
IN MX 20 duryudono.kurowo.edu.
IN A 10.126.24.3

ns1 IN A 10.126.24.1
ns2 IN A 10.126.24.2
www IN A 10.126.24.3
dursosono IN A 10.126.24.4
duryudono IN A 10.126.24.5
gateway IN A 10.126.24.6
ftp IN CNAME www

Kemudian pada file /usr/local/named/etc/named.conf ditambahkan :


zone "kurowo.edu" {
type master;
file "db.kurowo.edu";
};

Restart BIND, anda bisa menggunakan perintah rndc atau memberi sinyal HUP ke daemon named (killall -HUP named), disini kita gunakan rndc :


[root@wedus named]# /usr/local/named/sbin/rndc reload

Kemudian amati file /var/log/messages, seharusnya ada pesan sebagai berikut :


Feb 15 14:29:32 wedus named[25232]: loading configuration from '/usr/local/named/etc/named.conf'
Feb 15 14:29:32 wedus named[25232]: no IPv6 interfaces found
Feb 15 14:29:32 wedus named[25232]: zone kurowo.edu/IN: loaded serial 2003021500
Feb 15 14:29:32 wedus named[25232]: zone kurowo.edu/IN: sending notifies (serial 2003021500)

Periksa apakah konfigurasi yang kita tambahkan sudah benar-benar sesuai, kita bisa menggunakan perintah host :


[root@wedus named]# host -t ns kurowo.edu
kurowo.edu name server ns1.kurowo.edu.
kurowo.edu name server ns2.kurowo.edu.
[root@wedus named]# host -t mx kurowo.edu
kurowo.edu mail is handled by 10 dursosono.kurowo.edu.
kurowo.edu mail is handled by 20 duryudono.kurowo.edu.
[root@wedus named]# host www.kurowo.edu
www.kurowo.edu has address 10.126.24.3

Jika IP 10.126.24.3 sudah terhubung ke jaringan, anda bisa periksa dengan menggunakan ping ke hostnya langsung :


[root@wedus named]# ping www.kurowo.edu
PING www.kurowo.edu (10.126.24.3) from 10.126.24.1: 56(84) bytes of data.
64 bytes from 10.126.24.3: icmp_seq=0 ttl=255 time=223 usec
64 bytes from 10.126.24.3: icmp_seq=1 ttl=255 time=223 usec
64 bytes from 10.126.24.3: icmp_seq=2 ttl=255 time=242 usec

--- www.kurowo.edu ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss

Atau anda juga bisa menggunakan perintah dig :


[root@wedus named]# dig kurowo.edu
; <<>> DiG 9.2.2rc1 <<>> kurowo.edu
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50880
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;kurowo.edu. IN A

;; ANSWER SECTION:
kurowo.edu. 86400 IN A 10.126.24.3

;; AUTHORITY SECTION:
kurowo.edu. 86400 IN NS ns2.kurowo.edu.
kurowo.edu. 86400 IN NS ns1.kurowo.edu.

;; ADDITIONAL SECTION:
ns1.kurowo.edu. 86400 IN A 10.126.24.1
ns2.kurowo.edu. 86400 IN A 10.126.24.2

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Feb 15 14:32:31 2003
;; MSG SIZE rcvd: 115

CATATAN : Setiap pembaharuan record terhadap database suatu zone selalu naikkan nomor serial ke yang lebih tinggi dari sebelumnya
Mengelola zone reverse (PTR)

Jika anda juga ingin merencanakan untuk mengelola zone PTR dari IP yang anda peroleh dari ISP anda, tentunya anda harus menanyakan dahulu ke ISP anda tentang delegasinya sehingga anda mempunya hak untuk mengelola reverse PTR IP anda. Sebagai contoh anda mendapatkan satu kelas C IP yaitu 10.126.24.0/24 dan sudah didelegasikan secara penuh oleh ISP anda, maka pada file named.conf yang telah dibuat pada seksi sebelumnya kita pastikan sudah terdapat zone untuk 24.126.10.in-addr.arpa,kemudian edit kembali file db.10.126.24 :


[root@wedus named]# vi db.10.126.24

Ubah isi dari file db.10.126.24 menjadi :


$TTL 86400
@ IN SOA ns1.kurowo.edu. asfik.kurowo.edu. (
2003021501 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum

IN NS ns1.kurowo.edu.
IN NS ns2.kurowo.edu.

1 IN PTR ns1.kurowo.edu.
2 IN PTR ns2.kurowo.edu.
3 IN PTR www.kurowo.edu.
4 IN PTR dursosono.kurowo.edu.
5 IN PTR duryudono.kurowo.edu.
6 IN PTR gateway.kurowo.edu.

Restart daemon BIND (killall -HUP named) :


[root@wedus named]# /usr/local/named/sbin/rndc reload

Periksa kembali apakah PTR yang kita seting sudah sesuai dengan keinginan, anda bisa menggunakan perintah host :


[root@wedus named]# host 10.126.24.1
1.24.126.10.in-addr.arpa domain name pointer ns1.kurowo.edu.
[root@wedus named]# host 10.126.24.2
2.24.126.10.in-addr.arpa domain name pointer ns2.kurowo.edu.
[root@wedus named]# host 10.126.24.3
3.24.126.10.in-addr.arpa domain name pointer www.kurowo.edu.
[root@wedus named]# host 10.126.24.4
4.24.126.10.in-addr.arpa domain name pointer dursosono.kurowo.edu.
[root@wedus named]# host 10.126.24.5
5.24.126.10.in-addr.arpa domain name pointer duryudono.kurowo.edu.
[root@wedus named]# host 10.126.24.6
6.24.126.10.in-addr.arpa domain name pointer gateway.kurowo.edu.

Atau menggunakan perintah dig :


[root@wedus named]# dig -x 10.126.24.4
; <<>> DiG 9.2.2rc1 <<>> -x 10.126.24.4
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30843
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;4.24.126.10.in-addr.arpa. IN PTR

;; ANSWER SECTION:
4.24.126.10.in-addr.arpa. 86400 IN PTR dursosono.kurowo.edu.

;; AUTHORITY SECTION:
24.126.10.in-addr.arpa. 86400 IN NS ns1.kurowo.edu.
24.126.10.in-addr.arpa. 86400 IN NS ns2.kurowo.edu.

;; ADDITIONAL SECTION:
ns1.kurowo.edu. 86400 IN A 10.126.24.1
ns2.kurowo.edu. 86400 IN A 10.126.24.2

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Feb 15 14:53:44 2003
;; MSG SIZE rcvd: 142

Atau anda juga bisa memeriksa dengan menggunakan name serverISP anda :


[root@wedus named]# host 10.126.24.4 ns1.myloveleyisp.net.id
Using domain server:
Name: ns1.myloveleyisp.net.id
Address: 10.11.12.1#53
Aliases:

4.24.126.10.in-addr.arpa. domain name pointer dursosono.kurowo.edu
Membuat secondary name server

Setelah anda selesai membuat primary name server (ns1), langkah selanjutnya adalah membuat secondary name server (ns2). Tujuannya adalah untuk menerima query dns jika pada primary name server (ns1)sebagai server dns yang utama mengalami gangguan teknis ataupun terlalu sibuk. Oleh karena idealnya secondary name server (ns2) biasanya diletakkan pada network yang berbeda dengan primary name server (ns1),tentunya secondary name server (ns2) ini membutuhkan komputer/mesin yang lain (terpisah dari primary-nya/ns2) . Langkah instalasi secondary name server adalah sama ketika anda mengkonfigurasi primary name server. Namun, file yang yang digunakan hanyalah db.127.0.0, db.localhost,dan named.root.

Untuk memastikan hanya host dengan IP 10.126.24.2/32 (ns2) yang bisa mentransfer zone dari ns1, maka pastikan pada file named.confdi ns1 pada bagian options terdapat :


allow-transfer { 10.126.24.2/32; };

Kemudian anda bisa login (ssh) ke ns2, dan kemudian buat file named.conf yang isinya adalah sebagai berikut :


options {
directory "/var/named";
pid-file "/var/named/named.pid"; };

logging {
category lame-servers { null; };
};

zone "." IN {
type hint;
file "named.root";
};

zone "localhost" IN {
type master;
file "db.localhost";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "db.127.0.0";
allow-update { none; };
};

zone "kurowo.edu" {
type slave;
file "dbs.kurowo.edu";
masters { 10.126.24.1; };
};

zone "24.126.10.in-addr.arpa" {
file "dbs.10.126.24";
masters { 202.145.6.99; };
};

Kemdian restart daemon DNS di ns2 dengan perinta rndc (killall -HUP named) , jika sukses maka zone kurowo.edu dan zone 24.126.10.in-addr.arpa segera ditransfer dari ns1, dan pada file /var/log/messages terdapat pesan sebagai berikut :


Feb 15 14:31:47 kadal named[630]: transfer of 'kurowo.edu' from 10.126.24.1#53: end of transfer
Feb 15 14:31:47 kadal named[630]: transfer of '24.126.10.in-addr.arpa' from 10.126.24.1#53: end of transfer

Jika anda perhatikan juga file /var/log/messages pada ns1 maka akan menghasilkan pesan berikut :


Feb 15 14:42:43 wedus named[25232]: client 10.126.24.2#3918: transfer of 'kurowo.edu/IN': AXFR started
Feb 15 14:42:43 wedus named[25232]: client 10.126.24.2#1527: transfer of '24.126.10.in-addr.arpa/IN': AXFR started

Jika sukses, berarti primary name server (ns1) dan secondary name server (ns2) sudah beroperasi dengan benar. Ketika anda ingin menambahkan domain baru lagi yang lain, misalnya ayodyo.co.id, anda tinggal mengulangi langkah-langkah dalam seksi "Menambah sebuah domain" . Ketika domain yang anda kelola telah mencapai jumlah ribuan nama domain misalnya, dan anda ingin memisahkan data tersebut dari file konfigurasi named.conf, anda bisa menggunakan include di named.conf , misalnya :


include "/usr/local/named/etc/my.big.hosts.conf";
Mendelegasikan subdomain ke name server yang lain

Misalkan anda mempunyai domain kurowo.edu dan ada suatu bagian/departemen yang menginginkan pengelolaan database sendiri terhadap suatu subdomain, maka anda bisa mendelegasikan subdomain tersebut. Diumpamakan subdomain cs.kurowo.edu akan dikelola oleh Departemen Computer Science denganname server yaitu citraksa.cs.kurowo.edu (10.126.25.1) dan citraksi.cs.kurowo.edu (10.126.25.2) maka pada file named.conf di database zone kurowo.edu anda tambahkan :


; cs.kurowo.edu dikelola oleh name server ini
cs IN NS citraksa.cs.kurowo.edu.
IN NS citraksi.cs.kurowo.edu.
citraksa.cs IN A 10.126.25.1
citraksi.cs IN A 10.126.25.2

Restart daemon named, dan selanjutnya subdomain tersebut telah didelegasikan.
3. Istilah

Beberapa istilah/singkatan yang digunakan dalam database pada sebuah zone :

TTL : Time To Live
SOA : Start of Authority
NS : Name Server
MX : Mail Exchanger
TXT : Text
A : Adrress (name-to-address mapping)
PTR : Pointer (address-to-name mapping)
CNAME : Canonical name
4. Change Log

16 Februari 2003

Penulisan dokumen ini dimulai

18 Februari 2003

Pembuatan dokumen versi PDF dan penambahan seksi istilah

19 Februari 2003

Penambahan seksi salinan dan beberapa keterangan tentang pembaharuan serial number
5. Salinan

Salinan ijin dari Penerbit O'Reilly (Sejarah Internet, Sejarah DNS, Konsep dan hirarki DNS) :


From: Cindy Wetterlund
Subject: Re: Ask about permission
To: Asfihani (by way of Mary Hubben )
Cc: permissions@xxxxxxx.com, maryh@xxxxxxx.com
Date: Tue, 18 Feb 2003 13:51:35 -0800
X-Mailer: QUALCOMM Windows Eudora Version 4.3.2
X-Spam-Status: No, hits=-5.0 required=5.0 tests=IN_REP_TO version=2.20
X-Spam-Level: Message-Id: <4.3.2.7.2.20030218134230.023b05f8@xxxx.xxxx.xxxx.com>

Hello Asfihani,
Thank you for your mail and inquiry.

O'Reilly gives you permission to use the below mentioned material
from "DNS and BIND" 3rd edition for educational purposes only.
Since there is a new edition available, it will be appreciated if you add to
the reference information a link to the source http://www.oreilly.com/catalog/dns4/
so readers know where to find the most current information.

I hope this is helpful.
Best,
Cindy

Salinan ijin dari Internet Software Consortium (Sejarah BIND) :


From: Paul Vixie
Subject: Re: Ask about permission
To: Asfihani
Cc: info@xxxxxxx.org Date: Mon, 17 Feb 2003 15:59:20 +0000
X-Mailer: MH-E 7.2; nmh 1.0.4; GNU Emacs 21.2.1
X-Spam-Status: No, hits=-5.0 required=5.0 tests=IN_REP_TO version=2.20
X-Spam-Level: Message-Id: <20030217155920.A6FFA379EF3@as.xxxxx.com>

no problem. please give us attribution when you quote our material.
but, you may quote as much of it as you wish.
6. Referensi

DNS and BIND 3rd Edition ditulis oleh Paul Albitz dan Cricket Liu, penerbit O'Reilly tahun 1998, anda bisa mendapatkan edisi yang paling baru (edisi ke 4) di http://www.oreilly.com/catalog/dns4
http://www.isc.org/products/BIND/bind-history.html
http://www.tldp.org/HOWTO/DNS-HOWTO.html