缘起
更新了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系统的终端或通过浏览器运行。
centos 的话 直接yum install goaccess
可以说是非常强大了,既能提供命令行式:
又能提供网页图表:
可以通过官方提供的Demo来体验一下
通过命令行生成HTML,Json,CSV格式的报表到指定目录,结合Crontab
实现定时任务,可以实现在网站上监控了,详细可以看看这篇refer。
这下子,就成了真·访客记录了(雾
后记
至此,也总算达成了目的,相比之前总算是精确了许多。。也被震惊了许多
本文也只是篇很粗略的介绍,主要也是把这几天折腾的给记录下来= =
陷入了矛盾啊。。自己不能够很好的描述清楚,要搬运其他博客的知识得要注明来源,这样下来一篇文章挂满了外链各种传送门,观感有点差。很多东西又是浅尝辄止的样子,究竟怎样才能写好一篇博文呢(笑
|´・ω・)ノ用了CDN的话,追踪真实ip可以在config.inc.php里添加
即可~
By Gazzz at February 7th, 2019 at 12:16 pm.
@Gazzz
学习了,原来对于typecho还有如此办法。对于Cloudflare来说,这或许更是个一劳永逸的方法,因为服务器上的其他程序也能够记录真实客户端IP了
By FSpark at February 9th, 2019 at 12:22 am.
@FSpark
有时间还可以加上geoip模块~
把俄罗斯/乌克兰/韩国的ip全部禁止访问就行了,或者是只留中国ip通过,这样几乎就没有垃圾评论了~
By Gazzz at February 9th, 2019 at 01:41 pm.
@Gazzz
φ( ̄∇ ̄o)诶,这个可以有
By FSpark at February 9th, 2019 at 05:09 pm.
我的网站都没弄这些访客统计,想到和我建站的初衷不一样
By 清秋 at February 1st, 2019 at 01:21 am.
@清秋
也的确是这样呢
By Fspark at February 1st, 2019 at 11:25 pm.