亲宝软件园·资讯

展开

Linux下各种服务器的架设详解

人气:0
########DNS########bind 篇########
1.1 软件的相关资源。
官方网站:http://www.bind.com/
源码软件包官方下载:http://www.isc.org/index.pl/sw/bind/ 
帮助文档:http://www.isc.org/index.pl/sw/bind/ 有该软件比较全面的帮助文档。
FAQ:http://www.isc.org/index.pl/sw/bind/ 回答了该软件的常见问题。
配置文件样例:http://www.bind.com/bind.html 一些比较标准的配置文件样例。
1.2 安装
l       假设下载的软件源码包为: bind-9.3.1. tar.gz
[root@localhost root]#tar xzvf bind-9.3.1. tar.gz
[root@localhost root]#cd bind-9.3.1          
  [root@localhost bind-9.3.1]#./configure       //针对机器作安装的检查和设置
  [root@localhost bind-9.3.1]#make         
  [root@localhost bind-9.3.1]#make install   
注:./configure 针对机器作安装的检查和设置,大部分的工作是由机器自动完成的,但是用户可以通过一些参数来完成一定的设置,其常用选项有: 
  ./configure --help 察看参数设置帮助。  
  --prefix= 指定软件安装目录(默认/usr/local/)。
--enable-ipv6 支持ipv6。
l       也可以从光盘上拷贝或从网络上(http://www.redhat.com)下载rpm包,如下三个:
bind-8.2.2-p5-9.i386.rpm
  bind-devel-8.2.2-p5-9.i386.rpm
  cache-nameserver-6.2-2.noarch.rpm
安装:
rpm -Uhv bind-8.2.2-p5-9.i386.rpm
  rpm -Uhv bind-devel-8.2.2-p5-9.i386.rpm
  rpm -Uhv cache-nameserver-6.2-2.noarch.rpm
//查看是否安装了bind
#rpm –qa|grep bind
l         基本配置文件及常用命令
三个基本配置文件:
1  /etc/named.conf              
#早期版本是named.boot 现在的版本一般两者都有,但一般使用named.conf配置,是dns server配置的核心文件。 
2  /var/named/named.ca 安装的时候会自带,一般不做改动。
#如果我们的DNS服务器是连在internet上的,那么named.ca里面的就是我们的上级服务器,当一个域名在本机查不到,就会去named.ca里的服务器上去查。有的时候这些服务器是变动的,所以,我们可以下载这个文件。
https://m.qb5200.com/LINUXjishu/ftp://ftp.rs.internic.net/domain/named.root,然后改名为named.ca,复制到/etc里面就好了。
或者:dig @.aroot-servers.net.ns > /var/named/named.ca 从网络上下载下来。
3  /var/named/named.local
# named.local文件用来将回送地址127.0.0.1转换成本地主机名localhost,它是反向域0.0.127.IN-ADDR.ARPA使用的文件。由于所有系统都将127.0.0.1作为回送地址,所以named.local文件实际上对每个系统都是相同的,一般情况下该文件不用修改。
默认情况下,安装的deamon为/usr/local/sbin/named
常用命令
启动服务
/etc/rc.d/init.d/named start
service named start
停止服务
ps –ef |grep named #找到进程号
kill 进程号
netstat -an 可以查看53端口的服务是否已经起来
/usr/local/sbin/named –g –g表示前台运行,默认为后台运行
如果要设置开机自启动DNS server,只需在/etc/rc.d/rc.local中加入一行
  /usr/local/sbin/named
如:
  #!/bin/sh
  #
  # This script will be executed *after* all the other init scripts.
  # You can put your own initialization stuff in here if you don't
  # want to do the full Sys V style init stuff.
  touch /var/lock/subsys/local
  /usr/local/sbin/named
l         服务器类型详解
BIND可被配置成几种不同的运行方式,通用的BIND配置为纯解析器系统,纯缓存服务器,主服务器,辅服务器.
解析器是指通过域名服务器查询域信息的程序代码,在unix系统中,它是以库例程的方式实现的,而并不是一个单独的客户程序.纯解析器系统很容易配置,只要设置一下/etc/resolv.conf文件.这种方式通常用于由于某些限制不能在本地运行域名服务器软件的系统中.
  例如:/etc/resolv.conf内容类似为:
  search test.com
  nameserver 127.0.0.1
  nameserver 172.16.0.1
当配置解析器库以使用BIND名字服务进行主机查找,你也必须告知它使用哪个名字服务器。对此有一个独立的文件,称为resolv.conf。其最重要的选项是nameserver,它给出了要使用的名字服务器的IP地址。如果服务器不是本地这台则添加一条启示,IP为该服务器的IP。如果你通过几次给出nameserver选项指定了几个名字服务器,那么它们会以给出的顺序试用。因此,你应该首先给出最可靠的服务器。目前,至多支持三个名字服务器。
如果没有给出nameserver选项,那么解析器试图连接本地主机上的名字服务器,解析器就假设名字服务器在你本地的主机上。
其它两个选项,domain和search涉及到如果BIND不能用第一个请求解析主机名时附加在主机名上的缺省域。search选项指定了一个试用的域名列表。列表项是用空格或制表符分开的。如果没有给出search选项,就会通过使用域名本身从本地域名以及直至root的父域中建立一个搜寻列表。本地域名可以使用domain语句给出;如果一个也没有给出,那么解析器就通过系统调用getdomainname(2)来获取。
其它三类配置方式是用于域名服务器的
纯缓存服务器运行域名服务器软件,但并没有域名服务器数据库文件,它记录下每一个从远程域名服务器获得的数据,以回答将来对同一信息的查询.缓存服务器可以改进网络中D N S服务器的性能。当D N S经常查询一些相同的目标时,安装缓存服务器可以对查询提供更快速的响应,而不需要通过主服务器或辅服务器。
  纯缓存服务器所需的三个基本配置文件:
  /etc/named.conf
  /var/named/named.ca
  /var/named/named.local
基本上,BIND的主要配置都放在 /etc/named.conf 文件中,但是对于 hostname 和IP 的对应关系,就需要由 zone 来设定了,但是这个zone 的文件名称是在 /etc/named.conf 里面规定的,所以,请注意,每一个 zone 的名称都是可变的,但是需要在 /etc/named.conf 里面命名好,此外,最好将 zone 的文件直接放置到 BIND 的默认目录下,就是 /var/named 里面去,这样比较好管理。
Vi  /etc/named.conf 内容如下:
// generated by named-bootconf.pl
options {
directory "/var/named";  //这个是在规定『正反解文件放置的目录』
// query-source address * port 53;
forwarders {172.16.0.1;172.16.0.11;}; //其中的IP指网络中主服务器和辅服务器的IP.
};
// a caching only nameserver config
// 首先定义出 . (root) 这个 type为hint的文件内容,一般不修改
zone "." { //定义根
type hint; //选择的 type 为 hint (. 专用)
file "named.ca"; //默认的文件名named.ca
};
zone "0.0.127.in-addr.arpa" {//反解的IP网段,那个 in-addr.arp是固定的 IP 段写法!
type master;
file "named.local"; 
};
注:缓存服务器该配置文件只要修改forwarders {172.16.0.1;172.16.0.11;};即可。
创建或修改/var/named/named.local
$ 86400
$ ORIGIN locahost.
  @ IN SOA localhost. root.localhost. (
  1997022700 ; Serial
  28800 ; Refresh
  14400 ; Retry
  3600000 ; Expire
  86400 ) ; Minimum
  IN NS localhost.
  1 IN PTR localhost.
  另外:/var/named/named.ca这个文件一般不用修改,但有时要从网络上下载最新版。
主服务器,辅服务器实例
假设有一个网络,网络由proxy分成internet和intranet两部分:为了保护mail server的安全,将它安置在intranet上.内部用户通过内部mail server收发信件.
proxy server主机上同时建有proxy server ,dns server 和smtp server.
  eth0 ip address:192.168.1.1
  eth1 ip address:172.16.0.1
  mail server主机上同时建有smtp server,pop3 server.
  ip address:172.16.0.2
  用户的网关 为172.16.0.1
  dns server 为172.16.0.1 
  smtp server为mail.test.com
  pop3 server为mail.test.com
如图:
我们还是用"test.com"作为例子,我们需要六个基本配置文件:
  /etc/named.conf
  /var/named/named.ca
  /var/named/named.local
  /var/named/named.test.com
  /var/named/named.172.16.0
  /var/named/named.192.168.1
修改并详解/etc/named.conf主配置文件
//generated by named-bootconf.pl
  options {
  directory "/var/named";  //这个是规定正反解文件放置的目录
  // query-source address * port 53;  
  };
  // a PM nameserver config
  zone "." { 
  type hint;
  file "named.ca";
  };
  zone "0.0.127.in-addr.arpa" {
  type master;
  file "named.local";
  };
  //there are our primary zone files
  zone "test.com" { //这个 zone是解析test.com域名而使用
  type master;
  file "named.test.com"; //正解文件名,可以随自己高兴随便取
  };
  zone "0.16.172.in-addr.arpa" { //反向地址解析
  type master;
  file "named.172.16.0";
  };
  zone "1.168.192.in-addr.arpa" {
  type master;
  file "named.192.168.1";
  };
文件中的zone "test.com"段是声明这是用于test.com域的主服务器,该域的数据从/var/named/named.test.com文件中装载,文件中的zone "0.16.172.in-addr.arpa"段是指向映射IP地址172.16.0.* 到主机名的文件(反向地址解析).该域的数据从/var/named/named.172.16.0文件中装载.其他略同。
注意 :
1、Directory:这个值就是在每一个zone的文件放置的目录。举例来说,在test.com正解zone里,文件是named.test.com时,那么这个文件的路径就在/var/named/named.test.com
2、关于. (root)的内容:root最重要的就是那个type的值为hint 啦.
3、反解的写法:反解的 Zone 的写法较为特殊,它必须要将 IP 反过来写的,例如 127.0.0.0/24 这个 C 类 的网段,要写的话,则必须要反过来写成 0.0.127 这样的形式,最后面务必要加上in-addr.arpa
修改并详解/var/named/named.local文件
$ 86400    //注:这两行有的官方下载生成的文件中没有,需要添加。记得是 $
$ ORIGIN locahost.
  @ IN SOA ns.test.com. root.ns.test.com. (
  2000051500 ; Serial
  28800 ; Refresh
  14400 ; Retry
  3600000 ; Expire
  86400 ) ; Minimum
  IN NS ns.test.com.
  1 IN PTR localhost.
  注意:在修改named.*文件时每次存盘时要注意增加Serial值.如使用绝对域名时千万别忘了后面带的"."
1、@这个表示zone定义出的那个部分.以这个文件内容为例,因为我们在 /etc/named.conf当中就是定义出test.com为一个 zone 的,因此,在这里, 这个符号就代表 test.com
2、SOA表示管辖开始记录
   3、在SOA后面会接着两个部分,第一个为主机名称(ns.test.com.),请特别留意那个 ns.test.com后面有个小数点(.)这个东西很重要,他代表『一个完整的hostname + domain name 了』,如果没有加上 (.) 的话,那么就表示该文字『仅为hostname,还需要加上domain name』, 这里是新手最容易出现的错误,第二个为管理员的e-mail,因为不能使用@(已经是特殊符号了),所以这里也同样的以(.)来取代,例如上面我以root@ns.test.com来做为我的e-mail同样的最后面有个 (.) .
SOA 括弧中的5个数字:对应为( serial refresh retry expire Minimum )
  serial 可以是任何数字,一般:年月日修改数.
  refresh 是SOA信息的刷新时间.
  Retry是与授权服务器联系的频率.
  Expire slave服务器保存有关的区域信息,不更新它的时间间隔.
  Minimum 区域中记录的存活时间.
H=hour D=day M=minute W=week 
4、IN表示资源记录使用TCP/IP地址 
5、IN NS ns.test.com ; NS表示name server的意思,后面接的都是『hostname 或 FQDN』这个表示前面的domain是由后面的这个主机所管理的,那个localhost后面一定要接(.)才行.
另外:
A=域名和ip地址的映射.
  MX=mail exchange.//后面的10或20表示优先级,数字越小优先级越高。mx交换器会自动把信件内容转交给目标主机。
  CNAME=域名的一个假名
  PTR=用在反向:ip地址和域名的影射.
创建或修改/var/named/named.test.com
$ 86400
$ ORIGIN locahost.
@ IN SOA ns.test.com. root.ns.test.com. (
  2000051500 ; Serial 
  28800 ; Refresh
  14400 ; Retry 
  3600000 ; Expire 
  86400 ) ; Minimum
  IN NS ns.test.com.
  ns A 192.168.1.1
  ns A 172.16.0.1
  MX 10 ns.test.com.
  www A 192.168.1.2
  mail A 172.16.0.2 将mail.test.com 解析到 172.16.0.2 这里的mail 没有以“.”结尾,所以自动加上test.com
  MX 10 mail.test.com.
  MX 20 ns.test.com.
创建或修改/var/named/named.192.168.1
$ 86400
$ ORIGIN locahost.
  @ IN SOA ns.test.com. root.ns.test.com. (
  2000051500 ; Serial
  28800 ; Refresh  
  14400 ; Retry  
  3600000 ; Expire 
  86400 ) ; Minimum  
  IN NS ns.test.com.  
  1 IN PTR ns.test.com.
  2 IN PTR www.test.com.
//同样的,第一列没有以 .结尾的话会自动被加上18.168.192.in-addr.arpa.  
创建或修改/var/named/named.172.16.0  
$ 86400
$ ORIGIN locahost.
  @ IN SOA ns.test.com. root.ns.test.com. (  
  2000051500 ; Serial 
  28800 ; Refresh  
  14400 ; Retry  
  3600000 ; Expire
86400 ) ; Minimum 
  IN NS ns.test.com.
  1 IN PTR ns.test.com. 
  2 IN PTR mail.test.com.
假设用户发一份邮件到tom@hotmail.com时,信件先投递到mail.test.com主机,由mail.test.com主机再传递给ns.test.com主机,再由ns.test.com主机投递给mail.hotmail.com.然后再由用tom从mail.hotmail.com主机取得邮件.
当hotmail.com上的tom想发邮件给mail.test.com上的用户时,tom机器上的解析器先获得test.com的域名信息,然后邮件客户端根据邮件投递路由首先发给mail.test.com主机,由于mail.test.com主机为内部主机,internet用户无法访问.然后邮件客户端根据邮件投递路由发给ns.test.com主机.由于ns.test.com主机为于internet上,ns.test.com主机收到邮件后再转发到同一网段的mail.test.com主机上,然后再由用户从mail.test.com主机取得邮件. 
常见错误:使用named –g查看运行日志
如提示:9 08:53:36 www named[90]: none:0: open: /usr/local/etc/rndc.key: file not found 
解决办法:#/usr/local/sbin/rndc-configer>/usr/local/etc/rndc.conf
再在/usr/local/etc/下创建一个rndc.key 内容为
Rndc.conf中的一段,从下面开始拷贝。
Use with the。。。
。。。
。。。
Controls{
};
或者#/usr/local/sbin/rndc-configer>/usr/local/etc/rndc.key
如提示:
couldn't add command channel 127.0.0.1#153:address is use

dns-master-load named.192.168.18:2:unexpected end of input
dns-master-load named.192.168.18:1:unexpected end of input
zone 18.168.192.in-addr.arpa/IN:loading master file named.192.168.18:unexpected end of input
解决办法:
在named.192.168.18 文件里第一二行输入或改为
$ 86400 //注:86400可以更改,但$不能变。
$ ORIGIN locahost.  //ORIGIN记得是大学。
检验DNS SERVER的正反向解析是否成功
要使你的新e-mail服务器正常工作,必须先解决DNS问题.把你的e-mail服务器的主机名和ip地址加入到DNS中,并用nslookup来确认: 例:
[root@AS3 / ]#  nslookup -sil mail.supermaster.com
Server:         192.168.0.111
Address:      , ;  192.168.0.111#53
Name:   www.supermaster.com
Address: 192.168.0.111
同样你也要试一下反向域名解析,这个对防止邮件延迟有很重要的作用.现在大部分的邮件服务器都是把反向域名解析作为邮件传送时认证的一部分.所以用的你ip地址来试一下反向域名解析是否正确.
[root@AS3 / ]# nslookup -sil 192.168.0.111
Server:         192.168.0.111
Address:        192.168.0.111#53
111.0.168.192.in-addr.arpa      name = mail.supermaster.com.
提高域名服务器的安全
  为了提高域名服务器的安全性,必须要控制区文件的传输.在配置named.conf时,可以采取几方面的控制来加强安全.
  options {
  allow-transfer {202.103.166.100;};
  };
  这句指令指定只有授权的辅服务器才能从本主服务器上获得区数据信息
  options {
  allow-query {192.168.1/24;127.0.0/8;};
  };
  这句指令指定只有授权的客户才能从本服务器上获得区数据信息.  
  options {
  forwarders {202.103.166.194;202.105.177.100;};
  forward-only;
  };
  这句指令指定只有指定的服务器才能被本缓存服务器访问.
大多数DNS故障的原因是配置文件的语法错误,或者是对错误的计算机分配了错误的地址.当进行DNS故障诊断时,参照下面的指导方针.
DNS故障诊断
1 对全部记录,检查和确认主机名称的拼写.记住绝对地址是以"."结尾.
2 如果在区文件中作了任何修改,务必修改SOA记录中的序列号.这将保证服务器正确地重新上载文件.
3 确定输入到主区的名称和IP地址匹配反向指针文件中的反向指针信息.
4 Microsoft的DNS服务器采用了非标准的资源记录,可能会导致问题.
附录:
1. 主机名存放在/etc/sysconfig/network文档中:
[root@atslxt001 ~]# more /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=atslxt001.tcs.com
2.设置静态地址在/etc/sysconfig/networking/devices/ifcfg-eth0
[root@atslxt001 ~]# more /etc/sysconfig/networking/devices/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.21
USERCTL=no
PEERDNS=yes
IPV6INIT=no
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
3.至于系统先查询/etc/hosts还是DNS取决于这个文件/etc/nsswitch.conf,中间有一行是这么写的:
hosts:  files dns
4. DNS服务器上的防火墙设置(系统设置=>安全级别)一定要允许telnet访问,否则会出现只有DNS服务器本机可以使用DNS服务的情况;

加载全部内容

相关教程
猜你喜欢
用户评论