SYNwall:零配置物联网防火墙

关于SYNwall
SYNwall是一款功能强大的零配置物联网防火墙,该项目是一个以Linux内核模块构建的项目,可以帮助广大研究人员实现一个透明的零配置/零维护的物联网防火墙。
通常情况下,物联网设备是不具备*控制特性的,而且硬件配置不搞,环境条件也恶劣。广大研究人员并没有多少时间去专门维护物联网设备的安全,因此,我们可能无法及时修复物联网基础设施中的安全问题,并且很难去维持“类似防火墙”的访问控制。
SYNwall是思想是创建一个非集中式的单向一次性密码,以使网络能够访问设备,所有不包含OTP的流量都将被丢弃。我们不需要事先知道谁需要访问,我们只需要一个预共享密钥来部署。安全保护机制将对应用层完全透明,因为它是在网络协议级别(TCP和UDP)实现的。

工具安装
这个项目库中包含了Linux内核模块,并且已经在X86_64、ARM、MIPS以及AARCH64架构上测试了3.x、4.x和5.x版本。
该工具要求使用当前内核Header进行编译,这里可以使用对应的包管理器来进行安装。比如说,在Debian发行版系统上可以运行下列命令:
sudo apt-get install linux-headers-$(uname -r)
接下来,我们就可以运行编译命令了:
make

SYNwall配置
功能模块可以使用insmod或modprobe进行加载。
工具还提供了一些参数来帮助我们实现自定义行为:
1、用于一次性密码的预共享密钥-PSK
这个PSK必须是一个长度为32到1024的字节序列。它将是OTP的一部分,因此它的长度将影响OTP注入包的大小。如果没有此参数,模块将无法加载。

2、启用UDP-enable_udp: 0
针对UDP协议启用或禁用OTP。默认配置下是禁用的,设置为1即可启用。UDP上的OTP要求模块在两个通信设备上都处于活动状态,因为在将数据包转发到应用层之前,必须(由模块)删除OTP。UDP连接跟踪依赖于conntrack模块,因此必须插入它才能使用此功能(这取决于安装)。

3、精度参数-precision: 10
OTP使用了当前设备时间进行计算,由于不同设备上的日期时间可能不同,因此我们可以设置一个允许的时间偏移量,默认值为10。这里的精度需要使用2的幂来表示:


9 -> 1 second
10 -> 8 seconds

工具使用样例
下列命令将删除所有流向目标设备的通信流量:
sudo insmod SYNwall.ko psk=123456789012345678901234567890123 precision=10 portk=12,13,14,15,16 load_delay=5000 enable_udp=1

项目地址
SYNwall:https://github.com/SYNwall/SYNwall

SYNwall:零配置物联网防火墙

上一篇:2021年10月6日国庆所学(个人笔记)


下一篇:Day1 Markdown学习笔记