免费注册 查看新帖 |

Chinaunix

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

[欢迎进入讨论] 关于syn-proxy的一些问题 [复制链接]

论坛徽章:
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
发表于 2009-03-13 10:09 |显示全部楼层
原帖由 dreamice 于 2009-3-13 10:01 发表


透明代理的话,tcp握手直接和proxy完成了,不用关心这个问题。
但后续通信的包,需要proxy和server再建立一次连接。


tcp握手时,client知道他是直接和proxy握手的呢,还是client一直是以为和server在握手?

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-03-13 10:14 |显示全部楼层
原帖由 Godbach 于 2009-3-13 10:09 发表


tcp握手时,client知道他是直接和proxy握手的呢,还是client一直是以为和server在握手?


如果是透明代理的话,client当然是不知道的是在和proxy握手的。
如果是反向代理,那就知道了

论坛徽章:
0
发表于 2009-03-13 10:32 |显示全部楼层
这样行不行
自己定一个my_sock结构,里面存储源地址,源端口,目标地址,目标端口,差值,skb_buff链表(存储SYN包),连接状态。再创建一个my_sock的hash表。client和firewall第一次握手的时候,创建一个my_sock。firewall和server完成第二次握手的时候给my_sock的差值赋值。完成所有六次握手以后,把my_sock.state设为TCP_ESTABLISHED。对以后所有收到的包,匹配其地址和端口。并判断state是否established。如果是,就根据情况修改ack或是syn。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-03-13 12:12 |显示全部楼层
原帖由 richardhesidu 于 2009-3-13 10:32 发表
这样行不行
自己定一个my_sock结构,里面存储源地址,源端口,目标地址,目标端口,差值,skb_buff链表(存储SYN包),连接状态。再创建一个my_sock的hash表。client和firewall第一次握手的时候,创建一个my_s ...


老大,你这个实现太复杂了。
现在新版内核也支持透明代理,实现非常简单:client发起和server的连接,被proxy拦截(注意这里是拦截),然后伪装成server和client建立起连接,
连接建立成功以后,proxy在伪装成client向server请求数据(当然这里也要和server建立tcp连接),server返回数据后,再次被proxy拦截,proxy此时伪装成server
向client返回数据。

这个过程就是完全的透明代理。

反向代理则不同:
client不知道server的存在,把proxy当成server,而proxy有自己的IP,client请求proxy的时候,proxy再以自己的身份向真正的server发起请求,并获取返回包,最后proxy再以自己的身份向client返回包。这个过程,可以说对server来说,他的client只是proxy,对client来说,server就是proxy。

论坛徽章:
0
发表于 2009-03-13 12:59 |显示全部楼层
原帖由 dreamice 于 2009-3-13 12:12 发表


老大,你这个实现太复杂了。
现在新版内核也支持透明代理,实现非常简单:client发起和server的连接,被proxy拦截(注意这里是拦截),然后伪装成server和client建立起连接,
连接建立成功以后,proxy在伪 ...

透明代理的确是一个不错的解决方法。
楼主说的syn proxy跟透明代理还是不同。syn proxy只是对Client和Server之间的三次握手做一个类似的透明代理。建立连接后,数据的传输只是转发而已。
如果纯粹是防SYN Flood攻击,可能syn proxy效率会高一些吧。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-03-13 13:07 |显示全部楼层
原帖由 richardhesidu 于 2009-3-13 12:59 发表

透明代理的确是一个不错的解决方法。
楼主说的syn proxy跟透明代理还是不同。syn proxy只是对Client和Server之间的三次握手做一个类似的透明代理。建立连接后,数据的传输只是转发而已。
如果纯粹是防SYN F ...


嗯,这个应用倒是。

论坛徽章:
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
发表于 2009-03-13 13:07 |显示全部楼层
syn proxy只是对Client和Server之间的三次握手做一个类似的透明代理。建立连接后,数据的传输只是转发而已。


我觉得这里在建立连接后,数据的传输报文还是需要被修改的啊。怎么会是透明的呢?

论坛徽章:
0
发表于 2009-03-13 13:17 |显示全部楼层
原帖由 Godbach 于 2009-3-13 13:07 发表


我觉得这里在建立连接后,数据的传输报文还是需要被修改的啊。怎么会是透明的呢?

透明的意思就是看不到或者不用关心啊。syn proxy中,client和server都不知道firewall的存在。
透不透明,跟firewall是否修改报文没有关系。

论坛徽章:
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
发表于 2009-03-13 13:34 |显示全部楼层

回复 #28 richardhesidu 的帖子

明白:wink:
那这样来说syn-proxy应该就是透明代理啊。用户一直是不知道Firewall的。

[ 本帖最后由 Godbach 于 2009-3-13 13:35 编辑 ]

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-03-13 13:43 |显示全部楼层
原帖由 Godbach 于 2009-3-13 13:34 发表
明白:wink:
那这样来说syn-proxy应该就是透明代理啊。用户一直是不知道Firewall的。


那不就跟我说的那个差不多了
如果除了syn包都不走proxy的话,那只能说是syn cookie的transparent proxy吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP