由于手机的认证方式和LDAP服务器的认证方式不一致导致L2TPoverIPSec拨号失败

发布时间:  2014-09-20 浏览次数:  513 下载次数:  0
问题描述
组网结构:
手机终端-------
                |------(Internet)---------------FW
VPN-Client----

防火墙作为VPN的中心节点,手机和PC通过L2TP OVER IPSEC拨号到防火墙上访问内部服务器。VPN CLIENT和手机都是使用LDAP服务器进行认证,但是VPN Client可以登录成功但是手机登录失败.
处理过程
1. 由于IPSec已经协商成功,L2TP协商失败,查看L2TP相关的配置,单纯从配置来看,未发现问题.
l2tp enable
l2tp domain suffix-separator @

interface Virtual-Template1
ppp authentication-mode chap pap
alias L2TP_LNS_1
ip address 10.1.200.1 255.255.255.0
remote address pool

l2tp-group 1
mandatory-chap
undo tunnel authentication
allow l2tp virtual-template 1

domain test.com
  authentication-scheme  test.com
  authorization-scheme test.com
  ldap-server l2tp
  ip pool 0 10.1.200.2  10.1.200.254

2. 手机拨号失败提示authentication failed的,但是手机和VPN Client使用相同的用户名和密码,为什么手机就会认证失败,而VPN Client就可议认证成功.
3. 对设备AAA,LDAP和UCM模块进行调试,命令如下:
[USG-diagnose]debugging ldap all
[USG-diagnose]debugging aaa all
[USG-diagnose]debugging ucm all

发现设备有如下打印
[LDAP(Pkt):] Receive a packet of user bind result fail.
[UCM DBG]MSG Recv From:AAA Code:AAA_UCM_AUTH_ACK Event:AUTH_FAIL Src:682 Dst:682

但是使用VPN Client拨号时,打印信息如下:
[LDAP(Evt):] Receive a packet of bind success.
[UCM DBG]MSG Recv From:AAA Code:AAA_UCM_AUTH_ACK Event:AUTH_PASS Src:683 Dst:683

说明防火墙确实是收到LDAP服务器发过来的认证失败报文,但是无法解释为什么VPN Client可以认证通过,而手机无法认证通过,都是一样的用户名和密码.
4. 在防火墙和LDAP服务器之间抓包,确认服务器返回的类型.
比较PC认证成功和手机认证失败的抓包,发现使用VPN Client认证成功时,防火墙发送的认证请求中的用户密码是明文(左边),而使用手机拨号时密码是加密的(右边),可能是认证方式不对。

由于VPN Client可以设置认证方式为PAP,所以VPN Client拨号成功了,但是手机无法设置认证方式,是由防火墙配置的认证方式决定的.
从前面防火墙的配置来看,VT口下同时配置了chap认证和pap认证.
interface Virtual-Template1
ppp authentication-mode chap pap
alias L2TP_LNS_1
ip address 10.1.200.1 255.255.255.0
remote address pool

防火墙优先会告诉手机使用chap认证,导致LDAP服务器没有认证成功.
5. 去掉VT口下的chap认证后,手机L2TP OVER IPSEC拨号也成功了,问题解决。
根因
由于手机的认证方式和LDAP服务器的认证方式不一致,导致认证失败.
解决方案
  •  关闭VT口视图下的chap认证.
interface Virtual-Template1
ppp authentication-mode pap
  •  修改LDAP服务器支持chap认证.

END