> 网络安全 > 网站安全 >

记录网站被攻击后的解决方案

1,攻击者使用真实ip和代理ip混合攻击

这一次发现了一个有趣的现象,发动攻击的ip从原来单一的代理ip伪装蜘蛛,改变为由真实ip和代理ip混合攻击。这样,如果仅仅通过seo日志分析软件来分析日志的话,不能够将攻击者的ip全部封掉。攻击手段的变化,意味着攻击者了解了我之前的防御手段。想来他一定是看过我的博客了,O(∩_∩)O哈哈~。

2,攻击者每天用100个代理来发动攻击

个人网站的日志做了切割,可以看到每一天的网站的详细日志。通过日志分析,我发现一个搞笑的事情。就是攻击者每天只用100个代理来发动攻击,一个不多一个不少。如果我想把这些ip手动添加到iptables封掉,那么意味着我每天得手动封掉100个ip,我会被这个攻击者玩死。

哈哈,我确定这个攻击者看过我的博客,以及我之前写的防cc攻击的总结。可能他的真实ip,就在我的日志里。

CC攻击防御手段一:将服务器从nginx+apache切换成纯nginx了

为了节省资源,提高服务器抗并发的能力,我一怒之下将web服务器从nginx+apache给换成了纯nginx。事实证明,切换以后我的服务器的抗击打能力提高了很多。而且,我再也不用面对那个困扰我三年的。apache拿不到nginx真实ip的问题,再也不用去面对apache的优化问题了,我只需要配置好nginx和php就可以了。

nginx使用php-fpm跑php,除了cpu占用率会经常跑高之外,在抗并发的能力上面比我原来的nginx+apache强了不知道多少倍。切换web服务器之后的第一天,我就在qq签名里写下了“终身不娶apache,一生只爱nginx”的誓言。

CC攻击防御手段二:成功解决使用云盾后nginx无法获得真实ip的问题

服务器加入阿里云的云盾后,所有来访ip都会变成云盾的ip。这个时候如果开启iptables或者nginx的防CC的module,其实防的都是云盾的ip。就会变成,防火墙跟云盾自己打自己的情况。

解决方法可以参考我另外一篇博客,成功解决个人网站加入阿里云云盾后,nginx无法获取真实ip的问题。

云盾检测到的攻击流量高达2.57Gb

云盾检测到的攻击流量高达2.57Gb

老天保佑,我这一次终于解决了nginx服务器无法获取真实ip的问题。重新编译nginx,顺手还把nginx升级到最新的1.7.9版本。nginx日志里,全部都是真实ip了。这也意味着我的nginx防cc的module,可以真正发挥作用了。如果不解决掉这个问题,就会发生如图所示的搞笑事情。

CC攻击防御手段三:运用iptables和nginx防CC的module限制并发

攻击者已经了解了我之前手动封ip的策略,所以这个方法是彻底失效了。于是我一怒之下,清空了iptables手动封掉的600多个ip及ip段。这一次,哥转而使用了iptables和nginx防CC的module,通过限制并发链接的方法来防御CC攻击。

实际来看,在后期已经能够抗住几千的连接了,至少证明这条路走得通。

CC攻击防御手段四:将wordpress网站首页静态化

将web服务器从nginx+apache切换成纯nginx以后,我发现wordpress原来的缓存插件wp-super-cache无法使用了。只得将wp-super-cache缓存模式,从apache缓存模式切换成php缓存模式。重新调整了wp-super-cache的设置以后,基于php缓存模式的个人网站首页速度比原来慢了10ms。

CC攻击防御手段五:升级并优化php的配置,开启php加速opcache

升级完nginx后,我又把php的版本从5.3升级到最新的php5.6.5版本。但是我非常蛋疼的发现升级后的php,默认配置竟然没有开启opcache。跑到雪候鸟的博客,很巧的是鸟哥的博客更新了,还贴出了他的php最新版本的推荐配置。

php开发者雪候鸟推荐的PHP的配置

php开发者雪候鸟推荐的PHP的配置

^_^,php就这样被升级,并且稍微做了一点优化。上面三行是在php-fpm.conf,下面两段是在php.ini里修改。我在wdcp里,可找了一段时间。。。

这一次的CC攻击只持续了两天,但是这两天我过得极其漫长。最近一个月的三次CC攻击,我学到的东西太多太多了。在网站安全维护方面的能力,又得到了增强。不过很多东西都还只是刚刚接触,希望有机会能继续学习吧。

(责任编辑:IT)