1、第六章 redhat linux 9 bind dns 服务器的配置6.1 linux bind dns 服务概述DNS 的作用实现 IP 地址和域名之间的转换。在 Linux 中,域名服务(DNS)是由 BIND(Berkeley Internet Name Domain)软件实现的。BIND 是一个客户/服务系统,它的客户端称为解析程序(resolver) ,它产生域名信息的查询,将这类信息发送给服务器,DNS 服务器端软件回答解析程序的查询。BIND 的服务器端是一个称为 named 的守护进程。linux 中有 3 种技术来实现主机名到 IP 地址的转换1、host 解析: 主要指本地
2、/etc/host 文件,其中有主机名和 IP 地址之间的映射关系。在一个大型网络中 Hosts 文件较繁琐而又复杂,通常作为 DNS 的补充。2、NIS:NetWork Information System 网络信息服务系统,NIS 将所有主机数据都保存在中央主机上,由中央主机将所需数据分配给所有的服务器,适用于像局域网这样的中型网络。3、DNS:Domain Name system 它使用一种层次的树型结构的分布式数据库来处理 Internet 上的主机和 IP 地址的转换6.1.2 DNS 系统的组成DNS 系统包括 3 个部分:1、域名空间:用来标识一组主机并提供它们的有关信息的树型结
3、构,树上的每一个结点都有相关的主机的有关信息。2、域名服务器:保持和维护域名空间中部分信息,一个域名服务器拥有其控制范围(区域)内的完整信息。3、解析器:解析器是简单的程序或子程序库,它向服务器发出查询以获得对域名空间中主机名的解析,用于 DNS 客户。6.1.3 DNS 域名服务器的类型 BIND 中 DNS 服务器主要有两种:主服务器和辅助服务器。主服务器(primary name server)是特定域所有信息的权威性信息源。它从域管理员构造的本地磁盘文件中加载域信息,该文件包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对它域的任
4、何查询。配置主服务器需要一整套配置文件,包括正向域的文件(named.hosts)和反向域的文件(named.rev) 、引导文件(named.conf) 、高速缓存(named.ca )和回送文件(named.local) 。辅助域名服务器(secondary name server)可从主服务器中复制一整套域信息。区文件是从主服务器中复制出来的,并作为本地磁盘文件存储在辅助服务器中。在辅助域名服务器中有一个所有域信息的完整拷贝,也可以回答对该域的查询。配置辅助域名服务器不需要生成本地域文件,因为可以从主服务器中下载该文件。然而其它的文件是需要的,包括引导文件、高速缓存文件和回送文件。缓存服
5、务器:只使缓存转发服务器:转发 DNS 查询6.5.1 配置域名服务器客户端作为 DNS 客户端,主要配置两个文件,即/etc/host.conf 文件和/etc/resolv.conf 文件。1、配置/etc/host.conf 文件。该文件指定如何解析主机名。下面是 “/etc/host.conf”的示例: order bind,hosts multi on nospoof on alert ontrim “order bind,hosts”指定主机名查询顺序,这里规定先使用 DNS 来解析域名,然后再查询“/etc/hosts” 文件 (也可以相反)。“multi on”指定是否“/et
6、c/hosts”文件中指定的主机可以有多个地址,拥有多个 IP 地址的主机一般称为多穴主机。 “nospoof on”指不允许对该服务器进行 IP 地址欺骗。IP 欺骗是一种攻击系统安全的手段,通过把 IP 地址伪装成别的计算机,来取得其它计算机的信任。“alter on”指任何试图骗取 IP 地址的行为都通过 syslog 工具进行记录。“trim ”指解析器会先将被查找域名中的 去掉,再从/etc/hosts 中查找匹配的主机名。2、配置/etc/resolv.conf 文件内容:该文件是由域名解析器(resolver)使用的配置文件。当配置解析程序使用BIND 域名服务查询主机时,必须
7、告诉解析程序使用哪一个域名服务器。用来完成这项任务的工具就是/etc/resolv.conf 文件。/etc/resolv.conf 控制解析程序使用 DNS 解析主机名的方式,它可以明确地定义系统的配置,允许命名由于缺省服务器不响应而使用的备份服务器。示例如下:domain DnsTnameserver 192.168.0.1nameserver 项利用 IP 地址去标识域名服务器。可以定义多个nameserver 项,可以使用多达三个域名服务器。这些名服务器是按照它们在文件中的顺序进行查询的,如果没有接收到一个服务器的响应,就去试表中的下一个服务器,直到所有服务器试完为止(如果在 /etc
8、/resolv.conf 文件中设置了三个以上的域名服务器,那么,即使前三个服务器都没有响应查询请求,Linux 也不会去请求后面的服务器) 。我们应该将最可靠的域名服务器列在最前面,以便在查询时不会超时。如果 resolv.conf 文件中不包含 nameserver 项,或者不存在 resolv.conf 文件,就将所有名服务器查询发送给本地主机。然而,如果有一个 resolv.conf 文件,它包含 nameserver 项,除非有一项指向本地主机,否则就不查询本地主机。在配置唯转换程序的主机中,resolv.conf 文件包含 nameserver 项,但没有一个项指向本地主机。dom
9、ain 项用来定义缺省域名(主机的本地域名) 。转换程序会将缺省域名挂在任何不含点的主机名后面。例如,转换程序接收到主机名 www(它不含点) ,就将其缺省域名挂接在 www 后面,构成对它的查询。如果 domian 域中的 name 值是 DnsT,那么转换程序就将查询 www.DnsT。 “search ”表示当提供了一个不包括完全域名的主机名时,在该主机名后添加 的后缀;“nameserver”表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。 6.5.2 BIND 域名服务器的安装 6.5.3 配置主域名服务器 BIND 是一个客户/服务系
10、统, BIND 的服务方面是一个称为 named 的守护进程。要配置主域名服务器,需要配置主配置文件:/etc/named.conf 和区域文件。主配置文件:/etc/named.conf 完成区域的声名和全局配置(如子域声名,访问控制等等)区域文件(默认在/var/named 下),文件名与主配置文件中声名的一样,主要完成 DNS 资源记录(包括 SOA,MX,A,NS,CNAME 等等) ,下面的配置文件中详细说明。1、配置规划假定要实现的域是 DnsT,域中包含的机器有:www,ftp 它们分别用于完成网站和 FTP,而且都在一个机器上 (192.168.0.1),实际中常常在不同的机器
11、上。RH1:IP:192.168.0.1DNS 客户配置 192.168.0.12、配置主配置文件当安装完 Bind 之后,默认产生主配置文件/etc/named.conf,用 gEdit 打开/etc/named.conf ,其中加入如下内容(/后面是注释)/ named.conf for Red Hat caching-nameserver /options directory “/var/named“; /区域文件的存放位置dump-file “/var/named/data/cache_dump.db“;statistics-file “/var/named/data/named_st
12、ats.txt“;/* If there is a firewall between you and nameservers you want* to talk to, you might need to uncomment the query-source* directive below. Previous versions of BIND always asked* questions using port 53, but BIND 8.1 uses an unprivileged* port by default.*/ query-source address * port 53;/
13、/ a caching only nameserver config/ controls inet 127.0.0.1 allow localhost;; keys rndckey; ;zone “.“ IN type hint;file “named.ca“;zone “localdomain“ IN type master;file “localdomain.zone“;allow-update none; ;zone “localhost“ IN type master;file “localhost.zone“;allow-update none; ;zone “0.0.127.in-
14、addr.arpa“ IN type master;file “named.local“;allow-update none; ;zone “0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa“ IN type master;file “named.ip6.local“;allow-update none; ;zone “255.in-addr.arpa“ IN type master;file “named.broadcast“;allow-update none; ;zone “0.in-addr.a
15、rpa“ IN type master;file “named.zero“;allow-update none; ;zone “DnsT“ IN /要实现DnsT域type master; /要实现的是主域file “DnsT.zone“; /主域的记录文件存放在/var/named 下allow-update none; ; zone “0.168.192.in-addr.arpa“ IN /DnsT的反向解析区域type master; /类型是主要区域file “DnsT.arpa“; /反向区域记录的存放文件(好记的名字),位置同上allow-update none; ;include
16、 “/etc/rndc.key“;3、在/var/named 下建立两个区域文件 DnsT.zone 和 DnsT.arpa/var/named/DnsT.zone 的内容如下:$TTL 86400DnsT. IN SOA www.DnsT. master.DnsT./最左边的DnsT 可以简化为 , 后面依次为 IN(代表Internet 类) SOA 主DNS服务器域名 DNS服务器 管理员邮件20050822 ; serial (d. adams) /区域序列号,当修改时要增加,否则从域可能不一致!3H ; refresh /从域刷新超时时间15M ; retry /从域重试刷新时间1W
17、 ; expiry /从域刷新失败并认为主域无效的时间1D ) ; minimumIN NS www.DnsT. /左侧必须留空白/以下每行都要靠左,即左侧不要留出空白www IN A 192.168.0.1 ftp IN A 192.168.0.1 mail IN A 192.168.0.2 ftp1 IN CNAME ftp mail1 IN CNAME mail/var/named/DnsT.arpa 的内容如下:$TTL 86400 IN SOA www.DnsT. master.DnsT. (20050822 ; serial (d. adams)28800 ; Refresh144
18、00 ; Retry3600000 ; Expire86400 ) ; MinimumIN NS www.DnsT. /注意本行左侧需要有空格,或者填入 “区域名.“,即/0.168.192.in-addr.arpa.1 IN PTR www.DnsT. /表示 www.DnsT对应的主机IP为/192.168.0.2(反向解析)1 IN PTR mail.DnsT.2 IN PTR ftp.DnsT. 6.5.4 测试DNS#service named start /启动named服务(提供DNS 服务的进程) ,常见的错误是缺少.或;或左边多余的空格,排除直道本命令没有错误。 rootww
19、w # nslookup/显示当前设置的所有数值 set allDefault server: 192.168.0.1Address: 192.168.0.1#53Set options:novc nodebug nod2search recursetimeout = 0 retry = 2 port = 53querytype = A class = INsrchlist = DnsT Server: 192.168.0.1Address: 192.168.0.1#53Name: Address: 192.168.0.1 wwwServer: 192.168.0.1Address: 192.
20、168.0.1#53Name: www.DnsTAddress: 192.168.0.1 ftpServer: 192.168.0.1Address: 192.168.0.1#53Name: ftp.DnsTAddress: 192.168.0.2/查询DnsT域的NS资源记录配置 set type=ns Server: 192.168.0.1Address: 192.168.0.1# nameserver = ./查询DnsT域的SOA资源记录配置 set type=soa Server: 192.168.0.1Address: 192.168.0.1#origin = mail addr
21、= serial = 20050822refresh = 10800retry = 900expire = 604800minimum = 86400/查询DnsT域的别名资源记录配置set type=cname Server: 192.168.0.1Address: 192.168.0.1# canonical name = ./查询DnsT域的所有资源记录配置 set type=any Server: 192.168.0.1Address: 192.168.0.1# mail exchanger = 10 origin = mail addr = serial = 20050822refr
22、esh = 10800retry = 900expire = 604800minimum = nameserver = ./查询反向域的所有配置 0.168.192.in-addr.arpaServer: 192.168.0.1Address: 192.168.0.1#530.168.192.in-addr.arpaorigin = www.DnsTmail addr = master.DnsTserial = 20050822refresh = 28800retry = 14400expire = 3600000minimum = 864000.168.192.in-addr.arpa n
23、ameserver = www.DnsT./反向查询域名 192.168.0.1Server: 192.168.0.1Address: 192.168.0.1#531.0.168.192.in-addr.arpa name = www.DnsT. exitrootwww #6.5.5 实现 DNS 简单负载均衡 利用 DNS 轮询的方法,通过对单个 FQDN 设置多个 IP 地址实现的,例如HTTP 服务器 www.DnsT 有 2 个主机,其 IP 地址分别是 192.168.0.1 和192.168.0.2,客户首次对查询 www.DnsT 的地址是 192.168.0.1,对此主机进行访
24、问,第二次查询是的 IP 地址是 192.168.0.2,故对 192.168.0.2 主机进行访问.从而实现了负载均衡打开 etc/named/ DnsT.zone 文件,修改内容:www IN A 192.168.0.1www IN A 192.168.0.2重新加载域名服务器配置文件:# service named reload测试:#host www.DnsT6.5.6 配置辅助域名服务器 在要配置辅助域名服务器的 Linux 计算机上对主配置文件配置同名区域,注意指定辅助域名服务器的类型 slave, 然后指明了主 DNS 服务器的地址“masters 192.168.0.1; ;”
25、。 辅助 DNS 服务启动时,就会自动连接 192.168.0.1,读取 DnsT 域的信息,然后保存到本机的 DnsT.zone 文件里。无需配置区数据库文件,因为区数据库文件将从主域名服务器自动获得。另外,同一个域的主域名服务器和辅助域名服务器不能同时配置在同一台主机上。添加正向解析zone “ DnsT “type slave; file “ DnsT.zone“;masters192.168.0.1;添加反向解析zone “0.168.192.in-addr.arpa“type slave;file “ DnsT.arpa “;masters 192.168.0.1;6.5.7 配置域
26、名转发 当 DNS 客户端向指定的 DNS 服务器要求进行域名解析时,若此域名服务器无法解析,它将用缓存中的信息帮助定位能解析的其他服务器,通常仅仅找到一个根域服务器,若不希望直接定位到根域服务器,可以设置域名转发器(Forwarder),配置了域名转发清单的域名服务器会把不能直接从自己缓存响应的请求发送给转发器中定义的服务器,可以减少广域网中的通信量,实现需修改配置文件/etc/named.confoptions (forwarders202.117.128.2; ;)6.5.8 区域委派可以将名称空间分割一个或多个区域的功能,可将这些区域存储、分配和复制到其他 DNS 服务器,父域对子域的
27、 DNS 服务器进行委派。在父域的 DNS服务器的正向解析文件中执行的步骤:1、定义子域的名称2、命名负责该子域的 DNS 服务器3、定义子域的 DNS 服务器的 IP 地址但是,反向解析文件的配置相对复杂,有两种情况:1、将 IP 地址看作 4 个独立的字节2、将 IP 地址看作 32 位二进制数1、基于字节界限的委派基于字节界限的委派的规划如下表:域名 域中主机所在的网段域名服务器FQDN域名服务器 IP主域 DnsT 192.168.0.0 www.DnsT192.168.0.1子域 sub.DnsT 192.168.2.0 www.sub.DnsT192.168.2.10修改 www.
28、DnsT /etc/named.conf:将 zone “0.168.192.in-addr.arpa“ IN type master; file “DnsT.arpa“; allow-update none; ;改为:zone “168.192.in-addr.arpa“ IN type master; file “DnsT.arpa“; allow-update none; ;修改 www.DnsT 下 /var/named/DnsT.zone$TTL 86400DnsT. IN SOA www.DnsT. master.DnsT. (20050822 ; serial (d. adams
29、)3H ; refresh15M ; retry1W ; expiry1D ) ; minimumIN NS www.DnsT. sub IN NS www.sub.DnsT. www.sub IN A 192.168.2.10www IN A 192.168.0.1 ftp IN A 192.168.0.2 mail IN A 192.168.0.1 ftp1 IN CNAME ftp mail1 IN CNAME mail修改 /var/named/DnsT.arpa:$TTL 86400 IN SOA www.DnsT. master.DnsT. (20050822 ; serial (
30、d. adams)28800 ; Refresh14400 ; Retry3600000 ; Expire86400 ) ; MinimumIN NS www.DnsT.2 IN NS www.sub.DnsT.1.0 IN PTR www.DnsT.2.0 IN PTR ftp.DnsT.#service named reload配置基于字节界限的委派的子域的主域名服务器配置子域服务器和配置主域服务器的方法和步骤都一样,下面是配置过程。客户端 DNS 配置如下:1、配置/etc/host.conf 文件: order bind,hosts 2、配置/etc/resolv.conf 文件内容:
31、domain sub.DnsTnameserver 192.168.2.10在子域的主域名服务器 www.sub.DnsT 上修改 named.conf,即添加如下内容:zone “sub.DnsT“type master;file “sub.DnsT.zone“;zone “2.168.192.in-addr-arpa“type master;file “ sub.DnsT.arpa“;新建 /var/named/sub.DnsT.zone,内容如下:$TTL 86400 IN SOA . root (20050823 ; serial (d. adams)3H ; refresh15M ;
32、 retry1W ; expiry1D ) ; minimumIN NS .IN A 192.168.2.10www IN A 192.168.2.10新建 /var/named/sub.DnsT.arpa,内容如下:$TTL 86400 IN SOA . . (20050823 ; serial3H ; refresh15M ; retry1W ; expiry1D ) ; minimumIN NS .10 IN PTR .#service named start和主域名服务器的测试方法一样,在 192.168.2.10 上测试本机域名服务器的配置是否正确,若有错误,则改正,直到正确。测试基
33、于字节界限的委派在主域名服务器上测试:rootwww # service named reload rootwww # nslookup set allDefault server: 192.168.0.1Address: 192.168.0.1#53Set options:novc nodebug nod2search recursetimeout = 0 retry = 2 port = 53querytype = A class = INsrchlist = DnsT Server: 192.168.0.1Address: 192.168.0.1#53Name: Address: 192
34、.168.0.1 Server: 192.168.0.1Address: 192.168.0.1#53Non-authoritative answer:Name: Address: 192.168.2.10 192.168.0.1Server: 192.168.0.1Address: 192.168.0.1#531.0.168.192.in-addr.arpa name = www.DnsT. 192.168.2.10Server: 192.168.0.1Address: 192.168.0.1#53Non-authoritative answer:10.2.168.192.in-addr.a
35、rpa name = .Authoritative answers can be found from:2.168.192.in-addr.arpa nameserver = internet address = 192.168.2.102、打破字节界限的委派打破字节界限的委派适用于一个 C 类网络划分多个域的情况。下面是配置过程。打破字节界限的委派的规划表:域名 域中主机 IP 范围域名服务器FQDN域名服务器 IP主域 DnsT 192.168.0.0192.168.0.255www.DnsT192.168.0.1子域 sub.DnsT 192.168.2.0192.168.2.127w
36、ww.sub.DnsT192.168.2.10修改 www.DnsT 下 /etc/named.conf:将 zone “168.192.in-addr.arpa“ IN type master; file “DnsT.arpa“; allow-update none; ;改为:zone “0.168.192.in-addr.arpa“ IN type master; file “DnsT.arpa“; allow-update none; ;添加:zone “2.168.192.in-addr.arpa“ IN type master; file “sub.DnsT.arpa“; allow
37、-update none; ;修改主域服务器下/var/named/DnsT.zone只要保证各个域的域名服务器 IP 地址在“打破字节界限的委派的规划表 ”中“域中主机 IP 范围”这一项的范围之中就可以。可以看出/var/named/DnsT.zone 中的各项都没用超范围,所以不用修改内容。修改主域服务器/var/named/DnsT.arpa$TTL 86400 IN SOA www.DnsT. master.DnsT. (20050822 ; serial (d. adams)28800 ; Refresh14400 ; Retry3600000 ; Expire86400 ) ;
38、MinimumIN NS www.DnsT.1 IN PTR www.DnsT.2 IN PTR ftp.DnsT.在主域服务器上新建/var/named/sub.DnsT.arpa$TTL 86400 IN SOA www.DnsT. master.DnsT. (20050822 ; serial (d. adams)28800 ; Refresh14400 ; Retry3600000 ; Expire86400 ) ; MinimumIN NS www.DnsT.0-127 IN NS www.sub.DnsT.$generate 0-127 $cname $.0-127配置打破字节界限
39、的委派的子域的主域名服务器客户端 DNS 配置可以参考上面的基于字节界限的委派客户端的配置,它们的内容是一样的。在子域的主域名服务器 www.sub.DnsT 上修改 named.conf:将 zone “2.168.192.in-addr-arpa“type master;file “ sub.DnsT.arpa“;改为zone “0-127.2.168.192.in-addr-arpa“type master;file “ sub.DnsT.arpa“;#service named start测试 www.sub.DnsT 的域名服务器,使其正确。测试打破字节界限的委派在主域名服务器上测试
40、:rootwww # service named reload rootwww # nslookup Server: 192.168.0.1Address: 192.168.0.1#53Name: Address: 192.168.0.1 192.168.0.1Server: 192.168.0.1Address: 192.168.0.1#531.0.168.192.in-addr.arpa name = www.DnsT. Server: 192.168.0.1Address: 192.168.0.1#53Non-authoritative answer:Name: Address: 192
41、.168.2.10 192.168.2.10Server: 192.168.0.1Address: 192.168.0.1#5310.2.168.192.in-addr.arpa canonical name = 10.0-127.2.168.192.in-addr.arpa.10.0-127.2.168.192.in-addr.arpa name = .以上是关于两种不同情况的区域委派配置实例,在DNS客户端的网络配置中,DNS 服务器配置为192.168.0.1,也就是说,配置文件/etc/resolv.conf中指定nameserver为 192.168.0.1。这样在保证网络连同的情况
42、下将能解析主域和子域中的所有主机。第 7 章 Red Hat Linux 9.0 Apache 服务器的配置 7.1 Apache 概述 主要目录/var/www WWW 站点文件目录/var/www/html WEB 文件目录,homepage 文件目录配置文件.htaccess 基于目录的配置文件。 该文件包含对它所在目录中文件的访问控制指令。/etc/httpd/conf/httpd.conf web 服务的主配置文件7.3.1 安装和启动 Apache 1)从 rpm 安装首先查看是否按装了 apache:rpm qa|grep httpd如果已经进安装了 apache,则直接启动 a
43、pache;如果没有安装,继续下面步骤:rpm ivh httpd-2.0.40-21.i386.rpmrpm ivh httpd-manual-2.0.40-21.i386.rpm2)启动 Apache若要启动 apache,用下面的命令:service httpd start检测 apache 是否已启动:pstree|grep httpd查看运行状态:Service httpd status测试 httpd.conf 配置是否正确:apachectl configtest/ect/rc.d/init.d/httpd stop 停止/ect/rc.d/init.d/httpd start 启动7.3.2 Apache 常用配置参数 1、查看 apache 的一些相关信息rootwww # ap