热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

在做软件样本分析的时候(主要是该样本的网络流量的分析),不可避免的会需要自己架设一个DNS服务器以配合IP欺骗的技术来试图获取软件样本的网络流量。下面就将以CentOS5.2为例介绍一下在Linux上架设DNS服务器的办法。安装bindLinux下的dns功能是通过bind
在做软件样本分析的时候(主要是该样本的网络流量的分析),不可避免的会需要自己架设一个DNS服务器以配合IP欺骗的技术来试图获取软件样本的网络流量。下面就将以CentOS 5.2为例介绍一下在Linux上架设DNS服务器的办法。

安装bind

Linux下的dns功能是通过bind软件实现的。在CentOS下面安装bind很方便:

yum install bind

相关的配置文件

1./etc/hosts

定义了主机名和ip地址的对应,其中也有将要运行dns这台电脑的ip地址和主机名。初始内容如下:

  1. # Do not remove the following line, or various programs  
  2. # that require network functionality will fail.  
  3. 127.0.0.1               TestServer localhost.localdomain localhost  
  4. ::1             localhost6.localdomain6 localhost6  

2. /etc/host.conf

当系统中同时存在DNS域名解析和/etc/hosts主机表机制时,由该/etc/host.conf确定主机名解释顺序。示例:

  1. order hosts,bind    #名称解释顺序  
  2. multi on            #允许主机拥有多个IP地址  
  3. nospoof on          #禁止IP地址欺骗  

3. /etc/resolv.conf

该文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。resolv.conf的关键字主要有四个,分别是:

nameserver   #定义DNS服务器的IP地址

domain       #定义本地域名

search       #定义域名的搜索列表

sortlist     #对返回的域名进行排序

/etc/resolv.conf的一个示例:

  1. domain ringkee.com  
  2. search www.ringkee.com ringkee.com  
  3. nameserver 202.96.128.86  
  4. nameserver 202.96.128.166  

4. /etc/named.conf

这个文件是bind的主配置文件。这个文件比较复杂,我们先看一个例子,然后再逐段解释。

需要注意的是对于在CentOS里面自带的bind因为启动脚本更改了根目录的原因,在这里以及后面提到的所有文件的存放路径都是相对于/var/named/chroot/目录来说的,比如这里的/etc/named.conf的真实路径为/var/named/chroot/ect/named.conf。

  1. /*  
  2. * log option  
  3. */  
  4. logging {   
  5. channel default_syslog { syslog local2; severity error; };  
  6. channel audit_log { file "/var/log/named.log"; severity error; print-time yes; };  
  7. category default { default_syslog; };   
  8. category general { default_syslog; };   
  9. category security { audit_log; default_syslog; };   
  10. category config { default_syslog; };   
  11. category resolver { audit_log; };   
  12. category xfer-in { audit_log; };   
  13. category xfer-out { audit_log; };   
  14. category notify { audit_log; };   
  15. category client { audit_log; };   
  16. category network { audit_log; };   
  17. category update { audit_log; };   
  18. category queries { audit_log; };   
  19. category lame-servers { audit_log; };  
  20. };  
  21.   
  22. options {  
  23. directory "/var/named";  
  24.   
  25. };  
  26.   
  27. zone "." {  
  28. type hint;  
  29. file "named.ca";  
  30. };  
  31. zone "localhost" IN {  
  32.   type master;  
  33.   file "localhost.zone";   
  34. };  
  35. zone "0.0.127.in-addr.arpa" IN {  
  36.    type master;  
  37.    file "named.local";   
  38.    allow-update { none; };  
  39. };  
  40.   
  41. zone "linuxidc.com" {  
  42. type master;  
  43. file "linuxidc.com.zone";  
  44. };  
  45. zone "1.168.192.in-addr.arpa" {  
  46. type master;  
  47. file "linuxidc.com.rev";  
  48. };  

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

4.1 日志设定

  1. /*  
  2. * log option  
  3. */  
  4. logging {   
  5. channel default_syslog { syslog local2; severity error; };  
  6. channel audit_log { file "/var/log/named.log"; severity error; print-time yes; };  
  7. category default { default_syslog; };   
  8. category general { default_syslog; };   
  9. category security { audit_log; default_syslog; };   
  10. category config { default_syslog; };   
  11. category resolver { audit_log; };   
  12. category xfer-in { audit_log; };   
  13. category xfer-out { audit_log; };   
  14. category notify { audit_log; };   
  15. category client { audit_log; };   
  16. category network { audit_log; };   
  17. category update { audit_log; };   
  18. category queries { audit_log; };   
  19. category lame-servers { audit_log; };  
  20. };  

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

4.2 options

  1. options {  
  2. directory "/var/named";  
  3. //    listen-on-v6 { any; };  
  4.   
  5. /*   
  6.  * If you've got a DNS server around at your upstream provider, enter  
  7.  * its IP address here, and enable the line below.  This will make you  
  8.  * benefit from its cache, thus reduce overall DNS traffic in the Internet.  
  9.  */  
  10. //forwarders {  
  11. //  your.upper.DNS.address;  
  12. //};  
  13.   
  14. /*  
  15.  * If there is a firewall between you and nameservers you want  
  16.  * to talk to, you might need to uncomment the query-source  
  17.  * directive below.  Previous versions of BIND always asked  
  18.  * questions using port 53, but BIND 8.1 uses an unprivileged  
  19.  * port by default.  
  20.  */  
  21. // query-source address * port 53;  
  22.   
  23. /*  
  24.  * If running in a sandbox, you may have to specify a different  
  25.  * location for the dumpfile.  
  26.  */  
  27. //dump-file "/etc/named_dump.db";  
  28. };  

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

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线索域和回环域

  1. zone "." {  
  2. type hint;  
  3. file "named.ca";  
  4. };  
  5. zone "localhost" IN {  
  6.   type master;  
  7.   file "localhost.zone";            //正向解析文件  
  8. };  
  9. zone "0.0.127.in-addr.arpa" IN {  
  10.    type master;  
  11.    file "named.local";              //反向解析文件  
  12.    allow-update { none; };  
  13. };  

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

在这里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”定义了回环域的正向解析文件,其内容可以为:

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

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

  1. $TTL 86400  
  2. @   600 IN  SOA localhost.  admin.localhost. (  
  3. 2011081601  
  4. 1H  
  5. 10M  
  6. 7D  
  7. 1D )  
  8.     IN       NS     localhost.  
  9. 1   IN      PTR     localhost.  

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

4.4 自定义域

  1. zone "linuxidc.com" {  
  2. type master;  
  3. file "linuxidc.com.zone";  
  4. };  
  5. zone "1.168.192.in-addr.arpa" {  
  6. type master;  
  7. file "linuxidc.com.rev";  
  8. };  

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

zone "linuxidc.com" {

type master;

file "linuxidc.com.zone";

}; 设定linuxidc.com域;

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

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

zone "0.168.192.in-addr.arpa" {

type master;

file "linuxidc.com.rev";

}; 指定ipv4地址逆向解析

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

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

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


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了在Linux系统中设置文件ACL权限的方法和使用说明,包括在centos7.3和centos6.9中开启ACL权限的两种方法:在挂载时指定打开ACL权限和修改默认的属性信息。同时提供了对ACL权限的详细解释和应用场景。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • Linux下安装依赖包版本高解决方法
    本文介绍了在Linux系统下,当已安装的依赖包版本高于需要安装的依赖包版本时,解决方法包括欺骗安装程序和修改相关配置文件等操作。针对不同情况,提供了不同的解决方案。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
author-avatar
手机用户2602914293
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有