注意:如果只对options做IP地址限制,意味着allow-query也对下面的每个zone起作用,即只允许指定IP使用该DNS服务器进行域名解析,但是也造成了本地授权域不能被指定IP以外的地址查询到,即其他的域名服务器不能解析本地授权域。所以,为了使互联网上的用户解析到我们的本地域名,应在每个zone里添加“allow-query {any;};”。
另外一个办法就是对option限制递归查询的IP地址,这样就不用对每个zone作限制了。因为一般主机提出的查询请求属于递归查询,而DNS服务器之间的查询请求属于非递归查询。由于我们仅是限制递归查询,服务器间的非递归查询不在限制以内,所以其他的域名服务器可以正常的解析我们域内的域名。修改配置文件named.conf:
options {
allow-recursion {202.113.16.0/20;};
recursive-clients 10000;//
};
注意:recursive-clients限制客户端数量,默认是1000,可以根据实际情况更改。
建立DNS日志
DNS日志可以记录服务器CPU占用时间、查询的统计信息及配置中存在的问题,经常分析日志可以了解服务器的负载、性能、安全性,从而及时地采取措施,纠正错误。
Bind软件默认情况下把DNS日志写到/var/log/messages文件中。由于这个文件中的日志信息是由syslog生成的,所以并不全是关于Bind的日志信息,要详细分类地记录DNS服务器的运行状况,我们应修改配置文件named.conf,使用logging命令:
logging{
channel default_log {
file “/var/adm/dns-default.log” versions 3 size 10m;
severity info;
print-severity yes;
print-time yes;
print-category yes;
};
:
:
channel security_log {
file “/var/adm/dns-security.log” versions 3 size 10m;
severity warning;
print-severity yes;
print-time yes;
print-category yes;
};
category default {default_log;};
:
:
category security {security_log;};
};
其中channel定义了通道名称,按自己需要可以定义多个通道,每个通道指定了存放日志的文件名、文件个数及大小,还定义了要记录消息的等级(如critical、error、warning、notice、info、debug、dynamic),并指定日志内容是否包括时间、消息的类别及消息的级别。
Category定义消息的种类(如default、general、client、config、database、dnssec、lame-servers、network、notify、queries、resolver、security、update、xfer-in、xfer-out),并指明这类消息按照哪个通道的定义来进行记录。
例如上例中的第一个channel,首先default_log是自己定义的channel名称,/var/adm/dns-default.log是日志文件,可依次产生记录该类消息的4个文件(update_log、update_log0、update_log1、update_log2),依次更替,每个文件最大为10M。该日志记录的是除serverty信息以外的警告信息。消息记录格式包括时间、消息级别和种类。
关于DNS日志的设置应根据自己需要来,多设置几个通道,将日志信息分类记录,本着多看多分析的原则,及时发现各种问题,以便及时解决。
例如/var/adm/dns-default.log文件,发现出现多条警告信息“Nov 02 15:55:45.647 client:warning:client 10.22.21.78#1036:no more recursive clients:quota reached”,通过分析,得知Bind客户端数量默认值是1000,瞬时请求超过这个值就会出现上述警告信息,所以修改named.conf,添加语句“recursive-clients 10000;”,从而解决了上述问题。
<<上一页
1
2
3
下一页>>