web-dev-qa-db-ja.com

VPNがDD-WRTルーターと個別のVPN /ダイレクトクライアントで停止したときにインターネットアクセスをブロックするにはどうすればよいですか?

DD-WRT3.0ルーターを使用してopenVPN経由で接続しています。 LANでは、192.168.1.50はVPNを通過してはならないデバイスです。

192.168.1.50がVPNを通過しないようにファイアウォールを設定するにはどうすればよいですかおよび他のすべてのIPを作成する方法WAN接続を失いますか?

OR

2つのサブネットを作成します。1つはVPN(wi-fiデバイス)を介して、もう1つは直接(有線デバイス)および VPNサブネットにWAN接続を失う

私はどちらの設定も好みません。簡単なものは何でも。

このルールは機能しませんでした(最初のシナリオの場合):

iptables -I FORWARD ! -o tun1 -s 192.168.1.50 -j DROP

ルーターがゲートウェイモードで使用されているルートテーブルは次のとおりです。

enter image description here

1
Gaia

DD-WRTフォーラム の誰かが、これを可能な限り最良の(最も簡単な)方法で解決するのを手伝ってくれました。

ポリシーベースのルーティングは、問題の選択的なVPNトンネリング部分を実現するための適切な方法です。これは、OpenVPN接続の詳細を指定するフィールドの1つです。ここに、VPNを通過させたいデバイスを入力する必要があります。 DD-WRTのバグのため、ルーター自体のIPをこのリストに含めることができないことに注意してください。

だから私は以下を設定します:

  • DHCPは1から127までディッシュします。
  • VPNに必要なすべてのデバイスには、127を超える静的IPが割り当てられます
  • VPNを通過してはならないデバイスは、静的IP <128を取得するか、DHCPIPを受信する必要があります。これは<128になります。
  • ポリシーベースのルーティングCIDRは192.168.1.128/25です(つまり、IP> 127のすべてのデバイスをVPNに接続します

ここで、問題の2番目の部分、つまり拒否WAN VPNがオフ/失敗したときにVPN上にあるはずのデバイスへのアクセスは、ファイアウォールの保存セクションに次のコマンドを入力することで実行できます。

iptables -I FORWARD -s 192.168.1.128/25 -o $(nvram get wan_iface) -m state --state NEW -j REJECT --reject-with icmp-Host-prohibited 
iptables -I FORWARD -p tcp -s 192.168.1.128/25 -o $(nvram get wan_iface) -m state --state NEW -j REJECT --reject-with tcp-reset

上記のコマンドに関する2つの注意事項:

  1. 前者は後者よりも少し使いやすいため、REJECTの代わりにDROPを使用します。 DROPは応答せず、クライアントにタイムアウトを要求します。これはユーザーにとって煩わしい場合があります。対照的に、REJECTを指定すると、クライアントはすぐに終了します。
  2. チェックされる接続の状態はNEWです。 NEWをチェックすることで、これらのデバイスがアウトバウンド接続を開始するのを防ぎますが、リモートでアクセスしてWAN(少なくともVPNがダウンしている場合)を介して応答を送信するのを防ぎません。リモートアクセスを防止し、それらのルールから--state NEWを削除する必要があります。
1
Gaia

通常のWAN上のクライアントのすべてのアウトバウンドトラフィックをブロックするには、nvram変数get wan_ifaceを使用できます。

IPV4_WAN=$(nvram get wan_iface)
iptables -I FORWARD -s 192.168.x.x/24 -o "$IPV4_WAN" -j DROP

特定のIPv4サブネットを定義する必要があります。LAN範囲全体をブロックしないように注意してください。

これにより、ルーターを通過するアウトバウンドトラフィックがブロックされます。VPNインターフェイス上にない場合は、外部IPv4アドレスに対してtracerouteを実行することで確認できます。最初のホップの後に、トラフィックがドロップします。

あなたの特定のIPv4クライアントについて、私は少し混乱しています。 VPNに接続するクライアントのIPv4サブネットを作成し、その範囲に基づいて192.168.1.50クライアントがその中にないことを確認できませんか?次に、ACCEPTルールを追加して、WANを通常どおりに使用できるようにしますか?

iptables -I FORWARD -s 192.168.1.50 -o "$IPV4_WAN" -j ACCEPT
1
James White