缘起

更新了Aria主题后,留言板页面模板也随之更改,增添了访问量显示。

于是。。留言板访客数量以肉眼可见的速度,一夜之间就刷到了600+,联想到之前被垃圾评论疯狂侵犯的场景,啊啊,难道一直都没有没有停歇的吗。。

在更换留言板页面网址依然无果之后,便开始了追溯这个神秘访客的征程= =

各大统计平台

无非就是谷歌,百度,cnzz之类的平台,在页脚插段JS代码实现统计

虽然是省事,图表信息也多式多样,但存在一个巨大的硬伤——精准.

比如那留言板的神秘人物愣是一个痕迹都留不住

而且在现在屏蔽这些统计脚本的情况也越来越多,虽然我也推崇反跟踪反广告(

博客插件

Typecho 上有一款插件 Access 可以提供简易的访客记录查看

Access介绍

使用

  • 支持爬虫与人类的区分

当看到自己的小站还是有爬虫关顾时,才知道百度统计中爬虫统计是多么不可靠,每次看到那贴着0底线的图表,心里= =。插件本身还是很不错的,能够满足基本要求。

  • 只支持IPv4。。这也是导致我弃坑的直接原因

如果访客是IPv6的话,正如上图所示,IP变成了0.0.0.0

突然又激起我的折腾病,粗看代码,看来是PHP中ip2long的锅。。然而如果要改动起来,不仅储存方式要变导致之前日志失效,查IP接口代码也要改……让对PHP一无所知的我有一次跪了

这款插件还有很大的发展空间呐。。

  • Cloudflare 下无法显示真实访客IP

这时候你便需要mod_cloudflare

官网的文档写的挺详细的,在这就不翻译了(懒

但还是要注意,经过这些天对服务器的折腾,不得不说,不要不经思考的对着教程对着命令就是复制粘贴地运行,一定要结合系统环境情况。比如在一些lnmp一键安装包的情况下,一些命令的目录会随之更改。

比如apxs便可以在这里找到 /usr/local/apache/bin/apxs

  • 访客量过大时不建议使用,小心数据库爆炸

回到主线

通过这个插件,总算是找到了那个刷页狂魔

5.188.210.* 俄罗斯

啊!是战斗民族!但还是果断block之

至此留言板总算是安静了,完结撒花~

。。。

说好的三步走呢?IPv6咋整?

。。。还是有办法的

日志

想起了之前配置Vhost的时候,貌似给域名开启了access log,现在终于派上用场了

开启日志

在这只讨论Apache,nginx可参照这篇

在对应的<VirtualHost>下添加

CustomLog 日志存放路径 combined

这个combined 其实也是有学问的,代表着日志格式,可以在httpd.conf中找到对应的LogFormat,也可以自定义

然后记得重启apache,更详细可参照这篇

阅读日志

linux 下的花式阅读命令,详细可看 http://blog.chinaunix.net/uid-20864319-id-448838.html

cat: 由第一行开始显示档案内容
tac: 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl: 显示的时候,顺道输出行号!
more: 一页一页的显示档案内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head: 只看头几行
tail: 只看尾巴几行
od: 以二进制的方式读取档案内容!

在日志里IPv6的记录当然不在话下,然而就在命令行疯狂跳动的时候,突然瞄到了些不好的东西

200.60.5.81 - - [24/Nov/2018:04:59:09 +0800] "GET /phpMyAdmin.old/index.php HTTP/1.1" 400 9543 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
200.60.5.81 - - [24/Nov/2018:04:59:09 +0800] "GET /pma-old/index.php HTTP/1.1" 400 9543 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
200.60.5.81 - - [24/Nov/2018:04:59:10 +0800] "GET /claroline/phpMyAdmin/index.php HTTP/1.1" 400 9543 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
200.60.5.81 - - [24/Nov/2018:04:59:12 +0800] "GET /typo3/phpmyadmin/index.php HTTP/1.1" 400 9543 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
200.60.5.81 - - [24/Nov/2018:04:59:14 +0800] "GET /phpma/index.php HTTP/1.1" 400 9543 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
200.60.5.81 - - [24/Nov/2018:04:59:15 +0800] "GET /phpmyadmin/phpmyadmin/index.php

嗯?啥玩意儿?又是敏感目录又是各种Shell的,傻子都知道被攻击了,不看不知道一看吓一跳,小站也难逃被攻击的命运 = =

分析日志

其实分析工具也有蛮多了,在这又只介绍两个,因为他们都有同样一个特点——可视化图表

360星图

官网:http://wangzhan.360.com/activity/xingtu(已经无法下载,某西软件园可下)

360的早期产品,似乎现已停更?但还是不妨碍暂时拿来用用,主要是因为它能在Windows下本地运行

能够生成安全分析报告和常规分析报告的HTML

oh...看来一直都不太太平呢。。。

GoAccess

GoAccess是一个开源实时Web日志分析器和交互式查看器,可以通过*nix系统的终端或通过浏览器运行。

官网:https://goaccess.io

centos 的话 直接yum install goaccess

可以说是非常强大了,既能提供命令行式:

又能提供网页图表:

可以通过官方提供的Demo来体验一下

通过命令行生成HTML,Json,CSV格式的报表到指定目录,结合Crontab实现定时任务,可以实现在网站上监控了,详细可以看看这篇refer

这下子,就成了真·访客记录了(雾

后记

至此,也总算达成了目的,相比之前总算是精确了许多。。也被震惊了许多

本文也只是篇很粗略的介绍,主要也是把这几天折腾的给记录下来= =

陷入了矛盾啊。。自己不能够很好的描述清楚,要搬运其他博客的知识得要注明来源,这样下来一篇文章挂满了外链各种传送门,观感有点差。很多东西又是浅尝辄止的样子,究竟怎样才能写好一篇博文呢(笑