iOS IKEV2 - MDM - mit EAP (Radius) -Could not get public key for remote config id

Forum zum Thema allgemeinen Fragen zu VPN

Moderator: Lancom-Systems Moderatoren

Antworten
Henri
Beiträge: 401
Registriert: 23 Jul 2005, 01:42

iOS IKEV2 - MDM - mit EAP (Radius) -Could not get public key for remote config id

Beitrag von Henri »

Hallo,

das unser MDM kein Exchange mit Zertifikaten unterstützt, versuche ich gerade iOS VPN per APP einzurichten.
Habe im MDM IKEV2 mit EAP eingeschaltet, der Radius Server wird befragt, allerdings bricht die Angelegenheit am Ende trotzdem mit
"-Could not get public key for remote config id" ab.

Fragen:

1.) ich habe mehrere DYNDNS Adressen für den LANCOM VPN Server, meinem Verständnis nach sollte bei der VPN Aushandlung der Inhalt von "Local indentifier type" und "Local identifier" gegen den Client Wert für die Selektion des Peers geprüft werden, das scheint aber nicht zu funktionieren. Wenn ich also eine Mischung auf Site-to-Site VPNs mit IKEV2 habe und RAS, hier aber unterschiedliche Regeln möchte, wird dann nur die Remote ID zur Selektion verwendet, oder geht das auch irgendwie mit der Local ID des Routers?
2.) lt. den Samples soll immer als "Remote identifier type" "no identifier" eingetragen werden, das bekomme ich bei MDM Server nicht hin, ohne Eintrag wird die aktuelle IP Adresse verwendet und der Peer nicht selektiert. Wenn ich eine FQDN eintrage und im LANCOM "*.domain" eintrage, wird der Peer selektiert. Kann es sein, das ich o.g. Meldung daher kommt?

Vielen Dank und viele Grüße vorab

Henri


[RADIUS-Server] 2022/08/21 09:55:58,937
Received RADIUS Authentication Request request 28 from client 127.0.0.1:11350[#Loopback]:
-->found client in dynamic table
-->known attributes of request:
User-Name : vpn_client
User-Password :
Service-Type : Outbound-User
NAS-IP-Address : xxx
Calling-Station-Id : 172.20.1.211
-->user name contains no realm, using empty realm
-->realm of user is ''
-->authenticating locally
-->found user 'vpn_client in database(s)
-->authenticating via PAP
--->password match
-->response type is Accept, response attributes:
Tunnel-Type:0 : VLAN
Tunnel-Medium-Type:0: IEEE-802
Tunnel-Private-Group-Id:0: 70
-->sending response


[RADIUS-Client] 2022/08/21 09:55:58,937
Received RADIUS Accept Id 28 from 127.0.0.1 on Port 11350
-->found corr. request 28 to 127.0.0.1:1812,
Tunnel-Type:0 : VLAN
Tunnel-Medium-Type:0: IEEE-802
Tunnel-Private-Group-Id:0: 70
-->trigger requester


[RADIUS-Client] 2022/08/21 09:55:58,938
RADIUS-Client:
deregister UDP listener for responses on port 11350


[VPN-Status] 2022/08/21 09:55:58,938
IKE: Succeeded RADIUS authorization request for: RAS
Server : 127.0.0.1
Response attributes:

[VPN-Debug] 2022/08/21 09:55:58,938
+Already processed => skipping
+Already processed => skipping

[VPN-Status] 2022/08/21 09:55:58,938
Received RADIUS-SUCCESS for peer RAS
+Peer uses AUTH(RSA:SHA1)
-Could not get public key for remote config id

[VPN-Status] 2022/08/21 09:55:58,939
IKE: Removing RADIUS authorization request for: RAS
Henri
Beiträge: 401
Registriert: 23 Jul 2005, 01:42

Q

Beitrag von Henri »

Da EAP hier auch nicht hilft (jedes Gerät braucht ein eigenes Zertifikat), habe ich im Relution MDM Server jetzt SCEP mit der LANCOM Box implementiert und lt. KB https://support.lancom-systems.com/know ... d=32988309 die vereinfachte Zertifikationsanwahl konfiguriert.

Falls so etwas jemand auch einfach versuchen möchte, hilft das hier weiter. GGf. kann auch jemand diese SCEP Challenge URL analog zum MS AD einmal in den LANCOM einbauen, dann funktioniert das out-of-the-box, das spart recht viel Zeit.

Ich habe aber leider trotzdem noch ein Problem.
[VPN-Debug] 2022/08/23 17:24:29,409 Devicetime: 2022/08/23 17:24:28,932
Peer DEFAULT [responder]: Received an IKE_AUTH-REQUEST of 1426 bytes
Gateways: 92.50:500<--172.20.1.211:500
SPIs: 0xB9DA7ED021A1FD39BBD4F68212635CFC, Message-ID 1
Payloads: IDI, CERT(X509), NOTIFY(INITIAL_CONTACT), IDR, AUTH(RSA:SHA1), CP(REQUEST), NOTIFY(ESP_TFC_PADDING_NOT_SUPPORTED), NOTIFY(NON_FIRST_FRAGMENTS_ALSO), SA, TSI, TSR, NOTIFY(MOBIKE_SUPPORTED)
+IKE_SA found and assigned
+Exchange created (flags: 0x00000044)
(IKEv2-Exchange 'DEFAULT', 'ISAKMP-PEER-DEFAULT' 0xB9DA7ED021A1FD39BBD4F68212635CFC00000001, P2, RESPONDER): Setting Negotiation SA
Referencing (CHILD_SA, 0xB9DA7ED021A1FD39BBD4F68212635CFC0000000100, responder): use_count 3
Looking for payload IDI (35)...Found 1 payload.
+Received-ID iPadPro.vpn.de:FQDN matches the Expected-ID *vpn.de:FQDN
+Config ENCR transform(s): AES-CBC-256
+Received ENCR transform(s): AES-CBC-256
+Best intersection: AES-CBC-256
+Config PRF transform(s): PRF-HMAC-SHA-512 PRF-HMAC-SHA-384 PRF-HMAC-SHA-256 PRF-HMAC-SHA1
+Received PRF transform(s): PRF-HMAC-SHA-256
+Best intersection: PRF-HMAC-SHA-256
+Config INTEG transform(s): HMAC-SHA-512 HMAC-SHA-384 HMAC-SHA-256 HMAC-SHA1
+Received INTEG transform(s): HMAC-SHA-256
+Best intersection: HMAC-SHA-256
+Config DH transform(s): 31 16
+Received DH transform(s): 16
+Best intersection: 16
Looking for payload CERT(X509) (37)...Found 1 payload.
Subject: CN=iPadPro.vpn.de

[VPN-Debug] 2022/08/23 17:24:29,846 Devicetime: 2022/08/23 17:24:29,299
+Already processed => skipping
Looking for payload CERT(X509) (37)...Found 1 payload.
Subject: CN=iPadPro.vpn.de
Issuer : CN=VPN CA,O=E,C=DE
Subject: CN=iPadPro.vpn.de
Issuer : CN=VPN CA,O=E,C=DE

[VPN-Status] 2022/08/23 17:24:29,846 Devicetime: 2022/08/23 17:24:29,299
Valid OCSP-Response received
-Remote-ID is not referenced in the received certificate

Comparing id 0x6950616450726F2E76706E2E737973636F6E73756C742E6465 with:
cert-id 0x30243122302006035504030C196950616450726F2E76706E2E737973636F6E73756C742E6465 -> different types (2 != 9)
Leider verstehe ich nicht wo hier die Firmware ein Problem hat, die Remote-id im received Zertifikate solle ja CN=iPadPro.vpn.de sein, und ist doch für gut befunden wurden. Eine Besonderheit ist allerdings, dass ich im MDM Payload nur FQDN oder IPV4 bekomme, ASN1 wird unterstützt, funktioniert aber nicht. Daher ist als CN= der Namen eingetragen.

Vielen Dank

Henri

scep_challenge.js
const express = require('express');
const app = express();
const port = 8888;
const localhost = 'localhost';
const file = '/opt/nodejs/response.html';
const fs = require('fs');

try {
var text = fs.readFileSync(file,'utf8')
}
catch (e) {
console.log(e);
};

app.get('/', (req, res) => {

var headersHost = req.headers["host"];
var fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;

console.log(new Date().toLocaleString('de-DE', {timeZone: 'Europe/Berlin'}) + ' - ' + 'URL:' + fullUrl);
res.send(text);
})

app.listen(port, localhost, () => {
console.log(`Example app listening on port ${port}`)
})
/opt/nodejs/response.html
<HTML><Head><Meta HTTP-Equiv="Content-Type" Content="text/html; charset=UTF-8"><Title>Network Device Enrollment Service</Title></Head><Body BgColor=#FFFFFF><Font ID=locPageFont Face="Arial"><Table Border=0 CellSpacing=0 CellPadding=4 Width=100% BgColor=#008080><TR><TD><Font ID=locPageTitleFont Face="Arial" Size=-1 Color=#FFFFFF><LocID ID=locMSCertSrv>Network Device Enrollment Service</LocID></Font></TD></TR></Table><P ID=locPageTitle> Network Device Enrollment Service allows you to obtain certificates for routers or other network devices using the Simple Certificate Enrollment Protocol (SCEP). </P><P> To complete certificate enrollment for your network device you will need the following information: <P> The thumbprint (hash value) for the CA certificate is: <B> A9D4763C 51CC2529 8A968D05 98E453B6 </B> <P> The enrollment challenge password is: <B> E826F282A62836C2 </B> <P> This password can be used only once and will expire within 60 minutes. <P> Each enrollment requires a new challenge password. You can refresh this web page to obtain a new challenge password. </P> <P ID=locPageDesc> For more information see <A HREF=http://go.microsoft.com/fwlink/?LinkId=67852>Using Network Device Enrollment Service </A>. </P></Font></Body></HTML>
Antworten