apszhangqi 发表于 2006-11-26 10:38:14

拒绝所有的syn连接来防止内网syn攻击,各位大虾指点下

非原创
请各位大虾帮我分析一下利弊
经测试,加这条规则之后,用攻击软件攻击时,CPU占用情况有很大的改善,内存基本不减
尝试限制syn连接数,无效
以上全部于虚拟机下测试

[ 本帖最后由 apszhangqi 于 2006-11-26 10:43 编辑 ]

platinum 发表于 2006-11-26 15:56:43

这样做有两个弊端
1、针对 lo 回环设备你也 DROP 了,会影响一些内部功能
2、你针对 tcp 的 syn 做 DROP,间接还多了一个判断 tcp 标记的操作,若对所有 tcp 都 DROP 会更好

其实这样做的意义不大,若你不对外公开服务就好,原来 CPU 高不是高在数据报进入网络协议栈,而是高在应用层的处理上

seignior 发表于 2006-11-26 16:47:46

.......大哥们,syn是tcp/ip三握手中标准的流程,他本身是合法并且必须的。

platinum 发表于 2006-11-26 18:11:05

原帖由 seignior 于 2006-11-26 16:47 发表
.......大哥们,syn是tcp/ip三握手中标准的流程,他本身是合法并且必须的。
你可能没理解楼主的用意,他不需要对外提供服务

apszhangqi 发表于 2006-11-26 19:58:39

这样?

seignior 发表于 2006-11-26 20:10:35

原帖由 platinum 于 2006-11-26 18:11 发表

你可能没理解楼主的用意,他不需要对外提供服务

所有tcp/ip都需要这三握手才能建立连接,并不是服务才需要。syn,ack.........

seignior 发表于 2006-11-26 21:46:31

握手顺序是urg、ack、psh、rst、syn、fin
最开始的标记是urg?既然你提出这个话题,弄得我有点不肯定了。(还是一个echo?)

如果是我判断syn,要用序列号判断,tcp cookies我还没掌握。

第四个问题,好像问得有点莫名其妙吧?

我看顶楼的帖,他的本意是!192.168.5.2,dst 192.168.5.10,所有tcp flags是syn的全部drop?无论是否合法,直接drop掉所有syn,好像是不对的吧?被你问得我有些怯了。

platinum 发表于 2006-11-26 21:46:44

原帖由 seignior 于 2006-11-26 20:10 发表


所有tcp/ip都需要这三握手才能建立连接,并不是服务才需要。syn,ack.........
我前面说的有问题吗?

seignior 发表于 2006-11-26 21:47:50

不见了上面那个问题帖?浪费了我挖脑汁的时间哦~~~~~~

seignior 发表于 2006-11-26 21:51:52

不是啊,按照你的说法,“他不需要对外提供服务”,问题是无论有没有对外服务,只要建立连接,这syn是必经之路吧?

platinum 发表于 2006-11-26 22:10:55

原帖由 seignior 于 2006-11-26 21:51 发表
不是啊,按照你的说法,“他不需要对外提供服务”,问题是无论有没有对外服务,只要建立连接,这syn是必经之路吧?
不是啊,若没有服务且也没有防火墙的情况下,过来的 SYN 会被 TCP 协议栈直接以 RST 标记返回而告终
你抓包看看就知道了

platinum 发表于 2006-11-26 22:12:04

另外还有,若是攻击的话,未必发 syn,发 ack 也是可以的
所以楼主的这种方法不好,直接对所有外网进来的 TCP DROP 就对了

seignior 发表于 2006-11-26 22:21:11

不是吧?忘记了,我在一年多前自己写了ack,psh,syn、icmp攻击器(在我另一帖关于2.9.6,2.9.27桥和ddos那帖有实例),印象中好像收到syn应该是挂起连接等待下一个握手的吧(好像是,忘记了,那个程序也是抄别人例程以加深自己对通讯的理解而已)?

但我可以肯定,syn过去,对方是没有直接挂断而是等待下一个请求的(因为我是攻击dst随机端口例如什么1024、2048的,那些端口肯定是没有服务的)。

platinum 发表于 2006-11-26 22:41:01

具体有疑问可以查看《TCP/IP详解》卷一

seignior 发表于 2006-11-26 22:51:04

野外中,手上没书, google一下子也找不到。
但在实测中,我扔出syn,对方的确没有挂断啊~~~~~~因为返回的报文没有返回我这里(而且手上也没有dump工具),所以没办法分析,但查看对方连接,的确我送过去的连接在在(在我请求已经结束之后)。
页: [1] 2
查看完整版本: 拒绝所有的syn连接来防止内网syn攻击,各位大虾指点下