当前位置: 首页 > article >正文

计算机网络-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
L2TP客户端
L2TP客户端

网卡桥接:

云配置
云配置

二、基础配置

先完成基础的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的出口地址。

ping测试连通性
ping测试连通性

如果想要通过网页进行配置,也可以开启防火墙的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连接
创建L2TP连接
隧道连接信息
隧道连接信息

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

点击连接
点击连接
输入刚才创建的拨号用户
输入刚才创建的拨号用户
协商成功
协商成功

四、验证L2TP VPN连接

验证VPN连接:

查看L2TP会话
查看L2TP会话
本地环回网卡地址
本地环回网卡地址
ping测试
ping测试
在FW1抓包
在FW1抓包

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

WEB服务器测试
WEB服务器测试
访问正常
访问正常

抓包分析:

alt
alt

需要注意这里是单纯的L2TP,数据包是明文的,可以看到数据包头部。

到这里基本的L2TP就实现了,其实也不算很难吧。

本文由 mdnice 多平台发布


http://www.kler.cn/a/458830.html

相关文章:

  • 【Python】FastAPI之SQLAlchemy、关联关系
  • [JAVA]MyLogger
  • Android 系统 `android.app.Fragment` 类的深度定制与常见问题解析
  • 当下热点系列 篇二:大消费题材解析和股票梳理
  • 【Elasticsearch】集群配置深度解析与实践
  • SQL 基础教程 - SQL SELECT 语句
  • LeetCode-正则表达式匹配(010)
  • 为什么C++支持函数重载而C语言不支持?
  • “技术学习”(Technical Learning)在英文中的多种表达方式
  • 第十六届蓝桥杯模拟赛(第一期)(C语言)
  • HarmonyOS NEXT 实战之元服务:静态案例效果---本地生活服务
  • SkyWalking Agent 配置 Spring Cloud Gateway 插件解决日志错误
  • Momentum Contrast for Unsupervised Visual Representation Learning论文笔记
  • Django多字段认证的实现
  • python脚本加载ui页面:PySide6设计的页面
  • SQL 实战:窗口函数进阶 – 实现复杂滑动窗口与动态累计计算
  • 大数据与机器学习(它们有何关系?)
  • Mac电脑python多版本环境安装与切换
  • Selenium之Web元素定位
  • Android笔试面试题AI答之Android基础(7)
  • hive-sql 连续登录五天的用户
  • 【GeekBand】C++设计模式笔记18_State_状态模式
  • 【2024年-6月-21日-开源社区openEuler实践记录】探索 intel-kernel:英特尔架构内核优化之路
  • [TOTP]android kotlin实现 totp身份验证器 类似Google身份验证器
  • 环,域,体,整区,理想,极大理想,
  • 配置hive支持中文注释