Hướng dẫn cài đặt DNS Server trong CentOS 6.8

DNS (viết tắt của Domain Name System), là dịch vụ mạng có khả năng chuyển giải quyết phân giải tên máy thành địa chỉ IP và ngược lại. Một ví dụ đơn giản: khi bạn gõ conglinh.com trên trình duyệt, máy chủ DNS sẽ tự động chuyển domain bạn vừa gõ sang địa chỉ IP (vốn là thông số mạng mà bạn chẳng bao giờ nhớ tới). Điều này giúp cho việc nhớ các địa chỉ mạng trở nên dễ dàng hơn, thay vì phải nhớ một chuỗi địa chỉ IP loằng ngoằng, bạn chỉ việc nhớ tên miền tương ứng !

Cài đặt DNS Server trong CentOS 6.8

Trong bài viết dưới đây, Tôi sẽ hướng dẫn các bạn triển khai một máy chủ DNS trên nền tảng hệ điều hành mã nguồn mở CentOS 6.8 32bit một cách nhanh chóng:

Chuẩn bị:

[A] Primary(Master) DNS Server:

Operating System     : CentOS 6.8 32 bit (Minimal Server)
Hostname             : ns1.conglinh.com
IP Address           : 192.168.2.200/24

[B] Secondary(Slave) DNS Server:

Operating System     : CentOS 6.8 32 bit (Minimal Server)
Hostname             : ns2.conglinh.com
IP Address           : 192.168.2.201/24

[C] Client:

Operating System     : Windows 7  
Hostname             : win7-01.conglinh.com
IP Address           : 192.168.2.150/24

Cài đặt Primary(Master) DNS Server:

[root@ns1 ~]# yum install bind* -y

1. Cấu hình DNS Server

Chỉnh sửa file named.conf thêm một số dòng

Trước tiên chúng ta sẽ thêm địa chỉ IP vào dòng sau để server lắng nghe trên port 53 , localhost và IP 192.168.2.200

...
options {
listen-on port 53 { 127.0.0.1; 192.168.2.200; }; ### Master DNS IP ###
...

Để các máy client có thể phân giải được một số tên miền hoặc địa chỉ IP không có trong DNS server ta cần forward lời đề nghị đó đến một DNS server khác , ở đây tôi chọn DNS Server của Google

...
directory "/var/named";
forwarders {8.8.8.8; };
...

Tiếp theo tôi sẽ bổ sung các dòng cho phép các DNS phân giải trên đường mạng 192.168.2.0 và cho phép tranfer sang máy Slave DNS 192.168.2.201

allow-query     { localhost; 192.168.2.0/24; }; ### IP Range ### 
allow-transfer{ localhost; 192.168.2.201; };   ### Slave DNS IP ###

Tiếp tục ta thêm Forward Zone

zone"conglinh.com" IN {
type master;
file "forward.conglinh.com";
allow-update { none; };
};

Thêm Reverse Zone

zone"2.168.192.in-addr.arpa" IN {
type master;
file "reverse.conglinh.com";
allow-update { none; };
};

File named.conf sau khi chỉnh sửa xong:

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; 192.168.2.200; }; ### Master DNS IP ###
listen-on-v6 port 53 { ::1; };
directory "/var/named";
forwarders {8.8.8.8; };
dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query     { localhost; 192.168.2.0/24; }; ### IP Range ### 
allow-transfer{ localhost; 192.168.2.201; };   ### Slave DNS IP ###
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
type hint;
file "named.ca";
};

zone"conglinh.com" IN {
type master;
file "forward.conglinh.com";
allow-update { none; };
};

zone"2.168.192.in-addr.arpa" IN {
type master;
file "reverse.conglinh.com";
allow-update { none; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

2. Tạo Zone files

2.1 Tạo Forward Zone

Tạo tập tin forward.conglinh.com trong thư mục ‘/var/named’

[root@ns1 ~]# vi /var/named/forward.conglinh.com
$TTL 86400
@   IN  SOA     ns1.conglinh.com. root.conglinh.com. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@          IN  NS          ns1.conglinh.com.
@          IN  NS          ns2.conglinh.com.
@          IN  A           192.168.2.200
@          IN  A           192.168.2.201
@          IN  A           192.168.2.150
ns1        IN  A           192.168.2.200
ns2        IN  A           192.168.2.201
win7-01    IN  A           192.168.2.150

2.2 Tạo Reverse Zone

Tạo tập tin reverse.conglinh.com trong thư mục ‘/var/named’

[root@ns1 ~]# vi /var/named/reverse.conglinh.com
$TTL 86400
@   IN  SOA     ns1.conglinh.com. root.conglinh.com. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@           IN  NS          ns1.conglinh.com.
@           IN  NS          ns2.conglinh.com.
@           IN  PTR         conglinh.com.
ns1         IN  A           192.168.2.200
ns2         IN  A           192.168.2.201
win7-01     IN  A           192.168.2.150
200         IN  PTR         ns1.conglinh.com.
201         IN  PTR         ns2.conglinh.com.
150         IN  PTR         win7-01.conglinh.com.

3. Khởi động dịch vụ DNS

[root@ns1 ~]# service named start # bật dịch vụ dns
Starting named:                                            [  OK  ]
[root@ns2 ~]# chkconfig named on  #Bật dịch vụ DNS cùng os khi Reset

Các bạn chú ý: Quá trình Generating key lần đầu hơi lâu, có thể mất 1 vài phút, các bạn kiên nhẫn chờ.

4. Điều chỉnh iptables cho phép truy vấn DNS Server từ mạng ngoài.

Thêm các dòng sau như mô tả dưới đây trong file /etc/sysconfig/iptables

[root@ns1 ~]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

5. Restart iptables

[root@ns1 ~]# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

6. Kiểm tra cấu hình DNS và Zone files

[root@ns1 ~]# named-checkconf /etc/named.conf 
[root@ns1 ~]# named-checkzone conglinh.com /var/named/forward.conglinh.com 
zone conglinh.com/IN: loaded serial 2011071001
OK
[root@ns1 ~]# named-checkzone conglinh.com /var/named/reverse.conglinh.com 
zone conglinh.com/IN: loaded serial 2011071001
OK

7. Kiểm tra DNS Server

[root@ns1 ~]# dig ns1.conglinh.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> ns1.conglinh.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49834
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; QUESTION SECTION:
;ns1.conglinh.com.INA
;; ANSWER SECTION:
ns1.conglinh.com. 86400INA192.168.2.200
;; AUTHORITY SECTION:
conglinh.com.86400INNSns2.conglinh.com.
conglinh.com.86400INNSns1.conglinh.com.
;; ADDITIONAL SECTION:
ns2.conglinh.com. 86400 INA192.168.2.201
;; Query time: 6 msec
;; SERVER: 192.168.2.200#53(192.168.2.200)
;; WHEN: Thu Mar  7 13:07:56 2016
;; MSG SIZE  rcvd: 114
[root@ns1 ~]# nslookup conglinh.com
Server:192.168.2.200
Address:192.168.2.100#53
Name:conglinh.com
Address: 192.168.2.202
Name:conglinh.com
Address: 192.168.2.200
Name:conglinh.com
Address: 192.168.2.201

Các bạn theo dõi tiếp Phần 2 của cài đặt DNS Server là cấu hình Slave DNS Server

Đặng Đình Công

Mình là Đặng Đình Công. Công việc hiện tại của mình là quản trị viên hệ thống mạng máy tính. Hiện tại mình đang học, nghiên cứu và làm việc về mảng hệ thống và bảo mật Microsoft, Cisco, ảo hóa VMware,... Blog được lập ra với phương diện cá nhân nên chắc sẽ không tránh khỏi nhiều sai sót. Mong được sự góp ý của tất cả các bạn.

You may also like...