How to deal with switches not sending User-Password attribute for MAC-based authentication

Martin Gignac martin.gignac at gmail.com
Fri Jan 24 18:47:12 CET 2020


Hi,

I'm setting up wired 802.1x authentication for Juniper and Ubiquiti
switches. Each device supports supplicant-based authentication and can fall
back to MAC-based authentication. When using the Juniper, if it falls back
to MAC-based authentication it sends an Access-Request with User-Name and
User-Password attributes that both contain the MAC address of the device
connecting to the switch, such as "e6e849A201e8". However, when the
Ubiquiti falls back to MAC-based auth the Access-Request it sends only
contains the User-Name attribute. Since my sites-enabled/default file
contains:

       if (User-Password) {
               update control {
                       Auth-Type := rest
               }
       }

in the authorize section, REST authentication is completely skipped. I then
tried adding:

       if (&NAS-Port-Type == "Ethernet" && !User-Password) {
                update control {
                        User-Password = &User-Name
                        Auth-Type := rest
                }
        }

right on top of the previous section, but then I get this:

(1)     if (&NAS-Port-Type == "Ethernet" && !User-Password) {
(1)     if (&NAS-Port-Type == "Ethernet" && !User-Password)  -> TRUE
(1)     if (&NAS-Port-Type == "Ethernet" && !User-Password)  {
(1)       update control {
(1)         User-Password = &User-Name -> 'E6E849A201E8'
(1)         Auth-Type := rest
(1)       } # update control = noop
(1)     } # if (&NAS-Port-Type == "Ethernet" && !User-Password)  = noop
(1)     if (User-Password) {
(1)     if (User-Password)  -> FALSE
(1) pap: WARNING:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(1) pap: WARNING: !!! Ignoring control:User-Password.  Update your
 !!!
(1) pap: WARNING: !!! configuration so that the "known good" clear text !!!
(1) pap: WARNING: !!! password is in Cleartext-Password and NOT in
 !!!
(1) pap: WARNING: !!! User-Password.
 !!!
(1) pap: WARNING:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(1) pap: WARNING: No "known good" password found for the user.  Not setting
Auth-Type
(1) pap: WARNING: Authentication will fail unless a "known good" password
is available
(1)     [pap] = noop
(1)   } # authorize = updated
(1) Found Auth-Type = rest
(1) # Executing group from file /usr/local/etc/raddb/sites-enabled/default
(1)   authenticate {
(1) rest: ERROR: You set 'Auth-Type = REST' for a request that does not
contain a User-Password attribute!
(1)     [rest] = invalid
(1)   } # authenticate = invalid
(1) Failed to authenticate the user
(1) Using Post-Auth-Type Reject

So I changed it to this:

       if (&NAS-Port-Type == "Ethernet" && !User-Password) {
                update control {
                        Cleartext-Password = &User-Name
                        Auth-Type := rest
                }
        }

(2)     if (&NAS-Port-Type == "Ethernet" && !User-Password) {
(2)     if (&NAS-Port-Type == "Ethernet" && !User-Password)  -> TRUE
(2)     if (&NAS-Port-Type == "Ethernet" && !User-Password)  {
(2)       update control {
(2)         Cleartext-Password = &User-Name -> 'E6E849A201E8'
(2)         Auth-Type := rest
(2)       } # update control = noop
(2)     } # if (&NAS-Port-Type == "Ethernet" && !User-Password)  = noop
(2)     if (User-Password) {
(2)     if (User-Password)  -> FALSE
(2) pap: WARNING: Auth-Type already set.  Not setting to PAP
(2)     [pap] = noop
(2)   } # authorize = updated
(2) Found Auth-Type = rest
(2) # Executing group from file /usr/local/etc/raddb/sites-enabled/default
(2)   authenticate {
(2) rest: ERROR: You set 'Auth-Type = REST' for a request that does not
contain a User-Password attribute!
(2)     [rest] = invalid
(2)   } # authenticate = invalid
(2) Failed to authenticate the user
(2) Using Post-Auth-Type Reject

Am I approaching the problem in a wrong way? What would be the best way to
deal with the lack of the User-Password attribute?

Thanks,
-Martin


More information about the Freeradius-Users mailing list