快速业务通道

Linux系统下的DDOS攻击防范

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-24

squid主要是利用其端口映射的功能,可以将80端口转换一下,其实一般的DDOS攻击可以修改/proc/sys/net/ipv4


/tcp_max_syn_backlog里的参数就行了,默认参数一般都很小,设为8000以上,一般的DDOS攻击就可以解决了.如果


上升到 timeout阶段,可以将/proc/sys/net/ipv4/tcp_fin_timeout设小点.


  大家都在讨论DDOS,个人认为目前没有真正解决的方法,只是在缓冲和防御能力上的扩充,跟黑客玩一个心理战术,看


谁坚持到,网上也有很多做法,例如syncookies等,就是复杂点.


sysctl -w net.ipv4.icmp_echo_ignore_all=1


  echo 1 > /proc/sys/net/ipv4/tcp_syncookies


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


  sysctl -w net.ipv4.tcp_synack_retries="3"


  iptables -A INPUT -i eth0 -p tcp --syn -j syn-flood


  # Limit 12 connections per second (burst to 24)


  iptables -A syn-flood -m limit --limit 12/s --limit-burst 24 -j RETURN


  可以试着改改:


  iptbales -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT


  虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等.


  通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长.比较彻底的解决方法是添置硬件防火墙.不过,


硬件防火墙价格比较昂贵.可以考虑利用Linux系统本身提供的防火墙功能来防御.


  1. 抵御SYN


  SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网


络队列被占满,无法被正常用户访问.


  Linux内核提供了若干SYN相关的配置,用命令:


  sysctl -a | grep syn


  看到:


net.ipv4.tcp_max_syn_backlog = 1024


  net.ipv4.tcp_syncookies = 0


  net.ipv4.tcp_synack_retries = 5


  net.ipv4.tcp_syn_retries = 5


  tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie


  功能,该功能可以防止部分SYN攻击.tcp_synack_retries和tcp_syn_retries定义SYN的重试次数.


  加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分SYN攻击,降低重试次数也有一定效果.


  调整上述设置的方法是:


  增加SYN队列长度到2048:


  sysctl -w net.ipv4.tcp_max_syn_backlog=2048


  打开SYN COOKIE功能:


  sysctl -w net.ipv4.tcp_syncookies=1


  降低重试次数:


  sysctl -w net.ipv4.tcp_synack_retries=3


  sysctl -w net.ipv4.tcp_syn_retries=3


  为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中.


2. 抵御DDOS


  DDOS,分布式拒绝访问攻击,是指黑客组织来自不同来源的许多主机,向常见的端口,如80,25等发送大量连接,但这些客户端只


建立连接,不是正常访问.一般Apache配置的接受连接数有限(通常为256),这些“假” 访问会把Apache占满,正常访问无法进行.


  Linux提供了叫ipchains的防火墙工具,可以屏蔽来自特定IP或IP地址段的对特定端口的连接.


  使用ipchains抵御DDOS,就是通过netstat命令发现攻击来源地址,然后用ipchains命令阻断攻击.发现一个阻断一个.


  *** 打开ipchains功能


  查看ipchains服务是否设为自动启动:


  chkconfig --list ipchains


  输出一般为:


  ipchains 0ff 1ff 2n 3n 4n 5n 6ff


  如果345列为on,说明ipchains服务已经设为自动启动


  如果没有,可以用命令:


 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号