0x01 前言
接上面两篇文章。分别用suricata+arkime做了内网全流量系统以及实现阻断拦截的功能,在上一篇中使用的阻断拦截方式为AF-Packet 模式,这篇文章介绍一下Netfilter模式。利用Netfilter模式实现阻断功能
1.AF-Packet 模式
AF-Packet 是一种高性能的数据包捕获和处理库,可以在内核空间中进行数据包过滤和分析,从而实现高性能和低延迟的数据包处理。Suricata 的 AF-Packet 模式直接使用这种库来捕获网络数据包,并在用户空间中进行进一步的分析和处理。适用于以下场景:
高速网络:当网络流量非常高,需要实现高性能和低延迟的数据包处理时,AF-Packet 模式是一个不错的选择。
大规模网络:当需要监控大规模的网络环境,需要捕获和分析大量的数据包时,AF-Packet 模式可以提高处理效率。
专用网络:当网络环境受到严格控制,可以使用专用的用户空间工具来配置 AF-Packet,从而实现更高的安全性。
2.Netfilter 模式
网络安全策略:当需要将 Suricata 引擎集成到现有的网络安全策略中时,可以使用 Netfilter 模式,从而实现更加细粒度的网络数据包控制。
网络安全策略与数据包处理:当需要在防火墙和 IDS/IPS 之间进行平衡时,可以使用 Netfilter 模式,从而实现更加细粒度的网络数据包控制,并在同一台设备上执行防火墙和 IDS/IPS 功能。
综合环境:当需要同时监控多种网络协议和应用程序时,可以使用 Netfilter 模式,从而实现更加细粒度的网络数据包控制,并更好地满足不同的监控需求。
0x03 实验环境
本次实验拓扑图环境如下
net1网卡模拟外网
net1网卡模拟内网
net网卡模拟suricata的管理口
在本次Netfilter模式中suricata是部署在网关上的,要保护后面内网中的机器,并且目前内网和外网并且不是一个网段,所有要在外网机器、suricata网关以及内网机器中设置路由转发。
suricata网关配置
开启路由转发
设置立即生效,该命令将重新加载/etc/sysctl.conf文件并将其中的所有参数设置应用到内核中,以使修改立即生效。
设置转发规则,规则将外网机器发送到内网机器的所有端口的流量重定向到内网机器上的IP地址,并使用suricata网关机器上ens38(vmnet2)网络接口的IP地址作为源IP地址。请根据具体情况进行修改。
iptables -t nat -A PREROUTING -i ens37 -s 192.168.236.141 -d 192.168.243.130 -j DNAT --to-destination 192.168.243.130
iptables -t nat -A POSTROUTING -o ens38 -s 192.168.236.141 -d 192.168.243.130 -j MASQUERADE
外网机器设置
为了使外网机器能够通过suricata网关机器中转流量,需要在外网机器上添加一个静态路由,以将内网机器的流量发送到suricata网关机器。可以使用以下命令在A机器上添加路由:
该命令将添加一个路由,将目标网络192.168.243.0/24的流量通过网关192.168.236.140(即suricata网关机器的IP地址)发送出去。
route add 192.168.243.0 mask 255.255.255.0 192.168.236.140
内网机器设置
为了使内网机器能够通过suricata网关机器中转流量,需要在内网机器上添加一个静态路由,以将外网机器的流量发送到suricata网关机器。可以使用以下命令在C机器上添加路由:
该命令将添加一个路由,将目标网络192.168.236.0/24的流量通过网关192.168.243.135(即suricata网关机器的另一个IP地址)发送出去。
route add 192.168.236.0 mask 255.255.255.0 192.168.243.135
suricata网关规则,拦截url中含有“baidu”字符的请求
启动suricata网关,要使用NFQ模式运行Suricata,必须使用 -q 选项。这个选项告诉Suricata它应该使用哪个队列号
将所有流量转发到suricata网关
sudo iptables -I FORWARD -j NFQUEUE
suricata网关配置完成,外网机器访问内网
查看suricata网关日志
0x04 参考连接
https://www.osgeo.cn/suricata/setting-up-ipsinline-for-linux.html#setting-up-ips-with-netfilter
本公众号发布的靶场、文章项目中涉及的任何脚本工具,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断;
本文章、项目内场所有资源文件,杜绝任何靶本公众号、自媒体进行形式的擅自转载、发布
本公众号对任何脚本及工具问题概不负责,包括不限于由任何脚本错误导致的任何损失或损害及任何法律责任;
直接使用本或公众发布的技术、靶场、文章项目中涉及的脚本工具,但在某些行为不符合任何国家/地区或相关地区的情况下进行传播时,引发的隐私或其他任何法律问题的后果概不负责;
如果任何单位或个人认为项目或文章的内容可能侵犯其权利,则应及时通知并证明其身份,证明我们将在收到证明文件后删除相关内容;
以任何方式查看或使用此项目的人或直接或间接使用项目的任何脚本的使用者都应仔细阅读此声明;
本公众号保留更改或补充,免责随时声明的权利;
一旦您访问或使用访问本公众号任何项目,则视为您已接受此免责声明。
您在本声明未发出之时,使用或者访问了本公众号任何项目 ,则视为已接受此声明,请仔细阅读。
此致
由于、利用的信息而造成的任何或直接的此文传播后果,均由用户本人负责,作者不承担任何直接责任。
一切法律后果均由攻击者承担!!!
日站不规范,亲人两行泪!!!
日站不规范,亲人两行泪!!!
日站不规范,亲人两行泪!!!
专注于信息安全方面分享,非营利性组织,不接任何商业广告
关注不迷,点赞!关注!转向!评论!!
要投稿的请留言或者加微信,会第一时间回复,谢谢