3.3.6.2. 手动 IPsec 主机到主机配置
建立连接的第一步是从各工作站收集系统和网络的信息。要建立主机到主机连接,你需要下列信息:
每个主机的 IP 地址
一个独一无二的名称,例如,ipsec1。在进行 IPsec 连接时这个名称用来进行身份验证并与其它服务和连接区别开来。
一个事先选好的密钥或由 racoon 自动生成的密钥。
一个事先选好的共享验证密码,该密码在连接建立的最初阶段会用到,用来进行密钥交换。
例如,假设工作站 A 和工作站 B 想通过 IPsec 隧道建立相互的连接。这两个工作站要用一个事先选好的共享密码即Key_Value01 进行连接,而且用户们同意让racoon 自动生成一个主机之间共享的验证密码。连接双方决定以 ipsec1 来命名这一连接。
你选择的 PSK 应是大写字母、小写字母、数字和标点符号的组合,因为容易猜出的 PSK 不安全。
对每个主机来说选择相同的连接名称倒不是必须的。你应该选择一个对你的安装来说既方便又有意义的名称。
下面是 IPsec 为工作站 A 与工作站 B 进行主机到主机IPsec 连接的配置文件。这个例子中识别该连接的独一无二的名称是 ipsec1,因此该连接合成的文件名是 /etc/sysconfig/network-scripts/ifcfg-ipsec1。
DST=X.X.X.X TYPE=IPSEC ONBOOT=no IKE_METHOD=PSK
对工作站 A 来说,X.X.X.X 是工作站 B 的 IP 地址。对工作站B 来说,X.X.X.X 是工作站 A 的 IP 地址。这一连接的设定不是在启动(ONBOOT=no)时就启动该连接,而是要使用事先选好的共享验证密码方式(IKE_METHOD=PSK)进行连接。
下面是关于事先选好的共享验证密码的文件内容(叫 /etc/sysconfig/network-scripts/keys-ipsec1),两个工作站都需要验证相互的身份。这个文件的内容在两个工作站处应该是完全一致的,而且应该只有根用户才有读取和写入该文件的权限。
IKE_PSK=Key_Value01
要在 keys-ipsec1 文件创建后修改此文件以保证只有根用户能够读取和编辑该文件,请使用下面的命令:
[root@myServer ~] # chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
任何时候如果需要修改验证密码,两个工作站都应通过编辑 keys-ipsec1 文件来实现。要使连接正常运行,双方的验证密码必须完全一样。
接下来的例子显示连接到远程主机时第一阶段的具体配置。该文件叫 X.X.X.X.conf,其中X.X.X.X 是 IPsec 连接中远程主机的IP 地址。注意这个文件是在 IPsec 隧道被激活时自动生成的,而且应该无法直接对它进行编辑。
remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
默认情况下,当 IPsec 连接启动时第一阶段配置文件含有 红帽企业 Linux 使用的和由 IPsec 实现的下列声明:
指定该配置文件随后的文件段只适用于由 X.X.X.X IP 地址识别的远程节点。
在 红帽企业 Linux上 IPsec 默认的配置是使用挑衅性的验证方式(aggressive authentication mode),这样可以使该连接在空中降低位置,从而允许与多个主机进行多项连接的 IPsec 配置。
验证节点时指定要使用的验证身份的方式,红帽企业 Linux 使用 IP 地址来识别节点。
指定验证身份时使用的密码暗号。默认情况下,规定使用 Triple Data Encryption Standard (3DES)。
指定节点之间在第一阶段的协商中所使用的散列算法。默认情况下,给定使用 Secure Hash Algorithm version 1(安全散列算法第一版)。
指定节点之间协商中所使用的验证方法。默认情况下, 红帽企业 Linux 使用事先选好的共享密码验证方法。
指定 Diffie-Hellman 的组号码以便建立动态生成的会话密钥。其默认号码是 modp1024 (group 2)。