按照此设置http://www.g-loaded.eu/2010/09/18/caching-nameserver-using-dnsmasq/我能够使用 dnsmasq 为我的网络配置 DNS 解析器服务器。设置工作正常,并记录 DNS 名称解析。
我想让这个设置也记录完整的 URL 信息,我们不想拦截任何数据,而只记录用户正在访问的 URL - 使用 DNS 服务器来实现这一点是首选解决方案。
答案1
遗憾的是,您无法记录您没有的东西。DNS 永远不会被要求提供 URL。DNS 只会被要求将主机名解析为 IP。DNS 协议不处理任何其他事情。
答案2
如果您需要记录这些内容,那么我会说您真正需要的(尽管您可能会后悔......)是一个[可能透明的]代理或一个执行深度数据包检测(DPI)的防火墙[它也有其他各种名称],例如 FortiNet 设备。
这些都不会告诉您 https 连接内部发生的情况(尽管它会告诉您它们连接到哪个 IP/DNS),但是如果您让所有设备都信任您创建的本地 CA 证书(并使用动态签署所有内容;顺便说一句,您的用户会因此而讨厌您),那么您可以查看所有/大部分流量。
如果您需要了解“用户”(以确定谁在何时做了什么),那么您要么需要一个无法绕过的身份验证代理,要么需要其他一些网络身份验证技术(如 802.1x 端口身份验证),以及一些记录时间范围:用户:ip:主机名:mac 的时间映射的系统,然后可以稍后检索以进行报告......这是一个相当先进的网络,如果您有能力支持,很可能在外面。