结合我个人及工作中的一些经验来谈一谈
科普
什么是 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. 直接上云服务商的高防业务
- 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
主机名细则(使用最多)
前面提到了通过and
和or
组合规则,对于一些杂项,可以通过主机名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