IPsec 代表 Internet Protocol Security。 它是在兩部系統間(主機對主機) 或兩個網路間(網路對網路)建立一個加密連線的一個虛擬私有網路的解決方案。
![]() | 建議 |
---|---|
請拜訪 http://www.ipsec-howto.org/ 以取得關於 IPsec 的更多資訊。 |
一個主機對主機的 IPsec 連線是在兩部執行含有相同認證金鑰之 IPsec 的系統間一個加密的 連線,只要 IPsec 連線是啟用的狀態,兩部主機間的任何網路流量都是加密的。
如要設定一個主機對主機的 IPsec 連線,請在每一部主機上使用下列的步驟:
啟動 網路管理工具。
在 『IPsec』 的標簽頁選取 新增。
點選 下一步 以開始設定一個主機對主機的 IPsec 連線。
請為這個連線提供例如 ipsec0 一個字的匿名,並且選擇是否要在 電腦啟動時自動啟用這個連線,再點選 下一步。
選取 『主機與主機間的加密』 當作連線類型,再點選 下一步。
請選擇要使用的加密類型: 手動或自動。
假如選擇了手動,在稍候的過程中必須提供一個加密的金鑰。 假如選擇了自動,將由 racoon 系統程式來管理加密金鑰。 假如需要使用 racoon, 您必須安裝 ipsec-tools 套件。
點選 下一步 繼續。
請指定其他主機的 IP 位址。
假如您不知道其他系統的 IP 位址,請在其他系統上執行 /sbin/ifconfig <裝置> 指令,這裡的 <裝置> 就是使用來連接到其他主機的乙太網路裝置。 假如系統上只有一個乙太網路卡,裝置名稱則為 eth0。 IP 位址就是在 inet addr: 標籤之後的號碼。
點選 下一步 繼續。
假如在 6 步驟選擇了手動的加密方式,請指定要 使用的加密金鑰,或者點選 產生 來建立一個。
請指定一個加密金鑰或點選 產生 來建立一個,它可以是任何數字與字母的組合。
點選 下一步 繼續。
請檢查 『IPsec — 摘要』 的頁面的資訊,再點選 套用。
請選取 檔案 => 儲存 來儲存設定。
從清單中選取 IPSec 連線,再點選 啟用 的按鈕。
請在其他主機上重複相同的步驟,請您特別注意必須要使用在 8 步驟所建立的同一金鑰在其他主機上,否則 IPsec 將無法使用。
在設定好 IPsec 連線後,它將會出現在如 圖形 19-22 所示的IPSec 清單中。
在 /etc/sysconfig/network-scripts/ 將會建立兩個檔案 — ifcfg-<nickname> 與 keys-<nickname>。 假如選擇了 自動加密方式,也將會建立 /etc/racoon/racoon.conf 檔案。
在介面啟用後,將會在 /etc/racoon/ 目錄中建立 <remote-ip>.conf 與 psk.txt 檔案,而 racoon.conf 檔案也會被修改以包含 <remote-ip>.conf 於其中。
請參考 第 19.14.3 節 以決定是否已經成功建立 IPsec 連線。
一個網路與網路間的 IPsec 連線使用兩部 IPsec 路由器(每一個網路使用一部),以透過它 來傳導私有子網路的網路流量。
舉例來說,如 圖形 19-23 所示,當 192.168.0/24 私有網路想要 傳送網路流量到 192.168.2.0/24 私有網路時,封包將會經過 gateway0 --> ipsec0 --> 網際網路 --> ipsec1 --> gateway1,然後到達 192.168.2.0/24 子網路。
IPsec 路由器必須擁有公眾可存取的 IP 位址,以及另一個連接到它私有網路的乙太網路裝置。 只當網路流量是專為另一部擁有加密連線的 IPsec 路由器所傳送時,才會經過它。
其他的網路設定選項包括介於每一部 IP 路由器與網際網路間的防火牆,以及介於每一部 IPsec 路由器與子網路閘道器間的一個公司網路防火牆。 子網路的 IPsec 路由器與閘道器可以是一部 含有兩個乙太網路裝置的系統,一個擁有公眾 IP 位址以當作 IPsec 路由器,而另一個擁有 私有 IP 位址以當作私有子網路的閘道器。 每一部 IPsec 路由器可以使用其私有網路的閘道器 或一部公眾的閘道器來傳送封包到其他的 IPsec 路由器。
如要設定一個網路與網路的 IPSec 連線,請執行下列步驟:
啟動 網路管理工具。
在 『IPsec』 的標簽頁選取 新增。
點選 下一步 來開始設定一個網路與網路間的 IPsec 連線。
請為這個連線提供例如 ipsec0 一個字的匿名,並且選擇是否要在 電腦啟動時自動啟用這個連線,再點選 下一步。
選取 『網路與網路間的加密』,再點選 下一步。
請選擇要使用的加密類型: 手動或自動。
假如選擇了手動,在稍候的過程中必須提供一個加密的金鑰。 假如選擇了自動,將由 racoon 系統程式來管理加密金鑰。 假如需要使用 racoon, 您必須安裝 ipsec-tools 套件。 點選 下一步 以繼續。
請在 『區域網路』 的頁面輸入下列資訊:
『區域網路位址』 — 連接到私有網路之 IPsec 路由器上裝置的 IP 位址。
『本地端子網路遮罩 — 區域網路 IP 位址的子網路遮罩。
『區域網路閘道器』 — 私有子網路的閘道器。
點選 下一步 繼續。
請在 『遠端網路』 的頁面輸入下列資訊:
『遠端的 IP 位址』 — 其他私有網路中 IPsec 路由器可被公眾存取的 IP 位址。 在我們的例子中,請為 ipsec0 輸入 ipsec1 可被公 眾存取的 IP 位址,反之亦然。
『遠端網路位址』 — 在其他 IPsec 路 由器之後的私有網路之網路位址,在我們的例子中,請為 ipsec1 輸入 192.168.1.0, 而為 ipsec0 輸入 192.168.2.0。
『遠端子網路遮罩』 — 遠端 IP 位址的子網路遮罩。
『遠端網路閘道器』 — 遠端網路位址之閘道器的 IP 位址。
假如在 6 步驟選擇了手動的加密方式,請指定 要使用的加密金鑰,或者點選 產生 來建立一個。
請指定一個加密金鑰或點選 產生 來建立一個,它可以是任何數字與字母的組合。
點選 下一步 繼續。
請檢查 『IPsec — 摘要』 的頁面的資訊,再點選 套用。
請選取 檔案 => 儲存 來儲存設定。
從清單中選取 IPSec 連線,再點選 啟用 的按鈕。
請以 root 身份在 shell 提示符號下啟用 IP forwarding:
請編輯 /etc/sysctl.conf 檔案,並且設定 net.ipv4.ip_forward 為 1。
執行下列指令來使變更生效:
sysctl -p /etc/sysctl.conf |
用來啟用 IPsec 連線的網路程式碼將會自動建立網路路由以在必要的情況下透過 IPsec 路由 器來傳送封包。
請參考 第 19.14.3 節 以決定是否已經成功建立 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) |
假如開機時沒有設定啟用 IPsec 連線,請以 root 身份在命令列啟動與停止它。
如要啟動連線,在主機對主機 IPsec 的每一部主機或網路與網路 IPsec 的每一部 IPsec 路由器 上以 root 身份執行下列指令(請以之前設定的一個字匿名取代 <ipsec-nick>,如 ipsec0):
/sbin/ifup <ipsec-nick> |
如要停止連線,在主機對主機 IPsec 的每一部主機或網路與網路 IPsec 的每一部 IPsec 路由器 上以 root 身份執行下列指令(請以之前設定的一個字匿名取代 <ipsec-nick>,如 ipsec0):
/sbin/ifdown <ipsec-nick> |