清ip_conntrack的最好办法是service iptables stop

发表于:2007-07-04来源:作者:点击数: 标签:
http://linux.bdcf.net/index.php?option=contenttask=viewid=87Itemid=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了,所以该设的全重设

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的内容? javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">
作者 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标志是否过多,过多就可以采取这样的做法消除他们呢?希望大家讨论,共同进步!

原文转自:http://www.ltesting.net