数据包如何穿越防火墙上的 tun+ 适配器

数据包如何穿越防火墙上的 tun+ 适配器

我熟悉Iptables,最近想构建一个连接到openvpn服务器的状态防火墙。

如果有人愿意解释的话,例如eth0(WAN)、eth1(LAN) 和tun0(VPN) 如何在彼此之间传递数据包?

我说的是FORWARD链。我使用两个 NIC 设置防火墙没有遇到任何问题,但如果我尝试使用 OpenVPN 设置它,我就会感到困惑。

谢谢!

答案1

有两个独立的数据包流 - 一个是来自 LAN 的原始数据包,另一个是流向 WAN 的封装数据包。

例如,LAN 客户端尝试通过 VPN 访问远程主机:

  1. 原始数据包经过 FORWARD 并从 转发到eth1tun0然后由 OpenVPN 使用。
  2. OpenVPN 发送一个新的“VPN”数据包,该数据包经过 OUTPUT 并从防火墙发送到eth0

VPN 到 LAN 的回复也一样:

  1. VPN 数据包在 上接收eth0,经过 INPUT,然后被防火墙上的 OpenVPN 接收。
  2. 解封装后的“原始”数据包看起来就像是通过 接收的tun0,并再次通过 FORWARD 到达eth1

因此,就 iptables 而言,tun0它只是一个连接到另一个网络的常规网络接口 - 这与例如使用很长的电缆物理连接 eth2 没有什么不同。

相关内容