一、DNS服务器的介绍
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
二、DNS工作的原理
该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。
三、DNS的安装
与DNS服务相关的软件包有以下几个:
安装chroot软件包
chroot也就是Change Root,用于改变程序执行时的根目录位置。早期的很多系统程序,默认所有程序执行的根目录都是“/",这样黑客或者其他的不法分子就很容易通过/etc/passwd绝对路径来窃取系统机密。有了chroot,比如BIND的根目录就被改变到了/var/named/chroot,这样即使黑客突破了BIND账号,也只能访问/var/named/chroot,能把攻击对系统的危害降低到最小。
安装chroot软件包
#yun install *chroot *
查看安装必要的软件
BIND的配置文件在/etc找到name.conf文件,使用vim编辑之。
/etc/named.conf:这就是我们的主配置文件!
/etc/sysconfig/named:是否启动chroot及额外的参数,就由这个文件控制;
/var/named/ :数据库档案默认放置在这个目录
/var/run/named :named 程序执行时默认放置 pid-file 在此目录内。
bind 的相关程序是需要/etc, /var/named, /var/run ...等目录的,所以实际上 bind 的相关程序所需要的所有数据会是在:
全局配置文件
1:选项配置如下:
◆ listen-on port 53 { 127.0.0.1; };这个是DNS侦听本机的端口及IP。这里设置表示只侦听127.0.0.1这个地址。如不定义此选项表示侦听所有网络
◆ directory “/var/named”指主配置文件路径,这个路径也是相对路径,它的绝对路 径/var/named/chroot/var/named
◆ query-source port 53;客户端在进行DNS查询时必须使用53做为源端口
◆ allow-query {localhost; };允许提交查询的客户端,如不定义此选项表示允许所有查询
◆ allow-recursion {192.168.0.0/24;192.168.0.1/24}:允许提交递归查询的客户端,如不定义此选项表示允许所有
◆ allow-transfer {192.168.0.254;}:允许区域传输的DNS服务器(辅助DNS),不写表示允许所有
fowarders {192.168.0.9;}:转发器
◆forward only|first:only表示如果在指定的转发器找不到,不会去向根查询,first表示快速转发(默认)
2:定义主配置文件,此部分可有多个,只要求localhost_resolver这个名字不重复
◆ match-clients {localhost; };客户端的源IP
match-destinations {localhost; };解析出的目标IP
recursion yes;如果客户端提交的FQDN本服务器没有,那么服务器会帮助客户端去查询
◆ include “/etc/named.rfc1912.zones”;指定主配置文件
上面参数中所有指定地址范围(如:listen-on、match-clients等)时都可以多个写法如下:
◆ 单个IP:192.168.0.1;
◆ 网段:192.168.0.0/24;
◆ 指定多个IP:192.168.0.1;192.168.0.2;
◆ 网段:192.168.0.;
还可以使用!表示不包括
◆ none:不匹配所有
◆ any:匹配所有
◆localhost:DNS主机
◆localnet:与DNS主机同网段