在 AWS EC2 中,用户可以设置安全组它的工作原理类似于防火墙,通常,防火墙在网关/nat 服务器后面工作,但是,我发现 EC2 中的防火墙也在 LAN 中工作。
例如,用户有两个实例,,,A: 10.108.33.13/26
根据B: 10.108.33.18/26
和ip
,netmask
它们位于同一个LAN中,但是,如果我将这些实例放在不同的安全组(并且规则阻止来自不同 sgs 的访问),防火墙对它们起作用。
我的问题是,我认为防火墙仅在第 3/4 层起作用,即 IP 和端口所在的层。在 LAN 中,主机之间的流量通过第 2 层(通过 MAC 地址)。如何在 LAN 中实现这样的防火墙?
PS:我检查了每个主机上的 iptables 并且确定它已经停止了。
答案1
一大堆更先进的 L3 交换机支持ACL每个数据包/帧在进入时都会进行检查 - 无论它是否要进入交换机的路由引擎。这样,可以相当容易地实现对同一广播域内主机的限制,但应该注意的是,ACL 的处理通常不像您对状态数据包过滤器的期望那么复杂(主要是因为处理逻辑是在电路而不是软件中实现的)。
话虽如此,亚马逊正在利用 Xen 进行虚拟化因此他们会大量使用虚拟交换/Linux 桥接,并且可能会在软件层内实现过滤 -ebtables能够在桥接接口上进行 IP 过滤,是进行底层处理的良好候选者。
答案2
最近,我一直在阅读 OpenStack nova 实现。
然后我发现,如果libvirt
使用的话,上面的防火墙可以很容易地利用已经实现的nwfilter
机制libvirt
来实现。
详细信息请访问http://libvirt.org/firewall.htmlebtables
,它解释了它是如何实现的,并且正如@syneticon-dj提到的,它使用了、iptables
和的组合ip6tables
。