- 請使用 named-chroot 服務,不要使用 named 服務。
yum install bind
yum install bind-chroot
systemctl start named-chroot
systemctl enable named-chroot
- 關於 DNS 的整體設定方面,底下的設定請修改掉:
- DNS 需要針對所有的界面監聽服務
- DNS 服務必須要放行給全世界來查詢 (allow-query)
- DNS 僅有你的兩段區網與 127.0.0.0/8 才可以代詢 (allow-recursion)
vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; }; //刪掉
allow-query { any; };
allow-recursion { 172.18.255.0/24; 172.19.*.0/24; 127.0.0.0/8; };
recursion yes; //註解
//其餘預設不變//
};
systemctl restart named-chroot
- 設定一個正解 zone 為 lan*.example.dic,相關設定須有底下的記錄:
- 這個 zone 允許 172.19.*.0/24 的來源進行更新
- TTL 需要設定為 600 秒
- SOA 的設定中, 伺服器名為 server.lan*.example.dic, email 需為 student@server.lan*.example.dic,序號需為當日的日期相關,
其他請自由設定
- NS 需要設定使用 server.lan*.example.dic 與 client.lan*.example.dic 這兩部主機
- server.lan*.example.dic 的 A 為 172.19.*.254
- client.lan*.example.dic 的 A 為 172.19.*.1
- pc2.lan*.example.dic 的 A 為 172.19.*.2
- pc3.lan*.example.dic 的 A 為 172.19.*.3
- pc4.lan*.example.dic 的 A 為 172.19.*.4
- www.lan*.example.dic, ftp.lan*.example.dic, web.lan*.example.dic 都使用 CNAME 對應到 server.lan*.example.dic
vim /etc/named.conf
zone "lan*.example.dic" IN {
type master;
file "named.lan*.example.dic";
allow-transfer { 172.19.*.1; };
};
cp -a /var/named/named.localhost /var/named/named.lan*.example.dic
vim /var/named/named.lan*.example.dic
$TTL 600
@ IN SOA server.lan*.example.dic. student.server.lan*.example.dic. ( 2019****01 1D 1H 1W 3H )
@ IN NS server.lan*.example.dic.
@ IN NS client.lan*.example.dic.
server IN A 172.19.*.254
client IN A 172.19.*.1
pc2 IN A 172.19.*.2
pc3 IN A 172.19.*.3
pc4 IN A 172.19.*.4
www IN CNAME server
ftp IN CNAME server
web IN CNAME server
systemctl restart named-chroot
- 針對 172.19.*.0/24 的網域設定一個反解的 zone,相關設定須有底下的記錄:
- 這個 zone 允許 172.19.*.0/24 的來源進行更新
- TTL, SOA, NS 均沿用與上述正解相同的設定
- 172.19.*.254 對應到 server.lan*.example.dic
- 172.19.*.1 對應到 client.lan*.example.dic
- 172.19.*.2 對應到 pc2.lan*.example.dic
- 172.19.*.3 對應到 pc3.lan*.example.dic
- 172.19.*.4 對應到 pc4.lan*.example.dic
vim /etc/named.conf
zone "*.19.172.in-addr.arpa" IN {
type master;
file "named.172.19.*";
allow-transfer { 172.19.*.1; };
};
cp -a /var/named/named.loopback /var/named/named.172.19.*
vim /var/named/named.172.19.*
$TTL 600
@ IN SOA server.lan*.example.dic. student.server.lan*.example.dic. ( 2019****01 1D 1H 1W 3H )
@ IN NS server.lan*.example.dic.
@ IN NS client.lan*.example.dic.
254 IN PTR server.lan*.example.dic.
1 IN PTR client.lan*.example.dic.
2 IN PTR pc2.lan*.example.dic.
3 IN PTR pc3.lan*.example.dic.
4 IN PTR pc4.lan*.example.dic.
systemctl restart named-chroot
- 防火牆需要放行所有的人都能使用你的 DNS
vim /root/firewall.sh
#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -s 172.19.*.0/24 -j ACCEPT
iptables -A INPUT -s 172.18.255.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT <----- 新增此規則放行 ----->
iptables -A INPUT -p tcp --dport 53 -j ACCEPT <----- 新增此規則放行 ----->
iptables -A INPUT -j REJECT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t nat -A POSTROUTING -s 172.19.*.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
sh /root/firewall.sh
- 讓你這部 Server 可以使用自己的 IP 作為 DNS 服務的來源設定 (nmcli...)。
nmcli connection modify eth0 ipv4.dns 172.19.*.254,172.19.*.1,172.16.200.254,168.95.1.1
nmcli connection up eth0