Tuesday, December 27, 2011

Kumpulan botol di lemari

Img_20111227_115138

Iseng-iseng buka lemari dikantor malah nemu ini

Tuesday, December 13, 2011

Membuat multiple domain pada satu server dengan satu IP address

adakalanya kita membutuhkan domain lebih dari satu, sedangkan hardware yang tersedia sangat terbatas, atau IP address yang tersedia hanya satu IP address, dalam kasus ini penulis memeberikan contoh : dibutuhkan 3 domain, sedangkan IP yang tersedia hanya 1 dan hardware (dalam hal ini adalah server) yang bisa digunakan hanya 1 unit, untuk itu perlu dilakukan modifikasi agar 1 sever tersebut bisa digunakan untuk melayani 3 domain secara bersamaan.

diumpamakan, IP address yang digunakan adalah 192.168.1.1, kemudian nama domain yang digunakan adalah xxx.com, yyy.com, dan zzz.com

Hal-hal yang perlu dilakukan antara lain :

Instalasi Apache

$ sudo apt-get install apache2

Kemudian buka browser anda, dan ketik url localhost atau 192.168.1.1, document root apache secara default terletak di /var/www, dan konfigurasi file terletak di /etc/apache2/apache2.conf. Konfigurasi tambahan terletak di /etc/apache2, seperti /etc/apache2/mods-enabled (untuk module apache), /etc/apache2/sites-enabled (untuk virtual hosts), dan /etc/apache2/conf.d.

Instalasi DNS Server dengan Bind9

Dalam contoh ini misalkan konfigurasi yang akan kita buat adalah sebagai berikut :

Nama Host : xxx.com
IP Host : 192.168.1.1

Install bind dengan perintah :

$ sudo apt-get install bind9

Edit file named.conf menggunakan editor pico atau editor lain sesuai selera dengan perintah:

$ sudo pico /etc/bind/named.conf

Lalu tambahkan zone berikut (sesuaikan dengan kondisi server anda).

zone "xxx.com" IN {
type master;
file "/etc/bind/xxx.com.db";
allow-update
{ none; };
};
zone "1.168.192.inaddr.arpa" IN {
type master;
file "/etc/bind/xxx.com-ptr.db";
allow-update
{ none; };
};

Simpan konfigurasi diatas.

Setelah itu buatlah 2 file yang ada pada file named.conf yang anda buat tadi (xxx.com.db dan xxx.com-ptr.db). Baiklah, mari kita mulai dengan xxx.com.db :

$ sudo pico /etc/bind/xxx.com.db

dan isikan dengan :

$TTL 604800
@ IN SOA xxx.com. admin.xxx.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.xxx.com.
@ IN A 192.168.1.1
localhost IN A 127.0.0.1
www IN A 192.168.1.1
ns1 IN A 192.168.1.1

Lalu buat file konfigurasi kedua, yaitu xxx.com-ptr.db :

$ sudo pico /etc/bind/xxx.com-ptr.db

dan isikan dengan parameter :

$TTL 604800
@ IN SOA xxx.com. root.xxx.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS ns1.xxx.com
1 IN PTR xxx.com.

Simpan konfigurasi.
note :
1 --> sesuaikan dengan IP address
Edit file /etc/hosts :

$ sudo pico /etc/hosts

lalu edit sesuai dengan parameter server anda :

127.0.0.1 localhost
192.168.1.1 xxx.com

Simpan kembali. Kemudian edit file resolv.conf :

$ sudo pico /etc/resolv.conf

Input parameter seperti dibawah ini (sesuaikan dengan parameter server anda) :

domain xxx.com
search xxx.com
nameserver 192.168.1.1

Simpan kembali perubahan tersebut. Kemudian edit file named.conf.options :

options {
directory "/var/cache/bind";
forwarders {
192.168.1.1;
};
auth-nxdomain yes; # conform to RFC1035
listen-on-v6
{ any; };
};

Langkah selanjutnya adalah merestart services Bind :

$ sudo /etc/init.d/bind9 restart

Untuk testing dapat menggunakan perintah nslookup :

$ nslookup www.xxx.com

Output :

Server: 192.168.1.1
Address: 192.168.1.1#53
Name: www.xxx.com
Address: 192.168.1.1

$ host xxx.com

Output :

xxx.com has address 192.168.1.1

Untuk troubleshooting, gunakan perintah :

$ sudo tail -f /var/log/syslog

Hasil dari syslog dapat anda gunakan untuk analisa kesalahan dalam konfigurasi

Membuat Virtual Host (multiple domain dalam 1 server)

Apache mendukung virtual hosting dengan basis IP dan nama domain, sehingga memungkinkan 1 server memiliki banyak domain. Mari kita mulai :)
Kita pastikan port yang digunakan adalah port 80 (http). Edit file ports.conf dengan perintah berikut :

$ sudo pico /etc/apache2/ports.conf

Kemudian ganti menjadi seperti dibawah ini (sesuaikan IP dengan milik anda) :

NameVirtualHost 192.168.1.1:80
Listen 80

Selanjutnya, menjalankan perintah berikut untuk menonaktifkan default virtual host apache.

$ sudo a2dissite default
$ sudo /etc/init.d/apache2 reload

Setiap konfigurasi virtual host tersimpan dalam sebuah file yang diberi nama domain dan terletak pada direktori /etc/apache2/sites-available/. Dalam contoh ini, Anda akan membuat file dengan basis nama domain xxx.com, yyy.com, dan zzz.com

Pertama kita buat terlebih dahulu file yyy.com (/etc/apache2/sites-available/yyy.com). Sesuaikan IP dengan yang anda miliki.

$ sudo pico /etc/apache2/sites-available/yyy.com

Masukkan konfigurasi berikut :

ServerAdmin admin@yyy.com
ServerName yyy.com
ServerAlias www.yyy.com
DocumentRoot /srv/www/yyy.com/public_html/
ErrorLog /srv/www/yyy.com/logs/error.log
CustomLog /srv/www/yyy.com/logs/access.log combined

Selanjutnya, membuat file konfigurasi xxx.com (/etc/apache2/sites-available/xxx.com) :

$ sudo pico /etc/apache2/sites-available/xxx.com

Masukkan konfigurasi berikut :

ServerAdmin admin@xxx.com
ServerName xxx.com
ServerAlias www.xxx.com
DocumentRoot /srv/www/xxx.com/public_html/
ErrorLog /srv/www/xxx.com/logs/error.log
CustomLog /srv/www/xxx.com/logs/access.log combined

Selanjutnya, membuat file konfigurasi zzz.com (/etc/apache2/sites-available/zzz.com) :

$ sudo pico /etc/apache2/sites-available/zzz.com

Masukkan konfigurasi berikut :

ServerAdmin admin@zzz.com
ServerName zzz.com
ServerAlias www.zzz.com
DocumentRoot /srv/www/zzz.com/public_html/
ErrorLog /srv/www/zzz.com/logs/error.log
CustomLog /srv/www/zzz.com/logs/access.log combined

Seluruh file web akan diletakkan pada direktori /srv/www. Direktori ini dapat anda sesuaikan dengan kebutuhan, tidak harus di /srv

Buat direktori yang kita butuhkan dengan perintah berikut :

$ sudo mkdir -p /srv/www/yyy.com/public_html
$ sudo mkdir /srv/www/yyy.com/logs
$ sudo mkdir -p /srv/www/xxx.com/public_html
$ sudo mkdir /srv/www/xxx.com/logs
$ sudo mkdir -p /srv/www/zzz.com/public_html
$ sudo mkdir /srv/www/zzz.com/logs

Aktifkan situs dengan menggunakan perintah berikut :

$ sudo a2ensite yyy.com
$ sudo a2ensite xxx.com
$ sudo a2ensite zzz.com

Terakhir, restart layanan Apache untuk mengetahui hasil perubahan yang kita lakukan :

$ sudo /etc/init.d/apache2 restart

Ketika anda membuat atau melakukan editing file virtual host, lakukan reload konfigurasi dengan perintah berikut :

$ sudo /etc/init.d/apache2 reload

Masukkan konten web yang berbeda pada /srv/www/yyy.com/public_html, /srv/www/zzz.com/public_html, dan /srv/www/xxx.com/public_html. Kemudian Buka browser anda, lakukan akses ke yyy.com, xxx.com dan zzz.com untuk ujicoba.

Konfigurasi Bind9 untuk mendukung virtual host

Untuk mendukung proses konfigurasi virtual host diatas, ada beberapa konfigurasi tambahan yang diperlukan. Yaitu menambahkan file resolv dari domain ke ip (perhatikan perbedaannya dengan konfigurasi xxx.com) yang terletak pada /etc/bind/yyy.com.db dan /etc/bind/zzz.com.db.

Membuat file konfigurasi yyy.com :

$ sudo pico /etc/bind/yyy.com.db

Masukkan konfigurasi berikut pada file tersebut :

$TTL 604800
@ IN SOA yyy.com. admin.yyy.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.yyy.com.
@ IN A 192.168.1.1
localhost IN A 127.0.0.1
www IN A 192.168.1.1
ns1 IN A 192.168.1.1

Membuat file konfigurasi zzz.com :

$ sudo pico /etc/bind/zzz.com.db

Masukkan konfigurasi berikut pada file tersebut :

$TTL 604800
@ IN SOA zzz.com. admin.zzz.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.zzz.com.
@ IN A 192.168.1.1
localhost IN A 127.0.0.1
www IN A 192.168.1.1
ns1 IN A 192.168.1.1

Edit file konfigurasi /etc/bind/xxx.com-ptr.db

$ sudo pico /etc/bind/xxx.com-ptr.db

Tambahkan baris ini pada akhir konfigurasi

1 IN PTR yyy.com.
1 IN PTR zzz.com.

Kemudian tambahkan konfigurasi pada /etc/hosts, sehingga menjadi sbb :

192.168.1.1 xxx.com yyy.com zzz.com

Kemudian tambahkan baris zone berikut pada file /etc/bind/named.conf :

zone "yyy.com" IN {
type master;
file "/etc/bind/yyy.com.db";
allow-update
{ none; };
};

zone "zzz.com" IN {
type master;
file "/etc/bind/zzz.com.db";
allow-update
{ none; };
};

kemudian restart service bind dengan perintah :

$sudo /etc/init.d/bind9 restart