web-dev-qa-db-ja.com

VPNが切断されたときにVPNがIPを公開しないようにするにはどうすればよいですか?

仮想マシン(Windows XP)のすべての接続でOpenVPNサーバーのみを使用したいのですが、OpenVPNへの接続が失われるとすぐに、VMのすべてのインターネット接続が失われます。当然、VM(Windows 7)のホストはVPNに接続したり、実際のインターネットから切断したりすることはありません。

これは、Windows XPマシンがOpenVPNサーバーに接続することのみを許可するwindowsrouteコマンドで実行できると確信しています。1.2.3.4

私はこのガイドに従いました: http://community.spiceworks.com/how_to/show/1334 しかし、私は彼らの例を機能させることさえできません。

コマンドroute printを発行してルートを構成します。

ルーティングpre-openVPN接続:

===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1   192.168.1.108       30
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.1.0    255.255.255.0    192.168.1.108   192.168.1.108       30
    192.168.1.108  255.255.255.255        127.0.0.1       127.0.0.1       30
    192.168.1.255  255.255.255.255    192.168.1.108   192.168.1.108       30
        224.0.0.0        240.0.0.0    192.168.1.108   192.168.1.108       30
  255.255.255.255  255.255.255.255    192.168.1.108   192.168.1.108       1
  255.255.255.255  255.255.255.255    192.168.1.108               3       1
Default Gateway:       192.168.1.1
===========================================================================
Persistent Routes:
  None

openVPN接続後(1.2.3.4が私の実際のVPN IPを置き換えたことに注意してください):

===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0        128.0.0.0         10.8.0.5        10.8.0.6       1
          0.0.0.0          0.0.0.0      192.168.1.1   192.168.1.108       30
         10.8.0.1  255.255.255.255         10.8.0.5        10.8.0.6       1
         10.8.0.4  255.255.255.252         10.8.0.6        10.8.0.6       30
         10.8.0.6  255.255.255.255        127.0.0.1       127.0.0.1       30
   10.255.255.255  255.255.255.255         10.8.0.6        10.8.0.6       30
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
        128.0.0.0        128.0.0.0         10.8.0.5        10.8.0.6       1
          1.2.3.4  255.255.255.255      192.168.1.1   192.168.1.108       1
      192.168.1.0    255.255.255.0    192.168.1.108   192.168.1.108       30
    192.168.1.108  255.255.255.255        127.0.0.1       127.0.0.1       30
    192.168.1.255  255.255.255.255    192.168.1.108   192.168.1.108       30
        224.0.0.0        240.0.0.0         10.8.0.6        10.8.0.6       30
        224.0.0.0        240.0.0.0    192.168.1.108   192.168.1.108       30
  255.255.255.255  255.255.255.255         10.8.0.6        10.8.0.6       1
  255.255.255.255  255.255.255.255    192.168.1.108   192.168.1.108       1
Default Gateway:          10.8.0.5
===========================================================================
Persistent Routes:
  None
2
ParoX

試行錯誤の末、問題の解決策を見つけました。

実際のIPを公開しているVPNからの偶発的またはランダムな切断をすべて防ぐには、VPN IPを除いて、すべての宛先を偽のゲートウェイを経由するようにルーティングする必要があります。

ネットワーク/コンピューターの専門家へ:

次のことを前提としています。

通常のデフォルトゲートウェイ:192.168.1.1
未使用のプライベートIP:192.168.1.222
OpenVPNサーバーIP:1.2.3.4

Cmdの使用:

route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.222 metric 2
route -p add 1.2.3.4 mask 255.255.255.255 192.168.1.1 metric 1

次に、アダプタに静的IPアドレスを指定し、未使用のプライベートIPを偽のデフォルトゲートウェイとして使用して、DCHPを無効にします。したがって、OpenVPN以外のすべての接続をブロックします


より段階的なアプローチが必要な場合:

最初に行う必要があるのは、Windowsキー(左のCtrlのすぐ右にあるボタン)を押しながらコマンドプロンプトを開き、rを押すと、ダイアログボックスが表示されます。 「cmd」と入力してEnterキーを押します。

いくつかの書き込みでブラックボックスが表示されます。これはコマンドプロンプトと呼ばれ、これ以降に発行されるすべてのコマンドはこのブラックボックスで実行されます。

まず最初に、偽のゲートウェイがネットワークインターフェイス内にある必要があることを理解します。 「インターフェース」とは何ですか?この場合、コンピューターに割り当てられたのはプライベートIPであり、「pre-OpenVPN」テーブルが127.0.0.1または192.168.1.108のいずれかであるとすると2つのオプションのようです。経験から、127.0.0.1はループバックIPであることがわかっているので、それを絞り込みました。ただし、IPアドレスがわからない場合は、Windowsキー+ rをクリックして実行し、cmdと入力して、[OK]を押すことができます。ブラックボックスが表示され、CMDコマンドipconfigを入力すると、次のような出力が得られます。

Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.1.108
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.1.1

そこでは特に私のIPアドレスを教えてくれるので、「インターフェース」は192.168.1.108なので、偽のゲートウェイは192.168.1.100から192.168.1.254の範囲にある必要があり、すでに使用することはできません。

たとえば、IP 192.168.1.101を使用したいとします。使用されているかどうかを確認するには、コマンドping 192.168.1.101を発行し、次のような応答があった場合は次のようにします。

Pinging 192.168.1.101 with 32 bytes of data:

Reply from 192.168.1.101: bytes=32 time=1ms TTL=64
Reply from 192.168.1.101: bytes=32 time=1ms TTL=64
Reply from 192.168.1.101: bytes=32 time=1ms TTL=64
Reply from 192.168.1.101: bytes=32 time=1ms TTL=64

Ping statistics for 192.168.1.101:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 1ms, Average = 1ms

これは、IP 192.168.1.101が現在使用されており、私はそれを偽のゲートウェイにcannot使用していることを示しています。そこで、IP 192.168.1.222を試してみることにし、同じpingコマンドping 192.168.1.222を発行します。応答が次の場合:

Pinging 192.168.1.222 with 32 bytes of data:
Reply from 192.168.1.100: Destination Host unreachable.
Reply from 192.168.1.100: Destination Host unreachable.
Reply from 192.168.1.100: Destination Host unreachable.
Reply from 192.168.1.100: Destination Host unreachable.

Ping statistics for 192.168.1.222:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

そうすれば、現在使用されておらず、偽のゲートウェイに使用できるプライベートIPを正常に見つけることができます。残りの返信では、偽のゲートウェイとして192.168.1.222を使用します。

次のステップは、実際のゲートウェイではなく、偽のゲートウェイを通過するすべての宛先試行を送信することです。これを行うには、次のコマンドを発行します。

route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.222 metric 2

0.0.0.0 mask 0.0.0.0は、「すべての単一アドレス」がゲートウェイ192.168.1.222に送信されることを意味します。 metric 2部分はこのルートに2の優先度を割り当てています1の優先度(メトリック)が-の優先度よりも優先されるため、これは重要です。 2

メトリックを2にすると、DHCPによって割り当てられたゲートウェイ(私にとっては30)よりも優先度が高くなります。これは、すべての宛先が実際のゲートウェイではなくゲートウェイ192.168.1.222を通過しようとし、基本的にすべての接続をルーティングすることを意味します。あなたはどこにも行かないようにしようとします。

ipconfigコマンドを再度発行することにより、これが正しく行われたことを確認できます。

Ethernet adapter Local Area Connection:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.1.108
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.1.222
                                            192.168.1.1

今回は、デフォルトゲートウェイの下に1つだけでなく2つのIPアドレスがリストされていることに注意してください。また、偽のゲートウェイが最初にリストされ(上)、実際のゲートウェイが2番目にリストされていることに注意してください。

これは、OpenVPNサーバーIPに接続しようとすると、この例では1.2.3.4が偽のゲートウェイ(192.168.1.222)にルーティングされ、接続できないことを意味します。私たちはそれを望んでいません。したがって、2よりも高い優先度(低いメトリック)を持つ別のルートを作成する必要があります。つまり、OpenVPN IPに接続するときに、実際のゲートウェイ(192.168.1.1)に接続する必要があります。

最初に実行したいのは、OpenVPNサーバーが何であるかを確認することです。これは、pingコマンドを再度使用することで実行できます。通常、VPNプロバイダーは接続するためにus.bestvpn.comなどのアドレスを提供します。このURLがエイリアスであるIPアドレスを特定する必要があります。これは、pingコマンドを使用して行うのが最適です。

ping us.bestvpn.com

応答は次のようになります

Pinging us.bestvpn.com [1.2.3.4] with 32 bytes of dataここで、括弧内のIPアドレスはOpenVPNサーバーへのIPアドレスです。 VPNサーバーのIPとして1.2.3.4を使用します。

次に、このIPが実際のゲートウェイにルーティングされるように設定する必要があります。これを行うには、次を発行します。

route -p add 1.2.3.4 mask 255.255.255.255 192.168.1.1 metric 1

メトリック1を使用すると、偽のゲートウェイルートに指定したメトリック2よりもルートが優先されます。 mask 255.255.255.255は正確なIP1.2.3.4を意味することに注意することが重要です-これは私の場合に当てはまりますが、マスク255.255.255.0を作成して、範囲内のすべてのIPを本質的に通知することができます。 1.2.3.0から1.2.3.254は、実際のゲートウェイにルーティングされます。これは、OpenVPNプロバイダーがさまざまなIPを使用して接続する場合に役立ちます。

これで、通常のようにVPNに接続できるようになります。接続すると、すべてのインターネットを閲覧できるようになります。切断すると、接続されていないように見えることに気付くでしょう。その後、REAL IPを使用すると、突然接続されます。なぜこれをしたのですか?

さて、デフォルトでは、DCHPがゲートウェイが何も進まないことに気付いたとき、何秒も経った後、セカンダリゲートウェイ、この場合は実際のゲートウェイを試行しようとすることを理解しています。

これを防ぐには、静的IP、サブネットマスク、およびゲートウェイをインターネットプロパティに割り当てて、DCHPをオフにする必要があります。 XP、Vista、および7 でそれを行う方法に関するステップバイステップの画像チュートリアル。

それが完了したら、VPNに再度接続し、それでも機能することを確認してから接続します。サイトに接続し、2〜3分待って、が読み込まれず、すべての設定が完了していることを確認します。

これにより、ランダムなVPN切断によって実際のIPアドレスが公開されるのを防ぐことができます。

1
ParoX

OpenVPNでのDNSとIPのリークが心配で、OpenVPNの使用中にIPとDNSのリークを防ぐ簡単で自動的な方法が必要な場合は、www.openvpnchecker.comが提供するこれら2つの簡単なツールを確認してください。

  1. OpenVPNウォッチドッグ: http://openvpnchecker.com/

  2. OpenVPNファイアウォール: http://openvpnchecker.com/firewall.htm メッセージの編集/削除

0
maggot