页面

2013年5月11日星期六

VPN实战2:构建IPSec VPNVPN实战2:构建IPSec VPN

【TechTarget中国原创】安装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所示;
  (3)选择IPSec VPN的连接类型,主机对主机加密或者是网络对网络的加密。后一种应用最为广泛,如图3所示,此处选择后一种方式;
  (4)选择IPSec VPN的加密模式,即使用何种密钥,此处选择常用的IKA模式,如图4所示;
  (5)设定IPSec VPN本地网络端的相关配置,如图5所示;
  (6)设定IPSec VPN远程网络端的相关配置,如图6所示;
  (7)设定IPSec共享key的名称,如图7所示;
  (8)完成上述步骤后,IPSec VPN已经设置完成,如图8所示,将显示设置的具体信息,以供用户核对;
  (9)如图9所示,IPSec VPN成功设置完成。
图2  输入IPSec VPN描述名称
图3  选择连接类型
 
图4 选择采用IKA的自动加密模式
图5 设定本地网络配置
 
图6  设定远程网络配置
图7  设定IPSec共享key的名称
 
图8 设置完成,显示设置信息
图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 文件。这两个钥匙必须 完全一致才能保证正确的连接性。
  以下是 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能够安全地进行通信。

没有评论:

发表评论