snort
snort
官网: https://www.snort.org
官方文档: https://www.snort.org/documents
有详细的规则字段介绍: https://docs.snort.org/welcome
snort是一个开源的IPS/IDS。
IPS, Intrusion Prevention System, 入侵防御系统
IDS, Intrusion Detection System, 入侵检测系统
现在有2.x和3.x版本,2.x安装比较方便,支持windows。
snort规则
规则构成:
[action][protocol][sourceIP][sourceport] -> [destIP][destport] ( [Rule options] )
匹配ping(ping属于ICMP):
alert icmp any any -> any any (msg:"ICMP Test"; sid:6; rev:1;)
offset 用于指定要匹配的数据相对于报文起始位置的偏移量。
distance 用于指定要匹配的数据相对于Offset字段所指定位置的距离。
depth 用于限制在数据中进行匹配的最大长度。
within 用于限制匹配数据在指定范围内进行。
offset和depth配对使用,offset可以没有,表示从偏移0开始匹配,"offset 4; depth 8"表示匹配范围[4,12]的内容
distance和within配对使用,distance可以没有,表示和上次匹配内容距离为0
如果没有任何修饰条件,多个content没有先后顺序,只要都在就可以
content的内容前如果有"!",表示不能有这样的内容
在windows安装使用
下载安装包,直接安装就好了,snort.exe在bin文件夹下,为方便使用,可以把bin文件夹路径添加到path。
etc文件夹下的snort.conf是需要自己调整的配置文件(调整前做备份),运行时也需要指定,举例:
snort -c c:\snort\etc\snort.conf
大概需要修改的点和思路:
- 改成正确的路径
- 注释不需要的部分
直到运行上面的命令不出错,就基本改完了。
ping示例
- 创建规则文件,如test.rules,写好规则后,把规则文件放在rules文件夹下
- 在snort.conf中添加一行
include $RULE_PATH/test.rules
- 执行命令:
snort -c c:\snort\etc\snort.conf
- 随便ping一个地址
这样就可以在log目录下的alert.ids文件里看到命中的记录了
如果想让命中记录既保存在alert.ids文件又显示在命令行中,可以添加选项 -A console -A full
如果在命令行中只想看到命令记录,可以添加选项 -q
,让输出少一点
pcap包读取
snort -c c:\snort\etc\snort.conf -A console -A full -r ping.pcap
在ubuntu安装使用
sudo apt install snort
配置调整也是和windows类似的思路,指定配置执行,直到不出错: /etc/snort/snort.conf
测试命令:
sudo snort -T -c /etc/snort/snort.conf
sudo snort -c /etc/snort/snort.conf -A console -A full -r ping.pcap
命中记录文件: /var/log/snort/alert
从源码安装snort比较复杂,如果需要,参考该链接即可:
https://upcloud.com/community/tutorials/install-snort-ubuntu/
其它
snort不匹配环回包,暂时需要避免用环回包做实验,因为还不知道怎么配置可以匹配环回包
2021/10/21
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异