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
ルーターがゲートウェイモードで使用されているルートテーブルは次のとおりです。
DD-WRTフォーラム の誰かが、これを可能な限り最良の(最も簡単な)方法で解決するのを手伝ってくれました。
ポリシーベースのルーティングは、問題の選択的なVPNトンネリング部分を実現するための適切な方法です。これは、OpenVPN接続の詳細を指定するフィールドの1つです。ここに、VPNを通過させたいデバイスを入力する必要があります。 DD-WRTのバグのため、ルーター自体のIPをこのリストに含めることができないことに注意してください。
だから私は以下を設定します:
ここで、問題の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つの注意事項:
REJECT
の代わりにDROP
を使用します。 DROP
は応答せず、クライアントにタイムアウトを要求します。これはユーザーにとって煩わしい場合があります。対照的に、REJECT
を指定すると、クライアントはすぐに終了します。NEW
です。 NEWをチェックすることで、これらのデバイスがアウトバウンド接続を開始するのを防ぎますが、リモートでアクセスしてWAN(少なくともVPNがダウンしている場合)を介して応答を送信するのを防ぎません。リモートアクセスを防止し、それらのルールから--state NEW
を削除する必要があります。通常の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