ubuntu 10.4 使用 openswan 搭建 ipsec 基于RSA认证方式的环境搭建 排错记录

来源:互联网 发布:学java软件编程 编辑:程序博客网 时间:2024/05/16 06:15

附上 虚拟器 加载共享文件 方式
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。


以上信息仅供参考