NAT源地址跟踪问题

我企业局域网是用私有IP段192.168.0.0/24,网关是Linux双网卡服务器做NAT,有一个公网IP地址,大家都访问某个外网服务器,这个时候在外网服务器上看到的源IP地址是一样的,请问有没有一个解决方案,配置Netfilter或者在开发Netfilter的HOOK模块来修改其做NAT的数据包(比如加入某些信息或打Tag等),来使得在外网服务器上可以通过获取修改过的数据包来确定到底数据包是来自内网的那一台机器,请问这种方案可行吗?

作者: 让子弹飞一会儿   发布时间: 2011-01-26

外网服务器获取这个信息有什么意义呢?

作者: Godbach   发布时间: 2011-01-27

因为外网服务器也是我们的,想知道到底内网的那个用户在什么时间访问了服务器,因为做了NAT所以没办法知道现在~

作者: 让子弹飞一会儿   发布时间: 2011-01-27

我想到了一个方法就是,在外网服务器的首页面加一段PHP代码,获取到srcip(NAT后的IP)和srcport,然后将srcip和srcport发送到网关设备,网关设备查询conntrack的session表,将这个连接真正的源IP地址找出来响应给服务器,这样服务器就能获取到NAT前的IP地址了~

作者: 让子弹飞一会儿   发布时间: 2011-01-27

为什么不在 NAT 的哪台服务器上记录呢?

作者: Godbach   发布时间: 2011-01-27



QUOTE:
为什么不在 NAT 的哪台服务器上记录呢?
Godbach 发表于 2011-01-27 09:22


上面的环境我是举个例子,真正的应用比这个要复杂的多,还涉及到NAT环境里面的PC使用DHCP去外网服务器(其实只是路由网,这个服务器还是企业内部服务器)获取IP地址,根据用户PC的状态来决定分配IP的类型,在某些情况下需要截获用户的http请求,将其转到上面所说的外网服务器上对其进行认证(所谓的Portal页面),认证的时候需要知道这个用户真正的IP和MAC,这样再其认证成功后才能分配办公IP地址,所以才需要在NAT外的服务器得到访问它的NAT内的PC的IP地址。。。。有一种方法是在PC上安装agent(或下载ActiveX),但只要在个人pc上安装软件在实施部署上就比较累,所以还是考虑对用户透明的方案,除了我上面说的方案在NF中有没有提供一些类似的解决方法呢?

作者: 让子弹飞一会儿   发布时间: 2011-01-27