1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

[How-To] Cisco VPN auf dem Milestone

Dieses Thema im Forum "Anleitungen für Motorola Milestone" wurde erstellt von raven1, 09.02.2010.

  1. raven1, 09.02.2010 #1
    raven1

    raven1 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    100
    Erhaltene Danke:
    18
    Registriert seit:
    22.01.2010
    Hi

    So richtet ihr Cisco VPN auf dem Milestone ein, geht bis jetzt nur über eine Konsole und mit root. Getestet habe ich mit O2 2.0.1 Firmware.

    In dem Zip befinden sich auch alle anderen benötigten Dateien. Ich benutze als Terminal das Better Terminal aus dem Market da man dort unter "Initial Command" die Path angabe einfügen kann und man so nicht selbst tippen muss.

    Alternativer Link zu dem Zip:
    http://www.megaupload.com/?d=PMRETAQQ

    1. Busybox aus dem Zip wie hier beschrieben installieren (bitte jemand mal wo anders hochladen so können es nur 10 Personen downloaden).
    2. In der Datei "vpnc/vpnc.conf" den Usernamen etc. eintragen. <-wichtig ohne Eckige Klammern
    3. den Ordner "vpnc" aus dem Zip sowie die tun.ko ins Hauptverzeichnis der SD-Karte kopieren.
    4. Folgenden Code in Better Terminal ausführen (setzt vorraus dass busybox im $PATH ist).
    Code:
    su
    mkdir /data/vpnc
    cp -r /sdcard/vpnc /data/vpnc/
    insmod /sdcard/tun.ko
    mkdir /dev/net
    ln -s /dev/tun /dev/net/tun
    /data/vpnc/vpnc /data/vpnc/vpnc.conf
    
    Jede Zeile ist ein einzelner Befehl, also nach jeder Zeile im Terminal einmal "Enter" drücken.
    Beim zweiten Starten den Code ab "insmod /sdcard/tun.ko" bis zum Ende wieder ausführen.

    5. Freuen :D

    Edit: Dazugeschrieben dass vpnc.conf editiert werden muss.

    Grüße
     
    Zuletzt bearbeitet: 16.02.2010
    doesdroid und k1l haben sich bedankt.
  2. Versus, 09.02.2010 #2
    Versus

    Versus Neuer Benutzer

    Beiträge:
    22
    Erhaltene Danke:
    3
    Registriert seit:
    06.12.2009
    Phone:
    Motorola Milestone
    Sorry, aber mit dem Begriff kann ich echt wenig anfangen.
    Kann mir bitte einer erklären, wofür so ein CiscoVPN gut ist... Danke
     
  3. raven1, 09.02.2010 #3
    raven1

    raven1 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    100
    Erhaltene Danke:
    18
    Registriert seit:
    22.01.2010
  4. inspire, 09.02.2010 #4
    inspire

    inspire Android-Hilfe.de Mitglied

    Beiträge:
    78
    Erhaltene Danke:
    3
    Registriert seit:
    03.01.2010
    Sehr schön, danke :) Werden denn Zertifikate unterstützt?
     
  5. raven1, 09.02.2010 #5
    raven1

    raven1 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    100
    Erhaltene Danke:
    18
    Registriert seit:
    22.01.2010
    Öhhhm das sollte alles unterstützen was vpnc für linux unterstützt (ist ja auch vpnc von linux). Welches ich aus VPN_Connections extrahiert habe.
     
  6. mash211, 16.02.2010 #6
    mash211

    mash211 Gewerbliches Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    192
    Registriert seit:
    15.02.2010
    Phone:
    Motorola Milestone
    Hallo Community,

    hab das mal alles so gemacht wie raven1 das beschrieben hat. Leider weiss ich jetzt aber nicht, wie ich denn die vpn-verbindung herstellen kann?

    Sehe ich das richtig das ln -s /dev/tun /dev/net/tun /data/vpnc/vpnc /data/vpnc/vpnc.conf ein Eingabe ist und dabei ein Link auf die Datei /dev/tun gesetzt wird? Aber wie kann ich denn mehrere Vrz. auf eine Datei verlinken?

    Vielen Dank für Eure Mühe.

    DAmash
     
  7. k1l, 16.02.2010 #7
    k1l

    k1l Android-Lexikon

    Beiträge:
    1,317
    Erhaltene Danke:
    404
    Registriert seit:
    20.12.2009
    Tablet:
    HP Touchpad
    nur der rote teil erstellt den benötigten link
    der blaue teil ist bereits der aufruf von vpnc samt konfig datei (und gehört getrennt)
     
  8. raven1, 16.02.2010 #8
    raven1

    raven1 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    100
    Erhaltene Danke:
    18
    Registriert seit:
    22.01.2010
    Erste Möglichkeit:
    Genau so wie k1l schon gesagt hat, zuerst das rote eingeben dann Enter. Danach das blaue eingeben wieder Enter und vpn ist gestartet (man sieht nur eine Zeile in der console die besagt dass es im hintergrund läuft).
    Bevor jedoch das blaue eingegeben wird sollte in der Datei /data/vpnc/vpnc.conf die IP sowie gruppenname/passwort und die persönlichen Daten eingetragen werden (ohne die Eckigen Klammern).

    Ich habe grad den ersten Post editiert. wenn du die mit "wichtig" gekennzeichnete Stelle gemacht hast vergiss den letzten (fett geschriebenen) Satz.

    Die Zweite Möglichkeit (ohne dass die Persönlichen daten auf dem Phone gespeichert werden) funktioniert leider nicht da vpnc dann die vpnc-script datei nicht findet.

    Gruß
     
    Zuletzt bearbeitet: 16.02.2010
  9. mash211, 16.02.2010 #9
    mash211

    mash211 Gewerbliches Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    192
    Registriert seit:
    15.02.2010
    Phone:
    Motorola Milestone
    ok super vielen dank. dat werde ich dann morgen sobald ich meine neue sim habe gleich mal probieren. multi-sim-chaos der tm .... :)

    DA mash
     
  10. robertpic71, 16.02.2010 #10
    robertpic71

    robertpic71 Android-Hilfe.de Mitglied

    Beiträge:
    143
    Erhaltene Danke:
    24
    Registriert seit:
    28.06.2009
    Phone:
    Samsung Galaxy Note 4
    Diese Anleitung zielt darauf ab, den VPN via Script zu starten.
    Das Script wurde aber aus dem Projekt get-a-robot-vpnc extrahiert, welches eigentlich eine GUI enthält.

    Die GUI funktioniert auch, damit erspart man sich dann das Anlegen der Links (nach jedem Reboot) und hat eine GUI für die Einstellungen und für das Connecten. Um das insmod (1x je reboot) kommt man allerdings noch nicht herum - das muss ich noch debuggen.

    Ein schwerer Nachteil der GUI ist, dass sie einem im Fehlerfall kaum eine Hilfestellung gibt. Es gibt zwar ein Log /data/data/org.codeandroid.vpnc-frontend/files/lastConnection.log, aber da steht auch selten was hilfreiches...

    Ich bastle gerade an der GUI herum - da vpnc (inkl. meinem eingebauten Reconnect) für mich/unsere Firma die beste VPN-Lösung darstellt. Auch das iPhone bietet z.B. kein reconnect an. Leider hat mir die T-Mobile Austria einen Strich durch die Rechnung gemacht, da sie für Businesskunden noch kein Milestones ausliefert :mad: - und noch ein iPhone mehr.
     
  11. raven1, 17.02.2010 #11
    raven1

    raven1 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    100
    Erhaltene Danke:
    18
    Registriert seit:
    22.01.2010
    Hi,

    Ja diese GUI gibt es, lief bei mir aber nie.Ich habe per GUI nie Verbindung aufbauen können, deshalb ja der Ansatz per Hand zu connecten.
     
  12. mash211, 17.02.2010 #12
    mash211

    mash211 Gewerbliches Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    192
    Registriert seit:
    15.02.2010
    Phone:
    Motorola Milestone
    mh ... das wäre schon klasse wenn robertpic71 da ne gui entwickeln könnte. gerade im gsm-netz (bei schlechter abdeckung) sind die verbindungsabbrüche ja auch nicht selten. daher wäre es dann schon toll wenn man etwas mitbekommt wenn die verbindung weg ist. Is manchmal schon schlimm genug wenn man unterwegs is und die verbindung immer wegbricht. stellt euch vor ihr seid mitm terminal auf ner maschine und müht euch mit ner ellenlangen eingabe ab und dann ... puff verbindung weg. :eek: enter ... enter ... ssh error ... ohhh ja verbindung tot

    kennt von euch jemand den shrew-vpn-client der is eigentlich auch klasse, aber leider entwickeln die jungs nur auf win.

    konnte den vpnc-client noch nicht testen, aber wie sieht es denn eigentlich mit eigenen einstellungen aus, wie internen dns-server, oder den einstellungen von phase 1 und phase 2. kann man da der .conf-datei noch parameter mitgeben, oder sind wirklich nur die genannten einträge möglich?

    DAmash
     
  13. mash211, 17.02.2010 #13
    mash211

    mash211 Gewerbliches Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    192
    Registriert seit:
    15.02.2010
    Phone:
    Motorola Milestone
  14. robertpic71, 17.02.2010 #14
    robertpic71

    robertpic71 Android-Hilfe.de Mitglied

    Beiträge:
    143
    Erhaltene Danke:
    24
    Registriert seit:
    28.06.2009
    Phone:
    Samsung Galaxy Note 4
    Wie gesagt, es gibt bereits eine brauchbare GUI, aus welchem die Scripte ja extrahiert wurden. Die Standard-GUI meldet auch einen Verbindungsabbruch als (wie z.B. ein versäumter Anruf) und bietet einen Einstieg mit Reconnect an.

    Das ganze Projekt geht allerdings von einer Custom-Rom aus (mit installierter Busybox und tun.ko Modul). Deshalb ist die Einrichtung beim Milestone etwas mühsamer - und es leider kaum Hilfestellung wenn kein Connect zustande kommt.

    Damit das Projekt funktioniert muss:
    - die Busybox installiert sein und die Befehle in der Shell ohne Umwege erreichbar sein (bei der PATH-Variante, also 1x nach Reboot PATH für busybox setzen, ansonsten meine Variante für Busyboxinstall verwenden)
    - man benötigt ein für die Plattform erstelltes tun.ko Modul
    - der Befehl "modprobe tun" oder "insmod /system/lib/modules/tun.ko" muss funktionieren (modprobe geht sowie nicht, insmod geht im Moment auch nicht --> alternativ 1x manuell je reboot)
    - man braucht KEINE Links selber für das /dev/net/tun etc. selber setzen, das macht die GUI bzw. erkennt daran ob das Modul bereits geladen ist

    Was ich im Moment einbaue:

    - entfernen von möglichst vielen shell-befehlen (ps, grep, kill....), die machen auch auf andere Plattformen Stress (90% fertig)
    - automatischer Reconnect (ohne Nachfragen) --> funktioniert schon, ist aber noch nicht ganz sauber (es bleiben noch Resourcen von den ersten Connects über) 85% Fertig

    was ich noch brauche:
    - Keep-alive Ping, das braucht man nur wenn DPD-Idle nicht richtig arbeitet, wie beim Linux VPNC gibt es den Fall, dass die Verbindung fällt, ohne das vpnc das mitbekommt. Der Ping soll die Verbindung am Leben halten bzw. prüfen ob sie noch das ist.

    Nice-to-Have:
    - "Connect with log" oder "View last Connectionlog" für bessere Fehlersuche
    - Entweder permanentes Statusicon für gültige Verbindung oder Widget welches den Status via Icon anzeigt

    Bugs:
    - Derzeit kann es passieren, dass die Anwendung aus dem Speicher fliegt, wenn Platz gebraucht --> Deklaration als Service

    Ich baue das Zeug einmal ein. Ziel ist aber auf jeden Fall eine Fusion mit dem bestehen Projekt.

    Es stehen relativ viele VPNC Parameter zur Verfügung. In der GUI gibt es unter MENU den Punkt "Add VPNC Flags" bzw. man das teilweise auch mit der conf-Datei erledigen.

    Für Einträge in bestimmten Phasen ist normalerweise vpnc-script zuständig. Dort gibt es eigene Rubriken für vor, nach dem Connect bzw. nach dem Disconnect. Wobei der DNS-Server eigentlich vom der Firewall übernommen werden sollte (wenn konfiguriert).

    Hier noch die Lange Hilfe von vpnc:
    Code:
    robert@robert-server:~$ vpnc --long-help
    Usage: vpnc [--version] [--print-config] [--help] [--long-help] [options] [config files]
    
    Options:
      --gateway <ip/hostname>
          IP/name of your IPSec gateway
      conf-variable: IPSec gateway <ip/hostname>
    
      --id <ASCII string>
          your group name
      conf-variable: IPSec ID <ASCII string>
    
      (configfile only option)
          your group password (cleartext)
      conf-variable: IPSec secret <ASCII string>
    
      (configfile only option)
          your group password (obfuscated)
      conf-variable: IPSec obfuscated secret <hex string>
    
      --username <ASCII string>
          your username
      conf-variable: Xauth username <ASCII string>
    
      (configfile only option)
          your password (cleartext)
      conf-variable: Xauth password <ASCII string>
    
      (configfile only option)
          your password (obfuscated)
      conf-variable: Xauth obfuscated password <hex string>
    
      --domain <ASCII string>
          (NT-) Domain name for authentication
      conf-variable: Domain <ASCII string>
    
      --xauth-inter
          enable interactive extended authentication (for challenge response auth)
      conf-variable: Xauth interactive
    
      --vendor <cisco/netscreen>
          vendor of your IPSec gateway
        Default: cisco
      conf-variable: Vendor <cisco/netscreen>
    
      --natt-mode <natt/none/force-natt/cisco-udp>
          Which NAT-Traversal Method to use:
           * natt -- NAT-T as defined in RFC3947
           * none -- disable use of any NAT-T method
           * force-natt -- always use NAT-T encapsulation even
                           without presence of a NAT device
                           (useful if the OS captures all ESP traffic)
           * cisco-udp -- Cisco proprietary UDP encapsulation, commonly over Port 10000
          Note: cisco-tcp encapsulation is not yet supported
        Default: natt
      conf-variable: NAT Traversal Mode <natt/none/force-natt/cisco-udp>
    
      --script <command>
          command is executed using system() to configure the interface,
          routing and so on. Device name, IP, etc. are passed using enviroment
          variables, see README. This script is executed right after ISAKMP is
          done, but before tunneling is enabled. It is called when vpnc
          terminates, too
        Default: /etc/vpnc/vpnc-script
      conf-variable: Script <command>
    
      --dh <dh1/dh2/dh5>
          name of the IKE DH Group
        Default: dh2
      conf-variable: IKE DH Group <dh1/dh2/dh5>
    
      --pfs <nopfs/dh1/dh2/dh5/server>
          Diffie-Hellman group to use for PFS
        Default: server
      conf-variable: Perfect Forward Secrecy <nopfs/dh1/dh2/dh5/server>
    
      --enable-1des
          enables weak single DES encryption
      conf-variable: Enable Single DES
    
      --enable-no-encryption
          enables using no encryption for data traffic (key exchanged must be encrypted)
      conf-variable: Enable no encryption
    
      --application-version <ASCII string>
          Application Version to report. Note: Default string is generated at runtime.
        Default: Cisco Systems VPN Client 0.5.1:Linux
      conf-variable: Application version <ASCII string>
    
      --ifname <ASCII string>
          visible name of the TUN/TAP interface
      conf-variable: Interface name <ASCII string>
    
      --ifmode <tun/tap>
          mode of TUN/TAP interface:
           * tun: virtual point to point interface (default)
           * tap: virtual ethernet interface
        Default: tun
      conf-variable: Interface mode <tun/tap>
    
      --debug <0/1/2/3/99>
          Show verbose debug messages
           *  0: Do not print debug information.
           *  1: Print minimal debug information.
           *  2: Show statemachine and packet/payload type information.
           *  3: Dump everything exluding authentication data.
           * 99: Dump everything including authentication data (e.g. passwords).
      conf-variable: Debug <0/1/2/3/99>
    
      --no-detach
          Don't detach from the console after login
      conf-variable: No Detach
    
      --pid-file <filename>
          store the pid of background process in <filename>
        Default: /var/run/vpnc/pid
      conf-variable: Pidfile <filename>
    
      --local-addr <ip/hostname>
          local IP to use for ISAKMP / ESP / ... (0.0.0.0 == automatically assign)
        Default: 0.0.0.0
      conf-variable: Local Addr <ip/hostname>
    
      --local-port <0-65535>
          local ISAKMP port number to use (0 == use random port)
        Default: 500
      conf-variable: Local Port <0-65535>
    
      --udp-port <0-65535>
          Local UDP port number to use (0 == use random port).
          This is only relevant if cisco-udp nat-traversal is used.
          This is the _local_ port, the remote udp port is discovered automatically.
          It is especially not the cisco-tcp port.
        Default: 10000
      conf-variable: Cisco UDP Encapsulation Port <0-65535>
    
      --dpd-idle <0,10-86400>
          Send DPD packet after not receiving anything for <idle> seconds.
          Use 0 to disable DPD completely (both ways).
        Default: 300
      conf-variable: DPD idle timeout (our side) <0,10-86400>
    
      --non-inter
          Don't ask anything, exit on missing options
      conf-variable: Noninteractive
    
      --auth-mode <psk/cert/hybrid>
          Authentication mode:
           * psk:    pre-shared key (default)
           * cert:   server + client certificate (not implemented yet)
           * hybrid: server certificate + xauth (if built with openssl support)
        Default: psk
      conf-variable: IKE Authmode <psk/cert/hybrid>
    
      --ca-file <filename>
          filename and path to the CA-PEM-File
      conf-variable: CA-File <filename>
    
      --ca-dir <directory>
          path of the trusted CA-Directory
        Default: /etc/ssl/certs
      conf-variable: CA-Dir <directory>
    
      --dns-update
          DEPRECATED extension, see README.Debian for details
        Default: Yes
      conf-variable: DNSUpdate
    
      --target-networks
          DEPRECATED extension, see README.Debian for details
        Default:
      conf-variable: Target Networks
    
    
     
  15. payce, 18.02.2010 #15
    payce

    payce Android-Lexikon

    Beiträge:
    1,133
    Erhaltene Danke:
    1,133
    Registriert seit:
    15.02.2010
    Sorry für die vllt. etwas blöde Frage, aber in der 2.0.1er Firmware ist doch für VPN eine Einstellung vorhanden (PPTP-VPN, L2TP-VPN etc. pp.) unter Einstellungen/Drahtlos/VPN. Für was soll das bitte gut sein, wenn man nicht einmal zu CVPN oder OpenVPN verbinden kann? Gibts keine Möglichkeit, Bordmittel zu verwenden?
     
  16. robertpic71, 18.02.2010 #16
    robertpic71

    robertpic71 Android-Hilfe.de Mitglied

    Beiträge:
    143
    Erhaltene Danke:
    24
    Registriert seit:
    28.06.2009
    Phone:
    Samsung Galaxy Note 4
    zu den eingebauten VPN's:
    Nichts davon ist via API ansprechbar. Also mit der normalen SDK/NDK kann man nichts davon aufrufen. Und bevor man daraus Code extrahiert, ist es einfacher eine fertige Lösung via crosscompile zu erstellen.

    Dazu kommt noch, dass die einbauten VPN's unkomfortable sind:
    * Einschalten, über Einstellungen/Netzwerk/VPN + Eintrag aktivieren
    * Passwort immer eingeben
    * keine Disconnectanzeige
    * keine Proxyoption ala iPhone
    * kein Splitchannel!, d.h. dass bei eingeschaltetem VPN der gesamte
    Verkehr über VPN getunnelt wird. Wenn VPN als Internetzugang verwendet
    wird - kein Problem. Wenn man aber (Firmen)VPN nur für den Serverzugriff (z.B. Mail) eingerichtet verwendet, geht der andere Traffic u.U. gar nicht.

    Das am weit verbreiteste IPSec (pur, also genutzt für Tunneln + Crypt) samt Group-Id, wird von Android NICHT angeboten. Das mag wohl daran liegen, dass diese Zugangsform "einseitig für Tot erklärt wurde". Neue Cisco-Firewalls bieten das nicht mehr an, aber in der Praxis kommt es noch sehr häufig vor.....

    Deshalb bleibt für mich vpnc die 1. Wahl, wenn es um VPN geht. Das iPhone ist zwar sicher weiter in Sachen VPN, kann mit dem getunten vpnc aber auch nicht mithalten.
     
  17. payce, 18.02.2010 #17
    payce

    payce Android-Lexikon

    Beiträge:
    1,133
    Erhaltene Danke:
    1,133
    Registriert seit:
    15.02.2010
    Echt? Wie blöd ist das denn? Sprich, VPN drin, aber kann man nicht verwenden? Für was hat Motorola die dann ins Handy gesteckt?? Pöh... :p

    Danke für Deine AW! *vpnc angucken geh*
     
  18. mash211, 23.02.2010 #18
    mash211

    mash211 Gewerbliches Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    192
    Registriert seit:
    15.02.2010
    Phone:
    Motorola Milestone
    Hey Robertpic71,

    jetzt habe ich es endlich mal nach deinem tut

    su
    mkdir /data/vpnc
    cp -r /sdcard/vpnc /data/vpnc/
    insmod /sdcard/tun.ko
    mkdir /dev/net
    ln -s /dev/tun /dev/net/tun
    /data/vpnc/vpnc /data/vpnc/vpnc.conf

    versucht. Bekomme aber immer permission denied. Hab aber mal nen chmod 777 auf alle Dateien und Verz. im /data/vpnc gemacht. Kann es sein, das System:System gesetzt werden muss?

    DaMash ... P.S. vll willst dir ja nen account auf myMilestone.de machen ;-)
     
  19. mash211, 23.02.2010 #19
    mash211

    mash211 Gewerbliches Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    192
    Registriert seit:
    15.02.2010
    Phone:
    Motorola Milestone
    :D:D:D:D:D:D

    Hüpf hüpf hüpf .....

    habs geschafft das Cisco VPN läuft. Sogar mit GUI. Jetzt bin ich aber ein wenig verwirrt und kann es mir nicht so recht erklären.

    Nachdem ich den permission denied error bekommen habe, habe ich von

    "Motorola_Droid_Support - get-a-robot-vpnc - Project Hosting on Google Code

    1. mount -o remount,rw /dev/block/mtdblock4 /system "

    Das Filesystem auf read-write gestellt.

    you already have root access and have remounted the system partition. If not, do steps ii, iii, and iv above.
    iii) cp /sdcard/tun.ko /system/lib/modules/ iv) set the system partition back to read only

    2. mount -o remount,ro /dev/block/mtdblock4 /system

    Die Datei in das Verz. /system/lib/modules kopiert..... Klar is ja auch ein Kernel-Modul. Lt. Anleitung würde jetzt nochmals der insmod-Befehl
    $ su ​
    1. insmod /system/lib/modules/tun.ko
    gemacht. Da kam dann natürlich die Meldung, das das Modul schon geladen wäre. Auch klar, den insmod hatte ich ja schon. Jetzt hab ich von get-a-robot-vpnc - Project Hosting on Google Code nochmal die VPN_Connections_v097-2.apk heruntergeladen. Das Menü zum erstellen eines Profils sieht jetzt n bisschen anderst aus und es geht. :)

    Werde das jetzt mal versuchen zu reproduzieren.

    Sodalla die Kollegen werdens mir danke. Die Argumentationsgrundlage für das Handy ist geschaffen.

    DA mash
     
  20. raven1, 23.02.2010 #20
    raven1

    raven1 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    100
    Erhaltene Danke:
    18
    Registriert seit:
    22.01.2010
    Hi,

    Nur bei uns ist mtdblock6 /system und NICHT wie eben geschrieben mtdblock4
     

Diese Seite empfehlen