防火墙技术案例7】出差员工使用手机通过L2TPoverIPSec接入总部强叔最近开始在“侃墙”系列连载VPN了,许多小伙伴们看后大呼不过瘾,希望强叔能加快更新速度。但强叔也不是三头六臂,也需要一笔一笔来写啊。为了满足小伙伴们对VPN的浓厚学习兴趣,强叔就先给大家带来一篇很实用的L2TPoverIPSec的案例,算是让大家先预热下L2TP与IPSec的综合使用。而且本案例还可以指导各位小伙伴在出差时使用安卓或苹果手机通过VPN接入总部,进行安全、高效的移动办公。——————————————————下面大家就一起来赏析此案例吧~——————————————————————【组网需求】如图下所示,公司通过USG5500(V3R1版本)连接Internet。公司希望出差员工能够使用手机(3G/4G)接入公司内部网络,实现安全、高效的移动办公。【强叔规划】USG5500V3R1版本支持三种安全的远程接入方式:SSLVPN、EAP认证方式的IPSecVPN和L2TPoverIPSec(仅仅L2TP是不安全的,加上IPSec就安全了)。由于一般手机不能很好地支持SSLVPN和EAP认证,所以本案例选择的是手机普遍支持的L2TPoverIPSec。L2TPoverIPSec的主要配置思路如下:1、在USG上配置L2TP功能。这里的L2TP配置与普通的L2TP配置并无差别。2、在USG上配置IPSec功能。这里需要注意两点:一是在定义要保护的数据流时只需匹配1701端口(L2TP协议报文的端口)即可;二是由于手机是通过3G/4G方式接入Internet,IP地址不固定,所以需要在USG上配置模板方式的IPSec。3、在手机上配置L2TPoverIPSec。需要注意的是手机上的VPN参数需要与USG上的保持一致。这点会在后面详细说明。由于本案例L2TPoverIPSec参数众多,而且要求服务器端(USG)与客户端(手机)的参数保持一致,因此我们在开始配置前很有必要将这些参数都规划好并列举出来。需要注意的是iPhone和Android的界面参数略有不同。PS:以下参数均经过强叔实测,小伙伴们可以直接使用。项目数据说明USGL2TPPPP认证方式:CHAPiPhone帐户(用户名iphone密码abcd1234!)Android帐户(用户名android密abcd3456!)用户认证方式:本地认证(缺省)USG的iPhone帐户的“用户名”和“密码”需要与iPhone的“帐户”和“密码”保持一致。USG的Android帐户的“用户名”和“密码”需要与Android手机连接VPN时的“用户名”和“密码”保持一致。IKE安全认证方式:预共享密钥(缺-提议省)认证算法:SHA-1(缺省)加密算法:AES-CBCDHgroup:group2IKE对等体版本:IKEv1协商模式:主模式(缺省)预共享密钥:abc123USG的“预共享密钥认证字”需要与iPhone的“密钥”、Android手机的“IPsec预共享密钥”保持一致。IPSec安全提议安全协议:ESP(缺省)认证算法:SHA-1加密算法:AES封装模式:传输模式-iPhone手机VPN描述:L2TPoverIPSec服务器:218.17.167.149帐户:iphone密码:abcd1234!密钥:abc123发送所有流量:是服务器的地址是USG的建立IPSec隧道的接口IP地址。Android手机VPN编辑VPN网络名称:l2tpoveripsec类型:L2TP/IPSecPSK服务器地址:218.17.167.149IPsec预共享密钥:abc123连接到l2tpoveripsec用户名:android密码:abcd2345!服务器的地址是USG的建立IPSec隧道的接口IP地址。【配置步骤】1、配置USG的L2TP功能。1)开启L2TP功能。[USG]l2tpenable2)配置本地用户名和密码,用于手机VPN拨号时认证。配置IP地址池,为手机分配内网IP地址。[USG]aaa[USG-aaa]local-useriphonepasswordcipherabcd1234![USG-aaa]local-userandroidpasswordcipherabcd2345![USG-aaa]ippool110.0.0.110.0.0.50[USG-aaa]quit【强叔点评】本案例中只举例创建了两个帐号,如果有多个用户则需要创建多个帐号。本案例的地址池中的IP地址与现有公司内网IP地址不在同一网段。如果希望在同一网段,则需要配置L2TP虚拟转发功能和ARP代理功能。3)配置虚拟接口模板,并将虚拟接口模板加入trust区域。[USG]interfaceVirtual-Template1[USG-Virtual-Template1]ipaddress1.1.1.124[USG-Virtual-Template1]pppauthentication-modechap[USG-Virtual-Template1]remoteaddresspool1[USG-Virtual-Template1]quit[USG]firewallzonetrust[USG-zone-trust]addinterfaceVirtual-Template1[USG-zone-trust]quit【强叔点评】虚拟接口模板的IP地址可以任意配置,只要不与已存在的IP地址冲突即可。此处指定的地址池号必须是AAA视图下已有的地址池,否则USG无法为客户端分配IP地址。4)创建并配置L2TP组。[USG]l2tp-group1[USG-l2tp1]undotunnelauthentication[USG-l2tp1]allowl2tpvirtual-template1[USG-l2tp1]quit【强叔点评】这里建议使用L2TP组1(l2tp-group1),因为L2TP组1可以不指定隧道对端名称,即不需要知道手机的设备名称。2、配置USG的IPSec功能。1)定义要保护的数据流。[USG]acl3100[USG-acl-adv-3100]rule5permitudpsource-porteq1701[USG-acl-adv-3100]quit【强叔点评】IPSec需要保护L2TP封装后的报文,L2TP报文的端口号为1701。2)配置IKE安全提议。[USG]ikeproposal1[USG-ike-proposal-1]encryption-algorithmaes-cbc[USG-ike-proposal-1]dhgroup2[USG-ike-proposal-1]quit3)配置IKE对等体,预共享密钥为abc123。[USG]ikepeerb1[USG-ike-peer-b1]ike-proposal1[USG-ike-peer-b1]pre-shared-keyabc123[USG-ike-peer-b1]quit4)配置IPSec安全提议。[USG]ipsecproposala1[USG-ipsec-proposal-a1]encapsulation-modetransport[USG-ipsec-proposal-a1]espauthentication-algorithmsha1[USG-ipsec-proposal-a1]espencryption-algorithmaes[USG-ipsec-proposal-a1]quit5)配置IPSec安全策略模板。[USG]ipsecpolicy-templatetemp1[USG-ipsec-policy-templet-temp-1]securityacl3100[USG-ipsec-policy-templet-temp-1]proposala1[USG-ipsec-policy-templet-temp-1]ike-peerb1[USG-ipsec-policy-templet-temp-1]quit6)创建IPSec安全策略并引用安全策略模板。[USG]ipsecpolicyd11isakmptemplatetemp7)在接口上应用IPSec安全策略。[USG]interfaceGigabitEthernet0/0/1[USG-GigabitEthernet0/0/1]ipsecpolicyd13、在iPhone上配置VPN(本文以iPhone4S的iOS5.1版本为例)。配置iPhone前,请确认iPhone能够正常访问Internet(通过3G或通过无线局域网)。1)在iPhone上选择“设置通用网络VPN”。2)单击“添加VPN配置”。3)按照下图输入参数。【强叔点评】iPhone的“服务器”需要与USG的公网IP地址保持一致。本例中即为USG的GigabitEthernet0/0/1接口的IP地址。iPhone的“帐户”和“密码”需要与USG的AAA视图下配置的本地用户的“用户名”和“密码”保持一致。iPhone的“密钥”需要与USG的“预共享密钥”保持一致。4)单击“存储”。5)选中配置的VPN后,启用VPN,如下图所示。4、在Android上配置VPN(本文以Android4.0版本为例)。配置Android手机前,请确认Android手机能够正常访问Internet(通过3G或通过无线局域网)。1)在Android手机上选择“设定无线和网络更多设定VPN”。2)在弹出的对话框中单击“确定”。3)选择“密码”,在文本框中输入密码后,单击“继续”。【强叔点评】此密码为手机的屏幕锁定密码。如果您之前设定了屏幕锁定密码,则不会弹出对话框。4)重新输入密码后,单击“继续”。5)单击“添加VPN网络”。6)参考下图输入参数。【强叔点评】“服务器地址”需要与USG的公网接口IP地址保持一致。本例中即为USG的GigabitEthernet0/0/1接口的IP地址。“IPsec预密钥”需要与USG的“预共享密钥”保持一致。7)单击“储存”。8)单击以上配置的“l2tpoveripsec”。9)参考下图输入参数。【强叔点评】“用户名”和“密码”需要与USG的AAA视图下配置的L2TP的“用户名”和“密码”保持一致。10)单击“连接”。【强叔验证】1、在USG上查看结果。1)执行命令displayl2tptunnel,可看到隧道建立成功。[USG]displayl2tptunnelTotaltunnel=1LocalTIDRemoteTIDRemoteAddressPortSessionsRemoteName12219.141.159.58520321LHW2)执行命令displayl2tpsession,可看到会话连接建立成功。[USG]displayl2tpsessionTotalsession=1LocalSIDRemoteSIDLocalTID133013)执行命令displayikesa,可看到IKESA建立成功。[USG]displayikesacurrentikesanumber:2-----------------------------------------------------------------------------conn-idpeerflagphasevpn-----------------------------------------------------------------------------40004219.141.159.58RDv1:2public40003219.141.159.58RDv1:1publicflagmeaningRD--READYST--STAYALIVERL--REPLACEDFD--FADINGTO--TIMEOUTTD--DELETINGNEG--NEGOTIATINGD—DPD4)执