CentOS 7 安装 Snort
准备工作
在开始安装 Snort 之前,确保系统满足基本要求,CentOS 7 64 位系统是推荐的操作系统,至少需要 2GB 内存和 20GB 硬盘空间,建议以 root 用户或具有 sudo 权限的用户身份操作,以便执行安装和管理命令。

更新系统
更新系统包和已安装的软件包,确保系统处于最新状态,打开终端,运行以下命令:
sudo yum update -y sudo yum upgrade -y
这一步可以修复潜在的安全漏洞和兼容性问题,为后续安装打下基础。
安装依赖项
Snort 的运行需要一些依赖项,包括 GCC、Flex、Bison、LibPCAP、Libdnet 等,使用 yum 安装这些依赖:
sudo yum install -y gcc flex bison libpcap-devel libdnet-devel tcpdump zlib-devel libnghttp2-devel lua-devel openssl-devel rpm-build
这些工具和库是编译和运行 Snort 所必需的,确保安装过程顺利完成。
添加 EPEL 仓库
EPEL(Extra Packages for Enterprise Linux)仓库提供了许多额外的软件包,启用 EPEL 仓库可以简化 Snort 的安装:
sudo yum install -y epel-release
安装完成后,可以再次运行 yum update 确保仓库信息同步。
下载 Snort 源码
从 Snort 官方网站下载最新的源码包,以 Snort 3.0 为例,使用 wget 命令:

wget https://www.snort.org/downloads/snort/snort-3.0.0-1.src.rpm
下载完成后,使用 rpm 命令解压并准备编译环境:
rpm -ivh snort-3.0.0-1.src.rpm
编译和安装 Snort
进入 /usr/src/redhat/SOURCES 目录,找到解压的源码文件,然后使用 rpmbuild 命令编译:
cd /usr/src/redhat/SOURCES rpmbuild --rebuild snort-3.0.0-1.src.rpm
编译完成后,安装生成的 RPM 包:
rpm -Uvh /usr/src/redhat/RPMS/x86_64/snort-3.0.0-1.el7.x86_64.rpm
配置 Snort
安装完成后,需要创建基本的配置文件,首先生成默认配置:
sudo snort --help | grep -i "usage" > /etc/snort/snort.lua
然后编辑 /etc/snort/snort.lua 文件,设置网络接口、规则路径等参数。
ips = {
rules = "/etc/snort/rules",
variables = HOME .. "/etc/snort/rules/variables",
}
启动 Snort 服务
使用 systemctl 命令启动 Snort 服务并设置为开机自启:
sudo systemctl start snort sudo systemctl enable snort
检查服务状态:

sudo systemctl status snort
验证安装
运行以下命令验证 Snort 是否正常工作:
snort -T
如果输出显示 Snort 初始化成功,说明安装完成。
配置防火墙
确保防火墙允许 Snort 相关流量,添加规则并重新加载防火墙:
sudo firewall-cmd --permanent --add-service=snort sudo firewall-cmd --reload
FAQs
Q1: Snort 安装后无法启动,如何排查?
A1: 首先检查日志文件 /var/log/snort/alert 或 /var/log/messages,查看错误信息,常见问题包括配置文件语法错误、依赖项缺失或权限不足,可以使用 snort -T 命令测试配置,或重新安装依赖项解决。
Q2: 如何更新 Snort 规则?
A2: Snort 规则可以从 Emerging Threats 或 Snort 官方网站下载,下载后,将规则文件放置在 /etc/snort/rules 目录下,并更新 snort.lua 中的规则路径,使用 snort -T 测试规则加载是否成功,然后重启 Snort 服务使规则生效。