溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下怎么安裝OpenSWan

發(fā)布時(shí)間:2022-02-16 10:15:17 來(lái)源:億速云 閱讀:177 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“Linux下怎么安裝OpenSWan”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Linux下怎么安裝OpenSWan”文章吧。

OpenSWan是linux選Ipsec及I2tp協(xié)議的一個(gè)不錯(cuò)的實(shí)現(xiàn)方案。他支持和ipsec相關(guān)的大多數(shù)的擴(kuò)展(RFC+IETF drafts)。Openswan項(xiàng)目起源于FreeS/WAN 2.04項(xiàng)目,該項(xiàng)目的功能很強(qiáng)大,可以很大程度上保證數(shù)據(jù)在跨網(wǎng)傳輸中的安全性、完整性,特別是通過(guò)它,餓哦沒(méi)可以很好地實(shí)現(xiàn)跨機(jī)房或異地辦公場(chǎng)所實(shí)現(xiàn)局域網(wǎng)互聯(lián)解決方案,如果和openvpn工具配合,可以實(shí)現(xiàn)將注入門戶網(wǎng)站的多機(jī)房互訪及vpn的各種強(qiáng)大解決方案。

Linux下怎么安裝OpenSWan

系統(tǒng)環(huán)境

本文使用VMWare建立五臺(tái)虛擬Linux主機(jī)來(lái)進(jìn)行試驗(yàn)。操作系統(tǒng): CentOS 4.4內(nèi)核版本:2.6.9-42主機(jī)網(wǎng)絡(luò)參數(shù)設(shè)置: 如無(wú)特殊說(shuō)明,子網(wǎng)掩碼均為255.255.255.0

主機(jī)名網(wǎng)卡eth0網(wǎng)卡eth2默認(rèn)網(wǎng)關(guān)用途
LServer192.168.1.103192.168.2.1192.168.1.1Left網(wǎng)關(guān)
RServer192.168.1.104192.168.3.1192.168.1.1Right網(wǎng)關(guān)
LClient192.168.1.113192.168.2.2192.168.2.1Left客戶機(jī)
RClient192.168.1.114192.168.3.2192.168.3.1Right客戶機(jī)
Laptop192.168.1.105
192.168.1.1Laptop客戶機(jī)

安裝設(shè)置操作系統(tǒng)

推薦使用CentOS 4.4,基于RedHat Enterprise AS 4.4安全加強(qiáng)的免費(fèi)可升級(jí)獨(dú)立分發(fā)版本Linux操作系統(tǒng),安裝過(guò)程不再詳述。需要注意的是,安裝時(shí)請(qǐng)確保選中開(kāi)發(fā)軟件包,以及l(fā)ibgmp軟件包 (gmp、gmp-devel)、gawk、flex、bison。以下步驟只需在LServer、RServer及Laptop上執(zhí)行。系統(tǒng)按前述參數(shù)安裝完畢后在LServer、RServer執(zhí)行以下命令:

sysctl -a | egrep “ipv4.*(accept|send)_redirects” | awk -F “=” ‘{print $1″= 0″}’ >> /etc/sysctl.conf

編輯/etc/sysctl.conf

vi /etc/sysctl.conf

將下面兩項(xiàng):

net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1

改為:

net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0

執(zhí)行以下命令使設(shè)置生效:

sysctl -p

在LServer上執(zhí)行以下命令設(shè)置NAT:

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d ! 192.168.3.0/24 -j MASQUERADE

在RServer上執(zhí)行以下命令設(shè)置NAT:

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.3.0/24 -d ! 192.168.2.0/24 -j MASQUERADE

四、安裝OpenSWan\1. 下載源碼包

cd ~ wget  http://www.openswan.org/download/openswan-2.4.7.tar.gz

\2. 解壓源碼包

tar zxvf openswan-2.4.7.tar.gz

\3. 安裝UserLand

cd openswan-2.4.7 make programs make install

\4. 安裝KLIPS IPstack (可選,如果用26sec則不需安裝)1)安裝NAT-Traversal內(nèi)核補(bǔ)丁export KERNELSRC=/usr/src/kernels/2.6.9-42.EL-i686make nattpatch > /usr/src/openswan-ipsec-natt.patchcd $KERNELSRCcat /usr/src/openswan-ipsec-natt.patch | patch -p1 -smake cleanmake oldconfig當(dāng)執(zhí)行make oldconfig命令時(shí),由于添加了Nat-t補(bǔ)丁,會(huì)出現(xiàn)以下提示:IPSEC NAT-Traversal (KLIPS compatible) (IPSEC_NAT_TRAVERSAL) [N/y/?] (NEW)按y鍵確認(rèn)后繼續(xù)完成make oldconfig命令繼續(xù)執(zhí)行以下命令重新編譯安裝內(nèi)核makemake modules_installmake install編譯安裝完成新內(nèi)核后請(qǐng)重啟系統(tǒng),以啟用新內(nèi)核 2)安裝KLIPS

cd ~/openswan-2.4.7 make KERNELSRC=/lib/modules/uname -r/build module minstall depmod -a

加載KLIPS模塊前必須先卸載NETKEY模塊

rmmod xfrmuser af_key esp4 ah5 ipcomp xfrm4_tunnel

執(zhí)行以下命令加載KLIPS

modprobe ipsec

\5. 驗(yàn)證安裝執(zhí)行下面的命令驗(yàn)證OpenSWan是否正確安裝

ipsec –version

如果程序正確安裝,此命令將顯示以下三種可能結(jié)果:如果已加載的IPsec stack是NETKEY,顯示如下

Linux Openswan U2.4.7/K2.6.9-42.EL (netkey) See `ipsec –copyright’ for copyright information.

如果已加載的IPsec stack是KLIPS,顯示如下

Linux Openswan 2.4.7 (klips) See `ipsec –copyright’ for copyright information.

如果沒(méi)有加載任何IPsec stack,顯示如下

Linux Openswan U2.4.7/K(no kernel code presently loaded) See `ipsec –copyright’ for copyright information.

\6. 特別說(shuō)明如果系統(tǒng)中NETKEY、KLIPS模塊同時(shí)存在,OpenSWan按以下規(guī)則加載其一:通常情況下,OpenSWan啟動(dòng)時(shí)使用已經(jīng)加載的模塊;如果NETKEY與KLIPS兩者都已經(jīng)加載,OpenSWan不能啟動(dòng);如果未加載任何模塊,OpenSWan首選加載NETKEY;如果NETKEY加載失敗,OpenSWan加載KLIPS;如果兩者都不能正常加載,OpenSWan啟動(dòng)失敗。

五、配置OpenSWan\1. OpenSWan主要配置文件

/etc/ipsec.secrets 用來(lái)保存private RSA keys 和 preshared secrets (PSKs) /etc/ipsec.conf 配置文件(settings, options, defaults, connections)

\2. OpenSWan主要配置目錄

/etc/ipsec.d/cacerts 存放X.509認(rèn)證證書(根證書-”root certificates”) /etc/ipsec.d/certs 存放X.509客戶端證書(X.509 client Certificates) /etc/ipsec.d/private 存放X.509認(rèn)證私鑰(X.509 Certificate private keys) /etc/ipsec.d/crls 存放X.509證書撤消列表(X.509 Certificate Revocation Lists) /etc/ipsec.d/ocspcerts 存放X.500 OCSP證書(Online Certificate Status Protocol certificates) /etc/ipsec.d/passwd XAUTH密碼文件(XAUTH password file) /etc/ipsec.d/policies 存放Opportunistic Encryption策略組(The Opportunistic Encryption policy groups)

\3. OpenSWan連接方式OpenSWan有兩種連接方式:\1) Network-To-Network方式顧名思義,Network-To-Network方式是把兩個(gè)網(wǎng)絡(luò)連接成一個(gè)虛擬專用網(wǎng)絡(luò)。當(dāng)連接建立后,每個(gè)子網(wǎng)的主機(jī)都可透明地訪問(wèn)遠(yuǎn)程子網(wǎng)的主機(jī)。要實(shí)現(xiàn)此種連接方式,要滿足以下兩個(gè)條件:I. 每個(gè)子網(wǎng)各自擁有一臺(tái)安裝有OpenSWan的主機(jī)作為其子網(wǎng)的出口網(wǎng)關(guān);II.每個(gè)子網(wǎng)的IP段不能有疊加\2) Road Warrior方式當(dāng)使用Network-To-Network方式時(shí),作為每個(gè)子網(wǎng)網(wǎng)關(guān)的主機(jī)不能像子網(wǎng)內(nèi)部主機(jī)那樣透明訪問(wèn)遠(yuǎn)程子網(wǎng)的主機(jī),也就是說(shuō):如果你是一個(gè)使用Laptop的移動(dòng)用戶,經(jīng)常出差或是在不同的地點(diǎn)辦公,你的Laptop將不能用Network-To-Network方式與公司網(wǎng)絡(luò)進(jìn)行連接。Road Warrior方式正是為這種情況而設(shè)計(jì)的,連接建立后,你的Laptop就可以連接到遠(yuǎn)程的網(wǎng)絡(luò)了。\4. OpenSWan的認(rèn)證方式Openswan支持許多不同的認(rèn)證方式,包括RSA keys、pre-shared keys、XAUTH、x.509證書方式\5. 使用RSA數(shù)字簽名(RSASIG)認(rèn)證方式配制OpenSWan\1) 在LServer、RServer及Laptop上生成新的hostkey

ipsec newhostkey –output /etc/ipsec.secrets

繼續(xù)以下2-4步驟配置LServer-RServer之間的Network-To-Network方式鏈接:\2) 在LServer上執(zhí)行下面的命令獲得leftrsasigkey(即LServer的公鑰Pulic Key)

ipsec showhostkey –left

此命令的輸出格式如下所示:

# RSA 2192 bits LServer.FoxBB.Com Sat Mar 3 15:45:00 2007 leftrsasigkey=0sAQOBIJFmj……

\3) 在RServer上執(zhí)行下面的命令獲得rightrsasigkey(即RServer的公鑰 Pulic Key)

ipsec showhostkey –right

此命令的輸出格式如下所示:

# RSA 2192 bits RServer.FoxBB.Com Sat Mar 3 15:51:56 2007 rightrsasigkey=0sAQNZZZjj……

\4) 在LServer及RServer上編輯/etc/ipsec.conf

vi /etc/ipsec.conf

在最后添加如下內(nèi)容(leftrsasigkey及rightrsasigkey行換成前面2,3步所取得的值)

conn net-to-net left=192.168.1.103 # LServer外網(wǎng)IP地址 leftsubnet=192.168.2.0/24 # LServer內(nèi)網(wǎng)IP段  leftid=@LServer.FoxBB.Com # LServer的標(biāo)識(shí) leftrsasigkey=0sAQOBIJFmj… # LServer的公鑰 leftnexthop=%defaultroute # LServer的下一跳指定為默認(rèn)路由地址 right=192.168.1.104 # RServer外網(wǎng)IP地址 rightsubnet=192.168.3.0/24 # RServer內(nèi)網(wǎng)IP段  rightid=@RServer.FoxBB.Com # RServer的標(biāo)識(shí) rightrsasigkey=0sAQNZZZjj… # Rserver的公鑰 rightnexthop=%defaultroute # RServer的下一跳指定為默認(rèn)路由地址 auto=add # 添加這個(gè)鏈接,但是在OpenSWan啟動(dòng)時(shí)不自動(dòng)連接

顯示詳細(xì)信息

繼續(xù)以下5-10步驟配置LServer-Laptop之間的Road Warrior方式:\5) 在LapTop上執(zhí)行下面的命令獲得leftrsasigkey(即Laptop的公鑰Pulic Key)

ipsec showhostkey –left

此命令的輸出格式如下所示:

# RSA 2192 bits Laptop.FoxBB.Com Sun Mar 11 09:14:25 2007 leftrsasigkey=0sAQOa8tu4E……

\6) 在LServer上執(zhí)行下面的命令獲得rightrsasigkey(即LServer的公鑰 Pulic Key)

ipsec showhostkey –right

此命令的輸出格式如下所示:

# RSA 2192 bits LServer.FoxBB.Com Sat Mar 3 15:45:00 2007 rightrsasigkey=0sAQOBIJFmj……

\7) 在Laptop上編輯/etc/ipsec.conf

vi /etc/ipsec.conf

在最后添加如下內(nèi)容(leftrsasigkey及rightrsasigkey行換成前面5,6步所取得的值)

conn road left=%defaultroute # 通過(guò)默認(rèn)路由獲取Laptop的IP  leftid=@Laptop.FoxBB.Com # Laptop的標(biāo)識(shí) leftrsasigkey=0sAQOa8tu4E… # Laptop的公鑰 right=192.168.1.103 # LServer外網(wǎng)IP rightsubnet=192.168.2.0/24 # LServer內(nèi)網(wǎng)IP段  rightid=@LServer.FoxBB.Com # LServer的標(biāo)識(shí) rightrsasigkey=0sAQOBIJFmj… # LServer的公鑰 auto=add # 添加這個(gè)鏈接,但是在OpenSWan啟動(dòng)時(shí)不自動(dòng)連接

\8) 在LServer上執(zhí)行下面的命令獲得leftrsasigkey(即LServer的公鑰Pulic Key)

ipsec showhostkey –left

此命令的輸出格式如下所示:

# RSA 2192 bits LServer.FoxBB.Com Sat Mar 3 15:45:00 2007 leftrsasigkey=0sAQOBIJFmj……

\9) 在Laptop上執(zhí)行下面的命令獲得rightrsasigkey(即Laptop的公鑰 Pulic Key)

ipsec showhostkey –right

此命令的輸出格式如下所示:

# RSA 2192 bits Laptop.FoxBB.Com Sun Mar 11 09:14:25 2007 rightrsasigkey=0sAQOa8tu4E……

10)在LServer上編輯/etc/ipsec.conf

vi /etc/ipsec.conf

在最后添加如下內(nèi)容(leftrsasigkey及rightrsasigkey行換成前面8,9步所取得的值)

conn road left=192.168.1.103 # LServer外網(wǎng)IP  leftid=@LServer.FoxBB.Com # LServer的標(biāo)識(shí) leftsubnet=192.168.2.0/24 # LServer內(nèi)網(wǎng)IP段 leftrsasigkey=0sAQOBIJFmj… # LServer的公鑰 rightnexthop=%defaultroute # correct in many situations right=%any # Laptop的外網(wǎng)IP,可能使用動(dòng)態(tài)IP,所以用%any代替任意IP  rightid=@Laptop.FoxBB.Com # Laptop的標(biāo)識(shí) rightrsasigkey=0sAQOa8tu4E… # Laptop的公鑰 auto=add # 添加這個(gè)鏈接,但是在OpenSWan啟動(dòng)時(shí)不自動(dòng)連接

注意:在Network-To-Network方式下,兩邊網(wǎng)關(guān)/etc/ipsec.conf中的鏈接配置是一樣的,即left和right是相同的, 而在Road Warrior方式Laptop和網(wǎng)關(guān)上的鏈接配置是不同的,即left指正在配置的本地主機(jī),right指與本地主機(jī)對(duì)應(yīng)的遠(yuǎn)程主機(jī)。

11)在LServer、RServer及Laptop上執(zhí)行下面的命令啟動(dòng)OpenSWan

service ipsec start

12)在LServer及RServer上執(zhí)行下面的命令驗(yàn)證OpenSWan是否正常運(yùn)行

ipsec verify

如果OpenSWan正常運(yùn)行,將會(huì)得到類似下面的輸出

Checking your system to see if IPsec got installed and started correctly: Version check and ipsec on-path [OK] Linux Openswan U2.4.7/K2.6.9-42.EL (netkey) Checking for IPsec support in kernel [OK] NETKEY detected, testing for disabled ICMP send_redirects [OK] NETKEY detected, testing for disabled ICMP accept_redirects [OK] Checking for RSA private key (/etc/ipsec.secrets) [OK] Checking that pluto is running [OK] Two or more interfaces found, checking IP forwarding [OK] Checking NAT and MASQUERADEing Checking for ‘ip’ command [OK] Checking for ‘iptables’ command [OK] Opportunistic Encryption Support [DISABLED]

顯示詳細(xì)信息

13)在LServer或RServer上執(zhí)行下面的命令進(jìn)行LServer-RServer之間的Network-To-Network連接

ipsec auto –up net-to-net

將會(huì)得到類似下面的輸出(如果最后的輸出行中出現(xiàn)IPsec SA established,說(shuō)明連接成功 )

104 “net-to-net” #1: STATE_MAIN_I1: initiate 003 “net-to-net” #1: received Vendor ID payload [Openswan (this version) 2.4.7 PLUTO_SENDS_VENDORID PLUTO_USES_KEYRR] 003 “net-to-net” #1: received Vendor ID payload [Dead Peer Detection] 003 “net-to-net” #1: received Vendor ID payload [RFC 3947] method set to=110 106 “net-to-net” #1: STATE_MAIN_I2: sent MI2, expecting MR2 003 “net-to-net” #1: NAT-Traversal: Result using RFC 3947 (NAT-Traversal): no NAT detected 108 “net-to-net” #1: STATE_MAIN_I3: sent MI3, expecting MR3 004 “net-to-net” #1: STATE_MAIN_I4: ISAKMP SA established {auth=OAKLEY_RSA_SIG cipher=oakley_3des_cbc_192 prf=oakley_md5 group=modp1536} 117 “net-to-net” #2: STATE_QUICK_I1: initiate 004 “net-to-net” #2: STATE_QUICK_I2: sent QI2, IPsec SA established {ESP=>0xa329d030

顯示詳細(xì)信息

14)在Laptop上執(zhí)行下面的命令進(jìn)行Laptop-LServer之間的Road Warrior連接

ipsec auto –up road

將會(huì)得到類似下面的輸出(如果最后的輸出行中出現(xiàn)IPsec SA established,說(shuō)明連接成功)

104 “road” #1: STATE_MAIN_I1: initiate 003 “road” #1: received Vendor ID payload [Openswan (this version) 2.4.7 PLUTO_SENDS_VENDORID PLUTO_USES_KEYRR] 003 “road” #1: received Vendor ID payload [Dead Peer Detection] 003 “road” #1: received Vendor ID payload [RFC 3947] method set to=110 106 “road” #1: STATE_MAIN_I2: sent MI2, expecting MR2 003 “road” #1: NAT-Traversal: Result using RFC 3947 (NAT-Traversal): no NAT detected 108 “road” #1: STATE_MAIN_I3: sent MI3, expecting MR3 004 “road” #1: STATE_MAIN_I4: ISAKMP SA established {auth=OAKLEY_RSA_SIG cipher=oakley_3des_cbc_192 prf=oakley_md5 group=modp1536} 117 “road” #2: STATE_QUICK_I1: initiate 004 “road” #2: STATE_QUICK_I2: sent QI2, IPsec SA established {ESP=>0x070f9aae

顯示詳細(xì)信息

15)測(cè)試IPSEC鏈接在LClient上執(zhí)行

ping 192.168.3.2

或在RClient上執(zhí)行

ping 192.168.2.2

在ping命令執(zhí)行期間,在LServer或RServer上執(zhí)行

tcpdump -i eth0

如果LClient和RClient可以互相ping通,tcpdump有類似下面的輸出,說(shuō)明Network-To-Network方式IPSEC已經(jīng)成功連接

13:28:09.931263 IP 192.168.1.104 > 192.168.1.103: ESP(spi=0xa329d030,seq=0x126) 13:28:09.935244 IP 192.168.1.103 > 192.168.1.104: ESP(spi=0xae29b36c,seq=0x126) 13:28:10.818461 IP 192.168.1.104 > 192.168.1.103: ESP(spi=0xa329d030,seq=0x127) 13:28:10.823472 IP 192.168.1.103 > 192.168.1.104: ESP(spi=0xae29b36c,seq=0x127)

16)設(shè)置自動(dòng)連接測(cè)試通過(guò)后,可以把連接配置中

auto=add

更改為:

auto=start

這樣當(dāng)OpenSWan啟動(dòng)時(shí)就可自動(dòng)進(jìn)行連接

以上就是關(guān)于“Linux下怎么安裝OpenSWan”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI