DNS服务器基本配置
bind详解:
包名:bind
进程:named
协议:dns
使用端口:53(tcp,udp)
相关包:
bind-chroot:将named进程的活动范围限定在chroot目录,保证安全性。
bind-devel:与开发相关的头文件和库文件(编译安装bind时所需)
bind-libs:bind服务器端和客户端都使用到的公共库文件
bind-utils : bind客户端工具
程序文件:/usr/sbin/named
bind权限相关:
安装完named会自动创建用户named系统用户,named进程得由管理员启动,启动完成后再切换为以named系统用户的身份运行
安装: yum install bind
[root@lishuai usb]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf 主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones 区域配置文件 被include包含在主配置文件中
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca #bind自动生成的13跟服务器存放文件
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
区域解析库文件:/var/named/zone_name.zone
dig,host,nslookup都是的dns测试工具
在这里我们以四个实验分别详解DNS的四种配置 配置正向解析的bind 配置反向解析的bind 配置辅助bind 实现主辅DNS之间的区域传送
**1、配置正向解析 【将一台主机配置成可正向解析的DNS之步骤】 第一步:使用YUM安装DNS所使用的软件包(BIND) 第二步:创建或修改主配置文件(/etc/named.conf) 第三步:创建区域数据文件(/var/named/*.zone) 第四步:使用相关命令(named-checkconf、named-checkzone)测试配置文件及区域文件是否存在语法错误 第五步:确保主配置文件和各区域解析库文件的权限为640,属主为root,属组为named; 第六步:重启服务或重新加载配置文件 第七步:更改iptables和selinux的设置(如果不了解此两项可以暂时关闭它们) 第八步:分别使用(dig/nslookup)在Linux/Windows主机进行查询DNS相关资源记录 **
第一步:yum install bind *第二步:修改主配置文件 ** C/C++风格的语法,注释用//或/ */ options { // listen-on port 53 { 127.0.0.1; };//指定监听的端口和地址 需要注释掉 // listen-on-v6 port 53 { ::1; };//指定监听的端口和ipv6地址 需要注释掉 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; };// 定义访问控制,默认是只允许本机查询解析库 ,注释掉表示允许所有主机查询
/*
- 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 no; //dnssec是dns加上安全组件,为避免测 试结果,这两项应改为no
dnssec-validation no;
/* 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{……}:
logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; 配置段zone{……}: zone "." IN { type hint; file "named.ca"; };
区域配置使用关键字zone,定义解析指定的域时,依据哪个解析库文件。 在主配置文件中,默认仅配置了根域的zone,依据的文件是named.ca。这样缓存DNS服务器才能找得到根。 但是其他域的解析库文件统一定义在/etc/named.rfc1912.zones。主配置文件中包含了此文件:
include "/etc/named.rfc1912.zones";
此时一台缓存服务器配置好了
第三步:创建区域配置文件
各域的解析库配置指定/etc/named.rfc1912.zones
zone定义的格式:
one "区域名称" IN {
type master|slave|forward; //注意每个语句要以分号结尾
file "ZONE_NAME.zone";
}; //注意要以分号结尾
hint :指向根域 master: 主DNS服务器 slave: 从DNS服务器 forward: 定义转发
我们编辑配置文件创建一个正向解析一个反向解析
我们在/var/named/下创建相应的解析库文件
注意:正向解析库文件不需要PTR记录,反向解析库文件不需要CNAME和MX 记录,我们还要注意例如ns.lishuai.com. 里面最后是有个点的 不能省略
第三步测试一下配置文件和解析库文件有无错误
检查工具
①named-checkconf:检查配置文件的语法和完整性
②named-checkzone:检查区域解析库文件的语法和完整性
用法:named-checkzone zonename filename
例如named-checkzone 区域名称 /var/named/ZONE_NAME.zone
**第四步:修改权限
chown root:named /var/named/lishuai.com.zone
chown root:named /var/named2.168.192.zone
chmod 640 /var/named/lishuai.com.zone
ch'mo'd 640 /var/named/2.168.192.zone
** 第五步:重启服务或者重读配置文件**
systemctl restart named 或者
rndc reload 或者
systemctl reload named
第六步:关闭selinux 和iptables 第七步:测试 测试工具 dig
常用使用格式:dig [-t TYPE] [@SERVER] [-x IP_ADDR] FQDN 其中 -t指定查询的资源记录类型(下述); -x为反向解析,指定要解析的IP地址; @指定通过哪个DNS服务器解析,无该选项则使用默认。 host
常用格式:host [-t TYPE] FQDN [SERVER_IP]
在这里我们使用192.168.2.29这台主机测试,我们的BIND服务安装在192.16.2.18主机上