在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