Cấu Hình DNS Server Trên CentOS

Dns server CentOS

DNS là tên viết tắt của Domain Name System hay còn gọi là dịch vụ phân giải tên miền, có tác dụng phân giải địa chỉ tên miền thành địa chỉ IP. Lấy ví dụ, khi bạn gõ anninhmang.edu.vn vào trình duyệt,  DNS Server sẽ phân giải tên miền này thành địa chỉ IP tương ứng là 104.27.152.90. Trong thực tế, DNS giúp người dùng phổ thông không phải nhớ những dòng địa chỉ IP rối rắm, và được thay bằng những tên miền trực quan, dễ nhớ hơn rất nhiều.

Bài hướng dẫn chi tiết này sẽ giúp bạn cách cài đặt và cấu hình dịch vụ DNS trên nền tảng CentOS 7. Hướng dẫn này cũng có thể được áp dụng với hệ điều hành Red Hat Linux và Scientific Linux 7.

Cài đặt DNS Server :

Để chuẩn bị cho bài Lab này, người viết sử dụng 3 máy. Trong đó 1 máy dùng làm DNS Server chính, hay còn gọi là DNS Server Master, 1 máy dùng làm DNS Server phụ, còn gọi là DNS Server Slave, và máy còn lại dùng làm Client.

–  Máy 1 : DNS Server Master :

  • Hệ điều hành : CentOS 7
  • Hostname : masterdns.anninhmang.edu.vn
  • IP : 192.168.1.1/255.255.255.0

–  Máy 2 : DNS Server Slave :

  • Hệ điều hành : CentOS 7
  • Hostname : secondarydns.anninhmang.edu.vn
  • IP : 192.168.1.2/255.255.255.0

–  Máy 3 : DNS Server Client :

  • Hệ điều hành : CentOS 7
  • Hostname : client.anninhmang.edu.vn
  • IP : 192.168.1.3/255.255.255.0

Cài đặt DNS Server Master :

–  Trước hết cần cài đặt gói bind vào máy :

yum install bind bind-utils –y

Cấu hình DNS Server :

–  Tìm và Edit file ‘/etc/named.conf’

vi /etc/named.conf

–  Thêm vào những dòng bôi đậm :

//

// 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.1.1;}; ### Master DNS IP ###

#    listen-on-v6 port 53 { ::1; };

directory     “/var/named”;

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.1.0/24;}; ### IP Range ###

allow-transfer{ localhost; 192.168.1.2;};   ### Slave DNS IP ###

 

/*

– If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.

– If you are building a RECURSIVE (caching) DNS server, you need to enable

recursion.

– If your recursive DNS server has a public IP address, you MUST enable access

control to limit queries to your legitimate users. Failing to do so will

cause your server to become part of large scale DNS amplification

attacks. Implementing BCP38 within your network would greatly

reduce such attack surface

*/

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”;

 

pid-file “/run/named/named.pid”;

session-keyfile “/run/named/session.key”;

};

 

logging {

channel default_debug {

file “data/named.run”;

severity dynamic;

};

};

 

zone “.” IN {

type hint;

file “named.ca”;

};

 

zone “anninhmang.edu.vn” IN {

type master;

file “forward.anninhmang”;

allow-update { none; };

};

zone “1.168.192.in-addr.arpa” IN {

type master;

file “reverse.anninhmang”;

allow-update { none; };

};

 

include “/etc/named.rfc1912.zones”;

include “/etc/named.root.key”;

–  Tiến hành tạo Zone File :

Như bạn đã thấy ở trên file ‘/etc/named.conf’, chúng ta có thêm vào vài dòng trong đó có đề cập đến 2 file Forward và Reserve :

–  Tạo vùng Forward Zone :

Tạo file forward.anninhmang trong thư mục ‘/var/named’ :

vi /var/named/forward.anninhmang

Thêm vào những dòng này :

$TTL 86400

@   IN  SOA     masterdns.anninhmang.edu.vn. root.anninhmang.edu.vn. (

2011071001  ;Serial

3600        ;Refresh

1800        ;Retry

604800      ;Expire

86400       ;Minimum TTL

)

@       IN  NS          masterdns.anninhmang.edu.vn.

@       IN  NS          secondarydns.anninhmang.edu.vn.

@       IN  A           192.168.1.1

@       IN  A           192.168.1.2

@       IN  A           192.168.1.3

masterdns       IN  A   192.168.1.1

secondarydns    IN  A   192.168.1.2

client          IN  A   192.168.1.3

–  Tạo vùng Reserve Zone :

Tạo file reserve.anninhmang ở trong thư mục ‘/var/named’ :

vi /var/named/reverse.anninhmang

Thêm vào những dòng sau :

$TTL 86400

@   IN  SOA     masterdns.anninhmang.edu.vn. root.anninhmang.edu.vn. (

2011071001  ;Serial

3600        ;Refresh

1800        ;Retry

604800      ;Expire

86400       ;Minimum TTL

)

@       IN  NS          masterdns.anninhmang.edu.vn.

@       IN  NS          secondarydns.anninhmang.edu.vn.

@       IN  PTR         anninhmang.edu.vn.

masterdns       IN  A   192.168.1.1

secondarydns    IN  A   192.168.1.2

client          IN  A   192.168.1.3

1     IN  PTR         masterdns.anninhmang.edu.vn.

2     IN  PTR         secondarydns.anninhmang.edu.vn.

3     IN  PTR         client.anninhmang.edu.vn.

Khởi chạy dịch vụ DNS Server :

systemctl enable named

systemctl start named

Cấu hình Firewall :

–  Mở Port 53 trên Firewall để dịch vụ DNS có thể được thông qua :

firewall-cmd –permanent –add-port=53/tcp

firewall-cmd –permanent –add-port=53/udp

–  Restart lại Firewall để thay đổi có hiệu lực :

firewall-cmd –reload

–  Cấu hình SELinux, Permissions, Ownership :

Chạy từng dòng lệnh theo thứ tự :

chgrp named -R /var/named

chown -v root:named /etc/named.conf

restorecon -rv /var/named

restorecon /etc/named.conf

–  Tiến hành Test thử DNS Server để đảm bảo không có lỗi :

Chạy dòng lệnh để check DNS Server :

named-checkconf /etc/named.conf

Nếu dòng lệnh không có gì trả về, tức là bạn đã cấu hình đúng.

–  Check Forward Zone bằng dòng lệnh :

named-checkzone anninhmang.edu.vn /var/named/forward.anninhmang

–  Kết quả trả về :

zone anninhmang.edu.vn/IN: loaded serial 2011071001

OK

–  Check Reserve Zone bằng dòng lệnh :

named-checkzone anninhmang.edu.vn /var/named/reverse.anninhmang

–  Kết quả trả về :

zone anninhmang.edu.vn/IN: loaded serial 2011071001

OK

 

–  Tiến hành Add DNS Server vào file cấu hình card mạng :

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

TYPE=”Ethernet”

BOOTPROTO=”none”

DEFROUTE=”yes”

IPV4_FAILURE_FATAL=”no”

IPV6INIT=”yes”

IPV6_AUTOCONF=”yes”

IPV6_DEFROUTE=”yes”

IPV6_FAILURE_FATAL=”no”

NAME=”enp0s3″

UUID=”6e1232c5-7ba1-5c7d-7hr6-6548er765fcd”

ONBOOT=”yes”

HWADDR=”17:88:34:29:15:62″

IPADDR0=”192.168.1.1″

PREFIX0=”24″

GATEWAY0=”192.168.1.1″

DNS=”192.168.1.1″

IPV6_PEERDNS=”yes”

IPV6_PEERROUTES=”yes”

 

–  Edit file /etc/resolv.conf,

vi /etc/resolv.conf

–  Thêm vào địa chỉ IP của Name Server :

nameserver      192.168.1.1

Save và đóng file.

–  Restart lại dịch vụ :

systemctl restart network

–  Test DNS Server :

Chạy dòng lệnh :

dig masterdns.anninhmang.edu.vn

–  Kết quả trả về :

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> masterdns.anninhmang.edu.vn

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25179

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

 

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;masterdns.anninhmang.edu.vn.    IN    A

 

;; ANSWER SECTION:

masterdns.anninhmang.edu.vn. 86400    IN    A    192.168.1.1

 

;; AUTHORITY SECTION:

anninhmang.edu.vn.        86400    IN    NS    secondarydns.anninhmang.edu.vn.

anninhmang.edu.vn.        86400    IN    NS    masterdns.anninhmang.edu.vn.

 

;; ADDITIONAL SECTION:

secondarydns.anninhmang.edu.vn. 86400 IN    A    192.168.1.2

 

;; Query time: 0 msec

;; SERVER: 192.168.1.1#53(192.168.1.101)

;; WHEN: SUN Dec 13 15:35:28 IST 2018

;; MSG SIZE  rcvd: 125

 

–  Chạy tiếp dòng lệnh :

nslookup anninhmang.edu.vn

–  Được kết quả trả về :

Server:        192.168.1.1

Address:    192.168.1.1#53

Name:    anninhmang.edu.vn

Address: 192.168.1.3

Name:    anninhmang.edu.vn

Address: 192.168.1.1

Name:    anninhmang.edu.vn

Address: 192.168.1.2

Vậy là DNS Server đã sẳn sàng để sử dụng. Chúng ta chuyển qua bước cấu hình DNS Server Slave.

–  Tại máy Secondary DNS, tiến hành chạy dòng lệnh để cài đặt gói bind :

yum install bind bind-utils –y

–  Cấu hình Slave DNS Server:

//

// 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.1.2; };

listen-on-v6 port 53 { ::1; };

directory “/var/named”;

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.1.0/24; };

.

.

.

.

zone “.” IN {

type hint;

file “named.ca”;

};

zone “anninhmang.edu.vn” IN {

type slave;

file “slaves/anninhmang.fwd”;

masters { 192.168.1.1; };

};

zone “1.168.192.in-addr.arpa” IN {

type slave;

file “slaves/anninhmang.rev”;

masters { 192.168.1.1; };

};

include “/etc/named.rfc1912.zones”;

include “/etc/named.root.key”;

–  Khởi động dịch vụ DNS:

systemctl enable named

systemctl start named

Bây giờ thì các vùng Forward và Reserve sẽ tự động đồng bộ từ DNS Master sang DNS Slave ở thư mục ‘/var/named/slaves/’:

ls /var/named/slaves/

–  Kết quả trả về sẽ được như sau :

anninhmang.fwd  anninhmang.rev

–  Cấu hình Card mạng để thêm vào máy chủ DNS :

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Thêm vào các dòng bôi đậm

TYPE=”Ethernet”

BOOTPROTO=”none”

DEFROUTE=”yes”

IPV4_FAILURE_FATAL=”no”

IPV6INIT=”yes”

IPV6_AUTOCONF=”yes”

IPV6_DEFROUTE=”yes”

IPV6_FAILURE_FATAL=”no”

NAME=”enp0s3″

UUID=”6a9312c4-7eg3-3h7j-9873da986dfc”

ONBOOT=”yes”

HWADDR=”24:54:34:76:32:79”

IPADDR0=”192.168.1.2″

PREFIX0=”24″

GATEWAY0=”192.168.1.1″

DNS1=”192.168.1.1″

DNS2=”192.168.1.2″

IPV6_PEERDNS=”yes”

IPV6_PEERROUTES=”yes”

–  Mở và chỉnh sửa file /etc/resolv.conf

vi /etc/resolv.conf

–  Thêm vào địa chỉ IP của Name Server :

nameserver      192.168.1.101

nameserver      192.168.1.102

Save và đóng file lại.

Cấu hình Firewall :

Cũng giống như máy DNS Master, bạn cần mở port 53 trên Firewall để DNS Service có thể đi qua :

firewall-cmd –permanent –add-port=53/tcp

 

–  Restart Firewall bằng dòng lệnh :

firewall-cmd –reload

 

Cấu hình SELinux, Permission, Ownership :

chgrp named -R /var/named

chown -v root:named /etc/named.conf

restorecon -rv /var/named

restorecon /etc/named.conf

–  Tiến hành test DNS Server Master:

dig masterdns.anninhmang.edu.vn

 

Kết quả trả về :

 

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> masterdns.anninhmang.edu.vn

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25179

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

 

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;masterdns.anninhmang.edu.vn.    IN    A

 

;; ANSWER SECTION:

masterdns.anninhmang.edu.vn. 86400    IN    A    192.168.1.1

 

;; AUTHORITY SECTION:

anninhmang.edu.vn.        86400    IN    NS    secondarydns.anninhmang.edu.vn.

anninhmang.edu.vn.        86400    IN    NS    masterdns.anninhmang.edu.vn.

 

;; ADDITIONAL SECTION:

secondarydns.anninhmang.edu.vn. 86400 IN    A    192.168.1.2

 

;; Query time: 0 msec

;; SERVER: 192.168.1.1#53(192.168.1.101)

;; WHEN: Wed Aug 28 12:35:43 IST 2018

;; MSG SIZE  rcvd: 125

Kiểm tra tiếp DNS Server Slave

dig secondarydns.anninhmang.edu.vn

 

Kết quả trả về :

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> secondarydns.anninhmang.edu.vn

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60819

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

 

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;secondary.anninhmang.edu.vn.    IN    A

 

;; ANSWER SECTION:

secondarydns.anninhmang.edu.vn. 86400 IN    A    192.168.1.2

 

;; AUTHORITY SECTION:

anninhmang.edu.vn.        86400    IN    NS    masterdns.anninhmang.edu.vn.

anninhmang.edu.vn.        86400    IN    NS    secondarydns.anninhmang.edu.vn.

 

;; ADDITIONAL SECTION:

masterdns.anninhmang.edu.vn. 86400    IN    A    192.168.1.1

 

;; Query time: 0 msec

;; SERVER: 192.168.1.102#53(192.168.1.102)

;; WHEN: Wed Aug 20 17:05:50 IST 2014

;; MSG SIZE  rcvd: 125

–  Phân giải thử tên miền :

nslookup anninhmang.edu.vn

 

–  Kết quả trả về :

Server:        192.168.1.2

Address:    192.168.1.2#53

Name:    anninhmang.edu.vn

Address: 192.168.1.1

Name:    anninhmang.edu.vn

Address: 192.168.1.3

Name:    anninhmang.edu.vn

Address: 192.168.1.2

 

–  Cấu hình máy con Client :

Đối với tất cả các máy con, add thong tin địa chỉ IP của các máy DNS Server vào file ‘/etc/resolv.conf

vi /etc/resolv.conf

 

Thêm vào :

nameserver 192.168.1.101

nameserver 192.168.1.102

 

Tiến hành restart lại dịch vụ mạng hoặc reboot máy để thay đổi được áp dụng.

Test DNS Server bằng máy Client :

Bạn có thể tiến hành test DNS Server từ các máy con bằng cách sử dụng các dòng lệnh :

dig masterdns.anninhmang.edu.vn

dig secondarydns.anninhmang.edu.vn

dig client.anninhmang.edu.vn

nslookup anninhmang.edu.vn

Vậy là cả 2 máy DNS Server Master và Slave đều đã có thể hoạt động.

  • Cấu hình dns server trên centos
  • Cấu hình dns server trên linux