在 Linux 上拦截传入的 TCP/IP 数据包并执行 NAT

在 Linux 上拦截传入的 TCP/IP 数据包并执行 NAT

我想确定防火墙后面的哪台计算机发送数据包。

想象一下,我有 2 台 PC 在防火墙后面,我想在进行 NAT 之前,根据(我的算法)在防火墙级别做出决定。基本上拦截数据包,然后做出决定,我该怎么做?

我应该使用什么工具来编写自定义 C 代码来执行该操作。

答案1

目前尚不清楚您是否要实际对数据包中的数据进行操作,还是只是根据发送数据的计算机来路由数据?

iptables可以做路由,而且非常复杂。具有讽刺意味的是,它利用了所谓的“表”,因此您可以在数据通过各种“表”时询问并重新路由数据。

请参阅本教程以获取更多信息:http://wiki.centos.org/HowTos/Network/IPTables

有 3 个主要表,但可以通过插件/模块添加更多表,也可以开发自定义表。

主要的:

  • 输入
  • 向前
  • 输出

因此,当数据包进入盒子时,它将通过“输入”表,在那里它可以被执行。当数据包流出盒子时,它们会流经“输出”表,并且也可以对其进行操作。

请查看本教程以获取有关 的更多信息iptables

相关内容