LINUX 搭建DNS服务器

DNS 服务介绍后台进程:named脚本:/etc/rc.d/init.d/named使用端口:53(tcp ,udp )所需RPM 包:bind-9.3.3-10.el5相关RPM 包:bind-c

DNS 服务介绍

后台进程:named

脚本:/etc/rc.d/init.d/named

使用端口:53(tcp ,udp )

所需RPM 包:bind-9.3.3-10.el5

相关RPM 包:bind-chroot

caching-nameserver

配置文件:/var/named/chroot/etc/named.conf

相关路径:/var/named/

#现在服务器软件通常设计为以root 权限启动,然后服务器进程自行放弃root ,再以某个低权限的系统账号来运行进程。这种方式的好处在于该服务被攻击者利

用漏洞入侵时,由于进程权限很低,攻击者得到的访问权限又是基于这个较低权限。 事实上,需要正反解成对的大概仅有邮件服务器,如果想架设邮件服务器,最好具有固定IP, 这样才能向您的ISP 要求设置反解,反解都要通过上层主机的设置才行。

1, 查询系统是否有安装DNS 服务器

2,安装bind 服务器 (Bind 是Berkeley Internet Name Domain Service的简写)

如果用rpm 方式安装的话,需要安装以下安装包

,

#centos5.5环境下无法安装

bind-sdb,

用yum

安装时检查提示需要安装依赖关系

postgresql-libs-8.1.18-2.e15_4.1.i386.rpm

安装好依赖关系后再来安装

,

至此,rpm 安装完成,当然也可以用yum 来安装更快捷。

3,

bind 服务器全局配置(options )

#bind的配置文件默认是没有的,需要自己手写,但是很多,容易写错,所以我们安装模板文件,然后来修改。由于安装了chroot 环境,所以我们的/etc/named.conf 应该在/var/named/chroot/etc/ 目录。

没有named.conf ,所以我们要把named.caching-name.conf 文件copy 一份成named.conf

编辑named.conf 这个文件, 把文件里面多余的东西删除了,只剩下如图中的内容,然后我们来写

.

3.1, 配制named.conf 文件

options 语句在每个配置文件中只有一个。如果出现多个options, 则第一个options 的配置有效,并会产生一个警告信息。

listen-on port 53 { 127.0.0.1; };

监听端口,修改成自己的IP 地址,如果有多个IP ,就写多个,每行要以;结束。

,

directory "/var/named";

zone 文件的存放目录,这里的/var/named 是相对目录,在chroot 环境下/var/named目录下。

dump-file "/var/named/data/cache_dump.db"; 设置DNS 缓存数据的指定文件。

statistics-file "/var/named/data/named_stats.txt"; DNS 统计数据写入的文件。 allow-query { localhost; };

允许查询的client ,我们修改成本地网段192.168.202.0/24,可以设置any,none,ip 网段。

3.2,区域配置

配置实例:下面我以centos.com 这个二级域名来建立一个域名服务器

#由主机名查找IP 的过程为正解,由IP 查询得到主机名为反解,一个正解或反解的设置就是一个Zone.

第一步:设置根区域

zone “. ”IN{ :根区域

type hint ; :指定该域的类型,有hint,master,slave 等可选,hint 类型特指该区域为root 域

file “named.ca ”;}; :解析文件文件名

第二步:指定正向解析的配置文件

#记住,bind 对配置文件要求很严格,就算是有些地方多了个空格,服务器都可能启动不了哈~

zone “centos.com" IN{ : 新建一个域,域名为centos.com

type master; :master 指该区域为主区域,slave 指该区域为辅导区域。 file “centos.com ”; :指定存放该区域数据的文件名,每个区域以分号结尾。

,

第三步:指定反向解析的配置文件

一个简单的named.conf 配置文件就做好了

保存,然后我们去修改区别文件,添加记录

#centos.com.zone, 是你刚才在named.conf 里面定义的名字

第四步:添加解析记录

#TTL是生存期, 单位是秒 ,$TTL是全局定义的,86400秒。

第二行 SOA记录,@取代在/etc/named.conf中指定的域名,root.centos.com. 是管理员邮箱地址,后面加点表示绝对地址(全名)。

SOA 段中的数字,分别为:序列号、刷新、重试、过期、生存期

序列号: 序列号用于DNS 数据库文件的版本控制。每当数据被改变,这个序列号就应该被增加。 刷新: 从服务器向主服务器查询最新数据的间隔周期。每一次检查时从服务器的数据是否需要更改,

,

则根据序列号来判别。

重试: 一旦从服务器尝试连接主服务器失败,下一次查询主服务器的延迟时间。

过期

如果从服务器无法连通主服务器,则在经过此时间后,宣告其数据过期。

生存期:

服务器回答 ‘无此域名’ 的间隔时间。

数字的默认单位为秒。否则:W= 周、D= 日、H= 小时、M= 分钟。

下面我们来配置正向解析文件,这里的主机名为mail

简单的正向配置文件就到这里, 下面接着讲反向解析的zone 文件。

把正向解析zone 文件拷贝一份,名字是你在named.conf 中定义的反向解析的名字 编辑反向解析文件

只需要把A 记录修改成PTR 记录就可以了,PTR 是反向解析的意思,把IP 地址修改成域名 然后保存退出

配置文件就写完了,下面我们来使用配置文件检测工具来检测我们的配置文件语法是否正确 检测区域文件的语法

语法为named-checkzone 域名 配置文件

,

检查正向配制文件语法

检查反向配制文件语法

最后需要修改name.conf

的所有者,因为bind

要以named

帐号才能启动

最开始的时候就是因为没有修改反向文件的的权限导致无法解析,一直找不到问题,今后要特别注意。

修改DNS 域名服务器

启动DNS 服务器

还可以用下面的方式启动DNS 服务器

最后检测解析一下域名:

再来解析一下IP:

,

大功告成。

dig

命令

域信息搜索器,查询DNS

服务器的解析

host 解析域名

正向文件检查

named-checkconf /etc/named.conf

反向文件检查

named-checkzone 206.168.192.in-addr.arpa /var/named/192.168.2026.zone

补充:

此实验的服务器IP 地址为192.168.202.62,在局域网内没有上网权限,通过以下解析测试

可以得出:

,

之所以能够解析到CCTV 外网的

IP ,是因为在主配制文件named.conf 中,当DNS 在centos 域中无法查找到相关信息时会将请求提交到根域服务器中

,所以能够通过根域文件解析得到。

全球一共十三台服务器。

,
标签: