计算机网络-L2TP VPN基础实验配置

news2025/4/8 3:42:48

一、概述

上次大概了解了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.coloradmin.cn/o/2268668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Postman[7] 内置动态参数及自定义的动态参数

postman 内置动态参数和自定义的动态参数 1.内置动态参数 格式:{{$参数名}} 1.1时间戳 {{$timestamp}} //生成当前时间的时间戳 1.2随机整数 {{$randomint}} //生成0-1000之间的随机数 1.3GUID字符串 {{$guid}} //生成随机GUID字符串 2.自定义动态参数 格式…

uniapp-vue3(下)

关联链接:uniapp-vue3(上) 文章目录 七、咸虾米壁纸项目实战7.1.咸虾米壁纸项目概述7.2.项目初始化公共目录和设计稿尺寸测量工具7.3.banner海报swiper轮播器7.4.使用swiper的纵向轮播做公告区域7.5.每日推荐滑动scroll-view布局7.6.组件具名…

STM32中断详解

STM32中断详解 NVIC 中断系统中断向量表相关寄存器中断优先级中断配置 外部中断实验EXTI框图外部中断/事件线映射中断步骤初始化代码实现 定时器中断通用定时器相关功能标号1:时钟源标号 2:控制器标号 3:时基单元 代码实现 NVIC 中断系统 STM…

小程序中引入echarts(保姆级教程)

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…

Cypress测试框架详解:轻松实现端到端自动化测试

端到端自动化测试工具市场中,Cypress正以其易用性和强大功能,迅速成为开发者和测试人员的首选工具之一。无论是前端开发还是测试,Cypress都能在性能和效率上脱颖而出。 那么,Cypress具体能为端到端测试带来哪些便利?它…

Nginx - 整合lua 实现对POST请求的参数拦截校验(不使用Openresty)

文章目录 概述步骤 1: 安装 Nginx 和 Lua 模块步骤 2: 创建 Lua 脚本用于参数校验步骤 3: 配置 Nginx 使用 Lua 脚本写法二: 状态码写法三 : 返回自定义JSON复杂的正则校验 步骤 4: 测试和验证ngx.HTTP_* 枚举值 概述 一个不使用 OpenResty 的 Nginx 集…

在 React 项目中安装和配置 Three.js

React 与 Three.js 的结合 :通过 React 管理组件化结构和应用逻辑,利用 Three.js 实现 3D 图形的渲染与交互。使用这种方法,我们可以在保持代码清晰和结构化的同时,实现令人惊叹的 3D 效果。 在本文中,我们将以一个简…

logstash 对配置文件conf敏感信息加密处理

logstash的配置文件conf经常会涉及敏感信息,比如ES,数据库的账户密码等,以下使用logstash导入ORACLE为例子,加密隐藏ORACLE的密码。 1.先创建keystore,可以不设置keystore密码,直接选择y 在logstash目录下&#xff0…

为什么MoE推理效率更高:精简FFN

MoE全称是“混合专家”,它由多个专家网络和一个门控网络组成……整个MoE完全复用了Transformer的结构,只是将其中的FFN层替换成了MoE层。MoE层里的门控网络其实就是个专家分类器,每次根据输入Token生成专家的概率分布,然后选择排序靠前的K个专家进行Token处理,最后再将K个…

课设CLion连接Ubuntu14makeQt项目出错解决汇总

在这之前需要注意以下几点: 1、需要 确保CLion能连接Ubuntu14 2、cmakelist.txt文件配置 3、知道部署路径: 问题一:/usr/bin/ld: cannot open output file GreedySnake: Is a directory 否则就会出现make以后应该生成一个可执行文件&…

第T4周:TensorFlow实现猴痘识别(Tensorboard的使用)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标: 1、学习tensorboard的使用 具体实现: (一)环境: 语言环境:Python 3.10 编 译 器…

LeetCode:513.找二叉树左下角的

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:513.找二叉树左下角的 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的…

【Redis】Redis 典型应用 - 缓存 (cache)

目录 1. 什么是缓存 2. 使用 Redis 作为缓存 3. 缓存的更新策略 3.1 定期生成 3.2 实时生成 4. 缓存的淘汰策略 5. 缓存预热, 缓存穿透, 缓存雪崩 和 缓存击穿 关于缓存预热 (Cache preheating) 关于缓存穿透 (Cache penetration) 关于缓存雪崩 (Cache avalanche) 关…

【Rust自学】7.6. 将模块拆分为不同文件

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.6.1. 将模块的内容移动到其他文件 如果在模块定义时模块名后边跟的是;而不是代码块&#…

随机种子定不死找bug

记录一次debug的心路历程 在运行别人的开源项目时遇到了随机种子定不死的情况, 运行一开始会有1e-5次方左右的误差, 后面误差会越来越大。 一开始以为是随机种子没有定死, 使用的以下代码固定的随机种子: torch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.cuda.manu…

STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器

STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器 1、按键控制 LED 按键:常见的输入设备,按下导通,松手断开 按键抖动:由子按键内部使用的是机械式弹簧片来进行通断的、所以在按下和松手的瞬间会伴随有一连串的抖动 按键控制LED接线图: 要有工程…

深入理解Redis:从理论到实践的Java之旅

Redis,这个开源的内存数据结构存储系统,自2009年诞生以来,凭借其丰富的数据结构、快速的读写性能以及高度的可扩展性,迅速成为了分布式系统和高并发应用中的明星组件。本文将带你深入理解Redis,并通过Java语言的实践示…

VS Code中怎样查看某分支的提交历史记录

VsCode中无法直接查看某分支的提交记录,需借助插件才行,常见的插件如果git history只能查看某页面的改动记录,无法查看某分支的整体提交记录,我们可以安装GIT Graph插件来解决这个问题 1.在 VSCode的插件库中搜索 GIT Graph安装&a…

Flutter适配HarmonyOS实践

大家在知道纯血鸿蒙到来的时候一定很疑惑,使用跨平台语言的到底该怎么办,不管使用Flutter还是使用原生鸿蒙开发,都会考虑到一个成本问题,特别是一些无法支持鸿蒙开发团队,已经使用跨平台开发已经很成熟的公司或者团队。…

XIAO Esp32S3 播放网络Mp3

本文旨在使用XIAO Esp32S3 播放网络Mp3 所需硬件 max98357 接线 Xiao Esp32 S3Max983574LRC5BCLK 6DIN5VVinGNDGND代码: #include "Arduino.h" #include "WiFiMulti.h" #include "Audio.h"// Digital I/O used #def