[How-To] Cisco VPN auf dem Milestone

R

raven1

Fortgeschrittenes Mitglied
19
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:
  • Danke
Reaktionen: doesdroid und k1l
Sorry, aber mit dem Begriff kann ich echt wenig anfangen.
Kann mir bitte einer erklären, wofür so ein CiscoVPN gut ist... Danke
 
Sehr schön, danke :) Werden denn Zertifikate unterstützt?
 
Ö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.
 
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
 
mash211 schrieb:
...
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?
...
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)
 
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:
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
 
mash211 schrieb:
Leider weiss ich jetzt aber nicht, wie ich denn die vpn-verbindung herstellen kann?

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.
 
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.
 
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
 
mash211 schrieb:
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....
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.

mash211 schrieb:
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
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
 
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?
 
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.
 
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*
 
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 ;-)
 
: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
 
Hi,

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

Ähnliche Themen

B
Antworten
6
Aufrufe
7.547
martin_austria
M
sk92le
Antworten
1
Aufrufe
2.928
sk92le
sk92le
-FuFu-
  • -FuFu-
Antworten
0
Aufrufe
2.580
-FuFu-
-FuFu-
Zurück
Oben Unten