当前位置: 首页 > 图文教程 > 网络安全 > 安全基础 > SYN攻击原理以及防范技术(5)

安全基础
用net start 可以启动肉鸡的命令(2)
用net start 可以启动肉鸡的命令(3)
用net start 可以启动肉鸡的命令(4)
DDOS攻击 如何判断是否遭到流量攻击
网络防“虫”手段和全局安全网络的应用
个人网络安全防卫手册(1)
个人网络安全防卫手册(2)
个人网络安全防卫手册(3)
个人网络安全防卫手册(4)
个人网络安全防卫手册(5)
个人网络安全防卫手册(6)
一位高手整理的IIS FAQ
使用Exchange 2003防御地址欺骗(1)
使用Exchange 2003防御地址欺骗(2)
RAdmin 服务端高级配置(1)
只防病毒不安全 网络还需防什么(1)
只防病毒不安全 网络还需防什么(2)
主动防御电脑病毒并非天方夜谭
用XPSP2防火墙打造最强护身甲(1)
用XPSP2防火墙打造最强护身甲(2)

安全基础 中的 SYN攻击原理以及防范技术(5)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-28   浏览: 92 ::
收藏到网摘: n/a

  MinimumDynamicBacklog表示半连接队列为单个TCP端囗分配的最小空闲连接数,当该TCP端囗在backlog队列的空闲连接小于此临界值时,系统为此端囗自动启用扩展的空闲连接(DynamicBacklogGrowthDelta),Microsoft推荐该值为20。

  MaximumDynamicBacklog是当前活动的半连接和空闲连接的和,当此和超过某个临界值时,系统拒绝SYN包,Microsoft推荐MaximumDynamicBacklog值不得超过2000。

  DynamicBacklogGrowthDelta值是指扩展的空闲连接数,此连接数并不计算在MaximumDynamicBacklog内,当半连接队列为某个TCP端囗分配的空闲连接小于MinimumDynamicBacklog时,系统自动分配DynamicBacklogGrowthDelta所定义的空闲连接空间,以使该TCP端囗能处理更多的半连接。Microsoft推荐该值为10。

  LINUX:Linux用变量tcp_max_syn_backlog定义backlog队列容纳的最大半连接数。在Redhat 7.3中,该变量的值默认为256,这个值是远远不够的,一次强度不大的SYN攻击就能使半连接队列占满。我们可以通过以下命令修改此变量的值:

  # sysctl -w net.ipv4.tcp_max_syn_backlog="2048"

  Sun Solaris Sun Solaris用变量tcp_conn_req_max_q0来定义最大半连接数,在Sun Solaris 8中,该值默认为1024,可以通过add命令改变这个值:

  # ndd -set /dev/tcp tcp_conn_req_max_q0 2048

  HP-UX:HP-UX用变量tcp_syn_rcvd_max来定义最大半连接数,在HP-UX 11.00中,该值默认为500,可以通过ndd命令改变默认值:

  #ndd -set /dev/tcp tcp_syn_rcvd_max 2048

  ■缩短超时时间

  上文提到,通过增大backlog队列能防范SYN攻击;另外减少超时时间也使系统能处理更多的SYN请求。我们知道,timeout超时时间,也即半连接存活时间,是系统所有重传次数等待的超时时间总和,这个值越大,半连接数占用backlog队列的时间就越长,系统能处理的SYN请求就越少。为缩短超时时间,可以通过缩短重传超时时间(一般是第一次重传超时时间)和减少重传次数来实现。

  Win2000第一次重传之前等待时间默认为3秒,为改变此默认值,可以通过修改网络接囗在注册表里的TcpInitialRtt注册值来完成。重传次数由TcpMaxConnectResponseRetransmissions 来定义,注册表的位置是:HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters registry key。

  当然我们也可以把重传次数设置为0次,这样服务器如果在3秒内还未收到ack确认包就自动从backlog队列中删除该连接条目。

  LINUX:Redhat使用变量tcp_synack_retries定义重传次数,其默认值是5次,总超时时间需要3分钟。

  Sun Solaris Solaris 默认的重传次数是3次,总超时时间为3分钟,可以通过ndd命令修改这些默认值。