Linux マシンで OpenVPN を実行しています。VPN サーバーにはパブリック IP アドレス (xxxx) があり、VPN クライアントには 10.8.0.0\24 の "tun" デバイス上のアドレスが割り当てられています。10.8.0.0\24 をパブリック IP アドレスに NAT マスカレードする IPTables ルールがあります。
VPN サーバーを実行するには、IP 転送を有効にする必要がありました (そのため、net.ipv4.conf.default.forwarding=1 を設定しました)。
...言い換えれば、これは OpenVPN チュートリアルで説明されているとおりの手順であり、特別なトリックは一切ありません。
すべてうまくいきましたが、転送を有効にする部分が心配です。考えるマシンは、任意の IP アドレスからのパケットを任意の IP アドレスに転送するようになりましたが、これは適切ではないようです。パブリックにアクセス可能な IP を持っているため、これは特に悪いです。
不要な転送動作を制限するためのファイアウォール ルールの提案はありますか? 答えは FORWARD チェーン内の 1 つ以上の 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
転送トラフィックのデフォルトの拒否を削除し、上記の 3 つのルールの前にそれぞれ「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 処理を実行します。