synex-m
Goto Top

Freeradius mit ApacheDS

Hallo zusammen,

ich brauche mal eure Expertise.

Ich habe in meinem kleinen Netzwerk auf einem Raspberry Pi einen Freeradius Server und einen Apache Directory Server installiert und ich habe nach langem Kampf es geschafft, dass LDAP-Nutzer im Netzwerk angemeldet werden können.
Allerdings funktionieren die Logins nur mit Passwörtern, die im Klartext im LDAP hinterlegt sind. Hinterlege ich stattdessen einen Passwort-Hash (z.B. sha512..) funktioniert der Login überhaupt nicht mehr.

Meine User-Struktur:
dn: cn=test,ou=users,dc=example,dc=de
...
objectclass: inetOrgPerson
...
radiusProfileDn: uid=vlan,ou=profiles,...
cn: test
description: user
givenname: test
sn: test
uid: test
mail: test@test.de
userPassword: {SHA512}ABC...

Funktioniert das überhaupt mit gehashten Passwörtern oder mache ich da noch was falsch? Ich hoffe mir kann da einer weiterhelfen face-smile

Viele Grüße

Content-ID: 476490

Url: https://administrator.de/contentid/476490

Ausgedruckt am: 17.11.2024 um 00:11 Uhr

Dani
Dani 23.07.2019 um 18:10:37 Uhr
Goto Top
Moin,
erst einmal zu den Basics:
Welches Betiebssystem kommt zum Einsatz?
Welche Version von FreeRadius hast du installiert?
Welche Version von ApacheDS hast du installiert?
Was steht im Logfile vom FreeRadius? Das ist durch aus interessant, da ich folgendes Issue bei FreeRadius gefunden habe.


Gruß,
Dani
synex-m
synex-m 23.07.2019 um 19:57:38 Uhr
Goto Top
Hi,

also auf dem Pi läuft Raspian Stretch, Freeradius läuft in der Version 3.0.12, ApacheDS in der Version 2.0.0.M24.

Hier ein Auszug aus dem Logfile (ich denke mit der relevanten Stelle):

(8) ldap: Processing user attributes
(8) ldap: control:Password-With-Header += '{SHA256}n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg='  
rlm_ldap (ldap): Released connection (5)
rlm_ldap (ldap): Need 1 more connections to reach 10 spares
rlm_ldap (ldap): Opening additional connection (7), 1 of 30 pending slots used
rlm_ldap (ldap): Connecting to ldap://localhost:10389
rlm_ldap (ldap): Waiting for bind result...
rlm_ldap (ldap): Bind successful
(8)       [ldap] = updated
(8)       [expiration] = noop
(8)       [logintime] = noop
(8) pap: Converted: &control:Password-With-Header -> &control:SHA2-Password
(8) pap: Removing &control:Password-With-Header
(8) pap: Normalizing SHA2-Password from base64 encoding, 44 bytes -> 32 bytes
(8) pap: WARNING: Auth-Type already set.  Not setting to PAP
(8)       [pap] = noop
(8)     } # authorize = updated
(8)   Found Auth-Type = eap
(8)   # Executing group from file /etc/freeradius/3.0/sites-enabled/inner-tunnel
(8)     authenticate {
(8) eap: Expiring EAP session with state 0x468a694746e4738b
(8) eap: Finished EAP session with state 0x468a694746e4738b
(8) eap: Previous EAP request found for state 0x468a694746e4738b, released from the list
(8) eap: Peer sent packet with method EAP MSCHAPv2 (26)
(8) eap: Calling submodule eap_mschapv2 to process data
(8) eap_mschapv2: # Executing group from file /etc/freeradius/3.0/sites-enabled/inner-tunnel
(8) eap_mschapv2:   authenticate {
(8) mschap: WARNING: No Cleartext-Password configured.  Cannot create NT-Password
(8) mschap: WARNING: No Cleartext-Password configured.  Cannot create LM-Password
(8) mschap: Creating challenge hash with username: test
(8) mschap: Client is using MS-CHAPv2
(8) mschap: ERROR: FAILED: No NT/LM-Password.  Cannot perform authentication
(8) mschap: ERROR: MS-CHAP2-Response is incorrect
(8)     [mschap] = reject
(8)   } # authenticate = reject
(8) eap: Sending EAP Failure (code 4) ID 110 length 4
(8) eap: Freeing handler
(8)       [eap] = reject
(8)     } # authenticate = reject
(8)   Failed to authenticate the user
(8)   Using Post-Auth-Type Reject
(8)   # Executing group from file /etc/freeradius/3.0/sites-enabled/inner-tunnel
(8)     Post-Auth-Type REJECT {
(8) attr_filter.access_reject: EXPAND %{User-Name}
(8) attr_filter.access_reject:    --> test
(8) attr_filter.access_reject: Matched entry DEFAULT at line 11
(8)       [attr_filter.access_reject] = updated
(8)       update outer.session-state {
(8)         &Module-Failure-Message := &request:Module-Failure-Message -> 'mschap: FAILED: No NT/LM-Password.  Cannot perform authentication'  
(8)       } # update outer.session-state = noop
(8)     } # Post-Auth-Type REJECT = updated
(8) } # server inner-tunnel
(8) Virtual server sending reply
(8)   MS-CHAP-Error = "nE=691 R=1 C=e375e88fb87190fb1f7f9bcc63eb3791 V=3 M=Authentication failed"  
(8)   EAP-Message = 0x046e0004
(8)   Message-Authenticator = 0x00000000000000000000000000000000
(8) eap_peap: Got tunneled reply code 3
(8) eap_peap:   MS-CHAP-Error = "nE=691 R=1 C=e375e88fb87190fb1f7f9bcc63eb3791 V=3 M=Authentication failed"  
(8) eap_peap:   EAP-Message = 0x046e0004
(8) eap_peap:   Message-Authenticator = 0x00000000000000000000000000000000
(8) eap_peap: Got tunneled reply RADIUS code 3
(8) eap_peap:   MS-CHAP-Error = "nE=691 R=1 C=e375e88fb87190fb1f7f9bcc63eb3791 V=3 M=Authentication failed"  
(8) eap_peap:   EAP-Message = 0x046e0004
(8) eap_peap:   Message-Authenticator = 0x00000000000000000000000000000000
(8) eap_peap: Tunneled authentication was rejected
(8) eap_peap: FAILURE
(8) eap: Sending EAP Request (code 1) ID 111 length 46
(8) eap: EAP session adding &reply:State = 0x41a2f08249cde98e
(8)     [eap] = handled
(8)   } # authenticate = handled
(8) Using Post-Auth-Type Challenge
(8) Post-Auth-Type sub-section not found.  Ignoring.
(8) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(8) session-state: Saving cached attributes
(8)   Module-Failure-Message := "mschap: FAILED: No NT/LM-Password.  Cannot perform authentication"  
(8) Sent Access-Challenge Id 200 from 192.168.2.23:1812 to 192.168.2.24:56215 length 0
(8)   EAP-Message = 0x016f002e1900170303002354f06bdaf99d19ab1b6ddfa3252f85c8c8d4530436686c4dedb6503439559fb71e2808
(8)   Message-Authenticator = 0x00000000000000000000000000000000
(8)   State = 0x41a2f08249cde98e3c8096d1cd959d8c
(8) Finished request

Den Link hatte ich auch schon gefunden und verschiedene Hashes ausprobiert, um auszuschließen, dass ich auch so einen "Sonntagshash" erwischt habe face-big-smile. Leider ohne Erfolg.
BitBurg
Lösung BitBurg 23.07.2019 aktualisiert um 21:26:47 Uhr
Goto Top
Hi synex-m,

PEAP/EAP-MSCHAPv2 funktioniert nur mit entweder Klartext-Passwörtern oder deren NT-Hashes. MS-CHAPv2 kann mit anderen Werten nichts anfangen. Der Chefentwicker von FreeRADIUS hat auf seiner Homepage eine Tabelle mit den Passwort-Formaten.

Protokollmatrix

BB
synex-m
synex-m 24.07.2019 um 15:54:49 Uhr
Goto Top
Ah..super..danke für die Info. Das ist es.