我在 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 操作。