Linux上安装DNS服务器之bind和bind-chroot配置详解

Lear 2025-07-02 10:00:00
Categories: Tags:

Linux上安装DNS服务器之bind和bind-chroot配置详解

BIND 9和bind-chroot的关系和作用

BIND 9是一款功能强大的开源DNS(域名系统)软件,是目前使用最广泛的DNS软件之一。

bind-chroot是与BIND(Berkeley Internet Name Domain)DNS服务器相关的一个安全特性。

bind-chroot的主要作用是为BIND提供chroot功能,即将BIND进程限制在自己的家目录下运行。这样做可以防止由于错误的权限设置或漏洞导致的安全问题影响到整个系统。通过chroot,BIND进程无法访问其家目录之外的文件系统,从而减少了潜在的安全风险。以下是bind-chroot的安装使用步骤:

一、BIND 9的安装

在不同的操作系统上,BIND 9的安装方法有所不同。以Debian/Ubuntu和RHEL/CentOS为例:

  1. sudo yum install bind-chroot bind-util -y

二、BIND 9的配置

BIND 9的配置文件通常位于/etc/bind(Debian/Ubuntu)或/etc/named(RHEL/CentOS)目录中。主要配置文件是named.conf。

  1. cp -R /usr/share/doc/bind-*/sample/var/named/* /var/named/chroot/var/named/
  2. touch /var/named/chroot/var/named/data/cache_dump.db
  3. touch /var/named/chroot/var/named/data/named_stats.txt
  4. touch /var/named/chroot/var/named/data/named_mem_stats.txt
  5. touch /var/named/chroot/var/named/data/named.run
  6. mkdir /var/named/chroot/var/named/dynamic
  7. touch /var/named/chroot/var/named/dynamic/managed-keys.bind
  8. chmod -R 777 /var/named/chroot/var/named/data
  9. chmod -R 777 /var/named/chroot/var/named/dynamic
  10. cp -p /etc/named.conf /var/named/chroot/etc/named.conf

1. 全局选项配置

在named.conf文件中,可以设置DNS服务器的全局选项,如:

  1. options {
  2. directory “/var/cache/bind”;
  3. recursion yes;
  4. allow-query { any; };
  5. forwarders { 8.8.8.8; 8.8.4.4; };
  6. };

上述配置允许递归查询,允许任何人查询,并使用Google公共DNS服务器作为上游服务器。

2. 区域文件配置

在named.conf文件中,可以添加新的区域。例如:

  1. zone “linux66.cn” {
  2. type master;
  3. file “linux.cn.zone”;
  4. };

然后,在相应的目录中创建一个名为/var/named/chroot/var/named/linux66.cn.zone的新文件,并添加DNS记录。例如:

  1. $TTL 86400
  2. @ IN SOA linux66.cn. hostmaster.linux66.cn. (
  3. 2024111501 ; Serial
  4. 3600 ; Refresh
  5. 1800 ; Retry
  6. 604800 ; Expire
  7. 86400 ) ; Minimum
  8. ; Define the nameservers and the mail servers
  9. @ IN NS ns1.linux66.cn.
  10. @ IN A 127.0.0.1
  11. www IN A 111.229.201.106

三、启动BIND 9

在修改配置文件后,需要重启BIND 9以使更改生效。在RHEL/CentOS上,使用以下命令重启BIND 9:

/usr/libexec/setup-named-chroot.sh /var/named/chroot on

systemctl start named-chroot

systemctl enable named-chroot

systemctl status named-chroot

附件:

Linux BIND是一款开源的完全免费的DNS服务,其可以在各类Linux服务器上轻松搭建出DNS解析系统,实现DNS解析功能。

Bind软件主要安装包

bind——DNS的主程序包

bind-chroot——为bind提供一个伪装的根目录以增强安全性工具。

bind-utils——提供了对DNS服务器的测试工具程序,包括dig、host与nslookup等。 (系统默认安装 )

bind-libs—— 进行域名解析必备的库文件 (系统默认安装 )

yum 安装

yum install -y bind bind-chroot bind-utils

Bind服务启动与关闭

systemctl start named #开启named服务

systemctl restart named #重启named服务

systemctl stop named #关闭named服务

systemctl status named #查看named服务状态

systemctl enable named #开机自启动named服务

配置文件的位置及名称作用

全局配置文件:/etc/named.conf 设置一般的name参数,指向该服务器使用的域数据库的信息源

区域配置文件:/etc/named.rfc1912.zones 用于定义各解析区域特征的文件

正向解析数据库文件样本:/var/named/localdomain.zone 将域名映射为IP地址的文件

反向解析数据库文件样本:/var/named/named.zero 将IP地址映射为域名的文件

根域地址数据库文件:/var/named/named.ca 记录了Internet中13台根域服务器的IP地址等相关信息

客户端配置文件:/etc/resolv.conf 指定本机DNS服务器的IP地址的配置文件

• 主配置文件:/etc/named.conf

• options{ };——说明全局参数

• logging{ };——为域名服务器设置日志选项

• zone “.” IN { };——根域文件参数;

• include “/etc/named.rfc1912.zones”;——其他域配置文件

• 区域配置文件:/etc/named.rfc1912.zones

• zone “ZONE_NAME“:定义解析库名字,通常和解析库文件前缀对应起来。

• type:

master:主dns解析

slave:从dns解析

hint:根域名解析(根提示域)

forward:转发,转发不使用file

• file :定义区域解析库文件名字(位置默认在/var/named下面),file的前缀通常和zone的名字通常对应起来,然后加一个.zone的后缀。

• 域解析目录:/var/named/

正向域解析文件

• 可参考文件/var/named/named.localhost;

$TTL 1D #域的默认生存时间TTL

@ IN SOA @ rname.invalid. ( #@代表当前域;IN代表地址类别;SOA指定授权服务器,一般是主域名服务器;

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS @ #NS代表标识域名服务器

MX @ #MX标识邮件服务器域名

A 127.0.0.1 #A代表服务器主机名对应IP地址

AAAA ::1 #AAAA代表服务器主机名对应IPv6地址

反向域解析文件

• 可参考文件/var/named/named.loopback;

PTR标识服务器IP对应的域名