VPNに接続しているコンピューターがあります。マシンがVPNに再接続できない場合は、ネットワークをオフラインのままにしておく必要があります。通常の接続を使用しないでください。 VPNのものだけ。
この動作を設定する方法はありますか?
マシンはローカルで使用されるため、ネットワークなどからアクセスする必要はありません。
クライアントOS:Windows 7 Professional x64 SP1
これは、VPNプロバイダーのIPおよび/またはTCPポート1723およびUDPポート47への接続のみを許可するようにファイアウォールを構成することで実現できます。
複数のVPNプロバイダーを使用している場合は、ポートベースのブロッキングが簡単です。そうでない場合は、IPベースのブロッキングの方が安全です。いずれにせよ、両方を使用できます。
たとえば、次のようにWindowsファイアウォールを構成できます。
superfreevpn.com
(69.60.121.29
)を使用していると仮定しましょう。
インターネットとVPNに接続します。
押す Win + Rcontrol /name Microsoft.NetworkandSharingCenter
を実行します。
アクティブな接続の表示で、リンクホーム/職場/パブリックネットワークをクリックします)インターネット接続の下で、パブリックネットワークを選択します。
アクティブな接続の表示で、リンクホーム/職場/パブリックネットワークをクリックします)VPN接続の下で、Work networkを選択します。
押す Win + RWF.msc
を実行します。
ローカルコンピュータのセキュリティが強化されたWindowsファイアウォールで、アクションをクリックしてから、 プロパティ、プライベートプロファイルタブに移動し、以下を設定します。
Firewall state: On (recommended)
Inbound connections: Block all connections
Outbound connnections: Allow (default)
アウトバウンドルールで、アクションをクリックしてから新しいルール...そして以下を選択します:
Port
TCP
Specific remote ports: 1-1722, 1724-65535
Block the connection
Public
Public TCP
アウトバウンドルールで、アクションをクリックしてから新しいルール...そして以下を選択します:
Port
UDP
Specific remote ports: 1-46, 48-65535
Block the connection
Public
UDP
アウトバウンドルールで、アクションをクリックしてから新しいルール...そして以下を選択します:
Custom
All programs
Any
Any IP address
These IP adresses
Add
This IP address range -> From: 0.0.0.0 To: 69.60.121.28
Add
This IP address range -> From: 69.60.121.30 To: 255.255.255.255
Block the connection
Public
Non-VPN
VPN以外のDNSクエリをすべてブロックしたため、superfreevpn.com
は解決されません。
ホスト名をIPに置き換えてVPN接続を変更するか、%windir%\system32\drivers\etc\hosts
に次の行を追加します。
69.60.121.29 superfreevpn.com
Dennisによる優れた回答へのわずかな追加:インターネット接続がDHCPを使用するように構成されている場合(ほとんどの場合)IPアドレスを取得できない DHCPサーバーアドレスおよびブロードキャストアドレス255.255.255.255を除外します。
ipconfig /all
を実行して(DHCPは引き続き機能します)、DHCPサーバーのアドレスを見つけます。デニスの例のように、それが192.168.2.1
であり、VPNサーバーが69.60.121.29
であるとしましょう。次に、次のIP範囲のブロッキングを構成します。
From 0.0.0.0 to 69.60.121.28
From 69.60.121.30 to 192.168.1.255
From 192.168.2.2 to 255.255.255.254
一時的な回避策として、すべてをブロックするアウトバウンドファイアウォールルールを無効にすることもできます。これは、IPアドレスをすでに「紛失」していて、DHCPサーバーのアドレスがわからない場合に便利です。
(クレジットto Marcks Thomas for original answer 。他のユーザーが同じ問題に遭遇した場合に備えて、この質問に追加します。)
別の無関係な追加:インターネット全体を自分のネットワークとして構成した場合、上記の手順に従う場合は、ネットワーク検出を無効にするおよびホーム/職場ネットワークのファイルとプリンターの共有を行うことをお勧めします。 「仕事」ネットワーク。これは、ネットワークと共有センター、高度な共有設定の変更で実行できます。
代替回答-ルートを使用
実際のインターネット接続を介してデフォルトルートを削除し、VPNサーバーにのみルートを追加できます。これは、ある意味でWindowsファイアウォールよりも単純ですが、落とし穴があります。Windowsは、ネットワークに接続するたびにデフォルトルートを再度追加します。タスクスケジューラを使用すると、接続するたびに変更を加えることができます。
素晴らしいボーナスは、ユーザー名とパスワードが保存されていれば、ネットワークに接続するたびにVPNに自動的に接続するもできることです。
まず、次のようなバッチファイルを作成します。
@ECHO OFF
REM IP address of the real gateway you use to connect to the Internet
SET REAL_GATEWAY_IP=192.168.2.1
REM (External) IP address of the VPN server
SET VPN_SERVER_IP=69.60.121.29
REM Delete default route via the real gateway
route delete 0.0.0.0 %REAL_GATEWAY_IP%
REM Add a route to the VPN server via the real gateway
route add %VPN_SERVER_IP% mask 255.255.255.255 %REAL_GATEWAY_IP% metric 1
REM To connect to the VPN (optional):
rasphone -d "My VPN connection name"
次に、スケジュールされたタスクをタスクスケジューラに追加して、次のように構成されたトリガーでバッチファイルを実行します。
[条件]タブで[コンピューターがAC電源になっている場合にのみタスクを開始する]チェックボックスをオフにし、[全般]タブで[ユーザーがログオンしているかどうかに関係なく実行する]を選択することもできます。
その後、ネットワークに接続するたびにルートを更新する必要があり、route print
を実行してルートを確認できます。実際のゲートウェイを介した0.0.0.0へのルートはありません。