Problem with special character '%' inside in User-Password attribute [ freeradius 3.0.1 ]

joaocdc at gmail.com joaocdc at gmail.com
Thu Feb 26 15:57:39 CET 2015


Please, someone can help with the special character '%' inside in
User-Password attribute?
the radius generates a exception in authorize phase, and the authentication
fails.

This occurs when PAP is selected.

Is possible escape special characters in User-Password attribute? how i do
it? please show me an example.

I'm using freeradius 3.0.1, with CentOS 7. In the past I was using
freeradius 2.1 with Debian 6, this problem never occurred.

At below debug is possible see the problem.


rad_recv: Access-Request packet from host 172.25.89.1 port 32768, id=250,
length=157
    User-Name = '0006882'
    User-Password = '#mypass123%'
    Service-Type = Login-User
    NAS-IP-Address = 172.25.89.1
    NAS-Port = 4
    NAS-Identifier = 'WLC-PTI'
    NAS-Port-Type = Wireless-802.11
    Airespace-Wlan-Id = 8
    Calling-Station-Id = '00-db-df-27-2a-45'
    Called-Station-Id = 'dc-a5-f4-1d-1b-60:PTI-WIFI'
    Message-Authenticator = 0xe6054dc6d0e931d8210d4851a1c68e34
(24) # Executing section authorize from file
/etc/raddb/sites-enabled/default
(24)   authorize {
(24)   ? if (User-Name !~ /@/)
(24)   ? if (User-Name !~ /@/) -> TRUE
(24)   if (User-Name !~ /@/) {
(24)    update request {
(24)         Realm := "pti"
(24)    } # update request = noop
(24)   } # if (User-Name !~ /@/) = noop
(24)   [preprocess] = ok
(24)   [chap] = noop
(24)   [mschap] = noop
(24)   [digest] = noop
(24) suffix : Request already has destination realm set.  Ignoring.
(24)   [suffix] = ok
(24)   update control {
(24)         Proxy-To-Realm := 'LOCAL'
(24)   } # update control = noop
(24) eap : No EAP-Message, not doing EAP
(24)   [eap] = noop
(24)   [files] = noop
(24)   ? if ( Service-Type == "Login-User")
(24)     expand: "Login-User" -> 'Login-User'
(24)   ? if ( Service-Type == "Login-User")  -> TRUE
(24)   if ( Service-Type == "Login-User")  {
(24)    ? if ( Realm == "pti")
(24)     expand: "pti" -> 'pti'
(24)    ? if ( Realm == "pti")  -> TRUE
(24)    if ( Realm == "pti")  {
rlm_ldap (ldap_pti): Reserved connection (4)
(24) ldap_pti :     expand:
"(&(uid=%{%{Stripped-User-Name}:-%{User-Name}})(habitantActive=TRUE)(habitantLoginActive=TRUE)(habitantWirelessActive=TRUE))"
->
'(&(uid=0006882)(habitantActive=TRUE)(habitantLoginActive=TRUE)(habitantWirelessActive=TRUE))'
(24) ldap_pti :     expand: "ou=instituicoes,dc=parque" ->
'ou=instituicoes,dc=parque'
(24) ldap_pti : Performing search in 'ou=instituicoes,dc=parque' with
filter
'(&(uid=0006882)(habitantActive=TRUE)(habitantLoginActive=TRUE)(habitantWirelessActive=TRUE))'
(24) ldap_pti : Waiting for search result...
(24) ldap_pti : User object found at DN
"uid=0006882,cn=0040574,ou=instituicoes,dc=parque"
(24) ldap_pti : Processing user attributes
(24) ldap_pti :         control:Password-With-Header +=
'{SSHA}395fMQk8eSN+V+vDRKuc4JuAPTh7eV4c'
(24) ldap_pti :         control:NT-Password :=
0x4335413336304144323434343343453142413437383138464642383638323046
rlm_ldap (ldap_pti): Released connection (4)
(24)     [ldap_pti] = ok
(24)    } # if ( Realm == "pti")  = ok
(24)    ? if ( Realm == "vst")
(24)     expand: "vst" -> 'vst'
(24)    ? if ( Realm == "vst")  -> FALSE
(24)   } # if ( Service-Type == "Login-User")  = ok
(24)   [expiration] = noop
(24)   [logintime] = noop
(24) pap : Normalizing NT-Password from hex encoding, 32 bytes -> 16 bytes
(24) pap : Normalizing SSHA1-Password from base64 encoding, 32 bytes -> 24
bytes
(24)   [pap] = updated
(24)  } #  authorize = updated
(24) Found Auth-Type = PAP
(24) # Executing group from file /etc/raddb/sites-enabled/default
(24)  Auth-Type PAP {
(24) pap : login attempt with password "#mypass123%"
(24) pap : Using NT encryption.
(24) ERROR: pap : #mypass123%
(24) ERROR: pap :         ^ Invalid variable expansion
(24) pap :     expand: "%{mschap:NT-Hash %{User-Password}}" -> ''
(24) ERROR: pap : NT password check failed
(24) pap : Passwords don't match
(24)   [pap] = reject
(24)  } # Auth-Type PAP = reject
(24) Failed to authenticate the user.
(24) Login incorrect (pap: #mypass123%): [0006882] (from client
controladora-wlan-1 port 4 cli 00-db-df-27-2a-45)
(24) Using Post-Auth-Type Reject
(24) # Executing group from file /etc/raddb/sites-enabled/default
(24)  Post-Auth-Type REJECT {
(24) attr_filter.access_reject :     expand: "%{User-Name}" -> '0006882'
(24) attr_filter.access_reject : Matched entry DEFAULT at line 11
(24)   [attr_filter.access_reject] = updated
(24) eap : Request didn't contain an EAP-Message, not inserting EAP-Failure
(24)   [eap] = noop
(24)   remove_reply_message_if_eap remove_reply_message_if_eap {
(24)    ? if (reply:EAP-Message && reply:Reply-Message)
(24)    ? if (reply:EAP-Message && reply:Reply-Message)  -> FALSE
(24)    else else {
(24)     [noop] = noop
(24)    } # else else = noop
(24)   } # remove_reply_message_if_eap remove_reply_message_if_eap = noop
(24)  } # Post-Auth-Type REJECT = updated
(24) Finished request 24.
Waking up in 0.3 seconds.
Waking up in 0.6 seconds.
(24) Sending delayed reject
Sending Access-Reject of id 250 from 186.233.12.25 port 1812 to 172.25.89.1
port 32768
Waking up in 2.2 seconds.

-- 
João Paulo de Lima Barbosa

"Para chegar aonde a maioria não chega, você precisa fazer o que a maioria
não faz."


More information about the Freeradius-Users mailing list