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