服务器遭受到 DDoS 攻击后无论是腾讯云、阿里云等都会启动黑洞对服务器进行封禁禁止一切的访问请求,估计遭受过攻击的都深有体会吧!今天博主给大家分享一个黑洞后的应急预案,运用好了让 DDoS 攻击彻底变得毫无意义,并且在被 DDoS 攻击服务器黑洞封禁后可以迅速的恢复站点的正常访问,如果能提前做好的话,甚至实现秒恢复哦!
我们先来看看什么是黑洞策略,以阿里云为例:
当阿里云公网 IP 资产遭受大流量 DDoS 攻击且攻击流量的峰值带宽(bps)超过了资产的 DDoS 防御能力时,为避免 DDoS 攻击对资产产生更大损害,同时也避免单个 IP 被 DDoS 攻击而影响网络上其他资产正常运行,阿里云黑洞策略会暂时屏蔽 IP 资产的互联网入方向流量。
上述简短的释义我们可以知道,云服务器被黑洞后仅仅是不能再接受访问请求了,也就是所谓的互联网入方向流量被屏蔽了,很多站长们这时候基本都是无所适从不知道如何应对了,以为服务器被彻底封禁了。
其实并不是这样的,博主在阿里云、腾讯云上境内外服务器上实测过黑洞后依旧是可以通过 SSH 远程连接上服务器的,就算 SSH 连接失败也大部分原因是 SSH 没有配置好或者没有开启而已,这时候我们依旧可以使用云服务器 Web 后台的 VNC 登陆上服务器的,阿里云和腾讯云服务器 VNC 登陆服务器的位置如下图所示:
一般使用 VNC 登录服务器的主要目的就是开启 SSH 远程登录的,毕竟基于 Web 页的 VNC 登录体验真的是太差了,还是用 XShell 这类专业的 SSH 远程连接客户端用着爽。登陆后只需要修改/etc/ssh/sshd_config
这个 SSH 配置文件里的Port
端口即可开启 SSH 远程连接了(默认只需要去掉 Port 前的#号保存退出即可)。修改完成后应该是如下这样:
Port 22#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::
意思是 SSH 远程连接端口为 22,最好是在 iptables/firewalld 这类 Linux 内核防火墙里也开放 22 这个端口,毕竟大部分宝塔环境默认是开启 22 端口,但凡事都有例外,这样更加保险了。
详细方法
然后我们就可以通过 XShell 或者其他服务器远程连接到被黑洞封禁的服务器了,这时候我们就可以借助 sftp、scp、rsync 等 Linux 命令把网站、项目等文件临时迁移到其他服务器恢复上线了。其中 sftp 和 scp 命令比较适合小文件或者少量文件,rsync 比较适合整个网站,特别是服务器之间文件同步,也是博主最推荐的方式。比如:
服务器 A 遭受到 DDoS 攻击后被黑洞了,那么就可以在服务器 B 上借助 rsync 命令 SSH 远程连接到服务器 A 上把网站文件实时快速的同步到服务器 B 指定位置,同步完成后就可以直接恢复网站上线了,如果网站有用 CDN 的话,仅仅只需要修改 CDN 回源 IP 地址为服务器 B 的 IP 地址即可实时完成了。也就是说让网站快速的移动到另一个服务器上正常运行上线,毕竟 DDoS 攻击不是随便就能停下改变攻击 IP 目标的,除非对方傻大黑粗的超级有钱+你网站 IP 一直都在暴露。有关服务器 IP 暴露防范可以参考【隐藏服务器 IP 很重要,但封堵泄露服务器 IP 的环节更重要】一文,今天就不再赘述了。这个方法唯一的瑕疵就是救急,会受到被攻击服务器带宽受限的影响造成转移传输速度上不尽人意,所以博主无论是自己还是代维客户服务器都是采用下面的方法提前做好准备,未雨绸缪。比如:
在服务器 A 正常没有遭受的攻击的时候就提前借助 rsync 定时的同步数据到服务器 B,这里就是借助 rsync 可以对比文件更新与否决定是否同步复制的特点,服务器 A 和服务器 B 之间的数据传输量非常的小,像 WordPress 、Typecho 这类博客系统一般网站文件也就是些文章插入的图片而已,至于数据库导出文件压缩后基本也都很小了,利用 Linux 的 crontab 定时任务可以在不影响服务器 A 正常运行的情况下静默的完成同步复制到服务器 B,可以说是非常的高效的。这个方法的好处是一旦服务器 A 被 DDoS 攻击造成黑洞封禁了,服务器 B 上的数据立马就可以利用起来让网站迅速的上线,最快的速度能达到秒级,如果网站本身有像 CloudFlare 这样强悍 CDN 的防护就可以无视所有的 DDoS 攻击,成为一个真正意义上打不死的小强。
八爷源码 » 服务器 DDoS 攻击黑洞被封了怎么办?