部署DNS正向解析
- 主配置文件(/etc/named.conf):
用来定义bind服务程序的运行。
- 区域配置文件(/etc/named.rfc1912.zones):
用来保存域名和ip地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应ip地址所在的具体位置,当需要查看或修改时,可根据这个位置找到相关文件。
- 数据配置文件目录(/var/named):该目录用来保存域名和ip地址真是对应关系的数据配置文件。
- 主配置文件:/etc/named.conf
- 区域配置文件:/etc/named.rfc1912.zones
- 正向解析模板文件:/var/named/named.localhost
- 反向解析模板文件:/var/named/named.loopback
- 首先配置防火墙规则
将INPU规则链设置为只允许指定网段的主机访问本机的53端口,拒绝来自其他所有主机的流量:
[root@localhost ~]# iptables -I INPUT -s 192.168.127.0/ -p tcp --dport -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport -j REJECT
[root@localhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 192.168.127.0/ anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
REJECT tcp -- anywhere anywhere tcp dpt:domain reject-with icmp-port-unreachable
- 下载bind
bind,该包为DNS服务的主程序包
bind-utils,该报为客户端工具,默认安装,用于搜索域名指令
[root@localhost ~]# yum install bind bind-utils -y
- 配置DNS主配置文件
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port { any; }; #127.0.0.1改成any;表示服务器上的所有IP地址均可提供DNS域名解析服务
listen-on-v6 port { ::; };
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 { any; }; #把localhost改为any;表示允许所有人对本服务器发送DNS查询请求
- 修改区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "crucis.top" IN {
type master;
file "named.localhost";
allow-update { none; };
}; zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
- 定义自己的域文件
可以从/var/named目录中复制一份正向解析的模板文件(named.localhost),然后把域名和和ip地址的对应数据填写数据配置文件中并保存。再复制时记得加上-a参数,这可以保留原始文件的所有者、所属组、权限属性等信息,以便让bind服务程序顺利读取文件内容
[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cp named.localhost crucis.top.zone -a
- 配置自己的域文件
[root@localhost named]# vim crucis.top.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.127.140
lc IN A 192.168.127.140
whq IN A 192.168.127.140
~
- 重启服务
[root@localhost named]# systemctl restart named
- 使用自己配置的DNS服务器
- 重启网卡
[root@localhost network-scripts]# systemctl restart network
- 验证
[root@localhost ~]# nslookup
> www.crucis.top
Server: 192.168.127.140
Address: 192.168.127.140# ** server can't find www.crucis.top: NXDOMAIN