我试图在networking卡(Wifi和各种以太网)位于不同虚拟机的环境中在虚拟机中设置防火墙,以便防火墙虚拟机位于NetVM和我的主机系统之间。
问题是进入防火墙的数据包以NetVM IP为源地址,所以我不能使用iptables 白名单从恶意恶意源丢弃数据包。
我build议使用端口镜像来复制数据包,但我想直接转发数据包,并且没有NetVM中的内核来处理它们。
我必须在这两个select之间做出决定:
如果我必须build立iptables并在每台NetVM上安装Psad,Snort和其他工具,防火墙就会失去意义。
如果数据包在内核处理它们之前被转发,如果堆栈代码中的Bug被利用,唯一被攻破的机器是防火墙,它与系统保持“隔离”,并且我只需要检查一个系统,大多数备份/维护/重新安装只有一个虚拟机在错误的情况下, NetVMs和防火墙虚拟机可以使用一个最小的内核为他们的特定范围。
这也与我无法控制一台或多台NetVM的情况有关,我不能指望这台机器是干净的,或者做了适当的过滤。
硬件设备如何处理这种情况?
听起来就像你需要研究一般的networking,尤其是在你的虚拟机环境中的networking安全和虚拟networking。
这听起来像你不想在你的虚拟机主机上使用防火墙,因为你担心这个代码中可被利用的错误会让整个虚拟机环境变得脆弱。 是对的吗? 这听起来很尴尬,因为无论如何,任何数据包都必须通过VM主机。
这听起来像是你想让一个只有工作的虚拟机成为防火墙,并且你希望与外部的所有连接都通过它,包括连接到VM主机。
我这样做的方法是,在VM主机上运行一个简单的防火墙,并在其他主机上运行任何其他工具,使用端口镜像或类似的需要。
硬件等同于互联网< – >开关< – >防火墙< – >开关< – >电脑。 或者那不是你所问的?
您可以通过将硬件NIC连接到虚拟网桥,而不是将VM主机连接到该网桥,然后将防火墙连接到该网桥,制作第二个内部虚拟网桥,以及连接防火墙,所有其他VM和VM主持人。 你可以用“桥”代替你在环境中使用的任何虚拟交换机,networking,集线器等等。
我所看到的一个担忧是可能发生自我拒绝服务攻击。 你真的想要一些反向频道访问,所以你不要locking自己。
而且,这些都是在VM主机上运行的软件,所以额外的复杂性可能比您要避免的风险更糟糕。
(稍后添加)
我把所有主机上的防火墙。 我试图设置一些假设,坏人已经在我的本地networking中。 我使用自动化(傀儡,ansible,盐),所以它真的不是一个头痛的问题。
(回到原来的)
最后,互联网是一个巨大的混乱球,它总是会攻击你。 检测攻击者并积极防御攻击者只是非常有用。 如果因为发送攻击而阻止IP,请记住,IP可能是一个NAT,也可以为用户提供服务。
攻击是互联网的天然特征,就像树林里的熊一样。 防守熊的方法是确保你的食物真的很好,而不是用枪熬夜。 防御互联网的方法是保持你的软件修补,你的防火墙健全,你的用户受过教育等,而不是主动回应攻击者。