ubuntu10.4使用openswan搭建ipsec基于RSA认证方式的环境搭建排错记录
来源:岁月联盟
时间:2012-04-05
附上 虚拟器 加载共享文件 方式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 www.2cto.com 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: www.2cto.com 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协商报文 www.2cto.com 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状态; www.2cto.com 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第一阶段问题判断基本都是基于主模式。 www.2cto.com 故障二: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; www.2cto.com 2. 通过show cry ipsec sa查看两端SPI是否不相同; 3. 在两端手工清除隧道重新建立或者设置DPD解决不同步问题。 3.分支机构VPN配置重复 1. 隧道时断时连表现为当只有一个下端的时候一切正常,但当第二个或某个特定下端连接上来的时候,出现只有一个能正确建立IPsec隧道或时断时连; 2. 在中心VPN设备检查某个分支机构不能建立VPN隧道时却有相关的IPsec数据流; 3. 可以在分支机构VPN上更换网段测试或者配置使用积极模式,配置不通的标识ID。 以上信息仅供参考 摘自 dainiao01的专栏