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