![带有 iptables 和 tun 接口的 OpenVPN](https://linux22.com/image/527524/%E5%B8%A6%E6%9C%89%20iptables%20%E5%92%8C%20tun%20%E6%8E%A5%E5%8F%A3%E7%9A%84%20OpenVPN.png)
对于使用 tun 设备的 openvpn 隧道,哪些 iptables 规则允许封装的流量通过,哪些规则控制封装后的数据包?基本上,我想知道 iptables 和 openvpn 的操作顺序如何工作,以及这与链有何关系。
答案1
纯文本流量将进出 tunX 设备;您可能会发现与任何 tun 接口匹配的 iptables-i tun+
和选项对于处理该问题很有用。-o tun+
加密流量将以 UDP/TCP 形式在端口 1194 上传输,或者以您指定的其他方式在以太网接口上传输。过滤进入服务器的流量时,不要忘记允许 OpenVPN 加密数据包。
至于链,传入的加密流量被视为在 openvpn 服务器上终止,因此这是 INPUT 链;传出的加密流量被视为源自服务器,因此这是 OUTPUT 链。内部网络和接口之间传递的流量由 FORWARD 链tunX
负责。
答案2
对于通过隧道的流量,您只需设置 FORWARD 规则以允许从 tun 接口到 eth 接口的流量。例如,以下规则允许从 tun0 到特定范围的 RDP 的访问。
-A 转发 -i tun0 -p tcp --dport 3389 -d 192.168.0.0/24 -j 接受
在转发规则之后,如果您在以太网接口上有一个已建立/相关的规则,它将允许流量返回。