linux iptable 封包啥意思

linux iptable 封包啥意思,第1张

iptable是一种网络防火墙,在LINUX下使用,RedHat9.0版本以上自带。它可以实现NAT转换,可以做上网代理。

停止防火墙 service iptables stop

启动防火墙 service iptables start

查看防火墙配置 iptables -L -n

修改的内容只是暂时保存在内存中,如果重启后还要生效,则要保存一下 service iptables save

Internet用户使用的各种信息服务,其通讯的信息最终均可以归结为以IP包为单位的信息传送,IP包除了包括要传送的数据信息外,还包含有信息要发送到的目的IP地址、信息发送的源IP地址、以及一些相关的控制信息。当一台路由器收到一个IP数据包时,它将根据数据包中的目的IP地址项查找路由表,根据查找的结果将此IP数据包送往对应端口。下一台IP路由器收到此数据包后继续转发,直至发到目的地。路由器之间可以通过路由协议来进行路由信息的交换,从而更新路由表。

那么我们所关心的内容只是IP包中的数据信息,我们可以使用许多监听网络的工具来截获客户端与服务器之间的交换数据,下面就向你介绍其中的一种工具:WPE。

WPE使用方法:执行WPE会有下列几项功能可选择:

SELECT GAME选择目前在记忆体中您想拦截的程式,您只需双击该程式名称即可。

TRACE追踪功能。用来追踪撷取程式送收的封包。WPE必须先完成点选欲追踪的程式名称,才可以使用此项目。 按下Play键开始撷取程式收送的封包。您可以随时按下 | | 暂停追踪,想继续时请再按下 | | 。按下正方形可以停止撷取封包并且显示所有已撷取封包内容。若您没按下正方形停止键,追踪的动作将依照OPTION里的设定值自动停止。如果您没有撷取到资料,试试将OPTION里调整为Winsock Version 2。WPE 及 Trainers 是设定在显示至少16 bits 颜色下才可执行。

FILTER过滤功能。用来分析所撷取到的封包,并且予以修改。

SEND PACKET送出封包功能。能够让您送出假造的封包。

TRAINER MAKER制作修改器。

OPTIONS设定功能。让您调整WPE的一些设定值。

FILTER的详细教学

- 当FILTER在启动状态时 ,ON的按钮会呈现红色。- 当您启动FILTER时,您随时可以关闭这个视窗。FILTER将会

留在原来的状态,直到您再按一次 on / off 钮。- 只有FILTER启用钮在OFF的状态下,才可以勾选Filter前的方框来编辑修改。- 当您想编辑某个Filter,只要双击该Filter的名字即可。

iptables是linux系统下用来做防火墙的二进制文件(linux上位于/sbin/iptables,android中位于/system/bin/iptables),底层依赖于内核的netfilter模块,用来完成封包过滤、封包重定向和网络地址转换(NAT)等功能(在android上需要root使用)。

举个例子来简单看看iptables命令的基本用法。

意思是在nat转发表的OUTPUT输出链中增加这样一条规则:倘若OUTPUT输出链拦到了tcp请求,则将其重定向到本地的8123端口。

可以看到iptables中有 规则 的概念,那么先通过iptables传输数据包的过程来简单了解下表和链是什么以及他们之间的关系。

可以看到 就是对数据包传输路径的一种抽象,一个数据包根据其具体场景以固定的顺序依次经过PREROUTING、INPUT等各个链,在经过各个链时,又有不同的表在监听这个链,而nat、filter等 中有包含一系列的 规则 ,当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则。

值得注意的是,

至此我们了解了表、链和规则是什么以及他们之间的关系,下面来具体看下 iptables命令的基本用法

更多关于各command、parameter的具体含义以及用法可以参考 https://wangchujiang.com/linux-command/c/iptables.html

iptables对网络数据包做过滤或拦截时其维度只能局限于网络数据包收发的ip地址、端口号、网卡、tcp/udp协议,因此可以推测iptables最终是在ip层对网络数据包做的拦截。

那iptables基于netfilter具体是怎么做到在各个链上对数据包做拦截的呢?

/net/ipv4/ip_output.c

/net/ipv4/ip_input.c

/net/ipv4/ip_forward.c

可以看到内核在每一个数据转发的关键节点都调用了NF_HOOK这个宏,来看下NF_HOOK这个宏干了啥

关于NF_HOOK相关具体逻辑可参见 https://sites.google.com/site/ibmsdu/network-security-development/netfilter%E8%AE%BE%E8%AE%A1%E4%B8%8E%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7273953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存