什么是入侵保护系统(IPS)
入侵保护系统(IPS)是一种主动的安全防护工具,能够实时监测网络流量和系统行为,当发现符合恶意特征的活动时,会自动采取拦截、阻断等措施,避免服务器受到实际损害。和入侵检测系统(IDS)不同,IPS具备主动防御能力,不需要人工介入就能处理威胁。

CentOS下常用IPS工具选择
在CentOS服务器环境中,常用的IPS工具包括Snort、Suricata等,其中Suricata性能表现更优,支持多线程处理,对新手也更友好,本文以Suricata为例讲解部署配置流程。
Suricata安装步骤
首先更新系统软件源,然后安装Suricata依赖包,最后通过官方源安装Suricata主程序,具体命令如下:
# 更新系统软件源 yum update -y # 安装EPEL源 yum install epel-release -y # 安装Suricata及依赖 yum install suricata -y
Suricata基础配置
安装完成后需要修改主配置文件,设置监测的网络接口和规则加载路径,配置文件默认路径为/etc/suricata/suricata.yaml。
配置监测接口
打开配置文件,找到af-packet部分,设置要监测的网卡,比如服务器使用eth0作为对外网卡,配置如下:
af-packet:
- interface: eth0
# 开启混杂模式
promisc: yes
# 设置缓冲区大小
buffer-size: 65536
加载恶意活动检测规则
Suricata需要规则集才能识别恶意活动,我们可以下载开源的Emerging Threats规则集,解压后放到规则目录,然后在配置文件中指定规则路径:
# 下载规则集 wget https://rules.emergingthreats.net/open/suricata-6.0/emerging.rules.tar.gz -O /tmp/emerging.rules.tar.gz # 解压规则集 tar -zxvf /tmp/emerging.rules.tar.gz -C /etc/suricata/rules/
修改suricata.yaml中的rule-files部分,加载解压后的规则文件:
rule-files: - /etc/suricata/rules/emerging.rules
启动并验证IPS功能
配置完成后启动Suricata服务,设置为开机自启,然后模拟恶意活动测试拦截效果。
# 启动Suricata服务 systemctl start suricata # 设置开机自启 systemctl enable suricata # 查看服务运行状态 systemctl status suricata
测试恶意活动拦截
我们可以从另一台机器对CentOS服务器进行端口扫描,模拟恶意探测行为,扫描命令如下:
# 使用nmap进行端口扫描 nmap -sS 192.168.0.1
扫描完成后查看Suricata的日志文件/var/log/suricata/fast.log,会看到拦截记录:
01/01/2024-10:00:00.123456 [**] [1:2000001:1] ET SCAN Nmap Scan [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 192.168.0.2:12345 -> 192.168.0.1:22
日常运维注意事项
- 定期更新规则集,保证能够识别最新的恶意活动特征
- 定期查看Suricata日志,分析拦截记录,调整规则避免误报
- 根据业务需求自定义规则,比如拦截针对特定端口的暴力破解请求
- 监控Suricata服务运行状态,避免服务异常停止导致防护失效
自定义防护规则示例
如果需要拦截SSH端口的暴力破解行为,可以添加如下自定义规则到本地规则文件:
# 拦截10秒内同一IP对SSH端口发起超过5次连接的请求 alert tcp any any -> $HOME_NET 22 (msg:"SSH Brute Force Attempt"; flow:to_server; threshold: type both, track by_src, count 5, seconds 10; classtype:attempted-admin; sid:1000001; rev:1;)
添加规则后重启Suricata服务即可生效,能够有效减少SSH暴力破解带来的风险。