我想将 VM 连接到 VPN,并且只连接到该 VPN;在列表中显示为 ppp0。
我无法在 vbox 桥接适配器列表中选择 ppp0。VPN 工作正常,如果我在 vbox 网络菜单中选择“NAT”,我就可以访问它;但我的 VM 可以访问互联网;我不想发生这种情况。
我也不希望任何常规流量通过 VPN 传输。
解决这个问题的最佳方法是什么?
注意:VPN 仅在某些时候处于活动状态(它连接到我使用的某些 SW 的许可证服务器,我需要每周连接到该服务器)
答案1
我会编写一个脚本来设置特定的防火墙规则以实现您的目标,就您而言,听起来您不希望任何流量通过未加密的接口传出。我使用了一个我偷来的脚本,它可能会有所帮助。(在我的系统上,我的 vpn 接口称为 tun0 ((tunnel 0))。
sudo ufw reset sudo ufw default deny incoming sudo ufw default deny outgoing sudo ufw allow out on tun0 from any to any sudo ufw enable
您的接口似乎是 ppp0,因此请进行相应替换。
该脚本调整防火墙规则,以便流量只能通过您的 vpn(tun0,或者在您的情况下为 ppp0)进出。
如果您以某种方式断开了您的 vpn 连接 - 所有流量都会停止,直到您重新验证身份或恢复到原始防火墙策略。
因此,如果您决定使用不安全的连接访问互联网,您将需要一个可以撤消所有这些操作的脚本。(例如,如果 VPN 决定断开您的连接,您需要重新连接到它)
sudo ufw reset sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw enable
一旦您重新连接到您的 vpn,请运行第一组规则以确保 ppp0 或 tun0 或任何加密接口的名称都被限制在您的加密接口上。
我应该指出,您应该在连接到 VPN 之后运行第一个脚本。如果您在此之前运行它,您将无法连接到 VPN。
断开 VPN 连接后,运行第二个脚本。
我还应该指出,我不能保证在虚拟机中一定能成功。您可以通过故意断开 VPN 连接并通过 bmon 等实用程序观察流量来确认。或者您可以尝试 ping yahoo.com 或类似的东西。相信我,如果您运行这些规则,所有流量都会在 VPN 断开的那一刻停止。