Linux下DNS服务器的安装与配置

 在做软件样本分析的时候(主要是该样本的网络流量的分析),不可避免的会需要自己架设一个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 www.ringkee.com 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 "test.com" {
type master;
file "test.com.zone";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "test.com.rev";
};


下面部分将逐段进行解释。

4.1 日志设定

/*
* 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; };
};

这一部分是日志的设置,其中最主要的是 file "/var/log/named.log" 这一句指定了日志文件的位置,要正常启动named,必须要保证这一文件是存在的,并且named 进程对它有读写权限。

 

4.2 options

options {
directory "/var/named";
//    listen-on-v6 { any; };

/* 
 * If you've got a DNS server around at your upstream provider, enter
 * its IP address here, and enable the line below.  This will make you
 * benefit from its cache, thus reduce overall DNS traffic in the Internet.
 */
//forwarders {
//  your.upper.DNS.address;
//};

/*
 * If there is a firewall between you and nameservers you want
 * to talk to, you might need to uncomment the query-source
 * directive below.  Previous versions of BIND always asked
 * questions using port 53, but BIND 8.1 uses an unprivileged
 * port by default.
 */
// query-source address * port 53;

/*
 * If running in a sandbox, you may have to specify a different
 * location for the dumpfile.
 */
//dump-file "/etc/named_dump.db";
};

这一部分是一些基本的配置项:

directory "/etc/named"; 指定域名解析等文件的存放目录(须手动建立);

listen-on-v6 { any; }; 支持ipv6的请求;

forwarders {

your.upper.DNS.address;

}; 指定前向DNS,当本机无法解析的域名,就会被转发至前向DNS进行解析。

dump-file "/etc/named_dump.db"; 指定named_dump.db文件的位置。

 

4.3线索域和回环域

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; };
};


 

指定线索域和本地回环域,这一部分使用一些标准的例子就可以。

在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:

master:表示定义的是主域名服务器

slave :表示定义的是辅助域名服务器

hint:表示是互联网中根域名服务器

 

文件“named.ca”; 指定该域的解析文件,其目录为options中directory "/var/named";指定的。在本例中为/var/namd。如果缺少named.ca,可以试试看从这里下载:ftp://ftp.rs.internic.net/domain/named.root

或者是使用如下命令产生一份named.ca:

dig -t NS . > named.ca

[注:如果根节点查询不全则可以使用一下命令]

dig -t NS  .  @a.root-servers.net  > named.ca

 

文件“localhost.zone”定义了回环域的正向解析文件,其内容可以为:

$TTL   86400   //全局ttl值.以下记录不指定,则使用全局值
localhost.  600  IN  SOA  localhost.  admin.localhost. ( 
2011081601 //序列号 版本号
1H         //H小时 M分钟 D天 W星期 默认为秒
10M        //重试时间间隔
7D         //过期时间  7D找不到主服务器 则自杀
1D )       //否定回答ttl值
    IN   NS                   localhost.
localhost.          IN    A                    172.0.0.1

 

文件“named.local”定义了回环域的反向解析文件,其内容可以为:

$TTL 86400
@	600 IN	SOA	localhost.  admin.localhost. (
2011081601
1H
10M
7D
1D )
    IN       NS     localhost.
1   IN      PTR     localhost.

 

关于正向解析文件与反向解析文件的内容会在后文中进行详细解释。

4.4 自定义域

zone "test.com" {
type master;
file "test.com.zone";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "test.com.rev";
};

这一部分是配置文件中我们需要重点关心的部分:

zone "test.com" {

type master;

file "test.com.zone";

}; 设定test.com域;

type master 指明该域主要由本机解析;

file " test.com.zone"指定其解析文件为test.com.zone,目录为options中设定的目录本例中为/etc/named。

zone "0.168.192.in-addr.arpa" {

type master;

file "test.com.rev";

}; 指定ipv4地址逆向解析

type master 指明该域主要由本机解析;

file "test.com.rev"指定其解析文件为test.com.rev,目录为options中设定的目录本例中为/etc/named。

 

至此我们就初步建立了一个标准的named 的主配置文件,接下来建立对应的域名解析或逆向解析文件。

 

5. 域名解析文件

在named.conf的自定义域中指定了自定义域的域名解析文件,在我们的例子中,test.com这个域的解析文件是test.com.zone,下面来看看test.com.zone的内容:

@ IN SOA ns.test.com. root.test.com(
    2005030116; Serial
    3600 ; Refresh
    900 ; Retry
    3600000 ; Expire
    3600 ) ; Minimum
    IN NS ns

ns  IN A 192.168.0.1
linux IN A 192.168.0.2
www IN CNAME linux

在这行里面@ IN SOA ns.test.com. root.test.com

上面的IN表示后面的数据使用的是INTERNET标准。而@则代表相应的域名,如在这里代表test.com,即表示一个域名记录定义的开始。而 ns.test.com则是这个域的主域名服务器,而root.test.com则是管理员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@。而SOA表示授权的开始。

Serial行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。

Refresh定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的。

Retry值规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试。

Expire这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的。

Minimum这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记录

 

    IN NS ns

这一行必须有,指定本域的域名解析服务器。注意这一行前面必须有空格或者TAB

 

接下来的三行制定了本域的主机

ns  IN A 192.168.0.1

ns 为主机名,A 代表地址类型为IPV4地址,192.168.0.1 是实际ip地址,这一条记录的含义是ns.test.com 的ip地址为 192.168.0.1;同理,linux.test.com的ip地址为192.168.0.2。

www IN CNAME linux

这一行定义了一个别名。即www.test.com与linux.test.com指的是同一个主机。

6. 反向域名解析文件

在named.conf的自定义域中除了指定了自定义域的域名解析文件,还需要指定自定义域的反向域名解析文件。它让dns服务器提供由ip地址查找主机名的服务。由于一些程序会要求反向查询,所以反向查询域的记录文件最好不要省略。在我们的例子中,test.com这个域的反向域名解析文件是test.com.rev,下面来看看test.com.rev的内容:

@ IN SOA ns.test.com. root.test.com (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
    IN NS ns

1 IN PTR ns.test.com.
2 IN PTR linux.test.com.

 

在反向域名解析文件中,@ IN SOA ns.test.com. root.test.com这个部分各自字段含义与正向域名解析文件一致。

 

最后2行定义了反向域名解析中ip与域名的对应关系。

第一列表示的是主机的IP地址。省略了网络地址部分。如1完整应该是:192.168.0.1。

PTR:表示反向记录

最后一列表示的是主机的域名。

 

7.语法检查

#named-checkconf     

     //检测区域文件语法错误,不检测逻辑错误.

#named-checkzone   "localhost" /var/named/localhost.zone

     //检查localhost文件

#named-checkzone   "0.0.127.in-addr.arpa" /var/named/named.local

     //检查named.local文件

 

8.杂项

启动服务:

#service named start

 

设置域名解析服务开机自动启动:

chkconfig --level 2345 named on

 

设置新建的DNS服务器为本机的DNS服务器:

修改/etc/resolv.conf 将nameserver 后改为本机IP地址

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux配置DNS服务器需要进行以下步骤: 1. 安装DNS服务器软件,如BIND(Berkeley Internet Name Domain)。 2. 配置DNS服务器的主配置文件,一般为/etc/named.conf,其中需要指定DNS服务器的域名、IP地址、转发器等信息。 3. 配置DNS服务器的区域文件,一般为/var/named/目录下的文件,包括正向解析和反向解析的信息。 4. 启动DNS服务器并测试,可以使用nslookup或dig命令进行测试。 需要注意的是,DNS服务器配置需要根据实际情况进行调整,如域名、IP地址、转发器等信息需要根据网络拓扑和需求进行设置。 ### 回答2: 在Linux操作系统中,可以使用多种软件来配置DNS服务器,如BIND(Berkeley Internet Name Domain),PowerDNS,djbdns等。本文以BIND为例进行介绍。 1. 安装BIND软件 可以通过命令行或者GUI界面来安装,以CentOS为例,命令为sudo yum install bind bind-utils。 2. 配置BIND 在CentOS系统中,BIND的配置文件为/etc/named.conf。该文件中包含了整个DNS服务器配置信息。可以根据实际需要添加或者修改以下部分: zone "example.com" { type master; file "/var/named/example.com.zone"; //解析文件位置 }; zone "0.0.10.in-addr.arpa" { type master; file "/var/named/rev.0.0.10.in-addr.arpa.zone"; //反向解析文件位置 }; 其中,example.com是想要解析的域名,0.0.10.in-addr.arpa是IPv4地址的反向区域的名称,1.168.192是子网ID。 3. 创建解析文件 在上面配置中指定了解析文件的位置,现在需要创建这个文件。可以使用任何文本编辑器打开一个新文件,然后按照以下格式添加记录: @ IN SOA ns1.example.com. root.example.com. ( 1 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) example.com. IN NS ns1.example.com. ns1.example.com. IN A 192.168.0.10 www.example.com. IN A 192.168.0.20 其中,@表示域名的根节点,SOA记录是一个必需的资源记录类型,NS表示DNS服务器所属的域名,A表示域名所对应的IP地址。 4. 启动DNS服务并测试 可以使用systemctl start named来启动DNS服务,在浏览器中输入example.com或者www.example.com验证配置是否生效。 PS:以上仅为配置DNS服务器的基本步骤,根据实际情况和需求进行相应的修改和扩展。 ### 回答3: DNS(Domain Name System)是一个用于将域名转换为IP地址的网络系统,它通过将IP地址和主机名字联系起来来帮助用户在互联网上查找计算机和服务。 在Linux系统中,一般使用BIND(Berkeley Internet Name Domain)软件来搭建DNS服务器。下面将介绍在Linux系统中如何配置DNS服务器: 1. 安装BIND软件 使用以下命令来安装BIND软件: ``` sudo apt-get install bind9 ``` 2. 配置BIND BIND的配置文件位于/etc/bind/目录下。其中named.conf是主配置文件,由此文件引用其他配置文件。在这个文件中,需要定义DNS服务器的域名、主机名、监听IP地址和端口号等参数。可以使用以下命令来打开该文件: ``` sudo nano /etc/bind/named.conf ``` 在named.conf文件中,可以配置多个zone,每个zone表示一个域名。可以使用以下命令来打开一个zone的配置文件: ``` sudo nano /etc/bind/db.example.com ``` 其中example.com表示需要配置的域名,打开该文件后,可以配置该域名的SOA(Start of Authority)记录、NS(Name Server)记录、MX(Mail Exchanger)记录、A(Address)记录和CNAME(Canonical Name)记录等信息。 3. 启动BIND服务 配置完毕后,可以使用以下命令来启动BIND服务: ``` sudo service bind9 start ``` 4. 测试DNS服务器Linux系统中,可以使用以下命令来测试DNS服务器是否正常: ``` nslookup example.com ``` 其中example.com表示需要查询的域名,如果DNS服务器能够正确解析域名,将输出该域名对应的IP地址。 需要注意的是,配置DNS服务器需要一定的专业知识和经验,为了确保服务器的安全性和稳定性,建议在专业人员的指导下进行配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值