今天讲一下利用openVPN实现远程访问Packet Squirrel。
openVPN是一个开源的基于OpenSSL库的应用层VPN软件,可通过配置使用共享密钥、证书、用户名密码等方式进行身份验证,大量使用了OpenSSL加密库中SSLv3/TLSv1协议,可在Linux、MacOS、Windows、FreeBSD等系统上运行,同时包含了许多安全性的功能。
另外上文我们提到过Packet Squirrel设备支持外置U盘格式为NTFS和EXT4,前段时间Hak5官方更新了固件版本,执行updatefw升级固件后,增加支持FAT32格式的U盘。
在Packet Squirrel中支持两种模式:Remote Access和Client Tunneling。
Remote Access(远程访问模式):
在远程访问模式下,连接Packet Squirrel设备两端的网络流量仍然正常传输,与此同时,Packet Squirrel作为openVPN客户端再建立一条链接到我们的openVPN服务器(我们预先配置的VPS),这样我们就可以直接通过VPS远程访问Packet Squirrel了。
Client Tunneling(客户端隧道模式):
在客户端隧道模式下,连接Packet Squirrel设备Lan口的流量会全部传输至我们的openVPN服务器上,再由openVPN服务端进行流量转发,实现目标网络的PC通过openVPN进行网络访问的目的。
首先,Packet Squirrel设备出厂时已经在Payloads / switch3中包含了一个openVPN客户端脚本,通过在VPS上搭建一个openVPN服务端接受来自Packet Squirrel的连接,完成配置整个过程。
第一步:配置openVPN服务端。
在我们预先准备的VPS上安装并配置openVPN安装脚本,该安装脚本可在https://git.io/vpn获取,下载到安装脚本后保存为openvpn.sh并执行。
openVPN服务端安装脚本采取一系列交互式完成安装,其中IP address为我们VPS公网IP,推荐使用openVPN协议类型为UDP,端口1194,其他保持默认即可。
经过大约几分钟的安装过程,会在服务器/root目录下生成client.ovpn文件,其中包含了openVPN的服务端配置信息以及密钥等。
安装过程有个需要注意的地方是安装脚本中会下载一个EasyRSA.tgz的文件,这个文件在安装脚本中默认下载地址是位于AWS上服务器,有时会遇到莫名其妙问题无法下载成功,导致卡在这里,我当时的解决办法是从其他途径下载到该文件然后通过修改安装脚本中有关此项的内容来绕过这个地方。
服务端脚本安装完成后会在本地生成一个虚拟网卡tun0,默认地址为10.8.0.1,如果客户端连接后,分配的客户端地址会依次分发为10.8.0.2/3等。
以上内容已经完成了openVPN服务端侧的配置过程。
下面配置openVPN客户端的内容,首先将在服务端生成的client.ovpn文件修改名称为config.ovpn并复制到Packet Squirrel设备的payloads/switch3文件夹中。
关于Packet Squirrel在openVPN客户端处的配置很简单,仅需要将client.ovpn文件复制到switch3后,并将switch文件内容置为3,重启Packet Squirrel后会自动进行openVPN的连接,连接成功后设备保持LED灯黄色闪烁。
下图所示在Packet Squirrel重启后进行openVPN自动连接成功,VPS上的openVPN服务端日志记录。
可以看到图中显示来自客户端(即Packet Squirrel)的连接情况,分配的客户端地址为10.8.0.2。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。