安装Ipsec-tools
实现IPSec要求主机安装上ipsec-tools RPM 软件包,Red Hat Enterprise Linux 5一般默认安装。执行下述命令可以看到它的版本号为ipsec-tools-0.6.5-13.el5_3.1:
# rpm -qa | grep ipsec
ipsec-tools-0.6.5-13.el5_3.1
配置IPSec VPn
下面以一个实际的例子来讲述如何配置IPSec VPN。假设网络A和网络B想通过 IPsec 隧道来彼此连接。网络A的网络地址在172.1610.1.0/24 范围内,网络B使用 172.1610.2.0/24 范围。网络A的网关 IP 地址是 172.1610.1.1,网络B的网关地址是172.1610.2.1。每个网络间的 IPsec 连接使用一个值为sharekey的预共享钥匙,网络A和网络B都同意让 racoon 自动生成和共享每个 IPsec 路由器之间的验证钥匙。网络A把 IPsec 连接命名为 ipsec0,而网络B把 IPsec 连接命名为 ipsec1。
上述配置可以在Red Hat Enterprise Linux 5系统中使用图形用户界面进行方便地配置,主要步骤如下:
(1)进入IPSec VPN的主界面,具体路径为[系统]——〉[管理]——〉[网络]则弹出如图1所示的对话框;
图1 进入IPSec VPN配置主界面
(2)选择新建一个IPSec,并输入该隧道的描述名为securecomm,如图2所示;
图2 输入IPSec VPN描述名称
(3)选择IPSec VPN的连接类型,主机对主机加密或者是网络对网络的加密。后一种应用最为广泛,如图3所示,此处选择后一种方式;
图3 选择连接类型
(4)选择IPSec VPN的加密模式,即使用何种密钥,此处选择常用的IKA模式,如图4所示;
图4 选择采用IKA的自动加密模式
(5)设定IPSec VPN本地网络端的相关配置,如图5所示;
图5 设定本地网络配置
#p#
(6)设定IPSec VPN远程网络端的相关配置,如图6所示;
图6 设定远程网络配置
(7)设定IPSec共享key的名称,如图7所示;
图7 设定IPSec共享key的名称
(8)完成上述步骤后,IPSec VPN已经设置完成,如图8所示,将显示设置的具体信息,以供用户核对;
图8 设置完成,显示设置信息
(9)如图9所示,IPSec VPN成功设置完成。
图9 设置好的IPSec VPN
以下是网络A的 IPsec 连接的 ifcfg 文件。在这个例子中用来识别该连接的独特名称是 ipsec0,因此其结果文件被命名为 /etc/sysconfig/network-scripts/ifcfg-ipsec0。
TYPE=IPSEC
ONBOOT=false # 引导时不激活
IKE_METHOD=PSK # 使用预共享密钥
SRCGW=172.1610.1.10 # 源网关
DSTGW=172.1610.2.10 # 目标网关
SRCNET=172.1610.1.0/24 # 源网段
DSTNET=172.1610.2.0/24 # 目标网段
DST=192.1610.1.20 # 网络BVPN Server的外网IP
以下是预共享钥匙文件(叫做 /etc/sysconfig/network-scripts/keys-ipsecX,这里的 X 对网络A来说是0,对网络B来说是1),两个工作站都使用它来彼此验证。该文件的内容应该完全一致,并且只有root用户才应该有读写权。
IKE_PSK=yoyotown.com
改变 keys-ipsec0 文件的权限,只有root用户才有读写权。
#chmod 600 /etc/sysconfig/network-scripts/keys-ipsec0
要在任何时候改变验证钥匙,编辑两个 IPsec 路由器上的 keys-ipsecX 文件。这两个钥匙必须 完全一致才能保证正确的连接性。#p#
以下是 IPsec 连接的 /etc/racoon/racoon.conf 配置文件。
# Racoon IKE daemon configuration file.
# See ‘man racoon.conf’ for a description of the format and entries.
path include “/etc/racoon”;
path pre_shared_key “/etc/racoon/psk.txt”;
path certificate “/etc/racoon/certs”;
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include “/etc/racoon/X.X.X.X.conf” # IPSec被激活时自动生成,X.X.X.X为远程VPN Server的外网IP
以下是连接到远程网络时生成的配置文件。该文件的名称为 X.X.X.X.conf。注意,一旦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 连接前,内核中应该启用IP转发。在 shell 提示符下作为root用户来启用 IP 转发:
(1)编辑 /etc/sysctl.conf,把net.ipv4.ip_forward 设置为1。
(2)执行以下命令来启用改变:
#sysctl -p /etc/sysctl.conf
(3)以root用户身份启动 IPsec 连接:
#service network restart
这样,IPSec连接就被激活了,网络A和网络B能够安全地进行通信。