2019年

入手斐讯(PHICOMM)K2P这个无线路由差不多3个月,终于把问题都解决了,于是把折腾过程记录一下。

原来一直在用仕牌(SeaPai)WR1200,当时(2016年)号称屌丝专用的超高性价比千兆路由。其价格在100RMB以下,支持千兆有线以太网,2.4GHz和5GHz无线WiFi,信号稳定,网上也有很多刷机改造教程。后来发现无线设备多了以后,会卡,单反拍的1080p视频无法通过WiFi访问DLNA播放等等,于是在一番搜索后,入手了K2P。这货开卖时,带有挖矿属性,甚至可以赚钱,可惜入手晚了。

简单总结一下K2P的使用感受。无线信号很好(中等强度可覆盖两层楼),性能很强(前面提到的1080p视频可以流畅播放了),功能丰富(当然是刷了固件之后),超出了对无线路由的认识和理解。缺点是内置存储容量不够(导致固件功能需要取舍),也没有USB口(导致不能扩展容量)。由于有自家的服务器,这两个缺点可以无视。

入手第一件事,当然是刷固件。搜了一圈,很多人都说官方定制固件(简称:官改)比较稳定,于是就选择这个。刷机过程没什么好说的,固件下载地址及详细刷机教程如下:
斐讯K2P MTK官方固件定制版
https://www.right.com.cn/forum/thread-221578-1-1.html

官改的问题如下:
1)“功能设置”没有端口映射,只有“端口转发”。解决方法很简单,就是ssh进去,手动设置防火墙(/etc/config/firewall)。详细的教程如下:
斐讯k2p 官改固件 设置端口映射
https://www.right.com.cn/forum/thread-304738-1-1.html

2)不能访问mindlna服务。服务器上运行着minidlna服务,刚启动该服务时,手机可以找到并访问该DLNA服务,但是过一段时间就不能访问了。这个不知道是不是官改固件的问题。后来把minidlna配置文件的notify_interval值改小一点,就解决了。

年初,检查公司某个网站的后台日志,发现圣诞节前夕的登录出错日志暴涨。检查了一下,绝大部分是Email错误,然后断定是黑客拿着一堆Email和密码在撞库。

简单统计了一下,网站的日志,超过200万条登录错误数据,一秒大概7~10个请求。第一反映是图形验证码被破解了,而且大概10秒就分析出来。

幸好Nginx有Access Log。请求的行为是,先访问网站主页,再访问登录页,最后调用登录按钮的请求,检查Email密码是否正确。随机挑选了几个相关IP,都是泰国的。由于没有记录User Agent,所以不知道黑客是用什么程序或者爬虫,不能进一步分析并排除相关访问来源。另外,再细心分析,相关的撞库访问记录,都没有访问获取图形验证码。那就是,黑客根本就没有破解验证码。检查了代码,网站登录时,同一Email输入三次密码错误后才要求输入验证码。而黑客是利用一堆IP,输入不用的Email,所以,算是绕过了验证码。

最后,目前的处理是同一IP,登录错误3次后,就需要输入验证码。其实图形验证码也不是想象中那么容易破解,就可以防一防。但是,这不是一劳永逸的。

在V2上跟网友沟通了一下,总结一些方案:

1)升级验证码,采用更强更复杂的验证码。但是复杂的验证码(例如扭曲的字符串),对用户不友好的,所以Google推出了reCAPTCHA v3。reCAPTCHA v3无需用户进行任何操作,Google会分析其行为并打分,让网站程序自己根据评分进行处理。比如评分为0.9则认为是人类,0.4分则要进一步验证之类。

2)登录限制规则。比如过滤掉某些有问题的IP(通过第三方接口判断或网站本身记录),过滤有问题的来源(通过User Agent识别),登录错误若干次后进行限制等等。

3)采用二步验证。包括但不限于手机短信验证码、Email验证链接、Google的身份验证器、WebAuthn标准的方案等等。