RHEL 9/Rocky 9/Alma 9 上 BIND DNS 解析器设置全面指南
如何在 RHEL 9 发行版上使用 BIND 设置安全且优化的 DNS 解析器?

RHEL 9/Rocky 9/Alma 9 上 BIND DNS 解析器设置全面指南

本指南将帮助您在 RHEL 9、Rocky Linux 9 或 Alma Linux 9 上使用 BIND 设置安全且优化的 DNS 解析器。您将学习实用技巧、安全性和缓存优化,并可以降低延迟。.
0 股票
0
0
0
0

您想在 RHEL 9/ Rocky 9/ Alma 9 上设置安全的本地解析器吗?

本指南将引导您逐步完成以下操作: 解析器(本地解析器) 基于 绑定 基于分布 RHEL 9 喜欢 Rocky Linux 9Alma Linux 9 我们正在研究这个问题。目标是提供一个安全、可监控且经过优化的解析器,用于内部网络、云服务器和工作负载集群——非常适合需要降低延迟并提高 DNS 解析稳定性的网站管理员、DevOps 工程师、交易员、游戏玩家和 AI 团队。.

前提条件和初始安装

先决条件

  • 服务器 RHEL 9/Rocky Linux 9/Alma Linux 9 需要root或sudo权限。.
  • 需要互联网连接才能更新和下载 root 提示/转发器。.
  • 包裹 绑定绑定工具.

初始安装

请使用以下命令更新和安装 BIND:

sudo dnf update -y
sudo dnf install -y bind bind-utils
sudo systemctl enable --now named
sudo systemctl status named

检查基础文件并验证配置

重要文件和路径:

  • /etc/named.conf — 主配置
  • /var/named — 默认区域目录
  • /etc/rndc.key (在 rndc-confgen -a 之后)
  • /var/named/data — 日志和缓存转储

使用以下工具可以快速检查配置:

sudo named-checkconf
sudo named-checkzone example.com /var/named/example.com.zone

缓存解析器的推荐配置(基本)

/etc/named.conf 部分 选项 请按如下方式编辑。这是一个带有查询约束和转发器的本地解析器的工作示例:

options {
    directory "/var/named";
    listen-on port 53 { 127.0.0.1; 10.10.10.5; };
    listen-on-v6 { none; };
    allow-query { localhost; localnets; 10.10.10.0/24; };
    recursion yes;
    forwarders { 1.1.1.1; 8.8.8.8; };
    dnssec-validation auto;
    managed-keys-directory "/var/named/dynamic";
    minimal-responses yes;
    max-cache-ttl 86400;
    max-ncache-ttl 3600;
    rate-limit {
        responses-per-second 10;
        window 5;
    };
    auth-nxdomain no;
};

实用技巧:

  • 货运代理 可以分配给公司自身的 Anycast 解析器或 Cloudflare/Google;建议使用距离最近的位置以减少延迟。.
  • 最小反应 合理的 TTL 值可以减少流量并提高性能。.

RNDC密钥生成和远程管理

使用 RNDC 安全地管理 BIND。首先生成密钥,然后重启服务:

sudo rndc-confgen -a
sudo systemctl restart named
sudo rndc status

防火墙和 SELinux

在 firewalld 中打开端口

sudo firewall-cmd --permanent --add-port=53/udp
sudo firewall-cmd --permanent --add-port=53/tcp
sudo firewall-cmd --reload

SELinux 设置

如果您使用的是 SELinux,请使用以下命令设置上下文和权限:

sudo restorecon -Rv /var/named
sudo setsebool -P named_write_master_zones on
sudo semanage port -a -t dns_port_t -p tcp 53
sudo semanage port -a -t dns_port_t -p udp 53

加强安全保障:限制、监控和预防滥用行为

禁止未经授权的复制(区域转移)

使用 TSIG 密钥来防止在权威区域中发生未经授权的 AXFR 操作。以下示例展示了密钥定义和允许传输限制:

key "xfr-key" {
    algorithm hmac-sha256;
    secret "BASE64-SECRET";
};
zone "example.com" IN {
    type master;
    file "example.com.zone";
    allow-transfer { key "xfr-key"; };
};

DDoS攻击和速率限制解决方案

  • 速率限制 在选项中使用。.
  • 使用 RPZ(响应政策区) 屏蔽恶意域名。.
  • 在网络层面,利用反 DDoS 和任播/BGP 解决方案来分发恶意流量。.

DNSSEC 和验证

通过激活 DNSSEC验证自动解析器会检查 DNSSEC 签名,恶意响应将被拒绝。请确保已配置 managed-keys:

sudo ls /var/named/dynamic

监控、日志记录和故障排除

记录和旋转

BIND 默认会记录日志。 /var/named/data/ 管理文件 对数旋转 使用或重定向日志到 syslog/journal。.

功能命令

dig @10.10.10.5 example.com +stats
dig @10.10.10.5 google.com +short
sudo rndc flush
sudo named-checkconf
sudo named-checkzone example.com /var/named/example.com.zone
sudo systemctl status named
sudo journalctl -u named -f

高级场景:视图、分割水平和分布式服务器

分割地平线视图

对内部客户和外部客户采取不同的应对方式 浏览 使用示例:

acl "internal" { 10.10.10.0/24; localhost; };
view "internal" {
    match-clients { "internal"; };
    recursion yes;
    zone "example.com" {
        type master;
        file "zones/db.example.internal";
    };
};
view "external" {
    match-clients { any; };
    recursion no;
    zone "example.com" {
        type master;
        file "zones/db.example.public";
    };
};

地理分布和任意播

对于低延迟要求的服务(例如交易平台、游戏玩家),在不同位置部署解析器并使用任播/BGP 协议可以获得最佳效果。提供此解决方案的公司拥有超过 全球85个地点 以及用于部署分布式解析器、DDoS 防护和 BGP 连接的 Anycast 和 CDN 基础设施。.

不同应用场景的实用技巧

适用于网站和 WordPress 管理员

  • 在云服务器上使用内部解析器缓存来减少 DNS 查询。.
  • 环境 最小反应 并合理化 TTL 以提高页面加载速度。.
  • 建议将 CDN 和 DNS 结合使用,以降低延迟并提高可用性。.

适用于 DevOps 和 AI/渲染集群

  • 在每个节点上运行本地解析器,或者运行高容量的中央解析器,以便更快地访问注册表和资源。.
  • 在 CI/CD 作业和软件包下载中使用 DNS 缓存。.
  • 在大型环境中,使用分层架构来分离内部服务和外部服务。.

面向交易者和游戏玩家

  • 将解析器放置在最近的地理位置 85个地点 建议降低延迟。.
  • 使用任播解析器和反DDoS服务器来提高稳定性并抵御攻击。.

完整配置示例(快速示例)

重要的一部分 /etc/named.conf:

options {
    directory "/var/named";
    listen-on port 53 { 127.0.0.1; 10.10.10.5; };
    allow-query { localhost; localnets; 10.10.10.0/24; };
    recursion yes;
    forwarders { 1.1.1.1; 8.8.8.8; };
    dnssec-validation auto;
    minimal-responses yes;
    rate-limit { responses-per-second 10; window 5; };
};

最后的一些建议和最佳实践

  • 总是 重启前请运行 named-checkconf 和 named-checkzone。.
  • 指定访问权限仅限于子网;避免让解析器对所有人开放。.
  • 使用 TSIG 密钥进行区域转移和 rndc-confgen -a 用于安全管理。.
  • 监控日志并定义流量增加或错误时的警报阈值。.
  • 如果服务于公众,则应利用反DDoS基础设施和地理分布。.

为什么要在服务提供商的云基础设施上部署这项服务?

优势:

  • 在不同的地理位置部署解析器,以减少延迟并提供快速响应。.
  • 采用防DDoS攻击和网络防火墙的高级防护。.
  • 与 CDN 和分布式网络集成,以提高可用性并降低延迟。.
  • 托管方案(托管 DNS)以及托管 GitLab、数据库和 AI 基础设施的能力。.

常见问题解答

您可能也喜欢