VPN實戰(zhàn)2:構建IPSec VPN
安裝Ipsec-tools
實現(xiàn)IPSec要求主機安裝上ipsec-tools RPM 軟件包,Red Hat Enterprise Linux 5一般默認安裝。執(zhí)行下述命令可以看到它的版本號為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。假設網(wǎng)絡A和網(wǎng)絡B想通過 IPsec 隧道來彼此連接。網(wǎng)絡A的網(wǎng)絡地址在172.1610.1.0/24 范圍內(nèi),網(wǎng)絡B使用 172.1610.2.0/24 范圍。網(wǎng)絡A的網(wǎng)關 IP 地址是 172.1610.1.1,網(wǎng)絡B的網(wǎng)關地址是172.1610.2.1。每個網(wǎng)絡間的 IPsec 連接使用一個值為sharekey的預共享鑰匙,網(wǎng)絡A和網(wǎng)絡B都同意讓 racoon 自動生成和共享每個 IPsec 路由器之間的驗證鑰匙。網(wǎng)絡A把 IPsec 連接命名為 ipsec0,而網(wǎng)絡B把 IPsec 連接命名為 ipsec1。
上述配置可以在Red Hat Enterprise Linux 5系統(tǒng)中使用圖形用戶界面進行方便地配置,主要步驟如下:
(1)進入IPSec VPN的主界面,具體路徑為[系統(tǒng)]——〉[管理]——〉[網(wǎng)絡]則彈出如圖1所示的對話框;
圖1 進入IPSec VPN配置主界面
(2)選擇新建一個IPSec,并輸入該隧道的描述名為securecomm,如圖2所示;
圖2 輸入IPSec VPN描述名稱
(3)選擇IPSec VPN的連接類型,主機對主機加密或者是網(wǎng)絡對網(wǎng)絡的加密。后一種應用最為廣泛,如圖3所示,此處選擇后一種方式;
圖3 選擇連接類型
(4)選擇IPSec VPN的加密模式,即使用何種密鑰,此處選擇常用的IKA模式,如圖4所示;
圖4 選擇采用IKA的自動加密模式
(5)設定IPSec VPN本地網(wǎng)絡端的相關配置,如圖5所示;
圖5 設定本地網(wǎng)絡配置
#p#
(6)設定IPSec VPN遠程網(wǎng)絡端的相關配置,如圖6所示;
圖6 設定遠程網(wǎng)絡配置
(7)設定IPSec共享key的名稱,如圖7所示;
圖7 設定IPSec共享key的名稱
(8)完成上述步驟后,IPSec VPN已經(jīng)設置完成,如圖8所示,將顯示設置的具體信息,以供用戶核對;
圖8 設置完成,顯示設置信息
(9)如圖9所示,IPSec VPN成功設置完成。
圖9 設置好的IPSec VPN
以下是網(wǎng)絡A的 IPsec 連接的 ifcfg 文件。在這個例子中用來識別該連接的獨特名稱是 ipsec0,因此其結果文件被命名為 /etc/sysconfig/network-scripts/ifcfg-ipsec0。
TYPE=IPSEC
ONBOOT=false # 引導時不激活
IKE_METHOD=PSK # 使用預共享密鑰
SRCGW=172.1610.1.10 # 源網(wǎng)關
DSTGW=172.1610.2.10 # 目標網(wǎng)關
SRCNET=172.1610.1.0/24 # 源網(wǎng)段
DSTNET=172.1610.2.0/24 # 目標網(wǎng)段
DST=192.1610.1.20 # 網(wǎng)絡BVPN Server的外網(wǎng)IP
以下是預共享鑰匙文件(叫做 /etc/sysconfig/network-scripts/keys-ipsecX,這里的 X 對網(wǎng)絡A來說是0,對網(wǎng)絡B來說是1),兩個工作站都使用它來彼此驗證。該文件的內(nèi)容應該完全一致,并且只有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的外網(wǎng)IP
以下是連接到遠程網(wǎng)絡時生成的配置文件。該文件的名稱為 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 連接前,內(nèi)核中應該啟用IP轉發(fā)。在 shell 提示符下作為root用戶來啟用 IP 轉發(fā):
(1)編輯 /etc/sysctl.conf,把net.ipv4.ip_forward 設置為1。
(2)執(zhí)行以下命令來啟用改變:
#sysctl -p /etc/sysctl.conf
(3)以root用戶身份啟動 IPsec 連接:
#service network restart
這樣,IPSec連接就被激活了,網(wǎng)絡A和網(wǎng)絡B能夠安全地進行通信。