计算机网络-L2TP VPN基础实验配置
一、概述
上次大概了解了L2TP的基本原理和使用场景,今天来模拟一个小实验,使用Ensp的网卡桥接到本地电脑试下L2TP拨号,今天主要使用标准的L2TP,其实在这个基础上可以加上IPSec进行加密,提高安全性。

拓扑说明,在防火墙FW1出口配置L2TP服务器,Internet模拟互联网,AR2模拟远程移动用户网关,通过云桥接到我本地的电脑终端,在电脑终端上通过L2TP客户端拨号连接到LNS。相关的桥接本地网卡这里不做具体讲解,需要注意的是我这里使用的地址可能是公网地址,因此可能需要禁用物理网卡或者添加拓扑里面的路由到本地电脑。
cmd添加路由的命令大致如下:
# 添加的路由临时有效,重启失效
route add 110.230.112.0 mask 255.255.255.0 192.168.5.2
route add 220.123.54.0 mask 255.255.255.0 192.168.5.2

网卡桥接:

二、基础配置
先完成基础的IP地址以及路由配置。
AR2:
# 配置公网接口并应用NAT
interface GigabitEthernet0/0/0
ip address 220.123.54.13 255.255.255.0
nat outbound 3000
#
interface GigabitEthernet0/0/2
ip address 192.168.5.2 255.255.255.0
# 配置默认路由
ip route-static 0.0.0.0 0.0.0.0 220.123.54.12
# 配置ACL用于NAT
acl number 3000
rule 5 permit ip source 192.168.5.0 0.0.0.255
Internet:
# 只需要配置接口即可
interface GigabitEthernet0/0/0
ip address 220.123.54.12 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 110.230.112.49 255.255.255.0
FW1:防火墙如果不需要配置策略可以全部放通,以及加入安全域
# 配置ACL
acl number 3000
rule 5 permit ip source 192.168.1.0 0.0.0.255
# nat策略
nat-policy
rule name all
source-zone trust
destination-zone untrust
action source-nat easy-ip
# 默认路由
ip route-static 0.0.0.0 0.0.0.0 110.230.112.49
# 安全区域
firewall zone trust
set priority 85
add interface GigabitEthernet0/0/0
add interface GigabitEthernet1/0/0
#
firewall zone untrust
set priority 5
add interface GigabitEthernet1/0/1
add interface Virtual-Template0
add interface Virtual-if0
# 内网服务器网关接口
interface GigabitEthernet1/0/0
undo shutdown
ip address 192.168.1.254 255.255.255.0
service-manage http permit
service-manage https permit
service-manage ping permit
service-manage ssh permit
service-manage snmp permit
service-manage telnet permit
# 公网出口
interface GigabitEthernet1/0/1
undo shutdown
ip address 110.230.112.50 255.255.255.0
service-manage http permit
service-manage https permit
service-manage ping permit
service-manage ssh permit
service-manage snmp permit
service-manage telnet permit
# 安全策略:
security-policy
default action permit # 如果不需要配置策略,直接将default动作设置为允许即可,下面的是我前面配置的
rule name local-trust
source-zone local
action permit
rule name trust-any
source-zone trust
action permit
rule name untrust-local
source-zone untrust
destination-zone local
action permit
rule name l2tp-in
description L2TP策略(l2tp-gp)引入
source-zone local
action permit
rule name any
action permit
上面配置完成后通过NAT可以使我的本地终端能够访问到FW1的出口地址。

如果想要通过网页进行配置,也可以开启防火墙的web功能。缺省端口为8443,https。
# 开启web管理
web-manager enable
# 针对admin账号授予web权限
manager-user admin
service-type web terminal
level 15

三、L2TP配置
配置流程如下:
-
创建地址池 -
创建服务模板 -
创建拨号模板 -
开启L2TP
# 创建一个地址池,前面我们已经讲了L2TP是结合了PPP协议拨号来实现建立隧道,ppp协议中通过C/S模式进行拨号获取ip和信息
ip pool l2tp
network 10.0.0.0 mask 255.255.255.0
# 在aaa中创建一个服务模板,调用地址池,再绑定到拨号用户上
aaa
service-scheme l2tp
ip-pool l2tp
# 配置认证域,使用缺省default,简单说就是我们通过
aaa
domain default
service-scheme l2tp
service-type l2tp
internet-access mode password
reference user current-domain
# 创建一个虚拟拨号模板
interface Virtual-Template0
ppp authentication-mode chap # 使用chap验证
remote service-scheme l2tp # 使用l2tp服务模板进行验证
ip address 10.0.0.254 255.255.255.0 # 类似于网关地址,建议于地址池同网段
# 创建一个l2tp组,简单说就是通过虚拟拨号模板都在这个组里面,通过在组里面设置隧道的认证和域
l2tp-group l2tp-gp # 创建一个l2tp-gp的组
undo tunnel authentication # 关闭隧道认证,安全起见可以开启,必须两端一致
tunnel name LNS # 服务器端隧道名称为LNS
allow l2tp virtual-template 0 remote l2tpclient domain default # 这里调用虚拟模板0,远端隧道也就是客户端隧道名称为"l2tpclient",需要对应才行。
# 创建拨号用户
user-manage user test # 用于客户端拨号
password Aa12345678
# 启用L2TP服务功能
l2tp enable
客户端连接,安装L2TP客户端。



点击保存确定,然后回到登录界面。



四、验证L2TP VPN连接
验证VPN连接:




业务测试:我在FW1下面的服务器开启一个httpd的服务,通过我连接上VPN后访问进行测试。


抓包分析:


需要注意这里是单纯的L2TP,数据包是明文的,可以看到数据包头部。
到这里基本的L2TP就实现了,其实也不算很难吧。
本文由 mdnice 多平台发布