新手在linux上部署snort应优先确保系统稳定运行,使用apt安装官方包、修改home_net等三处核心配置、添加icmp测试规则验证告警、最后启用systemd服务持续监听。

新手在Linux上部署Snort,关键不是追求功能全,而是让系统“装得稳、配得准、告警看得见”。跳过源码编译这类易出错环节,用系统包管理器安装官方维护的稳定版本,再聚焦修改几处核心配置,就能快速跑通检测链路。
用apt安装Snort(Ubuntu/Debian系)
现代发行版已将Snort纳入官方源,直接安装即可获得适配良好的二进制版本:
- 更新系统并安装主程序及依赖:`sudo apt update && sudo apt install -y snort snort-common libdaq2`
- 验证安装:运行 `snort -V`,应输出类似 `Version 2.9.17` 的版本号
- 安装过程会自动创建 `snort` 用户与用户组,并配置基础 systemd 服务单元,无需手动建用户或写启动脚本
修改三处核心配置项
主配置文件位于 `/etc/snort/snort.conf`,新手只需关注以下三项:
- HOME_NET:定义你要保护的内网段。例如服务器IP是 `192.168.1.10`,就设为 `ipvar HOME_NET 192.168.1.0/24`
- EXTERNAL_NET:通常保持默认 `any` 即可,表示监控所有外部流量
- RULE_PATH:确认规则目录路径正确,常见为 `var RULE_PATH /etc/snort/rules`;确保该目录存在且 `snort` 用户有读取权限(`sudo mkdir -p /etc/snort/rules`)
添加一条ICMP测试规则并验证告警
先不引入复杂规则集,用最简方式确认整个流程通畅:
- 在 `/etc/snort/rules/local.rules` 中添加一行:`alert icmp any any -> $HOME_NET any (msg:"ICMP Ping Detected"; classtype:icmp-event; sid:1000001; rev:1;)`
- 编辑 `/etc/snort/snort.conf`,取消这行的注释:`include $RULE_PATH/local.rules`
- 保存后执行一次测试命令:`sudo snort -A console -q -c /etc/snort/snort.conf -i eth0`(将 `eth0` 替换为你实际网卡名,可用 `ip a` 查看)
- 另开终端执行 `ping -c 1 192.168.1.10`,控制台应立即打印出带 `[**] [1:1000001:1] ICMP Ping Detected` 的告警信息
启用Snort为后台服务持续运行
测试成功后,转为守护进程模式保障长期监听:
- 启用并启动服务:`sudo systemctl enable snort && sudo systemctl start snort`
- 检查状态:`sudo systemctl status snort`,显示 `active (running)` 即正常
- 日志默认输出到 `/var/log/snort/alert`,可用 `tail -f /var/log/snort/alert` 实时查看新告警











