Frerradius with M$ SQL-Problem with query.conf

Alan DeKok aland at deployingradius.com
Mon Aug 22 18:33:42 UTC 2022


On Aug 22, 2022, at 1:58 PM, Niko Reinhard <reiniko at web.de> wrote:
> 
> We use Freeradius V3.0.17 on Cent OS7 since few years for AAA for our
> Cisco devices. We stored the AVPs in our existing M$ SQL 2008R2 database
> and connected it via Freetds and the unixodbc package from Freeradius.
> Because Cisco AAA needs the Cleartext-Password and we don't want to
> store it in cleartext in our database we wrote a simple small function
> which decrypt/encrypt the password before storing and after reading.
> Therefore we changed the "queries.conf" as follows:
> 
>  SELECT id, UserName, Attribute,dbo.DecryptPwd(Value, Attribute) as
> Value, op \
>  FROM ${authcheck_table} \
>  WHERE Username = '%{SQL-User-Name}' \
>  ORDER BY id"
> 
> This works fine without any problems.

  That's good.

> Now we want to update our configuration and added a new server with
> Oracle Linux 8 and Freeradius 3.2.0 (we installed with the sources and
> as described at networkradius.com) in the same manner as we did before
> (Freetds and freeradius-unixodbc) - but it works only if we use the
> standard SQL query.

  Hmm... We've had issues over the years with the standard SQL APIs not supporting anything other than a trivial "SELECT".   But all of those should have been fixed a while ago.

> It does not work if we use the function or a View instead a table.
> I tested our original query with tsql and isql and in both cases it
> works fine. Then I installed  Freeadius 3.0.25 and it works also not,
> but no problem with isql and tsql.

  There really isn't a lot of difference in the rlm_sql module between 3.0.17 and 3.0.25.  The main thing is some unused functions were removed.

> I added the radiusd -X output on the end of the mail. As you can see
> there is no output for the Cleartext-Password.

  The error show:

0) sql: Executing select query: SELECT id, UserName, Attribute,
dbo.DecryptPwd(Value,Attribute) as Value, op FROM  radcheck WHERE
Username = 'niklowitz' ORDER BY id
(0) sql: User found in radcheck table
(0) sql: Conditional check items matched, merging assignment check items
(0) sql:   Cleartext-Password := ""

  i.e. the output of the "Decrypt" call is empty.

> What am I doing wrong? Are there any additional settings after 3.0.17?
> Can someone help me with this?

  It should work.

  My only suggestion here is to try tracking down which release / commit broke it.  There's only a few versions between 3.0.17 and 3.0.25, and only a few changes to the rlm_sql file.  It shouldn't take longer than a few hours to track this down.

  We don't run MS SQL here, so our testing ability is limited.

> PS: There is an error in the file queries.conf at V3.0.25 from
> networkradius.com, the new variable for Authorization query missed 2
> dots (instead ${..conf it has to be ${....conf). I corrected it manually.

  Which file is that?  There's more than one "queries.conf" file.


More information about the Freeradius-Users mailing list