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.