曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4851|回复: 1
打印 上一主题 下一主题

使用 racoon 配置 IKE

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2012-9-15 14:33:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
racoon 是 IPSec-tools 软件包中的 IKE (Internet Key Exchange, 因特网密钥交换协议)守护进程工具。

在 《
使用 ipsec-tools 设置 SAD 和 SPD》里介绍了如何配置 SAD 和 SPD,但其配置文件中使用的是固定密钥模式,即我们事先已经准备好了两个固定的密钥。对于这种情况,如果密钥一直一成不变,那么必定带来安全隐患;如果是频繁更新密钥,那么带来的劳动量可能会比较大。因此,因特网工程任务小组(Internet Engineer Task Force: IETF) 就设计了 IKE 协议。在 IKE 架构中,系统管理员只需要设置加密算法和及验证算法等信息即可,IKE 会定时且自动的生成加密密钥。

这里不分析 IKE 整个工作原理及细节,而只是简略描述其工作流程。

首先,我们定义好 IKE 及安全策略等参数,此时 SPD 中应有数据存在,而 SAD 中的内容为空(因为 IKE 还未启动,密钥等还未生成)。现在,主机A 开始与 主机B 进行通讯,主机A 上发出的数据包会被送往 IPSec 安全策略进行匹配,以决定这个数据包是否需要用 IPSec 协议处理,如果不需要的话,那么数据包就以正常的方式送达主机B。如果 IPSec 安全策略判断数据包需要经过 IPSec 机制来处理,那么数据包会被先送到 IPSec 处理机制中,但此时因为 SAD 内容为空,IPSec 机制会因为没有 SA 参数而不知道如何处理这个数据包,此时 IPSec 机制会去触发 IKE 机制,这样就使得主机A 的 IKE 机制与主机B 的 IKE 机制进行数据交换,进而产生两台主机的 SAD 内容 --- 这里可以理解为,IKE 为我们自动填写了 SAD 配置文件。在这个过程中,应用程序会暂时出现无法通信的情形。

下面我们使用预贡献密钥验证机制来配置传输模式的 VPN 系统 --- 实际上,搭建上面的实验环境并不需要 VPN ,然而实际应用中,像 L2TP 这种 VPN 往往是需要上面机制来支持的。

实验所用到的系统是两台装有 Fedora Linux 的操作系统,并假设我们已经安装好 ipsec-tools ;其中一台的的 IP 是 192.168.1.107 ,另一台是 192.168.1.109 。现在配置 /etc/racoon/racoon.conf 文件,其内容如下:
[Plain Text] 纯文本查看 复制代码
path include "/etc/racoon";
 path pre_shared_key "/etc/racoon/psk.txt";
 path certificate "/etc/racoon/certs";
 path script "/etc/racoon/scripts";
 
 remote 192.168.1.107 {
         exchange_mode   main;
 
         proposal {
                         authentication_method   pre_shared_key;
                         dh_group                modp1024;
                         hash_algorithm          sha1;
                         encryption_algorithm    3des;
                         lifetime time           1 hour;
         }
 }
 
 sainfo anonymous {
 
         lifetime time 1 hour ;
         encryption_algorithm 3des;
         authentication_algorithm hmac_sha1;
         compression_algorithm deflate;
 }


接着,设置预共享密钥(preshared keys),配置文件为 /etc/racoon/psk.txt ,我们将密钥写入其中,内容如下:
[Plain Text] 纯文本查看 复制代码
192.168.1.107   groad

其中,groad 就是预共享密钥,192.168.1.107 是要与之通信的主机 IP 。也就是说,我们要和 192.168.1.107 这台主机通信,那么就要使用 groad 这个预共享密钥。实际上,这个密钥越复杂越好。

再接着,设置安全策略,这里的内容和《
使用 ipsec-tools 设置 SAD 和 SPD》里配置的安全策略相同,我们将这些内容保存在 /etc/racoon/setkey.conf 中,内容如下:
[Plain Text] 纯文本查看 复制代码
flush;
 spdflush;
 
 spdadd  192.168.1.107 192.168.1.109 any -P in ipsec
         esp/transport//require
         ah/transport//require;
 
 spdadd 192.168.1.109 192.168.1.107 any -P out ipsec
         esp/transport//require
         ah/transport//require;

在另一台主机上的 racoon.conf 的内容和上面的一样,而安全策略中的方向和上面的相反,共享密钥配置文件只需要改下 IP 即可。

最后启动 IKE 机制和使能安全策略:
# systemctl start racoon.service
# setkey -f /etc/racoon/setkey.conf
这两个步骤在两台主机上都需要做一次。

那么当我们在一台主机上 ping 另一台主机时,用 wireshark 捕捉数据包时会看到:



上面关于 racoon 配置文件中各行的含义可以参考 man racoon.conf ,或者将在另一篇文章里会详细解释。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-19 16:43 , Processed in 0.065397 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表