计算机网络安全 - 第三次实验 - TLS VPN搭建 - 王美珍老师(未完成)
环境配置
环境与参考书保持一致
虚拟网络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的路由
运行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网口的两个路由规则
HostV上的路由信息会将tunnel的信息转到VM 192.168.60.1,而VM可以处理这个信息
测试VPN隧道
在HostU上ping一下HostV可以获得响应
该过程在wireshark上抓包效果如下
tun0网口
docker2网口 intranet
docker1网口 extranet
测试TLS服务
昨天晚上看了看代码才发现整数部分有点绕绕