听说你也想了解ddos?
Posted crazy_itman
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了听说你也想了解ddos?相关的知识,希望对你有一定的参考价值。
ps:文章首发在我的微信公众号:超级黑客炼成记
在计算领域,拒绝服务攻击(DoS 攻击)是一种网络攻击,攻击者试图通过暂时或无限期地中断连接到网络的主机的服务,使其目标用户无法使用机器或网络资源。拒绝服务通常是通过用多余的请求淹没目标机器或资源以试图使系统过载并阻止部分或所有合法请求得到满足来实现的。在分布式拒绝服务攻击(DDoS 攻击)中,涌入受害者的传入流量来自许多不同的来源。需要更复杂的策略来缓解此类攻击,因为存在多个来源,因此仅仅试图阻止单个来源是不够的。DoS 或 DDoS 攻击类似于一群人挤在商店门口,使合法顾客难以进入,从而扰乱了贸易。DoS 攻击的罪犯通常以托管在知名Web 服务器(如银行或信用卡 支付网关)上的站点或服务为目标。报复、勒索和黑客行动主义可以激发这些攻击。Panix是世界上第三古老的ISP,被认为是第一次 DoS 攻击的目标。1996 年 9 月 6 日,Panix 遭到SYN 洪水攻击,导致其服务中断数天,而硬件供应商,尤其是Cisco,想出了适当的防御措施。
DoS 攻击的另一个早期演示是由 Khan C. Smith 于 1997 年在DEF CON活动期间进行的,中断了对拉斯维加斯大道的Internet 访问一个多小时。在活动期间发布的示例代码导致了Sprint、EarthLink、E-Trade和其他大公司在随后一年的在线攻击。2017 年 9 月,谷歌云遭受攻击,峰值流量为2.54 字节/秒。2018 年 3 月 5 日,美国服务提供商Arbor Networks的一位未具名客户成为当时最大的 DDoS 攻击的受害者,峰值达到约1.7 字节/秒。之前的记录是在几天前的 2018 年 3 月 1 日创下的,当时GitHub受到了1.35 字节/秒。2020 年 2 月,Amazon Web Services遭受了一次峰值容量为2.3 字节/秒。 2021 年 7 月,CDN 提供商Cloudflare吹嘘保护其客户免受来自全球 Mirai 僵尸网络的 DDoS 攻击,该僵尸网络每秒发出高达 1720 万次请求。俄罗斯 DDoS 预防提供商 Yandex 表示,它于 2021 年 9 月 5 日阻止了一次源自未打补丁的 Mikrotik 网络设备的 HTTP 流水线 DDoS 攻击。
迄今为止最大的DDoS攻击是什么?
所有时间的 Dos 攻击。
1. GitHub (2015)
GitHub 是公共代码的存储库,2015 年他们遭受了历史上最大的DDoS攻击。两个页面是这次攻击的目标,GreatFire 和中文版的纽约时报,两者都与旨在打击中国审查制度的项目有关。恶意代码已经追溯到中国,甚至是中国政府,作为这次攻击的始作俑者。该代码的来源是中国联通,它过去曾协助审查组织中国防火墙。在整个攻击期间,GitHub 的整个网络都发生了中断,而不仅仅是两个目标页面。
2. 英国广播公司 (2015)
2015 年除夕,BBC 遭到了被认为是历史上最大规模的DDoS攻击。BBC 的整个领域,包括其点播电视和广播播放器,都宕机了三个小时,并在当天剩余时间里继续出现问题。一个名为 New World Hackers 的组织声称对这次攻击负责,他们表示他们将这次攻击用作“权力测试”。他们还声称以 600Gbps 的速率进行攻击,但这个大小后来被证明是错误的。
3. 垃圾邮件之家 (2013)
对荷兰反垃圾邮件网站的攻击是历史上最大的DDoS攻击,有一段时间最高达到 400Gbps。虽然这次攻击的规模大到足以对 Spamhaus 的网络造成严重破坏,但真正的问题出现在攻击者改变策略并转移注意力时。他们开始瞄准 CloudFlare(Spamhaus 的安全网络)和 CloudFlare 的带宽提供商。这开始了一种多米诺骨牌效应,导致 Spamhaus 和 CloudFlare 以外的服务速度变慢到更大的互联网。其中一名攻击者被发现是一名 13 岁的受雇黑客,名叫 Seth Nolan McDonagh。由于其反垃圾邮件和垃圾邮件的做法,Spamhaus 是威胁和攻击的常见目标。
4. 未命名的 CloudFlare 客户端 (2014)
此DDoS最高可达 400Gbps,比 Spamhaus 攻击高出 33% 以上。由于保密协议,无法透露目标客户的名字,但这次攻击针对的是欧洲的服务器。这次攻击是独一无二的,因为黑客利用网络时间协议 (NTP) 服务器来减慢响应时间。
5. 香港 (2014)
历史上最大的DDoS攻击是香港占中抗议活动中政治动荡的结果。针对包括独立新闻网站 Apple Daily 和 PopVote 在内的亲民主网站进行了一次高达 500Gbps 的攻击。PopVote 举行了一次非正式的公民投票,以扩大香港的选举权。虽然许多人认为嫌疑人是中国政府,但这不一定是肯定的。然而,攻击者可能是不同情香港民主运动的人,或者是试图让中国政府出丑的人。DDoS攻击在不断增长和变化,但您不必担心自己可能成为攻击目标。
保护自己免受DDoS攻击
了解了一些可用于指出DDoS攻击的方法后,现在让我们了解如何防止您的系统成为此类前所未有的攻击的受害者。
调整 nginx 参数
如果你有一台运行在 Nginx 上的服务器,一些修改将在减轻DDoS攻击方面派上用场。我们来看一下
修改 worker_process 连接
您可能要考虑修改的参数之一是工作进程以及编号。/etc/nginx/nginx.conf配置文件中的工作连接数。预料到DDoS攻击,worker_connections的值应该设置的比较大,以应对DDoS攻击。例如,该值可以设置为 10000,如下所示
events
worker_connections 100000;
此外,考虑修改/etc/sysctl.conf文件中的fs.file-max属性并限制连接数,如图所示
fs.file-max = 50000
限制请求速率
这可以说是在 Nginx Web 服务器中防止DDoS攻击的最佳途径之一。它的工作原理是限制在给定时间段内来自特定 IP 地址的请求数量。如果超过限制,则 Nginx 会丢弃这些请求。limit_req_zone指令被调整以限制请求的数量,如下所示
limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
server
# ...
location /login.html
limit_req zone=one;
# ...
上面的命令将创建一个名为 one 的内存空间,它可以容纳 160,000 个唯一的 IP 地址。rate=30r/m 指令意味着一分钟内只允许 30 个请求。
限制连接速率
为了进一步增强 Nginx 的性能,您可以限制从单个 IP 地址发出的连接速率。调整指令limit_conn和limit_conn_zone以限制 IP 地址连接的数量。
limit_conn_zone $binary_remote_addr zone=one:20m;
server
location /admin/
limit_conn addr 20;
调整超时参数
慢速连接对 Nginx 服务器有严重影响。这些连接保持连接打开的时间足够长,以至于服务器无法再接受任何入站连接。属性 client_body_timeout 以及 client_header_timeout 被调整为较低的值
server
client_body_timeout 10s;
client_header_timeout 10s;
限制 HTTP 请求的大小
巨大的 HTTP 请求通常是DDoS攻击的先兆。为了缓解这个问题,
Nginx 配置中存在的缓冲区值限制如下
client_body_buffer_size 200K;
client_header_buffer_size 2k;
client_max_body_size 200k;
large_client_header_buffers 3 1k;
限制与后端服务器的连接
当用作负载平衡器时,您可以限制与后端服务器建立的连接数。例如,您可以调整设置,使与下面所示的 2 个后端服务器的连接不超过 150 个
upstream domain
server 10.200.50.2:80 max_conns=150;
server 10.200.50.3:80 max_conns=150;
queue 20 timeout=5s;
max_conns 属性指定编号。Nginx 可以打开到服务器的连接数。队列属性限制了编号。当所有后端服务器都达到连接阈值时排队的请求数。超时参数指定请求可以在队列中保持的持续时间。
将 IP 地址列入黑名单
这是抵御DDoS攻击的另一种有效方法。如果您怀疑某个 IP 地址范围对攻击负责,例如从197.232.64.20到197.232.64.154 ,您可以阻止 IP 范围,如下所示
location /
deny 197.232.64.0/24;
# ...
在 cPanel 中使用 CSF 防火墙
可以对CSF进行一些调整防火墙阻止具有大量连接的 IP 地址
在终端上,使用您最喜欢的文本编辑器打开 CSF 配置文件
$ vim /etc/csf/csf.conf
限制并发连接数
限制来自单个唯一 IP 的并发连接数对于缓解DDOS攻击非常有效。因此,谨慎的做法是将 CT_Limit 的值降低到一个合理的水平。在这种情况下,该值已设置为 50
CT_LIMIT=50
这意味着每个给定 IP 地址的最大可能连接数为 50。由于该值不是任意的,因此可以根据您的设置随意更改该值。
更改连接跟踪间隔 CT_INTERVAL
这是指连接跟踪值。这也应该设置为一个相当合理的值,因为如果设置得太低,可能会产生误报并导致合法连接的阻塞。建议将值设置为 30。
CT_INTERVEAL=30
允许使用 CT_PORTS 指令保护特定端口
要允许保护特定端口,您可以在名为“ CT_PORTS ”的配置参数中定义它。例如,在大多数情况下,DDOS攻击将针对 Web 和 DNS 服务器。在这种情况下,为默认安装定义的端口是 53 和 80
在下面的示例中,我正在调整对普通连接和 SSL 连接的 Web 服务器的保护
在下面的示例中,针对普通 HTTP 和 SSL 连接调整了对 Web 服务器端口(80 和 443)的保护。
CT_PORTS=80,443
启用 SYNFLOOD
CSF 中默认禁用 SYNFLOOD。为防止服务器遭受SYNFLOOD攻击,暂时开启如下图
SYNFLOOD = “1”
SYNFLOOD_RATE = “30/s”
SYNFLOOD_BURST = “30”
上面的设置表明,如果每秒从一个 IP 收到 30 个连接 30 次,那么相关 IP 将被阻止。同样,这个值只是任意的。您可以根据您的服务器容量调整 SYNFLOOD_BURST 值。
您可以通过选中“ CONLIMIT ”来设置连接到特定端口的数量限制。
CONNLIMIT = 80;20,443;15
在上面的示例中,来自单个 IP 地址的 20 个连接仅限于端口 80,15 个连接仅限于端口 443。
现在我们已完成所有修改,我们需要重新启动 CSF 防火墙服务以使新设置的更改生效。为此,请运行以下命令
/etc/init.d/csf restart
配置 Apache mod_deflate 以增强服务器性能
如果您正在考虑提升或增强服务器的性能,请考虑在 Apache 配置中启用 mod_deflate。该模块在将内容提供给浏览器供客户端访问之前压缩来自 Web 服务器的内容。压缩使所有浏览器都可以更快地下载它。除了更快地为您的页面提供服务外,搜索引擎还会考虑与压缩相关的较低带宽。这将因此导致更高的页面在谷歌和其他搜索引擎中的排名
默认情况下,mod_deflate 包含在 Apache 中。要验证这一点,请运行命令
$ apachectl -t -D DUMP_MODULES | grep deflate
你应该得到下面的输出
deflate_module shared
如果没有得到这样的输出,打开下面的配置文件
/etc/apache2/mods-enabled/deflate.load
确保未注释以下行,如图所示
LoadModule deflate_module
/usr/lib/apache2/modules/mod_deflate.so
要使更改生效,请重新启动 Apache Web 服务器
sudo apachectl restart
为了充分发挥 mod_deflate 的优势,我们需要指示 Apache Web 服务器哪些文件需要压缩。建议压缩 HTML、CSS 和 javascript 文件。尽管已经为这些定义了默认配置,但它没有为下面的选项配置
压缩级别 –这定义了文件压缩级别,介于 1 到 9 之间,1 是最低压缩级别
Mem Level –这定义了 zlib 压缩所需的内存量
Window Size –指定 zlib 压缩的窗口大小
开箱即用,默认压缩级别设置为 9,内存级别设置为 9,窗口大小设置为 15。
这些已经设置为最高值,这意味着您的服务器仍未处于最佳设置状态,并且将吞噬大量资源。因此,我们需要减少这些参数的值。
DeflateCompressionLevel 7
DeflateMemLevel 8
DeflateWindowSize 10
保存并重新启动 Apache Web 服务器。
测试压缩
为了确保我们的 mod_deflate 模块按预期工作,我们将登录到服务器并打开终端。
接下来,导航到文档根目录
$ cd /var/www/html directory
接下来,下载一个示例 js 文件http://code.jquery.com/jquery-3.2.1.js到目录
$ wget http://code.jquery.com/jquery-3.2.1.js
如上所示,文件大小为268039字节
现在前往网络中的另一台 Linux PC 并运行以下命令
wget --header="Accept-Encoding: gzip" http://SERVER_IP/jquery-3.2.1.js
SERVER_IP是上面我们下载JS文件的服务器的IP
可以看到,JS文件大小已经被列为104285字节,不到原来文件大小的一半!压缩按预期工作,您的服务器以最佳压缩级别工作,而不会影响或影响 Apache Web 服务器的性能。
使用DDoS保护服务
如果您的网站受到攻击,您可以注册使用专门的DDoS保护服务,例如CloudFlare,胶囊& Stormwall.pro。
这些服务作为您网站前面的代理或盾牌,过滤到达您网站的所有流量。设置通常非常简单,涉及将您的名称服务器更改为在您注册上述任一服务并让所有流量通过其网络时提供给您的名称服务器。该服务将过滤掉所有不良流量,只将合法流量发送到您的网站。
但是,如果您希望保护托管多个网站和客户端的整个服务器,这可能不是一个可行的解决方案。这就是您需要受DDoS保护的托管服务提供商的时候。
使用受DDoS保护的托管服务提供商
当然,保护自己免受任何类型的DDoS攻击的最简单方法是使用托管服务提供商托管您的网站,其中包括分布式拒绝服务保护. 此类提供商通常会保护其整个网络免受DDoS攻击,作为网站或服务器所有者,您需要进行任何更改或调整以保护您的网站免受攻击。
以上是关于听说你也想了解ddos?的主要内容,如果未能解决你的问题,请参考以下文章
Github遭受史上最严重的DDoS攻击,峰值高达1.3Tbs
网安动态Memcached DDoS 反射攻击创下 1.7Tbps 流量峰值纪录