1.BIND服务器简介:
Bind是Berkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件。Bind原本是美国DARPA资助伯克利大学(Berkeley)开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS服务器软件,目前Internet上半数以上的DNS服务器有都是用Bind来架设的。
1.1 服务的特性:
运行于后台,处于监听(listen)状态
1.2 DNS服务器类型:
- 缓存服务器:不负责解析,仅为加速,不需要注册
- 主DNS服务器:负责解析本地客户端请求
- 辅助DNS服务器:辅助服务器的区域数据都是从主服务器复制而来,其数据都是只读的
1.3 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系统用户
[root@wyz ~]# grep "named" /etc/passwd
named:x:25:25:Named:/var/named:/sbin/nologin
Tips: 早期Linux服务都是以root权限启动和运行的,随着技术的发展,各种服务变得越来越复杂,导致BUG和漏洞越来越多。黑客利用服务的漏洞入侵系统,能获得root级别的权限,从而控制整个系统。为了减缓这种攻击所带来的负面影响,现在服务器软件通常设计为以root权限启动,然后服务器进程自行放弃root,再以某个低权限的系统账号(named)来运行进程。这种方式的好处在于该服务被攻击者利用漏洞入侵时,由于进程权限很低,攻击者得到的访问权限又是基于这个较低权限。
【配置文件】:
[root@wyz ~]# rpm -qc bind
/etc/logrotate.d/named/etc/named.conf //主配置文件
/etc/named.rfc1912.zones //区域配置文件(用include指令包含在主配置文件)
/etc/named.root.key //根区域的key文件以实现事务签名;
/etc/rndc.conf //rndc(远程名称服务器控制器)配置文件
/etc/rndc.key //rndc加密密钥
/etc/sysconfig/named
/var/named/named.ca //13个根服务器存放文件/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
重点只需要关心主配置文件:
主配置文件: named.conf,每个语句都要使用分号结尾;其功能如下:
- 定义区域
- 定义各区域的全局配置
- 定义视图
- 定义日志
dig命令:
语法:dig -t 资源记录类型 名称 @server-ip
//常用选项:
dig -x IP @server-ip:查询反向解析
dig - t 资源记录类型 名称 +trace:追踪解析过程
dig -t axfr zone :验证完全区域传送
2. DNS(bind)服务器的配置:
DNS服务器配置分四个:
- 配置正向解析的bind
- 配置反向解析的bind
- 配置辅助bind
- 实现主辅DNS之间的区域传送
2.1 配置正向、反向解析
//yum安装bind
[root@wyz ~]# yum install -y bind
//自己创建或修改主配置文件(/etc/named.conf)
[root@wyz ~]# vim /etc/named.conf
//注释如下三行:
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
//allow-query { localhost; };
options {
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
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; };
//启动服务
[root@wyz ~]# systemctl restart named
[root@wyz ~]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 10 192.168.234.11:53 *:*
LISTEN 0 10 127.0.0.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:953 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 ::1:953 :::*
LISTEN 0 100 ::1:25 :::*
//编辑区域配置文件/etc/named.rfc1912.zones
[root@wyz ~]# vim /etc/named.rfc1912.zones
//正向
zone "test.com" IN { //新增区域
type master;
file "test.com.zone";
allow-update { none; };
}
//反向
zone "192.168.234.in-addr.arpa" IN {
type master;
file "192.168.234.zone";
allow-update { none; };
};
//创建区域数据文件(/var/named/***.zone)
[root@wyz ~]# vim /var/named/test.com.zone
$TTL 1D
@ IN SOA cljhfy.com. admin.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.test.com.
NS ftp.test.com.
A 127.0.0.1
AAAA ::1
MX 10 mx.test.com.
ttl IN A 192.168.234.11
www IN A 192.168.234.11
bbs IN CNAME www
mx IN A 192.168.234.11
ftp IN A 192.168.234.11
[root@wyz ~]# vim /var/named/192.168.234.com.zone
$TTL 1D
@ IN SOA test.com. admin.test.com. (
0
2H
10M
7D
1D )
NS ttl.test.com.
A 127.0.0.1
AAAA ::1
128 IN PTR test.com.
128 IN PTR www.test.com.
128 IN PTR ftp.test.com.
128 IN PTR mx.test.com.
//重启服务
[root@wyz ~]# systemctl restart named
验证
[root@wyz ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.234.11
//dns指向我设置好的IP
[root@cl129 ~]# nslookup 192.168.234.11
Server: 192.168.234.11
Address: 192.168.234.11#53
128.163.234.22.in-addr.arpa name = ftp.test.com.
128.163.234.22.in-addr.arpa name = test.com.
128.163.234.22.in-addr.arpa name = mx.test.com.
128.163.234.22.in-addr.arpa name = www.test.com.
[root@cl129 ~]# nslookup test.com
Server: 192.168.234.11
Address: 192.168.234.11#53
Name: cljhfy.com
Address: 127.0.0.1
[root@cl129 ~]# nslookup ftp.test.com
Server: 192.168.234.11
Address: 192.168.234.11#53
Name: ftp.test.com
Address: 192.168.234.11
[root@cl129 ~]# nslookup mx.test.com
Server: 192.168.234.11
Address: 192.168.234.11#53
Name: mx.test.com
Address: 192.168.234.11
[root@cl129 ~]# nslookup www.test.com
Server: 192.168.234.11
Address: 192.168.234.11#53
Name: www.test.com
Address: 192.168.234.11