Tomato デュアル VLAN (そのうちの 1 つは VPN トンネル化されています)

Tomato デュアル VLAN (そのうちの 1 つは VPN トンネル化されています)

Tomato を使って、2 つの Wi-Fi SSID で動作する自宅ネットワークを設定しようとしています。私のルーターはデュアルバンドの NETGEAR NIGHTHAWK ルーターで、これまでのところ Tomato は問題なく動作しており、VPN 機能も同様です。唯一の欠点は、VPN がアクティブになっているとき (Tomato インターフェイスから開始を選択したとき)、設定した両方の SSID に VPN トンネルが適用されることにあります。VPN をこれらの SSID の 1 つだけにだけ適用する方法はないでしょうか。そうすれば、ワイヤレス ネットワークを変更することで、ルーターで実行されている VPN トンネルの一部になることができます。

これは可能ですか?

答え1

私は最近、Tomato (shibby) v138 の自宅ネットワークにこれと似たものを実装しました。図を以下に示します。 トマトLAN図

VPN の設定に入る前に、最初は 2.4GHz と 5GHz の両方のネットワークを同じ SSID (ここでは「パブリック」と呼ぶ) に設定していました。内部ネットワークは、デバイスに 192.168.1.2 ~ 254 の範囲のアドレスを割り当てました。これは、図の上半分に表示されているものです。

VPN 経由でルーティングされた新しいサブネットを追加するために行った変更は次のとおりです。

  1. 基本/ネットワーク/LAN、"br1" という名前の新しいブリッジを追加しました。IP アドレス 192.168.2.1、ネットマスク 255.255.255.0、DHCP 有効、IP 範囲 192.168 を指定しました。2.2-254.
  2. 高度/仮想ワイヤレス2.4GHz と 5GHz のインターフェース用に、それぞれ 2 つの新しい仮想ワイヤレス インターフェース wl0.1 と wl1.1 を追加しました。両方とも新しいブリッジ「LAN1 (br1)」に割り当てられています。両方に同じ新しい SSID (例: 「private」) を割り当てました。必要に応じて、パブリック ネットワークとは異なるパスワードを指定することもできます。
  3. VPN トンネリング/OpenVPN クライアント/基本、VPNクライアントを設定しました(私のVPNプロバイダーはPrivate Internet Accessなので、このガイド)。また、「WAN で起動」も有効にしたので、自動的に起動します。
  4. VPN トンネリング/OpenVPN クライアント/高度「リダイレクト ゲートウェイを無視」オプションを設定して、クライアントがすべてを VPN にルーティングしないようにします。
  5. VPN トンネリング/OpenVPN クライアント/ルーティング ポリシー「VPN 経由でリダイレクト」をチェックし、タイプが「送信元 IP」で値が「192.168.2.0/24」の行を追加して、新しいサブネット上のすべてのホストが VPN 経由でルーティングされるようにしました。

その時点で、VPN クライアントを起動し、ワイヤレス デバイスを選択して「プライベート」ネットワークに接続し、インターネットに接続された IP が VPN の背後にあることを確認してから、「パブリック」に接続し、地理的制限エラーが発生することなく Netflix/Amazon Prime ビデオをストリーミングできます。

これで、各デバイスを必要に応じていずれかの SSID に接続するように設定できます。我が家では、Netflix をテレビにストリーミングするメディア ストリーマーはパブリック ネットワーク上にとどまっています。携帯電話とラップトップはプライベート ネットワークに接続しています。ほとんどの場合、どちらか一方を選択する必要があります。デバイスがどちらか一方に勝手に自動接続されることは望ましくありません。

オプション

有線接続: 物理イーサネットポートをVPN経由で接続したい場合は、新しいVLANを追加できます。アドバンス/VLANそして、それを新しいブリッジ (br1) に割り当てます。この時点で、必要に応じて、ルーターの 1 つ以上の物理イーサネット ポートをセキュア VLAN に移動できます。私は移動しなかったため、ワイヤレス クライアントのみがプライベート サブネットに参加できます。

内部ルーティング: 上記の手順を実行すると、パブリック ネットワークとプライベート ネットワーク上のクライアントが相互に通信できないことがあります。上記のように VPN クライアントのルーティング ポリシーを設定すると、次のルールが追加されます。

iptables -t mangle -A PREROUTING -s 192.168.2.0/24 -j MARK --set-mark 311

tomato のファイアウォール スクリプトに追加します。これにより、192.168.2.0/24 ネットワークから発信されるすべてのパケットがマークされ、マーク 311 の付いたものはすべて VPN 経由でルーティングされます。つまり、"パブリック" サブネット (192.168.1.0/24) 上のデバイスは、内部ネットワーク経由で "プライベート" サブネット上のデバイスと通信できません。要求は通過しますが、応答は VPN に転送されて失われるためです。私の場合は、プライベート ネットワーク上のサーバーからファイル共有にアクセスできるようにしたかったので、パブリック ネットワークに送信する必要があるものはすべてマークをクリアすることにしました。そのためには、次の行を追加します。

iptables -t mangle -A PREROUTING -s 192.168.2.0/24 -d 192.168.1.0/24 -j MARK --set-mark 0

管理/スクリプト/ファイアウォールプライベート ネットワークからルーターに転送する予定のポートに対しても同様のルールを追加できます。

フェイルセーフ: 「キルスイッチ」とも呼ばれるこのスイッチに、いくつかの追加ルールを追加しました。管理/スクリプト/ファイアウォールこれらは、プライベート ネットワークから保護されていない WAN (vlan2) へのあらゆるアクセスを防止するためのものです。つまり、何らかの理由で VPN がダウンした場合でも、プライベート ネットワークに接続しているクライアントが誤って保護されていない WAN インターフェイスを介して通信することはできません。

iptables -I FORWARD -s 192.168.2.0/24 -o vlan2 -m state --state NEW -j REJECT --reject-with icmp-host-prohibited 
iptables -I FORWARD -p tcp -s 192.168.2.0/24 -o vlan2 -m state --state NEW -j REJECT --reject-with tcp-reset

関連情報