Nokia E61i, ipsec VPN und pfsense

Es gilt das Nokia e61i bzw. die E-series mit Symbian 60 OS per Nokia VPN anzubinden. Das Nokia VPN ist IPSEC und soll mit Cisco kompatibel sein, auch wenn im Nokia Forum, Telefon-Treff und in den Google-Groups verschiedene Probleme bei verschiedenen detuschen Unis zu lesen war.

Warum, dachte ich mir, nicht auch mit einer Linux VPN Lösung!? Eine erste Anleitung gibts im Linux-Journal, eine weitere bei Thorsten Knabe. Damit kam ich schon recht weit. Allerdings wollte ich mir openswan nicht antun. Auf der Suche nach einer kleinen VPN-Appliance kam ich auf m0n0wall - später auf den Fork pfsense. Beides sind keine, openBSD basierte VPN / Firewall Plattformen. Sie sind superschmal (~10MB Platte, 32 MB RAM) und tun genau was ich will (VPN und Firewall) mit einer netten Weboberfläche.

pfsense war schnell in einer VMware-Instanz installiert und tat seinen Dienst. Die IPSEC-RoadwarriorKonfiguration war schnell erledigt und einsatzbereit. pfsense vergibt für die mobilen Clients dynamish 172.x.x.x Adressen. Ist pfsense nicht das default-gw hat man hier ein wenig Routingprobleme sofern 172.x.x.x auch intern verwendet wird. Ändern oder Einstellen konnte ich den IP-Bereich nicht. Anbei die Liste der Einstellungen für Phase 1 proposal (Authentication):

Negotiation mode: agressive
My Identifier: My IP-Address
Encryption algorithm: 3DES
Hash algorithm: SHA1
DH key group: 2
Lifetime: 3600
Authentication method: Pre-shared key

Weiter gehts mit Phase 2 proposal (SA / Key Exchange) :

Protocol: ESP
Encryption algorithm: 3DES, Blowfish, CAST128, Rijndael (AES), Rijndael 256
Hash algorithm: SAH1, MD5
PFS key group: off
Lifetime: 3600

Das Nokia allerdings sollte mich länger beschäftigen. Es ist nicht vorgesehen, dass ich die Konfiguration direkt auf dem Gerät vornehme. Nokia möchte gerne seine VPN-Produkte verkaufen - wie den VPN-Richtlinienserver. Die einzige Möglichkeit VPN-Konfigurationen (VPN-Richtlinien) auf dem Telefon zu installieren besteht im SIS-Paketbauen, welche dann auch noch signiert sein müssen, damit sie das Symbian 9 akzeptiert.

Um ein SIS Paket unter Linux zu bauen brauchte ich makesis.exe. Dies ist Bestandteil von GnuPoc, dem SymbianOS SDK für Linux und MacOS. Eine aktualiserte Version 1.07 enthielt dann auch makesis-4. Ein kurzes make compilierte makesis und signsis. Die folgenden Paketteile ließen sich dann zusammenbauen.

own_VPN.pin:

[POLICYNAME]
own VPN policy PSK
[POLICYDESCRIPTION]
own VPN policy PSK
[POLICYVERSION]
1.1
[ISSUERNAME]
Do not edit
[CONTACTINFO]
Do not edit

own_VPN.pkg:

:”VPN public”
&EN
%{”own VPN policy PSK”}

;
; A VPN POLICY PACKAGE
;

; LANGUAGES
; - None (English only by default)

; INSTALLATION HEADER
; - Only one component name is needed
; to support English only
; - UID is the UID of the
; VPN Policy Installer application
#{”own VPN Policy PSK”},(0×1000597E),1,0,1,TYPE = SA

; LIST OF FILES
; Policy file
“own_VPN.pol”-”C:\System\Data\Security\Install\own_VPN_psk.pol”

; Policy-information file
; - NOTE: The policy-information file
; MUST be the last file in this list!

; - FM (FILEMIME) passes the file to the
; respective MIME handler
; (in this case, the VPN Policy Installer
; application).
“own_VPN.pin”-”C:\System\Data\Security\Install\own_VPN_PSK.pin”,
FM, “application/x-ipsec-policy-info”

; REQUIRED FILES
; - The VPN Policy Installer application
(0×1000597E), 1, 0, 0, {”VPN Policy Installer”}

[0x101F7961], 0, 0, 0, {”S60ProductID”}

own_VPN.pol:

SECURITY_FILE_VERSION: 3
[INFO]
VPN
[POLICY]
sa ipsec_1 = {
esp
encrypt_alg 3
max_encrypt_bits 256
auth_alg 3
identity_remote 0.0.0.0/0
src_specific
hard_lifetime_bytes 0
hard_lifetime_addtime 3600
hard_lifetime_usetime 3600
soft_lifetime_bytes 0
soft_lifetime_addtime 3600
soft_lifetime_usetime 3600
}
remote 0.0.0.0 0.0.0.0 = { ipsec_1(<pfsense public IP>) }
inbound = { }
outbound = { }

[IKE]
ADDR: <pfsense public IP> 255.255.255.255
MODE: Aggressive
SEND_NOTIFICATION: TRUE
ID_TYPE: 11
FQDN: centerraPSK
GROUP_DESCRIPTION_II: MODP_1024
USE_COMMIT: FALSE
IPSEC_EXPIRE: FALSE
SEND_CERT: FALSE
INITIAL_CONTACT: FALSE
RESPONDER_LIFETIME: TRUE
REPLAY_STATUS: TRUE
USE_INTERNAL_ADDR: FALSE
USE_NAT_PROBE: FALSE
ESP_UDP_PORT: 0
NAT_KEEPALIVE: 60
USE_XAUTH: FALSE
USE_MODE_CFG: FALSE
REKEYING_THRESHOLD: 90
PROPOSALS: 1
ENC_ALG: 3DES-CBC
AUTH_METHOD: PRE-SHARED
HASH_ALG: SHA1
GROUP_DESCRIPTION: MODP_1024
GROUP_TYPE: DEFAULT
LIFETIME_KBYTES: 0
LIFETIME_SECONDS: 28800
PRF: NONE
PRESHARED_KEYS:
FORMAT: STRING_FORMAT
KEY: <length secret key> <secret key>

Wenn die Dateien im Ordner liegen mit makesis zusammenbauen und signsis signieren.

./makesis own_VPN.pkg own_VPN_unsigned.sis
./signsis own_VPN_unsigned.sis own_VPN.sis devcert.cer devcert.key

Das DevCert gibts bei symbiansigned. Nach dortiger Anmeldung und einem Offline-Windows Toll (doh!) kann man ein opensigned DevCert erhalten. Dabei wird der CertRequest vom Windows Programm (devcert.cer) hochgeladen und von SymbianSigned signiert. Danach ist er im persönlichen Bereich wieder herunterladbar und als devcert.cer verwendbar.

Nachdem die Hürde mit dem Nokia-SIS genommen war konnte ich die VPN-Verbindung in den Systemeinstellungen des Telefons vornehmen. Siehe dazu den LinuxJournal-Artikel und die Bilder darin.

Fazit: Ich habe was ich wollte. Das Nokia E61i / E65 macht nun IPSEC VPN zu pfsense über T-Mobile Germany. Mit der Datenoption kann ich nun eMails, Kalender, Aufgaben und Kontakte mit Zarafa / Exchange syncronisieren.

7 Responses to “Nokia E61i, ipsec VPN und pfsense”

  1. Andreas Anderson Says:

    Super, vielen Dank fuer das Howto, bin damit schon extrem weit gekommen!

    Die VPN Verbindung kommt hoch, allerdings hab ich zwei probleme:

    1) ich muss USE_MODE_CFG: TRUE setzen, sonst scheint das phone ueberhaupt nicht mit pfsense zu kommunizieren, wenn es TRUE ist, sehe ich im racoon log:

    Apr 9 02:06:19 hades racoon: INFO: respond new phase 1 negotiation: 10.20.30.254[500]10.20.30.13[500]
    Apr 9 02:06:19 hades racoon: INFO: begin Aggressive mode.
    Apr 9 02:06:19 hades racoon: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-03
    Apr 9 02:06:19 hades racoon: INFO: received Vendor ID: draft-ietf-ipsra-isakmp-xauth-06.txt
    Apr 9 02:06:19 hades racoon: INFO: received Vendor ID: CISCO-UNITY
    Apr 9 02:06:19 hades racoon: INFO: Adding xauth VID payload.
    Apr 9 02:06:19 hades racoon: INFO: ISAKMP-SA established 10.20.30.254[500]-10.20.30.13[500] spi:d40c0e32f27d7e53:edc5d89ce30ccc93
    Apr 9 02:06:19 hades racoon: INFO: Using port 0
    Apr 9 02:06:31 hades racoon: INFO: ISAKMP-SA expired 10.20.30.254[500]-10.20.30.13[500] spi:d40c0e32f27d7e53:edc5d89ce30ccc93
    Apr 9 02:06:32 hades racoon: INFO: ISAKMP-SA deleted 10.20.30.254[500]-10.20.30.13[500] spi:d40c0e32f27d7e53:edc5d89ce30ccc93
    Apr 9 02:06:32 hades racoon: INFO: Released port 0

    Das problem ist, dass das phone eine addresse wie 0.0.0.0, 0.0.0.1 oder 0.0.0.2 zugewiesen bekommt (was jedenfalls im vpn log auf me phone als virtual ip angezeigt wird).

    ich benutze das neueste pfsense 1.2 (final).

    Hast Du einen Tip fuer mich?

    Vielen Dank!

    AA

  2. leo34.net » Blog Archive » Nokia E61i UMTS (T-Mobile) und Linux (Ubuntu) Says:

    [...] ich das Nokia VPN zum Laufen bekommen habe muss nun noch der Ubuntu Linux-Laptop damit ins Internet [...]

  3. Alex Says:

    Ich muss mal was ähnliches fragen: kann der integ. Browser mit SSL umgehen und eigenen Zertifikaten bzw. Zertifikaten CAcert ?

    Geht POP3/IMAP auch über SSL ?

  4. Fabian Says:

    Ich bräuchte mal Hilfe bezüglich der Roadwarrior Konfiguration, die du getätigt hast.

    Hast du PFsense hinter einem bereits vorhandenden Router am laufen?

  5. Daniel Says:

    pfsense läuft auf einer öffentlichen IP - pfsense ist der Router in diesem Fall. Damit umgehe ich die NAT Probleme mit IPsec. In pfsense habe ich dann lediglich die Einstellungen wie oben gemacht.

  6. Fabian Says:

    Ok danke…ich stehe aber vor einigen Problemen und ich hoffe du kannst mir helfen.
    Ich habe vor der, auf einer VMware Maschiene laufenden, PFsense einen NAT Router (Speedport W701V). Das heißt, damit mein Handy (Nokia E90) zum VPN durchkommt, muss es am Router vorbei.
    Das 2. Problem besteht in dem IP-Sec Tunnel im allgemeinen. Du schreibst etwas von RoadwarriorKonfiguration. Da ich in diesem Gebiet noch überhaupt nicht bewandert bin, bitte ich darum, dass du mir einmal erläuterst was du da mit meinst und wie ich es anschließend umsetzen kann.
    Ansonsten ist das, was du geschrieben hast wirklich das erste was ich im Internet gefunden habe, was man auch erfolgreich verwerten kann.

    mfg

  7. Exchange Alternative Zarafa wird Open Source | leo34.net Says:

    [...] als AJAX und mobile Lösung. Und die Windows PDA (ActiveSync) bzw. Nokia Symbian Benutzer (z.b. Roadsync oder MailForExchange über IPSEC VPN) gibts z-push zur BlackBerry ™ ähnlichen Syncronisation. Und die Benutzer werden natürlich [...]

Leave a Reply