最近博客经常时不时的被人攻击,有时候对网站影响不大,有的时候对网站影响很大,会导致网站持续性的CPU过高。
如果网站或者服务器因为漏洞被攻击、被黑导致了异常的话,一般服务器肯定会存在一些日志或者读写文件的操作。我们一般的博客都是采用开源程序进行二次开发的。这样如果从代码层面去分析问题的话,会比较困难,代价也比较高。
开源程序也是难免会有这样那样的BUG的,所以如果修复不及时的话,还是有可能会被人黑掉,从而写入WebShell等木马。
所以我计划采用实现如下安全工具来实现对于网站安全性的监控:
1、服务器指定目录的防篡改,自动备份,自动恢复工具;
以前参与过Web网页防篡改,数据库防篡改设备的开发,对于实现的原理比较熟悉,也了解实现的过程中有哪些性能风险和遇到的一些坑,实现起来难度不大。
2、日志文件分析工具;
该工具可以帮助分析Web代码的漏洞和黑客的攻击流程和方式。其实这个工具也是一个非常好的挖洞工具。试想一下,一个大型的网站或者一个开源程序,要想挨个文件去挖掘其中的漏洞,工作量是何其的大。如果我们将这些应用部署在测试服务器上,然后用各种扫描工具或者线上安全测试部署。这样通过分析日志,可以很快的发现代码中存在的漏洞,而且可以减少大量的人工精力。特别在SQL注入,XSS,文件包含,溢出等等漏洞的挖掘方面。然后再提交漏洞到360,乌云,阿里云之类的平台上,还可以给自己带来额外的收入哦(有些系统的漏洞卖起来还是很值钱的)。
3、数据库监控;
监控数据库的连接数,慢查等等,主要用于优化系统。
4、实时日志文件分析检测到攻击后,将IP加入到iptables中,实现基础版本的Web应用防火墙。
5、定时对系统的CPU,内存TOP10的进程进行记录。
6、监控数据库和apache进程的内存和CPU使用状态
但是如果发现遇到DDOS攻击的话,那以上方式也就是形同虚设了,因为目前来说对于DDOS攻击的话,其实还没有非常有效的解决方案,特别是免费解决方案。市场上的DDOS解决方案都特别贵,比如阿里云的云盾,流量清洗的费用不是一般人能承受的起的。
那如果服务器被DDOS了,咋整呢?那就需要双机热备了。对于我们这种在阿里云上部署的小网站,如何更经济的实现呢?方案如下:
1、再租用一台阿里云服务器;(已经又买了一台香港的阿里云服务器,100多一个月,价格适中)
2、实现自动化部署工具;
通过周末两天已经基本实现,是通过Shell脚本编写的,实现LAMP、Web和数据库的自动部署,安全优化,下次跟大家分享一下。
3、对接DNSPod的API接口,实现自动的切换域名解析。
DNSPod域名解析很快,建议大家都将域名解析迁移到这个上面来配置。DNSPod还有一个非常好用的功能,可以用它来实现多台服务器的负载均衡,这个对于小成本应用来说的话,也是非常有用的。
4、在家里面部署一个树莓派服务器。
在这个服务器上监控网站的健康状态,如果发现无法访问,则立马调用DNSPod的API接口切换DNS解析到从服务器上。
树莓派有很多的有点:价格便宜,功耗低,便携式的。几年前已经买了,非常好用。
这样对于博客这样的小型网站的运维部署应该还算不错了。
遇到问题再优化解决吧。