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 中建立软链接:
- 修改一下 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认证,我们检测如下:
- 在运行tun_client.py时,后面不加入网址:
(2)在运行tun_client.py时,随便输入一个网址:
两次输出结果证明了是存在认证的。
综上所述,通过执行以上操作,我们完成了Encrypting the Tunnel任务和Authenticating the VPN Server两个任务。