
背景
組み込みデバイスに WireGuard VPN のサポートを追加しています。ユーザーはAllowedIPs
自分で設定できるようになります。WireGuard は許可された IP を使用してホスト上のルートを設定するため、ユーザーがデバイスを隔離する (TCP 経由で接続できないようにする) ことが可能になります。これを防ぐ方法について考えていました。
潜在的な解決策
考えられる解決策の 1 つは、ホスト インターフェイスに IP ルールを追加して、インターフェイスの送信元 IP を持つすべてのトラフィックが常にそのインターフェイス経由でルーティングされるようにすることです。IP 172.17.0.2 のホスト インターフェイス eth0 が 1 つと、IP 172.22.0.4 の Wireguard インターフェイス wg0 が 1 つある場合、構成は次のようになります。
ip route add default via 172.17.0.1 dev eth0 table 1
ip rule add from 172.17.0.2 table 1
つまり、デバイスから発信された接続は通常どおりルーティングされますが、誰かが TCP (HTTP または ssh) を使用してデバイスに接続すると、応答がルーティングされる必要があります。
質問
表面的には、これは非常にエレガントなソリューションのように見えますが、これがデフォルトではないのには正当な理由があるように思えてなりません。その理由が何なのか、私はまだ考えていません。これは悪いアイデアでしょうか? デバイスに潜在的な脆弱性などを追加することになるでしょうか? デバイスの分離を回避するという私の目的を達成するための、もっと良い方法はあるでしょうか?