23 May 2009
vpn学习笔记(续)
linux下的ipsec架构?
同Netfilter 一样,Linux 也是利用外挂模块的方式来支持IPSec 机制,(ls /lib/modules/your kernel/net/ipv4)其中ah4.ko 及esp4.ko 就是Linux 于IPv 4 环境下支持IPSec 的模块,不过ah4.ko 及esp4.ko 其实只是执行AH 及ESP 协议的一个机制而已,如果我们没给予验证算法、加密算法及加密密钥等,除了只能拿来占用内存之外,什么事也不能做,那AH 及ESP 的工作参数我们又该如何指定给它们呢?这就得使用setkey 管理工具将IPSec 执行时所需要的参数写入到SPD(Security Policy Database,安全策略数据库)及SAD(SecurityAssociation Database,安全参数数据库)。以上一篇文章中寄信的例子来说,SAD是指定与谁通信,SPD是指定认证机制。
Internet key exchange(IKE)
画这鸟图花了近1小时,十分郁闷。
图中步骤描述
假设A的应用程序要与B通讯
判断是否需要ipsec处理1,如果不需要则封包被送入2,接着通过网络物理层传到4
当需要使用ipsec处理时进入3,此时SAD的内容是空的,因此IKE机制被触发6,这时A与B的IKE机制进行信息交换7,进而自动产生SAD中的内容。