免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1568 | 回复: 9
打印 上一主题 下一主题

谢谢各位提点,终于完成! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-25 17:04 |只看该作者 |倒序浏览
经过两个月的努力 终于在 linux2.6.23下完成了syn cookie防火墙,不过毕竟是新手,代码质量不敢保证,其中参考了两个开源项目一个是 TCP splicing 还有一个 syn cookie firewall。

大致方法如下:

1.使用哈希表进行连接信息的记录。

2.由于考虑模块特性以及对NAT的支持(为了支持NAT还提取了连接跟踪表中的内容,记录在自己的哈希表中),定义了两个钩子NF_IP_PRE_ROUTING出和NF_IP_POST_ROUTING处,优先级分别为NF_IP_PRI_FIRST和NF_IP_PRI_LAST

3. cookie算法未作改动,由内核里直接copy.




其中碰到一个问题,花了较长的时间。这里分享下。

暂且把这个问题叫做 “丢掉的HTTP 请求包”。描述如下:

在刚刚完成代码进行测试(开启防御,访问百度,把百度当作保护对象)的时候发现,每次页面的呈现都将延迟3秒,而后使用此连接浏览网页很快。

经过多次调试发现原来是在cookie验证后,客户端其实会很快的发出HTTP请求包,而这时我的代码正在处理第二段与服务端得连接,直接把它丢弃了。然后浏览器3秒后重发此HTTP请求包,此时连接建

立完成,自然页面就出来了。 解决办法很简单,缓存住这个丢掉的HTTP请求吧,在第二段连接完成时立即发送即可。


感谢各位的帖子,毕设代码终于完成了:wink:

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
2 [报告]
发表于 2009-08-25 17:30 |只看该作者
本科毕设?

论坛徽章:
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
3 [报告]
发表于 2009-08-25 17:41 |只看该作者

回复 #1 clusterlee 的帖子

我觉得你在HTTP请求的Cookie之后,直接发送给客户端一个RST包,这样客户端就会马上重新建链接。

论坛徽章:
0
4 [报告]
发表于 2009-08-26 00:20 |只看该作者
什么毕业?这都快9月了

论坛徽章:
0
5 [报告]
发表于 2009-08-26 09:01 |只看该作者
原帖由 Godbach 于 2009-8-25 17:41 发表
我觉得你在HTTP请求的Cookie之后,直接发送给客户端一个RST包,这样客户端就会马上重新建链接。



这个我也想过,不过RST后连接重新开始,又得进行cookie的计算,和第一段连接,所以就牺牲了点空间换取了时间。



我做的是硕士论文的代码,明年3月多才毕业。其实毕设里的代码和syn cookie防火墙还有一些区别,针对http这类的协议,我是在http请求包里做cookie验证的,同时判断对方的URL权限后再向服务

端起连接。但是对于P-HTTP,就对第一次HTTP请求有意义。

还想做的是提高其对TCP选项的支持,维护一个服务端的TCP参数配置表,记录服务端某个端口否开启SACK、TIMESTAMP、以及当前的窗口扩大因子大小。

论坛徽章:
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
6 [报告]
发表于 2009-08-26 09:51 |只看该作者
不错。只要毕设踏踏实时的做一些研究和实践,还是很有意义的

论坛徽章:
0
7 [报告]
发表于 2009-08-26 10:42 |只看该作者

回复 #1 clusterlee 的帖子

想起了偶的本科毕业设计,做的是syn cache

论坛徽章:
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
8 [报告]
发表于 2009-08-26 10:51 |只看该作者
偶的本科毕业就学习了一下嵌入式,分析了一个驱动程序。。。

论坛徽章:
0
9 [报告]
发表于 2009-08-26 13:13 |只看该作者
原帖由 Godbach 于 2009-8-26 10: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
10 [报告]
发表于 2009-08-26 14:00 |只看该作者

回复 #9 克拉玛依 的帖子

呵呵,我的本科毕设没做啥东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP