6.11. IPsec 主機對主機的設定

可以使用一種主機對主機的連線來設定 IPsec 以連線一部桌上型系統或工作站到另一部。 這種類型的連線使用主機所連接的網路來建立彼此間的安全穿隧。 對每一部主機上的 IPsec 設定來說,主機對主機連線的設定需求是很小的,主機只需要一個連線到載波網路(如網際網路) 的既有連線,以及 Red Hat Enterprise Linux 以建立 IPsec 連線。

建立連線的第一步驟是從每一部工作站收集系統與網路資訊,對於主機與主機的連線,您需要下列的資訊:

舉例來說,假設工作站 A 與工作站 B 想要透過 IPsec 穿隧進行彼此連線,他們想要使用含有 foobarbaz 數值的預先共享金鑰來進行連線,而且使用者 同意讓 racoon 自動產生並且在每一部主機間分享一個認證金鑰。 兩邊 主機的使用者都決定命名他們的連線為 ipsec0

以下為工作站 A 用於主機對主機 IPsec 連線的 ifcfg 檔案,在這個 例子中用來辨識此連線的獨特名稱為 ipsec0,所以所產生的檔 案稱為 /etc/sysconfig/network-scripts/ifcfg-ipsec0

DST=X.X.X.X
TYPE=IPsec
ONBOOT=yes
IKE_METHOD=PSK

工作站 A 必須以工作站 B 的 IP 位址取代 X.X.X.X,而工作站 B 也以工作站 A 的 IP 位址取代 X.X.X.X。 而且這個連線也被 設定為開機時啟動(ONBOOT=yes),並且使用預先共享金鑰 的認證方法(IKE_METHOD=PSK)。

以下為兩部工作站使用來彼此認證的預先共享金鑰檔案(稱為 /etc/sysconfig/network-scripts/keys-ipsec0),在這兩部工作站的這個檔案內容必須是相同的, 而且只有 root 使用者才能讀取或寫入這個檔案。

IKE_PSK=foobarbaz

重要重要
 

如要變更 keys-ipsec0 檔案的權限設定使得只有 root 使用者才能讀取 與編輯這個檔案,請在建立好檔案後執行下列指令:

chmod 600 /etc/sysconfig/network-scripts/keys-ipsec0

如要在任何時候變更認證金鑰,請編輯位於兩部工作站上的 keys-ipsec0 檔案,兩個金鑰必須是相同的才能使連線順利。

除了 include "/etc/racoon/X.X.X.X.conf" 聲明外, /etc/racoon/racoon.conf 檔案必須是相同的。 這個聲明(以及它所 參考的檔案)是當 IPsec 穿隧啟動時所產生的。 在工作站 A 上,include 聲明的 X.X.X.X 必須是工作站 B,反之亦然。 下列顯示出當啟動 IPsec 連線時的一個典型的 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"

如要啟動這個連線,請以 root 身份在每一部主機上重新啟動工作站或執行下列指令:

/sbin/ifup ipsec0

如要測試 IPsec 連線,請執行 tcpdump 工具程式以檢視在主機(或網路) 間傳輸的網路封包,並且檢驗它們已經透過 IPsec 所加密了。 這些封包應該含有一個 AH 表頭, 並且應該顯示為 ESP 封包。(ESP 表示該封包已經經過加密。)例如:

17:13:20.617872 pinky.example.com > ijin.example.com: \
	    AH(spi=0x0aaa749f,seq=0x335): ESP(spi=0x0ec0441e,seq=0x335) (DF)