use iptables to manage firewalling of ubuntu 16.04 bridge on VMware

背景: IDC分配了大量IP地址,但是自己并不能做网关,但我又不能把所有的机器全部直接置于外网,增加管理成本。
方案:
使用ubuntu 16.04做防火墙(FW)
外网(internet)只连接FW的ens160。
增加DMZ网络(DMZ),所有的需要外网IP的机器和FW的ens192全部连接到DMZ。

在FW中安装bridge-utils并桥接ens160与ens192,不知道怎么桥接的请直接参考这里

接下来就是在VMware上启用DMZ和internet的混杂模式(Promiscuous Mode)。记住,两个网络的混杂模式都必须开启。不知道怎么开启混杂模式的可以看这里。这里没必要开启整个vSwitch的混杂模式,只需要开启DMZ和internet端口组就足够了。

到了这步,你的桥接就做完了。这个时候,你DMZ里面所有的机器都有完全的外网访问权限,你在iptables里面设置的规则完全限制不了DMZ的网络。接下来就是启用iptables对bridge的限制。

运行下面命令启用bridge netfilter模块

modprobe br_netfilter

修改 /etc/modules-load.d/modules.conf,在最后加上下面一行,这样机器在重启后也会自动加载bridge netfilter模块

br_netfilter

再修改 /etc/sysctl.conf,在文件的最后添加下面几行:

###################################################################
# For iptables to manage bridge firewalling
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1

最后,运行下面命令使配置生效

sysctl -p

现在,就可以使用iptables对DMZ进行管理了。
不过,我目前还没摸清这里面进出端口(iptables里面的-i和-o)的规则,只能直接使用IP了。

VMware ESXi的OpenVPN的Bridge模式

参考http://www.jeremycole.com/blog/2010/03/11/openvpn-bridge-under-vmware-esxi/

前段时间在ESXi里面架了一个小防火墙,用openvpn时想使用bridge模式直接拨入内网,可是设置好之后,无论如何VPN客户端都不能与内网机器进行通讯。查了下原因,原来是ESXi的网络promiscous模式问题,ESXi虚拟交换机在默认情况下会丢失所有的promiscous包。

要解决很简单,用vSphere Client连接到ESXi,然后在”Configuration”标签中选中”Networking” ,然后再选中对应的虚拟交换机的”Properties…”。在跳出来的对话框中,选中”vSwitch”,然后点”Edit”。最后在”Security”标签中,把”Promiscuous Mode”改为”Accept”。

之后,OpenVPN的桥接模式就会生效了~~~