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.
Der Cisco IOS-Router hat zwei Schnittstellen - eine zum ACS 5.3:
Für dieses Dokument bestehen keine speziellen Anforderungen.
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
Weitere Informationen zu Dokumentkonventionen finden Sie in den Cisco Technical Tips Conventions (Technische Tipps zu Konventionen von Cisco).
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.
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".
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.
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
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"
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.
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):
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.
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.
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.
In den erweiterten Optionen von AnyConnect in VPN können Sie die Routendetails überprüfen, um die Split Tunneling-Netzwerke anzuzeigen:
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".
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.
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
14-Jan-2013 |
Erstveröffentlichung |