加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

UNIX下DNS服务器之管理

发布时间:2022-10-17 12:37:29 所属栏目:Unix 来源:
导读:  一、UNIX系统DNS管理维护

  1、DNS的启动与停止

  如在Solaris 系统中启动与停止DNS的方法:

  用root身份登录到系统

  #ps –ef|grep named 查看named 的进程号pid

  1)重
  一、UNIX系统DNS管理维护
 
  1、DNS的启动与停止
 
  如在Solaris 系统中启动与停止DNS的方法:
 
  用root身份登录到系统
 
  #ps –ef|grep named 查看named 的进程号pid
 
  1)重启动named:
 
  # kill –HUP pid
 
  2)停止named:
 
  # kill pid
 
  如在AIX系统中启动与停止DNS的方法:
 
  用root身份登录到系统
 
  1) 启动named:
 
  # startsrc –s named
 
  2) 停止named:
 
  # stopsrc –s named
 
  3)数据库修改后重读数据库:
 
  # refresh –s named
 
  2、让DNS服务随UNIX系统的自动启动
 
  在我们创建与配置好DNS服务器时,当UNIX系统重新启动时,DNS服务一般是不会自动起来的,必须手工启动,这样很麻烦。在Solaris系统中,我们必须要修改 inetd.conf配置文件,找到named的注释行,去掉前面的“#”即可。
 
  在AIX系统中,为了使系统在下一次启动时named能处于工作状态,应打开/etc/rc.tcpip文件中关于named的注释即可(# smit stnamed)。
 
  二、UNIX 的DNS测试与调试工具
 
  在完成DNS的安装及设定后,客户端即可向服务器提出名称解析的要求,使用者可通过相关的工具来对DNS服务器做测试与调试。named提供几种内置的辅助调试工具,其中最重要的是可配置性非常灵活的日志功能;我们可以在命令行指定调试级别或者用ndc设置它们,还可以命令named把运行统计结果转储到一个文件,并用dig或nslookup验证域名查询。
 
  1、首先我们用系统命令 ping 来测试,看是否能拼通
 
  # ping “域名”
 
  在UNIX系统中,如果拼不通,则首先要检查DNS服务是否处于工作状态,其次用UNIX的PS命令查看一下named的进程是否存在如ps –ef|group named;假如进程已有,则要检查DNS的创建过程所有的配置文件的正确与否。
 
  在Windows客户机中,可进入MSDOS方式,如在C\>提示下使用ping hostname命令,其中hostname指所查询的域名全称,如配置正确则立刻显示经过解析的IP地址,否则长时间无显示结果表示配置不正确需查找原因。
 
  2、查看日志系统
 
  named日志工具的灵活性是很好的,BIND4使用系统日志来报告错误消息和反常情况;BIND8通过添加另一个间接层并支持直接将日志计入文件,推广了系统日志的概念。BIND日志是在named.conf中用logging语句配置的,BIND8默认的日志配置为:
 
  logging {
 
  category default {default_syslog;default_debug;};
 
  category panic {default_syslog;default_stderr;};
 
  category eventlib {default_debug;};
 
  category packet {default_debug;};
 
  };
 
  BIND9默认的日志配置为:
 
  logging {
 
  category default {default_syslog;default_debug;};
 
  };
 
  default_syslog:用工具守护进程把info和更高严重性的消息发送到syslog;
 
  default_debug:日志记录到文件named.run,严重性设置为dynamic;
 
  default_stderr:把消息发送给named的标准出错输出,严重性为info。
 
  当DNS运行出错时,我们可以查看系统日志文件syslog以及named.run等,对照有关BIND 错误消息清单(可以在网站上下载),找到解决方法。
 
  3、调试级别
 
  named调试级别用从0到11的整数来表示;数字越大,表示输出信息越详细。级别0关闭调试,级别1和2适用于调试配置和数据库,大于4的级别适合代码的维护人员使用。我们可以在named命令行用-d标记调用调试,例如:
 
  # named –d2
 
  将在调试级别2启动named,调试信息写入named.run文件,该文件的位置随UNIX系统的不同而不同。严重性级别越高,则日志记录的信息越多。
 
  4、用ndc调试
 
  ndc命令(在BIND 9中称为rndc)是操作named的一种有利工具,产生文件的命令把文件放到named.conf中被指定为named主目录的目录中。
 
  一些常用的ndc调试命令简单介绍如下:
 
  status:显示运行中的named的当前状态;
 
  dumpdb:把DNS数据库转储到named_dump.db;
 
  stats:把统计转储到named.stats;
 
  reload:重新装载named.conf和区文件;
 
  restart:重新启动named,清空高速缓存;
 
  notrace:关闭调试。
 
  例如named的最新版本保留了查询的统计,我们可以用ndc stats访问它,named接到这条命令时,就将统计写入文件named.stats。
 
  5、使用nslookup、dig和host调试
 
  以shell方式可以使用3种工具来查询DNS数据库:nslookup、dig和host,在BIND的软件发布中包括nslookup和dig。Nslookup是这三个工具中最老的,而且总是随同BIND一起发布;dig是域信息的探索程序,最初由Steve Hotz编写,后来Michael Sawy针对BIND 9将它重新编写,它也和BIND一起发布;host由Eric Wassenaar编写,是另一个开放源代码的工具,其特点是输出对用户很友好,功能是可检查区文件的语法。
 
  另外三者使用的解析器库不同:dig和host使用BIND的解析器,而nslookup有其自身的解析器。
 
  (1)nslookup
 
  输入 nslookup 命令后,会看到 > 提示符号,之后就可输入查询指令。一般会输入IP address或是domain name来做反向及正向的解析。而nslookup不仅提供上述2种解析,亦提供DNS中其它的资料记录型态,例如MX、NS…等等,我们可在提示符号直接输入”?”来获得所有可以使用的参数或资料型态。
 
  # nslookup
 
  Default Server: ghq.js.com
 
  Address: 61.155.107.131
 
  >
 
  (2)dig
 
  用法:dig [ @server ] [ -b address ] [ -c class ]… (详细说明请以"man dig"来查询)
 
  # dig ghq.js.com
 
  送出domain name的查询封包至name server,后面参数可接IP address或domain name来获得name server所提供的相关讯息,同nslookup一样,dig也提供不同资料记录型态,例如MX…等等。
 
  (3)host
 
  host基本上也是dns的查询,后面可接IP address或domain name来获得对应的domain name或IP。
 
  # host ghq.js.com
 
  ghq.js.com has address 61.155.107.131
 
  三、DNS日常的安全管理维护
 
  针对BIND DNS服务软件的安全配置情况,我们要充分利用BIND自身已经实现的保护功能,加强BIND安全性,从而能抵御目前已知的BIND安全漏洞,并使潜在的安全漏洞所可能对服务器造成的影响尽可能地减少。这也是我们针对UNIX DNS日常管理维护非常重要的一项工作。
 
  从DNS服务器的安全运行管理可以考虑采用下面几种方法:
 
  1、采用多个域名服务器应付恶意攻击者,对DNS服务器进行拒绝服务攻击。
 
  如果纯粹从理论上出发,那么一台DNS服务器是完全可以完成所有任务的。当注册了一个域名以后,实际上可以最大为企业的域名设置6个DNS服务器名。如果主域名服务器被人攻击了,可以启用辅域名服务器,如果主辅域名服务器都被同时攻破了,也可以用第三台或第四台域名服务器进行工作,具体设置几个域名服务器可根据企业构建网络情况而设定。
 
  而对于广大的用户而言,当出现这种多个DNS服务器停止服务带来的唯一的影响就是查询域名的时候会延迟,因为它需要一个一个的去查询,直到找到最后的一个为止。
 
  2、启动BIND(DNS)安全选项来进行配置。
 
  named进程启动选项如下:
 
  -r:关闭域名服务器的递归查询功能(缺省为打开)。该选项可在配置文件的
 
  options中使用"recursion"选项覆盖。
 
  -u 和-g :定义域名服务器运行时所使用的UID和GID。 这用于丢弃启动时所需要的root特权。
 
  -t :指定当服务器进程处理完命令行参数后所要chroot()的目录。
 
  在options节中增加自定义的BIND版本信息,可隐藏BIND服务器的真正版本号。
 
  version "No know?";
 
  // version 8.2.3;
 
  此时如果通过DNS服务查询BIND版本号时,返回的信息就是"No know?"。
 
  要禁止DNS域名递归查询,在options(或特定的zone区域)节中增加:
 
  recursion no;
 
  fetch-glue no;
 
  要限制对DNS服务器进行域名查询的主机,在options(或特定的zone区域)节中增加:
 
  allow-query { };
 
  address_match_list是允许进行域名查询的主机IP列表,如"202.102.24.35; 61.132.57/24;"。
 
  要限制对DNS服务器进行域名递归查询的主机,在options(或特定的zone区域)节中增加:
 
  allow-recursion { };
 
  address_match_list是允许进行域名递归查询的主机IP列表,如 "202.102.24.35; 61.132.57/24;"。
 
  l 要限制对DNS服务器进行区域记录传输的主机,在options(或特定的zone区域)节中增加:
 
  allow-transfer { };
 
  address_match_list是允许进行区域记录传输的主机IP列表,如"202.102.24.35; 61.132.57/24;"。
 
  3、通过TSIG(Transaction Signature)对区域记录传输进行认证和校验。
 
  首先请确保BIND域名服务器软件已更新到最新版本,因为最新的BIND版本解决了在以前版本中发现的bug和/或安全漏洞。
 
  如果需要用TSIG签名来进行安全的DNS数据库手工更新,具体操作步骤很简单:
 
  ① 用BIND自带的dnskeygen工具生成TSIG密钥。
 
  # dnskeygen -H 128 -h -n tsig-key.
 
  则会生成两个文件,将它们放到本地域名服务器的配置文件中,记住要重启named守护进程。 然后将这两个密钥文件复制到客户端系统(或辅助域名服务器),例如为/etc/tsig目录。最后运行如下命令即可:
 
  nsupdate -k /etc/tsig:tsig-key.
 
  ② 如果需要对区域记录传输(自动或手工)进行TSIG签名,则有两种方法:
 
  第一种方法:用dnskeygen生成TSIG密钥,方法同上。
 
  第二种方法:主域名服务器配置文件的内容(节选)如下:
 
  // 定义认证的方法和共享密钥
 
  key master-slave {
 
  algorithm hmac-md5;
 
  secret "mZiMNOUYQPMNwsDzrX2ENw==";
 
  };
 
  // 定义辅助域名服务器的一些特性
 
  server 61.132.62.137 {
 
  transfer-format many-answers;
 
  keys { master-slave; };
 
  };
 
  // 区域记录定义
 
  zone "ghq.js.com"
 
  type master;
 
  file ghq.js.com
 
  allow-transfer { 61.132.62.137; };
 
  };
 
  总之,我们在对BIND进行安全增强配置的基础上,仍然需要密切关注最新的安全公告、安全补丁和安全技术,要经常向有关的安全专家请教,再辅以必要的安全产品和安全服务,才能更充分地保护好企业的网络UNIX 系统日志,抵御各种恶意攻击,确保UNIX系统环境下DNS服务器正常安全稳定的运行。
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章