ubuntu 10.4 使用 openswan 搭建 ipsec 基於RSA認證方式的環境搭建 排錯記錄

NO IMAGE

附上 虛擬器 載入共享檔案 方式
sudo mount -t vboxsf down /mnt/share

其中 虛擬機器用的 oracle 的 virtualbox 所以檔案系統是  vboxsf  
前提 虛擬機器安裝增強功能
down 是 在虛擬機器中的裝置–》分配資料空間 查詢win上的某個目錄 資料空間命名為 down
/mnt/share  掛載在 /mnt/share 目錄上。

1.Checking that pluto is running  
Checking that pluto is running                                  [FAILED]
  whack: is Pluto running?  connect() for “/var/run/pluto/pluto.ctl” failed (111 Connection refused)
如果出現如上問題, 可以嘗試 sudo service ipsec restart  重啟服務 本人重啟後解決

2. NETKEY detected, testing for disabled ICMP send_redirects           [FAILED]
   NETKEY detected, testing for disabled ICMP accept_redirects          [FAILED]
   
   可以建立檔案 dis.sh 放在 /home/xjp 目錄下 然後在 rc.local 中新增  /home/xjp/dis.sh  系統在每次開機時
   執行  dis.sh  中內容,dis.sh 中內容如下:
   #!/bin/bash
    # Disable send redirects
    echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
    echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
    echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
    echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
    echo 0 > /proc/sys/net/ipv4/conf/lo/send_redirects
    # Disable accept redirects
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/eth0/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/eth1/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/lo/accept_redirects

3.修改核心引數,防火牆
vi /etc/sysctl.conf   將下面兩項:  
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1   
改為:  
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0   
執行以下命令使設定生效:
sysctl -p   
4.可以將nat設定新增到/etc/rc.local裡面,讓開機時自動執行
在LServer上執行以下命令設定NAT:
iptables -t nat -A POSTROUTING -o eth0 -s 10.10.10.0/24 -d 10.10.20.0/24 -j MASQUERADE

在RServer上執行以下命令設定NAT:
iptables -t nat -A POSTROUTING -o eth0 -s 10.10.20.0/24 -d 10.10.10.0/24 -j MASQUERADE

   
   
 其他操作 可上google 搜尋

另附上 網上找的 問題排查手冊

 

3.1 IPsec VPN故障排除基本思路

       當IPsec VPN出現問題時,最直接的表現就是無法通過IPsec VPN訪問遠端內部網路。按照具體的情況又分為:IPsec隧道無法建立、IPsec隧道建立但無法訪問遠端內部網路和IPsec隧道時斷時連。通過IPsec的debug資訊檢測問題是比較快的,但需要使用者對debug資訊比較熟悉。所以這裡介紹針對上面三種情況的一般檢測方法。

1.  IPsec VPN隧道無法建立

檢測方法:使用show cry ike proposal <string>和sh cry ipsec proposal <string>命令檢視ike和ipsec的策略兩端是否相同。使用sh cry policy <string>檢視兩端資料流是否匹配。

2.  IPsec隧道建立但無法訪問遠端內部網路

檢測方法:sh ip esp檢視是否有in和out的資料;檢視訪問列表是否deny了受保護的資料流。

3.  IPsec隧道時斷時連

檢測方法:檢視物理線路是否時通時斷;檢視是否有網點衝突。

 

3.2 IPsec VPN常見故障處理

故障一:IPsec VPN隧道無法建立

可能的原因

判斷方法和解決方案

1.兩端VPN裝置無法互通

1. 從一端VPN裝置ping另外一端,看是否能否ping通。如果不通,首先檢查網路連線情況。

2.兩端VPN可以ping通,但是相互收不到IKE協商報文

1. 檢查VPN是否配置ACL或者前端是否有防火牆,禁止了IKE協商報文,需要在ACL或者防火牆上開放UDP500/4500埠;

2. 檢查發起方VPN的內網口是否UP,特別是3005C-104以SW介面作為內網口,LAN口上沒有接PC,SW口無法UP,將導致擴充套件ping不通對端。

3.兩端VPN採用證書認證方式,但是沒有證書或者證書無效;採用預共享金鑰方式認證沒有配置密碼

1.  通過show cry ike sa檢視IKE隧道狀態沒有任何資訊;

2.  開啟debug cry ike normal,提示%IKE-ERR: can’t initiate, no available authentication material (cert/psk) ;

3.  sh crypto ca certificates,檢視證書是否有效。

4.兩端IKE和IPsec策略不一致

1.         如果採用主模式,檢視IKE狀態停止在STATE_MAIN_I1,採用積極模式,IKE狀態停止在STATE_AGGR_I1,說明可能是兩端策略不一致,通過show cry ike proposal和show cry ipsec proposal檢視兩端策略是否相同;

2.         開啟debug cry ike normal,提示ignoring notification payload, type NO_PROPOSAL_CHOSEN 。

5.兩端VPN裝置配置了ID不是IP地址作為身份標識,而是域名或者其他,但是採用IKE協商採用主模式

1.  檢視IKE KEY配置了identity,但是tunnel配置中配置了set mode main;

2.  檢視IKE狀態停止在STATE_MAIN_I1狀態。

6.對端VPN裝置配置錯誤ID或者沒有配置ID

1.  檢視IKE KEY配置了identity,但是tunnel配置中沒有配置ID;

2.  檢視IKE狀態停止在STATE_AGGR_I1狀態;

3.  有%IKE-ERR: Aggressive Mode packet from 20.0.0.2:500 has invalid ID報錯。

7.兩端VPN裝置不支援NAT穿越

1.  如果採用主模式,檢視IKE狀態停止在STATE_MAIN_I2狀態,說明有可能VPN不支援NAT穿越,我們VPN預設支援,一般可能其他廠家VPN不支援。

8.兩端VPN裝置預共享金鑰不一致

1.   如果採用主模式,檢視IKE狀態停止在STATE_MAIN_I3狀態,說明有可能兩端VPN預共享金鑰配置不一致;

2.   通過show run cry key檢視兩端的KEY是否相同。

9.兩端保護資料流不匹配

1.   檢視IKE狀態停止在STATE_QUICK_I1狀態,說明有可能兩端VPN預共享金鑰配置不一致;

2.   通過show cry ipsec sa檢視沒有ipsec隧道;

3.   日誌中有報錯:%IKE-ERR: cannot respond to IPsec SA request for instance-65666: 30.0.0.0/8:0/0 === 20.0.0.2 (20.0.0.2)… 20.0.0.1 (20.0.0.1)=== 192.168.0.0/16:0/0

& 注:

IKE第一階段採用積極模式,因為積極模式進行IKE協商同時傳送與SA、金鑰交換和認證相關的載荷,所以一般IKE的錯誤都將導致IKE SA的狀態為STATE_AGGR_I1。因此上述對IKE第一階段問題判斷基本都是基於主模式。

 

   故障二:VPN隧道通,無法辦理業務

可能的原因

判斷方法和解決方案

1.業務資料走NAT,沒有走VPN隧道

1.         裝置配置了NAT轉換,訪問列表沒有將VPN的業務資料deny,可以檢視訪問列表來判斷;

2.         可以通過show cry ipsec sa或者show ip esp檢視output的資料一直沒有增加;

3.         修改訪問列表,拒絕VPN資料走NAT轉換。

2.要訪問伺服器沒有路由指向對端VPN閘道器或者閘道器設定不對

1.   在中心端VPN裝置上ping伺服器看能否ping通;

2.   第一步可以ping通,則可以在客戶端VPN裝置上通過show cry ipsec sa或者show ip esp檢視output的資料有增加,但是input的資料一直沒有增加,在中心端VPN裝置相反,有input的資料,但是沒有output;

3.   設定伺服器對應的下端網段路由應該指向中心IPsec VPN裝置的內網口。

3.線路PMTU導致大資料包丟棄

1.         某些業務軟體(例如一些財務軟體或者登陸需要下載大量資料的應用程式)可以出現登陸介面,但是輸入使用者名稱密碼後一直沒有反應;

2.         客戶端採用預設ping包可以ping通伺服器,ping大包不通;

3.         可以修改伺服器網絡卡的MTU=線路PMTU。

 

故障三:VPN時通時斷

可能的原因

判斷方法和解決方案

1.公網連線不穩定

1.         通過ping測試檢測物理線路問題;

2.         直接用PC接在公網線路測試看看是否會斷;

3.         如果是動態撥號,可以更改idle-timeout為0。

2.某次線路故障造成兩端的IPsec SA不能夠同步

1.   檢視兩端VPN裝置是否關閉了DPD;

2.   通過show cry ipsec sa檢視兩端SPI是否不相同;

3.   在兩端手工清除隧道重新建立或者設定DPD解決不同步問題。

3.分支機構VPN配置重複

1.         隧道時斷時連表現為當只有一個下端的時候一切正常,但當第二個或某個特定下端連線上來的時候,出現只有一個能正確建立IPsec隧道或時斷時連;

2.         在中心VPN裝置檢查某個分支機構不能建立VPN隧道時卻有相關的IPsec資料流;

3.         可以在分支機構VPN上更換網段測試或者配置使用積極模式,配置不通的標識ID。

以上資訊僅供參考