结合使用OpenVPN和iptables

假设有三个networking,WAN,LAN-A和LAN-B。 在这之间,有一个防火墙服务器将networking彼此连接起来。 iptables确保以下事情:

  • 外部WAN用户无法访问两个本地networking
  • LAN-A中的用户可以通过防火墙访问LAN-B,但是…
  • LAN-B中的用户不能访问LAN-A

防火墙机器使用iptables进行路由和过滤,同时作为OpenVPN服务器。

我希望外部用户通过VPN连接到LAN-A和LAN-B。 第一个想法是允许防火墙的tun0接口通过eth1和eth2(eth0用于互联网连接)build立到LAN-A和LAN-B的连接。

一个理论上的问题是:仅允许通过eth1连接到LAN-A的VPN连接是否足够,并省略访问LAN-B的显式规则? 根据以上所述,如果您在LAN-A中,则可以访问LAN-B,因此我不确定是否需要允许tun0访问LAN-B。

第二个问题:是直接连接三个networking的一部分还是在机器内部隔离?

由于您的OpenVPN将驻留在路由器/防火墙上,因此仅允许从VPN到LAN-A的访问是不够的。 当连接到OpenVPN的用户想要访问LAN-B时,他将把数据包发送到LAN-B中的IP地址。 路由器/防火墙机器上的数据包将注定位于接口eth2之后的IP(假设eth1连接到LAN-A,eth2连接到LAN-B)。 如果您不允许来自tun0的stream量通过eth2,那么这些数据包将在防火墙中丢弃。 根本没有必要去LAN-A。

关于你的第二个问题 – tun0将成为三个networking的一部分 – 例如:LAN-A的所有计算机将能ping通tun0地址,并且能够访问连接到OpenVPN的计算机 – 除非你过滤该stream量。 同样适用于LAN-B。