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

安全基础
找出安全漏洞 QQ盗号软件后门分析与反击
网络安全技术 再谈跨站脚本攻击与防御
掌控PC 如何应对僵尸主机及僵尸网络
如何在Windows中构建蜜罐?
分析并清除web服务器上的网页木马
基础知识讲解 病毒的IFEO映像劫持技术
网管秘籍 拒绝服务攻击防御全攻略
网管秘籍 如何减轻DDoS攻击带来的危害
利用输入法漏洞轻松破解Vista登录密码
安全保障!封杀木马病毒十大绝招
变态入侵:有史以来最酷的Windows后门
安全导航:认识反网络钓鱼欺骗新技术
管理好自己密码的10个技巧
如何隐藏管理员帐号
网络监听的原理、实现技术与防范方法
简单分析微软无线键盘的安全隐患
解密美国FBI的电话及网络监控技术
突破ADSL限制 通过宽带路由多机共享上网
Autorun病毒防御者 让U盘不中毒
计算机的密码设置技巧

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-28   浏览: 34 ::
收藏到网摘: 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命令修改这些默认值。