在 《
如果要让 IPSec 可以正常工作,那么需要适当的管理工具来管理 AH 和 ESP 运行所需要的参数,这些管理工具在开源领域从不缺乏,但要看你自己习惯用什么样的软件,比如常见的有 OpenSwan 和 ipsec-tools ,这里介绍的是 ipsec-tools 这一款,它的官方网站是 http://ipsec-tools.sourceforge.net ,但在官网只提供源代码,要编译才能安装,这不是很方便。在 Fedora 17 里,可以直接使用 yum 来安装: 此外,在 http://rpm.pbone.net 这个网站上可以找到许多不同 Linux 发行版可用的 RPM 安装包,将对应的版本下载后,可以使用下面的命令进行安装: 下面以一个简单的只启用了 AH 协议的 IPSec VPN 的配置文件为例说明。 首先,我们在 192.168.1.109 这台 /root 目录下编辑一个文件 192-168-1-109.conf ,其文件内容为:
[Plain Text]
syntaxhighlighter_viewsource
syntaxhighlighter_copycode
这个 192-168-1-109.conf 文件所在的主机 192.168.1.109 我们称之为数据库服务器,它包含了两个数据库,SAD (Security Association Database)和 SPD (Security Policy Database)。简单的说,SPD 是用来存放 IPSec 通信规则的;SAD 是用来存放 IPSec 规则所使用的参数的,如这些参数有:SPI 值,目的端 IP,AH 或 ESP 协议,AH 验证算法,AH 验证的加密密钥,ESP 验证算法,ESP 验证算法的加密密钥,ESP 加密算法,ESP 加密算法的加密密钥,使用隧道模式还是传输模式 等等。 我们可以将上面的 192-168-1-109.conf 稍作修改后,然后传给 192.168.1.107 这台客户机,这样两者以后的任何通信,一律会采用 IPSec 机制处理,修改的内容如下:
[Plain Text]
syntaxhighlighter_viewsource
syntaxhighlighter_copycode
实际上,修改的内容不多:SAD 部分无需做任何改动。SPD 部分只要调换一下传输方向即可(in 和 out) 。保存后,可以将该文件保存为 192-168-1-109.conf ,然后我们使用 scp 命令将其上传到 192.168.1.09 这台客户机上,使用 scp 命令是保证传输过程中的加密安全性,上传命令如下: 传输完毕后,我们可以使用 setkey 命令来启动 IPSec 了,setkey 命令在安装 ipsec-tools 软件包时会被同时安装。当然,数据库服务器和客户机两边都需要使用该命令来启动 IPSec,用法是: 如果想取消 IPSec 的运行,可以使用下面的命令: 下面以 192-168-1-107.conf 这个文件为例,说明一下各行配置的含义: 第 1 行和第 2 行:在加载文件内所定义的 IPSec 参数之前,需要先清除一下 IPSec 原有的参数内容,这些参数内容分别保存在 SAD 和 SPD 两个数据库中。其中,flush 是清除 SAD 数据库内容,spdflush 是清除 SPD 数据库内容。 第 4 行:以 # 符号开头的行是注释行。另外,一个配置行的是以分号作为结束的,如果没遇到分号,那么就不认为该配置行结束。 第 6 行和第 7 行:add 是将其后的参数加入到 SAD 数据库的命令。 第 9 行和第 10 行:这两行和第6,第7行的含义相同,只是“方向”不同。这里,仍然选择 hmac-sha1 算法,但也可以选择其他的算法,比如 hmac-md5 ,但是前者比后者还要安全一点。此外,加密密钥也不一样,这对整个加密应用会更安全些。 第 14 行:下面内容是 SPD 数据库的内容。这些参数用于控制进出 VPN 主机的数据包中哪些是需要使用 IPSec 协议的,以及使用 IPSec 协议中的哪些协议。 第15 行:spdadd 是将其后参数加入到 SPD 数据库的命令。 第 16 行: 第 18 和第 19 行:这两行的内容和第15,16行除了方向定义相反外,其它的都相同。 至于启用数据库服务器和客户端之间采用 ESP 协议的配置和 AH 协议基本一样,这里就不赘述,只列出配置文件内容:
[Plain Text]
syntaxhighlighter_viewsource
syntaxhighlighter_copycode
上面需要注意的是 ESP 协议中所使用的加密算法以及加密密钥的长度,密钥的生成方法仍然可以采用 xxd 命令,只需要注意密钥长度即可。 |
http://www.groad.net/bbs/thread-7390-1-1.html