打算写一个在netfilter中的helper, 但有两个难点不知如何实现?
主要的应用是这样的: 内网LAN侧的host PC1与外网WAN侧的host PC2连接, PC1将会以6112这个端口作为源端口去连接PC2的6112端口(或者一个随机的高端端口)进行某些数据通信,但有时候由于应用所需,PC2会新建立一条连接使用6112端口(或者一个随机的高端端口)来连接PC1的6112端口。该连接在到达路由器时被防火墙挡掉了,无法把包传递给PC1. 所以,我需要写一个类似于ALG的东西来完成这个事情,让PC2新建立的连接在到达路由器时能转给PC1.
考虑了之后我觉得,要在netfilter中实现该helper必须解决两个问题:问题一,如何查询连接跟踪表,从而获得PC1的IP地址? 问题二:当PC2的新连接包到来时,如何在netfilter中实现端口转发?
还请哪位能给予指点,我如何实现这个helper?特别是如何解决这两个问题? 非常感谢!
考虑了之后我觉得,要在netfilter中实现该helper必须解决两个问题:问题一,如何查询连接跟踪表,从而获得PC1的IP地址? 问题二:当PC2的新连接包到来时,如何在netfilter中实现端口转发?
还请哪位能给予指点,我如何实现这个helper?特别是如何解决这两个问题? 非常感谢!
作者: firvalor 发布时间: 2011-03-01
忘记说了,我的内核版本是2.6.21.7.
作者: firvalor 发布时间: 2011-03-01
QUOTE:
。该连接在到达路由器时被防火墙挡掉了,无法把包传递给PC1.
建议先检查一下防火墙的配置,为什么要这样处理
作者: Godbach 发布时间: 2011-03-01
因为路由器不会允许新的连接从WAN侧到LAN侧的。这个是路由器最基本的防火墙功能。也就是WAN侧的主机是不能随便访问LAN侧主机的。
作者: firvalor 发布时间: 2011-03-01
回复 firvalor
你所谓的路由器,是不是就是值得防火墙啊
你所谓的路由器,是不是就是值得防火墙啊
作者: Godbach 发布时间: 2011-03-01
没有呀,就是Router呀,里面带了基本的防火墙功能、nat等。
作者: firvalor 发布时间: 2011-03-01
那你是觉得要去修改 Router 中的防火墙实现了,对吗
作者: Godbach 发布时间: 2011-03-01