Rabu, 14 Agustus 2013

Bind dan DNS server ( mengarahkan domain ke ip public server )


Sedikit berbagi tentang ubuntu linux, walaupun saya sendiri masih bodoh.
Mengarahkan Domain registrar kita ke dns server ubuntu memang dibilang agak gampang - gampang susah, langsung aja disimak ya.

Dengan pembuatan server DNS ini, domain anda yang sudah didaftarkan pada InterNIC dapat diakses dari segala penjuru dunia (Internet).

Penulis akan membahas spesifik pada distro berbasis rpm yaitu Red Hat pada beberapa bagian dari artikel ini, walaupun konsepnya hampir sama untuk distro lain.

Diharapkan anda sudah membaca artikel pertama dan kedua sebelum membaca artikel ketiga ini. Seperti halnya pada pembuatan resolving-caching name-server yang kita bahas sebelumnya, kita harus mempunyai paket bind,bind-utils dan caching-nameserver. Penulis asumsikan sistem Linux anda sudah terinstal BIND. Versi BIND penulis adalah 9.2.1.

Nama Domain
Pertama kita harus mempunyai nama domain yang sudah didaftarkan ke InterNIC untuk Top Level Domain (TLD) atau IDNIC untuk TLD-ID (.id): net.id, co.id, or.id, web.id.
Pendaftaran dapat secara langsung atau melalui ISP dan penyedia layanan pendaftaran dan pembelian nama domain.
Jika anda belum mau untuk mendaftarkan domain dan ingin membuat domain main-main, penulis ingatkan untuk menambahkan baris notify no pada zone di berkas named.conf. Tujuannya adalah agar named tidak memberikan pencarian dan pemberitahuan ke server yang terdaftar sebagai NS record pada berkas zone dan secondary-master/slave name-server (jika ada) untuk meng-update database cache name-server domain anda itu. Karena recorddengan domain-main-main Anda tidak ada dalam jaringan atau Internet. Contoh penambahan baris notify no:
zone "domain-belum-daftar.org" {
        type master;
        notify no;
        file "db.domain-belum-daftar.org";
};
Konfigurasi
Untuk mudahnya penulis buat skenario pembuatan server DNS dengan domain sebagai berikut:
Nama domain yang sudah kita daftarkan adalah my-server.com.
Alamat IP publik yang diberikan oleh ISP kita adalah 202.234.5.67 s.d 202.234.5.72. Pada server DNS akan digunakan IP 202.234.5.67.

Domain dan IP di atas adalah 'fiktif' jadi dalam named.conf perlu ditambahkan baris notify no pada bagian zone. Untuk Anda yang mempunyai domain dan alamat IP resmi tinggal mengganti domain my-server.com dan IP-nya.

Seperti biasa kita harus mengkonfigurasi berkas-berkas:

  1. named.conf
    Tambahkan baris zone untuk domain anda pada berkas ini (my-server.com).
    // generated by named-bootconf.pl
    
    options {
     directory "/var/named";
     /*
      * If there is a firewall between you and nameservers you want
      * to talk to, you might need to uncomment the query-source
      * directive below.  Previous versions of BIND always asked
      * questions using port 53, but BIND 8.1 uses an unprivileged
      * port by default.
     query-source address * port 53;
      */
    };
    
    zone "." IN {
     type hint;
     file "named.ca";
    };
    
    zone "0.0.127.in-addr.arpa" IN {
     type master;
     file "named.local";
    };
    
    zone "my-server.com" IN {
     type master;
     notify no;
     file "db.my-server.com";
    };
    
    zone "5.234.202.in-addr.arpa" IN {
     type master;
     notify no;
     file "db.202.234.5";
    };
    
    key "key" {
     algorithm hmac-md5;
            secret "jggRewTTCgdTOUvWPd0cqPoRiQfKvoYYJnhpVqWcWpfrgSRedgKlpyjbmlsd";
    };
    

    Baris zone "my-server.com" adalah menunjukkan zone yang otoritatif untuk nama domain my-server.com dan diikuti dengan dengan tipe name-server yaitu master karena kita akan membuat primary-master name-server. Selanjutnya diikuti nama berkas database zone yaitu db.my-server.com, letaknya berada di direktori /var/named/ sesuai dengan options pada baris directory.Baris zone "5.234.202.in-addr.arpa" adalah menunjukkan zone reverse-mapping. Pemetaan alamat IP ke nama domain di bawah my-server.com.
  2. named.ca
    Berkas ini berisi daftar name-server root di Internet. Isinya identik dengan named.ca pada konfigurasi BIND untuk resolving-caching juga cara meng-update-nya.
    ;       This file holds the information on root name servers needed to
    ;       initialize cache of Internet domain name servers
    ;       (e.g. reference this file in the "cache  .  "
    ;       configuration file of BIND domain name servers).
    ;
    ;       This file is made available by InterNIC registration services
    ;       under anonymous FTP as
    ;           file                /domain/named.root
    ;           on server           FTP.RS.INTERNIC.NET
    ;       -OR- under Gopher at    RS.INTERNIC.NET
    ;           under menu          InterNIC Registration Services (NSI)
    ;              submenu          InterNIC Registration Archives
    ;           file                named.root
    ;
    ;       last update:    Aug 22, 1997
    ;       related version of root zone:   1997082200
    ;
    ;
    ; formerly NS.INTERNIC.NET
    ;
    .                        3600000  IN  NS    A.ROOT-SERVERS.NET.
    A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
    ;
    ; formerly NS1.ISI.EDU
    ;
    .                        3600000      NS    B.ROOT-SERVERS.NET.
    B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107
    ;
    ; formerly C.PSI.NET
    ;
    .                        3600000      NS    C.ROOT-SERVERS.NET.
    C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
    ;
    ; formerly TERP.UMD.EDU
    ;
    .                        3600000      NS    D.ROOT-SERVERS.NET.
    D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
    ;
    ; formerly NS.NASA.GOV
    ;
    .                        3600000      NS    E.ROOT-SERVERS.NET.
    E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
    ;
    ; formerly NS.ISC.ORG
    ;
    .                        3600000      NS    F.ROOT-SERVERS.NET.
    F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
    ;
    ; formerly NS.NIC.DDN.MIL
    ;
    .                        3600000      NS    G.ROOT-SERVERS.NET.
    G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
    ;
    ; formerly AOS.ARL.ARMY.MIL
    ;
    .                        3600000      NS    H.ROOT-SERVERS.NET.
    H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
    ;
    ; formerly NIC.NORDU.NET
    ;
    .                        3600000      NS    I.ROOT-SERVERS.NET.
    I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
    ;
    ; temporarily housed at NSI (InterNIC)
    ;
    .                        3600000      NS    J.ROOT-SERVERS.NET.
    J.ROOT-SERVERS.NET.      3600000      A     198.41.0.10
    ;
    ; housed in LINX, operated by RIPE NCC
    ;
    .                        3600000      NS    K.ROOT-SERVERS.NET.
    K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
    ;
    ; temporarily housed at ISI (IANA)
    ;
    .                        3600000      NS    L.ROOT-SERVERS.NET.
    L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
    ;
    ; housed in Japan, operated by WIDE
    ;
    .                        3600000      NS    M.ROOT-SERVERS.NET.
    M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
    ; End of File
    
    
  3. named.local
    Berkas ini berisi database untuk localhost fungsinya untuk alamat loopback.
    $TTL 86400
    @       IN      SOA     ns1.my-server.com. root.ns1.my-server.com.  (
                                          2002081219 ; Serial
                                          28800      ; Refresh
                                          14400      ; Retry
                                          3600000    ; Expire
                                          86400 )    ; Minimum
                  IN      NS      ns1.my-server.com.
    1       IN      PTR     localhost.
    
    
  4. resolve.conf
    Berisi domain pertama yang akan dicari dan name-server yang akan dituju untuk permintaan resolving nama domain.
    search ns1.my-server.com my-server.com
    nameserver 127.0.0.1
    nameserver 202.234.5.67
    
    
  5. Berkas zone
    Berkas ini berisi database-cache untuk domain tertentu misal: my-server.com. Berkas ini merupakan berkas yang penting dari suatu domain karena di dalamnya terdapat data dan informasi yang penting untuk namahost/subdomain/domain dan alamat IP serta server mana yang otoritatif untuk domain tersebut.
    $TTL 86400
    @ IN SOA ns1.my-server.com. root.ns1.my-server.com. (
                                          2002081219 ; Serial
                                          28800      ; Refresh
                                          14400      ; Retry
                                          3600000    ; Expire
                                          86400 )    ; Minimum
    
    ; Name Servers
    @ IN NS ns1.my-server.com.
    
    ; MX records
    IN       MX      10  mx.my-server.com.
    
    ns1   IN    A 202.234.5.67
    mx   IN A 202.137.7.68
    www   IN A 202.137.7.69
    my-server.com. IN CNAME ns1.my-server.com.
    squirtle  IN CNAME ns1.my-server.com.
    
    
  6. Berkas reverse-mapping 
Berkas ini berisi pemetaan alamat IP ke host/sub domain di bawah domain my-server.com.

$TTL 86400
@       IN      SOA     ns1.my-server.com. root.ns1.my-server.com.  (
                                      2002081219 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      ns1.my-server.com.
67 IN PTR ns1.my-server.com.
68 IN PTR mx.my-server.com.
69 IN PTR www.my-server.com.


Entri pada berkas database dikenal dengan DNS resource record. Beberapa resource record yang ada pada berkas database domain, sebagai berikut:
  1. SOA
  2. NS record
  3. Record lain
Komentar
Komentar pada berkas konfigurasi akan diabaikan oleh name-server. Untuk memulai sebuah komentar bisa digunakan sebuah semikolon jika anda menggunakan BIND versi 4.
Pada BIND 8 dan versi selanjutnya, kita dapat menggunakan 3 gaya komentar, yaitu C, C++, atau shell.

/* Komentar Gaya C */ // Komentar Gaya C++ # Komentar Gaya Shell

Berkas konfigurasi DNS mudah untuk dibaca karena terdapat komentar yang memberikan petunjuk untuk pengeditan kembali di lain waktu.
Pada berkas database-cache name-server root, loopback/localhost, zone, reverse-mapping digunakan semikolon (;) untuk memberikan komentar di dalamnya.

SOA (Start Of Authority)
  • SOA mengindikasikan otoritas name-server pada zone data atau informasi nama host/domain pada zone yang bersangkutan (my-server.com).
  • @ menunjukkan bahwa zone yang bersangkutan adalah zone domain yang ditunjukkan berkas named.conf ke berkas database-cache tersebut atau origin zone yaitu my-server.com. Karakter @ dapat kita gantikan dengan my-server.com tapi umumnya berkas database menggunakan notasi @.
  • IN singkatan dari Internet. Semua informasi Internet digunakan IN dan untuk informasi non-Internet digunakan kode lain.
  • Nama setelah SOA adalah primary-master name-server yang bertanggung jawab terhadap domain my-server.com.
  • Selanjutnya adalah email dari administrator DNS yaitu root@ns1.my-server.com, pada berkas database ditulis dengan root.ns1.my-server.com. Jika anda menggunakan email hostmaster@ns1.my-server.com maka pada berkas database ditulis hostmaster.ns1.my-server.com.
    Ketika kita mendapatkan masalah dengan host/sub-domain di bawah domain my-server.com kita bisa mengirimkan pesan ke e-mail ini.
  • TTL pada awal database-cache merupakan Time To Live, yaitu waktu yang diperlukan server DNS untuk menyimpan hasil resolving ke cache-nya.

              2002081219 ; Serial
              28800      ; Refresh
              14400      ; Retry
              3600000    ; Expire
              86400 )    ; Minimum

  • Serial adalah nomor seri database-cache domain my-server.com. Jika ada perubahan data pada berkas zone my-server.com misal: menambahkan domain iwan.my-server.com, maka anda harus merubah/menambah nomor serinya. Sebaiknya digunakan format tahun-bulan-tanggal-jam untuk nomor serialnya. Pada berkas database untuk zone domain my-server.com tersebut terakhir di-update tanggal 12 Agustus 2002 jam 19. Fungsi dari serial ini adalah untuk memberitahukan kepada secondary-master name-server untuk meng-update database-cache-nya jika ada perubahan pada primary-master name-server yaitu dengan melakukan pengecekan nomor serial. Jika nomor serial berubah/bertambah maka secondary-master name-server akan segera melakukan zone-transfer dari primary-master name-server.
  • Refresh adalah selang waktu yang diperlukan (dalam detik) secondary-master name-server untuk melakukan pengecekan perubahan database-cache pada primary-master name-server.
  • Retry adalah waktu (dalam detik) yang digunakan secondary-master name-server untuk menunggu pengulangan cek berkas zone jika pada saat proses refresh primary-master name-server tidak memberikan respon.
  • Expire adalah waktu (dalam detik) yang digunakan secondary-master name-server untuk mempertahankan berkas zone jika tidak dapat melakukan zone-refresh. Jika setelah waktu expire telah habis tapi secondary-mastername-server tidak dapat melakukan zone-refresh maka berkas zone pada secondary-master name-server akan dihapus.
  • Minimum adalah nilai waktu (TTLdefault untuk semua resource-record yang ada dalam berkas zone.
NS record
NS record yaitu daftar name-server yang otoritatif untuk zone bersangkutan. Pada database domain my-server.com name-servernya adalah ns1.my-server.com.

MX record
Baris MX (Mail Exchanger) adalah record routing email untuk domain my-server.com dalam hal ini akan diarahkan ke mx.my-server.com. Host yang ditunjuk sebagai mail exchanger akan memproses atau meneruskan mail untuk domain my-server.com.
IN       MX      10  mx.my-server.com.
Baris di atas menunjukkan bahwa mx.my-server.com sebagai mail exchanger untuk mail domain my-server.com yang umumnya sebagai server mail.
Angka 10 adalah angka nilai preferensi (preference value) untuk menunjukkan tingkat prioritas mail exchanger yang digunakan untuk memproses atau meneruskan mail yang menuju domain my-server.com.
Proses routing mailUntuk lebih jelas kita gunakan mail exchanger lebih dari satu, misal:
IN       MX      10  mx1.my-server.com.
IN       MX      20  mx2.my-server.com.
Ketika ada mail untuk domain my-server.com maka mail tersebut akan dikirimkan terlebih dahulu ke mx1.my-server.com untuk diproses, jika gagal maka mail akan diarahkan ke mx2.my-server.com sesuai dengan nilai preferensi.

Record Lain
Record lain berupa data tentang host atau subdomain yang ada pada domain (my-server.com) dan pemetaan ke alamat IP-nya masing-masing.
A (address) yaitu pemetaan nama ke alamat IP.
PTR (pointer) yaitu pemetaan alamat IP ke nama.
CNAME yaitu canonical name fungsinya untuk alias, jadi suatu host dapat mempunyai nama lebih dari satu.
Pada berkas database tersebut terdapat domain dan subdomain: ns1.my-server.com, mx.my-server.com, www.my-server.com, my-server.com, squirtle.my-server.com.
My-server.com dan squirtle.my-server.com adalah alias dari ns1.my-server.com.

Restart named
Setelah semua berkas di atas sudah anda konfigurasi maka selanjutnya kita restart named dengan mengetikkan:
# /etc/init.d/named restart
atau
# /usr/sbin/rndc reload
Cek log sistem
Setelah itu lihatlah berkas catatan/log sistem anda apakah named berjalan dengan sukses, dengan mengetikkan:
# tail -f /var/log/messages
Aug 27 20:59:37 ns1 named[871]: shutting down
Aug 27 20:59:37 ns1 named[871]: stopping command channel on 127.0.0.1#953
Aug 27 20:59:37 ns1 named[871]: no longer listening on 127.0.0.1#53
Aug 27 20:59:37 ns1 named[868]: exiting
Aug 27 20:59:38 ns1 named: named shutdown succeeded
Aug 27 20:59:38 ns1 named[22965]: starting BIND 9.2.1 -u named
Aug 27 20:59:38 ns1 named[22965]: using 1 CPU
Aug 27 20:59:38 ns1 named[22968]: loading configuration from '/etc/named.conf'
Aug 27 20:59:38 ns1 named[22968]: no IPv6 interfaces found
Aug 27 20:59:38 ns1 named[22968]: listening on IPv4 interface lo, 127.0.0.1#53
Aug 27 20:59:38 ns1 named[22968]: listening on IPv4 interface eth0, 202.234.5.67#53
Aug 27 20:59:38 ns1 named[22968]: listening on IPv4 interface eth1, 192.168.3.1#53
Aug 27 20:59:38 ns1 named[22968]: command channel listening on 127.0.0.1#953
Aug 27 20:59:38 ns1 named[22968]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2002081219
Aug 27 20:59:38 ns1 named[22968]: zone 5.234.202.in-addr.arpa/IN: loaded serial 2002081219
Aug 27 20:59:38 ns1 named[22968]: zone my-server.com/IN: loaded serial 2002081219
Aug 27 20:59:38 ns1 named: named startup succeeded
Aug 27 20:59:38 ns1 named[22968]: running
Itu berarti named anda sudah berjalan dan mendengarkan pada port 53.

Siapkah name-server kita?
Sudah siapkah name-server kita? mari kita lihat. Ketikkan:
# dig -x ns1.my-server.com
; <<>> DiG 9.2.1 <<>> -x ns1.my-server.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6716
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;ns1.my-server.com.      IN      A

;; ANSWER SECTION:
ns1.my-server.com. 86400 IN      A       202.234.5.67

;; AUTHORITY SECTION:
my-server.com.        86400   IN      NS      ns1.my-server.com.

;; ADDITIONAL SECTION:
ns1.my-server.com.    86400   IN      A       202.234.5.67

;; Query time: 46 msec
;; SERVER: 202.234.5.67#53(202.234.5.67)
;; WHEN: Mon Aug 27 20:58:36 2002
;; MSG SIZE  rcvd: 92
Name-server yang baru saja anda buat sudah siap menerima permintaan resolving nama domain yang akan menunjukkan host yang ada dalam jaringan anda.

Selesai sudah bahasan pembuatan server DNS BIND dengan domain. Artikel selanjutnya akan membahas mengenai keamanan server DNS (BIND).

Hufffftt sungguh pekerjaan yang berat, resiko jadi seorang IT. thanks for watching!!!
Share:

0 komentar:

Posting Komentar

Blog ini hanya sebagai jurnal keseharian penulis. Tinggalkan komentar positif anda, saling menghargai satu sama lain.

Recent Posts

Pages

Pengikut