当前位置: 首页 > news >正文

@DNS服务器搭建配置优化-Linux

DNS服务器搭建&配置优化

一、准备工作

1. 系统要求

  • Linux服务器(推荐CentOS 7+/Ubuntu 18.04+)
  • root或sudo权限
  • 稳定的网络连接

2. 软件选择

  • BIND9(最常用的DNS服务器软件)
  • dnsmasq(轻量级DNS/DHCP服务器)
  • PowerDNS(功能丰富的DNS服务器)

本文以BIND9为例

二、BIND9安装

1. 安装BIND9

CentOS/RHEL:

sudo yum install -y bind bind-utils
sudo systemctl enable named
sudo systemctl start named

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install -y bind9 bind9utils bind9-doc
sudo systemctl enable bind9
sudo systemctl start bind9

2. 验证安装

named -v
# 应显示BIND版本信息

三、基础配置

1. 主配置文件修改

sudo vi /etc/named.conf

修改以下内容:

options {listen-on port 53 { any; };  # 允许所有IP监听listen-on-v6 port 53 { any; };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     { any; };    # 允许所有查询recursion yes;               # 启用递归查询dnssec-enable yes;           # 启用DNSSECdnssec-validation yes;       # 启用DNSSEC验证forwarders {                 # 设置上游DNS8.8.8.8;8.8.4.4;};// 性能优化参数max-cache-size 256M;         # 最大缓存大小max-cache-ttl 3600;          # 最大缓存TTLmin-cache-ttl 300;           # 最小缓存TTL
};

2. 创建区域文件

正向解析区域
sudo vi /etc/named.rfc1912.zones

添加:

zone "example.com" IN {type master;file "example.com.zone";allow-update { none; };
};
反向解析区域(可选)
zone "1.168.192.in-addr.arpa" IN {type master;file "192.168.1.rev";allow-update { none; };
};

3. 创建区域数据文件

正向解析文件
sudo vi /var/named/example.com.zone

内容:

$TTL 86400
@       IN      SOA     ns1.example.com. admin.example.com. (2023062001      ; Serial3600            ; Refresh1800            ; Retry604800          ; Expire86400           ; Minimum TTL
)IN      NS      ns1.example.com.IN      NS      ns2.example.com.IN      MX      10 mail.example.com.ns1             IN      A       192.168.1.10
ns2             IN      A       192.168.1.11
www             IN      A       192.168.1.100
mail            IN      A       192.168.1.200
反向解析文件(可选)
sudo vi /var/named/192.168.1.rev

内容:

$TTL 86400
@       IN      SOA     ns1.example.com. admin.example.com. (2023062001      ; Serial3600            ; Refresh1800            ; Retry604800          ; Expire86400           ; Minimum TTL
)IN      NS      ns1.example.com.IN      NS      ns2.example.com.10              IN      PTR     ns1.example.com.
11              IN      PTR     ns2.example.com.
100             IN      PTR     www.example.com.
200             IN      PTR     mail.example.com.

4. 设置文件权限

sudo chown root:named /var/named/example.com.zone
sudo chmod 640 /var/named/example.com.zone
sudo chown root:named /var/named/192.168.1.rev
sudo chmod 640 /var/named/192.168.1.rev

5. 检查配置文件语法

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

6. 重启BIND服务

sudo systemctl restart named  # CentOS/RHEL
sudo systemctl restart bind9  # Ubuntu/Debian

四、DNS服务器优化配置

1. 性能优化参数

编辑/etc/named.conf,在options部分添加:

// 性能优化参数
max-cache-size 512M;         # 根据服务器内存调整
max-cache-ttl 7200;          # 最大缓存时间
min-cache-ttl 300;           # 最小缓存时间
max-ncache-ttl 3600;         # 否定缓存最大时间// 查询限制
max-clients-per-query 10;    # 每个查询的最大客户端数
max-recursion-queries 75;    # 递归查询最大数量
recursive-clients 1000;      # 并发递归客户端数// 响应速率限制
rate-limit {responses-per-second 10;window 5;
};

2. 启用多线程处理

options {// 启用多线程server-threads 4;        # 根据CPU核心数设置listen-on port 53 { any; };...
};

3. 日志优化配置

添加日志配置:

logging {channel query_log {file "/var/log/named/query.log" versions 3 size 20m;severity info;print-time yes;print-category yes;};category queries { query_log; };channel security_log {file "/var/log/named/security.log" versions 3 size 20m;severity info;print-time yes;print-category yes;};category security { security_log; };
};

创建日志目录:

sudo mkdir /var/log/named
sudo chown named:named /var/log/named

4. 启用DNSSEC

确保/etc/named.conf中有:

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

5. 配置TSIG密钥(用于主从同步)

生成密钥:

sudo dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST example.com

/etc/named.conf中添加:

key "example.com" {algorithm hmac-sha256;secret "生成的密钥内容";
};

五、主从DNS服务器配置(可选)

1. 主服务器配置

/etc/named.conf中修改区域定义:

zone "example.com" IN {type master;file "example.com.zone";allow-transfer { 192.168.1.11; }; # 从服务器IPalso-notify { 192.168.1.11; };    # 从服务器IP
};

2. 从服务器配置

安装BIND9后,在/etc/named.conf中添加:

zone "example.com" IN {type slave;file "slaves/example.com.zone";masters { 192.168.1.10; }; # 主服务器IP
};

六、安全加固

1. 限制区域传输

zone "example.com" IN {type master;file "example.com.zone";allow-transfer { none; }; # 或指定IP
};

2. 禁用版本信息

options {version "Not disclosed";...
};

3. 启用响应策略区域(RPZ)

options {response-policy { zone "rpz"; };
};zone "rpz" {type master;file "/var/named/rpz.db";allow-query { localhost; };
};

4. 配置防火墙

# 允许DNS查询
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

七、监控与维护

1. 监控DNS服务

# 查看DNS统计信息
sudo rndc stats
# 查看DNS缓存
sudo rndc dumpdb -cache

2. 日志轮转

创建/etc/logrotate.d/named

/var/log/named/*.log {dailymissingokrotate 7compressdelaycompressnotifemptycreate 0640 named namedsharedscriptspostrotate/usr/bin/systemctl reload named.service > /dev/null 2>&1 || trueendscript
}

3. 定期检查

# 检查DNS解析
dig @localhost example.com
# 检查反向解析
dig -x 192.168.1.10
# 检查DNS服务器性能
dnstop -l eth0

八、故障排除

1. 常见问题解决

  • 服务无法启动:检查/var/log/messagesjournalctl -u named
  • 解析失败:检查区域文件语法named-checkzone
  • 性能问题:调整缓存大小和TTL值

2. 调试命令

# 详细日志模式
sudo rndc querylog on
# 重新加载配置
sudo rndc reload
# 刷新缓存
sudo rndc flush

九、定期维护

  1. 定期更新BIND软件包
  2. 监控DNS查询日志
  3. 定期检查DNSSEC密钥过期时间
  4. 根据使用情况调整缓存大小和性能参数

SOP附录:
在这里插入图片描述

相关文章:

  • 微服务--消息队列mq
  • 一个小错误:Content-Type ‘text/plain;charset=UTF-8‘ is not supported 的粗心
  • list使用及模拟
  • Vue3+Element Plus动态表格列宽设置
  • ShardingSphere实现分库分表
  • 比特币---第1关:矿工任务及所需硬件
  • 如何存储和和使用比特币---第1关:比特币的存储
  • 升级openssl后无法使用cmake和curl的解决方法
  • 【C/C++ 为什么 unique_ptr 不支持拷贝构造、赋值构造等操作】
  • 大模型_Ubuntu24.04安装RagFlow_使用hyper-v虚拟机_超级详细--人工智能工作笔记0251
  • ubuntu24.04.2安装docker自动化脚本
  • 强化学习 A2C算法
  • java 将多张图片合成gif动态图
  • 微服务--nacos+feign
  • NY197NY205美光闪存固态NY218NY226
  • 两个矩阵的卷积运算
  • 算法导论第五章:概率分析与随机算法的艺术
  • 篇章六 系统性能优化——资源优化——CPU优化(3)
  • 当空间与数据联动,会展中心如何打造智慧运营新范式?
  • 利用 Python 爬虫按关键字搜索 1688 商品
  • 用wordpress作下载站点/亚马逊站外推广网站
  • 草坪网站怎么做/头条站长平台
  • 公司备案的网站被别的公司盗用/注册网站免费注册
  • 天猫店铺入驻流程/seo快排优化
  • 红色色系网站/百度投诉中心入口
  • 网站建设如何财务处理/seo包括哪些方面