DNS server có thể nói là một dịch vụ xương sống của hệ thống mạng, nếu không có DNS thì có lẽ chiếm quá nửa số lượng trang web trên thế giới không thể vào được. Hiện nay có rất nhiều phần mềm cho phép chúng ta xây dựng một DNS server như trên windows có Microsoft DNS, hay trên Linux có BIND9, PowerDNS, MyDNS… Nhưng có lẽ phần mềm được dùng để xây dựng DNS phổ biến nhất thế giới và cũng có thể nói là mạnh nhất hiện nay là BIND9.
Trong bài viết này chúng ta sẽ cùng nhau xây dựng một DNS server bằng phần mềm BIND9 (http://www.bind9.org) trên nền tảng hệ điều hành CentOS. Phiên bản mới nhất của phần mềm Bind9 đi theo bản phân phối của CentOS là 9.3.6 còn trên trang chủ của Bind9 thì hiện tại đang là 9.6.1. Chúng ta cùng bắt đầu cài:
1. Cài đặt:
yum install bind-chroot
2. Phân quyền thư mục:
chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
3. Tạo các file cấu hình mẫu:
cp /usr/share/doc/bind-9.3.6/sample/var/named/named.local /var/named/chroot/var/named/
cp /usr/share/doc/bind-9.3.6/sample/var/named/named.root /var/named/chroot/var/named/
touch /var/named/chroot/etc/named.conf
4. Đến đây chúng ta có thể khởi động dịch vụ và cấu hình để dns server tự chạy khi hệ điều hành khởi động:
chkconfig named on
service named start
Đến đây dịch vụ đã chạy bình thường. Tuy nhiên file cấu hình đang trắng tinh nên dịch vụ chưa phân giản cho bất kỳ một truy vấn nào.
Tiếp theo chúng ta sẽ cấu hình các bản ghi cần thiết để hệ thống có thể phân giải được tên miền:
Chuyển vào thư mục chứa file cấu hình:
cd /var/named/chroot/etc/
Tại đây ta dùng lênh: vi name.conf với nội dung như sau:
options {
directory “/var/named”;forwarders {203.162.0.181; 203.162.0.11; 210.245.0.11; 210.245.0.58; 208.67.222.222; 208.67.220.220;};
};zone “.” IN {
type hint;
file “named.root”;
};zone “localhost” IN {
type master;
file “localhost.zone”;
};zone “0.0.127.in-addr.arpa” IN {
type master;
file “named.local”;
};zone “1.168.192.in-addr.arpa” IN {
type master;
file “192.168.1.0.db”;
};zone “hanhtv.local” {
type master;
file “hanhtv.local”;
};
Kiểm tra trong thư mục /var/named/chroot/var/named/ và tạo các file với nội dung như sau:
named.root: file này đã có sẵn
name.local: file này đã có sẵn.
localhost.zone
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum1D IN NS @
1D IN A 127.0.0.1
192.168.1.0.db:
$TTL 86400
@ IN SOA hanhtv.local. root.hanhtv.local. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns1.hanhtv.local.
253 IN PTR dns.hanhtv.local.
hanhtv.local
$TTL 14400
@ IN SOA root.hanhtv.local. hostmaster.hanhpro.local. (
2009102800
14400
3600
1209600
86400 )IN NS hanhtv.local.
IN NS hanhtv.local.ftp IN A 192.168.1.253
hanhtv.local. IN A 192.168.1.253
localhost IN A 127.0.0.1
mail IN A 192.168.1.253
pop IN A 192.168.1.253
smtp IN A 192.168.1.253
www IN A 192.168.1.253hanhtv.local. IN MX 10 mail
Sau khi tạo xong các file trên chúng ta lưu lại và dùng lệnh
service named restart
để khởi động lại dịch vụ. Lúc này Server đã sẵn sàng phục vụ các truy vấn trong mạng và các tên miền bên ngoài.