免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach

[讨论] 清除本地服务器已建立TCP连接的方法[有了一个实现方法] [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-08-09 15:56 |显示全部楼层
记得 hping 好像可以解决类似的问题,但忘记是解决 TCP socket 问题还是 conntrack 问题了,反正是可以断掉 ...
platinum 发表于 2010-08-09 13:53


另外一个帖子看到白金兄的回复:
#!/bin/bash

echo
echo "############################"
echo "# Edit by Youngh 2003.06.24 v1.1 "
echo "# Usage : clr_conns IpAddress"
echo "# This will clear all connections from this IP_Address"
echo "# Example:/root/clr_conns 10.0.3.3 "
echo "############################"
echo

if [ -z $1 ] ; then
exit
fi

grep -E "^tcp .{10,25}ESTABLISHED src=$1 " /proc/net/ip_conntrack | while read line ; do
S_IP=`echo $line | awk '{print substr($5,5)}'`
S_SOCK=`echo $line | awk '{print substr($7,7)}'`
D_IP=`echo $line | awk '{print substr($6,5)}'`
D_SOCK=`echo $line | awk '{print substr($8,7)}'`
echo "$S_IP:$S_SOCK $D_IP:$D_SOCK"

hping2 $D_IP -R -s $S_SOCK -p $D_SOCK -a $S_IP -k -c 1 >/dev/null 2> /dev/null &

done


这个脚本执行完毕之后,感觉连接并没清除。 单独执行hping也是一样的问题。

大家谁用过么?

论坛徽章:
0
发表于 2010-08-09 15:58 |显示全部楼层
终结的可能是 conntrack 里面的信息,而不是 TCP 栈的 socket 占用

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-08-09 16:05 |显示全部楼层
他这个方面其实是通过hping来构造了RST包,如果发送成功的话,应该是结束TCP连接了,对conntrack和tcp socket应该都会生效啊。

我当前测试之后,对conntrack也没有什么影响。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-08-09 16:10 |显示全部楼层
我把测试的情况也贴一下:
[root@Godbach hping2-rc2]# cat /proc/net/ip_conntrack | grep 192.168.6.49
tcp      6 431699 ESTABLISHED src=192.168.6.49 dst=192.168.6.50 sport=3232 dport=22 packets=65 bytes=5695 src=192.168.6.50 dst=192.168.6.49 sport=22 dport=3232 packets=66 bytes=9752 [ASSURED] mark=0 secmark=0 use=1
tcp      6 428378 ESTABLISHED src=192.168.6.49 dst=192.168.6.50 sport=3228 dport=22 packets=26 bytes=2783 src=192.168.6.50 dst=192.168.6.49 sport=22 dport=3228 packets=32 bytes=4284 [ASSURED] mark=0 secmark=0 use=1
[root@Godbach hping2-rc2]#  ./hping2 192.168.6.50 -R -s 3228 -p 22 -a 192.168.6.49 -k -c 1
HPING 192.168.6.50 (eth0 192.168.6.50): R set, 40 headers + 0 data bytes

--- 192.168.6.50 hping statistic ---
1 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
[root@Godbach hping2-rc2]# cat /proc/net/ip_conntrack | grep 192.168.6.49
tcp      6 431668 ESTABLISHED src=192.168.6.49 dst=192.168.6.50 sport=3232 dport=22 packets=65 bytes=5695 src=192.168.6.50 dst=192.168.6.49 sport=22 dport=3232 packets=66 bytes=9752 [ASSURED] mark=0 secmark=0 use=1
tcp      6 428347 ESTABLISHED src=192.168.6.49 dst=192.168.6.50 sport=3228 dport=22 packets=26 bytes=2783 src=192.168.6.50 dst=192.168.6.49 sport=22 dport=3228 packets=32 bytes=4284 [ASSURED] mark=0 secmark=0 use=1
[root@Godbach hping2-rc2]#

执行完毕之后,状态依然是ESTABLISHED
hping2显示发出一个包,应该是RST包吧。 这里虽然用的是netstat,但是conntrack也是一样的

论坛徽章:
0
发表于 2010-08-09 16:51 |显示全部楼层
是不是序号问题?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-08-09 17:10 |显示全部楼层
白金兄指的是TCP的序号吗。

论坛徽章:
0
发表于 2010-08-09 17:18 |显示全部楼层
恩是的,会不会是序号不对导致 TCP 栈将其视为无效,且 conntrack 自身也有维护序号的功能,也认为其无效了

如果利用 RST 注入技术,应该是可以满足需求的

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-08-09 17:23 |显示全部楼层
我在网上查的,这个工具应该会先探测一下,获取到序列号吧。
不然的话,就只能相当于发送RST包,没办法断开连接了

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2010-08-09 17:26 |显示全部楼层
hping有两个参数
  -M  --setseq     set TCP sequence number
  -L  --setack     set TCP ack

是设置seq和ack_seq的吧,但是如果这两个序号我能获取到,那我自己都可以写程序发送RST了

论坛徽章:
0
发表于 2010-08-09 17:27 |显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP