在Ubuntu系统上配置DNS服务器是管理网络基础设施的关键步骤,它能将域名转换为IP地址,确保用户快速访问网站,本文以BIND9(Berkeley Internet Name Domain)为例,提供专业、安全的配置指南,所有步骤均通过Ubuntu官方文档及行业最佳实践验证。
- 权威DNS:管理特定域名的解析记录(如
example.com)。 - 递归DNS:为客户端查询外部域名(如Google公共DNS)。
- BIND9:开源DNS软件,支持权威和递归解析,被全球90%的DNS系统采用。
在Ubuntu安装BIND9
sudo apt update sudo apt install bind9 bind9utils bind9-doc
- 关键组件:
bind9:主程序bind9utils:诊断工具(如named-checkconf)bind9-doc:官方文档
配置权威DNS服务器(以域example.com为例)
步骤1:主配置文件
编辑/etc/bind/named.conf.options:
options {
directory "/var/cache/bind";
listen-on { any; }; # 监听所有IP
allow-query { any; }; # 允许所有客户端查询
recursion no; # 关闭递归(仅权威解析)
dnssec-validation auto; # 启用DNSSEC安全验证
};
步骤2:定义区域文件
创建区域配置文件/etc/bind/named.conf.local:
zone "example.com" {
type master;
file "/etc/bind/db.example.com"; # 区域文件路径
};
步骤3:创建区域数据库文件
新建/etc/bind/db.example.com:
;
; 区域文件: example.com
;
$TTL 86400 ; 默认缓存时间(24小时)
@ IN SOA ns1.example.com. admin.example.com. (
2025081501 ; 序列号 (格式: YYYYMMDDNN)
3600 ; 刷新时间
1800 ; 重试时间
604800 ; 过期时间
86400 ; 最小TTL
)
;
; 名称服务器记录
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
; A记录 (域名 -> IP)
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
; CNAME记录 (别名)
web IN CNAME www.example.com.
步骤4:验证配置
sudo named-checkconf # 检查主配置 sudo named-checkzone example.com /etc/bind/db.example.com # 检查区域文件
配置递归DNS服务器
编辑/etc/bind/named.conf.options:
options {
recursion yes; # 启用递归
allow-recursion { any; }; # 允许所有客户端递归查询
forwarders {
8.8.8.8; # 上游DNS(如Google DNS)
1.1.1.1; # Cloudflare DNS
};
};
启动服务与防火墙
sudo systemctl restart bind9 sudo ufw allow 53/tcp # 允许TCP(区域传输) sudo ufw allow 53/udp # 允许UDP(常规查询)
测试DNS解析
- 本地测试:
dig @localhost www.example.com
- 外部测试(确保服务器公网IP开放53端口):
dig @your_server_ip example.com
安全加固最佳实践
- 限制区域传输:在
named.conf.local中添加:zone "example.com" { allow-transfer { 192.168.1.11; }; # 仅允许从服务器IP传输 }; - 禁用版本信息:在
named.conf.options中增加:version "not disclosed";
- 定期更新:
sudo apt upgrade bind9
故障排除
- 查看日志:
tail -f /var/log/syslog | grep named - 检测配置:
sudo named-checkconf - 测试递归:
dig +trace ubuntu.com
通过BIND9在Ubuntu部署DNS服务器,既可实现域名的高效解析,又能通过DNSSEC、访问控制等机制保障安全,定期审查日志、更新软件是维护稳定性的关键,对于企业环境,建议部署主从架构(Master-Slave)以实现高可用。
引用说明:
本文配置参考自 ISC BIND 9 官方文档 及 Ubuntu Server Guide,安全实践遵循 CIS BIND Benchmark。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9781.html