web-dev-qa-db-ja.com

ショアウォールを備えたブリッジとOpenVPN

このシナリオとそれがすべて正常に機能しているのですが、Shorewallを構成したいのですが、それができません。

私のインターフェースは次のとおりです。

br0 (bridge of eth0)
tun0 (OpenVPN)
vnet* (each one of bridged interfaces with public IP's)


Public Main IP: 188.165.X.Y
OpenVPN IP's: 172.28.0.x
Bridge: public ip's

だから、私はshorewallの次の構成を持っています:

/ etc/shorewall/zones

#ZONE   TYPE        OPTIONS     IN          OUT
#                               OPTIONS     OPTIONS
fw      firewall
inet    ipv4
road    ipv4

/ etc/shorewall/interfaces

#ZONE   INTERFACE   BROADCAST       OPTIONS
inet    br0         detect          routeback
road    tun+        detect          routeback

/ etc/shorewall/policy

#SOURCE DEST    POLICY      LOG LIMIT:      CONNLIMIT:
#               LEVEL   BURST       MASK
$FW  all     ACCEPT
inet    $FW  DROP       info
road    all     DROP
inet    road    DROP

/ etc/shorewall/tunnels

#TYPE           ZONE        GATEWAY     GATEWAY
#                                       ZONE
openvpnserver:1194          inet      0.0.0.0/0

問題は、ショアウォールが実行されていても、ブリッジの背後にある仮想マシンにpingまたは接続できることです。

3
blacksoul

ブリッジのメンバーであるインターフェイスをファイアウォールで保護するのではなく、ブリッジインターフェイス自体のみを使用する必要があります。ブリッジはレイヤー2ドメインですが、iptablesはレイヤー3ファイアウォールであるため、ホストがレイヤー3でパケットをルーティングしている場合にのみ機能します。

あなたの場合、br0tun+eth0のメンバーであるため、Shorewallはvnet+br0についてのみ知っている必要があります。 VMとインターネット間のトラフィックを監視する場合は、VMをLANにブリッジしないように構成を変更する必要があります(つまり、eth0からbr0を取り出します)。

4
mgorven