凌峰创科服务平台

CentOS 6.5 DNS服务器如何搭建配置?

本指南将使用 BIND (Berkeley Internet Name Daemon),这是在 Linux 上最常用、最强大的 DNS 服务器软件。

CentOS 6.5 DNS服务器如何搭建配置?-图1
(图片来源网络,侵删)

重要前提:使用 CentOS 6.5 的风险

在开始之前,请务必了解:

  • 停止安全更新:CentOS 6.5 的生命周期早已结束,官方不再提供任何安全补丁,将其连接到互联网会使您的系统极易受到攻击。
  • 软件包老旧:您将安装的软件包版本非常旧,可能存在已知的漏洞和功能限制。
  • 仅限学习和测试强烈建议仅在隔离的测试环境中进行此操作,切勿用于任何生产环境。

第一步:安装 BIND DNS 服务器

通过 SSH 登录到您的 CentOS 6.5 服务器。

  1. 更新系统软件包列表(可选,但推荐)

    yum check-update
  2. 安装 BIND 及其相关工具 我们需要安装 bind (服务器核心)、bind-utils (客户端查询工具,如 dig, nslookup) 和 bind-chroot (将 BIND 运行在一个 chroot 监狱中,增强安全性)。

    CentOS 6.5 DNS服务器如何搭建配置?-图2
    (图片来源网络,侵删)
    yum install bind bind-utils bind-chroot -y

    安装过程中,系统可能会提示您导入 GPG 密钥,输入 y 确认即可。


第二步:配置 BIND

BIND 的主要配置文件是 named.conf,使用 chroot 后,实际的工作目录会变为 /var/named/chroot/,所以配置文件路径也会相应改变。

  1. 进入配置目录

    cd /var/named/chroot/etc
  2. 备份原始主配置文件 这是一个好习惯,以防配置出错可以恢复。

    CentOS 6.5 DNS服务器如何搭建配置?-图3
    (图片来源网络,侵删)
    cp named.conf named.conf.original
  3. 编辑主配置文件 named.conf 使用 vinano 编辑器打开文件。

    vi named.conf

    删除或注释掉文件中所有以 开头的默认行,然后添加以下基本配置,这个配置将告诉 BIND 从哪里加载区域文件。

    //
    // named.conf
    //
    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
    // server as a caching only nameserver (as a localhost DNS resolver only).
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    //
    options {
        // 在 chroot 环境中,这些路径是相对于 /var/named/chroot/ 的
        directory       "/var/named";   // 区域文件存放的目录
        // 允许哪些主机查询我们的 DNS 服务器
        // localhost 允许本机查询
        // 192.168.1.0/24 允许局域网内的主机查询 (请根据您的网段修改)
        allow-query      { localhost; 192.168.1.0/24; };
        // 允许哪些主机进行 DNS 递归查询 (通常只信任内网)
        allow-recursion { localhost; 192.168.1.0/24; };
        // 防止 DNS 放大攻击
        version "not currently used";
        recursion yes;
    };
    // 定义一个日志文件,记录 DNS 查询信息
    logging {
        channel default_debug {
            file "data/named.run";
            severity dynamic;
        };
    };
    // 将本机定义为根域的 DNS 服务器(用于缓存)
    zone "." IN {
        type hint;
        file "named.ca";
    };
    // 将 localhost 的反向解析指向 named.localhost
    zone "localhost" IN {
        type master;
        file "named.localhost";
    };
    zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
    };
    // --- 在这里添加您自己的正向和反向区域 ---
    // 示例:假设我们的域名是 example.com,网段是 192.168.1.0/24
    zone "example.com" {
        type master;
        file "example.com.zone"; // 正向区域文件名
    };
    zone "1.168.192.in-addr.arpa" {
        type master;
        file "192.168.1.zone";   // 反向区域文件名
    };

    配置说明

    • allow-query: 定义了可以向我们这个 DNS 服务器发起查询请求的客户端 IP 地址范围,为了安全,不要设置为 any;
    • zone "example.com": 定义了一个名为 example.com正向区域
    • zone "1.168.192.in-addr.arpa": 定义了一个反向区域,用于根据 IP 地址查询域名。168.192.in-addr.arpa168.1.x 的标准 DNS 反向写法。

第三步:创建区域文件

我们需要为刚才在 named.conf 中定义的区域创建数据文件,这些文件也存放在 /var/named/chroot/var/named/ 目录下。

创建正向区域文件 (example.com.zone)

cd /var/named/chroot/var/named
vi example.com.zone
$TTL 1D    ; 1天的生存时间
@   IN  SOA ns1.example.com. admin.example.com. (
        2025051501  ; 序列号 (每次修改区域后必须递增)
        1H          ; 刷新间隔 (1小时)
        10M         ; 重试间隔 (10分钟)
        1W          ; 过期时间 (1周)
        3H )        ; 负缓存时间 (3小时)
    IN  NS  ns1.example.com.    ; 定义此域的权威名称服务器
    IN  MX  10 mail.example.com. ; 定义邮件交换记录
; 定义主机记录 (A记录)
ns1         IN  A   192.168.1.10    ; DNS 服务器自身的 IP
www         IN  A   192.168.1.20    ; Web 服务器的 IP
mail        IN  A   192.168.1.30    ; 邮件服务器的 IP

创建反向区域文件 (168.1.zone)

vi 192.168.1.zone
$TTL 1D
@   IN  SOA ns1.example.com. admin.example.com. (
        2025051501
        1H
        10M
        1W
        3H )
    IN  NS  ns1.example.com.
; 定义指针记录
10          IN  PTR ns1.example.com.
20          IN  PTR www.example.com.
30          IN  PTR mail.example.com.

文件权限:BIND 进程 (named) 需要能够读取这些文件,确保它们的属主是 named,并且组也是 named

chown named:named example.com.zone 192.168.1.zone

第四步:启动和测试 DNS 服务

  1. 启动 BIND 服务

    service named start
  2. 设置开机自启

    chkconfig named on
  3. 检查服务状态

    service named status

    如果看到 named (pid 1234) is running...,则表示服务已成功启动。

  4. 防火墙设置 CentOS 6.5 默认使用 iptables 防火墙,需要开放 TCP 和 UDP 的 53 端口。

    # 添加规则
    iptables -I INPUT -p tcp --dport 53 -j ACCEPT
    iptables -I INPUT -p udp --dport 53 -j ACCEPT
    # 保存规则
    service iptables save
    # 或者
    /etc/init.d/iptables save
  5. 测试 DNS 解析

    在服务器上或同一局域网内的另一台 Linux 机器上,临时将 DNS 服务器指向你的新 DNS:

    # 编辑 /etc/resolv.conf
    vi /etc/resolv.conf

    添加或修改为:

    nameserver 192.168.1.10  # 替换为你的 DNS 服务器 IP

    使用 dig 命令测试

    # 测试正向解析
    dig @192.168.1.10 www.example.com
    # 测试
分享:
扫描分享到社交APP
上一篇
下一篇