OpenVPN 的 Linux IP 轉送 - 防火牆設定正確嗎?

OpenVPN 的 Linux IP 轉送 - 防火牆設定正確嗎?

我在 Linux 機器上運行 OpenVPN。 VPN 伺服器具有公用 IP 位址 (xxxx),且 VPN 用戶端在「tun」裝置上指派位址 10.8.0.0\24。我有一個 IPTables 規則,用於將 NAT 偽裝 10.8.0.0\24 到公用 IP 位址。

為了讓 VPN 伺服器運行,我必須啟用 IP 轉送(因此我設定了 net.ipv4.conf.default.forwarding=1)。

……換句話說,這正是 OpenVPN 教學所說的,沒有任何花俏的技巧。

這一切都有效,但我擔心啟用轉發部分。我思考機器現在會將封包從任何 IP 位址轉發到任何 IP 位址,這似乎不合適。由於它有一個可公開訪問的IP,所以這是特別糟糕的。

是否有任何防火牆規則建議來限制不必要的轉發行為?我認為任何答案都將是 FORWARD 鏈中的一個或多個 IPTables 規則,但這就是我陷入困境的地方。

謝謝!

答案1

如果您將這些規則用於轉發表,應該沒問題。

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
-A FORWARD -j REJECT

您可以將規則放入檔案 /etc/sysconfig/iptables 中並重新啟動防火牆。對於命令列試用,首先執行以下操作

 iptables -F 

刪除轉送流量的預設拒絕,並在上述三個規則之前加上「iptables」。

答案2

以下是我在 openvpn 閘道上設定的一部分:

iptables -A FORWARD -i tun0 -o tun0 -j ACCEPT # vpn to vpn
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT # vpn to ethernet
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT # ethernet to vpn

請注意,這只是一個子集;規則的其餘部分執行標準 NAT 操作。

相關內容