安裝完openswan之后,ipsec verify后有很多failed選項。
1.
checking for IPsec support in kernel [FAILED]
whack:Pluto is not running(no "/var/run/pluto/pluto.ctl") [FAILED]
如果出現的是這個問題,有三個可以嘗試的解決方案,因為出現這個問題的原因不是一個問題造成的。
1)修改/etc/ipsec.conf文件,加進去一句話,version 2.0。(說實話,這有可能,但是一般openswan2.6.X的版本創建ipsec.conf的時候都會自動有2.0的說明)
2)執行ipsec setup start。如果執行完之后你再去看ipsec verify的結果,FAILED選項消失了,恭喜你,你沒有遇到令人厭惡的第三種情況。
解釋一下出現第二種情況的原因:ipsec 如果沒有啟動,它是暫時不會知道自己將會使用哪種內核棧的,有三種KLIPS,netkey和no stack。選擇的依據是你的ipsec.conf文件里的protostack后邊的選項,如果是auto,那么首選netkey,然后是KLIPS。否則就是protostack的結果。
3)造成這種情況的因素很多,我這里也只是結合自己的情況總結了一下,如果大家還有新的情況,希望可以交流。這種情況是當你ipsec setup start完了之后,你會看到你的鍵盤的除了小鍵盤鎖的燈不亮,剩下兩個燈一直在閃,然后虛擬機就掛掉了。目前遇到這種情況首先是重啟虛擬機,就是那個reset按鈕。經過了一整天的尋找解決辦法,最后無意之間瞎貓撞上死耗子了。
先給大家說一下如果ipsec正常啟動都應該有哪些東西,這樣大家就可以比對着看看少了什么,然后分析問題的所在。
我覺得比較重要的幾個東西如下:
1)/var/run/pluto/pluto.ctl
這個文件是pluto程序起來之后生成的。
2)ipsec0
使用ifconfig命令查看網絡設備的時候可以看到一個ipsec0,這個接口不是平時就存在的,和eth那種不太一樣。
這個是很重要的。網上如是說ipsec0:因為pluto守護進程在內部接口上監聽,所以外部接口不能直接訪問守護進程,pluto守護進程必須通過ipsec0接口才能訪問。
我的解決方案:
修改了網卡的配置,就是修改/etc/sysconfig/network-scripts下的文件,需要注意的是可能會因為網卡有兩三個混亂了造成的,因為使用ipsec加密數據的時候我們需要設置網關IP的,所以這里很可能出現問題的。
2.
Pluto listening for IKE on udp 500 [FAILED]
Pluto listening for NAT-T on udp 4500 [FAILED]
Two or more interfaces found, checking IP forwarding [FAILED]
前兩個failed歸根結底是因為有一個pluto的守護進程沒有起來。大家可以通過ps aux下查看有沒有一個pluto的進程,你也許會看到./pluto_adns一個進程,如果沒有pluto的話,出問題是肯定的。當pluto運行起來的時候,會在/var/run/pluto/文件夾下建立幾個文件ipsec.info ipsec_setup.pid pluto.ctl pluto.pid這四個文件,其中如果沒有pluto.ctl文件,出問題也是必需的。(一開始我嘗試過手動建立這個文件,因為我看到錯誤信息上說是因為沒有這個文件造成的,但是程序很清楚的看穿了我的意圖,雖然不再提示沒有pluto.ctl文件,但是告訴我,這個文件似乎有點不對勁)。
我們可以通過ipsec whack --status命令查看一些相關的信息。