Hướng dẫn cài DNS Server lên Red Hat CentOS 7

Như đã đề cập ở bài viết trước, cũng là DNS Server nhưng nếu đặt mỗi một nơi DNS Server sẽ đóng một vai trò khác nhau. Ở khuôn khổ bài viết này mình sẽ hướng dẫn bạn có thể cài một DNS Server với nhiệm vụ NameServer phân giải tên miền ra IP với phần mềm BIND (Berkeley Internet Name Distributed) . Còn có tên là named, là phần mềm DNS Server được sử dụng nhiều nhất hiện nay trên thế giới. Bind chạy nhanh, hiệu suất cao, đáp ứng được số lượng user lớn, cấu hình linh hoạt,…

Chuẩn bị hệ điều hành

Trước khi cài đặt Named lên CentOS 7 xin bạn nhớ kỹ chuẩn bị sẳn một môi trường như sau trên hệ điều hành CentOS 7 này:

1. Đặt hostname cụ thể đây là server gì (xem hướng dẫn) ví dụ đây mình dùng hostname ns1.your-domain.gq
2. Set Date ngày giờ hệ điều hành cho đúng (xem hướng dẫn)
3. Disable SElinux để trong quá trình thực hành không bị phát sinh nhiều lỗi lạ (xem hướng dẫn)
4. Update System hệ thống cập nhật ở trạng thái mới nhất (xem hướng dẫn)
5. Firewall đã allow port 53/udp để công khai dịch vụ DNS Server (xem hướng dẫn)
Nếu bạn muốn làm nhanh chỉ để test thì có thể tạm Disable Firewall trên CentOS 7:

systemctl stop firewalld
service iptables stop

Cài đặt NAMED

Sau khi đã chuẩn bị xong bạn tiến hành cài named lên CentOS 7:

yum -y install bind bind-utils bind-libs

Sao lưu

Tạo thư mục sao lưu lại cấu hình named hiện đang có:

mkdir -p /backupconfig
cd /backupconfig
mkdir named

Sao lưu lại:

service named stop > /dev/null 2>&1

cp /etc/named.conf /backupconfig/named >/dev/null 2>&1

Cấu hình NAMED

Tiếp theo ta cấu hình /etc/named.conf bằng file ở link nhanh sau

wget http://1.voduy.com/c/centos7/named/named.conf -O /etc/named.conf

chown root:named /etc/named.conf
chmod 640 /etc/named.conf
chkconfig named on
service named start

Hoặc bạn tạo file /etc/named.conf với nội dung như sau:

nano /etc/named.conf
 
options {
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    pid-file        "/var/run/named/named.pid";
    statistics-file "/var/named/data/named_stats.txt";
    version     "get lost";
    allow-transfer  {"none";};
    recursion       no;
 
};
 
include "/etc/rndc.key";

(Hai cách làm trên đều như nhau, nội dung file là không khác)

Vậy là xem như bạn đã cài xong DNS Server, chỉ có điều DNS Server này chưa có bản ghi nào nói về domain nào cả, tiếp theo mình sẽ tạo bản ghi cho nó phân giải cho domain của mình là your-domain.gq

Sử dụng DNS Server

Ta thêm domain vào DNS SERVER bằng cách chèn thêm dưới file /etc/named.conf

nano /etc/named.conf
 
options {
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    pid-file        "/var/run/named/named.pid";
    statistics-file "/var/named/data/named_stats.txt";
    version     "get lost";
    allow-transfer  {"none";};
    recursion       no;
  
};
  
include "/etc/rndc.key";
zone "your-domain.gq" {type master; file "/etc/named/your-domain.gq.db";};

Và thêm cấu hình bản ghi IP cho domain your-domain.gq trong file /etc/named/your-domain.gq.db

nano /etc/named/your-domain.gq.db
 
$TTL 14400
@    IN    SOA    ns1.your-domain.gq.    root.your-domain.gq. (
                                            2016082403
                                            7200
                                            3600
                                            1209600
                                            180 )
 
ns1 14400   IN  A       1.1.1.7
ns2 14400   IN  A       1.1.1.7
@   14400   IN  NS      ns1.your-domain.gq.
@   14400   IN  NS      ns2.your-domain.gq.
@   14400   IN  A       1.1.1.7
mail    14400   IN  A       1.1.1.7
www 14400   IN  A       1.1.1.7
pop 14400   IN  A       1.1.1.7
ftp 14400   IN  A       1.1.1.7
@   14400   IN  MX  10  mail.your-domain.gq.
@   14400   IN  TXT     "v=spf1 a mx ip4:1.1.1.7 ?all"
_domainkey  14400   IN  TXT     "t=y; o=~;"
mail._domainkey 14400   IN  TXT     "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxsEAma123xgiE9MdN8iDfmdOhBXS4Jv3glAjXGiG2OVGAXkwNZwPg4TIAd5+nmljdXqqBP2Ai/mgusNKH//tLxrTfLX0cwgcf409otjFa/GTD2dhhQZc2jmUDgSYatpT4ZG1NvDmgohw3WFwxg32KPCiZ3j/6ckQ8E9WnJTWsmQIDAQAB"

Giải thích các thông số

Điều 1: Thông báo với thế giới rằng subdomain ns1.your-domain.gq và ns2.your-domain.gq trỏ về IP nào đó ví dụ 1.1.1.7

ns1 14400   IN  A       1.1.1.7
ns2 14400   IN  A       1.1.1.7

Điều 2: Thông báo với thế giới rằng domain your-domain.gq sẽ dùng cặp nameserver ns1.your-domain.gq và ns2.your-domain.gq để tự phân giải chính mình tại IP tương ứng định nghĩa ở Điều 1

@   14400   IN  NS      ns1.your-domain.gq.
@   14400   IN  NS      ns2.your-domain.gq.

Điều 3: Thông báo với thế giới rằng domain your-domain.gq và cả www.your-domain.gq mail.your-domain.gq pop.your-domain.gq ... sẽ trỏ về 1.1.1.7

 
@   14400   IN  A       1.1.1.7

Điều 4: Thông báo với thế giới rằng domain your-domain.gq sẽ dùng mail tại Mail Server có địa chỉ mail.your-domain.gq mà IP của mail.your-domain.gq đã được định nghĩa ở Điều 3

@   14400   IN  MX  10  mail.your-domain.gq.

Điều 5: Thông báo với thế giới rằng domain your-domain.gq sẽ dùng mail tại Mail Server có địa chỉ 1.1.1.7 nên mail từ IP khác 1.1.1.7 mà gửi đi dưới domain your-domain.gq này sẽ bị đánh spam:

@   14400   IN  TXT     "v=spf1 a mx ip4:1.1.1.7 ?all"

Điều 6: Thông báo với thế giới rằng domain your-domain.gq sẽ dùng domainkey cho mail, mail nào gửi từ domain your-domain.gq mà không có KEY tương ứng như dưới đây sẽ bị đánh spam

mail._domainkey 14400   IN  TXT     "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxsEAma123xgiE9MdN8iDfmdOhBXS4Jv3glAjXGiG2OVGAXkwNZwPg4TIAd5+nmljdXqqBP2Ai/mgusNKH//tLxrTfLX0cwgcf409otjFa/GTD2dhhQZc2jmUDgSYatpT4ZG1NvDmgohw3WFwxg32KPCiZ3j/6ckQ8E9WnJTWsmQIDAQAB"

(Điều 1 đến 4 bạn có thể tìm hiểu kỹ hơn ở bài về trỏ domain)
(Điều 5 và 6 bạn có thể tìm hiểu về SPF và DKIM để biết mục đích của nó để làm gì)

Restart dịch vụ

Sau khi cấu hình xong tên miền và IP như bạn muốn, tiến hành chạy lại dịch vụ để named nhận bản ghi:

service named restart

Kiểm tra lại

Kiểm tra lại bằng công cụ nslookup tại máy Windows hoặc tại chính server của bạn

TẠI WINDOWS: (ví dụ hỏi 1.1.1.7 rằng domain mail.your-domain.gq đang trỏ về đâu?)

cmd> nslookup mail.your-domain.gq 1.1.1.7

Server:  UnKnown
Address:  1.1.1.7
 
Name:mail.your-domain.gq
Address:  1.1.1.7

Kết quả trả lời Name: mail.your-domain.gq đang trỏ về Address: 1.1.1.7

TẠI LINUX:

[root]# nslookup mail.your-domain.gq 1.1.1.7

Server: 1.1.1.7
Address:1.1.1.7#53
 
Name:   mail.your-domain.gq
Address: 1.1.1.7

Kết quả trả lời Name: mail.your-domain.gq đang trỏ về Address: 1.1.1.7

Bạn có thể hỏi một số câu hỏi truy vấn khác ví dụ:
Domain your-domain.gq đang trỏ về đâu?

cmd> nslookup -type=A your-domain.gq 1.1.1.7 

Name:your-domain.gq
Address:  1.1.1.7

Mail Server của your-domain.gq tên gì?

cmd> nslookup -type=MX your-domain.gq 1.1.1.7 

your-domain.gq  MX preference = 10, mail exchanger = mail.your-domain.gq

Những IP nào được phép gửi mail đi dưới domain your-domain.gq?

cmd> nslookup -type=TXT your-domain.gq 1.1.1.7

your-domain.gq  text = "v=spf1 a mx ip4:1.1.1.7 ?all"

DKIM của domain your-domain.gq là gì?

cmd> nslookup -type=TXT mail._domainkey.your-domain.gq 1.1.1.7

mail._domainkey.your-domain.gq  text ="k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxsEAma123xgiE9MdN8iDfmdOhBXS4Jv3glAjXGiG2OVGAXkwNZwPg4TIAd5+nmljdXqqBP2Ai/mgusNKH//tLxrTfLX0cwgcf409otjFa/GTD2dhhQZc2jmUDgSYatpT4ZG1NvDmgohw3WFwxg32KPCiZ3j/6ckQ8E9WnJTWsmQIDAQAB"
Cám ơn bạn đã đọc hết bài viết, hãy bấm chia sẻ lên mạng xã hội để nhớ rằng bạn đã từng nắm được kiến thức do bài viết này cung cấp rồi:
Share

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *