• 沒有找到結果。

FreeSWAN’s IPSec Project

IPSec 的方法來做 Tunnel 的話,它會把所傳送的資料封包經過一 種演算法運算過後,在將其封裝透過 Internet 送至對方,在用共同的 key 解碼,變為可讀的明文,由於資料量有可能非常的大,會造成 CPU 相當大的負擔,所以 IPSec 通常都是由硬體來完成。而 FreeSWAN project 正是以軟體的方式做到 IPSec。

系統需求

Linux 較新版本(Redhat or slackware 等 )、Linux kernel 2.2 以上、

Freeswan1.5 Installation:

首先到http://www.freeswan.org 下載 freeswan 1.5 版本的 kernel patch,再去 http://www.kernel.org 下載 Linux Kernel 2.2.18。

把下載回來的 Linux kernel 解壓縮至/usr/src/

cp linux-2.2.18.tar.gz /usr/src cd /usr/src

tar zxvf linux-2.2.18.tar.gz

把 freeswan kernel patch 解壓縮,進入它的目錄之下,並執行 make menugo

把 IPSec 的選項(再 Network Option)中通通選了編到核心中,

而其他的選項依照需要斟酌選取但是基本的東西(例如:CPU、

IDE 硬碟機、Chip set 等)都要有選取。接下來選擇 exit,其他的 Freeswan 會幫你完成。完成之後進入/usr/src/linux 中,執行:

make modules

make modules_install

進入/usr/src/linux/arch/i386/boot 中,把 bzImage 複製到/boot 中,進入/etc 編輯 lilo.conf 使 lilo 知道要用哪個 kernel 開機,執 行 lilo 後重開機變大公告成啦。

編輯/etc 裡的 ipsec.conf,範例如下:

# /etc/ipsec.conf - FreeS/WAN IPSEC configuration file config setup

interfaces=%defaultroute klipsdebug=none

plutodebug=none plutoload=%search plutostart=%search conn %default keyingtries=0

# sample connection conn sample

# Left security gateway, subnet behind it, next hop toward right.

type=tunnel left=172.16.17.18

leftsubnet=192.168.0.0/24 leftnexthop=172.16.17.1

# Right security gateway, subnet behind it, next hop toward left.

right=172.20.21.22

rightsubnet=192.168.3.0/24 rightnexthop=172.20.21.1

# Authorize this connection, but don't actually start it, at startup.

auto=add

#authby=rsasig

IPSec 網 路 架 構 :

left 的 IPSec gateway 有一組 public IP 172.16.17.18 並連 接到 router 172.16.17.1,right 的 IPSec gateway 有一組 public IP 連接到 router 172.20.21.1。假設兩個 router 能透過 Internet 互連。

ipsec.conf 解 析 :

config setup 區塊是定義整個 IPSec 服務所要使用的介 面、Debug 的 Log 檔,以及 Auto key generater 所要啟動的項 目。

interface = %defaultroute

指定 IPSec 的裝置要使用到哪個 interface 上,關鍵 Left subnet 192.168.0.0

Right subnet 192.168.3.0

Fig7.3 IPSec 網路架構

klipsdebug = none

conn %default 式設定以下的 conn 連線定義區塊的預設設 定,也就是說,她再執行時會在每個 conn 連線定義區塊 中照抄一次。

keyingtries=0

每個連線判斷和認證 key 的次數。0 為永遠不放棄。

spi=0x200

spi(Security Parameters Index),它是一個數值,用來建立 或刪除 Security Associations(SA),範圍通常在

0x100~0xffffffff 之間 esp=3des-md5-96

用來定義資料加密和認證時所用的演算法,預設為空白,

目前設定為用 3DES 加密資料,96bits MD5 認證。

espenckey=0x01234567_89abcdef_02468…

代表用來加密資料的 key,使用固定式鑰匙的話,要注意 不要讓它給別人知道喔。

espauthkey=0x12345678_9abcdef0_246…

這是用來設定要求連線時的認證 key,使用固定式鑰匙的 話,一樣不要給別人知道了喔。

細節

type=tunnel

定義連線的型態為 IP-in-IP tunnel left 和 right

說明 IPSec gateway 連接到 Internet 的 IP 位址。

leftsubnet 和 rightsubnet

用來敘述 IPSec 兩邊網路的網路號碼 leftnexthop 和 rightnexthop

敘述 IPSec gateway 所連接到 router 的 IP 位址

left 和 right 的定義其實是抽象的,可以把自己當作 left 也 可以把自己當作 right,只要兩邊的位址設對了,都是行 的通的。

auto=add

預設連線在載入時是否要啟動 add:手動啟動。

start:在設定 IPSec 裝置時,IPSec Tunnel 一並動作。

啟 動 :

當所有的設定檔都設定完成了,執行:

/etc/init.d/ipsec start

/usr/local/sbin/ipsec –up auto YourConnectName 即可啟動 IPSec 服務。

*如 果 在 ”add=”項 設 定 為 start 則 可 省 略 此 步 。

相關文件