解决VPS网站小型CC攻击的方法-CloudFlare+Nginx+iptables防火墙

最近网站遇到一波CC攻击,导致服务器访问不稳定。从这多年建站的经验来看,网站遭受攻击是非常平常的事情,最开始还可能想着去处理一下,后来没有时间和精力就懒得管了。但是这次的攻击持续时间有点长,影响了网站的“正常”访问。

其实解决VPS网站小型的CC攻击的基本思路我在VPS主机防攻击应对CC和DDOS的基本思路这篇文章已经讲得秀透彻了,自己也是基本上按照这个思路来做的。这里把VPS主机防范小型CC和DDos的过程分享给大家。不过,话又说回来,这个方法也是防小型的攻击。

当你真的得罪了行业“大佬”,只能说认倒霉,要么花钱搞高防IP,要么自己关机“清静”几天,毕竟DDos是一个世界性的难题。为了可以让VPS主机运行得更加安全,我们应该提前做好防范工作,以避免在攻击到来产生更大的危害。

解决VPS网站小型的CC攻击的方法-CloudFlare+Nginx+iptables防火墙

更多的关于VPS主机安全防护的文章,还有:

  1. VPS主机和服务器安全防护:SSH修改端口,添加白名单,仅限密钥登录
  2. 网站挂木马和服务器被黑排查分析-VPS主机和服务器强化安全方法
  3. 三步揪出服务器流量异常“李鬼”-Linux服务器流量带宽监控与统计命令

一、持续攻击可接入CloudFlare

如果你的VPS主机被人持续攻击且没有机会登入到VPS后台操作的话,这时最快的方法就将网站接入到CloudFlare中。第一次用CloudFlare可以查看入门教程:CloudFlare免费CDN加速

解决VPS网站小型的CC攻击添加CDN

然后在CloudFlare右边开启攻击模式,此时任何访问你的网站的用户都会看到一个5秒提示,这个提示足以将机器人挡在外面了。

解决VPS网站小型的CC攻击开启攻击模式

二、快速阻止国外IP访问网站

一般来说,攻击者用的肉机有一半以上都来自国外,所以如果你的网站为中文网站的话,为了解除攻击给网站带来的访问困扰,此时可以直接拒绝国外的IP访问网站。

解决VPS网站小型的CC攻击国外用户

通过分析我们可以看到攻击者用的美国IP居多,我们也可以单独设置某个国家的IP不能访问。打开CloudFlare的防火墙。

解决VPS网站小型的CC攻击开启防火墙

这里就可以设置非国内IP用户不能访问了,CloudFlare的防火墙还提供了Cookie、IP地址、主机名等规则,你可以灵活选择。

解决VPS网站小型的CC攻击设置规则

一般来说CloudFlare设置为质询就可以了,当然你也可以选择直接阻止。

解决VPS网站小型的CC攻击直接阻止

此时,我们在CloudFlare的防火墙日志中能看到已经阻止的IP了。

解决VPS网站小型的CC攻击看到阻止的IP

三、仅允许CloudFlare IP访问

通过上面的操作,一般来说已经阻挡了一半以上的攻击力量了。此时,我们还需要进入服务器做进一步的设置:仅允许CloudFlare IP访问。

Nginx仅允许CloudFlare IP访问请参考:

1.网站仅允许CloudFlare IP访问 隐藏源站IP 防止源站被扫描 自动添加IP

想使用VPS的iptables防火墙仅允许CloudFlare IP访问,请参考:

1.防止CC攻击利用iptables设置白名单允许Cloudflare访问

解决VPS网站小型的CC攻击仅允许访问

有些服务器在开启CDN后获取到的IP会是CDN的IP,并不是真实用户的IP地址,此时我们需要对Nginx或者Apache做进一步的调整。参考:

2.启用CDN后网站获取用户真实IP:Cloudflare CDN真实IP地址(Nginx,Apache)

四、分析日志自动启用防火墙

3.1  一键屏蔽指定国家IP访问

  1. https://github.com/iiiiiii1/Block-IPs-from-countries

原理是下载指定国家的IP段,然后将IP段添加到iptables规则当中,直接执行以下命令:

wget https://raw.githubusercontent.com/iiiiiii1/Block-IPs-from-countries/master/block-ips.sh
chmod +x block-ips.sh
./block-ips.sh

然后会要你选择是封禁IP还是解封IP。

解决VPS网站小型的CC攻击选择要封的IP

选择封禁IP后会让你输入国家代码,请到这里查看:http://www.ipdeny.com/ipblocks,例如美国就是输入us,确定好完成对整个US的IP封禁。

解决VPS网站小型的CC攻击完成对IP的封禁

2.3  使用脚本定时检测日志

我们能否通过分析日志来确认恶意的访问请求呢?我们可以监控服务器日志,将请求出错的访问者 IP 放入一个 List 特别观察,在一段时间内如果没有太多的出错,我们就将其从列表中移除,否则,错误太多达到警戒值就调用 iptable 将其禁封。参考:

1.Nginx自动检测日志屏蔽IP地址

解决VPS网站小型的CC攻击查看错误日志

五、总结

从使用体验来看,解决VPS网站小型的CC攻击最有效的方法就是接入CloudFlare开启五秒防护,利用CloudFlare自带的防火墙可以对攻击者的IP进行区别对待,从而最大限度地提高防御效果。

另外,防御攻击还有一个关键是主机商,像阿里云腾讯云这类的云主机,一旦遭遇到攻击直接就是黑洞,根本就没有给站长施展“拳脚”的机会,黑洞24小时过了攻击者也“散场”了。

文章出自:挖站否 https://wzfou.com/vps-cc-fanghu/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。


分享到:
Avatar for Qi
关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。
已有 19 条评论
  1. 不知道国内 CF 有没有被*的可能性,还有 CF 性能。另外推荐一个 Wordfence 插件,可以限制请求次数,挺好用的

    2021年8月30日 22:32 回复
    • Avatar for Qi Qi

      如果cc攻击大的话,感觉这些php防护会直接导致死机。

      2021年9月4日 09:49 回复
  2. 网络上的闲人太多,红眼病的人也太多,无奈。。。。

    2020年12月20日 17:52 回复
  3. Avatar for 小胖子 小胖子

    其实不一定非得到最后一环(nginx)再拦截,在主机提供商提供的防火*处拦截可以大大减轻机器的压力

    2020年12月15日 19:07来自QQ 回复
    • Avatar for Qi Qi

      小型VPS没有防火Q

      2020年12月17日 14:52 回复
  4. Avatar for Alan Alan
    2020年12月15日 17:14来自移动端 回复
    • Avatar for Qi Qi

      已经恢复。

      2020年12月17日 14:52 回复
  5. Avatar for Neo Neo

    防是不可能防的,这辈子都不可能防得住的。

    2020年12月15日 11:18 回复
  6. Avatar for HGe9 HGe9

    所以说小型攻击用软防,大型攻击用硬防

    2020年12月14日 14:09 回复
  7. Avatar for Bikini Bikini

    还是要提高配置,高防IP还是不错的。

    2020年12月12日 12:10 回复
  8. 攻击量不大。拉黑和屏蔽国家ip段最有效,有些CC好像能过CF的5秒盾,可以考虑国内直连、国外走CF,开5秒盾也不影响国内访问。也怕DDos攻击,直接把流量打没。

    2020年12月11日 13:24 回复
    • Avatar for Qi Qi

      ddos一般来说是无解。

      2020年12月14日 14:03 回复
  9. Avatar for Bo Bo

    大部分攻击都是国外的IP,直接屏蔽国外的IP即可。

    2020年12月11日 10:01 回复
  10. Avatar for OranMe OranMe

    qi大大还是那个微信不~

    2020年12月10日 21:32 回复
    • Avatar for Qi Qi

      是的,还是那个。

      2020年12月11日 10:23 回复
  11. 感觉最安全的方法就是戴套了。

    2020年12月10日 07:52 回复
    • Avatar for Qi Qi

      CF已经成了一些大商家的必备了。

      2020年12月11日 10:35 回复
  12. Avatar for saber saber

    网站做大就有人眼红,像我的个位数IP访问就没事。[挖鼻屎]

    2020年12月10日 06:24 回复
    • Avatar for Qi Qi

      都是闷声发大财的。

      2020年12月11日 10:27 回复

Login

Welcome! Login in to your account

Remember me Lost your password?

Don't have account. Register

Lost Password

Register