Netfilter,iptables/OpenVPN/TCP guard:-(

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

古罗马帝国莱茵河-多瑙河防线之谜

本周生病,静心安养,所得之处,作文以记之。屋大维.奥古斯都听闻瓦鲁斯在条顿堡森林全局覆没,哀鸣:“瓦鲁斯,还我军团!”很多人搞不明白,其实他本应该喊的是:“阿米尼乌斯,还我瓦鲁斯!日耳曼蛮夷,还我军团!”1.迷局大部分的史书记载,奥古斯都把帝国边界线确定为莱茵河而不是易北河,这是一个迷。之所以是个...

2015-01-18 19:36:47

阅读数:4672

评论数:0

在Linux的连接跟踪(nf_conntrack)中缓存私有数据省去每次查找

前面说过很多次,conntrack作为一中连接跟踪机制,如果它本身是可扩展的,那么将会是多么令人激动的一件事,当你看了N多文档代码之后,你发现它确实是可以扩展的,但是却没有感到激动,因为你可能发现:1.它可以注册一个account扩展,但是计数机制却很原始;2.我希望增加一个新型的扩展,却不得不重...

2015-01-17 22:33:01

阅读数:4396

评论数:0

iptables配置conntrack的NOTRACK和TRACK

iptables本身没有TRACK target,以至于你不能指定需要被conntrack模块处理的数据包白名单,比如我想实现:除了来源IP是192.168.10.0/16网段的需要被track之外,其它的都不要track。       当然,你可以通过下面的配置实现我的需求:iptables -...

2015-01-17 15:30:42

阅读数:7586

评论数:0

LED灯的闪烁与熄灭也成了一个iptables target,强汗

只要有符合规则数据包到达,LED灯就XY一下,这个效果怎么实现?我有很多的办法,比较绕的就是:使用LOG target发内核日志,rsyslogd截获,redirect到filter,调用shell操作LED灯。虽然很绕,但是UNIX上不都是提倡这么玩的吗?最为直接的办法是什么?我觉得应该是写一个...

2015-01-17 15:28:15

阅读数:2730

评论数:1

TCP socket的accept/connect成功返回可是对端却不辞而别

在编写TCP程序的时候,对于服务端,accept成功返回的时候,就一定意味着某个客户端已经成功建立了TCP连接吗?对于客户端,connect成功返回就一定意味着自己成功连接上服务端了么?远远不是!       accept/connect这两个socket调用完全是基于TCP三次握手状态机的,即只...

2015-01-17 15:26:37

阅读数:6729

评论数:3

Linux Netfilter conntrack对zone的支持

我真的羡慕自己,特别的极端崇拜,要是我拉二胡能像摆弄Linux网络那样随心所欲,我就敢请个一个月的无薪长假,去公园每天拉半天二胡...只可惜到现在还没怎么拉响。       一个多月前,我对Netfilter conntrack做了一个优化,即将conntrack分为了多个表替换现在的一个表,目的...

2015-01-11 19:47:15

阅读数:3410

评论数:0

Linux内核协议栈的socket查找缓存路由机制

是查路由表快呢?还是查socket哈希表快?这不是问题的根本。问题的根本是怎么有效利用这两者,让两者成为合作者而不是竞争者。这是怎么回事?       我们知道,如果一个数据包要到达本地,那么它要经过两次查找过程(暂时不考虑conntrack):IP层查找路由和传输层查找socket。怎么合并这两...

2015-01-11 11:18:31

阅读数:3152

评论数:0

单独一台机器测试OpenVPN加密隧道的问题和解决

其实这篇文章和OpenVPN的关系倒不是很大,只是通过OpenVPN测试时暴露出的问题。这篇文章里面倒是包含了很多IP路由以及conntrack的细节内容。       有时候,为了节省机器,我希望在一台设备上模拟多个设备,当然,使用网络命名空间是可以的,但是我的内核版本不支持...所以我希望使用...

2015-01-11 11:15:55

阅读数:3723

评论数:4

我如果能在内核中很方便地使用HIGHUSER内存该有多好...一个例子

话说用户态访问内核内存很简单,将这块内核内存映射到用户地址空间即可。依托一个字符设备,实现其mmap回调函数,在用户进程打开那个设备,mmap之,很容易实现用户进程直接访问内核内存。       但是反过来呢?内核访问用户内存。理论上也很简单,因为所有进程的内核态地址空间都是共享的,所以想访问哪个...

2015-01-11 11:10:44

阅读数:5576

评论数:0

我如果能在内核中很方便地使用HIGHUSER内存该有多好...

需求近日在工作中遇到一个需求,即:内核中需要保存一些用户信息(包括用户名,密码,登录时间等等),这些用户信息和TCP/IP协议栈的一个数据流进行绑定,用于决定针对数据包采取的动作。必要性随着应用越来越多越来越复杂,在路由器或者网关中仅仅依靠数据包协议头的字段已经无法对一个数据包采取一个粒度更细的抉...

2015-01-11 11:08:32

阅读数:5626

评论数:3

我和JAVA一些事

这篇文章是元旦假期写的,比较松散,纪录了我的一些早期从业经历,回顾往昔,我可能会问:怎么从用JAVA做界面的程序员过渡到死磕Linux内核协议栈功能与性能的嬉皮士?我想我无法很好的回答这个问题,但是起码,用一颗平静的心对待生活中的每一个惊喜,每一次变故,每一次悲哀,是必须的,对我而言,没有什么是惊...

2015-01-11 11:05:31

阅读数:3170

评论数:3

static stateless 2-way NAT on Linux with iptables的应用实例

前面几天,我完成了一个static stateless 2-way NAT,写了几篇文章,但是着重于理论分析,本文来展示一个应用实例。在具体展示实例之前,先说一个static stateless 2-way NAT和Linux原生conntrack NAT的区别,static stateless ...

2015-01-03 10:19:16

阅读数:2753

评论数:1

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