Kamis, 03 April 2014

DNS Server di Ubuntu dengan Bind



DNS (Domain Name  System) adalah mekanisme yang menerjemahkan dari alamat IP menjadi nama domain yang lebih mudah dipahami oleh manusia. Ditemukan pada tahun 1982, spesifikasi original bisa dijumpai pada RFC 882 and RFC 883, yang kemudian diganti oleh RFC 1034 and RFC 1035 [1].
Untuk membuat DNS server pada Ubuntu maka perlu diinstal software DNS. Salah satu paket yang paling banyak digunkan adalah Bind. Untuk menginstall Bind pada Ubuntu Linux
sudo apt-get install bind9

Cek instalasi bind9 dengan
dpkg -l | grep bind9
Dalam tutorial ini akan dibuat 1 DNS server untuk 1 domain yang kemudian akan diuji fungsionalitasnya. Untuk itu ada 3 file yang akan diubah (untuk definisi domain dan zone, forwarder dan resolver) dan 2 file yang dibuat untuk konfigurasi [2]. File yang akan diubah adalah:
  1. /etc/named.conf.local
  2. /etc/named.conf.option
  3. /etc/resolv.conf
Edit file pertama untuk mendefinisikan domain yang akan diadministrasi.
gksudo gedit /etc/bind/named.conf.local
File ini digunakan untuk mendefinisikan zone, atau domain yang akan diadmintrasi oleh server. Sebagai contoh, bila kita mendefiniskan domain example.com, maka file ini akan berisi sebagai berikut
#ganti example.com dengan zone anda, juga zone reverse. Untuk contoh ini network address dari domain adalah 10.0.2.0/24. Gantilah dengan network address dari zone anda.
zone “example.com” {
type master;
file “/etc/bind/zones/example.com.db”;
};
# This is the zone definition for reverse DNS.
zone “2.0.10.in-addr.arpa” {
type master;
file “/etc/bind/zones/rev.2.0.10.in-addr.arpa”;
};
Edit file /etc/bind/named.conf.option. Untuk bagian forwarder masukkan DNS server yang menjadi tujuan query, bila DNS server anda tidak punya informasi. Contoh dibawah ini menggunakan google DNS server sebagai tujuan. Jangan lupa untuk menghapuskan tanda komentar “//”
forwarders {
8.8.8.8;
};
File ke-3 yang perlu diubah adalah /etc/resolv.conf. File ini digunakan untuk memberitahu aplikasi (contoh: browser) DNS server mana yang akan digunakan. Ganti IP dengan alamat komputer yang digunakan sebagai server.
nameserver 10.0.2.15
search example.com
Langkah berikutnya adalah mengkonfigurasi zone. File pertama yang harus dibuat adalah /etc/bind/zones/example.com.db, digunakan untuk menterjemahkan domain name menjadi IP address. Berikut ini contoh isi file tersebut (ubah sesuai kebutuhan).
Bila belum ada, buat lebih dahulu directory zone di /etc/bind
sudo mkdir /etc/bind/zones
Kemudian buat file example.com.db dengan contoh dibawah ini
$TTL 3600
example.com.      IN      SOA     ns1.example.com. admin.example.com. (
2012051401
28800
3600
604800
38400
)
example.com.      IN      NS              ns1.example.com.
example.com.      IN      MX     10       mta.example.com.
www              IN      A       10.0.2.15
mta              IN      A       10.0.2.15
ns1              IN      A       10.0.2.15
File kedua yang dibuat adalah file reverse domain (/etc/bind/zones/rev.2.0.10.in-addr.arpa). File ini digunakan untuk menerjemahkan sebuah IP address menjadi domain name. Contoh file bisa dilihat dibawah.
@ IN SOA ns1.example.com. admin.example.com. (
2012051401
28800
604800
604800
86400
)
IN    NS     ns1.example.com.
15                    IN    PTR    example.com
Periksa file zone anda untuk memastikan tidak ada kesalahan konfigurasi
named-checkzone -D example.com /etc/bind/zones/example.com.db
named-checkzone -D 2.0.10.in-addr.arpa. /etc/bind/zones/rev.2.0.10.in-addr.arpa
Jalankan DNS server anda dengan perintah
sudo /etc/init.d/bind9 start
Setiap kali anda mengubah konfigurasi, reload server dengan perintah
sudo /etc/init.d/bind9 restart
Untuk menguji DNS server, gunakan perintah
nslookup www.example.com
dig www.example.com
Periksa apakah forwarder berfungsi dengan baik
nslookup www.google.com
Selamat mencoba :)
Contoh tampilan dig yang berhasil

[1] http://en.wikipedia.org/wiki/Domain_Name_System
[2] http://ubuntuforums.org/showthread.php?t=236093

1.APACHE2


  1. Apache Web Server yang paling umum digunakan di sistem Linux. Web Server digunakan untuk melayani Halaman Web yang diminta oleh komputer klien. Klien biasanya meminta dan melihat Halaman Web menggunakan aplikasi Web Browser seperti Firefox , Opera , Chrome , atau Mozilla .
    • Install Apache
      # apt-get install apache2
      Pastikan tidak ada pesan error dan pastikan service apache2
      # nmap localhost
      PORT STATE SERVICE
      80/tcp open ftp
      # netstat -tanp | grep apache2
      tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 34983/apache2
      # nmap localhost |grep http
      80/tcp open http
      Cek dari browser masukan ip address nya pada browser misalnya 192.168.1.100.

      Agar server dapat di kenali dari nama di perlukan server dns, tetapi saat ini kita setup dahulu melalui file hosts pada client tanpa setup dns.

      Setup dahulu file /etc/hosts pada komputer client (desktop).
      #echo “192.168.1.100 engkur.oke www.engkur.oke” >> /etc/hosts
      Cek apakah dapat ping host dengan nama server :
      #ping www.engkur.oke
      PING engkur.oke (192.168.1.100) 56(84) bytes of data.
      64 bytes from engkur.oke (192.168.1.100): icmp_req=1 ttl=64 time=0.091 ms

      Jika sudah replay dari server artinya sudah server sudah dapat di akses lewat nama.
      Masukan nama server pada browser www.engkur.oke.

      Saat ini kita sudah dapat membuat konten webserver, untuk itu dapat kita buat sebuah file index.html.

      #cd /var/www
      #mv index.html index.html.asli
      #nano index.html

          <html><body><h1>Selamat datang di www.engkur.oke</h1>
          <p>Ini server paling oke di dunia</p>
          <p>Tapi masih belon kelar ya...</p>
          </body></html>

      Save file tersebut dan browse lagi dari browser client, refresh saja browser nya
    • Install PHP
      Saat ini server web hanya dapat melayani konten static, berupa file html dan image. Tetapi belum dapat melayani dinamik konten, untuk itu kita perlu server side scripting program yaitu PHP.
      #apt-get install php5 libapache2-mod-php5 php5-cli php5-cgi php5-mysql
      #/etc/init.d/apache2 restart

      Buat file info.php agar kita tahu bahwa server kita sudah mendukung php
      #cd /var/www
      #nano info.php

          <?php
          phpinfo();
          ?>

      Save dan kemudian lihat dari browser client www.engkur.oke/info.php.
    • Membuat user yang bertugas untuk upload file server dan memasukan nya ke group www-data.

          #adduser engkur
      Masukan user engkur ke group www-data
          #usermod -a -G www-data engkur
          #cd /www/data

          #mkdir engkur.oke
      Pindahkan file konten ke dalam direktory engkur.oke
          #mv index.html engkur.oke
          #chown -R engkur.www-data engkur.oke


      Save file tersebut dan browse lagi dari browser client http://engkur.oke/engkur.oke, refresh saja browser nya kali ini.
    • Saat ini web server kita hanya mempunyai satu web, kita dapat memakai virtualhost agar kita dapat mempunyai banyak web dalam satu server.

      #cd /etc/apache2/sites-avaiable/
      #vim engkur.oke

      <VirtualHost *:80>
      ServerName engkur.oke
      ServerAlias www.engkur.oke
      ServerAdmin admin@engkur.oke
      DocumentRoot /var/www/engkur.oke
      </VirtualHost>
      Aktifkan virtualhost nya
      #a2ensite engkur.oke
      Restart apache nya
      #/etc/init.d/apache2 restart

      Save file tersebut dan browse lagi dari browser client http://www.engkur.oke.
    • Membuat virtual host yang lain
      #echo “192.168.1.100 www.kawanku.bolot kawanku.bolot” >> /etc/hosts
      Membuat user web
      #adduser kawanku
      Masukan user ke group www-data
      #usermod -a -G www-data kawanku
      Membuat file konfig
      #cd /etc/apache2/sites-avaiable/
      #cp engkur.oke kawanku.bolot
      #vim kawanku.bolot
           :%s/engkur.oke/kawanku.bolot/g
           :wq
      #a2ensite kawanku.bolot

      Reload webserver nya
      #/etc/init.d/apache2 restart
      Membuat konten web
      #cd /var/www
      #mkdir kawanku.bolot
      #cp engkur.oke/index.html kawanku.bolot
      #cd kawanku.bolot
      #vim index.html
           :%s/engkur.oke/kawanku.bolot/g
           :wq
      #chown -R kawanku.www-data kawanku.bolot

      Save file tersebut dan browse lagi dari browser client www.kawanku.bolot, refresh saja browser nya.
    • Untuk melihat server web yang lain, dengan metode file host akan sangat sulit karena kita harus mendaftar kan alamat ip masing masing server, untuk itu kita harus memakai dns server. Pembahasan DNS server belum di lakukan saat ini, dan sudah penulis buat kan di server 192.168.1.100.

      Setup dns server pada file /etc/resolv.conf
           #vim /etc/resolv.conf
      Nameserver 192.168.1.253
      Matikan setup file /etc/hosts nya, pasang # didepan domain yang di buat di server, agar sekarang domain nya dapat di resolv dari dns server.
                #vim /etc/hosts
                # 192.168.1.100 www.engkur.oke engkur.oke
                # 192.168.1.100 www.kawanku.bolot kawanku.bolot

      Cek dahulu server resolv server melalui dns
           #dig kawanku.bolot
           #host kawanku.bolot
           #ping kawanku.bolot
           #ping www.kawanku.bolot


      Kalau dapat di ping sekarang kita browse server yang lain melalui browser masukan saja www.kawanku.bolot Saat ini server kita siap di jadikan hosting server.
  2. MySql
    Dinamik konten membutuhkan database untuk menyimpan konten yang dinamik, kita memakai
    mysql server yang sangat populer sebagai web database server.

    Instalasi mysql server
         #apt-get install mysql-server
    Pada saat instalasi akan di tanyakan root mysql password, masukan saja “r00t”

    Cek service mysql
         #sudo netstat -tap | grep mysql
            tcp 0 0 localhost:mysql *:* LISTEN 2556/mysqld
    Jika belum up restart dahulu service mysql nya
         #/etc/init.d/mysql restart

    Mengakses database server dan beberapa mysql command.
    #mysql -u root -p
    mysql>show databases;

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mydb               |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    5 rows in set (0.02 sec)
    mysql>create database mydb;
    Query OK, 1 row affected (0.03 sec)
    mysql>quit