在做软件样本分析的时候(主要是该样本的网络流量的分析),不可避免的会需要自己架设一个DNS服务器以配合IP欺骗的技术来试图获取软件样本的网络流量。下面就将以CentOS 5.2为例介绍一下在Linux上架设DNS服务器的办法。
安装bind
Linux下的dns功能是通过bind软件实现的。在CentOS下面安装bind很方便:
yum install bind
相关的配置文件
1./etc/hosts
定义了主机名和ip地址的对应,其中也有将要运行dns这台电脑的ip地址和主机名。初始内容如下:
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 TestServer localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
2. /etc/host.conf
当系统中同时存在DNS域名解析和/etc/hosts主机表机制时,由该/etc/host.conf确定主机名解释顺序。示例:
order hosts,bind #名称解释顺序 multi on #允许主机拥有多个IP地址 nospoof on #禁止IP地址欺骗
3. /etc/resolv.conf
该文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。resolv.conf的关键字主要有四个,分别是:
nameserver #定义DNS服务器的IP地址
domain #定义本地域名
search #定义域名的搜索列表
sortlist #对返回的域名进行排序
/etc/resolv.conf的一个示例:
domain ringkee.com search ringkee.com nameserver 202.96.128.86 nameserver 202.96.128.166
4. /etc/named.conf
这个文件是bind的主配置文件。这个文件比较复杂,我们先看一个例子,然后再逐段解释。
需要注意的是对于在CentOS里面自带的bind因为启动脚本更改了根目录的原因,在这里以及后面提到的所有文件的存放路径都是相对于/var/named/chroot/目录来说的,比如这里的/etc/named.conf的真实路径为/var/named/chroot/ect/named.conf。
/* * log option */ logging { channel default_syslog { syslog local2; severity error; }; channel audit_log { file "/var/log/named.log"; severity error; print-time yes; }; category default { default_syslog; }; category general { default_syslog; }; category security { audit_log; default_syslog; }; category config { default_syslog; }; category resolver { audit_log; }; category xfer-in { audit_log; }; category xfer-out { audit_log; }; category notify { audit_log; }; category client { audit_log; }; category network { audit_log; }; category update { audit_log; }; category queries { audit_log; }; category lame-servers { audit_log; }; }; options { directory "/var/named"; }; zone "." { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; zone "linuxidc.com" { type master; file "linuxidc.com.zone"; }; zone "1.168.192.in-addr.arpa" { type master; file "linuxidc.com.rev"; };
下面部分将逐段进行解释。
4.1 日志设定