计算机网络安全Lab3

计算机网络安全 - 第三次实验 - TLS VPN搭建 - 王美珍老师(未完成)

环境配置

环境与参考书保持一致

image-20220510155426301

虚拟网络extranet与intranet已经在Lab1中配置过,不做赘述

需要新建两个新的容器作为HostU以及HostV,要求内网主机HostV不能被外网主机HostU直接访问,需要通过VPN通道才能访问。

# VM 创建新容器并进入
sudo docker run -it --name=HostU --hostname=HostU --net=extranet --ip=10.0.2.7 --privileged "seedubuntu" /bin/bash
# HostU 删除默认路由
route del default

# VM 创建新容器并进入
sudo docker run -it --name=HostV --hostname=HostV --net=intranet --ip=192.168.60.101 --privileged "seedubuntu" /bin/bash
# HostV 删除默认路由
route del default

配置TUN隧道

运行VPN服务器

# VM 启动VPN服务
cd {vpn}
make 
sudo ./vpnserver

# 配置tun0虚拟IP激活接口
sudo ifconfig tun0 192.168.53.1/24 up

# VM 作为网关启用报文转发
sudo sysctl net.ipv4.ip_forward=1

# VM 清除iptables
sudo iptables -F

检查VM的路由,有tun0接口的192.168.53.0/24的路由

image-20220510172826081

运行VPN客户端

# VM 将VPN客户端拷入HostU
cd {vpn}
sudo docker cp vpnclient HostU:/vpnclient

# HostU 启动VPN客户端
./vpnclient 10.0.2.8

# HostU 配置tun0虚拟IP激活接口
ifconfig tun0 192.168.53.5/24 up

# 创建tun0 192.168.60.0/24路由
route add -net 192.168.60.0/24 tun0

检查HostU的路由,有tun0网口的两个路由规则

image-20220510172657355

HostV上的路由信息会将tunnel的信息转到VM 192.168.60.1,而VM可以处理这个信息

image-20220510173236526

测试VPN隧道

在HostU上ping一下HostV可以获得响应

image-20220510174317961

该过程在wireshark上抓包效果如下

tun0网口

image-20220510174933490

docker2网口 intranet

image-20220510175052977

docker1网口 extranet

image-20220510175022142

测试TLS服务

昨天晚上看了看代码才发现整数部分有点绕绕