Freeradius und LDAP (Kerberos GSSAPI)

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
joe2017
Beiträge: 1286
Registriert: 07.08.2017 14:29:51

Freeradius und LDAP (Kerberos GSSAPI)

Beitrag von joe2017 » 17.09.2019 17:19:12

Hallo zusammen,

ich habe heute einen Freeradius Server aufgesetzt und wollte mir das Ganze mal anschauen.
Meine ersten Tests mit einem lokalen User waren erfolgreich. Jetzt wollte ich meine Benutzeranmeldung über LDAP abfragen. Hierzu habe ich auch folgende Einstellungen eingetragen:
nano /etc/freeradius/3.0/mods-enabled/ldap

Code: Alles auswählen

server = "ldaps://ldapserver.example.com"
identity = "cn=admin,dc=example,dc=com"
password = LDAP-Password
base_dn = "dc=example,dc=com"
port = 636
Wenn ich meinen Server jetzt wieder in den Testmodus versetze erhalte ich bei der LDAP Testanmeldung folgende Fehlermeldung.
sudo /etc/init.d/freeradius stop
freeradius -X
radtest LDAP-user LDAP-user-password localhost 10 'testing123'

Code: Alles auswählen

pap: Login attempt with password
pap: Comparing with "known good" Cleartext-Password
pap: ERROR: Cleartext password does not match "known good" password
pap: Passwords don't match
[pap] = reject
Dies liegt wahrscheinlich daran, dass meine Passwörter nicht im LDAP sondem im Kerberos Benutzer hinterlegt sind.
Ich habe meinen LDAP/Kerberos Server mit GSSAPI konfiguriert und in dem LDAP User Passwort steht lediglich der Link zu dem Kerberos Benutzer Passwort ({SASL}ldap-user@EXAMPLE.COM)

Ich müsste somit die SASL mech auf GSSAPI konfigurieren. Hierzu habe ich jedoch keine Anleitung gefunden.
Wenn ich dies in der Config Datei eintrage startet mein Radius Server nicht mehr.
nano /etc/freeradius/3.0/mods-enabled/ldap

Code: Alles auswählen

sasl {
  mech = 'GSSAPI'
}
Hat jemand eine Idee wie ich das realisieren kann?
Vielen Dank

Benutzeravatar
joe2017
Beiträge: 1286
Registriert: 07.08.2017 14:29:51

Re: Freeradius und LDAP (Kerberos GSSAPI)

Beitrag von joe2017 » 23.09.2019 12:04:42

Schönen Guten morgen,

ich wollte euch noch mal ein Auszug aus dem Log mitteilen.

Code: Alles auswählen

(0) Received Access-Request Id 82 from 127.0.0.1:48866 to 127.0.0.1:1812 length 83
(0)   User-Name = "LDAP-TestUser"
(0)   User-Password = "TestPassword"
(0)   NAS-IP-Address = FreeRadiusIP
(0)   NAS-Port = 10
(0)   Message-Authenticator = 0xba5f4a20ca45691be281da55ea037dc2
(0) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/default
(0)   authorize {
(0)     policy filter_username {
(0)       if (&User-Name) {
(0)       if (&User-Name)  -> TRUE
(0)       if (&User-Name)  {
(0)         if (&User-Name =~ / /) {
(0)         if (&User-Name =~ / /)  -> FALSE
(0)         if (&User-Name =~ /@[^@]*@/ ) {
(0)         if (&User-Name =~ /@[^@]*@/ )  -> FALSE
(0)         if (&User-Name =~ /\.\./ ) {
(0)         if (&User-Name =~ /\.\./ )  -> FALSE
(0)         if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/))  {
(0)         if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/))   -> FALSE
(0)         if (&User-Name =~ /\.$/)  {
(0)         if (&User-Name =~ /\.$/)   -> FALSE
(0)         if (&User-Name =~ /@\./)  {
(0)         if (&User-Name =~ /@\./)   -> FALSE
(0)       } # if (&User-Name)  = notfound
(0)     } # policy filter_username = notfound
(0)     [preprocess] = ok
(0)     [chap] = noop
(0)     [mschap] = noop
(0)     [digest] = noop
(0) suffix: Checking for suffix after "@"
(0) suffix: No '@' in User-Name = "LDAP-TestUser", looking up realm NULL
(0) suffix: No such realm "NULL"
(0)     [suffix] = noop
(0) eap: No EAP-Message, not doing EAP
(0)     [eap] = noop
(0)     [files] = noop
rlm_ldap (ldap): Reserved connection (0)
(0) ldap: EXPAND (uid=%{%{Stripped-User-Name}:-%{User-Name}})
(0) ldap:    --> (uid=LDAP-TestUser)
(0) ldap: Performing search in "dc=domain,dc=net" with filter "(uid=LDAP-TestUser)", scope "sub"
(0) ldap: Waiting for search result...
(0) ldap: User object found at DN "cn=Test Benutzer,ou=users,dc=domain,dc=net"
(0) ldap: Processing user attributes
(0) ldap: control:Password-With-Header += '{SASL}LDAP-TestUser@DOMAIN.NET'
rlm_ldap (ldap): Released connection (0)
Need 5 more connections to reach 10 spares
rlm_ldap (ldap): Opening additional connection (5), 1 of 27 pending slots used
rlm_ldap (ldap): Connecting to ldaps://LDAP-ServerIP:636
rlm_ldap (ldap): Waiting for bind result...
rlm_ldap (ldap): Bind successful
(0)     [ldap] = updated
(0)     [expiration] = noop
(0)     [logintime] = noop
(0) pap: Unknown header {{SASL}} in Password-With-Header, re-writing to Cleartext-Password
(0) pap: Removing &control:Password-With-Header
(0)     [pap] = updated
(0)   } # authorize = updated
(0) Found Auth-Type = PAP
(0) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(0)   Auth-Type PAP {
(0) pap: Login attempt with password
(0) pap: Comparing with "known good" Cleartext-Password
(0) pap: ERROR: Cleartext password does not match "known good" password
(0) pap: Passwords don't match
(0)     [pap] = reject
(0)   } # Auth-Type PAP = reject
(0) Failed to authenticate the user
(0) Using Post-Auth-Type Reject
(0) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(0)   Post-Auth-Type REJECT {
(0) attr_filter.access_reject: EXPAND %{User-Name}
(0) attr_filter.access_reject:    --> LDAP-TestUser
(0) attr_filter.access_reject: Matched entry DEFAULT at line 11
(0)     [attr_filter.access_reject] = updated
(0)     [eap] = noop
(0)     policy remove_reply_message_if_eap {
(0)       if (&reply:EAP-Message && &reply:Reply-Message) {
(0)       if (&reply:EAP-Message && &reply:Reply-Message)  -> FALSE
(0)       else {
(0)         [noop] = noop
(0)       } # else = noop
(0)     } # policy remove_reply_message_if_eap = noop
(0)   } # Post-Auth-Type REJECT = updated
(0) Delaying response for 1.000000 seconds
Waking up in 0.3 seconds.
Waking up in 0.6 seconds.
(0) Sending delayed response
(0) Sent Access-Reject Id 82 from 127.0.0.1:1812 to 127.0.0.1:48866 length 20
Waking up in 3.9 seconds.
(0) Cleaning up request packet ID 82 with timestamp +3
Mein Benutzer wird im LDAP Server gefunden. Jedoch gibt es einfach nur ein Problem mit dem Passwort ('{SASL}LDAP-TestUser@DOMAIN.NET').

Benutzeravatar
joe2017
Beiträge: 1286
Registriert: 07.08.2017 14:29:51

Re: Freeradius und LDAP (Kerberos GSSAPI)

Beitrag von joe2017 » 24.09.2019 15:06:37

Zu der Fehlermeldung:

Code: Alles auswählen

pap: Unknown header {{SASL}} in Password-With-Header, re-writing to Cleartext-Password
Kann man den Header vielleicht irgendwie bekannt machen? Kann man das konfigurieren oder anpassen?

Antworten