私は、ローカル システム上のルートを変更して、スプリット トンネリングと呼ばれる状態を実現することで、Cisco VPN クライアントを巧みに操作する方法に取り組んでいます。
VPN ネットワークの管理者の許可なしにこれを行う権利がないことは承知しており、これを使用するつもりもありません。ただし、これは Windows でのルーティングをよりよく理解するための挑戦であり、ソフトウェアのチェックボックスに頼ることはセキュリティにまったく役に立たないことを管理者に示すための概念実証にもなるかもしれません。
さあ、始めましょう。これが私が見つけたものです。すべてがプライベート ネットワーク アドレスに変更されています。シナリオは、リモート ワーカーが自分の soho ネットワーク 192.168.81.0 から作業し、cisco-vpn 経由で自分の会社ネットワーク 192.168.71.0 に接続しているというものです。この例では、cisco 構成の VPN ホストが 192.168.10.5 に変更されています。
リモート ワーカーは WLAN 経由で SOHO ネットワークに接続しており、VPN に接続していないときの通常の IP 設定は次のようになります。
Drahtlos-LAN-Adapter Drahtlosnetzwerkverbindung:
Verbindungsspezifisches DNS-Suffix: soho
Beschreibung. . . . . . . . . . . : Intel(R) Centrino(R) Ultimate-N 6300 AGN
Physikalische Adresse . . . . . . : 00-00-00-00-00-01
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
IPv4-Adresse . . . . . . . . . . : 192.168.81.105(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.81.254
DHCP-Server . . . . . . . . . . . : 192.168.81.254
DNS-Server . . . . . . . . . . . : 208.67.222.222
8.8.8.8
195.66.0.3
NetBIOS über TCP/IP . . . . . . . : Aktiviert
システム上のルーティング テーブルは予想どおり平凡なものです。
===========================================================================
Schnittstellenliste
15...24 77 03 20 82 20 ......Intel(R) Centrino(R) Ultimate-N 6300 AGN
===========================================================================
IPv4-Routentabelle
===========================================================================
Aktive Routen:
Netzwerkziel Netzwerkmaske Gateway Schnittstelle Metrik
0.0.0.0 0.0.0.0 192.168.81.254 192.168.81.105 25
127.0.0.0 255.0.0.0 Auf Verbindung 127.0.0.1 306
127.0.0.1 255.255.255.255 Auf Verbindung 127.0.0.1 306
127.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 306
192.168.81.0 255.255.255.0 Auf Verbindung 192.168.81.105 281
192.168.81.105 255.255.255.255 Auf Verbindung 192.168.81.105 281
192.168.81.255 255.255.255.255 Auf Verbindung 192.168.81.105 281
224.0.0.0 240.0.0.0 Auf Verbindung 127.0.0.1 306
224.0.0.0 240.0.0.0 Auf Verbindung 192.168.81.105 281
255.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 306
255.255.255.255 255.255.255.255 Auf Verbindung 192.168.81.105 281
===========================================================================
Ständige Routen:
Keine
VPN に接続すると、仮想ネットワーク デバイスがシステムに追加されます。
Ethernet-Adapter LAN-Verbindung 2:
Verbindungsspezifisches DNS-Suffix:
Beschreibung. . . . . . . . . . . : Cisco Systems VPN Adapter for 64-bit Windows
Physikalische Adresse . . . . . . : 00-00-00-00-00-02
DHCP aktiviert. . . . . . . . . . : Nein
Autokonfiguration aktiviert . . . : Ja
IPv4-Adresse . . . . . . . . . . : 192.168.71.186(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.71.1
DNS-Server . . . . . . . . . . . : 10.2.20.12
10.2.20.13
Primärer WINS-Server. . . . . . . : 10.2.20.12
Sekundärer WINS-Server. . . . . . : 10.2.20.13
NetBIOS über TCP/IP . . . . . . . : Aktiviert
Drahtlos-LAN-Adapter Drahtlosnetzwerkverbindung:
Verbindungsspezifisches DNS-Suffix: soho
Beschreibung. . . . . . . . . . . : Intel(R) Centrino(R) Ultimate-N 6300 AGN
Physikalische Adresse . . . . . . : 00-00-00-00-00-01
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
IPv4-Adresse . . . . . . . . . . : 192.168.81.105(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.81.254
DHCP-Server . . . . . . . . . . . : 192.168.81.254
DNS-Server . . . . . . . . . . . : 208.67.222.222
8.8.8.8
195.66.0.3
NetBIOS über TCP/IP . . . . . . . : Aktiviert
ルーティング テーブルは次のように変更されます。
===========================================================================
Schnittstellenliste
22...00 00 00 00 00 02 ......Cisco Systems VPN Adapter for 64-bit Windows
15...24 77 03 20 82 20 ......Intel(R) Centrino(R) Ultimate-N 6300 AGN
===========================================================================
IPv4-Routentabelle
===========================================================================
Aktive Routen:
Netzwerkziel Netzwerkmaske Gateway Schnittstelle Metrik
0.0.0.0 0.0.0.0 192.168.81.254 192.168.81.105 25
0.0.0.0 0.0.0.0 192.168.71.1 192.168.71.186 21
127.0.0.0 255.0.0.0 Auf Verbindung 127.0.0.1 306
127.0.0.1 255.255.255.255 Auf Verbindung 127.0.0.1 306
127.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 306
192.168.71.0 255.255.255.0 Auf Verbindung 192.168.71.186 276
192.168.71.186 255.255.255.255 Auf Verbindung 192.168.71.186 276
192.168.71.255 255.255.255.255 Auf Verbindung 192.168.71.186 276
192.168.81.0 255.255.255.0 Auf Verbindung 192.168.81.105 281
192.168.81.0 255.255.255.0 192.168.71.1 192.168.71.186 281
192.168.81.105 255.255.255.255 Auf Verbindung 192.168.81.105 281
192.168.81.105 255.255.255.255 192.168.71.1 192.168.71.186 281
192.168.81.254 255.255.255.255 Auf Verbindung 192.168.81.105 100
192.168.81.255 255.255.255.255 Auf Verbindung 192.168.81.105 281
192.168.10.5 255.255.255.255 192.168.81.254 192.168.81.105 100
224.0.0.0 240.0.0.0 Auf Verbindung 127.0.0.1 306
224.0.0.0 240.0.0.0 Auf Verbindung 192.168.81.105 281
224.0.0.0 240.0.0.0 Auf Verbindung 192.168.71.186 276
255.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 306
255.255.255.255 255.255.255.255 Auf Verbindung 192.168.81.105 281
255.255.255.255 255.255.255.255 Auf Verbindung 192.168.71.186 276
===========================================================================
Ständige Routen:
Netzwerkadresse Netzmaske Gatewayadresse Metrik
0.0.0.0 0.0.0.0 192.168.71.1 1
===========================================================================
ご覧のとおり、シスコの VPN クライアントは、低い Metrik を持つデフォルト ルートを追加し、すべてのトラフィックをトンネルに送信します。以前のデフォルト ルートは削除されませんが、VPN の Metrik が低いため、AFAIR は使用されないだけです。さらに、新しいデフォルト ルートは永続化されますが、これは本当に迷惑です。意味がなく、再起動後に VPN クライアントは実行されず、ルートはもう存在しないはずです。しかし、シスコがどのように動作するかは誰にもわかりません ;-)
私がこのチャレンジを始めるきっかけとなったのは、次のルートです。
192.168.10.5 255.255.255.255 192.168.81.254 192.168.81.105 100
私の理解では、このルートによってすべてが機能します。これは、VPN トンネル全体がこのルートを使用して実際のインターフェイスからトラフィックを取得する必要があるためです。そのため、デフォルトのトラフィックを実際のインターフェイスから実際のゲートウェイに戻し、リモート ネットワークのトラフィックだけを VPN トンネルに送信するようにルーティングを変更するのはそれほど難しくないと考えました。
まず、デフォルト ルートを削除し、次に VPN 接続前と同じように新しいデフォルト ルートを追加します。次に、リモート ネットワークに特定のルートを追加します。
route DELETE 0.0.0.0
route ADD 0.0.0.0 MASK 0.0.0.0 192.168.81.254 IF 15
route ADD 10.2.31.0 MASK 255.255.255.0 192.168.71.1 IF 22
その後、ルーティング テーブルは正常に表示されます。
===========================================================================
Schnittstellenliste
22...00 00 00 00 00 02 ......Cisco Systems VPN Adapter for 64-bit Windows
15...00 00 00 00 00 01 ......Intel(R) Centrino(R) Ultimate-N 6300 AGN
===========================================================================
IPv4-Routentabelle
===========================================================================
Aktive Routen:
Netzwerkziel Netzwerkmaske Gateway Schnittstelle Metrik
0.0.0.0 0.0.0.0 192.168.81.254 192.168.81.105 26
10.2.31.0 255.255.255.0 192.168.71.1 192.168.71.186 21
127.0.0.0 255.0.0.0 Auf Verbindung 127.0.0.1 306
127.0.0.1 255.255.255.255 Auf Verbindung 127.0.0.1 306
127.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 306
192.168.71.0 255.255.255.0 Auf Verbindung 192.168.71.186 276
192.168.71.186 255.255.255.255 Auf Verbindung 192.168.71.186 276
192.168.71.255 255.255.255.255 Auf Verbindung 192.168.71.186 276
192.168.81.0 255.255.255.0 Auf Verbindung 192.168.81.105 281
192.168.81.0 255.255.255.0 192.168.71.1 192.168.71.186 281
192.168.81.105 255.255.255.255 Auf Verbindung 192.168.81.105 281
192.168.81.105 255.255.255.255 192.168.71.1 192.168.71.186 281
192.168.81.254 255.255.255.255 Auf Verbindung 192.168.81.105 100
192.168.81.255 255.255.255.255 Auf Verbindung 192.168.81.105 281
192.168.10.5 255.255.255.255 192.168.81.254 192.168.81.105 100
224.0.0.0 240.0.0.0 Auf Verbindung 127.0.0.1 306
224.0.0.0 240.0.0.0 Auf Verbindung 192.168.81.105 281
224.0.0.0 240.0.0.0 Auf Verbindung 192.168.71.186 276
255.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 306
255.255.255.255 255.255.255.255 Auf Verbindung 192.168.81.105 281
255.255.255.255 255.255.255.255 Auf Verbindung 192.168.71.186 276
===========================================================================
Ständige Routen:
Keine
ただし、この変更後、Cisco VPN クライアントが追加したルートと同じようにリモート ネットワークに完全に接続できますが、インターネットには接続できません。
ルートに問題は見当たらないので、シスコが DNS システムを台無しにしたかどうかを再度確認しましたが、WLAN インターフェイスでは何も変更されていません。
Ethernet-Adapter LAN-Verbindung 2:
Verbindungsspezifisches DNS-Suffix:
Beschreibung. . . . . . . . . . . : Cisco Systems VPN Adapter for 64-bit Windows
Physikalische Adresse . . . . . . : 00-00-00-00-00-02
DHCP aktiviert. . . . . . . . . . : Nein
Autokonfiguration aktiviert . . . : Ja
IPv4-Adresse . . . . . . . . . . : 192.168.71.186(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.71.1
DNS-Server . . . . . . . . . . . : 10.2.20.12
10.2.20.13
Primärer WINS-Server. . . . . . . : 10.2.20.12
Sekundärer WINS-Server. . . . . . : 10.2.20.13
NetBIOS über TCP/IP . . . . . . . : Aktiviert
Drahtlos-LAN-Adapter Drahtlosnetzwerkverbindung:
Verbindungsspezifisches DNS-Suffix: soho
Beschreibung. . . . . . . . . . . : Intel(R) Centrino(R) Ultimate-N 6300 AGN
Physikalische Adresse . . . . . . : 00-00-00-00-00-01
DHCP aktiviert. . . . . . . . . . : Ja
Autokonfiguration aktiviert . . . : Ja
IPv4-Adresse . . . . . . . . . . : 192.168.81.105(Bevorzugt)
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.81.254
DHCP-Server . . . . . . . . . . . : 192.168.81.254
DNS-Server . . . . . . . . . . . : 208.67.222.222
8.8.8.8
195.66.0.3
NetBIOS über TCP/IP . . . . . . . : Aktiviert
ここで私の馬は死んでしまいました。皆さんの助けが必要です。私が見逃している点や誤解している点についてヒントをくれる人はいませんか? ブラックハットはいますか?
答え1
私も数か月間同じ問題を抱えています。切断する必要がありましたが、インターネット アクセスはできました。接続して企業リソースにアクセスできるようにしました... 面倒です。
私の一時的な解決策は、Debian LinuxにSonatype Nexus(依存関係のプロキシ)をインストールし、VPN通常はapt-get/yumなどでインストールできます。
この解決策では不十分だったため、vpnc-fe http://sourceforge.net/projects/vpncfe/ (VPNc フロントエンド) をインストールして、Windows マシンに vpnc をインストールしました。
私の構成では、完全なセキュリティのために「Force-NTT」という設定が必要でした。このスレッド後で、postconnect.bat に次のスクリプトを追加する必要があります。
[スレッドがダウンした場合に備えてコピー]
rodekerken さん、ありがとうございます。これが最終結果です。分割されたルートを分離するために手動で調整する必要はありません。
@echo off
REM By: capt-tagon
REM
REM Post-Script.bat to take VPNC's Route Table into Windows 7 land. Erases bad route table entries,
REM extracts gateway, assigned IP, Netmask, and Cisco split route entries and resubmits them to
REM Windows 7 so the routing all works. Condensed from other entries on the VPNC-FE forae and combined
REM with information gleaned from VPNC client for Linux to find all the passed parameters useful
REM to making this work. Additional by rodekerken noted below, thank you for helping finish it out.
REM
setlocal enabledelayedexpansion
echo.
echo Post-Script Begin
echo.
REM Gather Connection Data
REM
REM Parameters passed have space at end, see "HELP SET" at Console Prompt for explanation of
REM substring extraction
REM Strip space from TUNDEV, INTERNAL_IP4_ADDRESS, VPNGATEWAY, CISCO_SPLIT_INC
REM This will be broken if VPNC-FE is fixed to not export parameters with the trailing space.
REM
set MyTUNDev=%TUNDEV:~0,-1%
REM By: rodekerken
REM From the top of the router table printout, look for a line like
REM 14...00 ff 5d b0 44 aa ......TAP-Win32 Adapter V9 to find the if number.
REM A way to find out the interface number automatically and extractis this:
for /f "tokens=1 delims=." %%a in ('route print ^|find "TAP-Win32"') do set MyIF=%%a
set MyIP=%INTERNAL_IP4_ADDRESS:~0,-1%
set MyMask=%INTERNAL_IP4_NETMASK:~0,-1%
set MyVPN=%VPNGATEWAY:~0,-1%
REM Number of Routing Table Entries for Split Tunnel
set MyCiscoSplit=%CISCO_SPLIT_INC:~0,-1%
REM Date Time functions
set ANSIDate=%date:~10%%date:~4,2%%date:~7,2%
set StartTime=%time:~0,2%%time:~3,2%%time:~6,2%
REM Display Connection Data
echo Tunnel Device : [%MyTUNDev%]
echo Tunnel IntFace: [%MyIF%]
echo Tunnel IPAddr : [%MyIP%]
echo Tunnel NetMask: [%MyMask%]
echo Tunnel VPN-GW : [%MyVPN%]
echo .
echo Date Connected: [%ANSIDate%]
echo Time Connected: [%StartTime%]
echo .
REM Cisco Routes are 0 index, 6 Routes = 0-5
echo Cisco Split Routes: [%MyCiscoSplit%]
REM Display Bad Route Table
echo.
echo Bad Route Table
route print | find "%MyIP%"
echo.
REM Delete Bad Split Route entries and add back with proper Gateway.
REM Extract Cisco routing table information to feed to "ROUTE ADD"
REM Number of entries passed in Array Index CISCO_SPLIT_INC
REM For x below, value is 0 to CISCO_SPLIT_INC - 1
REM Address is passed in CISCO_SPLIT_INC_x_ADDR
REM NetMask is passed in CISCO_SPLIT_INC_x_MASK
REM
REM By: rodekerken
REM A way to loop and enumerate and evaluate the routes is like this:
set /A MyCiscoSplit-=1
for /L %%i in (0,1,%MyCiscoSplit%) do (
set SplitAddr=CISCO_SPLIT_INC_%%i_ADDR
set SplitMask=CISCO_SPLIT_INC_%%i_MASK
for /f %%a in ('echo !SplitAddr!') do set SplitAddrEval=!%%a!
for /f %%a in ('echo !SplitMask!') do set SplitMaskEval=!%%a!
echo Route%%i !SplitAddrEval! !SplitMaskEval!
route delete !SplitAddrEval! >nul
route add !SplitAddrEval! mask !SplitMaskEval! %MyVPN% metric 1 if %MyIF% >nul
)
REM Display Corrected Route Table
echo.
echo Corrected Route Table
route print | find "%MyVPN%"
echo.
echo Post-Script End
echo.
「FOR」の後に次のルートも追加しました。
route add 1111.120.120.0 mask 255.255.255.0 0.0.0.0 metric 1 if %MyIF%
route add 1111.185.19.0 mask 255.255.255.0 0.0.0.0 metric 1 if %MyIF%
route add 10.0.0.0 mask 255.0.0.0 0.0.0.0 metric 1 if %MyIF%
[最初の 2 つのルートの住所は間違っているか偽物です。いずれにしても変更する必要があります]
私のスクリプトを繰り返し動作させるには、ルートの削除を含む「disconnect.bat」を作成する必要があります。
route delete 1111.120.120.0
route delete 1111.185.19.0
route delete 10.0.0.0
私の0.02ユーロだけ