suricata日志输出到socket
1、修改配置文件
修改filetype
为unix_stream
,并将filename
修改为sock文件,socket文件默认还是保存在default-log-dir
目录下
- unix_stream:TCP版
- unix_dgram:UDP版
2、创建socket server
- 这是一个Demo,可以优化
import socket
import os
server_address = '/var/log/suricata/fast.sock'
if os.path.exists(server_address):
os.remove(server_address)
socket_family = socket.AF_UNIX
socket_type = socket.SOCK_STREAM
server = socket.socket(socket_family, socket_type)
server.bind(server_address)
server.listen(1)
print(f"listening on '{server_address}'.")
# 链接循环
while True:
connection, client_address = server.accept()
# 通信循环,必须要通信循环,因为suricata到server只有一个连接,一段退出当前链接,就无法在接收到suricata发出的日志消息
while True:
# TODO: 这里可以加入逻辑,一旦suricata断开连接就break,退出通信循环,等待一个新的连接
data = connection.recv(1024)
# TODO: 接受到流量日志可以写入mysql、kafka等,用于后期处理
print(repr(f"{data.decode()}"))
3、测试
1)规则文件
2)启动suricata
这里以IPS为例子
iptables -I INPUT -j NFQUEUE
iptables -I OUTPUT -j NFQUEUE
suricata -c /etc/suricata/suricata.yaml -q 0 -v
3)生成流量
博客内容仅供参考,部分参考他人优秀博文,仅供学习使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix