Freeradius-Users
Threads by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 2 participants
- 27050 discussions
Hi everybody
Recently, I upgraded from FreeRADIUS 3.2.6 to 3.2.7. I implemented a rest module call to our IPAM (Infoblox) on version 3.2.6. The rest module call is still in «evaluation» and was not used in production, that’s why it is not used frequently and I was not forced to troubleshoot the problem before.
But know I would need some help:
1. the rest module call to our IPAM (Infoblox) was working fine in FR 3.2.6.
2. The goal is to check, if a client with a given mac address (Calling-Station-Id) is listed in a given IP subnet on Infoblox, additionally to the 802.1x (PEAP) authentication on the given SSID
a) if yes (REST-HTTP-Status-Code = 200 and REST-HTTP-Body != []), then return an ACCESS-ACCEPT
b) if not (REST-HTTP-Status-Code != 200 or REST-HTTP-Body == []), then return an ACCESS-REJECT
As I stated above, it worked on FR 3.2.6, but since upgrading to 3.2.7, it SOMETIMES still works, but most of the time it DOESN’T and it returns a HTTP status code of 403 («Forbidden»). Stangely, I never get a HTTP status code of 403 with the exact same user credentials while trying the same API call in Postman:
[
{
"_ref": "record:host/ZG5zLmhvc3QkLl9kZWZhdWx0LmNoLnVuaWJlLnptay5wcnRnLXByb2JlLWZyZWVycmFkaXVzLXpta2Jlcm4:prtg-probe-freerradius-zmkbern.zmk.unibe.ch/default",
"ipv4addrs": [
{
"_ref": "record:host_ipv4addr/ZG5zLmhvc3RfYWRkcmVzcyQuX2RlZmF1bHQuY2gudW5pYmUuem1rLnBydGctcHJvYmUtZnJlZXJyYWRpdXMtem1rYmVybi4xNzIuMjUuOC4xMC4:172.25.8.10/prtg-probe-freerradius-zmkbern.zmk.unibe.ch/default",
"configure_for_dhcp": true,
"host": "prtg-probe-freerradius-zmkbern.zmk.unibe.ch",
"ipv4addr": "172.25.8.10",
"mac": "a1:b2:c3:d4:e5:f6"
}
],
"name": "prtg-probe-freeradius-ssid.domain.xy",
"view": "default"
}
]
Debug output of a working attempt (if you need the whole debug output, please let me know):
(3973) if (Service-Type == Call-Check) {
(3973) if (Service-Type == Call-Check) -> TRUE
(3973) if (Service-Type == Call-Check) {
(3973) switch &Called-Station-SSID {
(3973) case zmkbern-DEV {
(3973) update request {
(3973) &locMacAuth-IP-Subnet := "172.25.8.0/21"
(3973) } # update request = noop
rlm_rest (rest): Reserved connection (38)
(3973) rest: Expanding URI components
(3973) rest: EXPAND https://gridmaster.domain.xy <https://gridmaster.domain.xy/>
(3973) rest: --> https://gridmaster.domain.xy <https://gridmaster.domain.xy/>
(3973) rest: EXPAND /wapi/v2.11.3/record:host?network=%{locMacAuth-IP-Subnet}&mac=%{tolower:%{request:locMacAuth-Calling-Station-Id}}
(3973) rest: --> /wapi/v2.11.3/record:host?network=172.25.8.0%2F21&mac=a1%3Ab2%3Ac3%3Ad4%3Ae5%3Af6
(3973) rest: Sending HTTP GET to https://gridmaster.domain.xy/wapi/v2.11.3/record:host?network=172.25.8.0%2F…
(3973) rest: EXPAND id_svcinfobloxro_prod
(3973) rest: --> id_svcinfobloxro_prod
(3973) rest: EXPAND c1K25E9MyrXLC6fCyZ
(3973) rest: --> c1K25E9MyrXLC6fCyZ
(3973) rest: Processing response header
(3973) rest: Status : 200 (OK)
(3973) rest: Type : json (application/json)
(3973) rest: Adding reply:REST-HTTP-Status-Code = "200"
(3973) rest: Adding reply:REST-HTTP-Body += "[ { "_ref": "record:host/ZG5zLmhvc3QkLl9kZWZhdWx0LmNoLnVuaWJlLnptay5wcnRnLXByb2JlLWZyZWVycmFkaXVzLXpta2Jlcm4:prtg-probe-freerradius-zmkbern.zmk.unibe.ch/default", "ipv4addrs": [ { "_ref": "record:host_ipv4addr/ZG5zLmhvc3RfYWRkcmVzcyQuX2RlZmF1bHQuY2gudW5pYmUuem1rLnBydGctcHJvYmUtZnJlZXJyYWRpdXMtem1rYmVybi4xNzIuMjUuOC4xMC4:172.25.8.10/prtg-probe-freerradius-zmkbern.zmk.unibe.ch/default", "configure_for_dhcp": true, "host": "prtg-probe-freerradius-zmkbern.zmk.unibe.ch", "ipv4addr": "172.25.8.10", "mac": "a1:b2:c3:d4:e5:f6" } ], "name": "prtg-probe-freerradius-zmkbern.zmk.unibe.ch", "view": "default" } ]"
rlm_rest (rest): Released connection (38)
Need more connections to reach 10 spares
rlm_rest (rest): Opening additional connection (40), 1 of 29 pending slots used
rlm_rest (rest): Connecting to https://gridmaster.domain.xy <https://gridmaster.domain.xy/>
rlm_rest (rest): Closing expired connection (39) - Hit idle_timeout limit
rlm_rest (rest): You probably need to lower "min"
rlm_rest (rest): Closing expired connection (35) - Hit idle_timeout limit
(3973) [rest] = updated
(3973) } # case zmkbern-DEV = updated
(3973) } # switch &Called-Station-SSID = updated
(3973) if (reply:REST-HTTP-Status-Code == "200") {
(3973) if (reply:REST-HTTP-Status-Code == "200") -> TRUE
(3973) if (reply:REST-HTTP-Status-Code == "200") {
(3973) if (reply:REST-HTTP-Body == "[]") {
(3973) if (reply:REST-HTTP-Body == "[]") -> FALSE
(3973) else {
(3973) policy accept {
(3973) update control {
(3973) &Response-Packet-Type = Access-Accept
(3973) } # update control = noop
(3973) [handled] = handled
(3973) } # policy accept = handled
(3973) } # else = handled
(3973) } # if (reply:REST-HTTP-Status-Code == "200") = handled
(3973) } # if (Service-Type == Call-Check) = handled
(3973) } # authorize = handled
(3973) # Executing section post-auth from file /etc/freeradius/sites-enabled/default
Debug of a failing attempt:
(4245) if (Service-Type == Call-Check) {
(4245) if (Service-Type == Call-Check) -> TRUE
(4245) if (Service-Type == Call-Check) {
(4245) switch &Called-Station-SSID {
(4245) case zmkbern-DEV {
(4245) update request {
(4245) &locMacAuth-IP-Subnet := "172.25.8.0/21"
(4245) } # update request = noop
rlm_rest (rest): Reserved connection (40)
(4245) rest: Expanding URI components
(4245) rest: EXPAND https://gridmaster.domain.xy <https://gridmaster.domain.xy/>
(4245) rest: --> https://gridmaster.domain.xy <https://gridmaster.domain.xy/>
(4245) rest: EXPAND /wapi/v2.11.3/record:host?network=%{locMacAuth-IP-Subnet}&mac=%{tolower:%{request:locMacAuth-Calling-Station-Id}}
(4245) rest: --> /wapi/v2.11.3/record:host?network=172.25.8.0%2F21&mac=a1%3Ab2%3Ac3%3Ad4%3Ae5%3Af6
(4245) rest: Sending HTTP GET to https://gridmaster.domain.xy/wapi/v2.11.3/record:host?network=172.25.8.0%2F…
(4245) rest: EXPAND id_svcinfobloxro_prod
(4245) rest: --> id_svcinfobloxro_prod
(4245) rest: EXPAND c1K25E9MyrXLC6fCyZ
(4245) rest: --> c1K25E9MyrXLC6fCyZ
(4245) rest: Processing response header
(4245) rest: Status : 403 (Forbidden)
(4245) rest: Type : html (text/html)
(4245) rest: Adding reply:REST-HTTP-Status-Code = "403"
(4245) rest: ERROR: Server returned:
(4245) rest: ERROR: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
(4245) rest: ERROR: <html><head>
(4245) rest: ERROR: <title>403 Forbidden</title>
(4245) rest: ERROR: </head><body>
(4245) rest: ERROR: <h1>Forbidden</h1>
(4245) rest: ERROR: <p>You don't have permission to access this resource.</p>
(4245) rest: ERROR: </body></html>
rlm_rest (rest): Released connection (40)
Need more connections to reach 10 spares
rlm_rest (rest): Opening additional connection (45), 1 of 26 pending slots used
rlm_rest (rest): Connecting to https://gridmaster.domain.xy <https://gridmaster.domain.xy/>
(4245) [rest] = userlock
(4245) } # case zmkbern-DEV = userlock
(4245) } # switch &Called-Station-SSID = userlock
(4245) } # if (Service-Type == Call-Check) = userlock
(4245) } # authorize = userlock
(4245) Invalid user (Failed retrieving values required to evaluate condition): [<no User-Name attribute>] (from client localhost port 0 cli A1-B2-C3-D4-E5-F6)
(4245) Using Post-Auth-Type Reject
(4245) # Executing group from file /etc/freeradius/sites-enabled/default
(4245) Post-Auth-Type REJECT {
(4245) attr_filter.access_reject: EXPAND %{User-Name}
(4245) attr_filter.access_reject: -->
(4245) [attr_filter.access_reject] = noop
(4245) [eap] = noop
(4245) policy remove_reply_message_if_eap {
(4245) if (&reply:EAP-Message && &reply:Reply-Message) {
(4245) if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(4245) else {
(4245) [noop] = noop
(4245) } # else = noop
(4245) } # policy remove_reply_message_if_eap = noop
(4245) if (Service-Type == Call-Check) {
(4245) if (Service-Type == Call-Check) -> TRUE
(4245) if (Service-Type == Call-Check) {
I also get the following debug output from time to time in correspondance to this rest module call:
rlm_rest (rest): Released connection (0)
Need more connections to reach 10 spares
rlm_rest (rest): Opening additional connection (11), 1 of 28 pending slots used
rlm_rest (rest): Connecting to https://gridmaster.domiain.xy <https://gridmaster.domiain.xy/>
rlm_rest (rest): Closing expired connection (10) - Hit idle_timeout limit
rlm_rest (rest): Closing expired connection (9) - Hit idle_timeout limit
rlm_rest (rest): You probably need to lower "min"
rlm_rest (rest): Closing expired connection (8) - Hit idle_timeout limit
(988) [rest] = userlock
(988) } # case zmkbern-DEV = userlock
(988) } # switch &Called-Station-SSID = userlock
(988) } # if (Service-Type == Call-Check) = userlock
(988) } # authorize = userlock
As I don’t really understand the rest / threading part, any help is welcome.
Regards
Dominic
1
0
03 Apr '25
Hi everybody
Recently, I upgraded from FreeRADIUS 3.2.6 to 3.2.7. I implemented a rest module call to our IPAM (Infoblox) on version 3.2.6. The rest module call is still in «evaluation» and was not used in production, that’s why it is not used frequently and I was not forced to troubleshoot the problem before.
But know I would need some help:
1. the rest module call to our IPAM (Infoblox) was working fine in FR 3.2.6.
2. The goal is to check, if a client with a given mac address (Calling-Station-Id) is listed in a given IP subnet on Infoblox, additionally to the 802.1x (PEAP) authentication on the given SSID
a) if yes (REST-HTTP-Status-Code = 200 and REST-HTTP-Body != []), then return an ACCESS-ACCEPT
b) if not (REST-HTTP-Status-Code != 200 or REST-HTTP-Body == []), then return an ACCESS-REJECT
As I stated above, it worked on FR 3.2.6, but since upgrading to 3.2.7, it SOMETIMES still works, but most of the time it DOESN’T and it returns a HTTP status code of 403 («Forbidden»). Stangely, I never get a HTTP status code of 403 with the exact same user credentials while trying the same API call in Postman:
[
{
"_ref": "record:host/ZG5zLmhvc3QkLl9kZWZhdWx0LmNoLnVuaWJlLnptay5wcnRnLXByb2JlLWZyZWVycmFkaXVzLXpta2Jlcm4:prtg-probe-freerradius-zmkbern.zmk.unibe.ch/default",
"ipv4addrs": [
{
"_ref": "record:host_ipv4addr/ZG5zLmhvc3RfYWRkcmVzcyQuX2RlZmF1bHQuY2gudW5pYmUuem1rLnBydGctcHJvYmUtZnJlZXJyYWRpdXMtem1rYmVybi4xNzIuMjUuOC4xMC4:172.25.8.10/prtg-probe-freerradius-zmkbern.zmk.unibe.ch/default",
"configure_for_dhcp": true,
"host": "prtg-probe-freerradius-zmkbern.zmk.unibe.ch",
"ipv4addr": "172.25.8.10",
"mac": "a1:b2:c3:d4:e5:f6"
}
],
"name": "prtg-probe-freeradius-ssid.domain.xy",
"view": "default"
}
]
Debug output of a working attempt (if you need the whole debug output, please let me know):
(3973) if (Service-Type == Call-Check) {
(3973) if (Service-Type == Call-Check) -> TRUE
(3973) if (Service-Type == Call-Check) {
(3973) switch &Called-Station-SSID {
(3973) case zmkbern-DEV {
(3973) update request {
(3973) &locMacAuth-IP-Subnet := "172.25.8.0/21"
(3973) } # update request = noop
rlm_rest (rest): Reserved connection (38)
(3973) rest: Expanding URI components
(3973) rest: EXPAND https://gridmaster.domain.xy
(3973) rest: --> https://gridmaster.domain.xy
(3973) rest: EXPAND /wapi/v2.11.3/record:host?network=%{locMacAuth-IP-Subnet}&mac=%{tolower:%{request:locMacAuth-Calling-Station-Id}}
(3973) rest: --> /wapi/v2.11.3/record:host?network=172.25.8.0%2F21&mac=a1%3Ab2%3Ac3%3Ad4%3Ae5%3Af6
(3973) rest: Sending HTTP GET to https://gridmaster.domain.xy/wapi/v2.11.3/record:host?network=172.25.8.0%2F…
(3973) rest: EXPAND id_svcinfobloxro_prod
(3973) rest: --> id_svcinfobloxro_prod
(3973) rest: EXPAND c1K25E9MyrXLC6fCyZ
(3973) rest: --> c1K25E9MyrXLC6fCyZ
(3973) rest: Processing response header
(3973) rest: Status : 200 (OK)
(3973) rest: Type : json (application/json)
(3973) rest: Adding reply:REST-HTTP-Status-Code = "200"
(3973) rest: Adding reply:REST-HTTP-Body += "[ { "_ref": "record:host/ZG5zLmhvc3QkLl9kZWZhdWx0LmNoLnVuaWJlLnptay5wcnRnLXByb2JlLWZyZWVycmFkaXVzLXpta2Jlcm4:prtg-probe-freerradius-zmkbern.zmk.unibe.ch/default", "ipv4addrs": [ { "_ref": "record:host_ipv4addr/ZG5zLmhvc3RfYWRkcmVzcyQuX2RlZmF1bHQuY2gudW5pYmUuem1rLnBydGctcHJvYmUtZnJlZXJyYWRpdXMtem1rYmVybi4xNzIuMjUuOC4xMC4:172.25.8.10/prtg-probe-freerradius-zmkbern.zmk.unibe.ch/default", "configure_for_dhcp": true, "host": "prtg-probe-freerradius-zmkbern.zmk.unibe.ch", "ipv4addr": "172.25.8.10", "mac": "a1:b2:c3:d4:e5:f6" } ], "name": "prtg-probe-freerradius-zmkbern.zmk.unibe.ch", "view": "default" } ]"
rlm_rest (rest): Released connection (38)
Need more connections to reach 10 spares
rlm_rest (rest): Opening additional connection (40), 1 of 29 pending slots used
rlm_rest (rest): Connecting to https://gridmaster.domain.xy
rlm_rest (rest): Closing expired connection (39) - Hit idle_timeout limit
rlm_rest (rest): You probably need to lower "min"
rlm_rest (rest): Closing expired connection (35) - Hit idle_timeout limit
(3973) [rest] = updated
(3973) } # case zmkbern-DEV = updated
(3973) } # switch &Called-Station-SSID = updated
(3973) if (reply:REST-HTTP-Status-Code == "200") {
(3973) if (reply:REST-HTTP-Status-Code == "200") -> TRUE
(3973) if (reply:REST-HTTP-Status-Code == "200") {
(3973) if (reply:REST-HTTP-Body == "[]") {
(3973) if (reply:REST-HTTP-Body == "[]") -> FALSE
(3973) else {
(3973) policy accept {
(3973) update control {
(3973) &Response-Packet-Type = Access-Accept
(3973) } # update control = noop
(3973) [handled] = handled
(3973) } # policy accept = handled
(3973) } # else = handled
(3973) } # if (reply:REST-HTTP-Status-Code == "200") = handled
(3973) } # if (Service-Type == Call-Check) = handled
(3973) } # authorize = handled
(3973) # Executing section post-auth from file /etc/freeradius/sites-enabled/default
Debug of a failing attempt:
(4245) if (Service-Type == Call-Check) {
(4245) if (Service-Type == Call-Check) -> TRUE
(4245) if (Service-Type == Call-Check) {
(4245) switch &Called-Station-SSID {
(4245) case zmkbern-DEV {
(4245) update request {
(4245) &locMacAuth-IP-Subnet := "172.25.8.0/21"
(4245) } # update request = noop
rlm_rest (rest): Reserved connection (40)
(4245) rest: Expanding URI components
(4245) rest: EXPAND https://gridmaster.domain.xy
(4245) rest: --> https://gridmaster.domain.xy
(4245) rest: EXPAND /wapi/v2.11.3/record:host?network=%{locMacAuth-IP-Subnet}&mac=%{tolower:%{request:locMacAuth-Calling-Station-Id}}
(4245) rest: --> /wapi/v2.11.3/record:host?network=172.25.8.0%2F21&mac=a1%3Ab2%3Ac3%3Ad4%3Ae5%3Af6
(4245) rest: Sending HTTP GET to https://gridmaster.domain.xy/wapi/v2.11.3/record:host?network=172.25.8.0%2F…
(4245) rest: EXPAND id_svcinfobloxro_prod
(4245) rest: --> id_svcinfobloxro_prod
(4245) rest: EXPAND c1K25E9MyrXLC6fCyZ
(4245) rest: --> c1K25E9MyrXLC6fCyZ
(4245) rest: Processing response header
(4245) rest: Status : 403 (Forbidden)
(4245) rest: Type : html (text/html)
(4245) rest: Adding reply:REST-HTTP-Status-Code = "403"
(4245) rest: ERROR: Server returned:
(4245) rest: ERROR: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
(4245) rest: ERROR: <html><head>
(4245) rest: ERROR: <title>403 Forbidden</title>
(4245) rest: ERROR: </head><body>
(4245) rest: ERROR: <h1>Forbidden</h1>
(4245) rest: ERROR: <p>You don't have permission to access this resource.</p>
(4245) rest: ERROR: </body></html>
rlm_rest (rest): Released connection (40)
Need more connections to reach 10 spares
rlm_rest (rest): Opening additional connection (45), 1 of 26 pending slots used
rlm_rest (rest): Connecting to https://gridmaster.domain.xy
(4245) [rest] = userlock
(4245) } # case zmkbern-DEV = userlock
(4245) } # switch &Called-Station-SSID = userlock
(4245) } # if (Service-Type == Call-Check) = userlock
(4245) } # authorize = userlock
(4245) Invalid user (Failed retrieving values required to evaluate condition): [<no User-Name attribute>] (from client localhost port 0 cli A1-B2-C3-D4-E5-F6)
(4245) Using Post-Auth-Type Reject
(4245) # Executing group from file /etc/freeradius/sites-enabled/default
(4245) Post-Auth-Type REJECT {
(4245) attr_filter.access_reject: EXPAND %{User-Name}
(4245) attr_filter.access_reject: -->
(4245) [attr_filter.access_reject] = noop
(4245) [eap] = noop
(4245) policy remove_reply_message_if_eap {
(4245) if (&reply:EAP-Message && &reply:Reply-Message) {
(4245) if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(4245) else {
(4245) [noop] = noop
(4245) } # else = noop
(4245) } # policy remove_reply_message_if_eap = noop
(4245) if (Service-Type == Call-Check) {
(4245) if (Service-Type == Call-Check) -> TRUE
(4245) if (Service-Type == Call-Check) {
I also get the following debug output from time to time in correspondance to this rest module call:
rlm_rest (rest): Released connection (0)
Need more connections to reach 10 spares
rlm_rest (rest): Opening additional connection (11), 1 of 28 pending slots used
rlm_rest (rest): Connecting to https://gridmaster.domiain.xy
rlm_rest (rest): Closing expired connection (10) - Hit idle_timeout limit
rlm_rest (rest): Closing expired connection (9) - Hit idle_timeout limit
rlm_rest (rest): You probably need to lower "min"
rlm_rest (rest): Closing expired connection (8) - Hit idle_timeout limit
(988) [rest] = userlock
(988) } # case zmkbern-DEV = userlock
(988) } # switch &Called-Station-SSID = userlock
(988) } # if (Service-Type == Call-Check) = userlock
(988) } # authorize = userlock
As I don’t really understand the rest / threading part, any help is welcome.
Regards
Dominic
_________________________________
Universität Bern
Abteilung Informatikdienste
Dominic Stalder
Network Engineer
Hochschulstrasse 6
CH-3012 Bern
Tel. +41 (0)31 684 38 18
dominic.stalder(a)unibe.ch<mailto:dominic.stalder@unibe.ch>
www.id.unibe.ch
_________________________________
1
0
We use FreeRADIUS for our wireless authentication. Everything worked
correctly until around November 2024. Now, certain users are unable to
authenticate. The FreeRADIUS server points to our Google Workspace
domain using Google Secure LDAP. Our domain has a primary domain and a
subdomain. Any user in the subdomain is affected by this issue. Below
are the results of the authentication attempt for two users in the
subdomain. These results are taken from running freeradius -X -x. If I
add an alias to any user in the subdomain to point to the primary,
they can log in. I am hoping someone here could give me some ideas on
what it might be because Google says it is not on their end.
Thu Apr 3 08:21:22 2025 : Debug: (8) Received Access-Request Id 12
from 192.168.1.5:60774 to 10.220.3.99:1812 length 81
Thu Apr 3 08:21:22 2025 : Debug: (8) User-Name =
"ben.tennyson(a)student.madeupdomain.com"
Thu Apr 3 08:21:22 2025 : Debug: (8) User-Password = "Omnitrix2024"
Thu Apr 3 08:21:22 2025 : Debug: (8) Framed-IP-Address = 192.168.1.5
Thu Apr 3 08:21:22 2025 : Debug: (8) session-state: No State attribute
Thu Apr 3 08:21:22 2025 : Debug: (8) # Executing section authorize
from file /etc/freeradius/3.0/sites-enabled/default
Thu Apr 3 08:21:22 2025 : Debug: (8) authorize {
Thu Apr 3 08:21:22 2025 : Debug: (8) policy filter_username {
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name) {
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name) -> TRUE
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name) {
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~ / /) {
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~ / /) -> FALSE
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~ /@[^@]*@/ ) {
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~
/@[^@]*@/ ) -> FALSE
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~ /\.\./ ) {
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~ /\.\./
) -> FALSE
Thu Apr 3 08:21:22 2025 : Debug: (8) if ((&User-Name =~ /@/)
&& (&User-Name !~ /(a)(.+)\.(.+)$/)) {
Thu Apr 3 08:21:22 2025 : Debug: (8) if ((&User-Name =~ /@/)
&& (&User-Name !~ /(a)(.+)\.(.+)$/)) -> FALSE
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~ /\.$/) {
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~ /\.$/)
-> FALSE
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~ /(a)\./) {
Thu Apr 3 08:21:22 2025 : Debug: (8) if (&User-Name =~ /(a)\./)
-> FALSE
Thu Apr 3 08:21:22 2025 : Debug: (8) } # if (&User-Name) = notfound
Thu Apr 3 08:21:22 2025 : Debug: (8) } # policy filter_username = notfound
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling preprocess (rlm_preprocess)
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from preprocess (rlm_preprocess)
Thu Apr 3 08:21:22 2025 : Debug: (8) [preprocess] = ok
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling chap (rlm_chap)
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from chap (rlm_chap)
Thu Apr 3 08:21:22 2025 : Debug: (8) [chap] = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling mschap (rlm_mschap)
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from mschap (rlm_mschap)
Thu Apr 3 08:21:22 2025 : Debug: (8) [mschap] = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling digest (rlm_digest)
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from digest (rlm_digest)
Thu Apr 3 08:21:22 2025 : Debug: (8) [digest] = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling suffix (rlm_realm)
Thu Apr 3 08:21:22 2025 : Debug: (8) suffix: Checking for suffix after "@"
Thu Apr 3 08:21:22 2025 : Debug: (8) suffix: Looking up realm
"student.madeupdomain.com" for User-Name =
"ben.tennyson(a)student.madeupdomain.com"
Thu Apr 3 08:21:22 2025 : Debug: (8) suffix: Found realm
"student.madeupdomain.com"
Thu Apr 3 08:21:22 2025 : Debug: (8) suffix: Adding
Stripped-User-Name = "ben.tennyson"
Thu Apr 3 08:21:22 2025 : Debug: (8) suffix: Adding Realm =
"student.madeupdomain.com"
Thu Apr 3 08:21:22 2025 : Debug: (8) suffix: Authentication realm is LOCAL
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from suffix (rlm_realm)
Thu Apr 3 08:21:22 2025 : Debug: (8) [suffix] = ok
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling eap (rlm_eap)
Thu Apr 3 08:21:22 2025 : Debug: (8) eap: No EAP-Message, not doing EAP
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from eap (rlm_eap)
Thu Apr 3 08:21:22 2025 : Debug: (8) [eap] = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling files (rlm_files)
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from files (rlm_files)
Thu Apr 3 08:21:22 2025 : Debug: (8) [files] = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling ldap (rlm_ldap)
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: EXPAND (mail=%{User-Name})
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: -->
(mail=ben.tennyson(a)student.madeupdomain.com)
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Performing search in
"dc=madeupdomain,dc=com" with filter
"(mail=ben.tennyson(a)student.madeupdomain.com)", scope "sub"
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Waiting for search result...
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: User object found at DN
"uid=ben.tennyson,ou=LBHS,ou=Students,ou=Users,dc=madeupdomain,dc=com"
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Processing user attributes
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Attribute "userPassword"
not found in LDAP object
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Attribute
"radiusControlAttribute" not found in LDAP object
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Attribute
"radiusRequestAttribute" not found in LDAP object
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Attribute
"radiusReplyAttribute" not found in LDAP object
Thu Apr 3 08:21:22 2025 : WARNING: (8) ldap: No "known good" password
added. Ensure the admin user has permission to read the password
attribute
Thu Apr 3 08:21:22 2025 : WARNING: (8) ldap: PAP authentication will
*NOT* work with Active Directory (if that is what you were trying to
configure)
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from ldap (rlm_ldap)
Thu Apr 3 08:21:22 2025 : Debug: (8) [ldap] = ok
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling expiration (rlm_expiration)
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from expiration (rlm_expiration)
Thu Apr 3 08:21:22 2025 : Debug: (8) [expiration] = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling logintime (rlm_logintime)
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from logintime (rlm_logintime)
Thu Apr 3 08:21:22 2025 : Debug: (8) [logintime] = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
calling pap (rlm_pap)
Thu Apr 3 08:21:22 2025 : WARNING: (8) pap: No "known good" password
found for the user. Not setting Auth-Type
Thu Apr 3 08:21:22 2025 : WARNING: (8) pap: Authentication will fail
unless a "known good" password is available
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authorize]:
returned from pap (rlm_pap)
Thu Apr 3 08:21:22 2025 : Debug: (8) [pap] = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) if (User-Password) {
Thu Apr 3 08:21:22 2025 : Debug: (8) if (User-Password) -> TRUE
Thu Apr 3 08:21:22 2025 : Debug: (8) if (User-Password) {
Thu Apr 3 08:21:22 2025 : Debug: (8) update control {
Thu Apr 3 08:21:22 2025 : Debug: (8) Auth-Type := LDAP
Thu Apr 3 08:21:22 2025 : Debug: (8) } # update control = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) } # if (User-Password) = noop
Thu Apr 3 08:21:22 2025 : Debug: (8) } # authorize = ok
Thu Apr 3 08:21:22 2025 : Debug: (8) Found Auth-Type = LDAP
Thu Apr 3 08:21:22 2025 : Debug: (8) # Executing group from file
/etc/freeradius/3.0/sites-enabled/default
Thu Apr 3 08:21:22 2025 : Debug: (8) authenticate {
Thu Apr 3 08:21:22 2025 : Debug: (8) modsingle[authenticate]:
calling ldap (rlm_ldap)
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Login attempt by "ben.tennyson"
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Using user DN from request
"uid=ben.tennyson,ou=LBHS,ou=Students,ou=Users,dc=madeupdomain,dc=com"
Thu Apr 3 08:21:22 2025 : Debug: (8) ldap: Waiting for bind result...
Thu Apr 3 08:21:23 2025 : ERROR: (8) ldap: Bind credentials
incorrect: Invalid credentials
Thu Apr 3 08:21:23 2025 : ERROR: (8) ldap: Server said: Incorrect password.
Thu Apr 3 08:21:23 2025 : Debug: (8) modsingle[authenticate]:
returned from ldap (rlm_ldap)
Thu Apr 3 08:21:23 2025 : Debug: (8) [ldap] = reject
Thu Apr 3 08:21:23 2025 : Debug: (8) } # authenticate = reject
Thu Apr 3 08:21:23 2025 : Debug: (8) Failed to authenticate the user
Thu Apr 3 08:21:23 2025 : Debug: (8) Using Post-Auth-Type Reject
Thu Apr 3 08:21:23 2025 : Debug: (8) # Executing group from file
/etc/freeradius/3.0/sites-enabled/default
Thu Apr 3 08:21:23 2025 : Debug: (8) Post-Auth-Type REJECT {
Thu Apr 3 08:21:23 2025 : Debug: (8) modsingle[post-auth]:
calling attr_filter.access_reject (rlm_attr_filter)
Thu Apr 3 08:21:23 2025 : Debug: %{User-Name}
Thu Apr 3 08:21:23 2025 : Debug: Parsed xlat tree:
Thu Apr 3 08:21:23 2025 : Debug: attribute --> User-Name
Thu Apr 3 08:21:23 2025 : Debug: (8) attr_filter.access_reject:
EXPAND %{User-Name}
Thu Apr 3 08:21:23 2025 : Debug: (8) attr_filter.access_reject:
--> ben.tennyson(a)student.madeupdomain.com
Thu Apr 3 08:21:23 2025 : Debug: (8) attr_filter.access_reject:
Matched entry DEFAULT at line 11
Thu Apr 3 08:21:23 2025 : Debug: (8) modsingle[post-auth]:
returned from attr_filter.access_reject (rlm_attr_filter)
Thu Apr 3 08:21:23 2025 : Debug: (8) [attr_filter.access_reject] = updated
Thu Apr 3 08:21:23 2025 : Debug: (8) modsingle[post-auth]:
calling eap (rlm_eap)
Thu Apr 3 08:21:23 2025 : Debug: (8) eap: Request didn't contain an
EAP-Message, not inserting EAP-Failure
Thu Apr 3 08:21:23 2025 : Debug: (8) modsingle[post-auth]:
returned from eap (rlm_eap)
Thu Apr 3 08:21:23 2025 : Debug: (8) [eap] = noop
Thu Apr 3 08:21:23 2025 : Debug: (8) policy remove_reply_message_if_eap {
Thu Apr 3 08:21:23 2025 : Debug: (8) if (&reply:EAP-Message &&
&reply:Reply-Message) {
Thu Apr 3 08:21:23 2025 : Debug: (8) if (&reply:EAP-Message &&
&reply:Reply-Message) -> FALSE
Thu Apr 3 08:21:23 2025 : Debug: (8) else {
Thu Apr 3 08:21:23 2025 : Debug: (8) modsingle[post-auth]:
calling noop (rlm_always)
Thu Apr 3 08:21:23 2025 : Debug: (8) modsingle[post-auth]:
returned from noop (rlm_always)
Thu Apr 3 08:21:23 2025 : Debug: (8) [noop] = noop
Thu Apr 3 08:21:23 2025 : Debug: (8) } # else = noop
Thu Apr 3 08:21:23 2025 : Debug: (8) } # policy
remove_reply_message_if_eap = noop
Thu Apr 3 08:21:23 2025 : Debug: (8) } # Post-Auth-Type REJECT = updated
Thu Apr 3 08:21:23 2025 : Auth: (8) Login incorrect (ldap: Bind
credentials incorrect: Invalid credentials):
[ben.tennyson(a)student.madeupdomain.com/Omnitrix2024] (from client LBSD
port 0)
Thu Apr 3 08:21:23 2025 : Debug: (8) Delaying response for 1.000000 seconds
Thu Apr 3 08:21:35 2025 : Debug: (36) Received Access-Request Id 13
from 192.168.1.5:61800 to 10.220.3.99:1812 length 77
Thu Apr 3 08:21:35 2025 : Debug: (36) User-Name =
"johnny.test(a)student.madeupdomain.com"
Thu Apr 3 08:21:35 2025 : Debug: (36) User-Password = "Dookie2025"
Thu Apr 3 08:21:35 2025 : Debug: (36) Framed-IP-Address = 192.168.1.5
Thu Apr 3 08:21:35 2025 : Debug: (36) session-state: No State attribute
Thu Apr 3 08:21:35 2025 : Debug: (36) # Executing section authorize
from file /etc/freeradius/3.0/sites-enabled/default
Thu Apr 3 08:21:35 2025 : Debug: (36) authorize {
Thu Apr 3 08:21:35 2025 : Debug: (36) policy filter_username {
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name) {
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name) -> TRUE
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name) {
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~ / /) {
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~ / /) -> FALSE
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~ /@[^@]*@/ ) {
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~
/@[^@]*@/ ) -> FALSE
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~ /\.\./ ) {
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~
/\.\./ ) -> FALSE
Thu Apr 3 08:21:35 2025 : Debug: (36) if ((&User-Name =~ /@/)
&& (&User-Name !~ /(a)(.+)\.(.+)$/)) {
Thu Apr 3 08:21:35 2025 : Debug: (36) if ((&User-Name =~ /@/)
&& (&User-Name !~ /(a)(.+)\.(.+)$/)) -> FALSE
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~ /\.$/) {
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~
/\.$/) -> FALSE
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~ /(a)\./) {
Thu Apr 3 08:21:35 2025 : Debug: (36) if (&User-Name =~
/(a)\./) -> FALSE
Thu Apr 3 08:21:35 2025 : Debug: (36) } # if (&User-Name) = notfound
Thu Apr 3 08:21:35 2025 : Debug: (36) } # policy filter_username = notfound
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
calling preprocess (rlm_preprocess)
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
returned from preprocess (rlm_preprocess)
Thu Apr 3 08:21:35 2025 : Debug: (36) [preprocess] = ok
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
calling chap (rlm_chap)
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
returned from chap (rlm_chap)
Thu Apr 3 08:21:35 2025 : Debug: (36) [chap] = noop
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
calling mschap (rlm_mschap)
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
returned from mschap (rlm_mschap)
Thu Apr 3 08:21:35 2025 : Debug: (36) [mschap] = noop
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
calling digest (rlm_digest)
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
returned from digest (rlm_digest)
Thu Apr 3 08:21:35 2025 : Debug: (36) [digest] = noop
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
calling suffix (rlm_realm)
Thu Apr 3 08:21:35 2025 : Debug: (36) suffix: Checking for suffix after "@"
Thu Apr 3 08:21:35 2025 : Debug: (36) suffix: Looking up realm
"student.madeupdomain.com" for User-Name =
"johnny.test(a)student.madeupdomain.com"
Thu Apr 3 08:21:35 2025 : Debug: (36) suffix: Found realm
"student.madeupdomain.com"
Thu Apr 3 08:21:35 2025 : Debug: (36) suffix: Adding
Stripped-User-Name = "johnny.test"
Thu Apr 3 08:21:35 2025 : Debug: (36) suffix: Adding Realm =
"student.madeupdomain.com"
Thu Apr 3 08:21:35 2025 : Debug: (36) suffix: Authentication realm is LOCAL
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
returned from suffix (rlm_realm)
Thu Apr 3 08:21:35 2025 : Debug: (36) [suffix] = ok
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
calling eap (rlm_eap)
Thu Apr 3 08:21:35 2025 : Debug: (36) eap: No EAP-Message, not doing EAP
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
returned from eap (rlm_eap)
Thu Apr 3 08:21:35 2025 : Debug: (36) [eap] = noop
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
calling files (rlm_files)
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
returned from files (rlm_files)
Thu Apr 3 08:21:35 2025 : Debug: (36) [files] = noop
Thu Apr 3 08:21:35 2025 : Debug: (36) modsingle[authorize]:
calling ldap (rlm_ldap)
Thu Apr 3 08:21:35 2025 : Debug: (36) ldap: Waiting for bind result...
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Bind successful
Thu Apr 3 08:21:36 2025 : Debug: (mail=%{User-Name})
Thu Apr 3 08:21:36 2025 : Debug: Parsed xlat tree:
Thu Apr 3 08:21:36 2025 : Debug: literal --> (mail=
Thu Apr 3 08:21:36 2025 : Debug: attribute --> User-Name
Thu Apr 3 08:21:36 2025 : Debug: literal --> )
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: EXPAND (mail=%{User-Name})
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: -->
(mail=johnny.test(a)student.madeupdomain.com)
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Performing search in
"dc=madeupdomain,dc=com" with filter
"(mail=johnny.test(a)student.madeupdomain.com)", scope "sub"
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Waiting for search result...
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: User object found at DN
"uid=johnny.test,ou=LBHS,ou=Students,ou=Users,dc=madeupdomain,dc=com"
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Processing user attributes
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Attribute "userPassword"
not found in LDAP object
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Attribute
"radiusControlAttribute" not found in LDAP object
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Attribute
"radiusRequestAttribute" not found in LDAP object
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Attribute
"radiusReplyAttribute" not found in LDAP object
Thu Apr 3 08:21:36 2025 : WARNING: (36) ldap: No "known good"
password added. Ensure the admin user has permission to read the
password attribute
Thu Apr 3 08:21:36 2025 : WARNING: (36) ldap: PAP authentication will
*NOT* work with Active Directory (if that is what you were trying to
configure)
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[authorize]:
returned from ldap (rlm_ldap)
Thu Apr 3 08:21:36 2025 : Debug: (36) [ldap] = ok
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[authorize]:
calling expiration (rlm_expiration)
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[authorize]:
returned from expiration (rlm_expiration)
Thu Apr 3 08:21:36 2025 : Debug: (36) [expiration] = noop
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[authorize]:
calling logintime (rlm_logintime)
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[authorize]:
returned from logintime (rlm_logintime)
Thu Apr 3 08:21:36 2025 : Debug: (36) [logintime] = noop
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[authorize]:
calling pap (rlm_pap)
Thu Apr 3 08:21:36 2025 : WARNING: (36) pap: No "known good" password
found for the user. Not setting Auth-Type
Thu Apr 3 08:21:36 2025 : WARNING: (36) pap: Authentication will fail
unless a "known good" password is available
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[authorize]:
returned from pap (rlm_pap)
Thu Apr 3 08:21:36 2025 : Debug: (36) [pap] = noop
Thu Apr 3 08:21:36 2025 : Debug: (36) if (User-Password) {
Thu Apr 3 08:21:36 2025 : Debug: (36) if (User-Password) -> TRUE
Thu Apr 3 08:21:36 2025 : Debug: (36) if (User-Password) {
Thu Apr 3 08:21:36 2025 : Debug: (36) update control {
Thu Apr 3 08:21:36 2025 : Debug: (36) Auth-Type := LDAP
Thu Apr 3 08:21:36 2025 : Debug: (36) } # update control = noop
Thu Apr 3 08:21:36 2025 : Debug: (36) } # if (User-Password) = noop
Thu Apr 3 08:21:36 2025 : Debug: (36) } # authorize = ok
Thu Apr 3 08:21:36 2025 : Debug: (36) Found Auth-Type = LDAP
Thu Apr 3 08:21:36 2025 : Debug: (36) # Executing group from file
/etc/freeradius/3.0/sites-enabled/default
Thu Apr 3 08:21:36 2025 : Debug: (36) authenticate {
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[authenticate]:
calling ldap (rlm_ldap)
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Login attempt by "johnny.test"
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Using user DN from
request "uid=johnny.test,ou=LBHS,ou=Students,ou=Users,dc=madeupdomain,dc=com"
Thu Apr 3 08:21:36 2025 : Debug: (36) ldap: Waiting for bind result...
Thu Apr 3 08:21:36 2025 : ERROR: (36) ldap: Bind credentials
incorrect: Invalid credentials
Thu Apr 3 08:21:36 2025 : ERROR: (36) ldap: Server said: Incorrect password.
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[authenticate]:
returned from ldap (rlm_ldap)
Thu Apr 3 08:21:36 2025 : Debug: (36) [ldap] = reject
Thu Apr 3 08:21:36 2025 : Debug: (36) } # authenticate = reject
Thu Apr 3 08:21:36 2025 : Debug: (36) Failed to authenticate the user
Thu Apr 3 08:21:36 2025 : Debug: (36) Using Post-Auth-Type Reject
Thu Apr 3 08:21:36 2025 : Debug: (36) # Executing group from file
/etc/freeradius/3.0/sites-enabled/default
Thu Apr 3 08:21:36 2025 : Debug: (36) Post-Auth-Type REJECT {
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[post-auth]:
calling attr_filter.access_reject (rlm_attr_filter)
Thu Apr 3 08:21:36 2025 : Debug: %{User-Name}
Thu Apr 3 08:21:36 2025 : Debug: Parsed xlat tree:
Thu Apr 3 08:21:36 2025 : Debug: attribute --> User-Name
Thu Apr 3 08:21:36 2025 : Debug: (36) attr_filter.access_reject:
EXPAND %{User-Name}
Thu Apr 3 08:21:36 2025 : Debug: (36) attr_filter.access_reject:
--> johnny.test(a)student.madeupdomain.com
Thu Apr 3 08:21:36 2025 : Debug: (36) attr_filter.access_reject:
Matched entry DEFAULT at line 11
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[post-auth]:
returned from attr_filter.access_reject (rlm_attr_filter)
Thu Apr 3 08:21:36 2025 : Debug: (36) [attr_filter.access_reject] = updated
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[post-auth]:
calling eap (rlm_eap)
Thu Apr 3 08:21:36 2025 : Debug: (36) eap: Request didn't contain an
EAP-Message, not inserting EAP-Failure
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[post-auth]:
returned from eap (rlm_eap)
Thu Apr 3 08:21:36 2025 : Debug: (36) [eap] = noop
Thu Apr 3 08:21:36 2025 : Debug: (36) policy remove_reply_message_if_eap {
Thu Apr 3 08:21:36 2025 : Debug: (36) if (&reply:EAP-Message &&
&reply:Reply-Message) {
Thu Apr 3 08:21:36 2025 : Debug: (36) if (&reply:EAP-Message &&
&reply:Reply-Message) -> FALSE
Thu Apr 3 08:21:36 2025 : Debug: (36) else {
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[post-auth]:
calling noop (rlm_always)
Thu Apr 3 08:21:36 2025 : Debug: (36) modsingle[post-auth]:
returned from noop (rlm_always)
Thu Apr 3 08:21:36 2025 : Debug: (36) [noop] = noop
Thu Apr 3 08:21:36 2025 : Debug: (36) } # else = noop
Thu Apr 3 08:21:36 2025 : Debug: (36) } # policy
remove_reply_message_if_eap = noop
Thu Apr 3 08:21:36 2025 : Debug: (36) } # Post-Auth-Type REJECT = updated
Thu Apr 3 08:21:36 2025 : Auth: (36) Login incorrect (ldap: Bind
credentials incorrect: Invalid credentials):
[johnny.test(a)student.madeupdomain.com/Dookie2025] (from client LBSD
port 0)
Thu Apr 3 08:21:36 2025 : Debug: (36) Delaying response for 1.000000 seconds
Thu Apr 3 08:21:50 2025 : Debug: (59) Received Access-Request Id 14
from 192.168.1.5:62921 to 10.220.3.99:1812 length 77
Thu Apr 3 08:21:50 2025 : Debug: (59) User-Name =
"johnny.test(a)student.madeupdomain.com"
Thu Apr 3 08:21:50 2025 : Debug: (59) User-Password = "12345678"
Thu Apr 3 08:21:50 2025 : Debug: (59) Framed-IP-Address = 192.168.1.5
Thu Apr 3 08:21:50 2025 : Debug: (59) session-state: No State attribute
Thu Apr 3 08:21:50 2025 : Debug: (59) # Executing section authorize
from file /etc/freeradius/3.0/sites-enabled/default
Thu Apr 3 08:21:50 2025 : Debug: (59) authorize {
Thu Apr 3 08:21:50 2025 : Debug: (59) policy filter_username {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name) -> TRUE
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~ / /) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~ / /) -> FALSE
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~ /@[^@]*@/ ) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~
/@[^@]*@/ ) -> FALSE
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~ /\.\./ ) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~
/\.\./ ) -> FALSE
Thu Apr 3 08:21:50 2025 : Debug: (59) if ((&User-Name =~ /@/)
&& (&User-Name !~ /(a)(.+)\.(.+)$/)) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if ((&User-Name =~ /@/)
&& (&User-Name !~ /(a)(.+)\.(.+)$/)) -> FALSE
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~ /\.$/) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~
/\.$/) -> FALSE
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~ /(a)\./) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&User-Name =~
/(a)\./) -> FALSE
Thu Apr 3 08:21:50 2025 : Debug: (59) } # if (&User-Name) = notfound
Thu Apr 3 08:21:50 2025 : Debug: (59) } # policy filter_username = notfound
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling preprocess (rlm_preprocess)
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from preprocess (rlm_preprocess)
Thu Apr 3 08:21:50 2025 : Debug: (59) [preprocess] = ok
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling chap (rlm_chap)
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from chap (rlm_chap)
Thu Apr 3 08:21:50 2025 : Debug: (59) [chap] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling mschap (rlm_mschap)
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from mschap (rlm_mschap)
Thu Apr 3 08:21:50 2025 : Debug: (59) [mschap] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling digest (rlm_digest)
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from digest (rlm_digest)
Thu Apr 3 08:21:50 2025 : Debug: (59) [digest] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling suffix (rlm_realm)
Thu Apr 3 08:21:50 2025 : Debug: (59) suffix: Checking for suffix after "@"
Thu Apr 3 08:21:50 2025 : Debug: (59) suffix: Looking up realm
"student.madeupdomain.com" for User-Name =
"johnny.test(a)student.madeupdomain.com"
Thu Apr 3 08:21:50 2025 : Debug: (59) suffix: Found realm
"student.madeupdomain.com"
Thu Apr 3 08:21:50 2025 : Debug: (59) suffix: Adding
Stripped-User-Name = "johnny.test"
Thu Apr 3 08:21:50 2025 : Debug: (59) suffix: Adding Realm =
"student.madeupdomain.com"
Thu Apr 3 08:21:50 2025 : Debug: (59) suffix: Authentication realm is LOCAL
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from suffix (rlm_realm)
Thu Apr 3 08:21:50 2025 : Debug: (59) [suffix] = ok
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling eap (rlm_eap)
Thu Apr 3 08:21:50 2025 : Debug: (59) eap: No EAP-Message, not doing EAP
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from eap (rlm_eap)
Thu Apr 3 08:21:50 2025 : Debug: (59) [eap] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling files (rlm_files)
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from files (rlm_files)
Thu Apr 3 08:21:50 2025 : Debug: (59) [files] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling ldap (rlm_ldap)
Thu Apr 3 08:21:50 2025 : Debug: rlm_ldap (ldap): Reserved connection (1)
Thu Apr 3 08:21:50 2025 : Debug: (mail=%{User-Name})
Thu Apr 3 08:21:50 2025 : Debug: Parsed xlat tree:
Thu Apr 3 08:21:50 2025 : Debug: literal --> (mail=
Thu Apr 3 08:21:50 2025 : Debug: attribute --> User-Name
Thu Apr 3 08:21:50 2025 : Debug: literal --> )
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: EXPAND (mail=%{User-Name})
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: -->
(mail=johnny.test(a)student.madeupdomain.com)
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Performing search in
"dc=madeupdomain,dc=com" with filter
"(mail=johnny.test(a)student.madeupdomain.com)", scope "sub"
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Waiting for search result...
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: User object found at DN
"uid=johnny.test,ou=LBHS,ou=Students,ou=Users,dc=madeupdomain,dc=com"
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Processing user attributes
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Attribute "userPassword"
not found in LDAP object
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Attribute
"radiusControlAttribute" not found in LDAP object
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Attribute
"radiusRequestAttribute" not found in LDAP object
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Attribute
"radiusReplyAttribute" not found in LDAP object
Thu Apr 3 08:21:50 2025 : WARNING: (59) ldap: No "known good"
password added. Ensure the admin user has permission to read the
password attribute
Thu Apr 3 08:21:50 2025 : WARNING: (59) ldap: PAP authentication will
*NOT* work with Active Directory (if that is what you were trying to
configure)
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from ldap (rlm_ldap)
Thu Apr 3 08:21:50 2025 : Debug: (59) [ldap] = ok
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling expiration (rlm_expiration)
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from expiration (rlm_expiration)
Thu Apr 3 08:21:50 2025 : Debug: (59) [expiration] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling logintime (rlm_logintime)
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from logintime (rlm_logintime)
Thu Apr 3 08:21:50 2025 : Debug: (59) [logintime] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
calling pap (rlm_pap)
Thu Apr 3 08:21:50 2025 : WARNING: (59) pap: No "known good" password
found for the user. Not setting Auth-Type
Thu Apr 3 08:21:50 2025 : WARNING: (59) pap: Authentication will fail
unless a "known good" password is available
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authorize]:
returned from pap (rlm_pap)
Thu Apr 3 08:21:50 2025 : Debug: (59) [pap] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) if (User-Password) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (User-Password) -> TRUE
Thu Apr 3 08:21:50 2025 : Debug: (59) if (User-Password) {
Thu Apr 3 08:21:50 2025 : Debug: (59) update control {
Thu Apr 3 08:21:50 2025 : Debug: (59) Auth-Type := LDAP
Thu Apr 3 08:21:50 2025 : Debug: (59) } # update control = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) } # if (User-Password) = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) } # authorize = ok
Thu Apr 3 08:21:50 2025 : Debug: (59) Found Auth-Type = LDAP
Thu Apr 3 08:21:50 2025 : Debug: (59) # Executing group from file
/etc/freeradius/3.0/sites-enabled/default
Thu Apr 3 08:21:50 2025 : Debug: (59) authenticate {
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authenticate]:
calling ldap (rlm_ldap)
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Login attempt by "johnny.test"
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Using user DN from
request "uid=johnny.test,ou=LBHS,ou=Students,ou=Users,dc=madeupdomain,dc=com"
Thu Apr 3 08:21:50 2025 : Debug: (59) ldap: Waiting for bind result...
Thu Apr 3 08:21:50 2025 : ERROR: (59) ldap: Bind credentials
incorrect: Invalid credentials
Thu Apr 3 08:21:50 2025 : ERROR: (59) ldap: Server said: Incorrect password.
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[authenticate]:
returned from ldap (rlm_ldap)
Thu Apr 3 08:21:50 2025 : Debug: (59) [ldap] = reject
Thu Apr 3 08:21:50 2025 : Debug: (59) } # authenticate = reject
Thu Apr 3 08:21:50 2025 : Debug: (59) Failed to authenticate the user
Thu Apr 3 08:21:50 2025 : Debug: (59) Using Post-Auth-Type Reject
Thu Apr 3 08:21:50 2025 : Debug: (59) # Executing group from file
/etc/freeradius/3.0/sites-enabled/default
Thu Apr 3 08:21:50 2025 : Debug: (59) Post-Auth-Type REJECT {
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[post-auth]:
calling attr_filter.access_reject (rlm_attr_filter)
Thu Apr 3 08:21:50 2025 : Debug: %{User-Name}
Thu Apr 3 08:21:50 2025 : Debug: Parsed xlat tree:
Thu Apr 3 08:21:50 2025 : Debug: attribute --> User-Name
Thu Apr 3 08:21:50 2025 : Debug: (59) attr_filter.access_reject:
EXPAND %{User-Name}
Thu Apr 3 08:21:50 2025 : Debug: (59) attr_filter.access_reject:
--> johnny.test(a)student.madeupdomain.com
Thu Apr 3 08:21:50 2025 : Debug: (59) attr_filter.access_reject:
Matched entry DEFAULT at line 11
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[post-auth]:
returned from attr_filter.access_reject (rlm_attr_filter)
Thu Apr 3 08:21:50 2025 : Debug: (59) [attr_filter.access_reject] = updated
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[post-auth]:
calling eap (rlm_eap)
Thu Apr 3 08:21:50 2025 : Debug: (59) eap: Request didn't contain an
EAP-Message, not inserting EAP-Failure
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[post-auth]:
returned from eap (rlm_eap)
Thu Apr 3 08:21:50 2025 : Debug: (59) [eap] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) policy remove_reply_message_if_eap {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&reply:EAP-Message &&
&reply:Reply-Message) {
Thu Apr 3 08:21:50 2025 : Debug: (59) if (&reply:EAP-Message &&
&reply:Reply-Message) -> FALSE
Thu Apr 3 08:21:50 2025 : Debug: (59) else {
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[post-auth]:
calling noop (rlm_always)
Thu Apr 3 08:21:50 2025 : Debug: (59) modsingle[post-auth]:
returned from noop (rlm_always)
Thu Apr 3 08:21:50 2025 : Debug: (59) [noop] = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) } # else = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) } # policy
remove_reply_message_if_eap = noop
Thu Apr 3 08:21:50 2025 : Debug: (59) } # Post-Auth-Type REJECT = updated
Thu Apr 3 08:21:50 2025 : Auth: (59) Login incorrect (ldap: Bind
credentials incorrect: Invalid credentials):
[johnny.test(a)student.madeupdomain.com/12345678] (from client LBSD port
0)
Thu Apr 3 08:21:50 2025 : Debug: (59) Delaying response for 1.000000 seconds
Wayne Sprouse, CNA,CCNA,CEH,A+
Long Beach School District
Network Administrator
Work Phone: 228-575-4056
--
"The
foregoing electronic message and any files transmitted with it are
confidential and are intended only for the use of the intended recipient
named above. This communication may contain material protected by the
Family Educational Rights and Privacy Act (FERPA). If you are not the
intended recipient, copying, distribution or use of the contents of this
message is strictly prohibited. If you received this electronic
message
in error, please notify us immediately at (228-864-1146**)."**
3
3
Sam.Hutchings(a)berkshire.nhs.uk would like to recall the message, "TLS handshake not completing".
________________________________
This message is intended exclusively for the individuals to whom it is addressed and may contain information that is privileged, or confidential. If you are not the addressee, you must not read, use or disclose the contents of this e-mail. If you receive this e-mail in error, please advise us immediately on 0300 365 2438 and delete the e-mail. Berkshire Healthcare NHS Foundation Trust has taken every reasonable precaution to ensure that any attachment to this e-mail has been swept for viruses. However, the Trust cannot accept liability for any damage sustained as a result of software viruses and would advise that you carry out your own virus checks before opening any attachment.
1
0
Hi there
Maybe someone here on the list has already done this and can help me: I have a hard time finding libtalloc-devel for Red Hat 9.
libtalloc is already installed, but no headers... I'm really not a friend of this RHEL distro, but that's what our customer is using...
Best,
Till
5
12
Hello,
I am using freeradius for years with pppoe and I am very happy with it. I used default configurations with very little modifications, even using it for years I am having difficulties making some changes.This topic may be elaborated largely by the community, I read some similar, but I was not able to find exact details that I need.I use 'Simultaneous-Use' & 'Cleartext-Password' attributes and expiration module.Everything works fine
Now I need, accept all requests, butIf user is authenticated send framed-pool=normal_poolif not send framed-pool=loginfailed_poolif expired send framed-pool=expired_pool (working now)
My intention is to eliminate repeated login attempts in pppoe server.I am using a old version 3.0, not thinking to update
please can anyone help me
2
1
24 Mar '25
I'm not sure if this is a radsecproxy or freeradius issue so I've posted
something similar in the radsecproxy list also, but I would appreciate it
if you can advise.
I am using radsecproxy 1.9.1 as a radsec TLS client on an openwrt (latest
snapshot) embedded device, and freeradius 3.2.7. I have radsec in general
working fine on this server but now trying to get radsec support on openwrt.
radsecproxy initially connects just fine, but after 30 seconds it
disconnects and then has a fit and spams the syslog forever until restart.
It does this whether or not I connect a client to authenticate. I can
authenticate a client just fine on radsec before that initial 30 second
period so unsure what's going on here.
It does seem like it's related to the idle_timeout setting, but according
to the radsecproxy code it should just reconnect every 30s but can't. I
don't want to set an idle_timeout of 0 ideally, would you agree this is not
preferred behaviour?
Debug log from freeradius:
Listening on auth+acct proto tcp address * port 2083 (TLS) bound to server
default
Ready to process requests
... new connection request on TCP socket
Listening on auth+acct from client (78.32.xx.xx, 44103) -> (*, 2083,
virtual-server=default)
Waking up in 0.2 seconds.
(0) (TLS) RADIUS/TLS -Initiating new session
(0) (TLS) RADIUS/TLS - Handshake state - before SSL initialization
(0) (TLS) RADIUS/TLS - Handshake state - Server before SSL initialization
(0) (TLS) RADIUS/TLS - Handshake state - Server before SSL initialization
(0) (TLS) RADIUS/TLS - recv TLS 1.3 Handshake, ClientHello
(0) (TLS) RADIUS/TLS - Handshake state - Server SSLv3/TLS read client hello
(0) (TLS) RADIUS/TLS - send TLS 1.3 Handshake, ServerHello
(0) (TLS) RADIUS/TLS - Handshake state - Server SSLv3/TLS write server hello
(0) (TLS) RADIUS/TLS - send TLS 1.3 ChangeCipherSpec
(0) (TLS) RADIUS/TLS - Handshake state - Server SSLv3/TLS write change
cipher spec
(0) (TLS) RADIUS/TLS - send TLS 1.3 Handshake, EncryptedExtensions
(0) (TLS) RADIUS/TLS - Handshake state - Server TLSv1.3 write encrypted
extensions
(0) (TLS) RADIUS/TLS - send TLS 1.3 Handshake, Certificate
(0) (TLS) RADIUS/TLS - Handshake state - Server SSLv3/TLS write certificate
(0) (TLS) RADIUS/TLS - send TLS 1.3 Handshake, CertificateVerify
(0) (TLS) RADIUS/TLS - Handshake state - Server TLSv1.3 write server
certificate verify
(0) (TLS) RADIUS/TLS - send TLS 1.3 Handshake, Finished
(0) (TLS) RADIUS/TLS - Handshake state - Server SSLv3/TLS write finished
(0) (TLS) RADIUS/TLS - Handshake state - Server TLSv1.3 early data
(0) (TLS) RADIUS/TLS - Server : Need to read more data: TLSv1.3 early data
(0) (TLS) RADIUS/TLS - In Handshake Phase
Waking up in 0.2 seconds.
(0) (TLS) RADIUS/TLS - Handshake state - Server TLSv1.3 early data
(0) (TLS) RADIUS/TLS - recv TLS 1.3 Handshake, Finished
(0) (TLS) RADIUS/TLS - Handshake state - Server SSLv3/TLS read finished
(0) (TLS) RADIUS/TLS - Handshake state - SSL negotiation finished
successfully
(0) (TLS) RADIUS/TLS - Connection Established
(0) TLS-Session-Cipher-Suite = "TLS_AES_256_GCM_SHA384"
(0) TLS-Session-Version = "TLS 1.3"
(0) (TLS) RADIUS/TLS - Application data.
(0) (TLS) OpenSSL says that it needs to read more data.
Waking up in 0.1 seconds.
Waking up in 29.4 seconds.
Reached idle timeout on socket auth+acct from client (78.32.xx.xx, 44103)
-> (*, 2083, virtual-server=default)
... shutting down socket auth+acct from client (78.32.xx.xx, 44103) -> (*,
2083, virtual-server=default)
... cleaning up socket auth+acct from client (78.32.xx.xx, 44103) -> (*,
2083, virtual-server=default)
Debug log from radseproxy for completeness:
Sat Mar 22 12:43:01 2025 daemon.info radsecproxy[4861]: radsecproxy 1.9.1
starting
Sat Mar 22 12:43:01 2025 daemon.debug radsecproxy[4861]: resolvehostport:
(src info not available) -> 0.0.0.0
Sat Mar 22 12:43:01 2025 daemon.debug radsecproxy[4861]: tlsconnect: called
from clientwr
Sat Mar 22 12:43:01 2025 daemon.debug radsecproxy[4861]: udp server writer,
waiting for signal
Sat Mar 22 12:43:01 2025 daemon.info radsecproxy[4861]: tlsconnect: trying
to open TLS connection to server myradsec (radsec.myradsec.xyz port 2083)
Sat Mar 22 12:43:01 2025 daemon.debug radsecproxy[4861]: resolvehostport:
127.0.0.1 -> 127.0.0.1
Sat Mar 22 12:43:01 2025 daemon.info radsecproxy[4861]: disable_DF_bit:
disabling DF bit (Linux variant)
Sat Mar 22 12:43:01 2025 daemon.warn radsecproxy[4861]: createlistener:
listening for udp on 127.0.0.1:1812
Sat Mar 22 12:43:01 2025 daemon.debug radsecproxy[4861]: resolvehostport:
127.0.0.1 -> 127.0.0.1
Sat Mar 22 12:43:01 2025 daemon.info radsecproxy[4861]: disable_DF_bit:
disabling DF bit (Linux variant)
Sat Mar 22 12:43:01 2025 daemon.warn radsecproxy[4861]: createlistener:
listening for udp on 127.0.0.1:1813
Sat Mar 22 12:43:01 2025 daemon.debug radsecproxy[4861]: Connection up
Sat Mar 22 12:43:01 2025 daemon.debug radsecproxy[4861]: verifyconfcert:
verify certificate for host myradsec, subject CN=*.myradsec.xyz
Sat Mar 22 12:43:01 2025 daemon.debug radsecproxy[4861]: matchtregex:
matching *.myradsec.xyz
Sat Mar 22 12:43:01 2025 daemon.debug radsecproxy[4861]: verifyconfcert:
CN:/.myradsec\.xyz$/ matching for host myradsec (CN=*.myradsec.xyz)
Sat Mar 22 12:43:01 2025 daemon.warn radsecproxy[4861]: tlsconnect: TLS
connection to myradsec (radsec.myradsec.xyz port 2083), subject CN=*.
myradsec.xyz up
Sat Mar 22 12:43:31 2025 daemon.err radsecproxy[4861]: sslreadtimeout: SSL:
error:0A000126:SSL routines::unexpected eof while reading
Sat Mar 22 12:43:31 2025 daemon.info radsecproxy[4861]: sslreadtimeout:
connection closed by remote host
Sat Mar 22 12:43:31 2025 daemon.err radsecproxy[4861]: sslreadtimeout: SSL:
error:0A000197:SSL routines::shutdown while in init
Sat Mar 22 12:43:31 2025 daemon.err radsecproxy[4861]: sslreadtimeout:
connection lost: No error information
Sat Mar 22 12:43:31 2025 daemon.err radsecproxy[4861]: sslreadtimeout: SSL:
error:0A000197:SSL routines::shutdown while in init
Sat Mar 22 12:43:31 2025 daemon.err radsecproxy[4861]: sslreadtimeout:
connection lost: No error information
Sat Mar 22 12:43:31 2025 daemon.info radsecproxy[4861]: TLS Connection
lost: Broken pipe
Sat Mar 22 12:43:31 2025 daemon.info radsecproxy[4861]: TLS Connection
lost: hang up
Sat Mar 22 12:43:31 2025 daemon.info radsecproxy[4861]: TLS Connection
lost: hang up
Sat Mar 22 12:43:31 2025 daemon.info radsecproxy[4861]: TLS Connection
lost: hang up
Any idea how I can further debug or any suggestions?
Thanks
--
Visit purple.ai <https://purple.ai/>
Purple on LinkedIn
<https://uk.linkedin.com/company/purple-wifi>
Email disclaimer
<http://www.purple.ai/email-disclaimer/>
2
3
I am trying to use freeradius with WPA2-EAP. I have android clients
working but using IWD it seems to fail with a TLS handshake error.
Ready to process requests
Threads: total/active/spare threads = 2/0/2
Waking up in 0.3 seconds.
Thread 1 got semaphore
Thread 1 handling request 0, (1 handled so far)
(0) Received Access-Request Id 0 from 192.168.2.2:44444 to
192.168.2.1:1812 length 117
(0) User-Name = "as"
(0) NAS-IP-Address = 192.168.2.2
(0) Called-Station-Id = "b4378330fc3b"
(0) Calling-Station-Id = "5a5b3135062e"
(0) NAS-Identifier = "b4378330fc3b"
(0) NAS-Port = 29
(0) Framed-MTU = 1400
(0) NAS-Port-Type = Wireless-802.11
(0) EAP-Message = 0x02000007016173
(0) Message-Authenticator = 0x03105277799198b5f2c8e05d953827e8
(0) session-state: No State attribute
(0) # Executing section authorize from file /etc/raddb/radiusd.conf
(0) authorize {
(0) modsingle[authorize]: calling eap (rlm_eap)
(0) eap: Peer sent EAP Response (code 2) ID 0 length 7
(0) eap: EAP-Identity reply, returning 'ok' so we can short-circuit
the rest of authorize
(0) modsingle[authorize]: returned from eap (rlm_eap)
(0) [eap] = ok
(0) } # authorize = ok
(0) Found Auth-Type = eap
(0) # Executing group from file /etc/raddb/radiusd.conf
(0) authenticate {
(0) modsingle[authenticate]: calling eap (rlm_eap)
(0) eap: Peer sent packet with method EAP Identity (1)
(0) eap: Calling submodule eap_tls to process data
(0) eap_tls: (TLS) TLS -Initiating new session
(0) eap_tls: (TLS) TLS - Setting verify mode to require certificate from client
(0) eap_tls: [eaptls start] = request
(0) eap: Sending EAP Request (code 1) ID 1 length 10
(0) eap: EAP session adding &reply:State = 0xdfcd0373dfcc0e53
(0) modsingle[authenticate]: returned from eap (rlm_eap)
(0) [eap] = handled
(0) } # authenticate = handled
(0) Using Post-Auth-Type Challenge
(0) Post-Auth-Type sub-section not found. Ignoring.
(0) session-state: Saving cached attributes
(0) Framed-MTU = 1014
(0) Sent Access-Challenge Id 0 from 192.168.2.1:1812 to
192.168.2.2:44444 length 68
(0) EAP-Message = 0x0101000a0da000000000
(0) Message-Authenticator = 0x00000000000000000000000000000000
(0) State = 0xdfcd0373dfcc0e53057e01be00df4fb0
(0) Finished request
Thread 1 waiting to be assigned a request
(0) Cleaning up request packet ID 0 with timestamp +16 due to
conflicting packet was received
Waking up in 0.3 seconds.
Thread 2 got semaphore
Thread 2 handling request 1, (1 handled so far)
(1) Received Access-Request Id 0 from 192.168.2.2:44444 to
192.168.2.1:1812 length 265
(1) User-Name = "as"
(1) NAS-IP-Address = 192.168.2.2
(1) Called-Station-Id = "b4378330fc3b"
(1) Calling-Station-Id = "5a5b3135062e"
(1) NAS-Identifier = "b4378330fc3b"
(1) NAS-Port = 29
(1) Framed-MTU = 1400
(1) State = 0xdfcd0373dfcc0e53057e01be00df4fb0
(1) NAS-Port-Type = Wireless-802.11
(1) EAP-Message =
0x020100890d00160301007e0100007a030367df7cae99f0e7e4fba4bb3181d9255fb4e4053b47f21d704f41904b9a089dc400002ac014c013003900330035002fc028c027006b0067003d003cc030c02f009f009e009d009cc0120016000a0100002700
(1) Message-Authenticator = 0x15eed9703faadf1d00a6dfe52a3e6807
(1) Restoring &session-state
(1) &session-state:Framed-MTU = 1014
(1) # Executing section authorize from file /etc/raddb/radiusd.conf
(1) authorize {
(1) modsingle[authorize]: calling eap (rlm_eap)
(1) eap: Peer sent EAP Response (code 2) ID 1 length 137
(1) eap: No EAP Start, assuming it's an on-going EAP conversation
(1) modsingle[authorize]: returned from eap (rlm_eap)
(1) [eap] = updated
(1) } # authorize = updated
(1) Found Auth-Type = eap
(1) # Executing group from file /etc/raddb/radiusd.conf
(1) authenticate {
(1) modsingle[authenticate]: calling eap (rlm_eap)
(1) eap: Removing EAP session with state 0xdfcd0373dfcc0e53
(1) eap: Previous EAP request found for state 0xdfcd0373dfcc0e53,
released from the list
(1) eap: Peer sent packet with method EAP TLS (13)
(1) eap: Calling submodule eap_tls to process data
(1) eap_tls: (TLS) EAP Continuing ...
(1) eap_tls: (TLS) EAP Peer sent flags ---
(1) eap_tls: (TLS) EAP Got final fragment (131 bytes)
WARNING: (1) eap_tls: (TLS) EAP Total received record fragments (131
bytes), does not equal expected expected data length (0 bytes)
(1) eap_tls: (TLS) EAP Verification says ok
(1) eap_tls: (TLS) EAP Done initial handshake
(1) eap_tls: (TLS) TLS - Handshake state [PINIT] - before SSL initialization (0)
(1) eap_tls: (TLS) TLS - Handshake state [PINIT] - Server before SSL
initialization (0)
(TLS) Ignoring cbtls_msg call with pseudo content type 256, version 00000301
(1) eap_tls: (TLS) TLS - Handshake state [PINIT] - Server before SSL
initialization (0)
(TLS) Received 126 bytes of TLS data
(TLS) 01 00 00 7a 03 03 67 df 7c ae 99 f0 e7 e4 fb a4
(TLS) bb 31 81 d9 25 5f b4 e4 05 3b 47 f2 1d 70 4f 41
(TLS) 90 4b 9a 08 9d c4 00 00 2a c0 14 c0 13 00 39 00
(TLS) 33 00 35 00 2f c0 28 c0 27 00 6b 00 67 00 3d 00
(TLS) 3c c0 30 c0 2f 00 9f 00 9e 00 9d 00 9c c0 12 00
(TLS) 16 00 0a 01 00 00 27 00 0a 00 10 00 0e 00 17 00
(TLS) 18 01 00 01 01 01 02 01 03 01 04 00 0d 00 0a 00
(TLS) 08 05 01 04 01 01 01 02 01 ff 01 00 01 00
(1) eap_tls: (TLS) TLS - recv TLS 1.3 Handshake, ClientHello
(TLS) Ignoring cbtls_msg call with pseudo content type 256, version 00000303
(TLS) Received 2 bytes of TLS data
(TLS) 02 28
(1) eap_tls: (TLS) TLS - send TLS 1.2 Alert, fatal handshake_failure
ERROR: (1) eap_tls: (TLS) TLS - Alert write:fatal:handshake failure
ERROR: (1) eap_tls: (TLS) TLS - Server : Error in error
(1) eap_tls: Server preferred ciphers (by priority)
(1) eap_tls: (TLS) [0] TLS_AES_256_GCM_SHA384
(1) eap_tls: (TLS) [1] TLS_AES_128_GCM_SHA256
(1) eap_tls: (TLS) [2] ECDHE-ECDSA-AES256-GCM-SHA384
(1) eap_tls: (TLS) [3] ECDHE-RSA-AES256-GCM-SHA384
(1) eap_tls: (TLS) [4] DHE-DSS-AES256-GCM-SHA384
(1) eap_tls: (TLS) [5] DHE-RSA-AES256-GCM-SHA384
(1) eap_tls: (TLS) [6] ECDHE-ECDSA-AES256-CCM
(1) eap_tls: (TLS) [7] DHE-RSA-AES256-CCM
(1) eap_tls: (TLS) [8] ECDHE-ECDSA-ARIA256-GCM-SHA384
(1) eap_tls: (TLS) [9] ECDHE-ARIA256-GCM-SHA384
(1) eap_tls: (TLS) [10] DHE-DSS-ARIA256-GCM-SHA384
(1) eap_tls: (TLS) [11] DHE-RSA-ARIA256-GCM-SHA384
(1) eap_tls: (TLS) [12] ADH-AES256-GCM-SHA384
(1) eap_tls: (TLS) [13] ECDHE-ECDSA-AES128-GCM-SHA256
(1) eap_tls: (TLS) [14] ECDHE-RSA-AES128-GCM-SHA256
(1) eap_tls: (TLS) [15] DHE-DSS-AES128-GCM-SHA256
(1) eap_tls: (TLS) [16] DHE-RSA-AES128-GCM-SHA256
(1) eap_tls: (TLS) [17] ECDHE-ECDSA-AES128-CCM
(1) eap_tls: (TLS) [18] DHE-RSA-AES128-CCM
(1) eap_tls: (TLS) [19] ECDHE-ECDSA-ARIA128-GCM-SHA256
(1) eap_tls: (TLS) [20] ECDHE-ARIA128-GCM-SHA256
(1) eap_tls: (TLS) [21] DHE-DSS-ARIA128-GCM-SHA256
(1) eap_tls: (TLS) [22] DHE-RSA-ARIA128-GCM-SHA256
(1) eap_tls: (TLS) [23] ADH-AES128-GCM-SHA256
(1) eap_tls: (TLS) [24] ECDHE-ECDSA-AES256-SHA384
(1) eap_tls: (TLS) [25] ECDHE-RSA-AES256-SHA384
(1) eap_tls: (TLS) [26] DHE-RSA-AES256-SHA256
(1) eap_tls: (TLS) [27] DHE-DSS-AES256-SHA256
(1) eap_tls: (TLS) [28] ECDHE-ECDSA-CAMELLIA256-SHA384
(1) eap_tls: (TLS) [29] ECDHE-RSA-CAMELLIA256-SHA384
(1) eap_tls: (TLS) [30] DHE-RSA-CAMELLIA256-SHA256
(1) eap_tls: (TLS) [31] DHE-DSS-CAMELLIA256-SHA256
(1) eap_tls: (TLS) [32] ADH-AES256-SHA256
(1) eap_tls: (TLS) [33] ADH-CAMELLIA256-SHA256
(1) eap_tls: (TLS) [34] ECDHE-ECDSA-AES128-SHA256
(1) eap_tls: (TLS) [35] ECDHE-RSA-AES128-SHA256
(1) eap_tls: (TLS) [36] DHE-RSA-AES128-SHA256
(1) eap_tls: (TLS) [37] DHE-DSS-AES128-SHA256
(1) eap_tls: (TLS) [38] ECDHE-ECDSA-CAMELLIA128-SHA256
(1) eap_tls: (TLS) [39] ECDHE-RSA-CAMELLIA128-SHA256
(1) eap_tls: (TLS) [40] DHE-RSA-CAMELLIA128-SHA256
(1) eap_tls: (TLS) [41] DHE-DSS-CAMELLIA128-SHA256
(1) eap_tls: (TLS) [42] ADH-AES128-SHA256
(1) eap_tls: (TLS) [43] ADH-CAMELLIA128-SHA256
(1) eap_tls: (TLS) [44] ECDHE-ECDSA-AES256-SHA
(1) eap_tls: (TLS) [45] ECDHE-RSA-AES256-SHA
(1) eap_tls: (TLS) [46] DHE-RSA-AES256-SHA
(1) eap_tls: (TLS) [47] DHE-DSS-AES256-SHA
(1) eap_tls: (TLS) [48] DHE-RSA-CAMELLIA256-SHA
(1) eap_tls: (TLS) [49] DHE-DSS-CAMELLIA256-SHA
(1) eap_tls: (TLS) [50] AECDH-AES256-SHA
(1) eap_tls: (TLS) [51] ADH-AES256-SHA
(1) eap_tls: (TLS) [52] ADH-CAMELLIA256-SHA
(1) eap_tls: (TLS) [53] ECDHE-ECDSA-AES128-SHA
(1) eap_tls: (TLS) [54] ECDHE-RSA-AES128-SHA
(1) eap_tls: (TLS) [55] DHE-RSA-AES128-SHA
(1) eap_tls: (TLS) [56] DHE-DSS-AES128-SHA
(1) eap_tls: (TLS) [57] DHE-RSA-CAMELLIA128-SHA
(1) eap_tls: (TLS) [58] DHE-DSS-CAMELLIA128-SHA
(1) eap_tls: (TLS) [59] AECDH-AES128-SHA
(1) eap_tls: (TLS) [60] ADH-AES128-SHA
(1) eap_tls: (TLS) [61] ADH-CAMELLIA128-SHA
(1) eap_tls: (TLS) [62] AES256-GCM-SHA384
(1) eap_tls: (TLS) [63] AES256-CCM
(1) eap_tls: (TLS) [64] ARIA256-GCM-SHA384
(1) eap_tls: (TLS) [65] AES128-GCM-SHA256
(1) eap_tls: (TLS) [66] AES128-CCM
(1) eap_tls: (TLS) [67] ARIA128-GCM-SHA256
(1) eap_tls: (TLS) [68] AES256-SHA256
(1) eap_tls: (TLS) [69] CAMELLIA256-SHA256
(1) eap_tls: (TLS) [70] AES128-SHA256
(1) eap_tls: (TLS) [71] CAMELLIA128-SHA256
(1) eap_tls: (TLS) [72] SRP-DSS-AES-256-CBC-SHA
(1) eap_tls: (TLS) [73] SRP-RSA-AES-256-CBC-SHA
(1) eap_tls: (TLS) [74] SRP-AES-256-CBC-SHA
(1) eap_tls: (TLS) [75] AES256-SHA
(1) eap_tls: (TLS) [76] CAMELLIA256-SHA
(1) eap_tls: (TLS) [77] SRP-DSS-AES-128-CBC-SHA
(1) eap_tls: (TLS) [78] SRP-RSA-AES-128-CBC-SHA
(1) eap_tls: (TLS) [79] SRP-AES-128-CBC-SHA
(1) eap_tls: (TLS) [80] AES128-SHA
(1) eap_tls: (TLS) [81] CAMELLIA128-SHA
(1) eap_tls: (TLS) TLS - Client preferred ciphers (by priority)
(1) eap_tls: (TLS) [0] ECDHE-RSA-AES256-SHA
(1) eap_tls: (TLS) [1] ECDHE-RSA-AES128-SHA
(1) eap_tls: (TLS) [2] DHE-RSA-AES256-SHA
(1) eap_tls: (TLS) [3] DHE-RSA-AES128-SHA
(1) eap_tls: (TLS) [4] AES256-SHA
(1) eap_tls: (TLS) [5] AES128-SHA
(1) eap_tls: (TLS) [6] ECDHE-RSA-AES256-SHA384
(1) eap_tls: (TLS) [7] ECDHE-RSA-AES128-SHA256
(1) eap_tls: (TLS) [8] DHE-RSA-AES256-SHA256
(1) eap_tls: (TLS) [9] DHE-RSA-AES128-SHA256
(1) eap_tls: (TLS) [10] AES256-SHA256
(1) eap_tls: (TLS) [11] AES128-SHA256
(1) eap_tls: (TLS) [12] ECDHE-RSA-AES256-GCM-SHA384
(1) eap_tls: (TLS) [13] ECDHE-RSA-AES128-GCM-SHA256
(1) eap_tls: (TLS) [14] DHE-RSA-AES256-GCM-SHA384
(1) eap_tls: (TLS) [15] DHE-RSA-AES128-GCM-SHA256
(1) eap_tls: (TLS) [16] AES256-GCM-SHA384
(1) eap_tls: (TLS) [17] AES128-GCM-SHA256
ERROR: (1) eap_tls: (TLS) Failed reading from OpenSSL:
ssl/statem/statem_srvr.c[2312]:error:0A0000C1:lib(20)::reason(193)
ERROR: (1) eap_tls: (TLS) System call (I/O) error (-1)
ERROR: (1) eap_tls: (TLS) EAP Receive handshake failed during operation
ERROR: (1) eap_tls: [eaptls process] = fail
ERROR: (1) eap: Failed continuing EAP TLS (13) session. EAP sub-module failed
(1) eap: Sending EAP Failure (code 4) ID 1 length 4
(1) eap: Failed in EAP select
(1) modsingle[authenticate]: returned from eap (rlm_eap)
(1) [eap] = invalid
(1) } # authenticate = invalid
(1) Failed to authenticate the user
(1) Using Post-Auth-Type Reject
(1) Post-Auth-Type sub-section not found. Ignoring.
(1) Login incorrect (eap_tls: (TLS) TLS - Alert write:fatal:handshake
failure): [as] (from client ac port 29 cli 5a5b3135062e)
(1) Delaying response for 5.000000 seconds
Thread 2 waiting to be assigned a request
Waking up in 4.6 seconds.
(1) Sending delayed response
(1) Sent Access-Reject Id 0 from 192.168.2.1:1812 to 192.168.2.2:44444 length 44
(1) EAP-Message = 0x04010004
(1) Message-Authenticator = 0x00000000000000000000000000000000
(1) Cleaning up request packet ID 0 with timestamp +16 due to done
eady to process requests
Waking up in 0.3 seconds.
Thread 1 got semaphore
Thread 1 handling request 2, (2 handled so far)
(2) Received Access-Request Id 0 from 192.168.2.2:44444 to
192.168.2.1:1812 length 117
(2) User-Name = "as"
(2) NAS-IP-Address = 192.168.2.2
(2) Called-Station-Id = "b4378330fc3b"
(2) Calling-Station-Id = "5a5b3135062e"
(2) NAS-Identifier = "b4378330fc3b"
(2) NAS-Port = 29
(2) Framed-MTU = 1400
(2) NAS-Port-Type = Wireless-802.11
(2) EAP-Message = 0x02000007016173
(2) Message-Authenticator = 0x65ea19588c27954be750b34f05da01b7
(2) session-state: No State attribute
(2) # Executing section authorize from file /etc/raddb/radiusd.conf
(2) authorize {
(2) modsingle[authorize]: calling eap (rlm_eap)
(2) eap: Peer sent EAP Response (code 2) ID 0 length 7
(2) eap: EAP-Identity reply, returning 'ok' so we can short-circuit
the rest of authorize
(2) modsingle[authorize]: returned from eap (rlm_eap)
(2) [eap] = ok
(2) } # authorize = ok
(2) Found Auth-Type = eap
(2) # Executing group from file /etc/raddb/radiusd.conf
(2) authenticate {
(2) modsingle[authenticate]: calling eap (rlm_eap)
(2) eap: Peer sent packet with method EAP Identity (1)
(2) eap: Calling submodule eap_tls to process data
(2) eap_tls: (TLS) TLS -Initiating new session
(2) eap_tls: (TLS) TLS - Setting verify mode to require certificate from client
(2) eap_tls: [eaptls start] = request
(2) eap: Sending EAP Request (code 1) ID 1 length 10
(2) eap: EAP session adding &reply:State = 0x73da5fd773db5206
(2) modsingle[authenticate]: returned from eap (rlm_eap)
(2) [eap] = handled
(2) } # authenticate = handled
(2) Using Post-Auth-Type Challenge
(2) Post-Auth-Type sub-section not found. Ignoring.
(2) session-state: Saving cached attributes
(2) Framed-MTU = 1014
(2) Sent Access-Challenge Id 0 from 192.168.2.1:1812 to
192.168.2.2:44444 length 68
(2) EAP-Message = 0x0101000a0da000000000
(2) Message-Authenticator = 0x00000000000000000000000000000000
(2) State = 0x73da5fd773db520659675dbb5c31485d
(2) Finished request
Thread 1 waiting to be assigned a request
(2) Cleaning up request packet ID 0 with timestamp +131 due to
conflicting packet was received
Waking up in 0.3 seconds.
Thread 2 got semaphore
Thread 2 handling request 3, (2 handled so far)
(3) Received Access-Request Id 0 from 192.168.2.2:44444 to
192.168.2.1:1812 length 265
(3) User-Name = "as"
(3) NAS-IP-Address = 192.168.2.2
(3) Called-Station-Id = "b4378330fc3b"
(3) Calling-Station-Id = "5a5b3135062e"
(3) NAS-Identifier = "b4378330fc3b"
(3) NAS-Port = 29
(3) Framed-MTU = 1400
(3) State = 0x73da5fd773db520659675dbb5c31485d
(3) NAS-Port-Type = Wireless-802.11
(3) EAP-Message =
0x020100890d00160301007e0100007a030367df7d21f4b742d6792d0128f9d335437102d658ee7fe1dc1c334257dacf927600002ac014c013003900330035002fc028c027006b0067003d003cc030c02f009f009e009d009cc0120016000a0100002700
(3) Message-Authenticator = 0x68e323e0b85f9b9e6c84bec8bc5bb779
(3) Restoring &session-state
(3) &session-state:Framed-MTU = 1014
(3) # Executing section authorize from file /etc/raddb/radiusd.conf
(3) authorize {
(3) modsingle[authorize]: calling eap (rlm_eap)
(3) eap: Peer sent EAP Response (code 2) ID 1 length 137
(3) eap: No EAP Start, assuming it's an on-going EAP conversation
(3) modsingle[authorize]: returned from eap (rlm_eap)
(3) [eap] = updated
(3) } # authorize = updated
(3) Found Auth-Type = eap
(3) # Executing group from file /etc/raddb/radiusd.conf
(3) authenticate {
(3) modsingle[authenticate]: calling eap (rlm_eap)
(3) eap: Removing EAP session with state 0x73da5fd773db5206
(3) eap: Previous EAP request found for state 0x73da5fd773db5206,
released from the list
(3) eap: Peer sent packet with method EAP TLS (13)
(3) eap: Calling submodule eap_tls to process data
(3) eap_tls: (TLS) EAP Continuing ...
(3) eap_tls: (TLS) EAP Peer sent flags ---
(3) eap_tls: (TLS) EAP Got final fragment (131 bytes)
WARNING: (3) eap_tls: (TLS) EAP Total received record fragments (131
bytes), does not equal expected expected data length (0 bytes)
(3) eap_tls: (TLS) EAP Verification says ok
(3) eap_tls: (TLS) EAP Done initial handshake
(3) eap_tls: (TLS) TLS - Handshake state [PINIT] - before SSL initialization (0)
(3) eap_tls: (TLS) TLS - Handshake state [PINIT] - Server before SSL
initialization (0)
(TLS) Ignoring cbtls_msg call with pseudo content type 256, version 00000301
(3) eap_tls: (TLS) TLS - Handshake state [PINIT] - Server before SSL
initialization (0)
(TLS) Received 126 bytes of TLS data
(TLS) 01 00 00 7a 03 03 67 df 7d 21 f4 b7 42 d6 79 2d
(TLS) 01 28 f9 d3 35 43 71 02 d6 58 ee 7f e1 dc 1c 33
(TLS) 42 57 da cf 92 76 00 00 2a c0 14 c0 13 00 39 00
(TLS) 33 00 35 00 2f c0 28 c0 27 00 6b 00 67 00 3d 00
(TLS) 3c c0 30 c0 2f 00 9f 00 9e 00 9d 00 9c c0 12 00
(TLS) 16 00 0a 01 00 00 27 00 0a 00 10 00 0e 00 17 00
(TLS) 18 01 00 01 01 01 02 01 03 01 04 00 0d 00 0a 00
(TLS) 08 05 01 04 01 01 01 02 01 ff 01 00 01 00
(3) eap_tls: (TLS) TLS - recv TLS 1.3 Handshake, ClientHello
(TLS) Ignoring cbtls_msg call with pseudo content type 256, version 00000303
(TLS) Received 2 bytes of TLS data
(TLS) 02 28
(3) eap_tls: (TLS) TLS - send TLS 1.2 Alert, fatal handshake_failure
ERROR: (3) eap_tls: (TLS) TLS - Alert write:fatal:handshake failure
ERROR: (3) eap_tls: (TLS) TLS - Server : Error in error
(3) eap_tls: Server preferred ciphers (by priority)
(3) eap_tls: (TLS) [0] TLS_AES_256_GCM_SHA384
(3) eap_tls: (TLS) [1] TLS_AES_128_GCM_SHA256
(3) eap_tls: (TLS) [2] ECDHE-ECDSA-AES256-GCM-SHA384
(3) eap_tls: (TLS) [3] ECDHE-RSA-AES256-GCM-SHA384
(3) eap_tls: (TLS) [4] DHE-DSS-AES256-GCM-SHA384
(3) eap_tls: (TLS) [5] DHE-RSA-AES256-GCM-SHA384
(3) eap_tls: (TLS) [6] ECDHE-ECDSA-AES256-CCM
(3) eap_tls: (TLS) [7] DHE-RSA-AES256-CCM
(3) eap_tls: (TLS) [8] ECDHE-ECDSA-ARIA256-GCM-SHA384
(3) eap_tls: (TLS) [9] ECDHE-ARIA256-GCM-SHA384
(3) eap_tls: (TLS) [10] DHE-DSS-ARIA256-GCM-SHA384
(3) eap_tls: (TLS) [11] DHE-RSA-ARIA256-GCM-SHA384
(3) eap_tls: (TLS) [12] ADH-AES256-GCM-SHA384
(3) eap_tls: (TLS) [13] ECDHE-ECDSA-AES128-GCM-SHA256
(3) eap_tls: (TLS) [14] ECDHE-RSA-AES128-GCM-SHA256
(3) eap_tls: (TLS) [15] DHE-DSS-AES128-GCM-SHA256
(3) eap_tls: (TLS) [16] DHE-RSA-AES128-GCM-SHA256
(3) eap_tls: (TLS) [17] ECDHE-ECDSA-AES128-CCM
(3) eap_tls: (TLS) [18] DHE-RSA-AES128-CCM
(3) eap_tls: (TLS) [19] ECDHE-ECDSA-ARIA128-GCM-SHA256
(3) eap_tls: (TLS) [20] ECDHE-ARIA128-GCM-SHA256
(3) eap_tls: (TLS) [21] DHE-DSS-ARIA128-GCM-SHA256
(3) eap_tls: (TLS) [22] DHE-RSA-ARIA128-GCM-SHA256
(3) eap_tls: (TLS) [23] ADH-AES128-GCM-SHA256
(3) eap_tls: (TLS) [24] ECDHE-ECDSA-AES256-SHA384
(3) eap_tls: (TLS) [25] ECDHE-RSA-AES256-SHA384
(3) eap_tls: (TLS) [26] DHE-RSA-AES256-SHA256
(3) eap_tls: (TLS) [27] DHE-DSS-AES256-SHA256
(3) eap_tls: (TLS) [28] ECDHE-ECDSA-CAMELLIA256-SHA384
(3) eap_tls: (TLS) [29] ECDHE-RSA-CAMELLIA256-SHA384
(3) eap_tls: (TLS) [30] DHE-RSA-CAMELLIA256-SHA256
(3) eap_tls: (TLS) [31] DHE-DSS-CAMELLIA256-SHA256
(3) eap_tls: (TLS) [32] ADH-AES256-SHA256
(3) eap_tls: (TLS) [33] ADH-CAMELLIA256-SHA256
(3) eap_tls: (TLS) [34] ECDHE-ECDSA-AES128-SHA256
(3) eap_tls: (TLS) [35] ECDHE-RSA-AES128-SHA256
(3) eap_tls: (TLS) [36] DHE-RSA-AES128-SHA256
(3) eap_tls: (TLS) [37] DHE-DSS-AES128-SHA256
(3) eap_tls: (TLS) [38] ECDHE-ECDSA-CAMELLIA128-SHA256
(3) eap_tls: (TLS) [39] ECDHE-RSA-CAMELLIA128-SHA256
(3) eap_tls: (TLS) [40] DHE-RSA-CAMELLIA128-SHA256
(3) eap_tls: (TLS) [41] DHE-DSS-CAMELLIA128-SHA256
(3) eap_tls: (TLS) [42] ADH-AES128-SHA256
(3) eap_tls: (TLS) [43] ADH-CAMELLIA128-SHA256
(3) eap_tls: (TLS) [44] ECDHE-ECDSA-AES256-SHA
(3) eap_tls: (TLS) [45] ECDHE-RSA-AES256-SHA
(3) eap_tls: (TLS) [46] DHE-RSA-AES256-SHA
(3) eap_tls: (TLS) [47] DHE-DSS-AES256-SHA
(3) eap_tls: (TLS) [48] DHE-RSA-CAMELLIA256-SHA
(3) eap_tls: (TLS) [49] DHE-DSS-CAMELLIA256-SHA
(3) eap_tls: (TLS) [50] AECDH-AES256-SHA
(3) eap_tls: (TLS) [51] ADH-AES256-SHA
(3) eap_tls: (TLS) [52] ADH-CAMELLIA256-SHA
(3) eap_tls: (TLS) [53] ECDHE-ECDSA-AES128-SHA
(3) eap_tls: (TLS) [54] ECDHE-RSA-AES128-SHA
(3) eap_tls: (TLS) [55] DHE-RSA-AES128-SHA
(3) eap_tls: (TLS) [56] DHE-DSS-AES128-SHA
(3) eap_tls: (TLS) [57] DHE-RSA-CAMELLIA128-SHA
(3) eap_tls: (TLS) [58] DHE-DSS-CAMELLIA128-SHA
(3) eap_tls: (TLS) [59] AECDH-AES128-SHA
(3) eap_tls: (TLS) [60] ADH-AES128-SHA
(3) eap_tls: (TLS) [61] ADH-CAMELLIA128-SHA
(3) eap_tls: (TLS) [62] AES256-GCM-SHA384
(3) eap_tls: (TLS) [63] AES256-CCM
(3) eap_tls: (TLS) [64] ARIA256-GCM-SHA384
(3) eap_tls: (TLS) [65] AES128-GCM-SHA256
(3) eap_tls: (TLS) [66] AES128-CCM
(3) eap_tls: (TLS) [67] ARIA128-GCM-SHA256
(3) eap_tls: (TLS) [68] AES256-SHA256
(3) eap_tls: (TLS) [69] CAMELLIA256-SHA256
(3) eap_tls: (TLS) [70] AES128-SHA256
(3) eap_tls: (TLS) [71] CAMELLIA128-SHA256
(3) eap_tls: (TLS) [72] SRP-DSS-AES-256-CBC-SHA
(3) eap_tls: (TLS) [73] SRP-RSA-AES-256-CBC-SHA
(3) eap_tls: (TLS) [74] SRP-AES-256-CBC-SHA
(3) eap_tls: (TLS) [75] AES256-SHA
(3) eap_tls: (TLS) [76] CAMELLIA256-SHA
(3) eap_tls: (TLS) [77] SRP-DSS-AES-128-CBC-SHA
(3) eap_tls: (TLS) [78] SRP-RSA-AES-128-CBC-SHA
(3) eap_tls: (TLS) [79] SRP-AES-128-CBC-SHA
(3) eap_tls: (TLS) [80] AES128-SHA
(3) eap_tls: (TLS) [81] CAMELLIA128-SHA
(3) eap_tls: (TLS) TLS - Client preferred ciphers (by priority)
(3) eap_tls: (TLS) [0] ECDHE-RSA-AES256-SHA
(3) eap_tls: (TLS) [1] ECDHE-RSA-AES128-SHA
(3) eap_tls: (TLS) [2] DHE-RSA-AES256-SHA
(3) eap_tls: (TLS) [3] DHE-RSA-AES128-SHA
(3) eap_tls: (TLS) [4] AES256-SHA
(3) eap_tls: (TLS) [5] AES128-SHA
(3) eap_tls: (TLS) [6] ECDHE-RSA-AES256-SHA384
(3) eap_tls: (TLS) [7] ECDHE-RSA-AES128-SHA256
(3) eap_tls: (TLS) [8] DHE-RSA-AES256-SHA256
(3) eap_tls: (TLS) [9] DHE-RSA-AES128-SHA256
(3) eap_tls: (TLS) [10] AES256-SHA256
(3) eap_tls: (TLS) [11] AES128-SHA256
(3) eap_tls: (TLS) [12] ECDHE-RSA-AES256-GCM-SHA384
(3) eap_tls: (TLS) [13] ECDHE-RSA-AES128-GCM-SHA256
(3) eap_tls: (TLS) [14] DHE-RSA-AES256-GCM-SHA384
(3) eap_tls: (TLS) [15] DHE-RSA-AES128-GCM-SHA256
(3) eap_tls: (TLS) [16] AES256-GCM-SHA384
(3) eap_tls: (TLS) [17] AES128-GCM-SHA256
ERROR: (3) eap_tls: (TLS) Failed reading from OpenSSL:
ssl/statem/statem_srvr.c[2312]:error:0A0000C1:lib(20)::reason(193)
ERROR: (3) eap_tls: (TLS) System call (I/O) error (-1)
ERROR: (3) eap_tls: (TLS) EAP Receive handshake failed during operation
ERROR: (3) eap_tls: [eaptls process] = fail
ERROR: (3) eap: Failed continuing EAP TLS (13) session. EAP sub-module failed
(3) eap: Sending EAP Failure (code 4) ID 1 length 4
(3) eap: Failed in EAP select
(3) modsingle[authenticate]: returned from eap (rlm_eap)
(3) [eap] = invalid
(3) } # authenticate = invalid
(3) Failed to authenticate the user
(3) Using Post-Auth-Type Reject
(3) Post-Auth-Type sub-section not found. Ignoring.
(3) Login incorrect (eap_tls: (TLS) TLS - Alert write:fatal:handshake
failure): [as] (from client ac port 29 cli 5a5b3135062e)
(3) Delaying response for 5.000000 seconds
Thread 2 waiting to be assigned a request
Waking up in 4.6 seconds.
(3) Sending delayed response
(3) Sent Access-Reject Id 0 from 192.168.2.1:1812 to 192.168.2.2:44444 length 44
(3) EAP-Message = 0x04010004
(3) Message-Authenticator = 0x00000000000000000000000000000000
(3) Cleaning up request packet ID 0 with timestamp +131 due to done
Ready to process requests
2
2
Hi,
I am having a problem making FreeRADIUS querying for the group presence. Generally, authentication consists of two stages. The first stage is verifying the user with the RADIUS server via proxy; in the second stage, freeradius has to confirm if the user belongs to one of the groups defined LDAP and populate VSA's. So, the first stage ran successfully, LDAP connections were established at the startup, but pulling groups at the second stage is not happening. The log is:
(6) Received Access-Request Id 239 from 127.0.0.1:55766 to 127.0.0.1:1825 length 101
(6) Message-Authenticator = 0xc70aa4ebf93116a15e305fbe97e49bb8
(6) User-Name = "generic-ms-user"
(6) User-Password = "*********"
(6) NAS-IP-Address = 172.17.0.6
(6) NAS-Port = 1
(6) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/default
(6) authorize {
(6) [preprocess] = ok
(6) auth_log: EXPAND /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(6) auth_log: --> /var/log/freeradius/radacct/127.0.0.1/auth-detail-20250311
(6) auth_log: /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d expands to /var/log/freeradius/radacct/127.0.0.1/auth-detail-20250311
(6) auth_log: EXPAND %t
(6) auth_log: --> Tue Mar 11 12:38:06 2025
(6) [auth_log] = ok
(6) pap: WARNING: No "known good" password found for the user. Not setting Auth-Type
(6) pap: WARNING: Authentication will fail unless a "known good" password is available
(6) [pap] = noop
(6) update control {
(6) Proxy-to-Realm := "radius_server"
(6) } # update control = noop
(6) } # authorize = ok
(6) Starting proxy to home server 100.127.1.24 port 1823
(6) server default {
(6) }
(6) Proxying request to home server 100.127.1.24 port 1823 timeout 10.000000
(6) Sent Access-Request Id 171 from 0.0.0.0:57934 to 100.127.1.24:1823 length 112
(6) Message-Authenticator = 0xc70aa4ebf93116a15e305fbe97e49bb8
(6) User-Name = "generic-ms-user"
(6) User-Password = "*********"
(6) NAS-IP-Address = 172.17.0.6
(6) NAS-Port = 1
(6) Event-Timestamp = "Mar 11 2025 12:38:06 UTC"
(6) Proxy-State = 0x323339
Waking up in 0.3 seconds.
(6) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(6) BlastRADIUS check: Received packet without Message-Authenticator from home_server radius_server1
(6) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(6) The packet does not contain Message-Authenticator, which is a security issue
(6) UPGRADE THE HOME SERVER AS YOUR NETWORK IS VULNERABLE TO THE BLASTRADIUS ATTACK.
(6) Once the home server is upgraded, set "require_message_authenticator = true" for home_server radius_server1
(6) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(6) Clearing existing &reply: attributes
(6) Received Access-Accept Id 171 from 100.127.1.24:1823 to 172.17.0.6:57934 length 25
(6) Proxy-State = 0x323339
(6) server default {
(6) }
(6) Found Auth-Type = Accept
(6) Auth-Type = Accept, accepting the user
(6) # Executing section post-auth from file /etc/freeradius/3.0/sites-enabled/default
(6) post-auth {
(6) [ldap_server] = noop
(6) if (&control:LDAP-Group == "Radius_Admin_Group") {
(6) ERROR: Failed retrieving values required to evaluate condition
(6) elsif (&control:LDAP-Group == "Radius_ReadOnly_Group") {
(6) ERROR: Failed retrieving values required to evaluate condition
(6) elsif (&control:LDAP-Group == "Radius_ReadWrite_Group") {
(6) ERROR: Failed retrieving values required to evaluate condition
(6) else {
(6) update control {
(6) Auth-Type := Reject
(6) } # update control = noop
(6) update reply {
(6) Reply-Message := "Access denied: Unauthorized group."
(6) } # update reply = noop
(6) } # else = noop
(6) } # post-auth = noop
(6) Login OK: [generic-ms-user] (from client localhost port 1)
(6) Sent Access-Accept Id 239 from 127.0.0.1:1825 to 127.0.0.1:55766 length 0
(6) Reply-Message := "Access denied: Unauthorized group."
(6) Finished request
Waking up in 4.9 seconds.
Any ideas will be appreciated!
Best regards Matvey Teplov
3
4
Good morning,
I am migrating the FreeRadius server from version 2.2.8 to a new machine
running RHEL9 with FreeRadius 3.0.21-43, but when I try to start the
services I get the following error:
/etc/raddb/radiusd.conf[167]: Configuration item "user" is deprecated
/etc/raddb/radiusd.conf[0]: Cannot use deprecated configuration item "user"
radiusd: ERROR - Failed to parse user/group information.
Has anyone else experienced this problem or have a solution?
Thank you.
2
1