在网站的日常运维过程中,如何才能发现攻击,如何才能立即阻止企图攻击?除了高大上的电脑上的IDS和IPS,其实个人通过简单的命令小工具分析流量和访问日志就能发现这种企图?本文通过一个实例来说明使用单行命令从攻击发现到解决的思想和整个操作过程。最后推荐一个自己开发的简单Waf模块,基于访问日志,实现自动分析,根据阈值自动拦截攻击企图。
1.攻击发现

看网站每天的流量信息,突然发现一段时间内流量增加,猜测可能有攻击。记下当时的时间点,截图:
这是免费cdn的免费统计信息。可以看到今天凌晨1点到2点流量异常。通常访问日志可以按天划分,日志大小一直是关注的问题。如果日志大小每天都在急剧增加,可以重点关注并分析一下。
2.单行命令统计日志位置攻击
分析网站访问的日志,分析1点的日志。
perl -lne '/[16/Feb/2016:01/并打印' access_nginx.log
从上图可以看出,这个时间点确实有很多不寻常的访问,可以判断为对WP xmlrpc.php的攻击。
定位源ip并计算次数。
perl-lne '/[16/Feb/2016:01/and print ' access _ nginx . log | perl-lane ' print $ F[0]' | sort | uniq-c | sort–n
可以明显看出这两个IP都在进攻。根据IP查询,来源是美国,属于非正常访问。
分别分析这两个ip,分析他们的行为。
perl -lne '/141.101.75.65/并打印' access_nginx.log|head-n 10

可以看到,这两个IP首先通过搜索文章作者找到用户名,然后通过xmlrpc.php暴力破解用户名和密码。
3.加工和后续扩展
首先,封杀这两个IP。
iptables-I input-s 141 . 101 . 75 . 65-jDROP
因为实际中不使用xmlrpc.php,所以可以直接删除或重命名。
当然,你可以写一个自动处理脚本,根据日志判断攻击ip,然后自动封禁。作为一个可持续的方案,这是好的。。
4.关于wp保护的建议
平时要多关注官方漏洞信息,随时升级,尽可能消除安全漏洞。
注意,不使用默认系统的用户,如普通root、admin等。,可以重命名,还可以设置用户的显示昵称,防止直接暴露用户名。
使用一些安全插件如WPSecurty Scan,Better wpSecuriry等。
可以使用一些开源的id,比如snort等。

5.自行开发晶圆推荐
作者开发了一个Waf系统,可以统计非法访问。结合cron规划任务,支持synflood洪泛攻击的抑制,被iptables或nginx自动拦截。欢迎大家试用,反馈意见和需求。
Github源地址:https://github.com/bollwarm/App-Waf
云源代码地址:https://gitee.com/ijz/app-waf
App-Waf攻击统计截图


