OSSEC联动阻断WEB页面CC攻击
实验名称:
OSSEC联动阻断WEB页面CC攻击
实验环境
三台机器 一台OSSEC服务器,同时作为WEB服务器 一台windows客户端,访问WEB 一台linux客户端,访问WEB
实验原理
OSSEC服务器,根据日志与规则,解析出对应IP字段,调用默认脚本,使用iptables进行IP阻断。
实验步骤
一、 安装iptables用于阻断
登录OSSEC服务器,切换为root用户
sudo -i
输入密码360College
安装iptables
yum install -y iptables*
启动iptables
systemctl start iptables
在局域网放行SSH的22和80端口
iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -s 192.168.0.0/24 -j ACCEPT
二、配置WEB服务器
vim /var/www/html/test.txt
随便输入内容。
三、添加APACHE日志监控
编辑OSSEC配置
vim /var/ossec/etc/ossec.conf
加入以下内容,注意位置
<localfile>
<log_format>apache</log_format>
<location>/var/log/httpd/access_log</location>
</localfile>
保存后退出
添加日志权限
chmod +r /var/log/httpd/access_log
四、 新建告警规则
登录 OSSEC服务器操作 vim /var/ossec/rules/web_rules.xml
在最后加入
<rule id="31179" level="3">
<if_sid>31108</if_sid>
<url>.txt</url>
<description>target url </description>
</rule>
<rule id="31180" level="13" frequency="15" timeframe="60">
<if_matched_sid>31179</if_matched_sid>
<same_source_ip />
<description>alert_attack </description>
<group>DDOS</group>
</rule>
保存退出后,重启服务器端服务
/var/ossec/bin/ossec-control restart
五、测试报警与阻断
登录 web-curl-client
重复发送测试命令,发20次,注意替换IP为OSSEC SERVER IP地址 curl 192.168.0.55/test.txt
到后面发送已经没有响应
六、阻断规则配置思路
查看配置 vim /var/ossec/etc/ossec.conf
其关键是srcip这个参数识别。 OSSEC能中apache日志中识别到这个参数
当含有srcip的规则,触发告警,且级别大于6,就会自动阻断。
查看iptables规则 iptables -nvL
查看阻断日志 cat /var/ossec/logs/active-responses.log
此时用另一台windows设备是可以正常访问OSSEC的WEB页面
实验小结:
OSSEC的阻断思路,是从日志中提取IP来进行操作。 OSSEC自带的阻断脚本比较完善,只会阻断600秒,600秒后,会放出iptables的小黑屋。又可以重新访问。
当然也可以结合规则 ,提取其它字段进行脚本操作。