安全运维 | Perl oneline定位网站攻击源,通过iptables封禁

综合技术 2018-02-11

*本文原创作者:ijzmesec,本文属FreeBuf原创奖励计划,未经许可禁止转载

Web网站日常运维运营时候怎么发现攻击,怎们即时阻断未遂的攻击呢?除了高大上的IDS,IPS,其实个人通过简单一些命令小工具通过分析流量,分析访问日志就能发现这种企图?本文举例说明笔者实际中遇到一例子说明利用单行命令实现从攻击发现到解决的思路和整个操作的过程。最后笔者推荐自己研发的一个简单基于访问日志的Waf模块,用来实现自动分析,按阈值来自动封禁攻击企图。

1、攻击发现

在查看网站每日流量信息信息,突然发现一个时间段流量徒增,猜测可能有攻击,记下当时的时间点,并截图:

这是百度免费cdn的免费统计信息,可见今天早上1点到2点有异常流量。平时对访问日志可以按天进行分割,时常关注日志大小,如果每天日志大小徒增就可以重点关注和分析了。

2、单行命令统计日志定位攻击

(1)分析网站access的日志,分析1点日志

perl -lne '/[16/Feb/2016:01/ and print' access_nginx.log

从上图可见这个时间点确实有大量不同寻常的访问,可判断为针对WP xmlrpc.php的攻击。

(2)对来源ip进行定位并统计次数

perl -lne '/[16/Feb/2016:01/ and print'access_nginx.log|perl -lane 'print $F[0]'|sort|uniq -c|sort –n

可以明确看到是这两个ip在攻击,根据ip查询来源地都是美国,为非正常访问。

(3)对两个ip单独分析,分析其行为

perl -lne '/141.101.75.65/ and print' access_nginx.log|head-n 10

可见,这两个ip先通过搜索文章作者(访问/?author=x),找到用户名,然后通过xmlrpc.php对用户名和密码进行暴力破解。

3、处理和后续扩展

首先对两个ip进行封禁

iptables -I INPUT -s 141.101.75.65 -j DROP

iptables -I INPUT -s 162.158.90.40 -j DROP

由于xmlrpc.php并没有实际中用到,直接删除,或者改名。

当然可以写一个自动处理脚本根据日志判断攻击ip,然后自动封禁,作为一个可持续的方案不错。(见最后推荐的模块,当时就是基于这个思想,开发出的App-Waf这个模块)。

4、关于wp防护建议

平时要多关注官方漏洞信息,随时升级,尽可能的消除安全漏洞。

注意不用系统默认的用户,比如常见的root,admin等都可以改名,设置用户显示别称,这样可以防止用户名直接暴露。

用一些安全插件比如 WPSecurty Scan ,Better wpSecuriry 等。

可以用一些开源ids,比如snort等。

5、自研Waf推荐

笔者自研了一套Waf系统,可以对非法访问进行统计,结合cron计划任务,支持对synflood 泛洪攻击进行封禁,并自动通过iptables或者nginx进行封禁。欢迎大家试用,并给予反馈和需求。

Github源码地址: https://github.com/bollwarm/App-Waf

码云源码地址: https://gitee.com/ijz/app-waf

App-Waf攻击统计截图

*本文原创作者:ijzmesec,本文属FreeBuf原创奖励计划,未经许可禁止转载

您可能感兴趣的

Les Journées Perl / French Perl Workshop 2017 Nobody seems to have blogged about Les Journées Perl so I thought I would blog about Les Journées Perl. Or maybe I haven't been paying a...
CNUTCon 大会 PPT 放送 | 腾讯云多 K8S 集群高可用运维实践分享... 由InfoQ主办的上海运维&容器技术盛会于2017年9月10-11日在上海成功举办,近1000名中高端开发者技术人员参与。此次大会, 腾讯云分享了多Kubernetes集群高可用运维实践,并向广大开发者限时免费提供上半年已上线的Serverless体验环境。 此...
一位女运维的自述:3年为公司节省10亿元!... 本文作者将跟大家分享她在腾讯运营成本优化方面的实战经验,并探讨精细化成本管理的价值是什么。 我是来自腾讯 SNG 社交网络运营部,简称 DSNO(屌丝 NO.1)团队的一枚大龄女屌丝。下面这张图上半部分大家很熟悉是王思聪的第一个人生小目标。 作为一枚女屌丝为什么会有...
Nginx 源代码笔记 – 运维命令 ngx-manipulation 作为 Linux 平台上优秀的 Web Server,Nginx 也实现了 Linux 服务器的标配管理操作: 重新打开日志文件、终止运行 (优雅地或者强制地) 和 重新读取配置文件并 (优雅地)重启。 此外,Nginx 还实现了...
NETSCOUT再现验收神器,OneTouch AT G2替你终结网络测试“噩梦”... 【51CTO.com原创稿件】刚刚从学校信息部的每周例会上回到工位,小聂觉得自己正在遭遇一场前所未有的压力,他自嘲自己已经快“黔驴技穷”了。原因还得追溯到上个月,小聂所在的高校又开设了两处新校区。领导明确指示信息部门,借着新旧校区综合布线工作的展开,必要将现有的教育网与传统电话网络连接起来,扩...