服务器被ddos怎么办?

 

结合我个人及工作中的一些经验来谈一谈

科普

什么是 DoS 和 DDoS 攻击?

拒绝服务[1](DoS)攻击和分布式拒绝服务[2](DDoS)攻击都是恶意的行为,利用大量互联网流量淹没目标服务器、服务或网络,破坏它们的正常运作。

DoS 攻击通过从单一机器(通常是一台计算机)发送恶意流量来实现这种破坏。形式可以非常简单;通过向目标服务器发送数量超过其有效处理和响应能力的ICMP(Ping)请求[3],发动基本的 Ping 洪水攻击[4]

另一方面,DDoS 攻击使用一台以上的机器向目标发送恶意流量。这些机器通常是僵尸网络[5](感染了恶意软件[6]的计算机或其他设备的集合)的一部分,因而可以由单个攻击者进行远程控制。在其他情形中,多名个体攻击者可以串通起来,一起从各自的个体计算机发送流量来发动 DDoS 攻击。

DDoS 攻击在现代互联网中更为普遍,破坏性也更强,原因有二。首先,现代安全工具已经发展为能够阻止一些普通的 DoS 攻击。其次,DDoS 攻击工具已经变得相对廉价且易于操作

常见类型

  • • 应用程序层 (L7) 攻击工具, 海量恶意请求(没泄漏源站IP
  • • 协议和传输层 (L3/L4) 攻击工具,利用UDP等协议向目标服务器大规模发送流量,例如UDP洪水攻击(泄漏了源站IP

有钱方式

当然了这种方式肯定不适合我,没钱的个人用户了,让我掏6-7k钱来保15块钱的机器,想想都不可能,是不是。这种主要是针对企业用户或者对外提供SAAS类(或者同行比较多的)

另外这个也主要针对国内用户啊

  1. 1. 直接上云服务商的高防业务
  2. 2. 如果造成比较大的影响可以考虑报警(找网监或者网安大队),由叔叔们来解决这些, 但叔叔们不一定能解决(如果攻击来源主要是境外的话)

1和2可以同时进行。

没钱方式

下面这个两个方式,仅验证过第二个,因为第二个不需要花钱

其实隐藏好源站就好了,不漏了IP,漏了必被打

加个前置或加个CDN

就是在入口的地方,买个带高防的机器前置一些,让流量先经过前置高防清洗,可以有效解决

Cloudflare Under Attack 模式

将域名搬家到Cloudflare,开启Under Attack 模式, 感谢大慈善家

简单介绍Cloudflare通用防火墙规则

Cloudflare向免费版用户提供了5条防火墙规则,可在安全性-WAF处进行配置。自定义防火墙规则的目的,就是圈定包含一定特征(如IP、UA、地域、提供商等)的可疑对象,并对其进行验证码质询或阻止访问。

规则的触发机制是自上而下触发一次,高优先级的规则要放在上部。在规则设置中需要灵活组合匹配条件,and需要全部满足、or为满足任一条件

这里简单罗列一下我的博客https://ysicing.me的安全性规则

白名单

最高优先级,主要的规则包含:

  • • 合法机器人爬虫
  • • 已知的善意RSS爬虫(这里点名批评,巨硬家的爬虫跟DDOS一下)
  • • 自己的测试IP

主机名细则(使用最多)

前面提到了通过andor组合规则,对于一些杂项,可以通过主机名and去限定区间,这里推荐一些常用的匹配方式。

匹配规则 解释
主机名 针对输入网站域名的配置
URL路径 针对输入网站域名的配置
国家/地区 针对访问IP来源地区的匹配
SSL/HTTPS 针对是否使用https访问的匹配

前三条内容与以上四个的组合可以很灵活地圈定范围,比如主机名+URL路径可以实现对特定目录、特定文件(比如登录页等)设置更高的验证要求。举个博主自己的例子,博主的静态资源所在目录会同步至海外源站,如下配置,就可以圈定php文件及不符合两个静态文件所在目录的访问,并阻止他

屏蔽某些国家或者地区

例如海外版禁止中国访问,当然也可以是只允许某些地方访问

(not ip.geoip.country in {"CN"} and not ip.geoip.country in {"HK"})

如下就是我被境外的攻击了,只允许中国IP访问

ASN验证

这种不多,但是也可以,例如屏蔽AS8075

限制访问速率

这里重点是设置路径匹配及每秒的请求次数

其他地方

安全性 自动程序:打开自动程序攻击模式,识别并缓解自动化流量,以保护您的域免受恶意机器人的危害

其他地方就根据自己实际情况选择

最后

做网站尤其自己没有钱,且同行比较多的情况下,要隐藏好自己的IP。但是还有一种情况,就是同行来买你的服务,知道你的IP段后,轮段攻击。还是那句话,有钱上高防,没钱就低调隐藏好自己的IP。最后说句: Cloudflare NB

引用链接

[1] 拒绝服务: https://www.cloudflare.com/learning/ddos/glossary/denial-of-service/
[2] 分布式拒绝服务: https://www.cloudflare.com/learning/ddos/what-is-a-ddos-attack/
[3] ICMP(Ping)请求: https://www.cloudflare.com/learning/ddos/glossary/internet-control-message-protocol-icmp/
[4] Ping 洪水攻击: https://www.cloudflare.com/learning/ddos/ping-icmp-flood-ddos-attack/
[5] 僵尸网络: https://www.cloudflare.com/learning/ddos/what-is-a-ddos-botnet/
[6] 恶意软件: https://www.cloudflare.com/learning/ddos/glossary/malware