My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > 操作系统 > Linux > Linux综合
清ip_conntrack的最好办法是service iptables stop
作者:未知 时间:2005-09-13 22:09 出处:Blog.ChinaUnix.net 责编:My FAQ
              摘要:清ip_conntrack的最好办法是service iptables stop

http://linux.bdcf.net/index.php?option=content&task=view&id=87&Itemid=2

一个perl脚本来清空ip_conntrack.不过我发觉更简单办法是移除ip_conntrack模块.移除时提示有依赖,还是直接service iptables stop来得快  .不过要记得,ip_forward也被设为0了,所以该设的全重设

http://linux.bdcf.net/index.php?option=content&task=view&id=87&Itemid=2

一个perl脚本来清空ip_conntrack.不过我发觉更简单办法是移除ip_conntrack模块.移除时提示有依赖,还是直接service iptables stop来得快.不过要记得,ip_forward也被设为0了,所以该设的全重设

如何清除/proc/net/ip_conntrack的内容? PDF文档打印E-mail
作者 woflyin
2004-12-09
对于做处于网关地位的机器,其开启了nat功能,那么/proc/net/ip_conntrack是保存的是内网地址和外部地址连接的情况,记录每个连接的详细情况,其内容一般会保持5天,期间重新启动网络并不会有效减少其内容,唯一的办法就是重新启动和增大内存的数量,给监控带来不便,内容很容易满,核心便会报警:
ip_conntrack: table full, dropping packet
解决办法:
1.增加内存:修改/etc/sysctl.conf的设置容量 net.ipv4.ip_conntrack_max=大的数值!
2.隔一段时间重新启动系统,清空ip_conntrack
3.对ip_conntrack编程,读取其内容,匹配指定的ip地址,然后调用发包程序发送RST报文,人为的完成tcp连接。用perl实现,调用了一个外部程序hping2,可以从其主页找到,这个程序就是个构包器

用法:cl.pl ipaddress
#!/usr/bin/perl
$ip = $ARGV[0];
#print $ARGS,$ip;
exit if(!$ip);
open(FH,"ip_conntrack");
while()
{
if (/^tcp .*ESTABLISHED src=$ip/)
{
#print $_;
@line = split(/=/,$_);
$sip = $line[1];
$sip =~s/ .*//g;
$dip = $line[2];
$dip =~s/ .*//g;
$sport = $line[3];
$sport =~s/ .*//g;
$dport = $line[4];
$dport =~s/ .*//g;
print "$sip:$sport $dip:$dportn";
`/usr/bin/hping2 $dip -R -s $sport -p $dport -a $sip -k -c 1 >/dev/null 2>/dev/null &`;
}
}

4。问题:通过这个思路,是否可以对消除ddos攻击有一定帮助呢?查询ip_conntrack表,判断syn_SENT标志是否过多,过多就可以采取这样的做法消除他们呢?希望大家讨论,共同进步!
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有