做了这么多年网站,其实遭遇攻击算不上新鲜事,要是得罪了行业里的“大佬”,那基本只能认栽。要么花钱买高防IP,要么干脆关机,毕竟DDoS至今仍是世界性难题。当然,为了让使用国外VPS的网站运行更安稳,提前做好防范才能避免攻击来临时损失扩大。本文主要分享如何利用CloudFlare+Nginx+iptables防火墙解决国外VPS遭受的小型CC攻击。
一、持续攻击时先接入CloudFlare
如果你的VPS正被持续攻击,连后台都登不进去,最快的解决办法就是把网站接入CloudFlare。
接入后,在CloudFlare后台右侧开启“攻击模式”,这时所有访问网站的用户都会看到一个5秒的验证提示,单凭这一步就能拦下大部分机器人攻击。
通常来说,攻击者有一半以上来自国外。如果你的网站是中文站,主要服务国内用户,直接拒绝国外IP访问能大幅缓解攻击压力。
通过日志分析会发现,美国IP发起的攻击往往最多,也可以单独屏蔽某个国家的IP。具体操作是打开CloudFlare的防火墙,设置“非国内IP禁止访问”。
CloudFlare防火墙还支持按Cookie、IP地址、主机名等设置规则,灵活度很高。一般设置“质询”即可,要是想更彻底,也能选择“直接阻止”。
设置后,在防火墙日志里就能看到被拦截的IP了。
完成上面两步,已经能挡下大半攻击了。接下来需要进入服务器进一步加固,只允许CloudFlare的IP访问,避免源站直接暴露。
不过要注意,开启CDN后,服务器获取到的可能是CDN的IP,而非用户真实IP。这时候需要对Nginx或Apache做调整。
四、分析日志 让防火墙自动防御1、一键屏蔽指定国家IP
可以用这个工具:https://github.com/iiiiiii1/Block-IPs-from-countries
原理是下载指定国家的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。
再输入国家代码(可到http://www.ipdeny.com/ipblocks查询,比如美国是“us”),就能完成对整个国家IP段的屏蔽。
2、用脚本定时检测日志
可以通过分析日志自动识别恶意请求。我们可以监控服务器日志,把频繁出错的访问IP列入观察名单:一段时间内出错次数没超过警戒值,就从名单中移除;一旦超标,直接调用iptables封禁。
从实际体验来看,防御小型CC攻击最有效的办法就是接入CloudFlare并开启5秒验证,再配合它的防火墙对攻击IP精准拦截,这样能最大限度提升防御效果。
另外,主机商的选择也很关键。小众主机一旦遭遇攻击可能直接触发黑洞,站长连操作的机会都没有;等24小时黑洞解除,攻击者往往也收手了。重要网站建议选择一些知名度高的国际主机商,本站整理了一些靠谱商家推荐,供大家参考:
(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

微信扫码加好友进群
主机优惠码及时掌握

QQ群号:938255063
主机优惠发布与交流