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

Virtual Private Network (VPN) Lab

Task 1: VM Setup

使用上一个VPN的Labsetup包所构建的实验环境,所以这个任务就相当于是解决了。

Task 2: Creating a VPN Tunnel using TUN/TAP

Step 1: 自己构造tun_server.py,加权限并且在server上运行

Step 2: 在Host U上构建tun_client.py,并运行tun_client.py文件:

Step 3: 在ping 192.168.60.5之前,使得ip route中有关于192.168.60.0/24的条目,输入指令:

ip route add 192.168.60.0/24 dev name0

Step 4:在Host U上ping 192.168.60.5,结果如下:

发现有回复了。

Step 5: 从Host U telnet连接Host V时:

Step 6: Tunnel-Breaking Test.

断开后,发现无法在界面上输入指令:

重新运行程序后,发现刚才输入的指令重现了:

综上所述,通过执行以上操作,我们完成了Creating a VPN Tunnel using TUN/TAP任务

Task 3: Encrypting the Tunnel

Task 4: Authenticating the VPN Server

这两个任务合起来做的。

1. 首先我们的域名是 www.name2022.com,这个域名对应的服务会在 Server 容器也就是地址 10.9.0.11中开启,所以需要将DNS记录添加到hosts文件中。

2. 按照 PKI 实验的步骤创建CA证书即ca.crt和ca.key,然后为自己的域名创建对应的 server.key 和 server.crt。

我 是 直 接 使 用 之前实 验 中 的 ca.crt 和 ca.key ;以及server.key和server.crt。 所以使用指令 cp 即可。

将 server.key 和 server.crt 复制到 server-certs 文件夹中。

3.将 ca.crt 放入 client-certs 中,并使用 openssl 命令获取 hash 之后在

client-certs 中建立软链接:

  1. 修改一下 tun_server.py 文件内容,修改 tun_client.py,在 VPN Server 上运行 tun_server.py,在 Host U 上运行 tun_client.py,在Host U上有如下显示:

在VPN SERVER上有如下显示:

建立了TLS连接

10.在 ping 192.168.60.5 之前,使得 ip route 中有关于 192.168.60.0/24 的条目,输入指令:

ip route add 192.168.60.0/24 dev name0

在 Host U 上 ping 192.168.60.5,结果如下:

针对主机U究竟是否对VPN SERVER进行TLS认证,我们检测如下:

  1. 在运行tun_client.py时,后面不加入网址:

(2)在运行tun_client.py时,随便输入一个网址:

两次输出结果证明了是存在认证的。

综上所述,通过执行以上操作,我们完成了Encrypting the Tunnel任务和Authenticating the VPN Server两个任务。


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

相关文章:

  • 使用C#学习Office文件的处理(pptx docx xlsx)
  • Unity3D 开发教程:从入门到精通
  • 算法复杂度分析:深入剖析最好、最坏、平均、均摊时间复杂度
  • 2024 Rust现代实用教程:1.2编译器与包管理工具以及开发环境搭建
  • rabbitmq高级特性(2)TTL、死信/延迟队列、事务与消息分发
  • 【K8S系列】Kubernetes 中 Service IP 分配 问题及解决方案【已解决】
  • 在MacOS玩RPG游戏 - RPGViewerPlus
  • 【论文笔记】xGen-MM (BLIP-3): A Family of Open Large Multimodal Models
  • 【Android】Kotlin教程(5)
  • react基础之redux快速上手环境准备
  • 【Docker知识】Docker进阶-容器镜像深度解读
  • SQL 高级技巧
  • BERT的中文问答系统23
  • 使用Virtual Audio Cable捕获系统音频输出并使用Python处理
  • pc电脑屏幕分辨率尺寸
  • MetaArena推出《Final Glory》:引领Web3游戏技术新风向
  • Flutter鸿蒙next 封装对话框详解
  • 实现链式结构的二叉树
  • C++ 之 VS2010 和MySQL数据库的链接问题
  • 【K8S系列】Kubernetes 中 Service 无法访问及解决方案【已解决】
  • 单片机如何入门?
  • Android adb命令获取设备id
  • CentOS 9 Stream 上安装 Visual Studio Code
  • Go语言八股(Ⅲ)
  • C#与C++交互开发系列(十四):C++中STL容器与C#集合传递的形式
  • lvm故障小贴士