Am 20.09.10 15:51, schrieb Alexander Clouter:
PENZ Robert<[email protected]>  wrote:
and I've different switch types. Some send the MAC address lower case
the others upper case. For switches which send it lower it case it
works (as the macs are stored lower case in the db). How can I convert
them all in the clear text password attribute to lower case? The
attr_rewrite module looks good, but the only way I see is to have 6
rewrite rules each replacing one letter, but that seems inefficient.
The matching in the SQL Database works case insensitive and returns a
row but the pap check logs following:

Do the mac-auth via unlang and not PAP.
----
policy {
   ...

   mac_auth {
     if (Realm == NULL&&  !(EAP-Message)&&  NAS-Port-Type == Ethernet \
                &&  Service-Type == Call-Check \
                &&  User-Name == "%{User-Password}" \
                &&  User-Name =~ /^[0-9a-f]{12}$/i \
                &&  Calling-Station-Id =~ 
/^([0-9a-f]{2})-([0-9a-f]{2})-([0-9a-f]{2})-([0-9a-f]{2})-([0-9a-f]{2})-([0-9a-f]{2})$/i
 \
                &&  User-Name =~ /^%{1}%{2}%{3}%{4}%{5}%{6}$/i) {
       ok
     }
     else {
       noop
     }
   }

   ...
}

authorize {
   ...

   mac_auth
   if (ok) {
     update control {
       Auth-Type := Accept
     }

     # 'handled' does not work here
     ok = return
   }

   ...
}
----

You might need to tweak the policy{} rule to meet your local needs; the
above is what I use for our Cisco switches.  You could tweak the above
so that 'mac_auth' sets 'Cleartext-Password = "%{User-Password}"' but
I personally cannot see the reason to bother when you can just skip
authenticate{} completely.

If you really do need to lowercase something, the only way to do it
really is to use 'exec' and call 'tr A-F a-f', nasty but it works.

Cheers

If your using SQL then I would simply modify the SQL querry to INSERT everything in lower case only PLUS to SELECT everything in lowercase only. You can simply modify those querries afaik. I just figured that as well and it made my live WAY easier - but I used it for my MailServer configuration - and it works perfect - no matter whether its PostgreSQL (which I'm using), or MySQL ... even others such as Oracle, etc. offer those functions.



-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to