文章总结: 本文档详述了在CentOS7环境下安装与配置开源入侵检测系统Snort的过程。内容包括前置准备、组件安装、配置文件修改、自定义ICMP规则编写及功能验证测试。文档演示了如何通过ping触发警报并查看日志,最后介绍了配置后台服务的方法。这是一份面向实战的基础教程,帮助安全人员快速搭建基础网络监控环境。 综合评分: 78 文章分类: 网络安全,安全工具,安全运营
Snort安装及基本用法
原创
dcnb dcnb
Web安全基础与实践
2026年1月31日 18:01 广东
Snort是一套开放源代码的网络入侵预防软件与网络入侵检测软件。Snort使用了以侦测签名(signature-based)与通信协议的侦测方法。Snort使用基于规则的语言结合异常、协议和签名检测方法来检测潜在的恶意活动。
使用Snort,网络管理员可以发现拒绝服务攻击(DoS)和分布式拒绝服务攻击(DDoS)、通用网关接口攻击(CGI)、缓存区溢出和隐形端口扫描。Snort创建了一系列规则,定义恶意网络活动、识别恶意数据包并向用户发送劲爆。Snort规则语言决定了应该收集哪些网络流量,以及在检测到恶意数据包的时候发生什么。这种嗅探含义与嗅探器和网络入侵检测系统用于发现恶意数据包的方式相同,也可以用作监控网络活动并检测和阻止潜在攻击向量的完整网络IPS入侵防御服务解决方案。
1、前置工作
以CentOS7靶机安装Snort为例进行演示。更新yum源和软件包,安装相关的软件。由于本文中的Linux用户已经是root所以不需要使用sudo,如图1所示。
图1 进行前置工作
2、安装SNORT&DAQ
使用官网预编译的rpm安装包进行snort&daq的安装,如图2和图3所示。
图2 安装daq
图3 安装snort
3、配置SNORT
Snort官方提供了三种下载规则:第一种是Community rules社区规则,无需注册购买即可下载使用;第二种是Registered rules注册规则,需要在官方注册账户后才可下载使用;第三种是Subscriber rules付费订阅,必须要购买规则才可以使用。而本文采用第一种Community rules,首先下载并解压Community rules,如图4和图5所示。
图4 安装snort-rules
图5 解压snort-rules
其次,创建所需要的目录和文件。在前面的一些操作中,有一部分的目录已经自动创建成功了,所以在创建目录中出现“File exists”的提示无需担心,如图6所示。
图6 创建文件和目录
然后编辑snort文件,找到var RULE_PATH ../rules以及附近的其它四条配置信息,并且修改路径变量为以下信息,如图7所示。
图7 编辑snort配置文件
如图8所示,设置日志目录:找到#config logdir:…,取消注释后(取消#)将该行修改为:
config logdir: /var/log/snort
图8 设置日志目录
如图9所示,配置输出插件:找到#output unified2:….,取消注释后(取消#)将该行修改为:
output unified2:filename snort.log, limit 128
图9 配置输出插件
设置snort启动时需要加载的自定义规则项目:找到#include local.rules,取消注释local.rules后(取消#),添加include $RULE_PATH/community.rules,同时将后面的include全部添加注释,一直注释到step 8 附近的include,如图10所示。
编辑完成后esc-:wq保存退出。
图10 配置自定义规则
编写测试用的local.rules,因为在snort.conf配置文件中读取了该规则文件,这个snort规则(alert)是用来在检测传入本地网络($HOME_NET)的ICMP数据包的,会输出一个“ICMP test”的警报信息,生成事件ID(sid)10000001。当触发这个规则时,它将会记录与之关联的警报或日记信息。
cd /etc/snort/rulesecho 'alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001;)' > local.rules
以下命令可以测试snort是否配置正确。需要注意需要用自己的网络接口进行测试,不确定的话可以通过ip addr查询。输出将列出当前配置的所有网络接口,查找具有预期IP地址的那一个。通常是eth0或者ensXX。
snort -T -i ens33 -c /etc/snort/snort.conf
出现“Snort successfully vaildated configuration”即表示配置成功,如图11所示。
图11 snort配置成功
4、测试SNORT
使用以下命令启动测试:
snort -A console -i ens33 -u snort -g snort -c /etc/snort/snort.conf
在snort启动并运行后,其他设备对该CentOS发送ICMP请求时,一般都是ping。就会在运行snort的终端中看到每个ICMP请求的警告,如图12所示。
图12 CentOS7攻击机 ping CentOS7靶机
警告显示后可以使用Ctrl+c停止snort,如图13所示。
图13 snort警报记录
如图14所示,警报将会记录到 /var/log/snort/snort.log.时间戳内,其中时间戳是以unix时间标记的snort启动时间点。可以使用以下命令读取日记。
snort -r /var/log/snort/snort.log.时间戳
图14 日志显示信息
如果不知道具体的时间戳是什么也可以使用以下命令查询。
ls -l /var/log/snort/
日志里面会显示每一个ICMP请求的警告,其中包含了源和目标IP、时间和日期,以及其它一些信息。
5、后台运行SNORT
如果想在后台运行snort作为服务,应该先从snort文档下载启动脚本。如果已经使用yum安装了snort,就已经配置了启动脚本,可以通过以下命令启动服务。
wget https://www.snort.org/documents/snort-startup-script-for-centos -O ~/snortdchmod 755 ~/snortd && mv ~snortd /etc/init.dsystemctl daemon-reload //重新加载系统守护程序systemctl start snortd //启动snort服务
本文由麦晓琳同学投稿。
- END –
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Web安全基础与实践 dcnb dcnb《Snort安装及基本用法》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论