Cisco VPN mit Routen aufmotzen

Cisco VPN mit Routen aufmotzen

Ich arbeite an einer Möglichkeit, den Cisco VPN-Client auszutricksen, indem ich die Routen auf dem lokalen System ändere, um einen Status zu erreichen, der Split-Tunneling genannt wird.

Ich weiß, dass ich nicht das Recht habe, dies ohne die Erlaubnis des Administrators des VPN-Netzwerks zu tun, und beabsichtige nicht, dies zu verwenden. Dies ist jedoch eine Herausforderung für mich, um das Routing unter Windows besser zu verstehen, vielleicht sogar ein Proof of Concept, mit dem ich einigen Administratoren zeigen könnte, dass es für die Sicherheit überhaupt keinen Nutzen bringt, sich auf dieses Kontrollkästchen in ihrer Software zu verlassen.

Los geht‘s, hier ist, was ich gefunden habe. Es ist alles in private Netzwerkadressen geändert. Das Szenario ist ein Remote-Mitarbeiter, der von seinem Soho-Netzwerk 192.168.81.0 aus arbeitet und sich über Cisco-VPN mit seinem Firmennetzwerk 192.168.71.0 verbindet. Der VPN-Host für die Cisco-Konfiguration wird in diesem Beispiel auf 192.168.10.5 geändert.

Der Remote-Mitarbeiter ist über WLAN mit seinem Soho-Netzwerk verbunden, seine normalen IP-Einstellungen, wenn er nicht im VPN ist, sehen wie folgt aus:

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

Die Routingtabelle auf dem System sieht erwartungsgemäß unspektakulär aus:

===========================================================================
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

Nach der Verbindung mit dem VPN wird das virtuelle Netzwerkgerät zum System hinzugefügt:

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

Die Routing-Tabelle wird wie folgt geändert:

===========================================================================
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
===========================================================================

Wie man sehen kann, fügt der Cisco VPN-Client eine Standardroute mit niedriger Metrik hinzu und schickt den gesamten Verkehr in den Tunnel. Die vorherige Standardroute wird nicht entfernt, aber meiner Ansicht nach einfach nicht verwendet, da die VPN-Route niedrigere Metrik hat. Außerdem wird die neue Standardroute permanent gemacht, was wirklich ärgerlich ist, da es sinnlos ist, da der VPN-Client nach einem Neustart nicht mehr läuft und die Route nicht mehr vorhanden sein sollte. Aber wer weiß, wie Cisco das macht ;-)

Was mich dazu gebracht hat, diese Herausforderung anzunehmen, ist folgender Weg:

     192.168.10.5  255.255.255.255   192.168.81.254    192.168.81.105    100

Nach meinem Verständnis funktioniert das Ganze über diese Route, da dies die Route ist, die der gesamte VPN-Tunnel verwenden muss, um den Datenverkehr über die echte Schnittstelle zu leiten. Daher dachte ich, es sollte nicht allzu schwierig sein, das Routing zu ändern, um den Standarddatenverkehr über die echte Schnittstelle zurück zum echten Gateway und nur den Datenverkehr für das Remote-Netzwerk zum VPN-Tunnel zu leiten.

Ich habe zunächst die Standardrouten gelöscht und dann eine neue Standardroute hinzugefügt, so wie sie vor der VPN-Verbindung war. Anschließend habe ich eine spezielle Route zum Remote-Netzwerk hinzugefügt:

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

Danach sieht die Routing-Tabelle für mich gut aus:

===========================================================================
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

Nach dieser Änderung kann ich mich jedoch wie mit den vom Cisco VPN-Client hinzugefügten Routen problemlos mit dem Remote-Netzwerk verbinden, jedoch nicht mit dem Internet.

Da ich bei den Routen nichts falsch erkennen kann, habe ich nochmal nachgeschaut, ob Cisco mein DNS-System durcheinandergebracht hat, aber das ist auf der WLAN-Schnittstelle unberührt.

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

Hier stirbt mein Pferd und ich brauche eure Hilfe. Kann mir jemand einen Hinweis geben, was ich übersehe und/oder falsch verstehe? Gibt es da draußen irgendwelche BlackHats?

Antwort1

Ich habe seit einigen Monaten das gleiche Problem. Ich musste die Verbindung trennen und hatte Internetzugang. Verbinden, damit ich auf Unternehmensressourcen zugreifen kann... Eine Qual.

Meine vorübergehende Lösung bestand darin, einen Sonatype Nexus (Proxy für Abhängigkeiten) unter Debian Linux zu installieren und eine Verbindung herzustellen mitVPN. Normalerweise können Sie es mit apt-get/yum usw. installieren.

Als diese Lösung nicht ausreichte, habe ich VPN auf meinem Windows-Rechner mit VPN-fe http://sourceforge.net/projects/vpncfe/ (VPNc-Front-End) darüber installiert.

Meine Konfiguration erforderte eine Einstellung für perfekte Sicherheit namens "Force-NTT". Siehedieser Thread. Später müssen Sie das folgende Skript in postconnect.bat einfügen:

[Kopieren, falls der Thread abstürzt]

Vielen Dank, rodekerken! Hier ist das Endergebnis, kein manuelles Basteln erforderlich, um die geteilten Routen aufzuteilen:

@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.

Ich habe diese Routen auch nach „FOR“ hinzugefügt:

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%

[Bitte beachten Sie, dass die ersten beiden Routen falsche/falsche Adressen haben. Sie müssen diese trotzdem ändern]

Damit mein Skript wiederholt funktioniert, müssen Sie eine „disconnect.bat“ erstellen, die die Entfernung der Routen enthält:

route delete 1111.120.120.0
route delete 1111.185.19.0
route delete 10.0.0.0

Nur meine 0,02€

verwandte Informationen