抵御 SYN 攻击

SYN 攻击利用了 TCP/IP 连接建立机制中的安全漏洞。要实施 SYN 洪水攻击,攻击者会使用程序发送大量 TCP SYN 请求来填满服务器上的挂起连接队列。这会禁止其他用户建立网络连接。

要保护网络抵御 SYN 攻击,请按照下面这些通用步骤操作(这些步骤将在本文档的稍后部分进行说明):

启用 SYN 攻击保护

设置 SYN 保护阈值

设置其他保护

启用 SYN 攻击保护

启用 SYN 攻击保护的命名值位于此注册表项的下面:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

值名称: SynAttackProtect

建议值: 2

有效值: 0 – 2

说明:使 TCP 调整 SYN-ACK 的重传。配置此值后,在遇到 SYN 攻击时,对连接超时的响应将更快速。在超过 TcpMaxHalfOpen 或TcpMaxHalfOpenRetried 的值后,将触发 SYN 攻击保护。

设置 SYN 保护阈值

下列值确定触发 SYN 保护的阈值。这一部分中的所有注册表项和值都位于注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。这些注册表项和值是:

值名称: TcpMaxPortsExhausted
建议值: 5
有效值: 0 – 65535
说明:指定触发 SYN 洪水攻击保护所必须超过的 TCP 连接请求数的阈值。

值名称: TcpMaxHalfOpen
建议的数值数据: 500
有效值: 100 – 65535
说明:在启用 SynAttackProtect 后,该值指定处于 SYN_RCVD 状态的 TCP 连接数的阈值。在超过 SynAttackProtect 后,将触发 SYN 洪水攻击保护。

值名称: TcpMaxHalfOpenRetried
建议的数值数据: 400
有效值: 80 – 65535
说明:在启用 SynAttackProtect 后,该值指定处于至少已发送一次重传的 SYN_RCVD 状态中的 TCP 连接数的阈值。在超过SynAttackProtect 后,将触发 SYN 洪水攻击保护。

设置其他保护

这一部分中的所有注册表项和值都位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。这些注册表项和值是:

值名称: TcpMaxConnectResponseRetransmissions 
建议的数值数据: 2
有效值: 0 – 255
说明:控制在响应一次 SYN 请求之后、在取消重传尝试之前 SYN-ACK 的重传次数。

值名称: TcpMaxDataRetransmissions
建议的数值数据: 2
有效值: 0 – 65535
说明:指定在终止连接之前 TCP 重传一个数据段(不是连接请求段)的次数。

值名称: EnablePMTUDiscovery
建议的数值数据: 0
有效值: 0, 1
说明:将该值设置为 1(默认值)可强制 TCP 查找在通向远程主机的路径上的最大传输单元或最大数据包大小。攻击者可能将数据包强制分段,这会使堆栈不堪重负。对于不是来自本地子网的主机的连接,将该值指定为 0 可将最大传输单元强制设为 576 字节。

值名称: KeepAliveTime
建议的数值数据: 300000
有效值: 80 – 4294967295
说明:指定 TCP 尝试通过发送持续存活的数据包来验证空闲连接是否仍然未被触动的频率。

值名称: NoNameReleaseOnDemand
建议的数值数据: 1
有效值: 0, 1
说明:指定计算机在收到名称发布请求时是否发布其 NetBIOS 名称。

使用表 1 中汇总的值可获得最大程度的保护。

表 1:建议值

值名称 值 (REG_DWORD)

SynAttackProtect

2

TcpMaxPortsExhausted

1

TcpMaxHalfOpen

500

TcpMaxHalfOpenRetried

400

TcpMaxConnectResponseRetransmissions

2

TcpMaxDataRetransmissions

2

EnablePMTUDiscovery

0

KeepAliveTime

300000(5 分钟)

NoNameReleaseOnDemand

1

 

抵御 ICMP 攻击

这一部分的命名值都位于注册表项 HKLM\System\CurrentControlSet\Services\AFD\Parameters 的下面

: EnableICMPRedirect
建议的数值数据: 0
有效值:0(禁用),1(启用)
说明:通过将此注册表值修改为 0,能够在收到 ICMP 重定向数据包时禁止创建高成本的主机路由。

使用表 2 中汇总的值可以获得最大程度的保护:

表 2:建议值

值名称 值 (REG_DWORD)

EnableICMPRedirect

0

 

抵御 SNMP 攻击

这一部分的命名值位于注册表项 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 的下面。

: EnableDeadGWDetect
建议的数值数据: 0
有效值:0(禁用),1(启用)
说明:禁止攻击者强制切换到备用网关

使用表 3 中汇总的值可以获得最大程度的保护:

表 3:建议值

值名称 值 (REG_DWORD)

EnableDeadGWDetect

0

 

AFD.SYS 保护

下面的注册表项指定内核模式驱动程序 Afd.sys 的参数。Afd.sys 用于支持 Windows Sockets 应用程序。这一部分的所有注册表项和值都位于注册表项 HKLM\System\CurrentControlSet\Services\AFD\Parameters 的下面。这些注册表项和值是:

值 EnableDynamicBacklog
建议的数值数据: 1
有效值:0(禁用),1(启用)
说明:指定 AFD.SYS 功能,以有效处理大量的 SYN_RCVD 连接。有关详细信息,请参阅“Internet Server Unavailable Because of Malicious SYN Attacks”,网址为 http://support.microsoft.com/default.aspx?scid=kb;en-us;142641(英文)。

值名称: MinimumDynamicBacklog
建议的数值数据: 20
有效值: 0 – 4294967295
说明:指定在侦听的终结点上所允许的最小空闲连接数。如果空闲连接的数目低于该值,线程将被排队,以创建更多的空闲连接

值名称:MaximumDynamicBacklog
建议的数值数据: 20000
有效值: 0 – 4294967295
说明:指定空闲连接以及处于 SYN_RCVD 状态的连接的最大总数。

值名称: DynamicBacklogGrowthDelta
建议的数值数据: 10
有效值: 0 – 4294967295
默认情况下是否出现:否
说明:指定在需要增加连接时将要创建的空闲连接数。

使用表 4 中汇总的值可以获得最大程度的保护。

表 4:建议值

值名称 值 (REG_DWORD)

EnableDynamicBacklog

1

MinimumDynamicBacklog

20

MaximumDynamicBacklog

20000

DynamicBacklogGrowthDelta

10

 

其他保护

这一部分的所有注册表项和值都位于注册表项 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 的下面。

保护屏蔽的网络细节

网络地址转换 (NAT) 用于将网络与传入连接屏蔽开来。攻击者可能规避此屏蔽,以便使用 IP 源路由来确定网络拓扑。

: DisableIPSourceRouting
建议的数值数据: 1
有效值:0(转发所有数据包),1(不转发源路由数据包),2(丢弃所有传入的源路由数据包)。
说明:禁用 IP 源路由,后者允许发送者确认数据报在网络中应采用的路由。

避免接受数据包片段

处理数据包片段可以是高成本的。虽然拒绝服务很少来自外围网络内,但此设置能防止处理数据包片段。

: EnableFragmentChecking
建议的数值数据: 1
有效值:0(禁用),1(启用)
说明:禁止 IP 堆栈接受数据包片段。

切勿转发去往多台主机的数据包

多播数据包可能被多台主机响应,从而导致响应淹没网络。

: EnableMulticastForwarding 
建议的数值数据: 0
有效范围:0 (false),1 (true)
说明:路由服务使用此参数来控制是否转发 IP 多播。此参数由路由和远程访问服务创建。

只有防火墙可以在网络间转发数据包

多主机服务器切勿在它所连接的网络之间转发数据包。明显的例外是防火墙。

: IPEnableRouter
建议的数值数据: 0
有效范围:0 (false),1 (true)
说明:将此参数设置为 1 (true) 会使系统在它所连接的网络之间路由 IP 数据包。

屏蔽网络拓扑结构细节

可以使用 ICMP 数据包请求主机的子网掩码。只泄漏此信息是无害的;但是,可以利用多台主机的响应来了解内部网络的情况。

: EnableAddrMaskReply
建议的数值数据: 0
有效范围:0 (false),1 (true)
说明:此参数控制计算机是否响应 ICMP 地址屏蔽请求。

使用表 5 中汇总的值可以获得最大程度的保护。

表 5:建议值

值名称 值 (REG_DWORD)

DisableIPSourceRouting

1

EnableFragmentChecking

1

EnableMulticastForwarding

0

IPEnableRouter

0

EnableAddrMaskReply

0

 

windows服务器的DDOS防御,的更多相关文章

  1. 如何利用PowerShell完成的Windows服务器系统安全加固实践和基线检测

    0x00 前言简述 最近单位在做等保测评,由本人从事安全运维方面的工作(PS:曾经做过等保等方面的安全服务),所以自然而然的与信安的测评人员一起对接相关业务系统的检查,在做主机系统测评检查时发现了系统 ...

  2. 一个windows下的ddos样本

    一个windows下的ddos样本. 加载器 程序运行之后会在临时目录释放出一个256_res.tmp的文件 之后将该文件移动至system32目录下,以rasmedia.dll命名. 删除原文件. ...

  3. 什么是DDoS攻击?DDoS防御的11种方针详解

    对于遭受DDOS攻击的情况是让人很尴尬的,如果我们有良好的DDoS防御方法,那么很多问题就将迎刃而解,我们来看看我们有哪些常用的有效地方法来做好DDoS防御呢. 对于DDoS防御的理解: 对付DDOS ...

  4. DDoS防御方案

    转自:http://netsecurity.51cto.com/art/201211/368930.htm 深入浅出DDoS攻击防御应对篇:DDoS防御方案 谈到DDoS防御,首先就是要知道到底遭受了 ...

  5. 如何选择合适的 DDoS 防御服务

    如果你没有对自己的站点采取一些必要的保护措施,将会使它直接暴露于 DDoS 攻击的风险下且无任何招架之力.你应该对法国大选日 knocked out 网站被 DDoS 攻击和 2016 年十月份时候美 ...

  6. 关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明

    关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明 1. mod_evasive 介绍: mod_evasive 是Apache(httpd)服务器的防DDOS的一个 ...

  7. 自用|DDoS防御产品集合

    这是笔者对国内外的DDoS云防御产品做的一个集合,之前存在自己的文档里很久了,现在修改后发出来大家可以一起看看,有需要的也方便比较按需选择.有免费版的我会放在前面,遇到微量攻击时可以应急,并且也可以感 ...

  8. 阿里云IPv6 DDoS防御被工信部认定为“网络安全技术应用试点示范项目”

    ​​近日,阿里云数据中心骨干网IPv6 DDoS网络安全防御被工业和信息化部认定为“网络安全技术应用试点示范项目”,本次评选由工业和信息部网络安全管理局发起,从实用性.创新性.先进性.可推广性等维度展 ...

  9. DDOS防御----CENTOS 内核TCP参数优化

    0x01 环境 attact作为攻击发起方,安装有hping server作为被攻击方,修改内核TCP参数.使用操作系统CENTOS7 0x02 步骤 一.发起攻击 修改TCP最大SYN连接数 使用a ...

随机推荐

  1. 承接Hololens内容定制外包

    近日,微软宣布第三批微软Hololens开发者版开始发货,包括:头显.头显手提包和一个遥控器.前两批开发者版本分别在今年3月30日和5月9日开始发货的. 第三批AR头显Hololens开发者版发货 虽 ...

  2. ASP.Net上传大文件解决方案之IIS7.0下的配置

    开源的Brettle.Web.NeatUpload.在公司IIS6.0使用正常,但是在Windows 2008 server IIS7上使用不正常.在网上看到一个解决办法但是没有效果 IIS 7 默认 ...

  3. php5.3到php7.0.x新特性介绍

    <?php /*php5.3*/ echo '<hr>'; const MYTT = 'aaa'; #print_r(get_defined_constants()); /* 5.4 ...

  4. 延时函数出错,volatile一例

    莫名其妙的错误.使用Systick做的延时. 初始化是这样的: //SysTick配置 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); if ...

  5. C++ CTime COleTime的一些操作技巧

    strCString="2003-10-27 6:24:37"; //CString--->COleDateTime COleVariant vtime(strCString ...

  6. ARM指令分类及其寻址方式

    ARM指令分类及其寻址方式 一:ARM指令的分类 ARM指令集可以分为以下6类: •跳转指令: •数据处理指令: •程序状态寄存器(PSR)传输指令: •load/store指令: •协处理器指令: ...

  7. opengl入门学习

    OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...

  8. Java JIT(Just-In-Time) Compilation

    http://www.oracle.com/technetwork/articles/java/architect-evans-pt1-2266278.html

  9. 【javascript进阶】异常

    前言 最近有些时间了,今天看了看博客的后台记录,好多都没有写博客呢,争取尽快把以前的补上,javascrit中的异常在前端大家用的好像不是很多,其实javascript的异常和大多数的后端语言差不大, ...

  10. expdp远程导出数据

    环境: 源: os:windows db:11.2.0.1 ip:192.168.213.129 sid:orcl 远程机导出: os:centos 6.5 x64 db:11.2.0.4 ip:19 ...