前言
在讲解虚拟专用网时候,提到过,分为两种组网方式,一种是站点到站点的,也就是之前我们一直在讲解的内容,另外一种就是client到站点的,也就是远程拨号系列,这就是接下来要讲解的内容了。
作者:网络之路一天 首发公众号:网络之路博客(ID:NetworkBlog)
这种场景的特点为:客户端的地址不固定。且访问是单向的,即只有客户端向内网服务器发起访问。适用于企业出差员工或临时办事处员工通过手机、电脑等接入总部远程办公。
可以实现的技术有PPTP、L2TP、SSL、IKEV2(目前相对用的少点),主流的还是L2TP跟SSL,由于PPTP华为 H3C都不支持.
Client-Initiated与Call-LNS场景
这篇内容涉及讲解的就是L2TP相关的,L2TP(Layer 2 Tunneling Protocol) VPN是一种用于承载PPP报文的隧道技术,该技术主要应用在远程办公场景中为出差员工远程访问企业内网资源提供接入服务。L2TP在目前部署中主要两个场景,一个是客户端在外连接任何网络直接拨号,叫做client-initiated场景。
另外还有一种叫做Call-LAS场景,它是由分支的网关代替用户直接拨号过去,对于用户来说是透明的。
Client-Initiated(客户端拨号形式)配置
环境描述:客户那边总部在北京,希望给在外出差的业务人员提供接入企业内部的功能,让在外边也能访问公司内部资源,通过账号密码完成认证。(模拟器记得桥接到本地,用本地电脑可以测试拨号,记得前提路由可达) 该拓扑配置记得保存,下一篇还需要用。
基本配置
39篇了,基础配置部分文章就不在给出了,就常见的配置地址、安全策略(暂时全放),然后互联网根据自己习惯写对接地址就可以了。(实在不懂可以参考视频部分)
1、配置地址池
[FW]ip pool l2tp
[FW-ip-pool-l2tp]network 10.1.1.0 mask 24
(建议分配内网没使用过的网段)
2、业务方案
[FW]aaa
[FW-aaa]service-scheme l2tp
[FW-aaa-service-l2tp]ip-pool l2tp
(service-scheme的作用是为用户分配DNS服务器、地址池资等授权资源,通常在L2TP里面就用于关联地址池)
3、认证域(可选)与用户
[FW-aaa]domain default
[FW-aaa-domain-default]service-scheme l2tp
(系统默认是有一个default域,新建的用户名都在default下面,service-scheme可以关联到default,也可以关联到接口下面,所以这一部分是可选的。也可以自定义其他域,通常是在多种业务混合的情况下,比如域1专门给市场部门的用,域2专门给财务部门的。)
[FW]user-manage user l2tp
[FW-localuser-l2tp]password ccieh3c.com
4、配置VT口
[FW]interface Virtual-Template 1
[FW-Virtual-Template1]ip address 10.1.1.254 24
[FW-Virtual-Template1]ppp authentication-mode chap pap (输入后会提示确认)
5、配置L2TP
[FW]l2tp enable
l2tp-group default-lns (在V5版本以后,系统默认内置了一个default-lns的名称,如果是PC/手机端拨号建议使用这个默认的名称,在V1的版本跟UTM时代产品默认是没有名字的)
[FW-l2tp-default-lns]allow l2tp virtual-template 1 (关联VT接口)
[FW-l2tp-default-lns]undo tunnelauthentication (关闭隧道认证,因为Windows自带/手机端是不支持的)
6、接口加入安全区域(重要)
[FW]firewall zone name l2tp
[FW-zone-l2tp]set priority 55
[FW-zone-l2tp]add interface Virtual-Template 1
7、安全策略(暂时全放,后面分析)
[FW]security-policy
[FW-policy-security]default action permit
实际测试,来看看有哪些问题
先测试访问自己网关,以及L2TP服务器网关通不通(防火墙的地址需要开启ping允许)
Windows 7客户端新建
internet地址输入L2TP服务器的公网地址,然后点击创建即可(名称建议以实际服务器的地区/公司命名)
Win7还需要注意的地方
(1)Windows7创建后,默认使用的是IKEV2的形式,需要改成L2TP
(2)数据加密方式:Windows7默认是需要加密的,而纯L2TP是不需要加密,所以会出现问题
需要加密,如果服务器那边不支持则直接断开,需要改下
改成可选
(3)支持协议
有时候服务器端只允许了PAP或者CHAP,而且很多防火墙是不支持MS-CHAP的,建议把PAP跟CHAP勾选,然后去掉MS-CHAP
(4)windos7系统有时候会提示安全层加密失败等提示,这个是因为系统默认不支持L2TP的方式,必须用L2TP over ipesc,这个时候必须修改注册表让其支持(注册表内容可以百度下)
Windows 10客户端创建
点击保存
保存后会出现一个L2TP的名称,然后点击连接
也可以点电脑图标,选择连接
出现第一个问题了,这个就是Windows自带容易遇到的问题,这个时候就要看看Windows的网卡属性
在L2TP网卡的属性里面,它是没有允许任何的认证协议的,而在防火墙上面是开了CHAP跟PAP,所以这里需要修改下。
这个时候已经拨上了,但是电脑断网了。
Ping 服务器地址是通的
访问内网业务也是可以的,但是有一个比较严重的问题就是拨入L2TP后,本地上网就断开了。
这个就是第二个问题,L2TP一旦拨入,默认情况下所有的流量都会引入到L2TP隧道,通过PC的路由表就可以看出来。
这里有两条默认路由,一条是去往192.168.255.254的就是本地的,而另外一条是去往10.1.1.19的,这个是L2TP的,后面还有一个26跟4260,这个就是优先级,数值越小越优先,所以这里所有的流量都引入L2TP隧道了。
解决办法(视频会全部演示)
- 在网卡属性---网络---协议版本V4----高级----在远程网络上使用默认网关的√去掉。去掉以后需要手动写route add 192.168.10.0 255.255.255.0 【当前获取的VPN地址】,这种方法很麻烦,也不适合给客户使用,客户会拨号已经很难得了,还指望会静态路由的写法~
- 在防火墙上面做源NAT,虽然L2TP隧道会把流量全部引入到防火墙这边来,但是可以在防火墙这边做源NAT,这样客户端能够去上网,但是注意,在ip pool或者service-scheme里面要给客户端下发DNS,否则会出现网页打不开的情况。
- 建议使用华为、华三的客户端软件,它里面有个非常实用的功能,可以实现添加该L2TP拨号访问什么内容,然后拨入后不影响上网,事先添加的路由会自动走L2TP隧道,并且还有一个特别好的地方就是可以做成模板,然后倒入给客户,客户什么都不需要添加,就能完成所有创建,只需要输入用户名密码即可。
细节地方补充
interface Virtual-Template 1
- 地址调用的方式有多种,在实验演示service-scheme方式,并且调用在domain default里面,而接口下面并没有调用这个,客户端是可以自动获取地址的,因为用户默认是属于default里面的。
- 另外一种方式,可以把service-scheme不调用在domain里面,直接在VT接口下调用这个地址池remote service-scheme l2tp
- VT接口的作用在这里可以看出来,它就是用于辅助L2TP来完成对用户的认证、地址分配的情况的。
- L2TP对数据业务的保护是比较脆弱的,如果需要更高的安全性,那么就需要依赖IPSec结合,跟GRE一样。
- 部署L2TP是必须有公网地址的,但不一定需要固定公网地址,如果是动态公网地址可以关联DDNS来实现部署。
- 关于用户名是不会在配置里面显示出来的,需要在WEB端查看,或者通过display user-manage user 查看(模拟器要注意,重启后用户信息会丢失,真机没问题)
- 对命令行不太熟悉的朋友可以用WEB操作(视频部分会演示)
- 手机端要注意,有的系统不支持单纯的L2TP,比如苹果、个别的安卓系统,这个时候必须使用L2TP over IPSec
- 有的地区会封L2TP的端口号,导致L2TP拨入不出来,这个时候就只能采用SSL之类的了。
维护相关
1、display l2tp tunnel:查看L2TP的隧道/
2、display l2tp session:查看L2TP的会话
3、display access-user :查看当前在线用户
4、WEB端在L2TP里面可以直接查看信息