BIND9 安装
# CentOS
yum -y install bind bind-utils
# Ubuntu
apt -y install bind9
BIND9 相关文件
Ubuntu
最常用的几个:
- 改配置基本只动 /etc/bind/named.conf.local 和 named.conf.options
- 自己加区域文件一般都放在 /etc/bind/zones/ 目录下(自己新建),然后在 named.conf.local 里 include
- 主程序是 /usr/sbin/named
- 运行数据都在 /var/cache/bind
# dpkg -L bind9
/etc/bind/named.conf # BIND9 主配置文件,所有配置的入口
/etc/bind/named.conf.options # 全局选项配置(如监听地址、递归、DNSSEC等)
/etc/bind/named.conf.local # 用户自定义区域文件,通常放你自己添加的zone
/etc/bind/named.conf.default-zones # Debian/Ubuntu 默认预定义的几个基本zone(如localhost、127.0.0.1)
/etc/bind/bind.keys # DNSSEC 信任锚(trust anchors),存放根区KSK公钥
/etc/bind/db.0 # 根区提示文件(root hints),告诉BIND根服务器在哪里
/etc/bind/db.127 # 127.0.0.1 反向解析区(localhost)
/etc/bind/db.local # 本地环回正向解析区(localhost -> 127.0.0.1)
/etc/bind/db.empty # 空区模板,经常用来做黑洞/空区
/etc/bind/db.255 # 广播地址反向区(255.255.255.255)
/etc/bind/zones.rfc1918 # RFC1918 私有地址空区配置(10/172.16/192.168 返回NXDOMAIN,防泄漏)
/etc/default/named # Debian/Ubuntu 启动参数配置(如是否启用chroot、额外选项)
/usr/sbin/named # BIND9 主程序(DNS服务器守护进程)
/usr/sbin/ddns-confgen # 生成动态更新用的TSIG密钥工具(替代tsig-keygen)
/usr/sbin/tsig-keygen # 生成TSIG密钥工具(已软链接到ddns-confgen)
/usr/bin/named-rrchecker # 检查资源记录语法是否正确的工具
/usr/bin/named-journalprint # 打印journal文件内容(查看zone动态更新历史)
/usr/bin/named-nzd2nzf # 把.nzd格式区文件转成普通zone格式
/usr/bin/arpaname # ARPA域名转punycode工具(很少用)
/usr/bin/nsec3hash # 生成NSEC3 hash工具(DNSSEC相关)
/usr/bin/dnssec-importkey # 把DNSKEY导入trusted-keys格式的工具
/var/cache/bind # 默认工作目录,存放动态zone的.jnl文件、统计数据、缓存等
/lib/systemd/system/named.service # systemd 服务单元文件(启动named)
/lib/systemd/system/named-resolvconf.service # 与resolvconf集成的小服务
/etc/apparmor.d/usr.sbin.named # AppArmor 安全策略文件(限制named权限)
/usr/lib/x86_64-linux-gnu/bind/filter-a.so # view/filter功能用的过滤模块(过滤A记录)
/usr/lib/x86_64-linux-gnu/bind/filter-aaaa.so # 同上,过滤AAAA记录(IPv6)
/usr/share/doc/bind9/NEWS.Debian.gz # Debian 特定版本的重要更新说明(必看)
/usr/share/doc/bind9/changelog.Debian.gz # Debian 打包历史变更记录
/etc/ufw/applications.d/bind9 # UFW 防火墙预定义规则(方便一键开放53端口)
CentOS
# rpm -ql bind
...
/etc/named.conf #主配置文件
/usr/lib/systemd/system/named.service #主程序
/var/named/named.ca #根DNS服务器的地址
/var/named #主DNS数据库的存放路径(区域数据库)
...
BIND9 配置文件说明
- 实现简单网络访问(通过查找根DNS服务器的方式实现)
# /etc/named.conf
options {
...
directory "/var/named"; # 区域数据库的存放路径
# 将下面两行注释掉效果一样
listen-on port 53 { localhost; }; # localhost 等于 0.0.0.0
allow-query { any; }; # any表示允许所有人使用此DNS,也可以写成10.0.0.0/24,表示哪个网段访问
allow-transfer { none; }; # 设置不允许其它主机进行区域传输,在作为主DNS服务器时 可以只允许从DNS服务器进行区域传输,即把none改为从DNS的IP
BIND9 相关工具
# 检查配置文件语法
named-checkconf
# 检查区域数据库的语法,第一个xiangzheng.org表示在配置文件中定义的名称
named-checkzone xiangzheng.org /var/named/xiangzheng.org.zone
named-checkzone xiangzheng.org /var/cache/bind/xiangzheng.com.zone.bind
# 重新加载BIND DNS,等价于systemctl restart named,但rndc依赖于 tcp/953 端口
rndc reload