(RADIATOR) Radiator and LDAP performance

Mike McCauley mikem at open.com.au
Wed Mar 2 19:02:47 CST 2005


Hello Campbell,


On Thursday 03 March 2005 09:18, Campbell Simpson wrote:
> Hi people,
>
> I've got a working radiator config that's talking LDAP to Novell
> eDirectory. Now I'm looking at how efficient the LDAP authentication
> process is and this is where I need some advice. It looks to me that this
> is the only proper way to authenticate a user, the problem however is that
> it requires two binds per authentication request which will obviously have
> an effect on performance. It also seems to me that 'ServerChecksPassword'
> and 'HoldServerConnection' are mutually exclusive flags.
>
> First up Radiator needs to be authenticated against the LDAP directory
> before it can search for the user. So I have an AuthDN and AuthPassword
> set. Radiator then searches for the username with a custom search filter
> and gets the contents of the aaareply LDAP attribute. As Novell implement
> proprietary encryption for the user password I need to use the
> 'ServerChecksPassword' flag. This means there needs to be a second bind
> done on the username and password to confirm the correct password.

I note that Novell have published a method for getting the 'Universal 
Password' for a user from eDirectory.

I wonder if it would be possible for you to expose a test eDirectory port for 
us so we can test some code for accessing the Universal Password?

Cheers.

>
> So the question is is there a way to perform this authentication using only
> a single bind?
>
> Although eDirextory does support persistent connections (according to
> Novell) I can't get it working with the 'HoldServerConnection' flag. Should
> this flag work if the 'ServerChecksPassword' is set as well? As it's doing
> a bind then search then another bind to the user then it seems to me this
> can't work?? When I run a packet debug I see the two binds occurring but
> then radiator sends an unbind request. This all occurs over the same LDAP
> connection so it seems to be that when you set 'ServerChecksPassword' then
> radiator will always send and unbind request for the LDAP session even
> though 'HoldServerConnection' is set.
>
> See below packet capture, this is with 'HoldServerConnection' and
> 'ServerChecksPassword' set:
>
> thr2 -> 146.171.39.80 LDAP C port=33189 Bind Request
> 146.171.39.80 -> thr2         LDAP R port=33189 Bind Response Success
> thr2 -> 146.171.39.80 LDAP C port=33189 Search Request derefFindingBaseObj
> 146.171.39.80 -> thr2         LDAP R port=33189 Search ResDone Success
> thr2 -> 146.171.39.80 LDAP C port=33189 Bind Request
> 146.171.39.80 -> thr2         LDAP R port=33189 Bind Response Success
> thr2 -> 146.171.39.80 LDAP C port=33189 Unbind Request
>
> Here's my config:
>
> <Realm DEFAULT>
>         PreAuthHook file:"/opt/radiator/realmprefix.pl"
>         RewriteUsername s/\@ip\w\./\@/
>         AcctLogFileName %L/accounting.%R
>         WtmpFileName %L/wtmp.%R
>         PasswordLogFileName %L/auth.%R
>
>         <AuthBy LDAP2>
>                 Host    146.171.39.80
>                 Port    389
> #                HoldServerConnection
>                 ServerChecksPassword
>                 SearchFilter
> (&(groupMembership=cn=%{GlobalVar:access},ou=servic
> es,ou=THR,ou=Applications,ou=spec,ou=customers,ou=Views,o=META) (uid=%U))
> BaseDN  cn=%U,ou=%R,ou=external,ou=customers,ou=Views,o=META Scope   base
>                 AuthDN  cn=THRRadius,o=META
>                 AuthPassword    xxxx
>                 AuthAttrDef     aaareply,GENERIC,reply
>                 Version 3
>                 Debug 255
>                 NoDefault
>
>                 # This is the LDAP attribute to match the radius user name
>                 UsernameAttr   uid
>                 AddToReply  Framed-Protocol = PPP,Service-Type =
> Framed,NAS-Port -Type=%{NAS-Port-Type},NAS-IP-Address=%{NAS-IP-Address}
>
>         </AuthBy>
> </Realm>
>
> Any thoughts?
>
> Thanks
>
> Campbell

-- 
Mike McCauley                               mikem at open.com.au
Open System Consultants Pty. Ltd            Unix, Perl, Motif, C++, WWW
9 Bulbul Place Currumbin Waters QLD 4223 Australia   http://www.open.com.au
Phone +61 7 5598-7474                       Fax   +61 7 5598-7070

Radiator: the most portable, flexible and configurable RADIUS server 
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald, 
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS, 
TTLS, PEAP etc on Unix, Windows, MacOS etc.

--
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.


More information about the radiator mailing list