天天看点

linux dns chroot 服务器

(1) # rpm -qa | grep bind bind-utils-9.2.4-16.EL4 <==是用户端搜寻主机名称的相关指令

bind-9.2.4-16.EL4 <==DNS服务器主程序

bind-chroot-9.2.4-16.EL4 <==将bind主程序关在家里? 那个chroot即change to root,那个root代表的是根目录

可以用该命令来将某个目录指定为bind程序的根目录,由于是根目录,所以bind便不能离开该目录。

CentOS默认将bind锁在/var/named/chroot中

(2) yum install bind 15.BIND的默认设定

/etc/named.conf ——设定档

/etc/sysconfig/named ——是否启动chroot及额外的参数,由这个档案控制

/var/named/ ——资料库档案默认放置在这个目录

/var/run/named ——named这去程序执行时默认放置pid-file在此目录内

可通过查看/etc/sysconfig/named来查看chroot所指定的目录

# vi /etc/sysconfig/named ROOTDIR=/var/named/chroot 这样bind的相关程序所需要的所有资料会是在:

/var/named/chroot/etc/named.conf /var/named/chroot/var/named/zone_file1 /var/named/chroot/var/named/zone_file... /var/named/chroot/var/run/named/... 不过,仍旧可以使用/etc/named.conf来设定你的DNS 因为系统会主动的帮你将/var/named/chroot/etc/named.conf链接到/etc/named.conf 16.DNS的master/slave架构

master——本身具有提供Internet查询所需的资料

slave——

Cache-only——这种DNS主机没有自己的资料库,单纯帮助Client端向外部的DNS主机要求资料而已。代理? 17.Cache-only单纯的forward DNS主机设定

(1) 编辑主要设定档 /etc/named.conf a> 注释用"//" b> 每个段落之后要用";"结束

c> 实例:

------------------------------------------------------------------ [[email protected] ~]# vi /etc/named.conf // 虽然 CentOS 将这个档案放置到 /var/named/chroot/etc 当中,

// 不过他很好心的帮我们作了个连结,所以你还是可以直接编辑这个档案啦!

options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; pid-file "/var/run/named/named.pid"; forward only; //只允许 forward! forwarders { 168.95.1.1; //我这里使用 hinet 的 DNS !

139.175.10.20; //这个是 seednet 的 DNS !

}; }; include "/etc/rndc.key"; ------------------------------------------------------------------ 这里要确认一下,pid-file的所有人必须是named这个user才行

[[email protected] ~]# ls -ald /var/named/chroot/var/run/named drwxrwx--- 2 named named 4096 Oct 12 11:48 /var/named/chroot/var/run/named (2) 启动named # /etc/init.d/named start (3) 观察port的变化

并不一定启动时成功就表明DNS成功了,还要来看一下port 53有没有启动

# netstat -utln (4) 检查/var/log/messages的信息

tail -n 15 /var/log/messages | grep named Oct 16 15:08 linux named[76]: starting BIND 9.2.4 -u named -t /var/named/chroot <==成功启动

(5) 客户端测试

18.DNS服务器小结:

a> 主要设定档是/etc/named.conf b> 每个正解、反解都需要一个档案,而档案的档名是由/etc/named.conf所设定的

c> 目前的BIND程序已经进行chroot了,可以参考/etc/sysconfig/named d> 当DNS查询时,若本身没有资料库,则前往root(.)或forwarders主机查询

e> DNS服务器的架设需要上层DNS的授权才可以成为合法的DNS服务器,否则只能是内部的

f> named是否启动成功务必要查阅/var/log/messages内的信息

19.一个内部的DNS服务器的架设案例

[目标及环境] 该DNS服务器针对vbird.tsai这个域名来设计,并且对应的反解为192.168.1.0/24 另外还针对本机localhost以及127.0.0.1这个预设的领域来对应

当然还要包含最上层.(root)这个域名的主机名资料库

所以,设定档及正反解zone的资料库档案应该有:

(1) named.conf 设定档

(2) named.vbird.tsai vbird.tsai的正解

(3) named.192.168.1 192.168.1.0/24的反解

(4) named.root .(root)的资料库

(5) named.localhost localhost的正解

(6) named.127.0.0 127.0.0.1/24的反解

如果还想加入其他的域名,例如niki.tsai,那就再多一个资料库正解档案即可!

资料库的对应:

操作系统与IP 对应主机名 说明

linux 192.168.1.254 linux.vbird.tsai 这部是主要的DNS服务器,主要主机名为 www.vbird.tsai linux.vbird.tsai,其他的三个主机名

ftp.vbird.tsai 为主机别名

forum.vbird.tsai linux 192.168.1.150 slave.vbird.tsai 主要作为slave DNS主机

winxp 192.168.1.100 winxp.vbird.tsai 某一部主机的IP与主机名对应

sun 192.168.1.200 sun.vbird.tsai 另一部主机

★/etc/named.conf的设定档

a> 功能:

。规范DNS服务器的使用权限(可否查询、forward与否、master/slave架构等) 。设定出zone(domain name)以及zone file的所在

。设定DNS本机管理界面以及其相关的key file b> 注意:

在整体服务器环境与使用权限,主要是通过options {...}来设定的

c> 最简单的规划示例:

----------------------------------------------------------------- [[email protected] ~]# vi /etc/named.conf // 先定义出整个 DNS 服务器的相关环境,包括查询、档案放置目录等

options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; pid-file "/var/run/named/named.pid"; forwarders { 168.95.1.1; 139.175.10.20; }; allow-query { any; }; // 是否允许被查询?当然要可以被查询;

allow-transfer { none; }; // 是否允许传送 zone ,预设不可

}; // 关于 DNS 服务器的一些加密数据,先忽略过去先!

include "/etc/rndc.key"; // 关于 root (.) 的设定喔:

zone "." { type hint; // 特殊的类别!专给 root (.) 用的

file "named.root"; // 就是档名的定义啦!

}; // 关于本机 localhost 的正反解

zone "localhost" { type master; file "named.localhost"; }; zone "0.0.127.in-addr.arpa" { type master; file "named.127.0.0"; }; // 这里规范出我们的 vbird.tsai 领域名

zone "vbird.tsai" { type master; file "named.vbird.tsai"; }; zone "1.168.192.in-addr.arpa" { type master; file "named.192.168.1"; }; ----------------------------------------------------------------- d> options内的参数说明

设定值 意义

directory 指定zone file要放置在哪个目录,与zone设定项目的file配合而成完整的档名

dump-file 指定暂存资料记录到哪个档案

statistics-file DNS的一些统计资料写入的档案

pid-file 将named这个程序的PID记录下来的一个档案,这个档案通常在named启动、关闭时提供 正确的PID forwarders allow-query 是否允许用户端的查询,内容可以为any任何来源或IP或网段(IP/netmask) allow-transfer 是否允许slave DNS整个域名资料的传送,除非你有slave DNS服务器,否则这里不要 开放

e> zone内的参数说明

设定值 意义

type 主要类型有:master,slave及hint。其中,最上层.使用的是hint类型,然后master主 机用master,slave主机就用slave file 就是zone file,完整的zone file放在哪里:

[chroot_dir]/[options内的directory]/[file 设定值],所以说

root(.)设定档就在:/var/named/chroot/var/named/named.root 反解zone 反解,必须要将IP反过来写,并在最后面加上".in-addr.arpa"来表示反解。

()

继续阅读