Inhalt

Einführung

Voraussetzungen

Netzwerkdiagramm

Anforderungen

Verwendete Komponenten

Konventionen

Hintergrund

IOS - Erstkonfiguration

IOS - CA

IOS - Identitätszertifikat

IOS - Konfiguration von AAA und Radius

ACS Erstkonfiguration

IOS FlexVPN-Konfiguration

Windows-Konfiguration

Importieren von CA in Windows Trusts

Konfigurieren des AnyConnect XML-Profils

Tests

Überprüfung

IOS-Router

Windows

Bekannte Vorbehalte und Probleme

Verschlüsselung der nächsten Generation

Zugehörige Informationen

Einführung

Dieses Dokument enthält eine Beispielkonfiguration für die Einrichtung des Remote-Zugriffs unter IOS mithilfe des FlexVPN-Toolkits.

Mit dem Remote Access VPN können Endkunden, die verschiedene Betriebssysteme verwenden, über ein nicht sicheres Medium wie das Internet sicher eine Verbindung zu ihrem Unternehmens- oder Heimnetzwerk herstellen. Im dargestellten Szenario wird der VPN-Tunnel mithilfe des IKEv2-Protokolls auf einem Cisco IOS-Router terminiert.

Dieses Dokument zeigt, wie Benutzer mithilfe des Access Control Server (ACS) mithilfe der EAP-MD5-Methode authentifiziert und autorisiert werden.

Voraussetzungen

Netzwerkdiagramm

Der Cisco IOS-Router hat zwei Schnittstellen - eine zum ACS 5.3:

Anforderungen

Für dieses Dokument bestehen keine speziellen Anforderungen.

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:

- ACS 5.3 mit Patch 6

- IOS-Router mit 15.2(4)M-Software

- Windows 7 PC mit AnyConnect 3.1.01065

Konventionen

Weitere Informationen zu Dokumentkonventionen finden Sie in den Cisco Technical Tips Conventions (Technische Tipps zu Konventionen von Cisco).

Hintergrund

In IKEv1 XAUTH wird in Phase 1.5 die Authentifizierung von Benutzern lokal auf einem IOS-Router und remote mithilfe von RADIUS/TACACS+ verwendet. IKEv2 unterstützt XAUTH und Phase 1.5 nicht mehr. Es enthält integrierte EAP-Unterstützung, die in Phase IKE_AUTH erfolgt. Der größte Vorteil ist das IKEv2-Design, und EAP ist ein bekannter Standard.

EAP unterstützt zwei Modi:

- Tunneling - EAP-TLS, EAP/PSK, EAP-PEAP usw.

- Nicht-Tunneling - EAP-MSCHAPv2, EAP-GTC, EAP-MD5 usw.

In diesem Beispiel wird EAP-MD5 im Nicht-Tunneling-Modus verwendet, da es sich um die in ACS 5.3 derzeit unterstützte äußere EAP-Authentifizierungsmethode handelt.

EAP kann nur für den Authentifizierungs-Initiator (Client) zum Responder (in diesem Fall IOS) verwendet werden.

IOS - Erstkonfiguration

IOS - CA

Zunächst müssen Sie eine Zertifizierungsstelle (Certificate Authority, CA) erstellen und ein Identitätszertifikat für den IOS-Router erstellen. Der Client überprüft die Identität des Routers anhand dieses Zertifikats.

Die Konfiguration der CA in IOS sieht wie folgt aus:

crypto pki server CA

grant auto

hash sha1

eku server-auth client-auth

Sie müssen sich an die Extended Key Usage (Server-Auth erforderlich für EAP, für RSA-SIG auch Client-Auth) erinnern.

Aktivieren Sie CA mit dem Befehl no shutdown in der CA "crypto pki".

IOS - Identitätszertifikat

Aktivieren Sie anschließend SCEP (Simple Certificate Enrollment Protocol) für Zertifikate, und konfigurieren Sie Trustpoint.

ip http server

crypto pki trustpoint CA-self

enrollment url http://10.1.1.2:80

fqdn 10.1.1.2

ip-address 10.1.1.2

subject-name cn=10.1.1.2,ou=TAC

revocation-check none

eku request server-auth client-auth

Authentifizieren und registrieren Sie anschließend das Zertifikat:

(config)#crypto pki authenticate CA-self

Certificate has the following attributes:

Fingerprint MD5: 741C671C 3202B3AE 6E05161C 694CA53E

Fingerprint SHA1: 8C99513C 2198470F 7CB58FA2 32D8AA8D FC31D1ED

% Do you accept this certificate? [yes/no]: yes

Trustpoint CA certificate accepted.

R1(config)#crypto pki enroll CA-self

%

% Start certificate enrollment ..

% Create a challenge password. You will need to verbally provide this

password to the CA Administrator in order to revoke your certificate.

For security reasons your password will not be saved in the configuration.

Please make a note of it.

Password:

Re-enter password:

% The subject name in the certificate will include: cn=10.1.1.2,ou=TAC

% The subject name in the certificate will include: 10.1.1.2

% Include the router serial number in the subject name? [yes/no]: no

% The IP address in the certificate is 10.1.1.2

Request certificate from CA? [yes/no]: yes

% Certificate request sent to Certificate Authority

% The 'show crypto pki certificate verbose CA-self' command

will show the fingerprint.

R1(config)#

*Dec  2 10:57:44.141: CRYPTO_PKI:  Certificate Request Fingerprint MD5:

BF8EF4B6 87FA8162 9079F917 698A5F36

*Dec  2 10:57:44.141: CRYPTO_PKI:  Certificate Request Fingerprint SHA1:

AC13FEA3 295F7AE6 7014EF60 784E33AF FD94C41D

R1(config)#

*Dec  2 10:57:44.198: %PKI-6-CERTRET: Certificate received from

Certificate Authority

Wenn Sie in AnyConnect keine Aufforderungsmeldungen erhalten möchten, denken Sie daran, dass der Wert der im AnyConnect-Profil konfigurierten Hostnamen/IP-Adressen entsprechen muss.

In diesem Beispiel cn=10.1.1.2. Daher wird in AnyConnect 10.1.1.2 als IP-Adresse des Servers im AnyConnect XML-Profil eingegeben.

IOS - Konfiguration von AAA und Radius

Sie müssen RADIUS- und AAA-Authentifizierung und -Autorisierung konfigurieren:

aaa new-model

radius-server host 192.168.56.202 key cisco

aaa group server radius SERV

server 192.168.56.202

aaa authentication login eap-list group SERV

aaa authorization network eap-list group SERV

ACS Erstkonfiguration

Fügen Sie zunächst das neue Netzwerkgerät im ACS hinzu (Netzwerkressourcen > Netzwerkgeräte und AAA-Clients > Erstellen):

Hinzufügen eines Benutzers (Benutzer- und Identitätsdaten > Interne Identitätsdaten > Benutzer > Erstellen):

Fügen Sie einen Benutzer zur Autorisierung hinzu. In diesem Beispiel ist es IKETEST. Das Kennwort muss "cisco" lauten, da es sich um den von IOS gesendeten Standardwert handelt.

Erstellen Sie anschließend ein Autorisierungsprofil für die Benutzer (Richtlinienelemente > Autorisierung und Berechtigungen > Netzwerkzugriff > Autorisierungsprofile > Erstellen).

In diesem Beispiel wird sie POOL genannt. In diesem Beispiel wird das AV-Paar für Split-Tunnel (als Präfix) und die Framed-IP-Adresse als IP-Adresse eingegeben, die dem angeschlossenen Client zugewiesen wird. Eine Liste aller unterstützten AV-Paare finden Sie hier: http://www.cisco.com/en/US/docs/ios-xml/ios/sec_conn_ike2vpn/configuration/15-2mt/sec-apx-flex-rad.html

Anschließend müssen Sie die Unterstützung von EAP-MD5 (für Authentifizierung) und PAP/ASCII (für Autorisierung) in der Zugriffsrichtlinie aktivieren. In diesem Beispiel wird die Standardeinstellung verwendet (Zugriffsrichtlinien > Standard-Netzwerkzugriff):

Erstellen Sie eine Bedingung für in der Zugriffsrichtlinie, und weisen Sie das erstellte Autorisierungsprofil zu. In diesem Fall wird eine Bedingung für NDG:Location in All Locations (NDG:Standort an allen Standorten) erstellt. Daher wird für alle RADIUS-Autorisierungsanfragen ein POOL-Autorisierungsprofil (Zugriffsrichtlinien > Zugriffsdienste > Standard-Netzwerkzugriff) bereitgestellt:

Sie sollten auf einem IOS-Router testen können, wenn der Benutzer sich korrekt authentifizieren kann:

R1#test aaa group SERV user3 Cisco123 new-code

User successfully authenticated

USER ATTRIBUTES

username             0   "user3"

addr                 0   192.168.100.200

route-set            0   "prefix 10.1.1.0/24"

IOS FlexVPN-Konfiguration

Sie müssen einen IKEv2-Vorschlag und eine IKEv2-Richtlinie erstellen (Sie müssen dies möglicherweise nicht tun, siehe CSCtn59317 ). Die Richtlinie wird nur für eine der IP-Adressen (10.1.1.2) in diesem Beispiel erstellt.

crypto ikev2 proposal PROP

encryption 3des

integrity sha1

group 2

crypto ikev2 policy 5

match address local 10.1.1.2

proposal PROP

Erstellen Sie anschließend ein IKEV2-Profil und ein IPsec-Profil, das an eine virtuelle Vorlage gebunden wird.

Stellen Sie sicher, dass Sie die http-url-Zertifizierung ausschalten, wie im Konfigurationsleitfaden empfohlen.

crypto ikev2 profile PROF

match identity remote address 0.0.0.0

match identity remote key-id IKETEST

authentication remote eap query-identity

authentication local rsa-sig

pki trustpoint CA-self

aaa authentication eap eap-list

aaa authorization user eap list eap-list IKETEST

virtual-template 1

no crypto ikev2 http-url cert

crypto ipsec transform-set transform1 esp-3des esp-sha-hmac

crypto ipsec profile PROF

set transform-set transform1

set ikev2-profile PROF

interface Virtual-Template1 type tunnel

ip unnumbered Ethernet0/0

tunnel mode ipsec ipv4

tunnel protection ipsec profile PROF

In diesem Beispiel wird die Autorisierung basierend auf dem Benutzer IKETEST eingerichtet, der in der ACS-Konfiguration erstellt wurde.

Windows-Konfiguration

Importieren von CA in Windows Trusts

Exportieren Sie das Zertifizierungsstellenzertifikat in IOS (Exportieren Sie das Identitätszertifikat, und nehmen Sie nur den ersten Teil):

R1(config)#crypto pki export CA-self pem terminal

% CA certificate:

-----BEGIN CERTIFICATE-----

MIIB8zCCAVygAwIBAgIBATANBgkqhkiG9w0BAQUFADANMQswCQYDVQQDEwJDQTAe

Fw0xMjExMjYxNzMzMzlaFw0xNTExMjYxNzMzMzlaMA0xCzAJBgNVBAMTAkNBMIGf

MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvDR4lHOcrj42QfHpRuNu4EyFrLR8H

TbPanXYV+GdCBmu53pDILE00ASEHByD6DYBx01EZuDsiolJ7t2MPTguB+YZe6V4O

JbtayyxtZGmF7+eDqRegQHHC394adQQWl2ojgQiuTHeRDTqDJR8i5gN2Ee+KOsr3

+OjnHjUmXb/I6QIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE

AwIBhjAfBgNVHSMEGDAWgBTH5Sdh69q4HAJulLQYLbYH0Nk9zzAdBgNVHQ4EFgQU

x+UnYevauBwCbpS0GC22B9DZPc8wDQYJKoZIhvcNAQEFBQADgYEADtBLiNXnl+LC

PIgJ0nl/jH5p2IwVlzwbPbZcOsZ9mn54QaqrhmhbHnmqKQJl/20+JPE6p+4noICq

VBrxoiX2KYQ1OwmEScPpQ2XJ9vhGqtQ4Xcx3g20HhxxFDfp2XuW7hwU0W8dTCmZw

4vodj47qEXKI6pGuzauw9MN1xhkNarc=

-----END CERTIFICATE-----

Kopieren Sie den Teil zwischen BEGIN CERTIFICATE und END CERTIFICATE, fügen Sie ihn in den Editor in Windows ein und speichern Sie ihn als Datei CA.crt.

Sie müssen es wie in Trusted Root Authorities installieren (doppelklicken Sie auf Datei > Install Certificate > Place all Certificates in the following store > Trusted Root Certiorities):

Konfigurieren des AnyConnect XML-Profils

Fügen Sie in C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Profile create a file "any.xml" Folgendes ein:

<?xml version="1.0" encoding="UTF-8"?>

<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">

<ClientInitialization>

<UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon>

<AutomaticCertSelection UserControllable="true">

false</AutomaticCertSelection>

<ShowPreConnectMessage>false</ShowPreConnectMessage>

<CertificateStore>All</CertificateStore>

<CertificateStoreOverride>false</CertificateStoreOverride>

<ProxySettings>Native</ProxySettings>

<AllowLocalProxyConnections>true</AllowLocalProxyConnections>

<AuthenticationTimeout>12</AuthenticationTimeout>

<AutoConnectOnStart UserControllable="true">false</AutoConnectOnStart>

<MinimizeOnConnect UserControllable="true">true</MinimizeOnConnect>

<LocalLanAccess UserControllable="true">false</LocalLanAccess>

<ClearSmartcardPin UserControllable="true">true</ClearSmartcardPin>

<IPProtocolSupport>IPv4,IPv6</IPProtocolSupport>

<AutoReconnect UserControllable="false">true

<AutoReconnectBehavior UserControllable="false">DisconnectOnSuspend

</AutoReconnectBehavior>

</AutoReconnect>

<AutoUpdate UserControllable="false">true</AutoUpdate>

<RSASecurIDIntegration UserControllable="false">

Automatic</RSASecurIDIntegration>

<WindowsLogonEnforcement>SingleLocalLogon</WindowsLogonEnforcement>

<WindowsVPNEstablishment>LocalUsersOnly</WindowsVPNEstablishment>

<AutomaticVPNPolicy>false</AutomaticVPNPolicy>

<PPPExclusion UserControllable="false">Disable

<PPPExclusionServerIP UserControllable="false"></PPPExclusionServerIP>

</PPPExclusion>

<EnableScripting UserControllable="false">false</EnableScripting>

<EnableAutomaticServerSelection UserControllable="false">false

<AutoServerSelectionImprovement>20</AutoServerSelectionImprovement>

<AutoServerSelectionSuspendTime>4</AutoServerSelectionSuspendTime>

</EnableAutomaticServerSelection>

<RetainVpnOnLogoff>false

</RetainVpnOnLogoff>

</ClientInitialization>

<ServerList>

<HostEntry>

<HostName>IOSEAP-MD5</HostName>

<HostAddress>10.1.1.2</HostAddress>

<PrimaryProtocol>IPsec

<StandardAuthenticationOnly>true

<AuthMethodDuringIKENegotiation>EAP-MD5</AuthMethodDuringIKENegotiation>

<IKEIdentity>IKETEST</IKEIdentity>

</StandardAuthenticationOnly>

</PrimaryProtocol>

</HostEntry>

</ServerList>

</AnyConnectProfile>

Stellen Sie sicher, dass der Eintrag 10.1.1.2 genau mit CN=10.1.1.2 übereinstimmt, der für das Identitätszertifikat eingegeben wurde.

Tests

In diesem Szenario wird SSL VPN nicht verwendet. Achten Sie also darauf, dass der HTTP-Server in IOS deaktiviert ist (kein IP-HTTP-Server). Andernfalls erhalten Sie in AnyConnect die Fehlermeldung "Zugriff über einen Browser".

Wenn Sie eine AnyConnect-Verbindung herstellen, sollten Sie zur Eingabe eines Kennworts aufgefordert werden. In diesem Beispiel wurde User3 erstellt

Danach ist der Benutzer verbunden.

Überprüfung

IOS-Router

R1#show ip inter brief | i Virtual

Virtual-Access1    10.1.1.2  YES unset  up  up

Virtual-Template1  10.1.1.2  YES unset  up down

R1# show ip route 192.168.100.200

Routing entry for 192.168.100.200/32

Known via "static", distance 1, metric 0 (connected)

Routing Descriptor Blocks:

* directly connected, via Virtual-Access1

Route metric is 0, traffic share count is 1

R1#show crypto ikev2 sa

IPv4 Crypto IKEv2  SA

Tunnel-id Local  Remote  fvrf/ivrf  Status

1  10.1.1.2/4500  110.1.1.100/61021  none/none  READY

Encr: 3DES, Hash: SHA96, DH Grp:2, Auth sign: RSA, Auth verify: EAP

Life/Active Time: 86400/94 sec

IPv6 Crypto IKEv2  SA

R1#show crypto session detail

Crypto session current status

Code: C - IKE Configuration mode, D - Dead Peer Detection

K - Keepalives, N - NAT-traversal, T - cTCP encapsulation

X - IKE Extended Authentication, F - IKE Fragmentation

Interface: Virtual-Access1

Uptime: 00:04:06

Session status: UP-ACTIVE

Peer: 192.168.56.1 port 61021 fvrf: (none) ivrf: (none)

Phase1_id: IKETEST

Desc: (none)

IKEv2 SA: local 10.1.1.2/4500 remote 10.1.1.100/61021 Active

Capabilities:(none) connid:1 lifetime:23:55:54

IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 host 192.168.100.200

Active SAs: 2, origin: crypto map

Inbound:  #pkts dec'ed 1 drop 0 life (KB/Sec) 4160122/3353

Outbound: #pkts enc'ed 0 drop 0 life (KB/Sec) 4160123/3353

Sie können ein Debuggen (Debuggen von crypto ikev2) durchführen.

Windows

In den erweiterten Optionen von AnyConnect in VPN können Sie die Routendetails überprüfen, um die Split Tunneling-Netzwerke anzuzeigen:

Bekannte Vorbehalte und Probleme

- Denken Sie daran, dass SHA1 in Signatur-Hash und in der Integritätsrichtlinie von IKEv2 enthalten ist (siehe Cisco Bug ID CSCtn59317 (nur registrierte Kunden)).

- Der CN im IOS-Identitätszertifikat muss im ACS-XML-Profil dem gleichen Hostnamen entsprechen.

- Wenn Sie RADIUS AV-Paare verwenden möchten, die während der Authentifizierung bestanden wurden und die Gruppenautorisierung überhaupt nicht verwenden, können Sie dies im IKEv2-Profil verwenden:

aaa authorization user eap cached

- Bei der Autorisierung wird immer das Kennwort "cisco" für die Gruppen-/Benutzerautorisierung verwendet. Dies kann bei der Verwendung von

aaa authorization user eap list SERV (without any paramaters)

da es versucht, die Autorisierung mit dem Benutzer in AnyConnect als Benutzer und Kennwort "cisco" übergeben, was wahrscheinlich nicht das Kennwort für den Benutzer.

- Bei Problemen können Sie diese Outputs analysieren und dem Cisco TAC zur Verfügung stellen:

- debuggen crypto ikev2

- debuggen crypto ikev2 intern

- DART-Ausgaben

- Wenn Sie SSL VPN nicht verwenden, denken Sie daran, den IP-HTTP-Server zu deaktivieren (kein IP-HTTP-Server). Andernfalls versucht AnyConnect, eine Verbindung zum HTTP-Server herzustellen und erhält das Ergebnis "Zugriff über einen Browser".

Verschlüsselung der nächsten Generation

Die obige Konfiguration dient als Referenz für eine minimalistische Arbeitskonfiguration.

Cisco empfiehlt, soweit möglich die Verschlüsselungstechnologie der nächsten Generation (NGC) zu verwenden.

Aktuelle Migrationsempfehlungen finden Sie hier: http://www.cisco.com/web/about/security/intelligence/nextgen_crypto.html

Achten Sie bei der Auswahl der NGC-Konfiguration darauf, dass sowohl die Client-Software als auch die Headend-Hardware diese unterstützen. Die Router der ISR Generation 2 und ASR 1000 werden aufgrund ihrer Hardwareunterstützung für NGC als Headends empfohlen.

Auf der AnyConnect-Seite wird ab der Version AnyConnect 3.1 die Suite B-Algorithmus-Suite von NSA unterstützt.

Zugehörige Informationen

- Cisco ASA IKEv2 PKI Site-VPN

- IKEv2 Site2-Site-Debug in IOS

- FlexVPN/IKEv2: Windows 7-Buildclient: IOS-Headend: Teil I: Zertifikatauthentifizierung

- Konfigurationsleitfaden für FlexVPN und Internet Key Exchange Version 2, Cisco IOS Version 15.2M&T

- Technischer Support und Dokumentation - Cisco Systems