通过iptables的u32模块实现对应用层协议匹配

本文由CollinXia(https://blog.csdn.net/qq_42768012)原创,未经许可禁止转载

iptables是Linux环境下功能强大的防火墙规则管理工具,因为最近在做一个工控防火墙的项目,就想看用iptables能不能实现简单的应用层协议匹配,之前看到过很多讲Netfilter有一个Layer7模块可以实现应用层匹配的,但是Layer7实在是太老了,只支持2.x的内核版本,在新版内核下完全无法编译安装,之前反复尝试了很多次还是不能用。后来发现了这个叫做u32的模块,他的逻辑是并不管你什么层,只管一次拿32bits出来做匹配,那其实我们只需要把网络层和运输层的报头跳过去,剩下的不就是应用层了吗?

基于这种想法,这里以工控网络中最常见的Modbus协议为例,做了一次简单的应用层匹配

前期准备工作

首先一般情况下Ubuntu是自带iptables的,如果没有,可以自行安装

sudo apt install iptables 

安装成功后输入iptables会提示iptables v1.6.1: no command specified(我虚拟机上自带的1.6.1版本)说明成功

理论基础

iptables一般情况下是不支持对数据包内部信息进行匹配的,只能根据诸如-saddr-dport这类关键字来匹配源/目标端口或者地址
好在ipta

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值