Netfilter,iptables/OpenVPN/TCP guard:-(

我不会编程,但也不是一点都不会,我稍微会一些 :-)

Why 使用TLS记录协议封装IP层VPN IS A Bad Idea

一个很自然的想法,使用TLS封装一个IP数据报实现一个第三层的VPN。这种想法一定是经过了深思熟虑的,但是不幸的是,这是个错误的想法。有一篇文章《Why TCP Over TCP Is A Bad Idea》,详细解释了Why。事实上重传叠加问题是无法解决的,要知道,TCP的RTO计算是极其复杂的...

2014-04-27 13:31:46

阅读数:3618

评论数:0

基于Linux路由的访问控制

声明关于访问控制,人民已经讨论了很多的方案,但是千万不要觉得某种方案是放之四海而皆准的,没有这样的东西!RBAC根本不适宏内核协议栈的操作系统(UNIX,Linux,and so on...我可能在之前的文章把它们弄反了,...),但是这并不是每个人民中的一员都知道,包括我自己!       总之...

2014-04-26 20:47:44

阅读数:4089

评论数:1

令人作呕的OpenSSL

在OpenSSL心脏出血之后,我相信很多人都出了血,并且流了泪...网上瞬间出现了大量吐嘈OpenSSL的文章或段子,仿佛内心的窝火一瞬间被释放了出来,跟着这场疯闹,我也吐一下嘈,以雪这些年被OpenSSL蹂躏之辱,也许可以顺便展现一下我的无知与愚昧,但只是也许...       首先声明的一点是...

2014-04-26 20:00:02

阅读数:116151

评论数:106

iptables规则绑定在端口而不是拦截在协议栈

是不是要重新设计Netfilter的HOOK点位置了?无疑这是一个没有意义的问题,因为你无法证明新的方案更好,你可能只是看上了另一个平台的方案而已,而这个方案和Netfilter的方案是不同的。事实上,我就是这样一个人。       Cisco的ACL可以被编译在端口上,事实上Cisco设备的网络...

2014-04-20 08:55:37

阅读数:3407

评论数:1

Linux路由表的抽象扩展应用于nf_conntrack

思想标准IP路由查找的过程为我们提供了一个极好的“匹配-动作”的例程。即匹配到一个路由项,然后将数据包发给该路由项指示的下一跳。如果我们把上面对IP路由查找的过程向上抽象一个层次,就会发现,其实它还可以有别的用。抽象后的表述为:以数据包的源地址或者目标地址为键值去查询一张表,查到结果项以后执行结果...

2014-04-19 12:26:34

阅读数:3797

评论数:0

利用nf_conntrack机制存储路由,省去每包路由查找

IP是无连接的,因此IP路由是每包一路由的,数据包通过查找路由表获取路由,这是现代操作协议协议栈IP路由的默认处理方式。但是如果协议栈具有流识别能力,是不是可以基于流来路由呢?答案无疑是肯定的。设计思想在Linux的实现中,nf_conntrack可以做到基于流的IP路由,大致思想就是,仅仅针对一...

2014-04-19 11:57:45

阅读数:4558

评论数:16

如何任意扩展sk_buff而不重新编译内核

玩Linux网络的同好一定希望可以任意定义网络处理逻辑的行为,可谓协议处理的高端定制,最显而易见的办法就是在结构体里面加一个字段,事实上Linux的一个入口流控补丁IMQ就是这么做的,它简单的修改了Linux内核的sk_buff结构体的定义,增加了一个字段,增加了一个IMQ使用的字段,然后重新编译...

2014-04-13 15:45:21

阅读数:3125

评论数:3

USB,蓝牙,以太网,还是WIFI?

本文我们来关注一下硬件接口。声明在本文中,我没有严格按照IEEE 802来描述,比如我将以太网IEEE 802.3和IEEE 802.11混合在一起,并将后者看成前者的扩展(也有人说802.11是802.3的杀手...),事实上我这么理解是有道理的,因为毕竟是802.3独领风骚得时候,才有了802...

2014-04-12 09:07:04

阅读数:7520

评论数:1

编程思想和网络协议处理

最近发生了4件事1.JAVA编程思想最近在看《JAVA编程思想》,赐予我思想吧,我要编程,字字珠玑,遍地思想啊!2.最近在实现一个协议如何判断一段数据是一个IP数据报,这个问题很简单,但是暴露的却是一个大问题。引发的是更多的思想。3.OpenSSL的心脏流血一个数据包的包头长度字段标识的长度并不是...

2014-04-12 09:05:14

阅读数:2981

评论数:1

ip_conntrack的extend机制以及扩展

ip_conntrack为无状态无连接的IP增加了一个流记录机制,你可以把任何和一个流相关的东西放进去,但是放在哪里呢?原则上ip_conntrack应该是一个可以无限扩展的东西,但事实上,内核的设计者或者说Netfilter的ip_conntrack设计者并没有给用户程序员留下任何可以扩展它的接...

2014-04-06 22:22:10

阅读数:3675

评论数:0

如何扩展Linux的ip_conntrack

Linux中有一个基于Netfilter的连接跟踪机制,即ip_conntrack,每一个conntrack表示的就是一个流,该流里面保存了大量的信息字段,这些字段本地有效,指导着数据包的转发策略,但是我觉得这些字段信息还不够详细,试想,一个nfmark字段好像就可以做到一切了,但是我如果想为一个...

2014-04-05 23:07:08

阅读数:5913

评论数:1

printf的归宿-数据打印到哪儿了

近日在一次测试Linux内核路由查找算法的过程中,发现一个printf语句竟然能将性能降低2/3。当然,使用“竟然”一词并不意味着这个问题是第一次发现,我的想法是,把它记录下来,让没有经验的同学对printf知其所以然,同时导出我对“性能攸关”的这类算法中记录日志的一个观点。声明我不会把大段的源代...

2014-04-05 23:01:40

阅读数:5921

评论数:4

提示
确定要删除当前文章?
取消 删除