web-dev-qa-db-ja.com

OpenVPNのLinux IP転送-ファイアウォールの設定は正しいですか?

LinuxマシンでOpenVPNを実行しています。 VPNサーバーにはパブリックIPアドレス(x.x.x.x)があり、VPNクライアントには10​​.8.0.0\24の「tun」デバイスのアドレスが割り当てられています。 NATマスカレード10.8.0.0\24をパブリックIPアドレスにマスカレードするIPTablesルールがあります。

VPNサーバーを実行するには、IP転送を有効にする必要がありました(そのため、net.ipv4.conf.default.forwarding = 1を設定しました)。

...言い換えれば、これはOpenVPNチュートリアルが言うべきことであり、特別なトリックはありません。

これはすべて機能しますが、転送を有効にする部分が心配です。 I thinkマシンは任意のIPアドレスから任意のIPアドレスにパケットを転送しますが、これは適切ではないようです。公的にアクセス可能なIPを持っているので、これは特に悪いです。

不要な転送動作を制限するファイアウォールルールの提案はありますか?どんな答えでも、FORWARDチェーンの1つ以上のIPTablesルールになると思いますが、これが私が行き詰まっているところです。

ありがとう!

4
jesse

転送テーブルにこれらのルールを使用する場合は、問題ありません。

-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 

転送トラフィックのデフォルトの拒否を削除し、上記の3つのルールのそれぞれの前に「iptables」を追加します。

6

以下は、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のことを行います。

0
pjz