In this tutorial i will explains how to setup a DNS server using Bind9 on Debian server. Throughout the article, Replace your-domain-name.com accordingly. At the end of the tutorial, you will have a working Debina DNS server.
PREREQUISITES
- A SSH client like putty and basic knowledge to use it
- A full working Debian server.
- About 30 minutes of your time.
- A cup of coffee or tea.
Install Bind9
apt-get install bind9
Bind Configuration
First of all Backup current Bind9 settings.
cp /etc/bind/named.conf.options /etc/bind/named.conf.options.bak
Edit /etc/bind/named.conf.options and replace the content with the following:
options { directory "/var/cache/bind"; auth-nxdomain no; listen-on-v6 { any; }; statistics-file "/var/cache/bind/named.stats"; rrset-order {order cyclic;}; allow-transfer { 127.0.0.1; }; }; logging { channel b_query { file "/var/log/bind9/query.log" versions 2 size 1m; print-time yes; severity info; }; category queries { b_query; }; };
Now create the log directory for Bind9.
mkdir /var/log/bind9 chown bind:bind /var/log/bind9
Edit /etc/bind/named.conf to configure your domain zone file location. Append the following lines:
zone "your-domain-name.com" { type master; file "/etc/bind/zones/your-domain-name.com.db"; };
Create your domain zone file at /etc/bind/zones/your-domain-name.com.db. Insert your DNS records by following this template:
$TTL 86400 @ IN SOA ns1.your-domain-name.com. root.your-domain-name.com. ( 2014100801 ; Serial 43200 ; Refresh 3600 ; Retry 1209600 ; Expire 180 ) ; Minimum TTL ; Nameservers IN NS ns1.your-domain-name.com. IN NS ns2.your-domain-name.com. IN NS ns3.your-domain-name.com. ; Root site IN A 123.456.78.90 ; Hostname records * IN A 123.456.78.90 sub1 IN A 123.456.78.91 sub2 IN A 123.456.78.92 ; Aliases www IN CNAME your-domain-name.com. webmail IN CNAME ghs.google.com. ; MX records @ IN MX 1 aspmx.l.google.com. @ IN MX 3 alt1.aspmx.l.google.com. @ IN MX 3 alt2.aspmx.l.google.com. @ IN MX 5 aspmx2.googlemail.com. @ IN MX 5 aspmx3.googlemail.com. @ IN MX 5 aspmx4.googlemail.com. @ IN MX 5 aspmx5.googlemail.com. ; SPF records @ IN TXT "v=spf1 ip4:199.195.140.194 include:_spf.google.com ~all"
Restart Bind9
/etc/init.d/bind9 restart
This is all you have to do. At this point, you may want to register your DNS server with your domain registrar. After doing that, you can change your existing name server to your own DNS server. Give your opinion below if you experience any issues or to discuss your ideas and experiences.