bind faq

2009-05-13 13:49:35来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

本文译自BIND主网站上的一篇文章:http://www.isc.org/products/BIND/FAQ.html。应该说,这些问题都非常典型,对BIND 9用户的日常维护和管理可以提供不小的帮助。
1. 当我在Linux 2.2.x上使用以--enable-threads选项编译的bind程序时,为什么-u参数不起作用?
答:
Linux线程并没有完全实现Posix线程(pthreads)标准。特别是setuid()只能对当前线程起作用,而不适用于整个进程。正是由于此项
限制,Linux上的BIND
9就无法像在其他支持的系统平台上一样使用setuid()。在创建线程之前不能调用setuid(),因为服务器只有在线程启动之后才能开始监听预留端
口。
    对于2.2.18或2.3.99-pre3以及更新的内核而言,则能在调用setuid()之后仍然保持可用性。这使得BIND 9可以更早些调用setuid(),而同时又保持了绑定预留端口的能力。这是针对Linux所作的特别处理。
    在2.2内核上,BIND 9的确放弃了许多root权限,所以相对于那些没有放弃权限的root进程而言,这会更加安全一些。
    如果Linux线程已经正常工作,那么这项限制也就不复存在。
    用户可以使用--disable-threads选项(这是默认选项)来编译BIND9,这样会生成一个非线程的版本,用户能够使用-u选项。
2、为什么named的日志中会给出警告信息"no TTL specified - using SOA MINTTL instead"?
答:你的zone文件不符合RFC1035标准。你可以使用两种方法来解决此问题:
    1)在zone文件的开头加入一行对TTL的定义,例如:$TTL 86400
    2)在zone文件的第一条记录中包含TTL字段,例如:example.com. 86400 IN SOA ns hostmaster
   
3、为什么我在Linux上会看到5个(或者更多)的named副本?
答:在ps下每个Linux线程也会像进程一样显示出来。一般运行的线程个数为n+4,这里n表示CPU的数目。注意在内存量的使用上并不遵从累加的原则;如果每个进程使用10M内存,那么所有线程总共也只使用10M内存。
4、为什么即便我在Linux系统上用root身份运行BIND 9,在访问配置文件或zone文件时,仍然会得到关于"permission denied"错误的日志?
答:在Linux上,BIND 9在启动时就放弃了绝大部分root权限,这其中就包括打开其他用户所属文件的权限。因此,如果服务器是以root身份运行的,那么配置文件和zone文件也应该由root所有。
5、为什么我得到类似于"dns_zone_load: zone foo/IN: loading master file bar: ran out of space"的错误提示?
答:这通常是由于TXT记录中少了一个引号所致。检查所有TXT记录是否都包含了完整的引号。
6、我怎样能够在Linux上从多线程named生成一个可用的core文件?
答:
如果Linux内核是2.4.7或更新的版本,多线程core导出(dump)是可用的(也就是说,将导出正确的线程)。否则,如果使用的是2.2内核,
那么需要应用在contrib/linux/coredump-patch中的内核补丁并重新编译内核。该补丁可以使多线程程序导出正确的线程。
7、我怎样限制别人查询我的服务器版本?
答:在named.conf的"options"段中放置"version"选项,并将其值设成与你实际使用版本不同的其他版本。注意:这样做不能避免攻击,反而可能会妨碍别人对你服务器问题的诊断尝试,而且这同样可能成为别人鉴别你服务器的标志。
8、我怎样限制只有远程用户才能查询服务器版本?
答:当存有版本信息的内部视图被最后匹配时,下面的视图语句将拦截查询。上面一问回答中的警告在这里同样适用。
    view "chaos" chaos {
      match-clients { ; };

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ubunut下常用软件

下一篇:OpenBSD 4.3 released May 1, 2008