[iOS 4] -Tutorial- VPN on demand auf dem iPhone /iPad einrichten

ruddie

Erdapfel
Mitglied seit
22.10.10
Beiträge
1
VPN on Demand Einrichtung für iPhone 3G,3GS,4G an Cisco ASA

Inhalt
1.Zertifikate erstellen. 1
1.1.Voraussetzungen. 1
1.2.Zertifikat für das iPhone. 2
2.Export der Zertifikate. 10
3. Installation auf dem iPhone. 10


1. Zertifikate erstellen

1.1. Voraussetzungen

Wenn keine fertigen Zertifikate vorliegen, können diese mit einem Windows – Server selbst erstellt werden. Hierzu benötigt man einen Windows 2003 Enterprise Server (Standard reicht nicht aus) mit installierten Zertifikatdiensten und Verbindung zu einem Active Directory bzw. als eigenen Domaincontroller als Zertifizierungsstelle.

Für das weitere Vorgehen kann man sich eine benutzerdefinierte MMC erstellen ( Start-Ausführen-mmc – Enter ), über das Menu SNAP-IN hinzufügen fügt man die Snap-ins Zertifikate , Zertifikatvorlagen und Zertifizierungsstelle in die Konsole ein.
Das Root CA (Zertifikat) des Servers wird bereits mit Installation der Zertifikatdienste mit Hilfe des Assistenten erstellt und trägt den Namen des Servers. Unter Zertifikate- vertrauenswürdige Stammzertifizierungsstellen -findet man in der Konsole dieses Zertifikat wieder. Ein Rechtsklick auf das Zertifikat öffnet das Kontextmenü zum Export. Hier lässt man die Standardwerte stehen und exportiert das Root-CA als <Servername>.cer in ein ausgewähltes Verzeichnis (idealerweise erreichbar auch für den Client, der das iPhone- Konfigurationsprogramm hat und den Client mit dem Cisco ASA -Konfigurationsprogramm ).

1.2. Zertifikat für das iPhone

Als nächstes erstellt man das IPSec –Zertifikat für das iPhone. Hierzu muss zunächst die Registry des Zertifikatservers verändert werden. Dies geht am besten mit dem bereits installierten Tool certutil.exe. Folgende Befehle werden in der DOS – Box eingegeben:
certutil –setreg policy\SubjectAltName enabled
certutil –setreg policy\SubjectAltName2 enabled

als Ausgabe erhält man:
SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\certsrv\PolicyModules\
CertificateAuthority_MicrosoftDefault.Policy\SubjectAltName:

Old Value:
SubjectAltName REG_SZ = DISABLED: Set to EMail to set SubjectAltName extension to the email address

New Value:
SubjectAltName REG_SZ = enabled
CertUtil: -setreg command completed successfully
The CertSvc service may need to be restarted for changes to take effect.

sowie:
SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\certsrv\PolicyModules\
CertificateAuthority_MicrosoftDefault.Policy\SubjectAltName2:

Old Value:
SubjectAltName2 REG_SZ = DISABLED: Set to EMail to set SubjectAltName2 extension to the email address

New Value:
SubjectAltName2 REG_SZ = enabled
CertUtil: -setreg command completed successfully.
The CertSvc service may need to be restarted for changes to take effect.


Danach muss der Zertifizierungsdienst neu gestartet werden. In der Konsole wechselt man jetzt in die Rubrik Zertifizierungsvorlagen und identifiziert die Vorlage IPSec (Offlineanforderung). Ein Rechtsklick öffnet die Aktion „Doppelte Vorlage“, im Dialog gibt man der Vorlage einen neuen Namen und eine Laufzeit.

1.jpg


Jetzt wechselt man zum Tab Anforderungsverarbeitung und aktiviert die Option „ Exportieren von privatem Schlüssel zulassen“:

2.jpg

Als nächstes klickt man auf den Button „ Kryptografiedienstanbieter…“ und wählt die Option „Alle Kryptografiedienstanbieter auf dem Computer des Antragsstellers.
3.JPG

Die neue Vorlage kann jetzt mit „OK“ gespeichert werden. Das Erstellen der neuen Vorlage ist wichtig, da in der vorhandenen IPSec Vorlage der privaten Schlüssel nicht exportierbar ist und nur MS RSA Kryptografie zugelassen ist. Die Vorlage braucht pro Zertifikatserver nur einmal erstellt zu werden.
Jetzt wechselt man in der Konsole auf die Zertifizierungsstelle und hier auf die Gruppe „Zertifikatvorlagen“:
4.JPG

Mit einem Rechtsklick auf –neu- Zertifikatvorlage- erhält man eine Liste, aus der man die neu erstellte Vorlage auswählt. Nach Bestätigung steht die Vorlage auf dem Server für Anforderungen zur Verfügung.
Jetzt wird das Zertifikat für das iPhone angefordert. Hierzu öffnet man auf dem Server einen Browser und wählt die Adresse: http://localhost/certsrv
Auf der Begrüßungsseite wählt man den Task : Ein Zertifikat anfordern und auf der nächsten Seite ..oder senden Sie eine erweiterte Zertifikatanforderung ein
Auf der nächsten Seite wählt man - Eine Anforderung an diese Zertifizierungsstelle erstellen und einreichen - aus.

Auf der angezeigten Anforderungsseite wählt man jetzt die neu erstellte Vorlage aus:

5.jpg

Als nächstes müssen jetzt die Identifikationsdatendaten ausgefüllt werden:

6.jpg

Hier kann man die gewünschten Daten eintragen, allerdings gibt es einen wichtigen Punkt zu beachten: Eines der Felder muss zwingend den Gruppennamen der Cisco-Group-Policy , die dem VPN –Benutzer zugeordnet ist, enthalten, weil die ASA diese hier sucht. Die Zuordnung des richtigen Feldes (Zum Beispiel Firma (O) oder Abteilung (OU)) kann im Cisco ASDM vorgenommen werden. Das Feld Name gibt die Bezeichnung an, unter der das Zertifikat nachher im Zertifikatspeicher erscheint.
Unter den Schlüsseloptionen auf der Seite muss der Haken bei „Privaten Schlüssel exportierbar machen“ gesetzt sein. Weiter unten im Abschnitt zusätzliche Optionen auf der Webseite kommt ein nächster wichtiger Punkt zum Tragen:


Im Feld Attribute wird die externe IP der ASA in der Form "SAN: DNS=xxx.xxx.xxx.xxx"(Anm. d. V.: hinter dem Doppelpunkt ist keine Leerstelle, aber :D ergibt in der Vorschau immer einen Smiley) eingetragen:

7.jpg

Dieser Eintrag erzeugt das Feld SubjectAltName2 im Zertifikat, das iPhone identifiziert damit die IP des VPN –Servers. Damit dieser Eintrag erscheint, muss die Registry-Änderung im Vortext erfolgt sein. Der Eintrag des externen Hostnames an dieser Stelle führte bei den Versuchen nicht zum Erfolg, allerdings gibt es im Netz Hinweise, dass der Hostname funktioniert und die IP nicht. Hier wäre also noch ein Ansatz zur Fehlersuche, wenn es nicht klappt. Das Feld Anzeigename muss nicht gefüllt werden, allerdings wird der hier vergebene Name im iPhone Konfigurationsprogramm bei der Zertifikatauswahl angezeigt und erleichtert die Identifizierung. Nach Einreichen der Anforderung wird das Zertifikat vom Server erstellt und muss anschließend von der Webseite aus installiert werden. Beide Sicherheitsabfragen werden beantwortet und das Zertifikat sollte in der Konsole in der Gruppe Zertifikate erscheinen ( nach drücken von F5 ). Falls nicht, ist es im lokalen Speicher des Benutzers gelandet, dann findet man es im IE unter Extras-Internetoptionen –Inhalte-Zertifikate.


Hier kann man dann den Erfolg des IP - Eintrages kontrollieren, in den Details des Zertifikates taucht das Feld auf:

8.jpg


2. Export der Zertifikate

Jetzt kann dieses Zertifikat exportiert werden. Hierzu genügt ein Rechtsklick, Auswahl Alle Aufgaben – exportieren, oder im IE, der Button Exportieren. Diese Aktion erzeugt jetzt eine .pfx Datei, diese sollte im gleichen Verzeichnis, wie das Root-CA abgelegt werden. Die Angabe eines Passwortes während des Exportvorgangs empfiehlt sich aus Sicherheitsgründen. Die beiden Zertifikate (.cer und .pfx ) werden jetzt auf der ASA installiert, im ASDM der ASA wird die Zuordnung des Zertifikatfeldes eingestellt:

9.jpg

Die Bezeichnung username ist irreführend, hier ist der Group-Policy-Name gemeint.


Installation auf dem iPhone


Um das Zertifikat auf das iPhone zu bekommen, benötigt man das iPhone Konfigurationsprogramm. In diesem Programm wird ein Konfigurationsprofil erzeugt mit folgenden Payloads:

Allgemein
Dieser Abschnitt beinhaltet Bezeichnungen für das Profil und muss ausgefüllt werden, da sonst das Profil nicht installiert werden kann.


Zertifikate


Hier werden die beiden erstellten Zertifikate des Servers ausgewählt. Damit sie in der Auswahlliste angezeigt werden, müssen sie auf dem Client, der das Konfigurationsprogramm ausführt, installiert sein. Hierzu werden beide Dateien mit dem IE (Extras-Internetoptionen-Inhalte-Zertifikate) oder der MMC, Snap-in Zertifikate, importiert und im Speicher Vertrauenswürdige Stammzertifizierungsstellen abgelegt. Es hat sich gezeigt, dass ein *.pfx Zertifikat, wenn es nur im Speicher Eigene Zertifikate abgelegt ist, nicht immer im iPhone Konfigurationsprogramm angezeigt wird. Notfalls kann man das Zertifikat mit Rechtsklick-Drag and Drop in den anderen Speicher kopieren. Jetzt gilt es nur noch, beide Zertifikate in der Auswahlliste des Konfigurationsprogramms zu identifizieren, das Root-CA hat im Standardfall den Namen des Zertifikatservers, das IPSec Zertifikat kann am Anzeigenamen aus der Anforderung erkannt werden. Wenn man nicht sicher ist, sollte man sich die Details anzeigen lassen und die Seriennummer des Zertifikats vergleichen. Wurde beim Export ein Kennwort vergeben, wird dieses jetzt abgefragt, es kann dann im Zertifikatbereich des Konfigurationsprogramms eingetragen werden, wenn man dies versäumt, muss man es während der Installation des Konfigurationsprofil auf dem iPhone angeben.


VPN
Hier lässt sich jetzt die Authentifizierung auf Zertifikat umstellen, VPN on Demand kann aktiviert und das Zertifikat ausgewählt werden. Zusätzlich müssen noch der Benutzername für die VPN Verbindung zur ASA und deren IP eingetragen werden.
Das Aktivieren der Benutzer PIN ermöglicht die Eingabe des Kennwortes für den Benutzer bei der Installation.

10.jpg

Jetzt kann die Konfiguration auf das angeschlossenen iPhone übertragen werden. Wenn alles geklappt hat, gibt es anschließend eine VPN Verbindung mit der Option VPN on demand, die sich in den Einstellungen des iPhones einschalten lässt und ohne Passwortabfrage verbindet…
…allerdings auch nur hier. Wenn man Mails abruft ( Hierzu muss der Mailserver in der Liste der Hosts für VPN on Demand im Konfigurationsprogramm eingetragen sein ) oder eine interne Website öffnen möchte, kommt wieder die Passwortabfrage. Das führt zu einer weiteren Problemlösung:

Um die Passwortabfrage zu verhindern, wird die Konfiguration nicht mit dem Konfigurationsprogramm auf das iPhone übertragen, sondern mit dem Programm als Datei exportiert. Man erhält eine XML Datei mit der Erweiterung .mobileconfig.
Diese Datei wird einem beliebigen Editor geöffnet. Dann sucht man im Text nach dem Ausdruck “ XAuthName. Hinter dieser Zeile fügt man folgenden Text ein:

<key>XAuthPassword</key>​
<string>ihrpassword</string>​

11.jpg

Jetzt kann die Datei wieder gespeichert werden, sollte aber sicher aufbewahrt werden, da hier das Kennwort im Klartext eingetragen ist. Ein erneutes Laden ins Konfigurationsprogramm führt dazu, dass der vorgenommene Eintrag wieder verschwindet, deshalb muss die Konfiguration per E-Mail installiert werden, indem man sie als Anhang an ein Mail anhängt, welches an eines der auf dem iPhone konfigurierten Postfächer gesendet wird. Wenn man mit dem iPhone das Mail öffnet, startet ein Tipp auf den Anhang die Installation. Ein installiertes Profil mit gleichem Namen muss vorher deinstalliert werden, hierzu kommt aber eine Aufforderung. Danach wiederholt man die Installation. Jetzt steht einer sinnvollen VPN on Demand Nutzung nichts mehr entgegen, außer dem Umstand , dass scheinbar im StandBy Modus des iPhone zwar der regelmäßige Mailabruf funktioniert, falls er aktiviert wurde, jedoch der Tunnel nicht aufgebaut wird. Wenn das iPhone aktiv ist, funktioniert auch der VPN Aufruf. Vielleicht bringt hier irgendwann ein Update Abhilfe. Eine Fallstrick gilt es noch zu verhindern: Mit Standardeinstellungen blocken einige Mailclients Anhänge mit der Endung .mobileconfig, entweder muss diese Endung zugelassen oder ein anderer Mailclient benutzt werden.


Zuletzt noch eine Anmerkung des Autors: Ich hoffe, ich habe nichts wichtiges vergessen, die Anleitung gibt es auch als pdf mit Bildern der Dialoge zur Verdeutlichung - aus Platzgründen habe ich hier darauf verzichtet, stelle die komplette Anleitung aber gerne per Mail zur Verfügung - wer Interesse hat, kann mir eine PN schicken.