UserDN escape problem and Group membership checking in 3.0.3

Winders, Timothy A twinders at southplainscollege.edu
Wed Nov 19 21:49:24 CET 2014


On 11/19/14, 1:35 PM, "Arran Cudbard-Bell" <a.cudbardb at freeradius.org>
wrote:


>
>> On 19 Nov 2014, at 13:17, Winders, Timothy A
>><twinders at southplainscollege.edu> wrote:
>> 
>> I have FreeRadius 3.0.3 installed on Ubuntu 14.0.4 (free radius
>> 3.0.3-ppa1~trustry package)
>> 
>> I have everything setup with Active Directory for user authentication.
>> This is working correctly, but I am having a problem with Active
>>Directory
>> group membership checking. It appears the problem is with the way
>> FreeRadius escapes the UserDN when doing the query.
>
>Yeah pairparsevalue was molesting the DN string before writing it to the
>DN attribute.
>
>It shouldn't really have been de-escaping \, as it's not something we
>escape normally, and the LDAP code shouldn't of been calling a function
>that used pairparsevalue anyway.
>
>So i've fixed both those issues. The fix will go in 3.0.5 which'll be
>released very soon. If you could build from v3.0.x HEAD and check it's
>resolved, that'd be helpful.



OK.  I think I have done this correctlyŠ

I saved my existing /etc/freeradius configuration files and then removed
all the freeradius-3.0.3 packages from the system.

I downloaded the v3.0.x.zip file from
https://github.com/FreeRADIUS/freeradius-server/archive/v3.0.x.zip

I unzipped the file to /usr/local/src and ran ./configure from the
directory, looked through the output and corrected all relevant WARNING
messages, installing a TON of -dev packages to the system.  Finally ran
make and make install.

I saved the new /usr/local/etc/raddb files and moved my previous
/etc/freeradius/* files to /usr/local/etc/raddb/*

/usr/local/sbin/radiusd -v reports FreeRADIUS Version 3.0.5, for host
x86_64-unknown-linux-gnu

I ran /usr/local/sbin/radiusd -XC to check configured files.  Fixed the
problems with clients.conf (ipaddr format changes between 3.0.3 and
3.0.5?) and finally ran /usr/local/sbin/radiusd -X and connected with my
client.

I got the same badly escaped DN as before.


(12)       if (LDAP-Group == "CN=Students Security Group,OU=Standard
Groups,OU=Groups,OU=SPC,DC=southplainscollege,DC=edu") {
(12)       Searching for user in group "CN=Students Security
Group,OU=Standard Groups,OU=Groups,OU=SPC,DC=southplainscollege,DC=edu"
rlm_ldap (ldap): Reserved connection (2)
(12)       Using user DN from request "CN=Winders\, Tim
(0552),OU=Students,OU=SPC,DC=southplainscollege,DC=edu"
(12)       Checking for user in group objects
(12)       EXPAND (&(objectClass=group)(member=%{control:Ldap-UserDn}))
(12)          --> (&(objectClass=group)(member=CN\3dWinders\5c\5c\2c Tim
\280552\29\2cOU\3dStudents\2cOU\3dSPC\2cDC\3dsouthplainscollege\2cDC\3dedu)
)
(12)       Performing search in 'CN=Students Security Group,OU=Standard
Groups,OU=Groups,OU=SPC,DC=southplainscollege,DC=edu' with filter
'(&(objectClass=group)(member=CN\3dWinders\5c\5c\2c Tim
\280552\29\2cOU\3dStudents\2cOU\3dSPC\2cDC\3dsouthplainscollege\2cDC\3dedu)
)', scope 'sub'
(12)       Waiting for search result...
(12)       Search returned no results
(12)       Search returned not found




Either I downloaded the wrong source files, or the change you thought you
corrected didn¹t fix the problem...


-- 
Tim Winders

Associate Dean of Information Technology
South Plains College
(806) 716-2369




More information about the Freeradius-Users mailing list