全球云服务器测评

Linux常见问题解决方案

CentOS系统BIND DNS服务器搭建指南

2025-07-15 | 分类: Linux常见问题解决方案 | 查看: 5

一、DNS服务概述

DNS(Domain Name System)是互联网核心基础设施,采用分布式数据库架构实现域名与IP地址的映射关系。其特点包括:

分层树状结构管理(根域→顶级域→二级域)

UDP 53端口用于查询,TCP 53用于区域传输

支持正向解析(A/AAAA记录)和反向解析(PTR记录)

二、安装BIND服务

1. 安装软件包

# CentOS 7/8:

sudo yum install bind bind-utils -y

# CentOS Stream/Rocky Linux 9:

sudo dnf install bind bind-utils -y

2. 服务管理

# 启动服务并设置开机自启

sudo systemctl enable --now named

# 验证服务状态

sudo systemctl status named -l

三、安全加固配置

1. 主配置文件(/etc/named.conf)

options {

    listen-on port 53 { 127.0.0.1; 192.168.1.1; };  // 限制监听IP

    listen-on-v6 { none; };                          // 禁用IPv6(按需)

    directory       "/var/named";

    dump-file       "/var/named/data/cache_dump.db";

    statistics-file "/var/named/data/named_stats.txt";

    memstatistics-file "/var/named/data/named_mem_stats.txt";

    allow-query     { localhost; 192.168.1.0/24; };  // 访问控制

    recursion no;                                    // 禁止开放递归

    allow-transfer  { none; };                       // 禁止区域传输

    dnssec-enable yes;                               // 启用DNSSEC

    dnssec-validation yes;

};

 

logging {

    channel security_log {

        file "/var/log/named/security.log" versions 3 size 30m;

        severity dynamic;

        print-time yes;

    };

    category security { security_log; };

};

2. 创建专用用户(安全隔离)

sudo useradd -r -d /var/named -s /sbin/nologin namedsudo chown -R named:named /var/named

四、区域文件配置

1. 正向解析配置

# /etc/named.rfc1912.zones 追加:

zone "example.com" IN {

    type master;

    file "example.com.zone";

    allow-update { none; };

    notify no;

};

# /var/named/example.com.zone 示例:

$ORIGIN example.com.$TTL 86400

@       IN SOA  ns1.example.com. admin.example.com. (

                2024071501  ; Serial (YYYYMMDDNN)

                3600        ; Refresh

                900         ; Retry

                604800      ; Expire

                86400 )     ; Minimum

        IN NS   ns1.example.com.

        IN MX 10 mail.example.com.

 

ns1     IN A    192.168.1.1

www     IN A    192.168.1.2

mail    IN A    192.168.1.3

api     IN CNAME www

2. 反向解析配置

# /etc/named.rfc1912.zones 追加:

zone "1.168.192.in-addr.arpa" IN {

    type master;

    file "192.168.1.rev";

};

# /var/named/192.168.1.rev 示例:

$TTL 86400

@ IN SOA ns1.example.com. admin.example.com. (

        2024071501

        3600

        900

        604800

        86400 )

    IN NS ns1.example.com.

 

1 IN PTR ns1.example.com.

2 IN PTR www.example.com.

3 IN PTR mail.example.com.

五、配置验证与测试

1. 配置文件检查

sudo named-checkconfsudo named-checkzone example.com /var/named/example.com.zonesudo named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.rev

2. 客户端测试

# 临时测试(不修改系统配置)

dig @192.168.1.1 www.example.com

nslookup -type=soa example.com 192.168.1.1

六、高级安全配置

TSIG密钥认证(用于安全区域传输):

dnssec-keygen -a HMAC-SHA256 -b 256 -n HOST example-transfer

响应策略区(RPZ)

options {

  response-policy { zone "malware"; };

};

 

zone "malware" {

  type master;

  file "malware.zone";

};

七、维护与监控

日志分析

sudo tail -f /var/log/named/security.log

性能监控

rndc statscat /var/named/data/named_stats.txt

配置备份

sudo tar czvf /backup/named_config_$(date +%F).tar.gz /etc/named* /var/named

八、故障排查指南

问题现象

排查命令

服务启动失败

journalctl -xenamed-checkconf

解析超时

tcpdump -i eth0 port 53

记录不生效

dig +trace example.com

拒绝服务

rndc querylog开启详细日志




最佳实践建议

使用chroot环境运行BIND(通过yum install bind-chroot

定期更新BIND软件以修复安全漏洞

为不同业务域创建独立视图(view)实现隔离

监控DNS查询量,防范DDoS攻击

此配置方案已在CentOS 7/8/Stream和Rocky Linux 9环境验证,适用于企业级生产环境部署。

 


目前有0 条留言

发表留言