将虚拟机暴露给互联网

将虚拟机暴露给互联网

我想使用虚拟机箱创建一个虚拟机,用于搭建一个黑客实验室,并允许某人尝试从互联网对其进行黑客攻击。(因此虚拟机将成为受害者)。我该怎么做?我猜想局域网中的所有设备(包括虚拟机)都共享一个唯一的 IP,那么我该如何暴露我的虚拟机?有办法吗?我应该设置端口转发还是使用其他配置?如果这是一个愚蠢的问题,我深表歉意。希望有人能帮助我。提前致谢。

答案1

您应该非常小心地考虑要做什么。如果您想将虚拟机暴露在互联网上,则应绝对确保虚拟机无法与网络中的其他设备通信。尽管如此,攻击者仍可以使用您的互联网连接进行非法活动。这很难防止,并且需要对网络技术有扎实的了解。总而言之,我的建议是:不要这样做,除非您绝对知道自己在做什么。

答案2

你的路由器是什么类型的设备?你有 shell 访问权限吗?

我必须帮助某人从互联网上完全访问他们的盒子。我无法在路由器(运行 Tomato)的 Web UI 中找到选项,因此我直接应用了更改,然后将更改保存在/etc/iptables。配置更改后,这些更改将被清除,但根据您选择的路由器,这可能不是问题。

当数据包离开您的网络进入互联网时,SNAT 规则会使数据包看起来来自您的本地地址(在本例中被审查为 1.1.1.1)。许多 Linux 路由器发行版喜欢使用 SNAT 而不是默认的 MASQUERADE 规则来实现端口转发。

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -o vlan1 -j SNAT --to-source 1.1.1.1

当外部有人尝试连接到您的公共 IP 时,该连接将被发送到本地计算机(192.168.0.123)。在到达该计算机之前,它必须首先被 FORWARD 链接受。

iptables -t nat -A PREROUTING -d 1.1.1.1 -j DNAT --to-destination 192.168.0.123

如果被接受,则转发到本地机器。

iptables -A FORWARD -d 192.168.0.123 -j ACCEPT

对于您的蜜罐示例,您可能需要像我上面发布的那样进行全局接受,但对于我的用例,我想限制对已知受信任 IP 的访问,而是使用以下命令:

iptables -A FORWARD -d 192.168.0.123 -s 2.2.2.2 -j ACCEPT

如果您允许任何人连接到您的位置,我会将其放在与您的普通计算机完全独立的子网/冲突域上,并确保您的iptables设置禁止对该域的所有访问。

相关内容