记录每个用户的互联网访问

记录每个用户的互联网访问

首先我要说一下,我的网络有点奇怪。

LAN 1 路由器:10.0.0.254/24,通过 10.0.0.254 上的 DSL 连接互联网。LAN 2 路由器:172.16.2.254/24,默认网关:10.0.0.254(LAN 2 是到其他位置的私人链接,使用我们的供稿连接互联网)

不幸的是,LAN 2 上的路由器会将来自 172.16.2.0/24 的所有流量都进行 NAT。我无法更改此路由器 - 无法禁用 NAT。

假设我唯一能控制的路由器是 LAN 1(它是一个 Linux 机器):我如何记录用户的使用情况(目标 IP+端口)?我以前通过 MAC 地址关联用户,但现在使用这个路由器,原始 MAC 将被隐藏 - 同样,原始 IP 也会丢失。

我还没有看到任何证据表明 802.1X 身份验证可以在网络层以外的任何层上起作用,因此这似乎也不可能。

对我来说唯一的选择就是使用 SOCKS 代理并要求所有客户端自行配置使用该代理,但这也有其缺陷(有限的客户端支持,仅处理 TCP 和 UDP,增加路由器的 CPU 利用率)。

我是否遗漏了什么?我该如何解决这个问题?

答案1

这是一个棘手的问题。

最好的解决方案是将 LAN2 路由器替换为您实际上具有一定管理控制权的设备。如果您无法禁用 NAT,那么这款路由器可能在其他地方存在不足。但是,我的直觉是,出于政治原因,您无法用更合适的设备替换这款路由器(否则您早就这么做了……)。

我的第一个建议是将 Squid 代理放在某处,并使用该日志记录每个用户的互联网访问情况。最好的放置它的地方应该是 LAN1,但这样 LAN2 上的所有客户端网络流量都会因 NAT 而显示为来自 LAN2 路由器。您可以将其放置在 LAN2 路由器的下游,但随后您必须通过其 NAT 进行转发,以便 LAN1 的客户端可以访问它。这样做有点丑陋。

另一个想法是,如果 LAN2(和 LAN1)上的交换基础设施支持,则依赖 Netflow、SFlow 或 RMON 之类的东西。只需通过 LAN2 路由器转发适当的端口,并将流量收集器放在 LAN1 上。不幸的是,流量分析在很大程度上不了解第 7 层,因此虽然您可以测量流量、使用情况和计数器统计信息,但您无法获得 Web 代理提供的以 HTTP 为中心的详细信息。不过,这可能比没有好。

答案2

看起来典型的网络工具在这种情况下不起作用。即使是 websense 也使用 DC 代理将 IP 映射到用户帐户以实现透明度。如果没有每个客户端的唯一标识符(mac 或 IP),我认为您必须通过代理进行身份验证。

相关内容