为了限制对许多(+100)虚拟主机的访问,我使用语句Require forward-dns authorized-ips.mydomain.tld
。
这使我能够以简单而集中的方式轻松管理通过 DNS 添加和删除 IP 地址。
几年来它一直运行良好。
直到最近,我还在使用 IPv4。
我希望最终切换到双栈 IPv4/IPv6,甚至完全切换到 IPv6。
问题是它forward-dns
与 IPv6 地址的比较非常严格。
有没有办法使用该forward-dns
指令来比较 IPv6 的子网而不是完整地址?
附言:我知道可以使用Require ip 2001:db8:2:1::/64
,但在这种情况下,我将失去基于 DNS 的管理的所有优势。
最佳答案
1
现在不再需要 NAT,客户端可以拥有自己的地址进行端到端通信。然而,这意味着一个名称无法容纳更多的 IP Require forward-dns
如果您同时控制正向和反向 DNS,则可以执行Require host .client.example.net
以该标签结尾的反向 DNS 之类的操作,并通过正向查找进行验证,然后继续。
您提到您不喜欢 httpd 配置文件中的 IP 地址。为了完整起见,它们可以是网络: Require ip 2001:db8:2:1::/64
请注意,地址空间足够大,一个站点可以拥有所需的任意数量的 /64,并且每个站点都可以容纳任意数量的主机。如果客户端自然组织成相对较少的子网,那么这只会是一个相当短的允许列表。
由于 mod_authz_host 目前可以工作,forward-dns
并且host
正在处理完整 IP 地址,而不是网络。forward-dns
允许从该 DNS 名称检索的多个 IP 中的多个主机。 host
允许通过部分名称匹配进行多个。探索如何更改代码以适应从 DNS 解析网络。维护您对 mod_authz_host 的修改或启动新模块。
Include
指令在目录上下文中起作用。您可以为每个Require
使用的唯一文件创建一个通用文件。只需在一个地方更新即可。
IP 地址不是强身份验证。用户不提供凭证,只提供可以伪造的 IP 标头。IP 允许列表可以针对您意想不到的网络流量提供健全性检查。但是,任何实际的用户身份证明都需要真实的身份验证。
1
-
如何使用面向连接的协议(如 TCP)轻松伪造 IP 地址?它仍然不是强身份验证,但不像直接依赖 IP 那么弱。
–
|
|