Windows服务器应对高并发和DDOS攻击的配置方法

windows系统本身就有很多机制可以用来提高性能和安全,其中有不少可以用来应对高并发请求和DDOS攻击的情况。

通过以下配置可以改善windows服务器性能:

一、应对高并发请求:

1、TCP连接延迟等待时间 TcpTimedWaitDelay:

这是设定TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称 TIME_WAIT状态或两倍最大段生命周期(2MSL)状态。在此时间内,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT中存在很多连接,导致低吞吐量,则调整此参数。缺省值240秒,最小30秒,最大300秒,建议设为30秒。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpTimedWaitDelay"=dword:0000001e

2、最大TCP使用端口 MaxUserPort:

TCP客户端和服务器连接时,客户端必须分配一个动态端口,默认情况下这个动态端口的分配范围为 1024-5000,也就是说默认情况下,客户端最多可以同时发起3977个Socket连接。通过修改调整这个动态端口的范围,可以提高系统的数据吞吐率

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"MaxUserPort"=dword:000ffffe

3、保持连接时间 KeepAliveTime:

Windows默认情况下不发送保持活动数据包,但某些TCP包中可能请求保持活动的数据包。保持连接可以被攻击者利用建立大量的连接造成服务器拒绝服务。降低这个参数值有助于系统更快速地断开非活动会话。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"KeepAliveTime"=dword:000493e0

4、TCP数据最大重发次数 TcpMaxDataRetransmissions

此参数控制TCP在连接异常中止前数据段重新传输的次数。如果这个限定次数内,计算机没有收到任何确认消息,连接将会被终止。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpMaxDataRetransmissions"=dword:00000003

5、TCP连接最大重发次数 TcpMaxConnectResponseRetransmissions
此参数设定SYN-ACK等待时间,可以用来提高系统的网络性能。缺省时间为3,消耗时间为45秒;项值为2,消耗时间为21秒;项值为1,消耗时间为9秒;项值为0,表示不等待,消耗时间为3秒

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpMaxConnectResponseRetransmissions"=dword:00000002

二、应对DDOS攻击:(包括以上设置)

1、SYN攻击防护 SynAttackProtect:

为防范SYN攻击,Windows NT系统的TCP/IP协议栈内嵌了SynAttackProtect机制。SynAttackProtect机制是通过关闭某些socket选项,增加额外的连接指示和减少超时时间,使系统能处理更多的SYN连接,以达到防范SYN攻击的目的。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"SynAttackProtect"=dword:00000002

2、无效网关检测功能 EnableDeadGWDetect:

当服务器设置了多个网关,在网络不通畅的时候系统会尝试连接第二个网关。允许自动探测失效网关可导致 DoS,关闭它可以抵御SNMP攻击,优化网络。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnableDeadGWDetect"=dword:00000000

3、ICMP重定向功能 EnableICMPRedirect:

是否响应ICMP重定向报文。ICMP重定向报文有可能被用以攻击,所以系统应该拒绝接受此类报文,用以抵御ICMP攻击。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnableICMPRedirect"=dword:00000000

4、IP源路由限制 DisableIPSourceRouting:

是否禁用IP源路由包,禁用可以提高IP源路由保护级别,用以防范数据包欺骗

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DisableIPSourceRouting"=dword:00000002

5、路由发现功能 PerformRouterDiscovery:

ICMP路由通告报文可以被用来增加路由表纪录,可能导致DOS攻击,所以禁止路由发现。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"PerformRouterDiscovery"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces]
"PerformRouterDiscovery"=dword:00000000

6、服务器名响应功能 NoNameReleaseOnDemand

允许计算机忽略除来自 Windows服务器以外的 NetBIOS名称发布请求。当攻击者发出查询服务器NetBIOS名的请求时,可以使服务器禁止响应。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"NoNameReleaseOnDemand"=dword:00000001

7、Internet组管理协议级别 IGMPLevel

用于控制系统在多大程度上支持IP组播和参与Internet组管理协议。缺省值为2,支持发送和接收组播数据;项值为1表示只支持发送组播数据;项值为0表示不支持组播功能。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"IGMPLevel"=dword:00000000

8、匿名访问限制 RestrictAnonymous

用于禁止匿名访问查看用户列表和安全权限。匿名访问可以使连接者与目标主机建立一条空连接而无需用户名和密码,利用这个空连接,连接者可以得到用户列表。有了用户列表,就可以穷举猜测密码。

代码如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"restrictanonymous"=dword:00000001

(0)

相关推荐

  • 5个并发处理技巧代码示例

    [译者注]在本文中,作者总结出了5个关于处理并发性程序的技巧,并给出代码示例,让读者更好地理解和使用这5种方法. 以下为译文: 1.捕获InterruptedException错误 请检查下面的代码片段: public class Task implements Runnable { private final BlockingQueue queue = ...; @Override public void run() { while (!Thread.currentThread().isInt

  • python高并发异步服务器核心库forkcore使用方法

    1 拷贝下面的代码到一个文件,并命名为forkcore.py 复制代码 代码如下: import osimport threadingimport selectimport socket class ds_forkcore(object): #async IO(epoll)    def ds_epoll(self):        epoll=select.epoll()        epoll.register(self.s.fileno(),select.EPOLLIN|select.E

  • Nginx+PHP(FastCGI)搭建高并发WEB服务器(自动安装脚本)第二版

    本文是依照张宴的 Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版) 编写 原文地址 http://blog.s135.com/nginx_php_v5/ 因为编译过程和等待时间繁琐,于是就自己写了个全自动安装的shell脚本,此脚本可以随意修改,转载请注明出处. 这篇文章为这个系列的第二版,在第一版的基础上加入 1.日志切割 2.智能选择yum或者rpm安装 下载地址 注意:如果不能使用yum源,请放入系统光盘,单张dvd的,如果

  • c#实现服务器性能监控并发送邮件保存日志

    客户端代码 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.ServiceProcess;using System.Text;using System.Threading;using System.Management;using System.Configurat

  • Java Socket编程(四) 重复和并发服务器

    文章来源:aspcn 作者:孙雯 重复和并发服务器 这个应用程序被当作一个重复的服务器.因为它只有在处理完一个进程以后才会接受另一个连接.更多的复杂服务器是并发的.它为每一个请求分配一个线程,而不是来一个处理一个.所以看起来它在同时处理多人请求.所有的商业的服务器都是并发的服务器. Java数据报类 不像面向连接的类,数据报的客户端和服务器端的类在表面上是一样的.下面的程序建立了一个客户和服务器商的数据报sockets: DatagramSocket serverSocket = new Dat

  • IIS Web服务器支持高并发设置方法详解

    适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 1.应用程序池(Application Pool)的设置: General->Queue Length设置为65535(队列长度所支持的最大值)Process Model->Idle Time-out设置为0(不让应用程序池因为没有请求而回收)Recycling->

  • Windows服务器应对高并发和DDOS攻击的配置方法

    windows系统本身就有很多机制可以用来提高性能和安全,其中有不少可以用来应对高并发请求和DDOS攻击的情况. 通过以下配置可以改善windows服务器性能: 一.应对高并发请求: 1.TCP连接延迟等待时间 TcpTimedWaitDelay: 这是设定TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间.关闭和释放之间的此时间间隔通称 TIME_WAIT状态或两倍最大段生命周期(2MSL)状态.在此时间内,重新打开到客户机和服务器的连接的成本少于建立新连接.减少此条目的值允许 TC

  • Nginx防御DDOS攻击的配置方法教程

    前言 Nginx是一款轻量级的Web服务器,由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引Rambler使用. 其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网站服务器中表现较好. 防御DDOS是一个系统工程,攻击花样多,防御的成本高瓶颈多,防御起来即被动又无奈.DDOS的 特点是分布式,针对带宽和服务攻击,也就是四层流量攻击和七层应用攻击,相应的防御瓶颈四层在带宽,七层的多在架构的吞吐量.对于七层的应用攻击,我们还 是可以做一些配置

  • JPA使用乐观锁应对高并发方式

    目录 JPA使用乐观锁应对高并发 高并发系统的挑战 悲观锁的问题 乐观锁是个好东西 给数据库添加乐观锁 乐观锁 -业务判断 解决高并发 JPA使用乐观锁应对高并发 高并发系统的挑战 在部署分布式系统时,我们通常把多个微服务部署在内网集群中,再用API网关聚合起来对外提供.为了做负载均衡,通常会对每个微服务都启动多个运行实例,通过注册中心去调用. 那么问题来了,因为有多个实例运行都是同一个应用,虽然微服务网关会把每一个请求只转发给一个实例,但当面对高并发时,但它们仍然可能同时操作同一个数据库表,这

  • SQL server高并发生成唯一订单号的方法实现

    前言 前几天写了一篇MySQL高并发生成唯一订单号的方法,有人私信问有没有SQL server版本的,今天中午特地写了SQL server版本的高并发生成唯一订单号实现,其实MySQL和SQL server原理都一样,主要是他们部分语法有些区别,所以你会发现我这篇文章文字说明几乎一样,只有代码和界面不一样. 一.场景再现 在一个erp进销存系统或0A等其他系统中,如果多人同时进行生成订单号的操作的话,容易出现多人获得同一个订单号的情况,对公司业务造成不可挽回的损失 二.如何避免高并发情况订单号不

  • MySQL高并发生成唯一订单号的方法实现

    前言 这篇博文发布后,有朋友问有没有SQL server版本的,现在有了==>传送门 一.场景再现 在一个erp进销存系统或0A等其他系统中,如果多人同时进行生成订单号的操作的话,容易出现多人获得同一个订单号的情况,对公司业务造成不可挽回的损失 二.如何避免高并发情况订单号不唯一 我们可以利用存储过程和数据表搭配,建立一张表和创建存储过程,存储过程负责生成订单号,表负责处理唯一性问题 当存储过程生成一个订单编号,首先先把订单号写进表中,再把订单号结果显示出来,把生成的订单号写进表里会出现两种情况

  • windows服务器修改远程登录的端口以及防火墙配置

    目录 一.修改注册表 二.设置防火墙 三.使用2121端口测试 配置环境:Windows Server Enterprise 2008 R2 64bit 一.修改注册表 进入注册表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]其下的”PortNumber”键值所对应的就是端口号,此处设置为2121 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentC

  • Windows 和 Linux 上Redis的安装守护进程配置方法

    # Windows 和 Linux 上Redis的安装守护进程配置 Redis 简介 ​ Redis是目前最常用的非关系型数据库(NOSql)之一,常以Key-Value的形式存储.Redis读写速度远远比关系型数据库高(mysql.oracle).所以常用作项目热数据缓存 Windows上的安装配置 1) 在GitHub下载https://github.com/microsoftarchive/redis/releases 2) 解压并安装redis服务以支持守护进程(后台启动) 解压之后目录

  • windows 10下mysql 5.7.21 winx64安装配置方法图文教程

    mysql 5.7.21 winx64安装配置方法: 下载社区版mysql,下载地址(下载前需要注册oracle帐号) 解压缩 配置环境变量 在系统变量path上加上:C:\mysql-5.7.21-winx64\bin(指向mysql 的bin路径) 初始化 用管理员身份打开cmd,输入命令(初始化的时候在安装目录下创建了data目录,否则会报路径不存在): mysqld --initialize --user=mysql --console 初始化的时候会生成root的临时密码,需要记住用户

  • windows服务器指定IP地址才能进行远程访问桌面设置方法

    一般情况下分两种方法: 第一种是通过 防火墙来实现 等保测评要求:对服务器限制远程终端登录地址 于是有了:对于某一个服务器,要限定特定IP对其进行访问的需求. 因为存在:Windows server 2003.2008.2012及Linux这几种主流服务器. 我们分不同服务器来描述. Windows server 2003 1.Win键+R键,输入 Control 打开控制面板 2.找到 windows防火墙 3.常规选项卡中,选择 启用 4. 例外选项卡中,勾选 远程桌面-选中,点编辑-勾选T

随机推荐