Implementasi DNSSEC dengan bind 9.x dan centos 6.x

3
1906

Selamat pagi sobat sekolahlinux, kali ini saya akan menjelaskan tentang langkah-langkah dalam menerapkan dnssec pada dns server anda, buat yang belum tau apa sih itu dnssec dan apa manfaatnya silahkan cari di google atau baca disini atau disini, hehe karena sampai saat ini pun saya sendiri belum terlalu paham fungsi dnssec, yang saya tau dnssec itu untuk mengamankan dns anda atau otektikasi dns anda agar tidak disalahgunakan jadinya seperti tanda tangan digital 😀

oke langsung saja ya tutorialnya, saya beranggapan bahwa sobat sudah menginstall bind dan dns server pada centos sobat sudah berjalan dengan baik, bind yang saya gunaka adalah versi bind 9.8.x cara ini harusnya masih bisa diterapkan di versi bind yang lebih tinggi namun pada bind versi 9.9 keatas ada cara yang lebih mudah, namun pada centos 6.6 versi bind mentok di 9.8

pertama login sebagai root / su dan lalu update centos anda dan install tool dnssec

su
yum -y update
yum install dnssec-tools

masuk ke folder tempat file zone domain anda berada

cd /var/named/

jika sudah maka tahapan selanjutnya adalah generate key ZSK (Zone Signing Key)

dnssec-keygen -r /dev/urandom -a RSASHA256 -b 1024 sekolahlinux.com

selanjutnya generate key KSK (Key Signing Key)

dnssec-keygen -r /dev/urandom -a RSASHA256 -b 2048 -f KSK sekolahlinux.com

pada kedua script diatas telah saya sisipkan kode ( -r /dev/urandom ) yang mana kode itu berfungsi untuk mempercepat generate key ZSK dan KSK, tapi tentunya key yang anda generate menjadi tidak terlalu aman, jika anda ingin keamanan yang lebih kuat bisa menghilangkan kode yang sisipkan tersebut namun sebagai gantinya generated key akan memakan waktu lebih lama :D.

jika anda sudah generate ZSK dan KSK maka harusnya ada 4 file hasil generate tadi yaitu 2 file .key dan 2 file .private

selanjutnya jalankan script ini pada konsol linux anda, sript ini berfungsi untuk meletakkan file key ZSK dan KSK kedalam zone sekolahlinux.com

for key in `ls Ksekolahlinux.com*.key`
do
echo "$INCLUDE $key">> sekolahlinux.com.hosts
done

oke jika sudah jalankan dnssec-signzone berguna untuk membuat file zone.signed dan file ds record

dnssec-signzone -t -g -o sekolahlinux.com sekolahlinux.com.hosts /var/named/Ksekolahlinux.com*.private

jika sudah maka akan ada 2 file baru yaitu ( dsset-sekolahlinux.com. sekolahlinux.com.hosts.signed )

setelah itu kita harus merubah sedikit script di named.conf

vim /etc/named.conf
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

rubah zone file sekolahlinux.com.hosts menjadi sekolahlinux.com.hosts.signed

zone "sekolahlinux.com" {
        type master;
        file "/var/named/sekolahlinux.com.hosts.signed";
        };

setelah itu restart bind / named

service named restart

untuk mengetesnya bisa dengan menjalankan script ini

dig DNSKEY sekolahlinux.com. @localhost +multiline

hasilnya

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> DNSKEY sekolahlinux.com. @localhost +multiline
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42314
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;sekolahlinux.com.		IN DNSKEY

;; ANSWER SECTION:
sekolahlinux.com.		3600 IN	DNSKEY 256 3 8 (
				AwEAAd9ivVwzNuxKaR7SESinE5jX0T/XSv5AHKj1AreX
				ZpfeJzHjvfmTjGkgdi90Z5oJ1YDVMH3mvZ2yHX3l7li3
				R2a4sBqvgwgowmf9A4Oc15v69aBv6cg6w1ZJNJeX+mIK
				kXRl01U/hwGUsUpnuUC1Eba/ccaUJr6W/xOAx5ofEvxx
				) ; key id = 3333
sekolahlinux.com.		3600 IN	DNSKEY 257 3 8 (
				AwEAAbbxE3Dh+wTOZA4n0jNoR2kHLVKx7ykjDUyYRUAC
				dtlDt65I23+NoFFhZz3uA5ZHHAPZtUKXOI5SmGzvtKeG
				i1wFS6h0h30NityzkTUo3ieMBrBoOBXHtXUcgd3NyL7z
				9KNPctsUec5/5ARQQLAqdDb4sJyipz3WmUw4nrY0D4MN
				N3Sepgnoi4IATtNdH5d0MSDZvT9yZ1HIhXk6I6iGNJY/
				HlTXp+dXbF2AEzv9x+VbmqvEI9vj72evMNYTlLzfdv8o
				CpjahbvRKNgviuwJg7m6RAaPg0HIm+K4nCSBG60YcPfu
				6m8l8O0Pp57WhQL/ffFZSyxNYwm30hlkos9zx9c=
				) ; key id = 51526

;; Query time: 9 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Apr  8 10:20:34 2015
;; MSG SIZE  rcvd: 455

selanjutkan kita akan menambahkan ds record pada registrar domain kita, ingat DS Record tidak bisa ditambahkan di hosting atau pembelian domain biasa, karena bisa jadi mereka hanyalah reseller, tapi kita bisa minta tolong ke pihak reseller terkait untuk menambahkan DS Record kita ke registrar domain kita

untuk melihat DS Record kita bisa dengan cara ini

[root@sekolahlinux named]# cat dsset-sekolahlinux.com.
sekolahlinux.com.		IN DS 51526 8 1 8C6C10760FAE4224054E73F5465C20FA01C5A441
sekolahlinux.com.		IN DS 51526 8 2 F262568E4EB967238B0A8733686674AFBAE0B12F74C02B17CF6C25A5 6D90456F

DS record diatas sudah saya rubah hehe 😀 untuk menjaga kerahasiaan,

nah jika sudah didapat DS recordnya tinggal dimasukkan ke panel input DS record yang ada di registrar, tapi jika tempat membeli domain tidak menyediakan panel DS record, kita bisa meminta tolong untuk memasukkannya ke tempat registrar domain kita, contoh seperti dibawah:

http://manage.publicdomainregistry.com/kb/answer/1909
http://freeaccount.myorderbox.com/kb/answer/1909
https://support.godaddy.com/help/article/6115/managing-dnssec-for-your-domain-name

 

pada bind version 9.8 jika terjadi penambahan zone record pada record file sekolahlinux.com kita harus generate ulang key nya yang saya tahu tapi entah diluar sana mungkin ada cara lain, tapi daripada kita panjang-panjang menulis scriptnya kita bisa membuat dan menjalan menjalankan script ini.

pertama buat file dengan vim zonesigner.sh dan isikan script dibawah ini (catatan pembuatan file zonesigner.sh bebas bisa di folder mana saja yang penting ketika mengeksekusi harus dalam mode root) kali ini saya membuat filenya di /root/

#!/bin/sh
PDIR=`pwd`
ZONEDIR="/var/named" #location of your zone files
ZONE=$1
ZONEFILE=$2
DNSSERVICE="named" #On Ubuntu raplce with "bin9"
cd $ZONEDIR
SERIAL=`/usr/sbin/named-checkzone $ZONE $ZONEFILE | egrep -ho '[0-9]{10}'`
sed -i 's/'$SERIAL'/'$(($SERIAL+1))'/' $ZONEFILE
dnssec-signzone -t -g -o $1 $2 /var/named/Ksekolahlinux.com*.private
service $DNSSERVICE reload
cd $PDIR

lalu set filenya agar bisa di exekusi

chmod +x zonesigner.sh

cara menjalankannya dengan perintah dibawah ini

[root@sekolahlinux ~]# ./zonesigner.sh sekolahlinux.com sekolahlinux.com.hosts
Verifying the zone using the following algorithms: RSASHA256.
Zone signing complete:
Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
                      ZSKs: 1 active, 0 stand-by, 0 revoked
sekolahlinux.com.hosts.signed
Signatures generated:                       29
Signatures retained:                         0
Signatures dropped:                          0
Signatures successfully verified:            0
Signatures unsuccessfully verified:          0
Signing time in seconds:                 0.011
Signatures per second:                2459.920
Runtime in seconds:                      0.090
Reloading named:                                           [  OK  ]

script diatas bisa juga dijalankan pada saat saat tertentu saja atau bisa juga dijalankan setiap hari di dengan crontab

untuk pengecekan apakah dnssec berjalan dengan benar bisa di check di website ini, tapi ingat sebelum di check kita harus menambahkan DS Record ke registrar dahulu seperti yang di atas

http://dnssec-debugger.verisignlabs.com/

dan sehabis itu cek disini

http://dnsviz.net/d/sekolahlinux.com/dnssec/

 

fiuhhhh akhirnya selesai juga tutorial kali ini 😀 semoga bermanfaat ya

3 COMMENTS

    • bukan sih om, lebih seperti dkim kalau di email, jadi nanti masing2 record punya tanda tangan digital om, jadi memastikan bahwa record yang diterima client benar2 dari dns server si server tersebut, CMIIW, udah lama bgt ini tutornya karena waktu itu juga implement di domain jagotekno.com