入侵探测系统(IDS)是通过监控网络流量、系统日志等资源,识别潜在恶意行为的安全工具,在CentOS服务器防护体系中扮演着重要角色。部署合适的IDS可以有效发现端口扫描、暴力破解、异常登录等未经授权访问行为,为服务器安全提供多一层保障。

IDS的核心工作模式
IDS主要分为两种工作模式,不同模式适用不同的防护场景:
- 网络型IDS(NIDS):部署在网络边界,监听经过服务器的所有网络流量,通过分析数据包特征识别攻击行为,适合检测端口扫描、DDoS攻击等网络层威胁。
- 主机型IDS(HIDS):部署在单个服务器内部,监控系统文件变更、用户登录记录、进程行为等,适合检测本地提权、恶意文件写入等主机层威胁。
在CentOS上部署Snort NIDS
Snort是开源的轻量级IDS工具,支持实时流量分析和规则匹配,以下是在CentOS 7/8系统上的部署步骤:
1. 安装依赖环境
首先安装Snort运行所需的依赖包:
# 安装epel源 yum install -y epel-release # 安装依赖库 yum install -y gcc flex bison zlib zlib-devel libpcap libpcap-devel pcre pcre-devel libdnet libdnet-devel
2. 安装Snort
下载Snort源码包编译安装,也可以直接使用yum安装:
# 直接通过yum安装 yum install -y snort # 验证安装版本 snort --version
3. 配置Snort规则
Snort通过规则文件识别攻击行为,默认规则路径为/etc/snort/rules/,可以下载官方规则集或者自定义规则。以下是检测SSH暴力破解的自定义规则示例:
# 编辑本地规则文件 vi /etc/snort/rules/local.rules # 添加以下内容,检测短时间内多次SSH连接尝试 alert tcp any any -> $HOME_NET 22 (msg:"SSH Brute Force Attempt"; flags:S; threshold:type limit,track by_src,count 5,seconds 60; sid:1000001; rev:1;)
上述规则的含义是:监控所有源地址到服务器22端口的TCP连接,如果同一个源地址在60秒内发起5次以上SYN连接请求,就触发告警,提示可能存在SSH暴力破解行为。
4. 调整Snort主配置
修改/etc/snort/snort.conf配置文件,指定监控的网络范围和规则路径:
# 设置HOME_NET为服务器所在网段,比如服务器IP是192.168.1.10,网段是192.168.1.0/24 ipvar HOME_NET 192.168.1.0/24 # 启用本地规则 include $RULE_PATH/local.rules
启动Snort并验证检测效果
启动Snort并设置为开机自启,同时查看告警日志验证功能是否正常:
# 启动Snort,监控eth0网卡,后台运行 snort -i eth0 -c /etc/snort/snort.conf -D # 设置开机自启 systemctl enable snort # 查看告警日志,默认路径为/var/log/snort/alert tail -f /var/log/snort/alert
当有其他机器对服务器发起高频SSH连接尝试时,告警日志会出现对应的记录,包含攻击源IP、时间和行为描述,运维人员可以根据这些信息及时封禁恶意IP。
IDS告警的后续处理
IDS仅负责检测威胁,还需要配合其他工具完成防护闭环:
- 可以将Snort告警日志接入日志分析工具,设置自动告警通知,第一时间告知运维人员。
- 结合防火墙工具,比如firewalld,编写脚本自动将触发告警的源IP加入黑名单,阻断后续访问。
- 定期更新IDS规则库,覆盖最新的攻击特征,避免新型攻击绕过检测。
注意:IDS可能会产生误报,需要定期梳理告警规则,调整阈值,避免正常业务流量被误判为攻击行为,影响业务正常运行。
主机型IDS的补充部署
除了网络型IDS,还可以在CentOS上部署HIDS工具比如OSSEC,监控服务器本地的文件变更、用户登录行为:
# 安装OSSEC yum install -y ossec-hids # 修改配置,启用文件完整性监控和登录监控 vi /var/ossec/etc/ossec.conf # 启动服务 systemctl start ossec-hids
网络型IDS和主机型IDS结合使用,可以覆盖从网络层到主机层的全维度检测,更全面地防范未经授权访问。
IDSSnortCentOS_服务器入侵检测修改时间:2026-07-17 00:06:28