type
status
date
slug
summary
tags
category
icon
password
家里部署在旁路网关上的AdGuard Home已经稳定运行一段时间了,最近检查配置文件的时候发现默认的配置文件是监听在全部地址的,也就是如果有人知道了我旁路由的公网IPv6地址,而且我的防火墙规则不完善情况下,那么是存在可能直接使用我的AdGuard Home DNS服务的,尤其是我的AdGuard Home还是监听在默认的53端口,有点不太安全,即便是不被攻击和滥用,也容易被运营商警告。
📝 AdGuard Home配置记录
我的AdGuard Home是安装在旁路网关(旁路由)的OpenWRT系统内,所以以下防火墙规则部分,介绍和使用的是OpenWRT下的防火墙(nftables)规则。
修改AdGrard Home监听地址
配置文件位于
/etc/AdGuardHome.yaml
,关于监听地址的的配置项为dns
主配置项下的bind_host
,默认的配置为:即监听当前机器的所有地址,包括本地地址、局域网地址,IPv6公网地址等等,存在很大的安全隐患,同时我们也不需要AdGuard Home在如此多的地址上进行监听。
由于我会使用WireGuard回家,配置的网段为10.1.X.X网段,所以在配置文件中也加入对这个网段地址的监听。另外增加127.0.0.1的本机地址原因是允许本机使用该DNS服务,同时在旁路由本机上运行的一些服务由于配置的DNS地址也为127.0.0.1的本机地址,找起来修改很麻烦,所以这里加上。
修改完后:
包括本机地址,家庭局域网地址、WireGuard虚拟局域网地址(或者Zerotier虚拟局域网地址),以及本地的IPv6地址,这里主要注意IPv6地址填写你的DNS服务器本机的本地链路IPv6地址,即
fe80::
开头,不要完全简写为fe80::1
,建议通过ifconfig
命令查看一下本地的IPv6地址,否则AdGuard Home可能存在监听失败无法启动的问题。 重启AdGuard Home后生效。
配置防火墙规则
OpenWRT Luci界面添加
如果你在主路由的默认防火墙wan口规则是拒绝入站和拒绝转发,那么没有必要单独进行防火墙规则的配置,因为53端口的访问和转发请求已经遵循默认规则被拒绝。
但是如果你的默认wan口规则允许入站和转发,那么建议还是进行通信规则的设置,特别是IPv6部分的配置,可以在OpenWRT的防火墙设置中直接添加通信规则:

- 源区域:wan和wan6
- 源地址:不选择
- 源端口:不填写
- 目标区域:lan,如果你的AdGuard Home配置在主路由上,那么为此设备。
- 目标地址:按照我们之前在OpenWRT IPv6防火墙规则:如何放行客户端地址及端口中的配置方法,填写
::后四位mac地址/::ffff:ffff:ffff:ffff
进行地址匹配。然后再增加一条,填写AdGuard Home所在的局域网IPv4地址。
- 目标端口:53,如果你的AdGuard Home使用的不是53端口,填写你的AdGuard Home监听的端口。
- 操作:拒绝
- 高级设置:
- 地址族限制:IPv4和IPv6
最后保存即可。
nftables添加
nftables部分添加的思路和Luci部分相反,是通过nft防火墙只允许对应的网段访问53端口,其他不在配置规则范围之内的网段访问53端口,会被Drop丢弃。
IPv4部分
IPv6部分
🤗 总结归纳
因为在家庭网络环境下的AdGuard Home并不需要对公网提供DNS解析服务,所以大部分情况下监听地址并不需要使用0.0.0.0,暴露公网IPv6地址,尽管IPv6地址被扫到的几率很低,但是由于AdGuard Home提供的DNS不具备鉴权功能,容易造成安全隐患或成为DDoS放大器的帮凶。
📎 参考文章
有关OpenWRT或者路由器安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~