Freeradius-Users
Threads by month
- ----- 2026 -----
- 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
- 10 participants
- 27050 discussions
Hello, I use EAP to authenticate wireless clients that support 802.1x.
But we have some IoT devices that don't support 802.1x, is it possible to make them connect to the same SSID with some kind of fallback?
I saw a lot of articles teaching how to do this in ISE.
Basically you enable Mac Authentication Bypass in the wireless controller and then it sends the mac to the radius server, if the mac is invalid then it try 802.1x.
I tried that, but when the client connects to the ssid It sends the MAC and is rejected by radius.
It doesn't try 802.1x.
Have anyone already use this?
Here are some articles I found:
https://community.cisco.com/t5/wireless/wireless-802-1x-with-mab-as-fallbac… Wireless MAB and 802.1X
https://community.cisco.com/t5/wireless/cisco-wireless-mab-and-802-1x/td-p/…
4
19
Hello, I'm currently working on configuring the TLS cache and noticed that,
upon reconnection, the client rewrites both files (.asn1 and .vps) in the
configured directory. From what I understand, it should reuse the
information stored in those files to avoid reestablishing the TLS
connection from scratch.
Alan, I promise I’ve read the comments in the configuration files, but I’m
still struggling to fully understand how it works. I’d really appreciate it
if you could help clarify this for me.
root@loli-pc:/var/log/freeradius/tlscache# ll
total 24K
drwxr-xr-x 2 freerad freerad 4,0K jul 19 07:54 .
drwxr-x--- 4 freerad freerad 4,0K jul 19 06:03 ..
-rw------- 1 freerad freerad 1,2K jul 19 07:54
35b6e644d6e9796809a07643ceee2542bcf311ef233ba29f8cec94d87d26e36f.asn1
-rw-r--r-- 1 freerad freerad 1,5K jul 19 07:54
35b6e644d6e9796809a07643ceee2542bcf311ef233ba29f8cec94d87d26e36f.vps
-rw------- 1 freerad freerad 1,2K jul 19 07:54
95c5a5a5c3d3a9d5dfc5055fb9e68097f5f53d64ce5b0fbd0c8a2ffaadba6fc8.asn1
-rw-r--r-- 1 freerad freerad 1,5K jul 19 07:54
95c5a5a5c3d3a9d5dfc5055fb9e68097f5f53d64ce5b0fbd0c8a2ffaadba6fc8.vps
Fisrts connection
8) # Executing group from file /etc/freeradius/sites-enabled/default
(8) authenticate {
(8) eap: Removing EAP session with state 0x08b1afdb0eb6a23f
(8) eap: Previous EAP request found for state 0x08b1afdb0eb6a23f, released
from the list
(8) eap: Peer sent packet with method EAP TLS (13)
(8) eap: Calling submodule eap_tls to process data
(8) eap_tls: (TLS) EAP Got final fragment (110 bytes) total 2642
(8) eap_tls: (TLS) EAP Done initial handshake
(8) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS write server
done
(8) eap_tls: (TLS) TLS - recv TLS 1.2 Handshake, Certificate
(8) eap_tls: (TLS) TLS - Creating attributes from 2 certificate in chain
(8) eap_tls: TLS-Cert-Serial := "7903974cb1367854b0fb2ee672ff78c68211ba5e"
(8) eap_tls: TLS-Cert-Expiration := "250726070714Z"
(8) eap_tls: TLS-Cert-Valid-Since := "250527070714Z"
(8) eap_tls: TLS-Cert-Subject := "/C=FR/ST=Radius/L=Somewhere/O=Example
Inc./emailAddress=admin(a)example.org/CN=free.loli.local"
(8) eap_tls: TLS-Cert-Issuer := "/C=FR/ST=Radius/L=Somewhere/O=Example
Inc./emailAddress=admin(a)example.org/CN=free.loli.local"
(8) eap_tls: TLS-Cert-Common-Name := "free.loli.local"
(8) eap_tls: TLS-Cert-CRL-Distribution-Points += "
http://www.example.org/example_ca.crl"
(8) eap_tls: (TLS) TLS - Creating attributes from 1 certificate in chain
(8) eap_tls: TLS-Client-Cert-Serial := "02"
(8) eap_tls: TLS-Client-Cert-Expiration := "250726070721Z"
(8) eap_tls: TLS-Client-Cert-Valid-Since := "250527070721Z"
(8) eap_tls: TLS-Client-Cert-Subject := "/C=FR/ST=Radius/O=Example
Inc./CN=lolito/emailAddress=userdsdsd(a)example.org"
(8) eap_tls: TLS-Client-Cert-Issuer :=
"/C=FR/ST=Radius/L=Somewhere/O=Example Inc./emailAddress=
admin(a)example.org/CN=free.loli.local"
(8) eap_tls: TLS-Client-Cert-Common-Name := "lolito"
(8) eap_tls: TLS-Client-Cert-CRL-Distribution-Points += "
http://www.example.com/example_ca.crl"
(8) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage += "TLS Web Client
Authentication"
(8) eap_tls: TLS-Client-Cert-X509v3-Subject-Key-Identifier +=
"FD:D3:42:C8:4A:F1:0C:65:A5:A3:B6:8E:2A:73:B0:FA:B2:0D:CF:CD"
(8) eap_tls: TLS-Client-Cert-X509v3-Authority-Key-Identifier +=
"86:BC:40:4A:6E:B2:66:02:81:A5:75:19:DF:93:B8:AD:12:75:75:60"
(8) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage-OID +=
"1.3.6.1.5.5.7.3.2"
(8) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read client
certificate
(8) eap_tls: (TLS) TLS - recv TLS 1.2 Handshake, ClientKeyExchange
(8) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read client key
exchange
(8) eap_tls: (TLS) TLS - recv TLS 1.2 Handshake, CertificateVerify
(8) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read
certificate verify
(8) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read change
cipher spec
(8) eap_tls: (TLS) TLS - recv TLS 1.2 Handshake, Finished
(8) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read finished
(8) eap_tls: (TLS) TLS - send TLS 1.2 ChangeCipherSpec
(8) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS write change
cipher spec
(8) eap_tls: (TLS) TLS - send TLS 1.2 Handshake, Finished
(8) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS write finished
(8) eap_tls: Serialising session
95c5a5a5c3d3a9d5dfc5055fb9e68097f5f53d64ce5b0fbd0c8a2ffaadba6fc8, and
storing in cache
(8) eap_tls: WARNING: (TLS) TLS - Wrote session
95c5a5a5c3d3a9d5dfc5055fb9e68097f5f53d64ce5b0fbd0c8a2ffaadba6fc8 to
/var/log/freeradius/tlscache/95c5a5a5c3d3a9d5dfc5055fb9e68097f5f53d64ce5b0fbd0c8a2ffaadba6fc8.asn1
(1175 bytes)
(8) eap_tls: (TLS) TLS - Handshake state - SSL negotiation finished
successfully
(8) eap_tls: (TLS) TLS - Connection Established
(8) eap_tls: TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(8) eap_tls: TLS-Session-Version = "TLS 1.2"
(8) eap: Sending EAP Request (code 1) ID 8 length 61
(8) eap: EAP session adding &reply:State = 0x08b1afdb0fb9a23f
(8) [eap] = handled
(8) } # authenticate = handled
(8) Using Post-Auth-Type Challenge
(8) # Executing group from file /etc/freeradius/sites-enabled/default
(8) Challenge { ... } # empty sub-section is ignored
(8) session-state: Saving cached attributes
(8) Framed-MTU = 994
(8) TLS-Session-Information = "(TLS) TLS - recv TLS 1.3 Handshake,
ClientHello"
(8) TLS-Session-Information = "(TLS) TLS - send TLS 1.2 Handshake,
ServerHello"
(8) TLS-Session-Information = "(TLS) TLS - send TLS 1.2 Handshake,
Certificate"
(8) TLS-Session-Information = "(TLS) TLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(8) TLS-Session-Information = "(TLS) TLS - send TLS 1.2 Handshake,
CertificateRequest"
(8) TLS-Session-Information = "(TLS) TLS - send TLS 1.2 Handshake,
ServerHelloDone"
(8) TLS-Session-Information = "(TLS) TLS - recv TLS 1.2 Handshake,
Certificate"
(8) TLS-Session-Information = "(TLS) TLS - recv TLS 1.2 Handshake,
ClientKeyExchange"
(8) TLS-Session-Information = "(TLS) TLS - recv TLS 1.2 Handshake,
CertificateVerify"
(8) TLS-Session-Information = "(TLS) TLS - recv TLS 1.2 Handshake,
Finished"
(8) TLS-Session-Information = "(TLS) TLS - send TLS 1.2 ChangeCipherSpec"
(8) TLS-Session-Information = "(TLS) TLS - send TLS 1.2 Handshake,
Finished"
(8) TLS-Cache-Filename =
"/var/log/freeradius/tlscache/95c5a5a5c3d3a9d5dfc5055fb9e68097f5f53d64ce5b0fbd0c8a2ffaadba6fc8.asn1"
(8) TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(8) TLS-Session-Version = "TLS 1.2"
(8) Sent Access-Challenge Id 94 from 192.168.122.1:1812 to
192.168.122.64:53296 length 119
(8) EAP-Message =
0x0108003d0d8000000033140303000101160303002805edd07841a6a266432a9833cf13cb26374e5900c2967dbef35d48b18a7f8be25844724e2f9a0645
(8) Message-Authenticator = 0x00000000000000000000000000000000
(8) State = 0x08b1afdb0fb9a23fa8fead84ac6fdcc0
(8) Finished request
Second
(17) # Executing group from file /etc/freeradius/sites-enabled/default
(17) authenticate {
(17) eap: Removing EAP session with state 0x4a09d2574c0edf49
(17) eap: Previous EAP request found for state 0x4a09d2574c0edf49, released
from the list
(17) eap: Peer sent packet with method EAP TLS (13)
(17) eap: Calling submodule eap_tls to process data
(17) eap_tls: (TLS) EAP Got final fragment (110 bytes) total 2642
(17) eap_tls: (TLS) EAP Done initial handshake
(17) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS write server
done
(17) eap_tls: (TLS) TLS - recv TLS 1.2 Handshake, Certificate
(17) eap_tls: (TLS) TLS - Creating attributes from 2 certificate in chain
(17) eap_tls: TLS-Cert-Serial :=
"7903974cb1367854b0fb2ee672ff78c68211ba5e"
(17) eap_tls: TLS-Cert-Expiration := "250726070714Z"
(17) eap_tls: TLS-Cert-Valid-Since := "250527070714Z"
(17) eap_tls: TLS-Cert-Subject := "/C=FR/ST=Radius/L=Somewhere/O=Example
Inc./emailAddress=admin(a)example.org/CN=free.loli.local"
(17) eap_tls: TLS-Cert-Issuer := "/C=FR/ST=Radius/L=Somewhere/O=Example
Inc./emailAddress=admin(a)example.org/CN=free.loli.local"
(17) eap_tls: TLS-Cert-Common-Name := "free.loli.local"
(17) eap_tls: TLS-Cert-CRL-Distribution-Points += "
http://www.example.org/example_ca.crl"
(17) eap_tls: (TLS) TLS - Creating attributes from 1 certificate in chain
(17) eap_tls: TLS-Client-Cert-Serial := "02"
(17) eap_tls: TLS-Client-Cert-Expiration := "250726070721Z"
(17) eap_tls: TLS-Client-Cert-Valid-Since := "250527070721Z"
(17) eap_tls: TLS-Client-Cert-Subject := "/C=FR/ST=Radius/O=Example
Inc./CN=lolito/emailAddress=userdsdsd(a)example.org"
(17) eap_tls: TLS-Client-Cert-Issuer :=
"/C=FR/ST=Radius/L=Somewhere/O=Example Inc./emailAddress=
admin(a)example.org/CN=free.loli.local"
(17) eap_tls: TLS-Client-Cert-Common-Name := "lolito"
(17) eap_tls: TLS-Client-Cert-CRL-Distribution-Points += "
http://www.example.com/example_ca.crl"
(17) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage += "TLS Web
Client Authentication"
(17) eap_tls: TLS-Client-Cert-X509v3-Subject-Key-Identifier +=
"FD:D3:42:C8:4A:F1:0C:65:A5:A3:B6:8E:2A:73:B0:FA:B2:0D:CF:CD"
(17) eap_tls: TLS-Client-Cert-X509v3-Authority-Key-Identifier +=
"86:BC:40:4A:6E:B2:66:02:81:A5:75:19:DF:93:B8:AD:12:75:75:60"
(17) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage-OID +=
"1.3.6.1.5.5.7.3.2"
(17) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read client
certificate
(17) eap_tls: (TLS) TLS - recv TLS 1.2 Handshake, ClientKeyExchange
(17) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read client
key exchange
(17) eap_tls: (TLS) TLS - recv TLS 1.2 Handshake, CertificateVerify
(17) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read
certificate verify
(17) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read change
cipher spec
(17) eap_tls: (TLS) TLS - recv TLS 1.2 Handshake, Finished
(17) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS read finished
(17) eap_tls: (TLS) TLS - send TLS 1.2 ChangeCipherSpec
(17) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS write change
cipher spec
(17) eap_tls: (TLS) TLS - send TLS 1.2 Handshake, Finished
(17) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS write finished
(17) eap_tls: Serialising session
35b6e644d6e9796809a07643ceee2542bcf311ef233ba29f8cec94d87d26e36f, and
storing in cache
(17) eap_tls: WARNING: (TLS) TLS - Wrote session
35b6e644d6e9796809a07643ceee2542bcf311ef233ba29f8cec94d87d26e36f to
/var/log/freeradius/tlscache/35b6e644d6e9796809a07643ceee2542bcf311ef233ba29f8cec94d87d26e36f.asn1
(1175 bytes)
(17) eap_tls: (TLS) TLS - Handshake state - SSL negotiation finished
successfully
(17) eap_tls: (TLS) TLS - Connection Established
(17) eap_tls: TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(17) eap_tls: TLS-Session-Version = "TLS 1.2"
(17) eap: Sending EAP Request (code 1) ID 8 length 61
(17) eap: EAP session adding &reply:State = 0x4a09d2574d01df49
2
4
Hello
today we use FreeRADIUS Version 3.0.16 on "Ubuntu 18.04 LTS"
recently, for security reasons, we change the hash of passwd in our
ldap directory from {SSHA} to {CRYPT}*SCRYPT *but EAP/TTLS/PAP no longer
works
Indeed, man rlm_pap talks about crypt but not *scrypt*
I installed a new test VM host with FreeRADIUS Version 3.2.5 on "Ubuntu
24.04.2 LTS"
It works fine now but I don't know if it's due to the new version of
freeradius or the updated crypt libraries for exemple ?
Even in this version, man rlm_pap talks about crypt but not *scrypt*
In /usr/share/doc/libcrypt-dev/README.md.gz for exemple I find
effectively that SCRYPT is supported
Can you help me answer this question? Thank you, Bregards Marc
--
IMT Atlantique <https://www.imt-atlantique.fr>
*Marc FRADIN*
Ingénieur Système et Réseaux
02 99 12 70 24 - 06 30 51 38 40
2, rue de la Châtaigneraie CS 17608
35576 Cesson Sévigné Cedex
Site web IMT Atlantique <https://www.imt-atlantique.fr>Twitter IMT
Atlantique <https://twitter.com/IMTAtlantique>Facebook IMT Atlantique
<https://www.facebook.com/IMTAtlantique>LinkedIn IMT Atlantique
<https://www.linkedin.com/school/24772587/>Instagram IMT Atlantique
<https://www.instagram.com/imt_atlantique/>Blog IMT Atlantique
<http://www.imt-atlantique.fr/l-ecole/actualites>
Une école de l'IMT <https://www.imt.fr>
2
1
17 Jul '25
Hello
I’m trying to configure FreeRadius to offer addresses to a remote subnet behind a DHCP Relay agent.
My local IP range is 192.168.1.0/24 with the server at 192.168.1.1
My remote range is 192.168.2.0/24 with the Relay Agent at 192.168.2.1.
I have two pools in dhcpippool using MySQL
MariaDB [radius]> select * from dhcpippool;
+----+-----------+-----------------+------------------+-------------+---------------------+---------+---------+
| id | pool_name | framedipaddress | pool_key | gateway | expiry_time | status | counter |
+----+-----------+-----------------+------------------+-------------+---------------------+---------+---------+
| 9 | local | 192.99.0.102 | 0x01d076580cbb80 | 0.0.0.0 | 2025-07-16 23:47:58 | dynamic | 0 |
| 10 | local | 192.99.0.101 | | 192.99.0.1 | 2025-07-16 17:58:09 | dynamic | 0 |
| 11 | local | 192.99.0.100 | | 192.99.0.1 | 2025-07-16 21:51:58 | dynamic | 0 |
| 12 | ipoe | 192.168.2.100 | | 192.168.2.1 | 2025-07-17 14:00:33 | dynamic | 0 |
| 13 | ipoe | 192.168.2.101 | | 192.168.2.1 | 2025-07-17 14:00:39 | dynamic | 0 |
| 14 | ipoe | 192.168.2.102 | | 192.168.2.1 | 2025-07-17 14:00:44 | dynamic | 0 |
+----+-----------+-----------------+------------------+-------------+---------------------+---------+---------+
6 rows in set (0.003 sec)
MariaDB [radius]>
I can server hosts locally on 192.168.1.0 and everything works fine.
However, I’m seeing zero traffic incoming to radius -X even though tcpdump shows that traffic is being received on the eth0 interface (192.168.1.1). Pcap attached taken on the DHCP server machine.
Is there a config step I am missing? ss -lunp shows that radiusd is listening on port 67.
My files/dhcp is configured as follows:
#
network Pool-Name := "local"
DHCP-Domain-Name := "local.org",
DHCP-Subnet-Mask := 255.255.255.0,
DHCP-Router-Address := 192.168.1.1,
DHCP-Domain-Name-Server := 8.8.8.8,
Fall-Through := yes
network DHCP-Network-Subnet < 192.168.2.0/24, Pool-Name := "ipoe"
DHCP-Domain-Name := "remote.org",
DHCP-Subnet-Mask := 255.255.255.0,
DHCP-Router-Address := 192.168.2.1,
DHCP-Domain-Name-Server := 8.8.8.8,
Fall-Through := yes
DHCP in mods-enabled is:
listen {
# This is a dhcp socket.
type = dhcp
# IP address to listen on. Will usually be the IP of the
# interface, or 0.0.0.0
ipaddr = 192.168.1.1
# source IP address for unicast packets sent by the
# DHCP server.
#
# The source IP for unicast packets is chosen from the first
# one of the following items which returns a valid IP
# address:
#
# reply:Packet-Src-IP-Address
# If the request is unicast, the address it was received on
# src_ipaddr
# ipaddr
# reply:DHCP-DHCP-Server-Identifier
#
src_ipaddr = 192.168.1.1
# The port should be 67 for a production network. Don't set
# it to 67 on a production network unless you really know
# what you're doing. Even if nothing is configured below, the
# server may still NAK legitimate responses from clients.
port = 67
# Interface name we are listening on. See comments above.
interface = eth0
# The DHCP server defaults to allowing broadcast packets.
# Set this to "no" only when the server receives *all* packets
# from a relay agent. i.e. when *no* clients are on the same
# LAN as the DHCP server.
#
# It's set to "no" here for testing. It will usually want to
# be "yes" in production, unless you are only dealing with
# relayed packets.
broadcast = no
# On Linux if you're running the server as non-root, you
# will need to do:
#
# setcap cap_net_admin,cap_net_bind_service=eip /path/to/radiusd
#
# This will allow the server to set ARP table entries
# for newly allocated IPs, when run as the "radius" user.
#
# The above "setcap" command adds the capability to the program,
# usually so long as it is run by the "radius" user. Which means
# (oddly enough) that it no longer works when run as root!
#
# When running the server as root in debug mode, you can use:
#
# capsh --caps="cap_setpcap,cap_setuid,cap_setgid,cap_net_admin,cap_net_bind_service+eip" --keep=1 --user=radius --addamb=cap_net_admin,cap_net_bind_service -- -c "/path/to/radiusd -X"
#
# Or, simply "sudo" or "su" to the "radius" user, and then run
# the server in debug mode.
# De-duplicate DHCP packets. If clients don't receive
# a reply within their timeout, most will re-transmit.
# A reply to either packet will satisfy, so de-duplicating
# helps manage load on a busy server
performance {
skip_duplicate_checks = no
}
}
# Packets received on the socket will be processed through one
# of the following sections, named after the DHCP packet type.
# See dictionary.dhcp for the packet types.
# Return packets will be sent to, in preference order:
# DHCP-Gateway-IP-Address
# DHCP-Client-IP-Address
# DHCP-Your-IP-Address
# At least one of these attributes should be set at the end of each
# section for a response to be sent.
# An internal attribute of DHCP-Network-Subnet is set to provide
# a basis for determining the network that a client belongs to. This
# is a hierarchical assignment based on:
#
# - DHCP-Relay-Link-Selection
# - DHCP-Subnet-Selection-Option
# - DHCP-Gateway-IP-Address
# - DHCP-Client-IP-Address
#
# Except for cases where all IP allocation is performed using a mapping from
# the device MAC address to a fixed IP address the DHCP configuration will
# involve the use of one or more pools.
#
# Each pool should be composed of a set of equally valid IP addresses for the
# devices designated as users of the pool. During IP allocation the choice of
# pool is driven by setting the Pool-Name attribute which may either be
# specified directly or chosen (usually with the help of the dhcp_network
# module) based on the initial value of DHCP-Network-Subnet.
#
# DHCP-Network-Subnet indicates the network from which the request is
# originating. In cases where the originating network alone is insufficent to
# define the required IP allocated policy, DHCP-Network-Subnet may be
# overridden to force the selection of a particular pool.
#
# IP addresses belonging to a single pool that is designated for a Layer 2
# network containing multiple subnets (a "shared-network" or "multinet"
# configuration as defined by some other DHCP servers), will by definition be
# members of distinct subnets that require their own DHCP reply parameters. In
# this case the dhcp_subnet policy can be used to set the correct
# DHCP-Subnet-Mask, DHCP-Router-Address and DHCP-Broadcast-Address options
# based on the allocated IP.
dhcp DHCP-Discover {
# The DHCP Server Identifier is set here since is returned in OFFERs
update control {
&DHCP-DHCP-Server-Identifier = 192.168.1.1
}
# Call a policy (defined in policy.d/dhcp) to set common reply attributes
# dhcp_common
# Use a "passwd" module to set group memberships in DHCP-Group-Name
# Enable mods-available/dhcp_passwd to use this
#dhcp_group_membership
# If clients need to be assigned to a particular network based on
# an attribute in the packet rather than the calculated
# DHCP-Network-Subnet described above, then call a policy
# (defined in policy.d/dhcp) to perform the override
#dhcp_override_network
# Use a "files" module to lookup global and subnet options
# For multiple subnets use this in place of dhcp_common
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
dhcp_network
# Do a simple mapping of MAC to assigned IP.
#
# See below for the definition of the "mac2ip"
# module.
#
#mac2ip
# Or, allocate IPs from the DHCP pool in SQL. You may need to
# set the pool name here if you haven't set it elsewhere.
# update control {
# &Pool-Name := "local"
#}
dhcp_sqlippool
# If the IP address was not allocated, do something else.
# You could call a Perl, Python, or Java script here.
#if (notfound) {
# ...
#}
# "Shared-networks" may have multiple IP subnets co-existing in a
# single Layer 2 network. If the pool for the network contains
# addresses from more that one subnet then the setting subnet-specific
# DHCP-Subnet-Mask, DHCP-Router-Address and DHCP-Broadcast-Address
# parameters must be performed after the allocation of the IP address.
#
# Set any subnet-specific parameters using this policy.
#
# Enable mods-available/dhcp_files AND uncomment dhcp_subnet in
# policy.d/dhcp to use this.
#
#dhcp_subnet
# Use a "files" module to lookup options based on DHCP-Group-Name
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
#dhcp_group_options
# Use a "files" module to lookup host specific options
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
#dhcp_hosts
# As an alternative or complement to configuration files based lookup
# for options data you can instead use an SQL database. Example
# configuration is found in dhcp_policy_sql in policy.d/dhcp which
# will need to be adapted to your requirements.
#dhcp_policy_sql
# Set the type of packet to send in reply.
#
# The server will look at the DHCP-Message-Type attribute to
# determine which type of packet to send in reply. Common
# values would be DHCP-Offer, DHCP-Ack or DHCP-NAK. See
# dictionary.dhcp for all the possible values.
#
# DHCP-Do-Not-Respond can be used to tell the server to not
# respond.
#
# In the event that DHCP-Message-Type is not set then the
# server will fall back to determining the type of reply
# based on the rcode of this section.
#
#update reply {
# DHCP-Message-Type = DHCP-Offer
#}
#
# If DHCP-Message-Type is not set, returning "ok" or
# "updated" from this section will respond with a DHCP-Offer
# message.
#
# Other rcodes will tell the server to not return any response.
#
#ok
}
dhcp DHCP-Request {
# You must set the DHCP Server Identifier here since this is returned
# in ACKs and is used to determine whether a request containing a
# "server-ip" field is intended for this server
update control {
&DHCP-DHCP-Server-Identifier = 192.0.2.2
}
# If the request is not for this server then silently discard it
if (&request:DHCP-DHCP-Server-Identifier && \
&request:DHCP-DHCP-Server-Identifier != &control:DHCP-DHCP-Server-Identifier) {
do_not_respond
}
# Response packet type. See DHCP-Discover section above.
#update reply {
# &DHCP-Message-Type = DHCP-Ack
#}
# Call a policy (defined in policy.d/dhcp) to set common reply attributes
# dhcp_common
# Use a "passwd" module to set group memberships in DHCP-Group-Name
# Enable mods-available/dhcp_passwd to use this
#dhcp_group_membership
# Optionally override the network address based on client attributes
# See Discover section
#dhcp_override_network
# Use a "files" module to lookup global and subnet options
# For multiple subnets use this in place of dhcp_common
# Enable mods-available/dhcp_files AND uncomment dhcp_subnet in
# policy.d/dhcp to use this
# Options are set in mods-config/files/dhcp
dhcp_network
# Do a simple mapping of MAC to assigned IP.
#
# See below for the definition of the "mac2ip"
# module.
#
#mac2ip
# Or, allocate IPs from the DHCP pool in SQL. You may need to
# set the pool name here if you haven't set it elsewhere.
# update control {
# &Pool-Name := "local"
# }
dhcp_sqlippool_request
# If the IP was not allocated, do something else.
# You could call a Perl, Python, or Java script here.
#if (notfound) {
# ...
#}
# "Shared-networks" may have multiple IP subnets co-existing in a
# single Layer 2 network. If the pool for the network contains
# addresses from more that one subnet then the setting subnet-specific
# DHCP-Subnet-Mask, DHCP-Router-Address and DHCP-Broadcast-Address
# parameters must be performed after the allocation of the IP address.
#
# Set any subnet-specific parameters using this policy.
#
#dhcp_subnet
# Use a "files" module to lookup options based on DHCP-Group-Name
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
#dhcp_group_options
# Use a "files" module to lookup host specific options
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
#dhcp_hosts
# As an alternative or complement to configuration files based lookup
# for options data you can instead use an SQL database. Example
# configuration is found in dhcp_policy_sql in policy.d/dhcp which
# will need to be adapted to your requirements.
#dhcp_policy_sql
# If DHCP-Message-Type is not set, returning "ok" or
# "updated" from this section will respond with a DHCP-Ack
# packet.
#
# "handled" will not return a packet, all other rcodes will
# send back a DHCP-NAK.
#
#ok
}
#
# Other DHCP packet types
#
# There should be a separate section for each DHCP message type.
# By default this configuration will ignore them all. Any packet type
# not defined here will be responded to with a DHCP-NAK.
dhcp DHCP-Decline {
# Use a "passwd" module to set group memberships in DHCP-Group-Name
# Enable mods-available/dhcp_passwd to use this
#dhcp_group_membership
# Optionally override the network address based on client attributes
# See Discover section
#dhcp_override_network
# Use a "files" module to lookup global and subnet options
# For multiple networks use this in place of dhcp_common
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
dhcp_network
# Use a policy that set options from data stored in an SQL database
#dhcp_policy_sql
# If using IPs from a DHCP pool in SQL then you may need to set the
# pool name here if you haven't set it elsewhere and release the IP.
# update control {
# &Pool-Name := "local"
# }
# dhcp_sqlippool_decline
update reply {
&DHCP-Message-Type = DHCP-Do-Not-Respond
}
reject
}
#
# A dummy config for Inform packets - this should match the
# options set in the Request section above, except Inform replies
# must not set Your-IP-Address or IP-Address-Lease-Time
#
dhcp DHCP-Inform {
# Call a policy (defined in policy.d/dhcp) to set common reply attributes
# dhcp_common
# Use a "passwd" module to set group memberships in DHCP-Group-Name
# Enable mods-available/dhcp_passwd to use this
#dhcp_group_membership
# Optionally override the network address based on client attributes
# See Discover section
#dhcp_override_network
# Use a "files" module to lookup global and network options
# For multiple networks use this in place of dhcp_common
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
dhcp_network
# Use a policy with calls a "files" module of the same name to lookup
# subnet options
# Enable mods-available/dhcp_files AND uncomment dhcp_subnet in
# policy.d/dhcp to use this
# Options are set in mods-config/files/dhcp
#dhcp_subnet
# Use a "files" module to lookup options based on DHCP-Group-Name
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
#dhcp_group_options
# Use a "files" module to lookup host specific options
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
#dhcp_hosts
# Use a policy that set options from data stored in an SQL database
#dhcp_policy_sql
ok
}
#
# For Windows 7 boxes
#
#dhcp DHCP-Inform {
# update reply {
# Packet-Dst-Port = 67
# DHCP-Message-Type = DHCP-ACK
# DHCP-DHCP-Server-Identifier = "%{Packet-Dst-IP-Address}"
# DHCP-Site-specific-28 = 0x0a00
# }
# ok
#}
dhcp DHCP-Release {
# Use a "passwd" module to set group memberships in DHCP-Group-Name
# Enable mods-available/dhcp_passwd to use this
#dhcp_group_membership
# Optionally override the network address based on client attributes
# See Discover section
#dhcp_override_network
# Use a "files" module to lookup global and subnet options
# For multiple subnets use this in place of dhcp_common
# Enable mods-available/dhcp_files to use this
# Options are set in mods-config/files/dhcp
dhcp_network
# If using IPs from a DHCP pool in SQL then you may need to set the
# pool name here if you haven't set it elsewhere and release the IP.
# update control {
# &Pool-Name := "local"
# }
# dhcp_sqlippool_release
update reply {
&DHCP-Message-Type = DHCP-Do-Not-Respond
}
reject
}
dhcp DHCP-Lease-Query {
# The thing being queried for is implicit
# in the packets.
# has MAC, asking for IP, etc.
if (&DHCP-Client-Hardware-Address) {
# look up MAC in database
}
# has IP, asking for MAC, etc.
elsif (&DHCP-Your-IP-Address) {
# look up IP in database
}
# has host name, asking for IP, MAC, etc.
elsif (&DHCP-Client-Identifier) {
# look up identifier in database
}
else {
update reply {
&DHCP-Message-Type = DHCP-Lease-Unknown
}
ok
# stop processing
return
}
#
# We presume that the database lookup returns "notfound"
# if it can't find anything.
#
if (notfound) {
update reply {
&DHCP-Message-Type = DHCP-Lease-Unknown
}
ok
return
}
#
# Add more logic here. Is the lease inactive?
# If so, respond with DHCP-Lease-Unassigned.
#
# Otherwise, respond with DHCP-Lease-Active
#
#
# Also be sure to return ALL information about
# the lease.
#
#
# The reply types are:
#
# DHCP-Lease-Unknown
# DHCP-Lease-Active
# DHCP-Lease-Unassigned
#
update reply {
&DHCP-Message-Type = DHCP-Lease-Unassigned
}
}
}
######################################################################
#
# This next section is a sample configuration for the "passwd"
# module, that reads flat-text files. It should go into
# radiusd.conf, in the "modules" section.
#
# The file is in the format <mac>,<ip>
#
# 00:01:02:03:04:05,192.0.2.100
# 01:01:02:03:04:05,192.0.2.101
# 02:01:02:03:04:05,192.0.2.102
#
# This lets you perform simple static IP assignment.
#
# There is a preconfigured "mac2ip" module setup in
# mods-available/mac2ip. To use it do:
#
# # cd raddb/
# # ln -s ../mods-available/mac2ip mods-enabled/mac2ip
# # mkdir mods-config/passwd
#
# Then create the file mods-config/passwd/mac2ip with the above
# format.
#
######################################################################
# This is an example only - see mods-available/mac2ip instead; do
# not uncomment these lines here.
#
#passwd mac2ip {
# filename = ${confdir}/mac2ip
# format = "*DHCP-Client-Hardware-Address:=DHCP-Your-IP-Address"
# delimiter = ","
#}
Thanks
David
David Lake
Visiting Professor
5G Innovation Centre (5GIC and 6GIC)
Tel: +44 (0)7711 736784
Email: d.lake(a)surrey.ac.uk<mailto:%20d.lake@surrey.ac.uk>
Web: surrey.ac.uk<http://www.surrey.ac.uk/?utm_medium=internal&utm_source=emailsignature&utm_…>
[A blue text on a black background Description automatically generated]<http://www.surrey.ac.uk/?utm_source=emailsignature&utm_medium=internal&utm_…>
James Clerk Maxwell Building, University of Surrey, Guildford, Surrey, GU2 7XH, UK
2
3
Hello again.
I would like to request assistance with how to implement LDAP group
aware and SSID aware logic.
My questions:
1. What file should I implement this in? I'm thinking
"sites-available/google-ldap-auth" is the correct answer, but I'm not sure.
2. Should I attempt this in the authorize section, authenticate section,
or post-auth section? I think it should go in the authorize section, but
I'm not sure.
3. Is this a use case for realms? I don't really understand realms at all.
After I know where to put it, I think I can figure it out how to code it
using the unlang manuals.
What I want to happen:
1. Supplicant attempts to connect with domain @thecampusway.com or
@students.thecampusway.com
2. freeRADIUS checks what SSID the user is coming from
3. If supplicant connecting to SSID CampusInternal and has LDAP group
"allstaff", then allow the connection. Else, reject the connection.
4. If supplicant is connecting to SSID CampusStudents and has LDAP group
"wifistudents", then allow the connection. Else, reject.
My implementation:
Supplicant device: 2017 inch MacBook Air running macOS Monterey 12.7.6
Network equipment: UAP-AC-PRO wireless access point and UDM-SE router
Directory server: Google Workspace LDAPS
My Implementation: Using official docker image
"freeradius/freeradius-server" running on Google Compute Engine COS.
A debug, in case it's helpful:
taylorgorman_thecampusway_com@devbox2 ~ $ sudo docker run -it --rm
--name freeradius_dev -p 1812:1812/udp -p 1813:1813/udp -v
/var/lib/custom_freeradius_configs:/etc/freeradius -v
/var/log/freeradius:/var/log/freeradius freeradius/freeradius-server
/bin/bash -c "chown -R freerad:freerad /etc/freeradius/certs
/var/log/freeradius; exec /bin/bash"
root@97e8d5543f57:/# freeradius -X
FreeRADIUS Version 3.2.7
Copyright (C) 1999-2023 The FreeRADIUS server project and contributors
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License
For more information about these matters, see the file named COPYRIGHT
Starting - reading configuration files ...
including dictionary file /usr/share/freeradius/dictionary
including dictionary file /usr/share/freeradius/dictionary.dhcp
including dictionary file /usr/share/freeradius/dictionary.vqp
including dictionary file /etc/freeradius/dictionary
including configuration file /etc/freeradius/radiusd.conf
including configuration file /etc/freeradius/proxy.conf
including configuration file /etc/freeradius/clients.conf
including files in directory /etc/freeradius/mods-enabled/
including configuration file /etc/freeradius/mods-enabled/utf8
including configuration file /etc/freeradius/mods-enabled/totp
including configuration file /etc/freeradius/mods-enabled/date
including configuration file /etc/freeradius/mods-enabled/proxy_rate_limit
including configuration file /etc/freeradius/mods-enabled/mschap
including configuration file /etc/freeradius/mods-enabled/cache_auth
including configuration file /etc/freeradius/mods-enabled/attr_filter
including configuration file /etc/freeradius/mods-enabled/detail.log
including configuration file /etc/freeradius/mods-enabled/ntlm_auth
including configuration file /etc/freeradius/mods-enabled/expiration
including configuration file /etc/freeradius/mods-enabled/unix
including configuration file /etc/freeradius/mods-enabled/echo
including configuration file /etc/freeradius/mods-enabled/digest
including configuration file /etc/freeradius/mods-enabled/files
including configuration file /etc/freeradius/mods-enabled/linelog
including configuration file /etc/freeradius/mods-enabled/dynamic_clients
including configuration file /etc/freeradius/mods-enabled/preprocess
including configuration file /etc/freeradius/mods-enabled/passwd
including configuration file /etc/freeradius/mods-enabled/chap
including configuration file /etc/freeradius/mods-enabled/unpack
including configuration file /etc/freeradius/mods-enabled/eap
including configuration file /etc/freeradius/mods-enabled/replicate
including configuration file /etc/freeradius/mods-enabled/logintime
including configuration file /etc/freeradius/mods-enabled/soh
including configuration file /etc/freeradius/mods-enabled/radutmp
including configuration file /etc/freeradius/mods-enabled/pap
including configuration file /etc/freeradius/mods-enabled/detail
including configuration file /etc/freeradius/mods-enabled/always
including configuration file /etc/freeradius/mods-enabled/realm
including configuration file /etc/freeradius/mods-enabled/exec
including configuration file /etc/freeradius/mods-enabled/ldap_google
including configuration file /etc/freeradius/mods-enabled/expr
including configuration file /etc/freeradius/mods-enabled/sradutmp
including files in directory /etc/freeradius/policy.d/
including configuration file /etc/freeradius/policy.d/accounting
including configuration file /etc/freeradius/policy.d/cui
including configuration file /etc/freeradius/policy.d/canonicalization
including configuration file /etc/freeradius/policy.d/moonshot-targeted-ids
including configuration file /etc/freeradius/policy.d/abfab-tr
including configuration file /etc/freeradius/policy.d/debug
including configuration file /etc/freeradius/policy.d/eap
including configuration file /etc/freeradius/policy.d/operator-name
including configuration file /etc/freeradius/policy.d/dhcp
including configuration file /etc/freeradius/policy.d/control
including configuration file /etc/freeradius/policy.d/filter
including configuration file /etc/freeradius/policy.d/rfc7542
including files in directory /etc/freeradius/sites-enabled/
including configuration file /etc/freeradius/sites-enabled/google-ldap-auth
including configuration file /etc/freeradius/sites-enabled/default
including configuration file /etc/freeradius/sites-enabled/check-eap-tls
including configuration file /etc/freeradius/sites-enabled/inner-tunnel
main {
security {
user = "freerad"
group = "freerad"
allow_core_dumps = no
}
name = "freeradius"
prefix = "/usr"
localstatedir = "/var"
logdir = "/var/log/freeradius"
run_dir = "/var/run/freeradius"
}
main {
name = "freeradius"
prefix = "/usr"
localstatedir = "/var"
sbindir = "/usr/sbin"
logdir = "/var/log/freeradius"
run_dir = "/var/run/freeradius"
libdir = "/usr/lib/freeradius"
radacctdir = "/var/log/freeradius/radacct"
hostname_lookups = no
max_request_time = 30
proxy_dedup_window = 1
cleanup_delay = 5
max_requests = 16384
max_fds = 512
postauth_client_lost = no
pidfile = "/var/run/freeradius/freeradius.pid"
checkrad = "/usr/sbin/checkrad"
debug_level = 0
proxy_requests = yes
log {
stripped_names = no
auth = no
auth_badpass = no
auth_goodpass = no
colourise = yes
msg_denied = "You are already logged in - access denied"
}
resources {
}
security {
max_attributes = 200
reject_delay = 1.000000
status_server = yes
require_message_authenticator = "auto"
limit_proxy_state = "auto"
}
unlang {
group_stop_return = no
policy_stop_return = no
}
}
radiusd: #### Loading Realms and Home Servers ####
proxy server {
retry_delay = 5
retry_count = 3
default_fallback = no
dead_time = 120
wake_all_if_all_dead = no
}
home_server localhost {
nonblock = no
ipaddr = 127.0.0.1
port = 1812
type = "auth"
secret = <<< secret >>>
response_window = 20.000000
response_timeouts = 1
max_outstanding = 65536
zombie_period = 40
status_check = "status-server"
ping_interval = 30
check_interval = 30
check_timeout = 4
num_answers_to_alive = 3
revive_interval = 120
limit {
max_connections = 16
max_requests = 0
lifetime = 0
idle_timeout = 0
}
coa {
irt = 2
mrt = 16
mrc = 5
mrd = 30
}
}
home_server_pool my_auth_failover {
type = fail-over
home_server = localhost
}
realm example.com {
auth_pool = my_auth_failover
}
realm LOCAL {
}
radiusd: #### Loading Clients ####
client radiusserver_radtest_interlink {
ipaddr = 172.18.0.0/16
secret = <<< secret >>>
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
Shared secret for client radiusserver_radtest_interlink is short, and
likely can be broken by an attacker.
client 300Tivoli {
ipaddr = wan1.normandy.taylorgorman.net IPv4 address [71.59.46.3]
secret = <<< secret >>>
proto = "*"
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
client localhost {
ipaddr = 127.0.0.1
secret = <<< secret >>>
nas_type = "other"
proto = "*"
limit {
max_connections = 16
lifetime = 0
idle_timeout = 900
}
}
Shared secret for client localhost is short, and likely can be broken by
an attacker.
client localhost_ipv6 {
ipv6addr = ::1
secret = <<< secret >>>
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
Shared secret for client localhost_ipv6 is short, and likely can be
broken by an attacker.
Debug state unknown (cap_sys_ptrace capability not set)
Configuration version: c5f2-1bdc-ae2d-84c5
systemd watchdog is disabled
# Creating Auth-Type = LDAP
# Creating Auth-Type = mschap
# Creating Auth-Type = digest
# Creating Auth-Type = eap
# Creating Auth-Type = PAP
# Creating Auth-Type = CHAP
# Creating Auth-Type = MS-CHAP
# Creating Autz-Type = New-TLS-Connection
radiusd: #### Instantiating modules ####
modules {
# Loaded module rlm_utf8
# Loading module "utf8" from file /etc/freeradius/mods-enabled/utf8
# Loaded module rlm_totp
# Loading module "totp" from file /etc/freeradius/mods-enabled/totp
totp {
time_step = 30
otp_length = 6
lookback_steps = 1
lookback_interval = 30
lookforward_steps = 0
}
# Loaded module rlm_date
# Loading module "date" from file /etc/freeradius/mods-enabled/date
date {
format = "%b %e %Y %H:%M:%S %Z"
utc = no
}
# Loading module "wispr2date" from file /etc/freeradius/mods-enabled/date
date wispr2date {
format = "%Y-%m-%dT%H:%M:%S"
utc = no
}
# Loaded module rlm_proxy_rate_limit
# Loading module "proxy_rate_limit" from file
/etc/freeradius/mods-enabled/proxy_rate_limit
proxy_rate_limit {
max_entries = 2048
idle_timeout = 10
num_subtables = 256
window = 1
}
# Loaded module rlm_mschap
# Loading module "mschap" from file /etc/freeradius/mods-enabled/mschap
mschap {
use_mppe = yes
require_encryption = no
require_strong = no
with_ntdomain_hack = yes
passchange {
}
allow_retry = yes
winbind_retry_with_normalised_username = no
}
# Loaded module rlm_cache
# Loading module "cache_auth_accept" from file
/etc/freeradius/mods-enabled/cache_auth
cache cache_auth_accept {
driver = "rlm_cache_rbtree"
key = "%{md5:%{%{Stripped-User-Name}:-%{User-Name}}%{User-Password}}"
ttl = 7200
max_entries = 0
epoch = 0
add_stats = no
}
# Loading module "cache_auth_reject" from file
/etc/freeradius/mods-enabled/cache_auth
cache cache_auth_reject {
driver = "rlm_cache_rbtree"
key =
"%{md5:%{Calling-Station-Id}%{Stripped-User-Name}%{User-Password}}"
ttl = 3600
max_entries = 0
epoch = 0
add_stats = no
}
# Loading module "cache_ldap_user_dn" from file
/etc/freeradius/mods-enabled/cache_auth
cache cache_ldap_user_dn {
driver = "rlm_cache_rbtree"
key = "%{Stripped-User-Name}"
ttl = 86400
max_entries = 0
epoch = 0
add_stats = no
}
# Loaded module rlm_attr_filter
# Loading module "attr_filter.post-proxy" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.post-proxy {
filename = "/etc/freeradius/mods-config/attr_filter/post-proxy"
key = "%{Realm}"
relaxed = no
}
# Loading module "attr_filter.pre-proxy" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.pre-proxy {
filename = "/etc/freeradius/mods-config/attr_filter/pre-proxy"
key = "%{Realm}"
relaxed = no
}
# Loading module "attr_filter.access_reject" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.access_reject {
filename = "/etc/freeradius/mods-config/attr_filter/access_reject"
key = "%{User-Name}"
relaxed = no
}
# Loading module "attr_filter.access_challenge" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.access_challenge {
filename = "/etc/freeradius/mods-config/attr_filter/access_challenge"
key = "%{User-Name}"
relaxed = no
}
# Loading module "attr_filter.accounting_response" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.accounting_response {
filename = "/etc/freeradius/mods-config/attr_filter/accounting_response"
key = "%{User-Name}"
relaxed = no
}
# Loading module "attr_filter.coa" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.coa {
filename = "/etc/freeradius/mods-config/attr_filter/coa"
key = "%{User-Name}"
relaxed = no
}
# Loaded module rlm_detail
# Loading module "auth_log" from file
/etc/freeradius/mods-enabled/detail.log
detail auth_log {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loading module "reply_log" from file
/etc/freeradius/mods-enabled/detail.log
detail reply_log {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loading module "pre_proxy_log" from file
/etc/freeradius/mods-enabled/detail.log
detail pre_proxy_log {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/pre-proxy-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loading module "post_proxy_log" from file
/etc/freeradius/mods-enabled/detail.log
detail post_proxy_log {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/post-proxy-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loaded module rlm_exec
# Loading module "ntlm_auth" from file
/etc/freeradius/mods-enabled/ntlm_auth
exec ntlm_auth {
wait = yes
program = "/path/to/ntlm_auth --request-nt-key --domain=MYDOMAIN
--username=%{mschap:User-Name} --password=%{User-Password}"
shell_escape = yes
}
# Loaded module rlm_expiration
# Loading module "expiration" from file
/etc/freeradius/mods-enabled/expiration
# Loaded module rlm_unix
# Loading module "unix" from file /etc/freeradius/mods-enabled/unix
unix {
radwtmp = "/var/log/freeradius/radwtmp"
}
Creating attribute Unix-Group
# Loading module "echo" from file /etc/freeradius/mods-enabled/echo
exec echo {
wait = yes
program = "/bin/echo %{User-Name}"
input_pairs = "request"
output_pairs = "reply"
shell_escape = yes
}
# Loaded module rlm_digest
# Loading module "digest" from file /etc/freeradius/mods-enabled/digest
# Loaded module rlm_files
# Loading module "files" from file /etc/freeradius/mods-enabled/files
files {
filename = "/etc/freeradius/mods-config/files/authorize"
acctusersfile = "/etc/freeradius/mods-config/files/accounting"
preproxy_usersfile = "/etc/freeradius/mods-config/files/pre-proxy"
}
# Loaded module rlm_linelog
# Loading module "linelog" from file /etc/freeradius/mods-enabled/linelog
linelog {
filename = "/var/log/freeradius/linelog"
escape_filenames = no
syslog_severity = "info"
permissions = 384
format = "This is a log message for %{User-Name}"
reference = "messages.%{%{reply:Packet-Type}:-default}"
}
# Loading module "log_accounting" from file
/etc/freeradius/mods-enabled/linelog
linelog log_accounting {
filename = "/var/log/freeradius/linelog-accounting"
escape_filenames = no
syslog_severity = "info"
permissions = 384
format = ""
reference = "Accounting-Request.%{%{Acct-Status-Type}:-unknown}"
}
# Loaded module rlm_dynamic_clients
# Loading module "dynamic_clients" from file
/etc/freeradius/mods-enabled/dynamic_clients
# Loaded module rlm_preprocess
# Loading module "preprocess" from file
/etc/freeradius/mods-enabled/preprocess
preprocess {
huntgroups = "/etc/freeradius/mods-config/preprocess/huntgroups"
hints = "/etc/freeradius/mods-config/preprocess/hints"
with_ascend_hack = no
ascend_channels_per_line = 23
with_ntdomain_hack = no
with_specialix_jetstream_hack = no
with_cisco_vsa_hack = no
with_alvarion_vsa_hack = no
}
# Loaded module rlm_passwd
# Loading module "etc_passwd" from file
/etc/freeradius/mods-enabled/passwd
passwd etc_passwd {
filename = "/etc/passwd"
format = "*User-Name:Crypt-Password:"
delimiter = ":"
ignore_nislike = no
ignore_empty = yes
allow_multiple_keys = no
hash_size = 100
}
# Loaded module rlm_chap
# Loading module "chap" from file /etc/freeradius/mods-enabled/chap
# Loaded module rlm_unpack
# Loading module "unpack" from file /etc/freeradius/mods-enabled/unpack
# Loaded module rlm_eap
# Loading module "eap" from file /etc/freeradius/mods-enabled/eap
eap {
default_eap_type = "ttls"
timer_expire = 60
max_eap_type = 52
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
max_sessions = 16384
dedup_key = ""
}
# Loaded module rlm_replicate
# Loading module "replicate" from file
/etc/freeradius/mods-enabled/replicate
# Loaded module rlm_logintime
# Loading module "logintime" from file
/etc/freeradius/mods-enabled/logintime
logintime {
minimum_timeout = 60
}
# Loaded module rlm_soh
# Loading module "soh" from file /etc/freeradius/mods-enabled/soh
soh {
dhcp = yes
}
# Loaded module rlm_radutmp
# Loading module "radutmp" from file /etc/freeradius/mods-enabled/radutmp
radutmp {
filename = "/var/log/freeradius/radutmp"
username = "%{User-Name}"
case_sensitive = yes
check_with_nas = yes
permissions = 384
caller_id = yes
}
# Loaded module rlm_pap
# Loading module "pap" from file /etc/freeradius/mods-enabled/pap
pap {
normalise = yes
}
# Loading module "detail" from file /etc/freeradius/mods-enabled/detail
detail {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loaded module rlm_always
# Loading module "reject" from file /etc/freeradius/mods-enabled/always
always reject {
rcode = "reject"
simulcount = 0
mpp = no
}
# Loading module "fail" from file /etc/freeradius/mods-enabled/always
always fail {
rcode = "fail"
simulcount = 0
mpp = no
}
# Loading module "ok" from file /etc/freeradius/mods-enabled/always
always ok {
rcode = "ok"
simulcount = 0
mpp = no
}
# Loading module "handled" from file /etc/freeradius/mods-enabled/always
always handled {
rcode = "handled"
simulcount = 0
mpp = no
}
# Loading module "invalid" from file /etc/freeradius/mods-enabled/always
always invalid {
rcode = "invalid"
simulcount = 0
mpp = no
}
# Loading module "userlock" from file /etc/freeradius/mods-enabled/always
always userlock {
rcode = "userlock"
simulcount = 0
mpp = no
}
# Loading module "notfound" from file /etc/freeradius/mods-enabled/always
always notfound {
rcode = "notfound"
simulcount = 0
mpp = no
}
# Loading module "noop" from file /etc/freeradius/mods-enabled/always
always noop {
rcode = "noop"
simulcount = 0
mpp = no
}
# Loading module "updated" from file /etc/freeradius/mods-enabled/always
always updated {
rcode = "updated"
simulcount = 0
mpp = no
}
# Loaded module rlm_realm
# Loading module "IPASS" from file /etc/freeradius/mods-enabled/realm
realm IPASS {
format = "prefix"
delimiter = "/"
ignore_default = no
ignore_null = no
}
# Loading module "suffix" from file /etc/freeradius/mods-enabled/realm
realm suffix {
format = "suffix"
delimiter = "@"
ignore_default = no
ignore_null = no
}
# Loading module "bangpath" from file /etc/freeradius/mods-enabled/realm
realm bangpath {
format = "prefix"
delimiter = "!"
ignore_default = no
ignore_null = no
}
# Loading module "realmpercent" from file
/etc/freeradius/mods-enabled/realm
realm realmpercent {
format = "suffix"
delimiter = "%"
ignore_default = no
ignore_null = no
}
# Loading module "ntdomain" from file /etc/freeradius/mods-enabled/realm
realm ntdomain {
format = "prefix"
delimiter = "\"
ignore_default = no
ignore_null = no
}
# Loading module "exec" from file /etc/freeradius/mods-enabled/exec
exec {
wait = no
input_pairs = "request"
shell_escape = yes
timeout = 10
}
# Loaded module rlm_ldap
# Loading module "ldap_google" from file
/etc/freeradius/mods-enabled/ldap_google
ldap ldap_google {
server = "ldaps://ldap.google.com:636/"
identity = "MortifiedU"
password = <<< secret >>>
sasl {
}
user_dn = "LDAP-UserDn"
user {
scope = "sub"
access_positive = yes
sasl {
}
}
group {
filter = "(objectClass=posixGroup)"
scope = "sub"
name_attribute = "cn"
membership_attribute = "memberOf"
cacheable_name = yes
cacheable_dn = yes
cache_attribute = "LDAP-Cached-Membership"
allow_dangling_group_ref = no
}
client {
scope = "sub"
base_dn = ""
}
profile {
}
options {
ldap_debug = 0
chase_referrals = no
net_timeout = 3
res_timeout = 10
srv_timelimit = 3
idle = 60
probes = 3
interval = 3
}
tls {
certificate_file = "/etc/freeradius/certs/google/certificate.crt"
private_key_file = "/etc/freeradius/certs/google/key.key"
random_file = "/dev/urandom"
tls_min_version = "1.2"
check_crl = no
start_tls = no
require_cert = "allow"
}
}
Creating attribute ldap_google-LDAP-Group
# Loaded module rlm_expr
# Loading module "expr" from file /etc/freeradius/mods-enabled/expr
expr {
safe_characters =
"@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_:
/äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ"
}
# Loading module "sradutmp" from file
/etc/freeradius/mods-enabled/sradutmp
radutmp sradutmp {
filename = "/var/log/freeradius/sradutmp"
username = "%{User-Name}"
case_sensitive = yes
check_with_nas = yes
permissions = 420
caller_id = no
}
instantiate {
}
# Instantiating module "totp" from file /etc/freeradius/mods-enabled/totp
# Instantiating module "proxy_rate_limit" from file
/etc/freeradius/mods-enabled/proxy_rate_limit
# Instantiating module "mschap" from file
/etc/freeradius/mods-enabled/mschap
rlm_mschap (mschap): using internal authentication
# Instantiating module "cache_auth_accept" from file
/etc/freeradius/mods-enabled/cache_auth
rlm_cache (cache_auth_accept): Driver rlm_cache_rbtree (module
rlm_cache_rbtree) loaded and linked
# Instantiating module "cache_auth_reject" from file
/etc/freeradius/mods-enabled/cache_auth
rlm_cache (cache_auth_reject): Driver rlm_cache_rbtree (module
rlm_cache_rbtree) loaded and linked
# Instantiating module "cache_ldap_user_dn" from file
/etc/freeradius/mods-enabled/cache_auth
rlm_cache (cache_ldap_user_dn): Driver rlm_cache_rbtree (module
rlm_cache_rbtree) loaded and linked
# Instantiating module "attr_filter.post-proxy" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/post-proxy
# Instantiating module "attr_filter.pre-proxy" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/pre-proxy
# Instantiating module "attr_filter.access_reject" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/access_reject
# Instantiating module "attr_filter.access_challenge" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file
/etc/freeradius/mods-config/attr_filter/access_challenge
# Instantiating module "attr_filter.accounting_response" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file
/etc/freeradius/mods-config/attr_filter/accounting_response
# Instantiating module "attr_filter.coa" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/coa
# Instantiating module "auth_log" from file
/etc/freeradius/mods-enabled/detail.log
rlm_detail (auth_log): 'User-Password' suppressed, will not appear in
detail output
# Instantiating module "reply_log" from file
/etc/freeradius/mods-enabled/detail.log
# Instantiating module "pre_proxy_log" from file
/etc/freeradius/mods-enabled/detail.log
# Instantiating module "post_proxy_log" from file
/etc/freeradius/mods-enabled/detail.log
# Instantiating module "expiration" from file
/etc/freeradius/mods-enabled/expiration
# Instantiating module "files" from file
/etc/freeradius/mods-enabled/files
reading pairlist file /etc/freeradius/mods-config/files/authorize
reading pairlist file /etc/freeradius/mods-config/files/accounting
reading pairlist file /etc/freeradius/mods-config/files/pre-proxy
# Instantiating module "linelog" from file
/etc/freeradius/mods-enabled/linelog
# Instantiating module "log_accounting" from file
/etc/freeradius/mods-enabled/linelog
# Instantiating module "preprocess" from file
/etc/freeradius/mods-enabled/preprocess
reading pairlist file /etc/freeradius/mods-config/preprocess/huntgroups
reading pairlist file /etc/freeradius/mods-config/preprocess/hints
# Instantiating module "etc_passwd" from file
/etc/freeradius/mods-enabled/passwd
rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no
# Instantiating module "eap" from file /etc/freeradius/mods-enabled/eap
# Linked to sub-module rlm_eap_md5
# Linked to sub-module rlm_eap_gtc
gtc {
challenge = "Password: "
auth_type = "PAP"
}
# Linked to sub-module rlm_eap_tls
tls {
tls = "tls-common"
virtual_server = "check-eap-tls"
configurable_client_cert = no
}
tls-config tls-common {
verify_depth = 0
ca_path = "/etc/freeradius/certs"
pem_file_type = yes
private_key_file = "/etc/freeradius/certs/server.pem"
certificate_file = "/etc/freeradius/certs/server.pem"
ca_file = "/etc/freeradius/certs/ca.pem"
private_key_password = <<< secret >>>
fragment_size = 1024
include_length = yes
auto_chain = yes
check_crl = no
check_all_crl = no
ca_path_reload_interval = 0
cipher_list = "DEFAULT"
cipher_server_preference = no
reject_unknown_intermediate_ca = no
ecdh_curve = ""
tls_max_version = "1.3"
tls_min_version = "1.2"
cache {
enable = yes
lifetime = 8
name = "base-eap-cache"
max_entries = 255
persist_dir = "/var/log/freeradius/tlscache"
}
verify {
skip_if_ocsp_ok = no
}
ocsp {
enable = no
override_cert_url = yes
url = "http://127.0.0.1/ocsp/"
use_nonce = yes
timeout = 0
softfail = no
}
}
# Linked to sub-module rlm_eap_ttls
ttls {
tls = "tls-common"
default_eap_type = "md5"
copy_request_to_tunnel = no
use_tunneled_reply = no
virtual_server = "google-ldap-auth"
include_length = yes
require_client_cert = no
}
tls: Using cached TLS configuration from previous invocation
# Linked to sub-module rlm_eap_peap
peap {
tls = "tls-common"
default_eap_type = "mschapv2"
copy_request_to_tunnel = no
use_tunneled_reply = no
proxy_tunneled_request_as_eap = yes
virtual_server = "inner-tunnel"
soh = no
require_client_cert = no
}
tls: Using cached TLS configuration from previous invocation
# Linked to sub-module rlm_eap_mschapv2
mschapv2 {
with_ntdomain_hack = no
send_error = no
}
# Instantiating module "logintime" from file
/etc/freeradius/mods-enabled/logintime
# Instantiating module "pap" from file /etc/freeradius/mods-enabled/pap
# Instantiating module "detail" from file
/etc/freeradius/mods-enabled/detail
# Instantiating module "reject" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "fail" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "ok" from file /etc/freeradius/mods-enabled/always
# Instantiating module "handled" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "invalid" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "userlock" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "notfound" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "noop" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "updated" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "IPASS" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "suffix" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "bangpath" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "realmpercent" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "ntdomain" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "ldap_google" from file
/etc/freeradius/mods-enabled/ldap_google
rlm_ldap: libldap vendor: OpenLDAP, version: 20518
rlm_ldap (ldap_google): Couldn't find configuration for accounting, will
return NOOP for calls from this section
rlm_ldap (ldap_google): Couldn't find configuration for post-auth, will
return NOOP for calls from this section
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! libldap is using GnuTLS, while FreeRADIUS is using OpenSSL
!! There may be random issues with TLS connections due to this conflict.
!! The server may also crash.
!! See https://wiki.freeradius.org/modules/Rlm_ldap for more information.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
rlm_ldap (ldap_google): Initialising connection pool
pool {
start = 5
min = 3
max = 32
spare = 10
uses = 0
lifetime = 0
cleanup_interval = 30
idle_timeout = 60
retry_delay = 30
max_retries = 5
spread = no
}
rlm_ldap (ldap_google): Opening additional connection (0), 1 of 32
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
rlm_ldap (ldap_google): Opening additional connection (1), 1 of 31
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
rlm_ldap (ldap_google): Opening additional connection (2), 1 of 30
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
rlm_ldap (ldap_google): Opening additional connection (3), 1 of 29
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
rlm_ldap (ldap_google): Opening additional connection (4), 1 of 28
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
} # modules
radiusd: #### Loading Virtual Servers ####
server { # from file /etc/freeradius/radiusd.conf
} # server
server google-ldap-auth { # from file
/etc/freeradius/sites-enabled/google-ldap-auth
# Loading authenticate {...}
Compiling Auth-Type LDAP for attr Auth-Type
# Loading authorize {...}
# Loading post-auth {...}
Compiling Post-Auth-Type REJECT for attr Post-Auth-Type
} # server google-ldap-auth
server default { # from file /etc/freeradius/sites-enabled/default
# Loading authenticate {...}
Compiling Auth-Type PAP for attr Auth-Type
Compiling Auth-Type CHAP for attr Auth-Type
Compiling Auth-Type MS-CHAP for attr Auth-Type
Compiling Auth-Type LDAP for attr Auth-Type
# Loading authorize {...}
Ignoring "sql" (see raddb/mods-available/README.rst)
Compiling Autz-Type New-TLS-Connection for attr Autz-Type
# Loading preacct {...}
# Loading accounting {...}
# Loading post-auth {...}
Compiling Post-Auth-Type REJECT for attr Post-Auth-Type
Compiling Post-Auth-Type Challenge for attr Post-Auth-Type
Compiling Post-Auth-Type Client-Lost for attr Post-Auth-Type
} # server default
server check-eap-tls { # from file
/etc/freeradius/sites-enabled/check-eap-tls
# Loading authorize {...}
} # server check-eap-tls
server inner-tunnel { # from file /etc/freeradius/sites-enabled/inner-tunnel
# Loading authenticate {...}
Compiling Auth-Type PAP for attr Auth-Type
Compiling Auth-Type CHAP for attr Auth-Type
Compiling Auth-Type MS-CHAP for attr Auth-Type
Compiling Auth-Type LDAP for attr Auth-Type
# Loading authorize {...}
Ignoring "ldap" (see raddb/mods-available/README.rst)
# Loading post-proxy {...}
# Loading post-auth {...}
# Skipping contents of 'if' as it is always 'false' --
/etc/freeradius/sites-enabled/inner-tunnel:366
Compiling Post-Auth-Type REJECT for attr Post-Auth-Type
} # server inner-tunnel
radiusd: #### Opening IP addresses and Ports ####
listen {
type = "auth"
ipaddr = 127.0.0.1
port = 18123
}
listen {
type = "auth"
ipaddr = *
port = 1812
limit {
max_connections = 16
lifetime = 0
idle_timeout = 900
}
}
listen {
type = "acct"
ipaddr = *
port = 1813
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
listen {
type = "auth"
ipv6addr = ::
port = 1812
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
listen {
type = "acct"
ipv6addr = ::
port = 1813
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
listen {
type = "auth"
ipaddr = 127.0.0.1
port = 18120
}
Listening on auth address 127.0.0.1 port 18123 bound to server
google-ldap-auth
Listening on auth address * port 1812 bound to server default
Listening on acct address * port 1813 bound to server default
Listening on auth address :: port 1812 bound to server default
Listening on acct address :: port 1813 bound to server default
Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel
Listening on proxy address * port 34018
Listening on proxy address :: port 54059
Ready to process requests
(0) Received Access-Request Id 80 from 71.59.46.3:57724 to
172.17.0.2:1812 length 279
(0) User-Name = "radiustest(a)thecampusway.com"
(0) NAS-IP-Address = 10.0.10.43
(0) NAS-Identifier = "default"
(0) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(0) NAS-Port-Type = Wireless-802.11
(0) Service-Type = Framed-User
(0) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(0) Connect-Info = "CONNECT 0Mbps 802.11b"
(0) Acct-Session-Id = "D90D33A49AB1E90F"
(0) Acct-Multi-Session-Id = "1E33DF1D4FE38260"
(0) WLAN-Pairwise-Cipher = 1027076
(0) WLAN-Group-Cipher = 1027076
(0) WLAN-AKM-Suite = 1027077
(0) WLAN-Group-Mgmt-Cipher = 1027078
(0) Filter-Id = "wpa-eap"
(0) Framed-MTU = 1002
(0) EAP-Message =
0x028a002001726164697573746573744074686563616d7075737761792e636f6d
(0) Message-Authenticator = 0xb786f581e5d73d7b1427dd67fccdeb99
(0) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(0) authorize {
(0) policy filter_username {
(0) if (&User-Name) {
(0) if (&User-Name) -> TRUE
(0) if (&User-Name) {
(0) if (&User-Name =~ / /) {
(0) if (&User-Name =~ / /) -> FALSE
(0) if (&User-Name =~ /@[^@]*@/ ) {
(0) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(0) if (&User-Name =~ /\.\./ ) {
(0) if (&User-Name =~ /\.\./ ) -> FALSE
(0) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(0) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(0) if (&User-Name =~ /\.$/) {
(0) if (&User-Name =~ /\.$/) -> FALSE
(0) if (&User-Name =~ /(a)\./) {
(0) if (&User-Name =~ /(a)\./) -> FALSE
(0) } # if (&User-Name) = notfound
(0) } # policy filter_username = notfound
(0) [preprocess] = ok
(0) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(0) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250715
(0) 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/71.59.46.3/auth-detail-20250715
(0) auth_log: EXPAND %t
(0) auth_log: --> Tue Jul 15 17:46:10 2025
(0) [auth_log] = ok
(0) [chap] = noop
(0) [mschap] = noop
(0) [digest] = noop
(0) policy rewrite_called_station_id {
(0) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(0) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(0) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(0) update request {
(0) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(0) --> 78-8A-20-58-6E-4E
(0) &Called-Station-Id := 78-8A-20-58-6E-4E
(0) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(0) --> 0x788A20586E4E
(0) &Called-Station-MAC := 0x788a20586e4e
(0) } # update request = noop
(0) if ("%{8}") {
(0) EXPAND %{8}
(0) --> CampusInternal
(0) if ("%{8}") -> TRUE
(0) if ("%{8}") {
(0) update request {
(0) EXPAND %{8}
(0) --> CampusInternal
(0) &Called-Station-SSID := CampusInternal
(0) } # update request = noop
(0) } # if ("%{8}") = noop
(0) [updated] = updated
(0) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(0) ... skipping else: Preceding "if" was taken
(0) } # policy rewrite_called_station_id = updated
(0) suffix: Checking for suffix after "@"
(0) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(0) suffix: No such realm "thecampusway.com"
(0) [suffix] = noop
(0) eap: Peer sent EAP Response (code 2) ID 138 length 32
(0) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the
rest of authorize
(0) [eap] = ok
(0) } # authorize = ok
(0) Found Auth-Type = eap
(0) # Executing group from file /etc/freeradius/sites-enabled/default
(0) authenticate {
(0) eap: Peer sent packet with method EAP Identity (1)
(0) eap: Using default_eap_type = TTLS
(0) eap: Calling submodule eap_ttls to process data
(0) eap_ttls: (TLS) TTLS -Initiating new session
(0) eap: Sending EAP Request (code 1) ID 139 length 6
(0) eap: EAP session adding &reply:State = 0x8a91dc8e8a1ac932
(0) [eap] = handled
(0) } # authenticate = handled
(0) Using Post-Auth-Type Challenge
(0) # Executing group from file /etc/freeradius/sites-enabled/default
(0) Challenge { ... } # empty sub-section is ignored
(0) session-state: Saving cached attributes
(0) Framed-MTU = 994
(0) Sent Access-Challenge Id 80 from 172.17.0.2:1812 to 71.59.46.3:57724
length 64
(0) EAP-Message = 0x018b00061520
(0) Message-Authenticator = 0x00000000000000000000000000000000
(0) State = 0x8a91dc8e8a1ac932db26def1df7f8c68
(0) Finished request
Waking up in 4.9 seconds.
(1) Received Access-Request Id 81 from 71.59.46.3:57724 to
172.17.0.2:1812 length 426
(1) User-Name = "radiustest(a)thecampusway.com"
(1) NAS-IP-Address = 10.0.10.43
(1) NAS-Identifier = "default"
(1) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(1) NAS-Port-Type = Wireless-802.11
(1) Service-Type = Framed-User
(1) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(1) Connect-Info = "CONNECT 0Mbps 802.11b"
(1) Acct-Session-Id = "D90D33A49AB1E90F"
(1) Acct-Multi-Session-Id = "1E33DF1D4FE38260"
(1) WLAN-Pairwise-Cipher = 1027076
(1) WLAN-Group-Cipher = 1027076
(1) WLAN-AKM-Suite = 1027077
(1) WLAN-Group-Mgmt-Cipher = 1027078
(1) Filter-Id = "wpa-eap"
(1) Framed-MTU = 1002
(1) EAP-Message =
0x028b00a115800000009716030300920100008e0303687693e28c24604af9f9a63ab89c057f0b63551d2c64fc6c2817a09c4cff821100002c00ffc02cc02bc024c023c00ac009c008c030c02fc028c027c014c013c012009d009c003d003c0035002f000a01000039000a00080006001700180019000b00020100000d00120010040102010501060104030203050306030005000501000000000012000000170000
(1) State = 0x8a91dc8e8a1ac932db26def1df7f8c68
(1) Message-Authenticator = 0xd7debb1415c2f338a137a202df42bfcd
(1) Restoring &session-state
(1) &session-state:Framed-MTU = 994
(1) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(1) authorize {
(1) policy filter_username {
(1) if (&User-Name) {
(1) if (&User-Name) -> TRUE
(1) if (&User-Name) {
(1) if (&User-Name =~ / /) {
(1) if (&User-Name =~ / /) -> FALSE
(1) if (&User-Name =~ /@[^@]*@/ ) {
(1) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(1) if (&User-Name =~ /\.\./ ) {
(1) if (&User-Name =~ /\.\./ ) -> FALSE
(1) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(1) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(1) if (&User-Name =~ /\.$/) {
(1) if (&User-Name =~ /\.$/) -> FALSE
(1) if (&User-Name =~ /(a)\./) {
(1) if (&User-Name =~ /(a)\./) -> FALSE
(1) } # if (&User-Name) = notfound
(1) } # policy filter_username = notfound
(1) [preprocess] = ok
(1) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(1) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250715
(1) 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/71.59.46.3/auth-detail-20250715
(1) auth_log: EXPAND %t
(1) auth_log: --> Tue Jul 15 17:46:10 2025
(1) [auth_log] = ok
(1) [chap] = noop
(1) [mschap] = noop
(1) [digest] = noop
(1) policy rewrite_called_station_id {
(1) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(1) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(1) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(1) update request {
(1) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(1) --> 78-8A-20-58-6E-4E
(1) &Called-Station-Id := 78-8A-20-58-6E-4E
(1) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(1) --> 0x788A20586E4E
(1) &Called-Station-MAC := 0x788a20586e4e
(1) } # update request = noop
(1) if ("%{8}") {
(1) EXPAND %{8}
(1) --> CampusInternal
(1) if ("%{8}") -> TRUE
(1) if ("%{8}") {
(1) update request {
(1) EXPAND %{8}
(1) --> CampusInternal
(1) &Called-Station-SSID := CampusInternal
(1) } # update request = noop
(1) } # if ("%{8}") = noop
(1) [updated] = updated
(1) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(1) ... skipping else: Preceding "if" was taken
(1) } # policy rewrite_called_station_id = updated
(1) suffix: Checking for suffix after "@"
(1) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(1) suffix: No such realm "thecampusway.com"
(1) [suffix] = noop
(1) eap: Peer sent EAP Response (code 2) ID 139 length 161
(1) eap: Continuing tunnel setup
(1) [eap] = ok
(1) } # authorize = ok
(1) Found Auth-Type = eap
(1) # Executing group from file /etc/freeradius/sites-enabled/default
(1) authenticate {
(1) eap: Removing EAP session with state 0x8a91dc8e8a1ac932
(1) eap: Previous EAP request found for state 0x8a91dc8e8a1ac932,
released from the list
(1) eap: Peer sent packet with method EAP TTLS (21)
(1) eap: Calling submodule eap_ttls to process data
(1) eap_ttls: Authenticate
(1) eap_ttls: (TLS) EAP Peer says that the final record size will be 151
bytes
(1) eap_ttls: (TLS) EAP Got all data (151 bytes)
(1) eap_ttls: (TLS) TTLS - Handshake state - before SSL initialization
(1) eap_ttls: (TLS) TTLS - Handshake state - Server before SSL
initialization
(1) eap_ttls: (TLS) TTLS - Handshake state - Server before SSL
initialization
(1) eap_ttls: (TLS) TTLS - recv TLS 1.3 Handshake, ClientHello
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read
client hello
(1) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, ServerHello
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
server hello
(1) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, Certificate
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
certificate
(1) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write key
exchange
(1) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
server done
(1) eap_ttls: (TLS) TTLS - Server : Need to read more data: SSLv3/TLS
write server done
(1) eap_ttls: (TLS) TTLS - In Handshake Phase
(1) eap: Sending EAP Request (code 1) ID 140 length 1000
(1) eap: EAP session adding &reply:State = 0x8a91dc8e8b1dc932
(1) [eap] = handled
(1) } # authenticate = handled
(1) Using Post-Auth-Type Challenge
(1) # Executing group from file /etc/freeradius/sites-enabled/default
(1) Challenge { ... } # empty sub-section is ignored
(1) session-state: Saving cached attributes
(1) Framed-MTU = 994
(1) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(1) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(1) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(1) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(1) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(1) Sent Access-Challenge Id 81 from 172.17.0.2:1812 to 71.59.46.3:57724
length 1064
(1) EAP-Message =
0x018c03e815c000000b9e160303005d020000590303ce3f0b9fbcde05eae114cd365528fd427bbb87c28618449f444f574e4752440120c49ed24456a1e020e39add2bedce356c7437d251c846068e76fc7b75619d92e2c030000011ff01000100000b0004030001020017000016030309dc0b0009d80009d500049e3082049a30820382a003020102020101300d06092a864886f70d01010b05003081a4310b30090603550406130255533110300e06035504080c0747656f726769613117301506035504070c0e506561636874726565204369747931183016060355040a0c0f5468652043616d7075732c204c4c433125302306092a864886f70d010901161661646d696e4074686563616d7075737761792e636f6d3129302706035504030c205468652043616d70757320436572746966696361746520417574686f72697479301e170d3235303632343230333635365a170d3236303632343230333635365a308181310b30090603550406130255533110300e0603
(1) Message-Authenticator = 0x00000000000000000000000000000000
(1) State = 0x8a91dc8e8b1dc932db26def1df7f8c68
(1) Finished request
Waking up in 4.9 seconds.
(2) Received Access-Request Id 82 from 71.59.46.3:57724 to
172.17.0.2:1812 length 271
(2) User-Name = "radiustest(a)thecampusway.com"
(2) NAS-IP-Address = 10.0.10.43
(2) NAS-Identifier = "default"
(2) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(2) NAS-Port-Type = Wireless-802.11
(2) Service-Type = Framed-User
(2) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(2) Connect-Info = "CONNECT 0Mbps 802.11b"
(2) Acct-Session-Id = "D90D33A49AB1E90F"
(2) Acct-Multi-Session-Id = "1E33DF1D4FE38260"
(2) WLAN-Pairwise-Cipher = 1027076
(2) WLAN-Group-Cipher = 1027076
(2) WLAN-AKM-Suite = 1027077
(2) WLAN-Group-Mgmt-Cipher = 1027078
(2) Filter-Id = "wpa-eap"
(2) Framed-MTU = 1002
(2) EAP-Message = 0x028c00061500
(2) State = 0x8a91dc8e8b1dc932db26def1df7f8c68
(2) Message-Authenticator = 0xb1058055f69937ebd6b532c50329b0c0
(2) Restoring &session-state
(2) &session-state:Framed-MTU = 994
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(2) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(2) authorize {
(2) policy filter_username {
(2) if (&User-Name) {
(2) if (&User-Name) -> TRUE
(2) if (&User-Name) {
(2) if (&User-Name =~ / /) {
(2) if (&User-Name =~ / /) -> FALSE
(2) if (&User-Name =~ /@[^@]*@/ ) {
(2) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(2) if (&User-Name =~ /\.\./ ) {
(2) if (&User-Name =~ /\.\./ ) -> FALSE
(2) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(2) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(2) if (&User-Name =~ /\.$/) {
(2) if (&User-Name =~ /\.$/) -> FALSE
(2) if (&User-Name =~ /(a)\./) {
(2) if (&User-Name =~ /(a)\./) -> FALSE
(2) } # if (&User-Name) = notfound
(2) } # policy filter_username = notfound
(2) [preprocess] = ok
(2) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(2) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250715
(2) 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/71.59.46.3/auth-detail-20250715
(2) auth_log: EXPAND %t
(2) auth_log: --> Tue Jul 15 17:46:10 2025
(2) [auth_log] = ok
(2) [chap] = noop
(2) [mschap] = noop
(2) [digest] = noop
(2) policy rewrite_called_station_id {
(2) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(2) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(2) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(2) update request {
(2) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(2) --> 78-8A-20-58-6E-4E
(2) &Called-Station-Id := 78-8A-20-58-6E-4E
(2) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(2) --> 0x788A20586E4E
(2) &Called-Station-MAC := 0x788a20586e4e
(2) } # update request = noop
(2) if ("%{8}") {
(2) EXPAND %{8}
(2) --> CampusInternal
(2) if ("%{8}") -> TRUE
(2) if ("%{8}") {
(2) update request {
(2) EXPAND %{8}
(2) --> CampusInternal
(2) &Called-Station-SSID := CampusInternal
(2) } # update request = noop
(2) } # if ("%{8}") = noop
(2) [updated] = updated
(2) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(2) ... skipping else: Preceding "if" was taken
(2) } # policy rewrite_called_station_id = updated
(2) suffix: Checking for suffix after "@"
(2) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(2) suffix: No such realm "thecampusway.com"
(2) [suffix] = noop
(2) eap: Peer sent EAP Response (code 2) ID 140 length 6
(2) eap: Continuing tunnel setup
(2) [eap] = ok
(2) } # authorize = ok
(2) Found Auth-Type = eap
(2) # Executing group from file /etc/freeradius/sites-enabled/default
(2) authenticate {
(2) eap: Removing EAP session with state 0x8a91dc8e8b1dc932
(2) eap: Previous EAP request found for state 0x8a91dc8e8b1dc932,
released from the list
(2) eap: Peer sent packet with method EAP TTLS (21)
(2) eap: Calling submodule eap_ttls to process data
(2) eap_ttls: Authenticate
(2) eap_ttls: (TLS) Peer ACKed our handshake fragment
(2) eap: Sending EAP Request (code 1) ID 141 length 1000
(2) eap: EAP session adding &reply:State = 0x8a91dc8e881cc932
(2) [eap] = handled
(2) } # authenticate = handled
(2) Using Post-Auth-Type Challenge
(2) # Executing group from file /etc/freeradius/sites-enabled/default
(2) Challenge { ... } # empty sub-section is ignored
(2) session-state: Saving cached attributes
(2) Framed-MTU = 994
(2) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(2) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(2) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(2) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(2) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(2) Sent Access-Challenge Id 82 from 172.17.0.2:1812 to 71.59.46.3:57724
length 1064
(2) EAP-Message =
0x018d03e815c000000b9e551d23041830168014daadca16512273368faeee38e3d1448d166bf928300d06092a864886f70d01010b050003820101001778615f4e67853c306a035d59f5b19f9e78ffeac70a76e18f5022a5907dbc2e37291333d8d0592698632662d9d8e33601a46a0b9193ac86c60487d4d9a0fdb47bc36ca4a9df0537d61eaa6645f1b4815362105cbcc8a7fdffc1e5c909d16ab4c55bef8abb78c4abf703fb70c5233e2f17e2872dc11b30d2264df6398615c6ddb3c6e4d484b11134e73779a853dc0a3a1c83396d979ddd74c188d14a6602009a57f1cd9060fc421372d6daa1134515ff124d47adab6017f8a3793bfda9baf3b47f31d37d743232c82e50c97125ce3684e6b1aa39720f907b5ccdcfddee967daa37e783b7e70cb342837cb95d55570d509daef58e0d892216d1cd01d09c9354c30005313082052d30820415a003020102021453b0418eacdfd3ef23e70a35243230ee4b124c8d300d06092a864886f70d01010b05003081a4310b3009
(2) Message-Authenticator = 0x00000000000000000000000000000000
(2) State = 0x8a91dc8e881cc932db26def1df7f8c68
(2) Finished request
Waking up in 4.8 seconds.
(3) Received Access-Request Id 83 from 71.59.46.3:57724 to
172.17.0.2:1812 length 271
(3) User-Name = "radiustest(a)thecampusway.com"
(3) NAS-IP-Address = 10.0.10.43
(3) NAS-Identifier = "default"
(3) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(3) NAS-Port-Type = Wireless-802.11
(3) Service-Type = Framed-User
(3) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(3) Connect-Info = "CONNECT 0Mbps 802.11b"
(3) Acct-Session-Id = "D90D33A49AB1E90F"
(3) Acct-Multi-Session-Id = "1E33DF1D4FE38260"
(3) WLAN-Pairwise-Cipher = 1027076
(3) WLAN-Group-Cipher = 1027076
(3) WLAN-AKM-Suite = 1027077
(3) WLAN-Group-Mgmt-Cipher = 1027078
(3) Filter-Id = "wpa-eap"
(3) Framed-MTU = 1002
(3) EAP-Message = 0x028d00061500
(3) State = 0x8a91dc8e881cc932db26def1df7f8c68
(3) Message-Authenticator = 0xf2806200d08d942ce16c00a8e8f84fb4
(3) Restoring &session-state
(3) &session-state:Framed-MTU = 994
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(3) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(3) authorize {
(3) policy filter_username {
(3) if (&User-Name) {
(3) if (&User-Name) -> TRUE
(3) if (&User-Name) {
(3) if (&User-Name =~ / /) {
(3) if (&User-Name =~ / /) -> FALSE
(3) if (&User-Name =~ /@[^@]*@/ ) {
(3) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(3) if (&User-Name =~ /\.\./ ) {
(3) if (&User-Name =~ /\.\./ ) -> FALSE
(3) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(3) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(3) if (&User-Name =~ /\.$/) {
(3) if (&User-Name =~ /\.$/) -> FALSE
(3) if (&User-Name =~ /(a)\./) {
(3) if (&User-Name =~ /(a)\./) -> FALSE
(3) } # if (&User-Name) = notfound
(3) } # policy filter_username = notfound
(3) [preprocess] = ok
(3) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(3) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250715
(3) 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/71.59.46.3/auth-detail-20250715
(3) auth_log: EXPAND %t
(3) auth_log: --> Tue Jul 15 17:46:10 2025
(3) [auth_log] = ok
(3) [chap] = noop
(3) [mschap] = noop
(3) [digest] = noop
(3) policy rewrite_called_station_id {
(3) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(3) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(3) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(3) update request {
(3) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(3) --> 78-8A-20-58-6E-4E
(3) &Called-Station-Id := 78-8A-20-58-6E-4E
(3) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(3) --> 0x788A20586E4E
(3) &Called-Station-MAC := 0x788a20586e4e
(3) } # update request = noop
(3) if ("%{8}") {
(3) EXPAND %{8}
(3) --> CampusInternal
(3) if ("%{8}") -> TRUE
(3) if ("%{8}") {
(3) update request {
(3) EXPAND %{8}
(3) --> CampusInternal
(3) &Called-Station-SSID := CampusInternal
(3) } # update request = noop
(3) } # if ("%{8}") = noop
(3) [updated] = updated
(3) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(3) ... skipping else: Preceding "if" was taken
(3) } # policy rewrite_called_station_id = updated
(3) suffix: Checking for suffix after "@"
(3) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(3) suffix: No such realm "thecampusway.com"
(3) [suffix] = noop
(3) eap: Peer sent EAP Response (code 2) ID 141 length 6
(3) eap: Continuing tunnel setup
(3) [eap] = ok
(3) } # authorize = ok
(3) Found Auth-Type = eap
(3) # Executing group from file /etc/freeradius/sites-enabled/default
(3) authenticate {
(3) eap: Removing EAP session with state 0x8a91dc8e881cc932
(3) eap: Previous EAP request found for state 0x8a91dc8e881cc932,
released from the list
(3) eap: Peer sent packet with method EAP TTLS (21)
(3) eap: Calling submodule eap_ttls to process data
(3) eap_ttls: Authenticate
(3) eap_ttls: (TLS) Peer ACKed our handshake fragment
(3) eap: Sending EAP Request (code 1) ID 142 length 1000
(3) eap: EAP session adding &reply:State = 0x8a91dc8e891fc932
(3) [eap] = handled
(3) } # authenticate = handled
(3) Using Post-Auth-Type Challenge
(3) # Executing group from file /etc/freeradius/sites-enabled/default
(3) Challenge { ... } # empty sub-section is ignored
(3) session-state: Saving cached attributes
(3) Framed-MTU = 994
(3) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(3) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(3) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(3) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(3) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(3) Sent Access-Challenge Id 83 from 172.17.0.2:1812 to 71.59.46.3:57724
length 1064
(3) EAP-Message =
0x018e03e815c000000b9ebcf130fd82a66d6bac241c75a83cb5eab479b81361e8610203010001a38201533082014f301d0603551d0e04160414daadca16512273368faeee38e3d1448d166bf9283081e40603551d230481dc3081d98014daadca16512273368faeee38e3d1448d166bf928a181aaa481a73081a4310b30090603550406130255533110300e06035504080c0747656f726769613117301506035504070c0e506561636874726565204369747931183016060355040a0c0f5468652043616d7075732c204c4c433125302306092a864886f70d010901161661646d696e4074686563616d7075737761792e636f6d3129302706035504030c205468652043616d70757320436572746966696361746520417574686f72697479821453b0418eacdfd3ef23e70a35243230ee4b124c8d300f0603551d130101ff040530030101ff30360603551d1f042f302d302ba029a0278625687474703a2f2f7777772e6578616d706c652e6f72672f6578616d706c655f
(3) Message-Authenticator = 0x00000000000000000000000000000000
(3) State = 0x8a91dc8e891fc932db26def1df7f8c68
(3) Finished request
Waking up in 4.8 seconds.
(4) Received Access-Request Id 84 from 71.59.46.3:57724 to
172.17.0.2:1812 length 271
(4) User-Name = "radiustest(a)thecampusway.com"
(4) NAS-IP-Address = 10.0.10.43
(4) NAS-Identifier = "default"
(4) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(4) NAS-Port-Type = Wireless-802.11
(4) Service-Type = Framed-User
(4) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(4) Connect-Info = "CONNECT 0Mbps 802.11b"
(4) Acct-Session-Id = "D90D33A49AB1E90F"
(4) Acct-Multi-Session-Id = "1E33DF1D4FE38260"
(4) WLAN-Pairwise-Cipher = 1027076
(4) WLAN-Group-Cipher = 1027076
(4) WLAN-AKM-Suite = 1027077
(4) WLAN-Group-Mgmt-Cipher = 1027078
(4) Filter-Id = "wpa-eap"
(4) Framed-MTU = 1002
(4) EAP-Message = 0x028e00061500
(4) State = 0x8a91dc8e891fc932db26def1df7f8c68
(4) Message-Authenticator = 0xa53a7fe2074683705eb50b30f5d853e3
(4) Restoring &session-state
(4) &session-state:Framed-MTU = 994
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(4) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(4) authorize {
(4) policy filter_username {
(4) if (&User-Name) {
(4) if (&User-Name) -> TRUE
(4) if (&User-Name) {
(4) if (&User-Name =~ / /) {
(4) if (&User-Name =~ / /) -> FALSE
(4) if (&User-Name =~ /@[^@]*@/ ) {
(4) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(4) if (&User-Name =~ /\.\./ ) {
(4) if (&User-Name =~ /\.\./ ) -> FALSE
(4) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(4) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(4) if (&User-Name =~ /\.$/) {
(4) if (&User-Name =~ /\.$/) -> FALSE
(4) if (&User-Name =~ /(a)\./) {
(4) if (&User-Name =~ /(a)\./) -> FALSE
(4) } # if (&User-Name) = notfound
(4) } # policy filter_username = notfound
(4) [preprocess] = ok
(4) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(4) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250715
(4) 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/71.59.46.3/auth-detail-20250715
(4) auth_log: EXPAND %t
(4) auth_log: --> Tue Jul 15 17:46:10 2025
(4) [auth_log] = ok
(4) [chap] = noop
(4) [mschap] = noop
(4) [digest] = noop
(4) policy rewrite_called_station_id {
(4) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(4) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(4) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(4) update request {
(4) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(4) --> 78-8A-20-58-6E-4E
(4) &Called-Station-Id := 78-8A-20-58-6E-4E
(4) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(4) --> 0x788A20586E4E
(4) &Called-Station-MAC := 0x788a20586e4e
(4) } # update request = noop
(4) if ("%{8}") {
(4) EXPAND %{8}
(4) --> CampusInternal
(4) if ("%{8}") -> TRUE
(4) if ("%{8}") {
(4) update request {
(4) EXPAND %{8}
(4) --> CampusInternal
(4) &Called-Station-SSID := CampusInternal
(4) } # update request = noop
(4) } # if ("%{8}") = noop
(4) [updated] = updated
(4) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(4) ... skipping else: Preceding "if" was taken
(4) } # policy rewrite_called_station_id = updated
(4) suffix: Checking for suffix after "@"
(4) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(4) suffix: No such realm "thecampusway.com"
(4) [suffix] = noop
(4) eap: Peer sent EAP Response (code 2) ID 142 length 6
(4) eap: Continuing tunnel setup
(4) [eap] = ok
(4) } # authorize = ok
(4) Found Auth-Type = eap
(4) # Executing group from file /etc/freeradius/sites-enabled/default
(4) authenticate {
(4) eap: Removing EAP session with state 0x8a91dc8e891fc932
(4) eap: Previous EAP request found for state 0x8a91dc8e891fc932,
released from the list
(4) eap: Peer sent packet with method EAP TTLS (21)
(4) eap: Calling submodule eap_ttls to process data
(4) eap_ttls: Authenticate
(4) eap_ttls: (TLS) Peer ACKed our handshake fragment
(4) eap: Sending EAP Request (code 1) ID 143 length 14
(4) eap: EAP session adding &reply:State = 0x8a91dc8e8e1ec932
(4) [eap] = handled
(4) } # authenticate = handled
(4) Using Post-Auth-Type Challenge
(4) # Executing group from file /etc/freeradius/sites-enabled/default
(4) Challenge { ... } # empty sub-section is ignored
(4) session-state: Saving cached attributes
(4) Framed-MTU = 994
(4) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(4) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(4) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(4) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(4) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(4) Sent Access-Challenge Id 84 from 172.17.0.2:1812 to 71.59.46.3:57724
length 72
(4) EAP-Message = 0x018f000e158000000b9e0e000000
(4) Message-Authenticator = 0x00000000000000000000000000000000
(4) State = 0x8a91dc8e8e1ec932db26def1df7f8c68
(4) Finished request
Waking up in 4.8 seconds.
(5) Received Access-Request Id 85 from 71.59.46.3:57724 to
172.17.0.2:1812 length 401
(5) User-Name = "radiustest(a)thecampusway.com"
(5) NAS-IP-Address = 10.0.10.43
(5) NAS-Identifier = "default"
(5) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(5) NAS-Port-Type = Wireless-802.11
(5) Service-Type = Framed-User
(5) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(5) Connect-Info = "CONNECT 0Mbps 802.11b"
(5) Acct-Session-Id = "D90D33A49AB1E90F"
(5) Acct-Multi-Session-Id = "1E33DF1D4FE38260"
(5) WLAN-Pairwise-Cipher = 1027076
(5) WLAN-Group-Cipher = 1027076
(5) WLAN-AKM-Suite = 1027077
(5) WLAN-Group-Mgmt-Cipher = 1027078
(5) Filter-Id = "wpa-eap"
(5) Framed-MTU = 1002
(5) EAP-Message =
0x028f008815800000007e1603030046100000424104f9db086d4002cd3319c22f765afe77d4e172e6da7034d2e2973d034bd67bcde5848897505969008f91691f3ba26b61bc6410bed817a24788b0efe2516e46d19c14030300010116030300287d6392b78a35fb5ec576e514fa3213b5d112db3b63c1c42cc4bf21294140202f46a5a148feb20660
(5) State = 0x8a91dc8e8e1ec932db26def1df7f8c68
(5) Message-Authenticator = 0x1b0fb1a917f293b3ad37e03488201524
(5) Restoring &session-state
(5) &session-state:Framed-MTU = 994
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(5) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(5) authorize {
(5) policy filter_username {
(5) if (&User-Name) {
(5) if (&User-Name) -> TRUE
(5) if (&User-Name) {
(5) if (&User-Name =~ / /) {
(5) if (&User-Name =~ / /) -> FALSE
(5) if (&User-Name =~ /@[^@]*@/ ) {
(5) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(5) if (&User-Name =~ /\.\./ ) {
(5) if (&User-Name =~ /\.\./ ) -> FALSE
(5) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(5) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(5) if (&User-Name =~ /\.$/) {
(5) if (&User-Name =~ /\.$/) -> FALSE
(5) if (&User-Name =~ /(a)\./) {
(5) if (&User-Name =~ /(a)\./) -> FALSE
(5) } # if (&User-Name) = notfound
(5) } # policy filter_username = notfound
(5) [preprocess] = ok
(5) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(5) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250715
(5) 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/71.59.46.3/auth-detail-20250715
(5) auth_log: EXPAND %t
(5) auth_log: --> Tue Jul 15 17:46:10 2025
(5) [auth_log] = ok
(5) [chap] = noop
(5) [mschap] = noop
(5) [digest] = noop
(5) policy rewrite_called_station_id {
(5) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(5) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(5) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(5) update request {
(5) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(5) --> 78-8A-20-58-6E-4E
(5) &Called-Station-Id := 78-8A-20-58-6E-4E
(5) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(5) --> 0x788A20586E4E
(5) &Called-Station-MAC := 0x788a20586e4e
(5) } # update request = noop
(5) if ("%{8}") {
(5) EXPAND %{8}
(5) --> CampusInternal
(5) if ("%{8}") -> TRUE
(5) if ("%{8}") {
(5) update request {
(5) EXPAND %{8}
(5) --> CampusInternal
(5) &Called-Station-SSID := CampusInternal
(5) } # update request = noop
(5) } # if ("%{8}") = noop
(5) [updated] = updated
(5) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(5) ... skipping else: Preceding "if" was taken
(5) } # policy rewrite_called_station_id = updated
(5) suffix: Checking for suffix after "@"
(5) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(5) suffix: No such realm "thecampusway.com"
(5) [suffix] = noop
(5) eap: Peer sent EAP Response (code 2) ID 143 length 136
(5) eap: Continuing tunnel setup
(5) [eap] = ok
(5) } # authorize = ok
(5) Found Auth-Type = eap
(5) # Executing group from file /etc/freeradius/sites-enabled/default
(5) authenticate {
(5) eap: Removing EAP session with state 0x8a91dc8e8e1ec932
(5) eap: Previous EAP request found for state 0x8a91dc8e8e1ec932,
released from the list
(5) eap: Peer sent packet with method EAP TTLS (21)
(5) eap: Calling submodule eap_ttls to process data
(5) eap_ttls: Authenticate
(5) eap_ttls: (TLS) EAP Peer says that the final record size will be 126
bytes
(5) eap_ttls: (TLS) EAP Got all data (126 bytes)
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
server done
(5) eap_ttls: (TLS) TTLS - recv TLS 1.2 Handshake, ClientKeyExchange
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read
client key exchange
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read
change cipher spec
(5) eap_ttls: (TLS) TTLS - recv TLS 1.2 Handshake, Finished
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read finished
(5) eap_ttls: (TLS) TTLS - send TLS 1.2 ChangeCipherSpec
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
change cipher spec
(5) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, Finished
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write finished
(5) eap_ttls: Serialising session
c49ed24456a1e020e39add2bedce356c7437d251c846068e76fc7b75619d92e2, and
storing in cache
(5) eap_ttls: WARNING: (TLS) TTLS - Wrote session
c49ed24456a1e020e39add2bedce356c7437d251c846068e76fc7b75619d92e2 to
/var/log/freeradius/tlscache/c49ed24456a1e020e39add2bedce356c7437d251c846068e76fc7b75619d92e2.asn1
(147 bytes)
(5) eap_ttls: (TLS) TTLS - Handshake state - SSL negotiation finished
successfully
(5) eap_ttls: (TLS) TTLS - Connection Established
(5) eap_ttls: TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(5) eap_ttls: TLS-Session-Version = "TLS 1.2"
(5) eap: Sending EAP Request (code 1) ID 144 length 61
(5) eap: EAP session adding &reply:State = 0x8a91dc8e8f01c932
(5) [eap] = handled
(5) } # authenticate = handled
(5) Using Post-Auth-Type Challenge
(5) # Executing group from file /etc/freeradius/sites-enabled/default
(5) Challenge { ... } # empty sub-section is ignored
(5) session-state: Saving cached attributes
(5) Framed-MTU = 994
(5) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(5) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.2 Handshake,
ClientKeyExchange"
(5) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.2 Handshake,
Finished"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 ChangeCipherSpec"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Finished"
(5) TLS-Cache-Filename =
"/var/log/freeradius/tlscache/c49ed24456a1e020e39add2bedce356c7437d251c846068e76fc7b75619d92e2.asn1"
(5) TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(5) TLS-Session-Version = "TLS 1.2"
(5) Sent Access-Challenge Id 85 from 172.17.0.2:1812 to 71.59.46.3:57724
length 119
(5) EAP-Message =
0x0190003d1580000000331403030001011603030028bc3152e2db9f75e7546f2c31c30c8dbde82649b1c953b056493d4e8c85f463d4ccfedefda1595657
(5) Message-Authenticator = 0x00000000000000000000000000000000
(5) State = 0x8a91dc8e8f01c932db26def1df7f8c68
(5) Finished request
Waking up in 4.7 seconds.
(6) Received Access-Request Id 86 from 71.59.46.3:57724 to
172.17.0.2:1812 length 364
(6) User-Name = "radiustest(a)thecampusway.com"
(6) NAS-IP-Address = 10.0.10.43
(6) NAS-Identifier = "default"
(6) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(6) NAS-Port-Type = Wireless-802.11
(6) Service-Type = Framed-User
(6) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(6) Connect-Info = "CONNECT 0Mbps 802.11b"
(6) Acct-Session-Id = "D90D33A49AB1E90F"
(6) Acct-Multi-Session-Id = "1E33DF1D4FE38260"
(6) WLAN-Pairwise-Cipher = 1027076
(6) WLAN-Group-Cipher = 1027076
(6) WLAN-AKM-Suite = 1027077
(6) WLAN-Group-Mgmt-Cipher = 1027078
(6) Filter-Id = "wpa-eap"
(6) Framed-MTU = 1002
(6) EAP-Message =
0x0290006315800000005917030300547d6392b78a35fb5fa14989c5dc2e1d9df82aad8332e781a56338f767524ce1e173d4927b08d24d9c3b500cdb5de1f8aac0af5b76b53187ca90e29853fbc237a9c4b08e681bc0227547337fd52a0c5310ab86d487
(6) State = 0x8a91dc8e8f01c932db26def1df7f8c68
(6) Message-Authenticator = 0xb8f4c77bb3ff10c2fb4223becb9cbcef
(6) Restoring &session-state
(6) &session-state:Framed-MTU = 994
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.2 Handshake, ClientKeyExchange"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.2 Handshake, Finished"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 ChangeCipherSpec"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Finished"
(6) &session-state:TLS-Cache-Filename =
"/var/log/freeradius/tlscache/c49ed24456a1e020e39add2bedce356c7437d251c846068e76fc7b75619d92e2.asn1"
(6) &session-state:TLS-Session-Cipher-Suite =
"ECDHE-RSA-AES256-GCM-SHA384"
(6) &session-state:TLS-Session-Version = "TLS 1.2"
(6) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(6) authorize {
(6) policy filter_username {
(6) if (&User-Name) {
(6) if (&User-Name) -> TRUE
(6) if (&User-Name) {
(6) if (&User-Name =~ / /) {
(6) if (&User-Name =~ / /) -> FALSE
(6) if (&User-Name =~ /@[^@]*@/ ) {
(6) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(6) if (&User-Name =~ /\.\./ ) {
(6) if (&User-Name =~ /\.\./ ) -> FALSE
(6) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(6) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(6) if (&User-Name =~ /\.$/) {
(6) if (&User-Name =~ /\.$/) -> FALSE
(6) if (&User-Name =~ /(a)\./) {
(6) if (&User-Name =~ /(a)\./) -> FALSE
(6) } # if (&User-Name) = notfound
(6) } # policy filter_username = notfound
(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/71.59.46.3/auth-detail-20250715
(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/71.59.46.3/auth-detail-20250715
(6) auth_log: EXPAND %t
(6) auth_log: --> Tue Jul 15 17:46:10 2025
(6) [auth_log] = ok
(6) [chap] = noop
(6) [mschap] = noop
(6) [digest] = noop
(6) policy rewrite_called_station_id {
(6) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(6) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(6) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(6) update request {
(6) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(6) --> 78-8A-20-58-6E-4E
(6) &Called-Station-Id := 78-8A-20-58-6E-4E
(6) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(6) --> 0x788A20586E4E
(6) &Called-Station-MAC := 0x788a20586e4e
(6) } # update request = noop
(6) if ("%{8}") {
(6) EXPAND %{8}
(6) --> CampusInternal
(6) if ("%{8}") -> TRUE
(6) if ("%{8}") {
(6) update request {
(6) EXPAND %{8}
(6) --> CampusInternal
(6) &Called-Station-SSID := CampusInternal
(6) } # update request = noop
(6) } # if ("%{8}") = noop
(6) [updated] = updated
(6) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(6) ... skipping else: Preceding "if" was taken
(6) } # policy rewrite_called_station_id = updated
(6) suffix: Checking for suffix after "@"
(6) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(6) suffix: No such realm "thecampusway.com"
(6) [suffix] = noop
(6) eap: Peer sent EAP Response (code 2) ID 144 length 99
(6) eap: Continuing tunnel setup
(6) [eap] = ok
(6) } # authorize = ok
(6) Found Auth-Type = eap
(6) # Executing group from file /etc/freeradius/sites-enabled/default
(6) authenticate {
(6) eap: Removing EAP session with state 0x8a91dc8e8f01c932
(6) eap: Previous EAP request found for state 0x8a91dc8e8f01c932,
released from the list
(6) eap: Peer sent packet with method EAP TTLS (21)
(6) eap: Calling submodule eap_ttls to process data
(6) eap_ttls: Authenticate
(6) eap_ttls: (TLS) EAP Peer says that the final record size will be 89
bytes
(6) eap_ttls: (TLS) EAP Got all data (89 bytes)
(6) eap_ttls: Session established. Proceeding to decode tunneled attributes
(6) eap_ttls: Got tunneled request
(6) eap_ttls: User-Name = "radiustest(a)thecampusway.com"
(6) eap_ttls: User-Password = “<REDACTED>”
(6) eap_ttls: FreeRADIUS-Proxied-To = 127.0.0.1
(6) eap_ttls: Sending tunneled request
(6) Virtual server google-ldap-auth received request
(6) User-Name = "radiustest(a)thecampusway.com"
(6) User-Password = “<REDACTED>”
(6) FreeRADIUS-Proxied-To = 127.0.0.1
(6) WARNING: Outer and inner identities are the same. User privacy is
compromised.
(6) server google-ldap-auth {
(6) # Executing section authorize from file
/etc/freeradius/sites-enabled/google-ldap-auth
(6) authorize {
(6) policy filter_username {
(6) if (&User-Name) {
(6) if (&User-Name) -> TRUE
(6) if (&User-Name) {
(6) if (&User-Name =~ / /) {
(6) if (&User-Name =~ / /) -> FALSE
(6) if (&User-Name =~ /@[^@]*@/ ) {
(6) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(6) if (&User-Name =~ /\.\./ ) {
(6) if (&User-Name =~ /\.\./ ) -> FALSE
(6) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(6) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(6) if (&User-Name =~ /\.$/) {
(6) if (&User-Name =~ /\.$/) -> FALSE
(6) if (&User-Name =~ /(a)\./) {
(6) if (&User-Name =~ /(a)\./) -> FALSE
(6) } # if (&User-Name) = notfound
(6) } # policy filter_username = notfound
(6) policy filter_inner_identity {
(6) if (!&outer.request:User-Name || !&User-Name) {
(6) if (!&outer.request:User-Name || !&User-Name) -> FALSE
(6) if (&outer.request:User-Name != &User-Name) {
(6) if (&outer.request:User-Name != &User-Name) -> FALSE
(6) } # policy filter_inner_identity = notfound
(6) policy split_username_nai {
(6) if (&User-Name && (&User-Name =~
/^([^@]*)(@([-[:alnum:]]+\.[-[:alnum:].]+))?$/)) {
(6) if (&User-Name && (&User-Name =~
/^([^@]*)(@([-[:alnum:]]+\.[-[:alnum:].]+))?$/)) -> TRUE
(6) if (&User-Name && (&User-Name =~
/^([^@]*)(@([-[:alnum:]]+\.[-[:alnum:].]+))?$/)) {
(6) update request {
(6) EXPAND %{1}
(6) --> radiustest
(6) &Stripped-User-Name := radiustest
(6) } # update request = noop
(6) if ("%{3}" != '') {
(6) EXPAND %{3}
(6) --> thecampusway.com
(6) if ("%{3}" != '') -> TRUE
(6) if ("%{3}" != '') {
(6) update request {
(6) EXPAND %{3}
(6) --> thecampusway.com
(6) &Stripped-User-Domain = thecampusway.com
(6) } # update request = noop
(6) } # if ("%{3}" != '') = noop
(6) [updated] = updated
(6) } # if (&User-Name && (&User-Name =~
/^([^@]*)(@([-[:alnum:]]+\.[-[:alnum:].]+))?$/)) = updated
(6) ... skipping else: Preceding "if" was taken
(6) } # policy split_username_nai = updated
(6) update control {
(6) &Cache-Status-Only := yes
(6) } # update control = noop
(6) cache_auth_accept: EXPAND
%{md5:%{%{Stripped-User-Name}:-%{User-Name}}%{User-Password}}
(6) cache_auth_accept: --> c89f862b5de1a9c57ca33dfa15f6a3dd
(6) cache_auth_accept: No cache entry found for
"c89f862b5de1a9c57ca33dfa15f6a3dd"
(6) [cache_auth_accept] = notfound
(6) if (ok) {
(6) if (ok) -> FALSE
(6) update control {
(6) &Cache-Status-Only := yes
(6) } # update control = noop
(6) cache_auth_reject: EXPAND
%{md5:%{Calling-Station-Id}%{Stripped-User-Name}%{User-Password}}
(6) cache_auth_reject: --> c89f862b5de1a9c57ca33dfa15f6a3dd
(6) cache_auth_reject: No cache entry found for
"c89f862b5de1a9c57ca33dfa15f6a3dd"
(6) [cache_auth_reject] = notfound
(6) if (ok) {
(6) if (ok) -> FALSE
rlm_ldap (ldap_google): Reserved connection (0)
(6) ldap_google: EXPAND (uid=%{%{Stripped-User-Name}:-%{User-Name}})
(6) ldap_google: --> (uid=radiustest)
(6) ldap_google: Performing search in "ou=Users,dc=thecampusway,dc=com"
with filter "(uid=radiustest)", scope "sub"
(6) ldap_google: Waiting for search result...
(6) ldap_google: User object found at DN
"uid=radiustest,ou=Staff,ou=Users,dc=thecampusway,dc=com"
(6) ldap_google: Resolving group DN
"cn=allstaffgroup,ou=Groups,dc=thecampusway,dc=com" to group name
(6) ldap_google: Performing unfiltered search in
"cn=allstaffgroup,ou=Groups,dc=thecampusway,dc=com", scope "base"
(6) ldap_google: Waiting for search result...
(6) ldap_google: Group DN
"cn=allstaffgroup,ou=Groups,dc=thecampusway,dc=com" resolves to name
"allstaffgroup"
(6) ldap_google: Resolving group DN
"cn=classroom_teachers,ou=Groups,dc=thecampusway,dc=com" to group name
(6) ldap_google: Performing unfiltered search in
"cn=classroom_teachers,ou=Groups,dc=thecampusway,dc=com", scope "base"
(6) ldap_google: Waiting for search result...
(6) ldap_google: Group DN
"cn=classroom_teachers,ou=Groups,dc=thecampusway,dc=com" resolves to
name "classroom_teachers"
(6) ldap_google: Adding cacheable user object memberships
(6) ldap_google: &control:LDAP-Cached-Membership +=
"cn=allstaffgroup,ou=Groups,dc=thecampusway,dc=com"
(6) ldap_google: &control:LDAP-Cached-Membership += "allstaffgroup"
(6) ldap_google: &control:LDAP-Cached-Membership +=
"cn=classroom_teachers,ou=Groups,dc=thecampusway,dc=com"
(6) ldap_google: &control:LDAP-Cached-Membership += "classroom_teachers"
(6) ldap_google: Skipping caching group objects as directive
'group.membership_filter' is not set
(6) ldap_google: Processing user attributes
rlm_ldap (ldap_google): Released connection (0)
Need more connections to reach 10 spares
rlm_ldap (ldap_google): Opening additional connection (5), 1 of 27
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
(6) [ldap_google] = ok
(6) if (&User-Password && !control:Auth-Type) {
(6) if (&User-Password && !control:Auth-Type) -> TRUE
(6) if (&User-Password && !control:Auth-Type) {
(6) update {
(6) &control:Auth-Type := LDAP
(6) } # update = noop
(6) update control {
(6) &Cache-Read-Only := yes
(6) } # update control = noop
(6) cache_ldap_user_dn: EXPAND %{Stripped-User-Name}
(6) cache_ldap_user_dn: --> radiustest
(6) cache_ldap_user_dn: No cache entry found for "radiustest"
(6) [cache_ldap_user_dn] = notfound
(6) } # if (&User-Password && !control:Auth-Type) = noop
(6) } # authorize = updated
(6) Found Auth-Type = LDAP
(6) # Executing group from file
/etc/freeradius/sites-enabled/google-ldap-auth
(6) Auth-Type LDAP {
rlm_ldap (ldap_google): Reserved connection (1)
(6) ldap_google: Login attempt by "radiustest"
(6) ldap_google: Using user DN from request
"uid=radiustest,ou=Staff,ou=Users,dc=thecampusway,dc=com"
(6) ldap_google: Waiting for bind result...
(6) ldap_google: Bind successful
(6) ldap_google: Bind as user
"uid=radiustest,ou=Staff,ou=Users,dc=thecampusway,dc=com" was successful
rlm_ldap (ldap_google): Released connection (1)
(6) [ldap_google] = ok
(6) } # Auth-Type LDAP = ok
(6) # Executing section post-auth from file
/etc/freeradius/sites-enabled/google-ldap-auth
(6) post-auth {
(6) cache_ldap_user_dn: EXPAND %{Stripped-User-Name}
(6) cache_ldap_user_dn: --> radiustest
(6) cache_ldap_user_dn: No cache entry found for "radiustest"
(6) cache_ldap_user_dn: Creating new cache entry
(6) cache_ldap_user_dn: &control:LDAP-UserDN = &control:LDAP-UserDN ->
'uid=radiustest,ou=Staff,ou=Users,dc=thecampusway,dc=com'
(6) cache_ldap_user_dn: Merging cache entry into request
(6) cache_ldap_user_dn: &control:LDAP-UserDN =
"uid=radiustest,ou=Staff,ou=Users,dc=thecampusway,dc=com"
(6) cache_ldap_user_dn: Committed entry, TTL 86400 seconds
(6) [cache_ldap_user_dn] = updated
(6) if (&control:Auth-Type == ldap) {
(6) if (&control:Auth-Type == ldap) -> TRUE
(6) if (&control:Auth-Type == ldap) {
(6) cache_auth_accept: EXPAND
%{md5:%{%{Stripped-User-Name}:-%{User-Name}}%{User-Password}}
(6) cache_auth_accept: --> c89f862b5de1a9c57ca33dfa15f6a3dd
(6) cache_auth_accept: No cache entry found for
"c89f862b5de1a9c57ca33dfa15f6a3dd"
(6) cache_auth_accept: Creating new cache entry
(6) cache_auth_accept: &control:User-Category = "success"
(6) cache_auth_accept: Merging cache entry into request
(6) cache_auth_accept: &control:User-Category = "success"
(6) cache_auth_accept: Committed entry, TTL 7200 seconds
(6) [cache_auth_accept] = updated
(6) } # if (&control:Auth-Type == ldap) = updated
(6) } # post-auth = updated
(6) } # server google-ldap-auth
(6) Virtual server sending reply
(6) eap_ttls: Got tunneled Access-Accept
(6) eap_ttls: (TLS) cache - Setting up attributes for session resumption
(6) eap_ttls: caching EAP-Type = TTLS
(6) eap_ttls: Saving session
c49ed24456a1e020e39add2bedce356c7437d251c846068e76fc7b75619d92e2 in the
disk cache
(6) eap: Sending EAP Success (code 3) ID 144 length 4
(6) eap: Freeing handler
(6) [eap] = ok
(6) } # authenticate = ok
(6) # Executing section post-auth from file
/etc/freeradius/sites-enabled/default
(6) post-auth {
(6) if (session-state:User-Name && reply:User-Name &&
request:User-Name && (reply:User-Name == request:User-Name)) {
(6) if (session-state:User-Name && reply:User-Name &&
request:User-Name && (reply:User-Name == request:User-Name)) -> FALSE
(6) update {
(6) &reply::Framed-MTU += &session-state:Framed-MTU[*] -> 994
(6) &reply::TLS-Session-Information +=
&session-state:TLS-Session-Information[*] -> '(TLS) TTLS - recv TLS 1.3
Handshake, ClientHello'
(6) &reply::TLS-Session-Information +=
&session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2
Handshake, ServerHello'
(6) &reply::TLS-Session-Information +=
&session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2
Handshake, Certificate'
(6) &reply::TLS-Session-Information +=
&session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2
Handshake, ServerKeyExchange'
(6) &reply::TLS-Session-Information +=
&session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2
Handshake, ServerHelloDone'
(6) &reply::TLS-Session-Information +=
&session-state:TLS-Session-Information[*] -> '(TLS) TTLS - recv TLS 1.2
Handshake, ClientKeyExchange'
(6) &reply::TLS-Session-Information +=
&session-state:TLS-Session-Information[*] -> '(TLS) TTLS - recv TLS 1.2
Handshake, Finished'
(6) &reply::TLS-Session-Information +=
&session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2
ChangeCipherSpec'
(6) &reply::TLS-Session-Information +=
&session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2
Handshake, Finished'
(6) &reply::TLS-Cache-Filename +=
&session-state:TLS-Cache-Filename[*] ->
'/var/log/freeradius/tlscache/c49ed24456a1e020e39add2bedce356c7437d251c846068e76fc7b75619d92e2.asn1'
(6) &reply::TLS-Session-Cipher-Suite +=
&session-state:TLS-Session-Cipher-Suite[*] -> 'ECDHE-RSA-AES256-GCM-SHA384'
(6) &reply::TLS-Session-Version +=
&session-state:TLS-Session-Version[*] -> 'TLS 1.2'
(6) } # update = noop
(6) [exec] = noop
(6) policy remove_reply_message_if_eap {
(6) if (&reply:EAP-Message && &reply:Reply-Message) {
(6) if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(6) else {
(6) [noop] = noop
(6) } # else = noop
(6) } # policy remove_reply_message_if_eap = noop
(6) if (EAP-Key-Name && &reply:EAP-Session-Id) {
(6) if (EAP-Key-Name && &reply:EAP-Session-Id) -> FALSE
(6) } # post-auth = noop
(6) Sent Access-Accept Id 86 from 172.17.0.2:1812 to 71.59.46.3:57724
length 195
(6) MS-MPPE-Recv-Key =
0x3fbef00a3864ffc7c76f723584a850cb076cca3e20616da912f7a37fdca8430f
(6) MS-MPPE-Send-Key =
0x412565d5a06b184aae825b595badecb84ed77e3cb05270eb63856a074077c91a
(6) EAP-Message = 0x03900004
(6) Message-Authenticator = 0x00000000000000000000000000000000
(6) User-Name = "radiustest(a)thecampusway.com"
(6) Framed-MTU += 994
(6) Finished request
Waking up in 3.2 seconds.
(0) Cleaning up request packet ID 80 with timestamp +29 due to
cleanup_delay was reached
(1) Cleaning up request packet ID 81 with timestamp +29 due to
cleanup_delay was reached
(2) Cleaning up request packet ID 82 with timestamp +29 due to
cleanup_delay was reached
(3) Cleaning up request packet ID 83 with timestamp +29 due to
cleanup_delay was reached
(4) Cleaning up request packet ID 84 with timestamp +29 due to
cleanup_delay was reached
(5) Cleaning up request packet ID 85 with timestamp +29 due to
cleanup_delay was reached
Waking up in 1.4 seconds.
(6) Cleaning up request packet ID 86 with timestamp +29 due to
cleanup_delay was reached
Ready to process requests
2
1
Gday,
Thanks to all and special thank to Alan (not all heroes wear capes).
In case anyone else is struggling with error 20 at 0 depth, what I did
was to run ./bootstrap in etc/raddb/certs, ensured that the certificates
had been copied across to etc/freeradius/certs and then rehashed them
by using the following command at root level: c_rehash
/etc/freeradius/certs/
Now I need to generate actual proper certificates and not just use
example ones. Wish me luck!
Kat
2
1
Hello,
I am trying to run a custom query in order to generate reports for the company.
Here's the idea:
Every time there is an authentication attempt, I would like to save the record in a separate table.
#######################################################################
# Authentication Logging Queries
#######################################################################
# postauth_query - Insert some info after authentication
#######################################################################
post-auth {
# Write SQL queries to a logfile. This is potentially useful for bulk inserts
# when used with the rlm_sql_null driver.
# logfile = ${logdir}/post-auth.sql
query = "\
INSERT INTO ${..postauth_table} \
(username, pass, reply, authdate ${..class.column_name}) \
VALUES ( \
'%{SQL-User-Name}', \
LEFT('%{%{User-Password}:-%{Chap-Password}}', 64), \
'%{reply:Packet-Type}', \
'%S.%M' \
${..class.reply_xlat})"
## ADD
query = "\
INSERT INTO radcircuitid \
(username, circuitid) \
VALUES ( \
'%{SQL-User-Name}', \
'%{string:ADSL-Agent-Circuit-Id}') \
ON DUPLICATE KEY UPDATE \
circuitid = '%{string:ADSL-Agent-Circuit-Id}'"
}
I know that my current solution doesn't work, so I’m reaching out to ask for guidance on the best approach to execute this custom query.
Best Resgard,
Rodrigo Prazim
4
5
Hello,
Below is the full debug output of freeradius 3.2.7.
The final Access-Accept is this:
authentik-freeradius-1 | (15) Sent Access-Accept Id 16 from 10.1.2.1:1812 to 10.0.0.5:46092 length 61
authentik-freeradius-1 | (15) Framed-MTU += 994
authentik-freeradius-1 | (15) Tunnel-Type = VLAN
authentik-freeradius-1 | (15) Tunnel-Medium-Type = IEEE-802
authentik-freeradius-1 | (15) Tunnel-Private-Group-Id = "110"
I need to add MPPE keys in the reply packet for the WPA NAS to have an encrypted connection to the mobile client.
That is what the vendor says their WPA NAS requires for wireless clients.
The documentation I found concerning to MPPE keys are related to MS-CHAP.
What keys/values can I use to add MPPE ? I am doing EAP-TTLS+PAP.
The final Access-Accept should look like this:
authentik-freeradius-1 | (15) Sent Access-Accept Id 16 from 10.1.2.1:1812 to 10.0.0.5:46092 length YYY
authentik-freeradius-1 | (15) MS-MPPE-Recv-Key = 0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
authentik-freeradius-1 | (15) MS-MPPE-Send-Key = 0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
authentik-freeradius-1 | (15) EAP-Message = 0xYYYYYYYYYYY
authentik-freeradius-1 | (15) Framed-MTU += 994
authentik-freeradius-1 | (15) Tunnel-Type = VLAN
authentik-freeradius-1 | (15) Tunnel-Medium-Type = IEEE-802
authentik-freeradius-1 | (15) Tunnel-Private-Group-Id = "110"
The full debug output:
authentik-freeradius-1 | (8) Received Access-Request Id 9 from 10.0.0.5:46092 to 10.1.2.1:1812 length 273
authentik-freeradius-1 | (8) User-Name = "thatsme"
authentik-freeradius-1 | (8) NAS-IP-Address = 10.0.0.5
authentik-freeradius-1 | (8) NAS-Port-Id = "00000001"
authentik-freeradius-1 | (8) NAS-Identifier = "TP-Link:263626d2c501"
authentik-freeradius-1 | (8) Called-Station-Id = "26-36-26-D2-C5-01:Relevant"
authentik-freeradius-1 | (8) NAS-Port-Type = Wireless-802.11
authentik-freeradius-1 | (8) Event-Timestamp = "Jun 30 2025 13:12:02 UTC"
authentik-freeradius-1 | (8) Connect-Info = "CONNECT 54Mbps 802.11a"
authentik-freeradius-1 | (8) Acct-Session-Id = "263626d2c501-9F3FBFEE3494B7C3"
authentik-freeradius-1 | (8) Acct-Multi-Session-Id = "1B9880FB001579F3"
authentik-freeradius-1 | (8) WLAN-Pairwise-Cipher = 1027076
authentik-freeradius-1 | (8) Framed-MTU = 1400
authentik-freeradius-1 | (8) EAP-Message = 0x0278000c0174686174736d65
authentik-freeradius-1 | (8) Message-Authenticator = 0xfe647dc553addf954631112df816fd9f
authentik-freeradius-1 | (8) # Executing section authorize from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (8) authorize {
authentik-freeradius-1 | (8) if (&User-Name) {
authentik-freeradius-1 | (8) if (&User-Name) -> TRUE
authentik-freeradius-1 | (8) if (&User-Name) {
authentik-freeradius-1 | (8) if (&User-Name =~ / /) {
authentik-freeradius-1 | (8) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
authentik-freeradius-1 | (8) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) -> FALSE
authentik-freeradius-1 | (8) if (&User-Name =~ /(a)\./) -> FALSE
authentik-freeradius-1 | (8) } # if (&User-Name) = notfound
authentik-freeradius-1 | (8) } # policy filter_username = notfound
authentik-freeradius-1 | (8) [digest] = noop
authentik-freeradius-1 | (8) suffix: Checking for suffix after "@"
authentik-freeradius-1 | (8) suffix: No '@' in User-Name = "thatsme", looking up realm NULL
authentik-freeradius-1 | (8) if (User-Name && !User-Password) {
authentik-freeradius-1 | (8) if (User-Name && !User-Password) -> TRUE
authentik-freeradius-1 | (8) if (User-Name && !User-Password) {
authentik-freeradius-1 | (8) update request {
authentik-freeradius-1 | (8) &User-Password := &User-Name -> 'thatsme'
authentik-freeradius-1 | (8) } # update request = noop
authentik-freeradius-1 | (8) } # if (User-Name && !User-Password) = noop
authentik-freeradius-1 | (8) eap: Peer sent EAP Response (code 2) ID 120 length 12
authentik-freeradius-1 | (8) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the rest of authorize
authentik-freeradius-1 | (8) [eap] = ok
authentik-freeradius-1 | (8) } # authorize = ok
authentik-freeradius-1 | (8) Found Auth-Type = eap
authentik-freeradius-1 | (8) # Executing group from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (8) authenticate {
authentik-freeradius-1 | (8) eap: Peer sent packet with method EAP Identity (1)
authentik-freeradius-1 | (8) eap: Using default_eap_type = TTLS
authentik-freeradius-1 | (8) eap: Calling submodule eap_ttls to process data
authentik-freeradius-1 | (8) eap_ttls: (TLS) TTLS -Initiating new session
authentik-freeradius-1 | (8) eap: Sending EAP Request (code 1) ID 121 length 6
authentik-freeradius-1 | (8) eap: EAP session adding &reply:State = 0x13652bfd131c3ee0
authentik-freeradius-1 | (8) [eap] = handled
authentik-freeradius-1 | (8) } # authenticate = handled
authentik-freeradius-1 | (8) # Executing group from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (8) Challenge { ... } # empty sub-section is ignored
authentik-freeradius-1 | (8) Framed-MTU = 994
authentik-freeradius-1 | (8) Sent Access-Challenge Id 9 from 10.1.2.1:1812 to 10.0.0.5:46092 length 64
authentik-freeradius-1 | (8) EAP-Message = 0x017900061520
authentik-freeradius-1 | (8) Message-Authenticator = 0x00000000000000000000000000000000
authentik-freeradius-1 | (8) State = 0x13652bfd131c3ee02cb9291428252449
authentik-freeradius-1 | (8) Finished request
authentik-freeradius-1 | Waking up in 4.9 seconds.
authentik-freeradius-1 | (9) Received Access-Request Id 10 from 10.0.0.5:46092 to 10.1.2.1:1812 length 416
authentik-freeradius-1 | (9) User-Name = "thatsme"
authentik-freeradius-1 | (9) NAS-IP-Address = 10.0.0.5
authentik-freeradius-1 | (9) NAS-Port-Id = "00000001"
authentik-freeradius-1 | (9) Event-Timestamp = "Jun 30 2025 13:12:02 UTC"
authentik-freeradius-1 | (9) Service-Type = Framed-User
authentik-freeradius-1 | (9) NAS-Port = 1
authentik-freeradius-1 | (9) Calling-Station-Id = "1E-04-F0-DE-D7-92"
authentik-freeradius-1 | (9) Connect-Info = "CONNECT 54Mbps 802.11a"
authentik-freeradius-1 | (9) Acct-Session-Id = "263626d2c501-9F3FBFEE3494B7C3"
authentik-freeradius-1 | (9) Acct-Multi-Session-Id = "1B9880FB001579F3"
authentik-freeradius-1 | (9) WLAN-Pairwise-Cipher = 1027076
authentik-freeradius-1 | (9) WLAN-Group-Cipher = 1027076
authentik-freeradius-1 | (9) WLAN-AKM-Suite = 1027073
authentik-freeradius-1 | (9) WLAN-Group-Mgmt-Cipher = 1027078
authentik-freeradius-1 | (9) Framed-MTU = 1400
authentik-freeradius-1 | (9) EAP-Message = 0x027900891500160301007e0100007a0303f7cdef6120f26539c5194f2edb74c67cbf671649516edb239c950d2ac1ac293a00001ec02bc02fc02cc030cca9cca8c009c013c00ac014009c009d002f0035000a0100003300170000ff01000100000a00080006001d00170018000b00020100000d00140012040308040401050308050501080606010201
authentik-freeradius-1 | (9) State = 0x13652bfd131c3ee02cb9291428252449
authentik-freeradius-1 | (9) Message-Authenticator = 0x0f5496a242d2e1b94c10cfcd20052d23
authentik-freeradius-1 | (9) Restoring &session-state
authentik-freeradius-1 | (9) &session-state:Framed-MTU = 994
authentik-freeradius-1 | (9) # Executing section authorize from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (9) authorize {
authentik-freeradius-1 | (9) policy filter_username {
authentik-freeradius-1 | (9) if (&User-Name) {
authentik-freeradius-1 | (9) if (&User-Name) -> TRUE
authentik-freeradius-1 | (9) if (&User-Name) {
authentik-freeradius-1 | (9) if (&User-Name =~ / /) {
authentik-freeradius-1 | (9) if (&User-Name =~ / /) -> FALSE
authentik-freeradius-1 | (9) if (&User-Name =~ /@[^@]*@/ ) {
authentik-freeradius-1 | (9) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
authentik-freeradius-1 | (9) if (&User-Name =~ /\.\./ ) {
authentik-freeradius-1 | (9) if (&User-Name =~ /\.\./ ) -> FALSE
authentik-freeradius-1 | (9) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
authentik-freeradius-1 | (9) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) -> FALSE
authentik-freeradius-1 | (9) if (&User-Name =~ /\.$/) {
authentik-freeradius-1 | (9) if (&User-Name =~ /\.$/) -> FALSE
authentik-freeradius-1 | (9) if (&User-Name =~ /(a)\./) {
authentik-freeradius-1 | (9) if (&User-Name =~ /(a)\./) -> FALSE
authentik-freeradius-1 | (9) } # if (&User-Name) = notfound
authentik-freeradius-1 | (9) } # policy filter_username = notfound
authentik-freeradius-1 | (9) [digest] = noop
authentik-freeradius-1 | (9) suffix: Checking for suffix after "@"
authentik-freeradius-1 | (9) if (User-Name && !User-Password) {
authentik-freeradius-1 | (9) update request {
authentik-freeradius-1 | (9) &User-Password := &User-Name -> 'thatsme'
authentik-freeradius-1 | (9) } # update request = noop
authentik-freeradius-1 | (9) } # if (User-Name && !User-Password) = noop
authentik-freeradius-1 | (9) eap: Peer sent EAP Response (code 2) ID 121 length 137
authentik-freeradius-1 | (9) eap: Continuing tunnel setup
authentik-freeradius-1 | (9) [eap] = ok
authentik-freeradius-1 | (9) } # authorize = ok
authentik-freeradius-1 | (9) Found Auth-Type = eap
authentik-freeradius-1 | (9) # Executing group from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (9) authenticate {
authentik-freeradius-1 | (9) eap: Removing EAP session with state 0x13652bfd131c3ee0
authentik-freeradius-1 | (9) eap: Previous EAP request found for state 0x13652bfd131c3ee0, released from the list
authentik-freeradius-1 | (9) eap: Peer sent packet with method EAP TTLS (21)
authentik-freeradius-1 | (9) eap: Calling submodule eap_ttls to process data
authentik-freeradius-1 | (9) eap_ttls: Authenticate
authentik-freeradius-1 | (9) eap_ttls: (TLS) EAP Got final fragment (131 bytes) total 131
authentik-freeradius-1 | (9) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange
authentik-freeradius-1 | (9) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write key exchange
authentik-freeradius-1 | (9) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone
authentik-freeradius-1 | (9) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write server done
authentik-freeradius-1 | (9) eap_ttls: (TLS) TTLS - Server : Need to read more data: SSLv3/TLS write server done
authentik-freeradius-1 | (9) eap_ttls: (TLS) TTLS - In Handshake Phase
authentik-freeradius-1 | (9) eap: Sending EAP Request (code 1) ID 122 length 1000
authentik-freeradius-1 | (9) eap: EAP session adding &reply:State = 0x13652bfd121f3ee0
authentik-freeradius-1 | (9) Using Post-Auth-Type Challenge
authentik-freeradius-1 | (9) # Executing group from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (10) Received Access-Request Id 11 from 10.0.0.5:46092 to 10.1.2.1:1812 length 285
authentik-freeradius-1 | (10) User-Name = "thatsme"
authentik-freeradius-1 | (10) NAS-IP-Address = 10.0.0.5
authentik-freeradius-1 | (10) NAS-Port-Id = "00000001"
authentik-freeradius-1 | (10) NAS-Identifier = "TP-Link:263626d2c501"
authentik-freeradius-1 | (10) Called-Station-Id = "26-36-26-D2-C5-01:Relevant"
authentik-freeradius-1 | (10) NAS-Port-Type = Wireless-802.11
authentik-freeradius-1 | (10) Event-Timestamp = "Jun 30 2025 13:12:02 UTC"
authentik-freeradius-1 | (10) Service-Type = Framed-User
authentik-freeradius-1 | (10) NAS-Port = 1
authentik-freeradius-1 | (10) Calling-Station-Id = "1E-04-F0-DE-D7-92"
authentik-freeradius-1 | (10) Connect-Info = "CONNECT 54Mbps 802.11a"
authentik-freeradius-1 | (10) Acct-Session-Id = "263626d2c501-9F3FBFEE3494B7C3"
authentik-freeradius-1 | (10) Acct-Multi-Session-Id = "1B9880FB001579F3"
authentik-freeradius-1 | (10) WLAN-Pairwise-Cipher = 1027076
authentik-freeradius-1 | (10) WLAN-Group-Cipher = 1027076
authentik-freeradius-1 | (10) WLAN-AKM-Suite = 1027073
authentik-freeradius-1 | (10) WLAN-Group-Mgmt-Cipher = 1027078
authentik-freeradius-1 | (10) Framed-MTU = 1400
authentik-freeradius-1 | (10) EAP-Message = 0x027a00061500
authentik-freeradius-1 | (10) State = 0x13652bfd121f3ee02cb9291428252449
authentik-freeradius-1 | (10) Restoring &session-state
authentik-freeradius-1 | (10) &session-state:Framed-MTU = 994
authentik-freeradius-1 | (10) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake, ClientHello"
authentik-freeradius-1 | (10) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHello"
authentik-freeradius-1 | (10) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, Certificate"
authentik-freeradius-1 | (10) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange"
authentik-freeradius-1 | (10) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone"
authentik-freeradius-1 | (10) # Executing section authorize from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (10) authorize {
authentik-freeradius-1 | (10) policy filter_username {
authentik-freeradius-1 | (10) if (&User-Name) {
authentik-freeradius-1 | (10) if (&User-Name) -> TRUE
authentik-freeradius-1 | (10) if (&User-Name) {
authentik-freeradius-1 | (10) if (&User-Name =~ / /) -> FALSE
authentik-freeradius-1 | (10) if (&User-Name =~ /@[^@]*@/ ) {
authentik-freeradius-1 | (10) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
authentik-freeradius-1 | (10) if (&User-Name =~ /\.\./ ) {
authentik-freeradius-1 | (10) if (&User-Name =~ /\.\./ ) -> FALSE
authentik-freeradius-1 | (10) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
authentik-freeradius-1 | (10) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) -> FALSE
authentik-freeradius-1 | (10) if (&User-Name =~ /(a)\./) {
authentik-freeradius-1 | (10) if (&User-Name =~ /(a)\./) -> FALSE
authentik-freeradius-1 | (10) } # if (&User-Name) = notfound
authentik-freeradius-1 | (10) } # policy filter_username = notfound
authentik-freeradius-1 | (10) [preprocess] = ok
authentik-freeradius-1 | (10) [chap] = noop
authentik-freeradius-1 | (10) [digest] = noop
authentik-freeradius-1 | (10) suffix: Checking for suffix after "@"
authentik-freeradius-1 | (10) suffix: No '@' in User-Name = "thatsme", looking up realm NULL
authentik-freeradius-1 | (10) suffix: No such realm "NULL"
authentik-freeradius-1 | (10) [suffix] = noop
authentik-freeradius-1 | (10) if (User-Name && !User-Password) {
authentik-freeradius-1 | (10) if (User-Name && !User-Password) -> TRUE
authentik-freeradius-1 | (10) if (User-Name && !User-Password) {
authentik-freeradius-1 | (10) &User-Password := &User-Name -> 'thatsme'
authentik-freeradius-1 | (10) } # update request = noop
authentik-freeradius-1 | (10) } # if (User-Name && !User-Password) = noop
authentik-freeradius-1 | (10) eap: Peer sent EAP Response (code 2) ID 122 length 6
authentik-freeradius-1 | (10) eap: Continuing tunnel setup
authentik-freeradius-1 | (10) [eap] = ok
authentik-freeradius-1 | (10) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange"
authentik-freeradius-1 | (10) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone"
authentik-freeradius-1 | (10) Sent Access-Challenge Id 11 from 10.1.2.1:1812 to 10.0.0.5:46092 length 1064
authentik-freeradius-1 | (10) EAP-Message = 0x017b03e815c000000f932f302d302ba029a0278625687474703a2f2f7777772e6578616d706c652e636f6d2f6578616d706c655f63612e63726c30180603551d200411300f300d060b2b0601040182be68010302301d0603551d0e041604144a7e2994148f5496048c2dc652719f5c7607bc98301f0603551d23041830168014701806d2e6c468e75987bb23a0b1d9f88d709ac4300d06092a864886f70d01010b0500038202010093980ec717a88f949a6937eb2936cd0debc7605e805a0b8630abbc62f35350a0fff1a7886d653db8558319b1bc2d2c31bfea23208c6426ca6f3e50e2572dc7d7a6d90c97a3ef13a70dac554e6549f528a113d0e2a20391b34f295a38966530b917f843450cff4f133d4478bdac234d2a688305ffe69e3220319337fe4903fcc7240c57c33a2c988bb015733f4175045e6d7af21979a035f0a9e10da845b181fd32ae894991b560372a07ebdb52499f94e2f94e271260f08711830b89d8e9ca8873d822f14d1cccd8a24be1e9cbd773
authentik-freeradius-1 | (10) Message-Authenticator = 0x00000000000000000000000000000000
authentik-freeradius-1 | (10) State = 0x13652bfd111e3ee02cb9291428252449
authentik-freeradius-1 | (10) Finished request
authentik-freeradius-1 | Waking up in 4.9 seconds.
authentik-freeradius-1 | (11) Received Access-Request Id 12 from 10.0.0.5:46092 to 10.1.2.1:1812 length 285
authentik-freeradius-1 | (11) User-Name = "thatsme"
authentik-freeradius-1 | (11) NAS-IP-Address = 10.0.0.5
authentik-freeradius-1 | (11) NAS-Port-Id = "00000001"
authentik-freeradius-1 | (11) NAS-Identifier = "TP-Link:263626d2c501"
authentik-freeradius-1 | (11) Called-Station-Id = "26-36-26-D2-C5-01:Relevant"
authentik-freeradius-1 | (11) NAS-Port-Type = Wireless-802.11
authentik-freeradius-1 | (11) Event-Timestamp = "Jun 30 2025 13:12:02 UTC"
authentik-freeradius-1 | (11) Calling-Station-Id = "1E-04-F0-DE-D7-92"
authentik-freeradius-1 | (11) Connect-Info = "CONNECT 54Mbps 802.11a"
authentik-freeradius-1 | (11) WLAN-Pairwise-Cipher = 1027076
authentik-freeradius-1 | (11) WLAN-Group-Cipher = 1027076
authentik-freeradius-1 | (11) State = 0x13652bfd111e3ee02cb9291428252449
authentik-freeradius-1 | (11) Message-Authenticator = 0x3e816d3fa576146ddf2021a82ec4c68a
authentik-freeradius-1 | (11) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHello"
authentik-freeradius-1 | (11) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, Certificate"
authentik-freeradius-1 | (11) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone"
authentik-freeradius-1 | (11) # Executing section authorize from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (11) policy filter_username {
authentik-freeradius-1 | (11) if (&User-Name) {
authentik-freeradius-1 | (11) if (&User-Name) {
authentik-freeradius-1 | (11) if (&User-Name =~ / /) {
authentik-freeradius-1 | (11) if (&User-Name =~ /@[^@]*@/ ) {
authentik-freeradius-1 | (11) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
authentik-freeradius-1 | (11) if (&User-Name =~ /\.\./ ) {
authentik-freeradius-1 | (11) if (&User-Name =~ /\.\./ ) -> FALSE
authentik-freeradius-1 | (11) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
authentik-freeradius-1 | (11) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) -> FALSE
authentik-freeradius-1 | (11) if (&User-Name =~ /\.$/) {
authentik-freeradius-1 | (11) if (&User-Name =~ /\.$/) -> FALSE
authentik-freeradius-1 | (11) if (&User-Name =~ /(a)\./) {
authentik-freeradius-1 | (11) if (&User-Name =~ /(a)\./) -> FALSE
authentik-freeradius-1 | (11) } # if (&User-Name) = notfound
authentik-freeradius-1 | (11) } # policy filter_username = notfound
authentik-freeradius-1 | (11) [preprocess] = ok
authentik-freeradius-1 | (11) [chap] = noop
authentik-freeradius-1 | (11) [mschap] = noop
authentik-freeradius-1 | (11) [digest] = noop
authentik-freeradius-1 | (11) suffix: Checking for suffix after "@"
authentik-freeradius-1 | (11) suffix: No '@' in User-Name = "thatsme", looking up realm NULL
authentik-freeradius-1 | (11) suffix: No such realm "NULL"
authentik-freeradius-1 | (11) [suffix] = noop
authentik-freeradius-1 | (11) if (User-Name && !User-Password) {
authentik-freeradius-1 | (11) if (User-Name && !User-Password) -> TRUE
authentik-freeradius-1 | (11) if (User-Name && !User-Password) {
authentik-freeradius-1 | (11) &User-Password := &User-Name -> 'thatsme'
authentik-freeradius-1 | (11) } # update request = noop
authentik-freeradius-1 | (11) } # if (User-Name && !User-Password) = noop
authentik-freeradius-1 | (11) eap: Continuing tunnel setup
authentik-freeradius-1 | (11) [eap] = ok
authentik-freeradius-1 | (11) } # authorize = ok
authentik-freeradius-1 | (11) Found Auth-Type = eap
authentik-freeradius-1 | (11) # Executing group from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (11) authenticate {
authentik-freeradius-1 | (11) eap: Removing EAP session with state 0x13652bfd111e3ee0
authentik-freeradius-1 | (11) eap: Previous EAP request found for state 0x13652bfd111e3ee0, released from the list
authentik-freeradius-1 | (11) eap: Peer sent packet with method EAP TTLS (21)
authentik-freeradius-1 | (11) eap: Calling submodule eap_ttls to process data
authentik-freeradius-1 | (11) eap_ttls: Authenticate
authentik-freeradius-1 | (11) eap_ttls: (TLS) Peer ACKed our handshake fragment
authentik-freeradius-1 | (11) eap: Sending EAP Request (code 1) ID 124 length 1000
authentik-freeradius-1 | (11) eap: EAP session adding &reply:State = 0x13652bfd10193ee0
authentik-freeradius-1 | (11) [eap] = handled
authentik-freeradius-1 | (11) } # authenticate = handled
authentik-freeradius-1 | (11) Using Post-Auth-Type Challenge
authentik-freeradius-1 | (11) # Executing group from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (11) Challenge { ... } # empty sub-section is ignored
authentik-freeradius-1 | (11) session-state: Saving cached attributes
authentik-freeradius-1 | (11) Framed-MTU = 994
authentik-freeradius-1 | (11) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake, ClientHello"
authentik-freeradius-1 | (11) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHello"
authentik-freeradius-1 | (11) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, Certificate"
authentik-freeradius-1 | (11) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange"
authentik-freeradius-1 | (11) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone"
authentik-freeradius-1 | (11) Sent Access-Challenge Id 12 from 10.1.2.1:1812 to 10.0.0.5:46092 length 1064
authentik-freeradius-1 | (11) EAP-Message = 0x017c03e815c000000f933127302506035504030c1e52656c6576616e7420436572746966696361746520417574686f7269747930820222300d06092a864886f70d01010105000382020f003082020a0282020100e55d87d38cf2c678cd5e9b9cf81d94b6b91cd6463f8d77ec2fc375c2b6b502157c3ead93d845cda3997b1f428ee037cc776726254b9d4746fbf022bbf59228b2b912925af38f8647bc270e8052662caf474f4607aabb9b484b4b3cecfeafd6c483f7f3f77680ae050a7708020d92bda2c75a55113d207dc9511d2e1cac2e4b6dbed4f86a604e08dca9285f4edaf786c6e35f10f91bdad17e23ab955aa3e0f8c29fccedd093d20811fe24aefdc0b7635cb7c9e89a0dbe073a4e7f16180c21594c71660ccf797685939894048d34a8140428b943cb915289a0fc98b52316853f150037f925946cf9be5bfbdebd22bd12041ba4234091b663c0660b86a509bde5ed5116c928fea2bd51297cd2b1c47b076fe41b4a0daf19d765a1e6da397ce03b2816cedd
authentik-freeradius-1 | (11) Message-Authenticator = 0x00000000000000000000000000000000
authentik-freeradius-1 | (11) State = 0x13652bfd10193ee02cb9291428252449
authentik-freeradius-1 | (11) Finished request
authentik-freeradius-1 | Waking up in 4.9 seconds.
authentik-freeradius-1 | (12) Received Access-Request Id 13 from 10.0.0.5:46092 to 10.1.2.1:1812 length 285
authentik-freeradius-1 | (12) User-Name = "thatsme"
authentik-freeradius-1 | (12) NAS-Port-Id = "00000001"
authentik-freeradius-1 | (12) NAS-Identifier = "TP-Link:263626d2c501"
authentik-freeradius-1 | (12) Called-Station-Id = "26-36-26-D2-C5-01:Relevant"
authentik-freeradius-1 | (12) NAS-Port-Type = Wireless-802.11
authentik-freeradius-1 | (12) Event-Timestamp = "Jun 30 2025 13:12:02 UTC"
authentik-freeradius-1 | (12) Service-Type = Framed-User
authentik-freeradius-1 | (12) NAS-Port = 1
authentik-freeradius-1 | (12) Calling-Station-Id = "1E-04-F0-DE-D7-92"
authentik-freeradius-1 | (12) Connect-Info = "CONNECT 54Mbps 802.11a"
authentik-freeradius-1 | (12) Acct-Session-Id = "263626d2c501-9F3FBFEE3494B7C3"
authentik-freeradius-1 | (12) Acct-Multi-Session-Id = "1B9880FB001579F3"
authentik-freeradius-1 | (12) WLAN-Pairwise-Cipher = 1027076
authentik-freeradius-1 | (12) WLAN-Group-Cipher = 1027076
authentik-freeradius-1 | (12) WLAN-Group-Mgmt-Cipher = 1027078
authentik-freeradius-1 | (12) Framed-MTU = 1400
authentik-freeradius-1 | (12) EAP-Message = 0x027c00061500
authentik-freeradius-1 | (12) State = 0x13652bfd10193ee02cb9291428252449
authentik-freeradius-1 | (12) Message-Authenticator = 0x768549e29056b2a6c1056c54eb5f1701
authentik-freeradius-1 | (12) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHello"
authentik-freeradius-1 | (12) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, Certificate"
authentik-freeradius-1 | (12) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange"
authentik-freeradius-1 | (12) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone"
authentik-freeradius-1 | (12) # Executing section authorize from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (12) authorize {
authentik-freeradius-1 | (12) policy filter_username {
authentik-freeradius-1 | (12) if (&User-Name) -> TRUE
authentik-freeradius-1 | (12) if (&User-Name) {
authentik-freeradius-1 | (12) if (&User-Name =~ / /) {
authentik-freeradius-1 | (12) if (&User-Name =~ / /) -> FALSE
authentik-freeradius-1 | (12) if (&User-Name =~ /@[^@]*@/ ) {
authentik-freeradius-1 | (12) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
authentik-freeradius-1 | (12) if (&User-Name =~ /\.\./ ) {
authentik-freeradius-1 | (12) if (&User-Name =~ /\.\./ ) -> FALSE
authentik-freeradius-1 | (12) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
authentik-freeradius-1 | (12) if (&User-Name =~ /(a)\./) -> FALSE
authentik-freeradius-1 | (12) } # if (&User-Name) = notfound
authentik-freeradius-1 | (12) } # policy filter_username = notfound
authentik-freeradius-1 | (12) [preprocess] = ok
authentik-freeradius-1 | (12) [chap] = noop
authentik-freeradius-1 | (12) [mschap] = noop
authentik-freeradius-1 | (12) [digest] = noop
authentik-freeradius-1 | (13) Received Access-Request Id 14 from 10.0.0.5:46092 to 10.1.2.1:1812 length 285
authentik-freeradius-1 | (13) User-Name = "thatsme"
authentik-freeradius-1 | (13) NAS-IP-Address = 10.0.0.5
authentik-freeradius-1 | (13) NAS-Port-Id = "00000001"
authentik-freeradius-1 | (13) NAS-Identifier = "TP-Link:263626d2c501"
authentik-freeradius-1 | (13) Called-Station-Id = "26-36-26-D2-C5-01:Relevant"
authentik-freeradius-1 | (13) NAS-Port-Type = Wireless-802.11
authentik-freeradius-1 | (13) Event-Timestamp = "Jun 30 2025 13:12:02 UTC"
authentik-freeradius-1 | (13) Service-Type = Framed-User
authentik-freeradius-1 | (13) NAS-Port = 1
authentik-freeradius-1 | (13) Calling-Station-Id = "1E-04-F0-DE-D7-92"
authentik-freeradius-1 | (13) Connect-Info = "CONNECT 54Mbps 802.11a"
authentik-freeradius-1 | (13) Acct-Session-Id = "263626d2c501-9F3FBFEE3494B7C3"
authentik-freeradius-1 | (13) Acct-Multi-Session-Id = "1B9880FB001579F3"
authentik-freeradius-1 | (13) WLAN-Pairwise-Cipher = 1027076
authentik-freeradius-1 | (13) WLAN-Group-Cipher = 1027076
authentik-freeradius-1 | (13) WLAN-AKM-Suite = 1027073
authentik-freeradius-1 | (13) WLAN-Group-Mgmt-Cipher = 1027078
authentik-freeradius-1 | (13) Framed-MTU = 1400
authentik-freeradius-1 | (13) EAP-Message = 0x027d00061500
authentik-freeradius-1 | (13) State = 0x13652bfd17183ee02cb9291428252449
authentik-freeradius-1 | (13) Message-Authenticator = 0xac7e4c54f452892a4f843cb1118bb999
authentik-freeradius-1 | (13) Restoring &session-state
authentik-freeradius-1 | (13) &session-state:Framed-MTU = 994
authentik-freeradius-1 | (13) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake, ClientHello"
authentik-freeradius-1 | (13) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHello"
authentik-freeradius-1 | (13) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, Certificate"
authentik-freeradius-1 | (13) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange"
authentik-freeradius-1 | (13) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone"
authentik-freeradius-1 | (13) if (&User-Name =~ /\.\./ ) {
authentik-freeradius-1 | (13) if (&User-Name =~ /\.\./ ) -> FALSE
authentik-freeradius-1 | (13) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
authentik-freeradius-1 | (13) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) -> FALSE
authentik-freeradius-1 | (13) if (&User-Name =~ /\.$/) {
authentik-freeradius-1 | (13) if (&User-Name =~ /\.$/) -> FALSE
authentik-freeradius-1 | (13) if (&User-Name =~ /(a)\./) {
authentik-freeradius-1 | (13) if (&User-Name =~ /(a)\./) -> FALSE
authentik-freeradius-1 | (13) } # if (&User-Name) = notfound
authentik-freeradius-1 | (13) } # policy filter_username = notfound
authentik-freeradius-1 | (13) [preprocess] = ok
authentik-freeradius-1 | (13) [chap] = noop
authentik-freeradius-1 | (13) [mschap] = noop
authentik-freeradius-1 | (13) [digest] = noop
authentik-freeradius-1 | (13) suffix: Checking for suffix after "@"
authentik-freeradius-1 | (13) suffix: No '@' in User-Name = "thatsme", looking up realm NULL
authentik-freeradius-1 | (13) suffix: No such realm "NULL"
authentik-freeradius-1 | (13) [suffix] = noop
authentik-freeradius-1 | (13) if (User-Name && !User-Password) {
authentik-freeradius-1 | (13) if (User-Name && !User-Password) -> TRUE
authentik-freeradius-1 | (14) Received Access-Request Id 15 from 10.0.0.5:46092 to 10.1.2.1:1812 length 378
authentik-freeradius-1 | (14) User-Name = "thatsme"
authentik-freeradius-1 | (14) NAS-IP-Address = 10.0.0.5
authentik-freeradius-1 | (14) NAS-Port-Id = "00000001"
authentik-freeradius-1 | (14) NAS-Identifier = "TP-Link:263626d2c501"
authentik-freeradius-1 | (14) Called-Station-Id = "26-36-26-D2-C5-01:Relevant"
authentik-freeradius-1 | (14) NAS-Port-Type = Wireless-802.11
authentik-freeradius-1 | (14) Event-Timestamp = "Jun 30 2025 13:12:02 UTC"
authentik-freeradius-1 | (14) Service-Type = Framed-User
authentik-freeradius-1 | (14) NAS-Port = 1
authentik-freeradius-1 | (14) Calling-Station-Id = "1E-04-F0-DE-D7-92"
authentik-freeradius-1 | (14) Connect-Info = "CONNECT 54Mbps 802.11a"
authentik-freeradius-1 | (14) Acct-Session-Id = "263626d2c501-9F3FBFEE3494B7C3"
authentik-freeradius-1 | (14) Acct-Multi-Session-Id = "1B9880FB001579F3"
authentik-freeradius-1 | (14) WLAN-Pairwise-Cipher = 1027076
authentik-freeradius-1 | (14) WLAN-Group-Cipher = 1027076
authentik-freeradius-1 | (14) WLAN-AKM-Suite = 1027073
authentik-freeradius-1 | (14) WLAN-Group-Mgmt-Cipher = 1027078
authentik-freeradius-1 | (14) Framed-MTU = 1400
authentik-freeradius-1 | (14) if (&User-Name =~ /\.$/) {
authentik-freeradius-1 | (14) if (&User-Name =~ /\.$/) -> FALSE
authentik-freeradius-1 | (14) if (&User-Name =~ /(a)\./) {
authentik-freeradius-1 | (14) if (&User-Name =~ /(a)\./) -> FALSE
authentik-freeradius-1 | (14) } # if (&User-Name) = notfound
authentik-freeradius-1 | (14) } # policy filter_username = notfound
authentik-freeradius-1 | (14) [preprocess] = ok
authentik-freeradius-1 | (14) [chap] = noop
authentik-freeradius-1 | (14) [mschap] = noop
authentik-freeradius-1 | (14) [digest] = noop
authentik-freeradius-1 | (14) suffix: Checking for suffix after "@"
authentik-freeradius-1 | (14) suffix: No '@' in User-Name = "thatsme", looking up realm NULL
authentik-freeradius-1 | (14) suffix: No such realm "NULL"
authentik-freeradius-1 | (14) [suffix] = noop
authentik-freeradius-1 | (14) if (User-Name && !User-Password) {
authentik-freeradius-1 | (14) if (User-Name && !User-Password) -> TRUE
authentik-freeradius-1 | (14) if (User-Name && !User-Password) {
authentik-freeradius-1 | (14) update request {
authentik-freeradius-1 | (14) &User-Password := &User-Name -> 'thatsme'
authentik-freeradius-1 | (14) } # update request = noop
authentik-freeradius-1 | (14) eap: Peer sent EAP Response (code 2) ID 126 length 99
authentik-freeradius-1 | (14) eap: Continuing tunnel setup
authentik-freeradius-1 | (14) [eap] = ok
authentik-freeradius-1 | (14) } # authorize = ok
authentik-freeradius-1 | (14) Found Auth-Type = eap
authentik-freeradius-1 | (14) # Executing group from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (14) authenticate {
authentik-freeradius-1 | (14) eap: Removing EAP session with state 0x13652bfd161b3ee0
authentik-freeradius-1 | (14) eap: Previous EAP request found for state 0x13652bfd161b3ee0, released from the list
authentik-freeradius-1 | (14) eap: Peer sent packet with method EAP TTLS (21)
authentik-freeradius-1 | (14) eap: Calling submodule eap_ttls to process data
authentik-freeradius-1 | (14) eap_ttls: Authenticate
authentik-freeradius-1 | (14) eap_ttls: (TLS) EAP Done initial handshake
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write server done
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - recv TLS 1.2 Handshake, ClientKeyExchange
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read client key exchange
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read change cipher spec
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - recv TLS 1.2 Handshake, Finished
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read finished
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - send TLS 1.2 ChangeCipherSpec
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write change cipher spec
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, Finished
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write finished
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - Handshake state - SSL negotiation finished successfully
authentik-freeradius-1 | (14) eap_ttls: (TLS) TTLS - Connection Established
authentik-freeradius-1 | (14) eap_ttls: TLS-Session-Cipher-Suite = "ECDHE-RSA-AES128-GCM-SHA256"
authentik-freeradius-1 | (14) eap_ttls: TLS-Session-Version = "TLS 1.2"
authentik-freeradius-1 | (14) eap: Sending EAP Request (code 1) ID 127 length 61
authentik-freeradius-1 | (14) eap: EAP session adding &reply:State = 0x13652bfd151a3ee0
authentik-freeradius-1 | (14) [eap] = handled
authentik-freeradius-1 | (14) } # authenticate = handled
authentik-freeradius-1 | (14) Using Post-Auth-Type Challenge
authentik-freeradius-1 | (14) # Executing group from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (14) Challenge { ... } # empty sub-section is ignored
authentik-freeradius-1 | (14) session-state: Saving cached attributes
authentik-freeradius-1 | (14) Framed-MTU = 994
authentik-freeradius-1 | (14) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake, ClientHello"
authentik-freeradius-1 | (14) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHello"
authentik-freeradius-1 | (14) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, Certificate"
authentik-freeradius-1 | (14) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange"
authentik-freeradius-1 | (14) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone"
authentik-freeradius-1 | (14) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.2 Handshake, ClientKeyExchange"
authentik-freeradius-1 | (14) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.2 Handshake, Finished"
authentik-freeradius-1 | (14) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 ChangeCipherSpec"
authentik-freeradius-1 | (14) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake, Finished"
authentik-freeradius-1 | (14) TLS-Session-Cipher-Suite = "ECDHE-RSA-AES128-GCM-SHA256"
authentik-freeradius-1 | (14) TLS-Session-Version = "TLS 1.2"
authentik-freeradius-1 | (14) Sent Access-Challenge Id 15 from 10.1.2.1:1812 to 10.0.0.5:46092 length 119
authentik-freeradius-1 | (14) EAP-Message = 0x017f003d1580000000331403030001011603030028885d67ae234bf583bbd727193f412d31587ea490ff35ea5ad2b97ca448267b32c534f76445568b6a
authentik-freeradius-1 | (14) Message-Authenticator = 0x00000000000000000000000000000000
authentik-freeradius-1 | (14) State = 0x13652bfd151a3ee02cb9291428252449
authentik-freeradius-1 | (14) Finished request
authentik-freeradius-1 | Waking up in 4.9 seconds.
authentik-freeradius-1 | (15) Received Access-Request Id 16 from 10.0.0.5:46092 to 10.1.2.1:1812 length 358
authentik-freeradius-1 | (15) User-Name = "thatsme"
authentik-freeradius-1 | (15) } # if (&User-Name) = notfound
authentik-freeradius-1 | (15) } # policy filter_username = notfound
authentik-freeradius-1 | (15) eap: Peer sent packet with method EAP TTLS (21)
authentik-freeradius-1 | (15) eap: Calling submodule eap_ttls to process data
authentik-freeradius-1 | (15) eap_ttls: Authenticate
authentik-freeradius-1 | (15) eap_ttls: (TLS) EAP Done initial handshake
authentik-freeradius-1 | (15) eap_ttls: Session established. Proceeding to decode tunneled attributes
authentik-freeradius-1 | (15) eap_ttls: Got tunneled request
authentik-freeradius-1 | (15) eap_ttls: User-Name = "testuser"
authentik-freeradius-1 | (15) Expecting proxy response no later than 29.667657 seconds from now
authentik-freeradius-1 | Waking up in 4.5 seconds.
authentik-freeradius-1 | Suppressing duplicate proxied request (too fast) to home server 172.16.1.7 port 1812 - ID: 15
authentik-freeradius-1 | Waking up in 3.9 seconds.
authentik-freeradius-1 | (8) Cleaning up request packet ID 9 with timestamp +1250 due to cleanup_delay was reached
authentik-freeradius-1 | (9) Cleaning up request packet ID 10 with timestamp +1250 due to cleanup_delay was reached
authentik-freeradius-1 | (10) Cleaning up request packet ID 11 with timestamp +1250 due to cleanup_delay was reached
authentik-freeradius-1 | (11) Cleaning up request packet ID 12 with timestamp +1251 due to cleanup_delay was reached
authentik-freeradius-1 | (12) Cleaning up request packet ID 13 with timestamp +1251 due to cleanup_delay was reached
authentik-freeradius-1 | (13) Cleaning up request packet ID 14 with timestamp +1251 due to cleanup_delay was reached
authentik-freeradius-1 | (14) Cleaning up request packet ID 15 with timestamp +1251 due to cleanup_delay was reached
authentik-freeradius-1 | Waking up in 25.0 seconds.
authentik-freeradius-1 | (15) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
authentik-freeradius-1 | (15) BlastRADIUS check: Received packet without Message-Authenticator from home_server authentik_radius_outpost
authentik-freeradius-1 | (15) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
authentik-freeradius-1 | (15) The packet does not contain Message-Authenticator, which is a security issue
authentik-freeradius-1 | (15) UPGRADE THE HOME SERVER AS YOUR NETWORK IS VULNERABLE TO THE BLASTRADIUS ATTACK.
authentik-freeradius-1 | (15) Once the home server is upgraded, set "require_message_authenticator = true" for home_server authentik_radius_outpost
authentik-freeradius-1 | (15) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
authentik-freeradius-1 | (15) Clearing existing &reply: attributes
authentik-freeradius-1 | (15) Received Access-Accept Id 15 from 172.16.1.7:1812 to 10.1.2.1:47859 length 20
authentik-freeradius-1 | (15) server default {
authentik-freeradius-1 | (15) }
authentik-freeradius-1 | (15) Found Auth-Type = eap
authentik-freeradius-1 | (15) Found Auth-Type = Accept
authentik-freeradius-1 | (15) ERROR: Warning: Found 2 auth-types on request for user 'thatsme'
authentik-freeradius-1 | (15) Auth-Type = Accept, accepting the user
authentik-freeradius-1 | (15) # Executing section post-auth from file /opt/etc/raddb/sites-enabled/default
authentik-freeradius-1 | (15) post-auth {
authentik-freeradius-1 | (15) if (session-state:User-Name && reply:User-Name && request:User-Name && (reply:User-Name == request:User-Name)) {
authentik-freeradius-1 | (15) if (session-state:User-Name && reply:User-Name && request:User-Name && (reply:User-Name == request:User-Name)) -> FALSE
authentik-freeradius-1 | (15) update {
authentik-freeradius-1 | (15) &reply::Framed-MTU += &session-state:Framed-MTU[*] -> 994
authentik-freeradius-1 | (15) &reply::TLS-Session-Information += &session-state:TLS-Session-Information[*] -> '(TLS) TTLS - recv TLS 1.3 Handshake, ClientHello'
authentik-freeradius-1 | (15) &reply::TLS-Session-Information += &session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2 Handshake, ServerHello'
authentik-freeradius-1 | (15) &reply::TLS-Session-Information += &session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2 Handshake, Certificate'
authentik-freeradius-1 | (15) &reply::TLS-Session-Information += &session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange'
authentik-freeradius-1 | (15) &reply::TLS-Session-Information += &session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone'
authentik-freeradius-1 | (15) &reply::TLS-Session-Information += &session-state:TLS-Session-Information[*] -> '(TLS) TTLS - recv TLS 1.2 Handshake, ClientKeyExchange'
authentik-freeradius-1 | (15) &reply::TLS-Session-Information += &session-state:TLS-Session-Information[*] -> '(TLS) TTLS - recv TLS 1.2 Handshake, Finished'
authentik-freeradius-1 | (15) &reply::TLS-Session-Information += &session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2 ChangeCipherSpec'
authentik-freeradius-1 | (15) &reply::TLS-Session-Information += &session-state:TLS-Session-Information[*] -> '(TLS) TTLS - send TLS 1.2 Handshake, Finished'
authentik-freeradius-1 | (15) &reply::TLS-Session-Cipher-Suite += &session-state:TLS-Session-Cipher-Suite[*] -> 'ECDHE-RSA-AES128-GCM-SHA256'
authentik-freeradius-1 | (15) &reply::TLS-Session-Version += &session-state:TLS-Session-Version[*] -> 'TLS 1.2'
authentik-freeradius-1 | (15) } # update = noop
authentik-freeradius-1 | (15) [exec] = noop
authentik-freeradius-1 | (15) policy remove_reply_message_if_eap {
authentik-freeradius-1 | (15) if (&reply:EAP-Message && &reply:Reply-Message) {
authentik-freeradius-1 | (15) if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
authentik-freeradius-1 | (15) else {
authentik-freeradius-1 | (15) [noop] = noop
authentik-freeradius-1 | (15) } # else = noop
authentik-freeradius-1 | (15) } # policy remove_reply_message_if_eap = noop
authentik-freeradius-1 | (15) if (EAP-Key-Name && &reply:EAP-Session-Id) {
authentik-freeradius-1 | (15) if (EAP-Key-Name && &reply:EAP-Session-Id) -> FALSE
authentik-freeradius-1 | (15) update reply {
authentik-freeradius-1 | (15) &Tunnel-Type = VLAN
authentik-freeradius-1 | (15) &Tunnel-Medium-Type = IEEE-802
authentik-freeradius-1 | (15) } # update reply = noop
authentik-freeradius-1 | (15) if (LDAP-Group == "Group1") {
authentik-freeradius-1 | (15) Searching for user in group "Group1"
authentik-freeradius-1 | rlm_ldap (ldap): You probably need to lower "min"
authentik-freeradius-1 | rlm_ldap (ldap): Closing expired connection (6) - Hit lifetime limit
authentik-freeradius-1 | rlm_ldap (ldap): You probably need to lower "min"
authentik-freeradius-1 | rlm_ldap (ldap): Closing expired connection (5) - Hit lifetime limit
authentik-freeradius-1 | rlm_ldap (ldap): Waiting for bind result...
authentik-freeradius-1 | rlm_ldap (ldap): Bind successful
authentik-freeradius-1 | (15) User is not a member of "Group1"
authentik-freeradius-1 | (15) if (LDAP-Group == "Group1") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group2") {
authentik-freeradius-1 | (15) Searching for user in group "Group2"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (7)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group2)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) --> (&(cn=Group2)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group2)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))", scope "sub"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=testuser,ou=users,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (7)
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group6") {
authentik-freeradius-1 | (15) Searching for user in group "Group6"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (8)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group6)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) --> (&(cn=Group6)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group6)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))", scope "sub"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (8)
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group6") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group7") {
authentik-freeradius-1 | (15) Searching for user in group "Group7"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (7)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group7)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) --> (&(cn=Group7)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group7)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))", scope "sub"
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=testuser,ou=users,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (7)
authentik-freeradius-1 | (15) User is not a member of "Group7"
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group7") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8") {
authentik-freeradius-1 | (15) Searching for user in group "Group8"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (8)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group8)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) --> (&(cn=Group8)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group8)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))", scope "sub"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=testuser,ou=users,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (8)
authentik-freeradius-1 | (15) User is not a member of "Group8"
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_Archiv") {
authentik-freeradius-1 | (15) Searching for user in group "Group8_Archiv"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (7)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=testuser,ou=users,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (7)
authentik-freeradius-1 | (15) User is not a member of "Group8_Archiv"
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_Archiv") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_Finanzen") {
authentik-freeradius-1 | (15) Searching for user in group "Group8_Finanzen"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (8)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group8_Finanzen)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) --> (&(cn=Group8_Finanzen)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group8_Finanzen)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))", scope "sub"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (8)
authentik-freeradius-1 | (15) User is not a member of "Group8_Finanzen"
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_Finanzen") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_Office") {
authentik-freeradius-1 | (15) Searching for user in group "Group8_Office"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (7)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group8_Office)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) --> (&(cn=Group8_Office)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group8_Office)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))", scope "sub"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=testuser,ou=users,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_Office") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_VertraulicheDokumente") {
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=testuser,ou=users,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (8)
authentik-freeradius-1 | (15) User is not a member of "Group8_VertraulicheDokumente"
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_VertraulicheDokumente") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_Vorsitz") {
authentik-freeradius-1 | (15) Searching for user in group "Group8_Vorsitz"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (7)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group8_Vorsitz)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=testuser,ou=users,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (7)
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group8_Vorsitz") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group14") {
authentik-freeradius-1 | (15) Searching for user in group "Group14"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (8)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group14)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) --> (&(cn=Group14)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group14)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))", scope "sub"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=testuser,ou=users,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (8)
authentik-freeradius-1 | (15) User is not a member of "Group14"
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group14") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group15") {
authentik-freeradius-1 | (15) Searching for user in group "Group15"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (7)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group15)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) --> (&(cn=Group15)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group15)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))", scope "sub"
authentik-freeradius-1 | (15) Search returned no results
authentik-freeradius-1 | (15) Checking user object's memberOf attributes
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=testuser,ou=users,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group3,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group3"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Performing unfiltered search in "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com", scope "base"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group4,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group4"
authentik-freeradius-1 | (15) Processing memberOf value "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" as a DN
authentik-freeradius-1 | (15) Resolving group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" to group name
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) Group DN "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com" resolves to name "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (7)
authentik-freeradius-1 | (15) User is not a member of "Group15"
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group15") -> FALSE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group5") {
authentik-freeradius-1 | (15) Searching for user in group "Group5"
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (8)
authentik-freeradius-1 | (15) Using user DN from request "cn=testuser,ou=users,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | (15) Checking for user in group objects
authentik-freeradius-1 | (15) EXPAND (&(cn=Group5)(objectClass=posixGroup)(|(member=%{control:LDAP-UserDn})(cn=%{%{&control:Stripped-User-Name}:-%{&control:User-Name}})))
authentik-freeradius-1 | (15) --> (&(cn=Group5)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group5)(objectClass=posixGroup)(|(member=cn\3dtestuser\2cou\3dusers\2cdc\3dldap\2cdc\3dexample\2cdc\3dcom)(cn=testuser)))", scope "sub"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | (15) User found in group object "cn=Group5,ou=groups,dc=ldap,dc=example,dc=com"
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (8)
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group5") -> TRUE
authentik-freeradius-1 | (15) elsif (LDAP-Group == "Group5") {
authentik-freeradius-1 | (15) update reply {
authentik-freeradius-1 | rlm_ldap (ldap): Reserved connection (7)
authentik-freeradius-1 | (15) Performing search in "ou=groups,dc=ldap,dc=example,dc=com" with filter "(&(cn=Group5)(member=*testuser*))", scope "one"
authentik-freeradius-1 | (15) Waiting for search result...
authentik-freeradius-1 | rlm_ldap (ldap): Released connection (7)
authentik-freeradius-1 | (15) EXPAND %{%{ldap:ldap:///ou=groups,dc=ldap,dc=example,dc=com?Tunnel-Private-Group-Id?one?(&(cn=Group5)(member=*%{&control:User-Name}*))}:-20}
authentik-freeradius-1 | (15) --> 110
authentik-freeradius-1 | (15) &Tunnel-Private-Group-Id = 110
authentik-freeradius-1 | (15) } # update reply = noop
authentik-freeradius-1 | (15) } # elsif (LDAP-Group == "Group5") = noop
authentik-freeradius-1 | (15) ... skipping elsif: Preceding "if" was taken
authentik-freeradius-1 | (15) ... skipping elsif: Preceding "if" was taken
authentik-freeradius-1 | (15) ... skipping elsif: Preceding "if" was taken
authentik-freeradius-1 | (15) ... skipping elsif: Preceding "if" was taken
authentik-freeradius-1 | (15) ... skipping else: Preceding "if" was taken
authentik-freeradius-1 | (15) [updated] = updated
authentik-freeradius-1 | (15) } # post-auth = updated
authentik-freeradius-1 | (15) Sent Access-Accept Id 16 from 10.1.2.1:1812 to 10.0.0.5:46092 length 61
authentik-freeradius-1 | (15) Framed-MTU += 994
authentik-freeradius-1 | (15) Tunnel-Type = VLAN
authentik-freeradius-1 | (15) Tunnel-Medium-Type = IEEE-802
authentik-freeradius-1 | (15) Tunnel-Private-Group-Id = "110"
authentik-freeradius-1 | (15) Finished request
authentik-freeradius-1 | Waking up in 4.9 seconds.
authentik-freeradius-1 | (15) Cleaning up request packet ID 16 with timestamp +1251 due to cleanup_delay was reached
authentik-freeradius-1 | Ready to process requests
2
1
Help request: WPA Enterprise Authentication with UniFi equipment and Google Workspace LDAPS
by Taylor Gorman 09 Jul '25
by Taylor Gorman 09 Jul '25
09 Jul '25
Hello there. I would like to request assistance.
Supplicant device: 2017 inch MacBook Air running macOS Monterey 12.7.6
Network equipment: UAP-AC-PRO wireless access point and UDM-SE router
Directory server: Google Workspace LDAPS
My Implementation: Using official docker imagine
"freeradius/freeradius-server" running on Google Compute Engine COS.
What am I trying to do: WPA Enterprise Authentication (EAP-TTLS-PAP)
Why am I trying to do it: To eliminate the security risk of pre-shared
keys in a professional setting
What I expect the server to do: Continue past authenticate and on to
authorize.
What the server does: Completes authenticate and fails on authorize
Remarks: I am a novice, but by my understanding, freeRADIUS is
completing the authentication portion. This means that freeRADIUS
connects to LDAPS and verifies the supplicant's username and password.
So if all of this works, then why is freeRADIUS unable to proceed to
authenticate? I suspect that there is some error with passing the
supplicant user's password from the authenticate section to the
authorize section.
I apologize for not truncating the debug output. I am not sure which
parts are relevant and which parts are not.
Thank you for your assistance,
Taylor Gorman
FreeRADIUS Version 3.2.7
Copyright (C) 1999-2023 The FreeRADIUS server project and contributors
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License
For more information about these matters, see the file named COPYRIGHT
Starting - reading configuration files ...
including dictionary file /usr/share/freeradius/dictionary
including dictionary file /usr/share/freeradius/dictionary.dhcp
including dictionary file /usr/share/freeradius/dictionary.vqp
including dictionary file /etc/freeradius/dictionary
including configuration file /etc/freeradius/radiusd.conf
including configuration file /etc/freeradius/proxy.conf
including configuration file /etc/freeradius/clients.conf
including files in directory /etc/freeradius/mods-enabled/
including configuration file /etc/freeradius/mods-enabled/utf8
including configuration file /etc/freeradius/mods-enabled/totp
including configuration file /etc/freeradius/mods-enabled/date
including configuration file /etc/freeradius/mods-enabled/proxy_rate_limit
including configuration file /etc/freeradius/mods-enabled/mschap
including configuration file /etc/freeradius/mods-enabled/cache_auth
including configuration file /etc/freeradius/mods-enabled/attr_filter
including configuration file /etc/freeradius/mods-enabled/detail.log
including configuration file /etc/freeradius/mods-enabled/ntlm_auth
including configuration file /etc/freeradius/mods-enabled/expiration
including configuration file /etc/freeradius/mods-enabled/unix
including configuration file /etc/freeradius/mods-enabled/echo
including configuration file /etc/freeradius/mods-enabled/digest
including configuration file /etc/freeradius/mods-enabled/files
including configuration file /etc/freeradius/mods-enabled/linelog
including configuration file /etc/freeradius/mods-enabled/dynamic_clients
including configuration file /etc/freeradius/mods-enabled/preprocess
including configuration file /etc/freeradius/mods-enabled/passwd
including configuration file /etc/freeradius/mods-enabled/chap
including configuration file /etc/freeradius/mods-enabled/unpack
including configuration file /etc/freeradius/mods-enabled/eap
including configuration file /etc/freeradius/mods-enabled/replicate
including configuration file /etc/freeradius/mods-enabled/logintime
including configuration file /etc/freeradius/mods-enabled/soh
including configuration file /etc/freeradius/mods-enabled/radutmp
including configuration file /etc/freeradius/mods-enabled/pap
including configuration file /etc/freeradius/mods-enabled/detail
including configuration file /etc/freeradius/mods-enabled/always
including configuration file /etc/freeradius/mods-enabled/realm
including configuration file /etc/freeradius/mods-enabled/exec
including configuration file /etc/freeradius/mods-enabled/ldap_google
including configuration file /etc/freeradius/mods-enabled/expr
including configuration file /etc/freeradius/mods-enabled/sradutmp
including files in directory /etc/freeradius/policy.d/
including configuration file /etc/freeradius/policy.d/accounting
including configuration file /etc/freeradius/policy.d/cui
including configuration file /etc/freeradius/policy.d/canonicalization
including configuration file /etc/freeradius/policy.d/moonshot-targeted-ids
including configuration file /etc/freeradius/policy.d/abfab-tr
including configuration file /etc/freeradius/policy.d/debug
including configuration file /etc/freeradius/policy.d/eap
including configuration file /etc/freeradius/policy.d/operator-name
including configuration file /etc/freeradius/policy.d/dhcp
including configuration file /etc/freeradius/policy.d/control
including configuration file /etc/freeradius/policy.d/filter
including configuration file /etc/freeradius/policy.d/rfc7542
including files in directory /etc/freeradius/sites-enabled/
including configuration file /etc/freeradius/sites-enabled/google-ldap-auth
including configuration file /etc/freeradius/sites-enabled/default
including configuration file /etc/freeradius/sites-enabled/check-eap-tls
including configuration file /etc/freeradius/sites-enabled/inner-tunnel
main {
security {
user = "freerad"
group = "freerad"
allow_core_dumps = no
}
name = "freeradius"
prefix = "/usr"
localstatedir = "/var"
logdir = "/var/log/freeradius"
run_dir = "/var/run/freeradius"
}
main {
name = "freeradius"
prefix = "/usr"
localstatedir = "/var"
sbindir = "/usr/sbin"
logdir = "/var/log/freeradius"
run_dir = "/var/run/freeradius"
libdir = "/usr/lib/freeradius"
radacctdir = "/var/log/freeradius/radacct"
hostname_lookups = no
max_request_time = 30
proxy_dedup_window = 1
cleanup_delay = 5
max_requests = 16384
max_fds = 512
postauth_client_lost = no
pidfile = "/var/run/freeradius/freeradius.pid"
checkrad = "/usr/sbin/checkrad"
debug_level = 0
proxy_requests = yes
log {
stripped_names = no
auth = no
auth_badpass = no
auth_goodpass = no
colourise = yes
msg_denied = "You are already logged in - access denied"
}
resources {
}
security {
max_attributes = 200
reject_delay = 1.000000
status_server = yes
require_message_authenticator = "auto"
limit_proxy_state = "auto"
}
unlang {
group_stop_return = no
policy_stop_return = no
}
}
radiusd: #### Loading Realms and Home Servers ####
proxy server {
retry_delay = 5
retry_count = 3
default_fallback = no
dead_time = 120
wake_all_if_all_dead = no
}
home_server localhost {
nonblock = no
ipaddr = 127.0.0.1
port = 1812
type = "auth"
secret = <<< secret >>>
response_window = 20.000000
response_timeouts = 1
max_outstanding = 65536
zombie_period = 40
status_check = "status-server"
ping_interval = 30
check_interval = 30
check_timeout = 4
num_answers_to_alive = 3
revive_interval = 120
limit {
max_connections = 16
max_requests = 0
lifetime = 0
idle_timeout = 0
}
coa {
irt = 2
mrt = 16
mrc = 5
mrd = 30
}
}
home_server_pool my_auth_failover {
type = fail-over
home_server = localhost
}
realm example.com {
auth_pool = my_auth_failover
}
realm LOCAL {
}
radiusd: #### Loading Clients ####
client radiusserver_radtest_interlink {
ipaddr = 172.18.0.0/16
secret = <<< secret >>>
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
Shared secret for client radiusserver_radtest_interlink is short, and
likely can be broken by an attacker.
client 300Tivoli {
ipaddr = wan1.normandy.taylorgorman.net IPv4 address [71.59.46.3]
secret = <<< secret >>>
proto = "*"
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
client localhost {
ipaddr = 127.0.0.1
secret = <<< secret >>>
nas_type = "other"
proto = "*"
limit {
max_connections = 16
lifetime = 0
idle_timeout = 900
}
}
Shared secret for client localhost is short, and likely can be broken by
an attacker.
client localhost_ipv6 {
ipv6addr = ::1
secret = <<< secret >>>
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
Shared secret for client localhost_ipv6 is short, and likely can be
broken by an attacker.
Debug state unknown (cap_sys_ptrace capability not set)
Configuration version: 752e-6ff7-6ec8-d014
systemd watchdog is disabled
# Creating Auth-Type = LDAP
# Creating Auth-Type = mschap
# Creating Auth-Type = digest
# Creating Auth-Type = eap
# Creating Auth-Type = PAP
# Creating Auth-Type = CHAP
# Creating Auth-Type = MS-CHAP
# Creating Autz-Type = New-TLS-Connection
radiusd: #### Instantiating modules ####
modules {
# Loaded module rlm_utf8
# Loading module "utf8" from file /etc/freeradius/mods-enabled/utf8
# Loaded module rlm_totp
# Loading module "totp" from file /etc/freeradius/mods-enabled/totp
totp {
time_step = 30
otp_length = 6
lookback_steps = 1
lookback_interval = 30
lookforward_steps = 0
}
# Loaded module rlm_date
# Loading module "date" from file /etc/freeradius/mods-enabled/date
date {
format = "%b %e %Y %H:%M:%S %Z"
utc = no
}
# Loading module "wispr2date" from file /etc/freeradius/mods-enabled/date
date wispr2date {
format = "%Y-%m-%dT%H:%M:%S"
utc = no
}
# Loaded module rlm_proxy_rate_limit
# Loading module "proxy_rate_limit" from file
/etc/freeradius/mods-enabled/proxy_rate_limit
proxy_rate_limit {
max_entries = 2048
idle_timeout = 10
num_subtables = 256
window = 1
}
# Loaded module rlm_mschap
# Loading module "mschap" from file /etc/freeradius/mods-enabled/mschap
mschap {
use_mppe = yes
require_encryption = no
require_strong = no
with_ntdomain_hack = yes
passchange {
}
allow_retry = yes
winbind_retry_with_normalised_username = no
}
# Loaded module rlm_cache
# Loading module "cache_auth_accept" from file
/etc/freeradius/mods-enabled/cache_auth
cache cache_auth_accept {
driver = "rlm_cache_rbtree"
key = "%{md5:%{%{Stripped-User-Name}:-%{User-Name}}%{User-Password}}"
ttl = 7200
max_entries = 0
epoch = 0
add_stats = no
}
# Loading module "cache_auth_reject" from file
/etc/freeradius/mods-enabled/cache_auth
cache cache_auth_reject {
driver = "rlm_cache_rbtree"
key =
"%{md5:%{Calling-Station-Id}%{Stripped-User-Name}%{User-Password}}"
ttl = 3600
max_entries = 0
epoch = 0
add_stats = no
}
# Loading module "cache_ldap_user_dn" from file
/etc/freeradius/mods-enabled/cache_auth
cache cache_ldap_user_dn {
driver = "rlm_cache_rbtree"
key = "%{Stripped-User-Name}"
ttl = 86400
max_entries = 0
epoch = 0
add_stats = no
}
# Loaded module rlm_attr_filter
# Loading module "attr_filter.post-proxy" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.post-proxy {
filename = "/etc/freeradius/mods-config/attr_filter/post-proxy"
key = "%{Realm}"
relaxed = no
}
# Loading module "attr_filter.pre-proxy" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.pre-proxy {
filename = "/etc/freeradius/mods-config/attr_filter/pre-proxy"
key = "%{Realm}"
relaxed = no
}
# Loading module "attr_filter.access_reject" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.access_reject {
filename = "/etc/freeradius/mods-config/attr_filter/access_reject"
key = "%{User-Name}"
relaxed = no
}
# Loading module "attr_filter.access_challenge" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.access_challenge {
filename = "/etc/freeradius/mods-config/attr_filter/access_challenge"
key = "%{User-Name}"
relaxed = no
}
# Loading module "attr_filter.accounting_response" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.accounting_response {
filename = "/etc/freeradius/mods-config/attr_filter/accounting_response"
key = "%{User-Name}"
relaxed = no
}
# Loading module "attr_filter.coa" from file
/etc/freeradius/mods-enabled/attr_filter
attr_filter attr_filter.coa {
filename = "/etc/freeradius/mods-config/attr_filter/coa"
key = "%{User-Name}"
relaxed = no
}
# Loaded module rlm_detail
# Loading module "auth_log" from file
/etc/freeradius/mods-enabled/detail.log
detail auth_log {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loading module "reply_log" from file
/etc/freeradius/mods-enabled/detail.log
detail reply_log {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loading module "pre_proxy_log" from file
/etc/freeradius/mods-enabled/detail.log
detail pre_proxy_log {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/pre-proxy-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loading module "post_proxy_log" from file
/etc/freeradius/mods-enabled/detail.log
detail post_proxy_log {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/post-proxy-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loaded module rlm_exec
# Loading module "ntlm_auth" from file
/etc/freeradius/mods-enabled/ntlm_auth
exec ntlm_auth {
wait = yes
program = "/path/to/ntlm_auth --request-nt-key --domain=MYDOMAIN
--username=%{mschap:User-Name} --password=%{User-Password}"
shell_escape = yes
}
# Loaded module rlm_expiration
# Loading module "expiration" from file
/etc/freeradius/mods-enabled/expiration
# Loaded module rlm_unix
# Loading module "unix" from file /etc/freeradius/mods-enabled/unix
unix {
radwtmp = "/var/log/freeradius/radwtmp"
}
Creating attribute Unix-Group
# Loading module "echo" from file /etc/freeradius/mods-enabled/echo
exec echo {
wait = yes
program = "/bin/echo %{User-Name}"
input_pairs = "request"
output_pairs = "reply"
shell_escape = yes
}
# Loaded module rlm_digest
# Loading module "digest" from file /etc/freeradius/mods-enabled/digest
# Loaded module rlm_files
# Loading module "files" from file /etc/freeradius/mods-enabled/files
files {
filename = "/etc/freeradius/mods-config/files/authorize"
acctusersfile = "/etc/freeradius/mods-config/files/accounting"
preproxy_usersfile = "/etc/freeradius/mods-config/files/pre-proxy"
}
# Loaded module rlm_linelog
# Loading module "linelog" from file /etc/freeradius/mods-enabled/linelog
linelog {
filename = "/var/log/freeradius/linelog"
escape_filenames = no
syslog_severity = "info"
permissions = 384
format = "This is a log message for %{User-Name}"
reference = "messages.%{%{reply:Packet-Type}:-default}"
}
# Loading module "log_accounting" from file
/etc/freeradius/mods-enabled/linelog
linelog log_accounting {
filename = "/var/log/freeradius/linelog-accounting"
escape_filenames = no
syslog_severity = "info"
permissions = 384
format = ""
reference = "Accounting-Request.%{%{Acct-Status-Type}:-unknown}"
}
# Loaded module rlm_dynamic_clients
# Loading module "dynamic_clients" from file
/etc/freeradius/mods-enabled/dynamic_clients
# Loaded module rlm_preprocess
# Loading module "preprocess" from file
/etc/freeradius/mods-enabled/preprocess
preprocess {
huntgroups = "/etc/freeradius/mods-config/preprocess/huntgroups"
hints = "/etc/freeradius/mods-config/preprocess/hints"
with_ascend_hack = no
ascend_channels_per_line = 23
with_ntdomain_hack = no
with_specialix_jetstream_hack = no
with_cisco_vsa_hack = no
with_alvarion_vsa_hack = no
}
# Loaded module rlm_passwd
# Loading module "etc_passwd" from file
/etc/freeradius/mods-enabled/passwd
passwd etc_passwd {
filename = "/etc/passwd"
format = "*User-Name:Crypt-Password:"
delimiter = ":"
ignore_nislike = no
ignore_empty = yes
allow_multiple_keys = no
hash_size = 100
}
# Loaded module rlm_chap
# Loading module "chap" from file /etc/freeradius/mods-enabled/chap
# Loaded module rlm_unpack
# Loading module "unpack" from file /etc/freeradius/mods-enabled/unpack
# Loaded module rlm_eap
# Loading module "eap" from file /etc/freeradius/mods-enabled/eap
eap {
default_eap_type = "ttls"
timer_expire = 60
max_eap_type = 52
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
max_sessions = 16384
dedup_key = ""
}
# Loaded module rlm_replicate
# Loading module "replicate" from file
/etc/freeradius/mods-enabled/replicate
# Loaded module rlm_logintime
# Loading module "logintime" from file
/etc/freeradius/mods-enabled/logintime
logintime {
minimum_timeout = 60
}
# Loaded module rlm_soh
# Loading module "soh" from file /etc/freeradius/mods-enabled/soh
soh {
dhcp = yes
}
# Loaded module rlm_radutmp
# Loading module "radutmp" from file /etc/freeradius/mods-enabled/radutmp
radutmp {
filename = "/var/log/freeradius/radutmp"
username = "%{User-Name}"
case_sensitive = yes
check_with_nas = yes
permissions = 384
caller_id = yes
}
# Loaded module rlm_pap
# Loading module "pap" from file /etc/freeradius/mods-enabled/pap
pap {
normalise = yes
}
# Loading module "detail" from file /etc/freeradius/mods-enabled/detail
detail {
filename =
"/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
dates_as_integer = no
escape_filenames = no
log_packet_header = no
}
# Loaded module rlm_always
# Loading module "reject" from file /etc/freeradius/mods-enabled/always
always reject {
rcode = "reject"
simulcount = 0
mpp = no
}
# Loading module "fail" from file /etc/freeradius/mods-enabled/always
always fail {
rcode = "fail"
simulcount = 0
mpp = no
}
# Loading module "ok" from file /etc/freeradius/mods-enabled/always
always ok {
rcode = "ok"
simulcount = 0
mpp = no
}
# Loading module "handled" from file /etc/freeradius/mods-enabled/always
always handled {
rcode = "handled"
simulcount = 0
mpp = no
}
# Loading module "invalid" from file /etc/freeradius/mods-enabled/always
always invalid {
rcode = "invalid"
simulcount = 0
mpp = no
}
# Loading module "userlock" from file /etc/freeradius/mods-enabled/always
always userlock {
rcode = "userlock"
simulcount = 0
mpp = no
}
# Loading module "notfound" from file /etc/freeradius/mods-enabled/always
always notfound {
rcode = "notfound"
simulcount = 0
mpp = no
}
# Loading module "noop" from file /etc/freeradius/mods-enabled/always
always noop {
rcode = "noop"
simulcount = 0
mpp = no
}
# Loading module "updated" from file /etc/freeradius/mods-enabled/always
always updated {
rcode = "updated"
simulcount = 0
mpp = no
}
# Loaded module rlm_realm
# Loading module "IPASS" from file /etc/freeradius/mods-enabled/realm
realm IPASS {
format = "prefix"
delimiter = "/"
ignore_default = no
ignore_null = no
}
# Loading module "suffix" from file /etc/freeradius/mods-enabled/realm
realm suffix {
format = "suffix"
delimiter = "@"
ignore_default = no
ignore_null = no
}
# Loading module "bangpath" from file /etc/freeradius/mods-enabled/realm
realm bangpath {
format = "prefix"
delimiter = "!"
ignore_default = no
ignore_null = no
}
# Loading module "realmpercent" from file
/etc/freeradius/mods-enabled/realm
realm realmpercent {
format = "suffix"
delimiter = "%"
ignore_default = no
ignore_null = no
}
# Loading module "ntdomain" from file /etc/freeradius/mods-enabled/realm
realm ntdomain {
format = "prefix"
delimiter = "\"
ignore_default = no
ignore_null = no
}
# Loading module "exec" from file /etc/freeradius/mods-enabled/exec
exec {
wait = no
input_pairs = "request"
shell_escape = yes
timeout = 10
}
# Loaded module rlm_ldap
# Loading module "ldap_google" from file
/etc/freeradius/mods-enabled/ldap_google
ldap ldap_google {
server = "ldaps://ldap.google.com:636/"
identity = "MortifiedU"
password = <<< secret >>>
sasl {
}
user_dn = "LDAP-UserDn"
user {
scope = "sub"
access_positive = yes
sasl {
}
}
group {
filter = "(objectClass=posixGroup)"
scope = "sub"
name_attribute = "cn"
membership_attribute = "memberOf"
cacheable_name = no
cacheable_dn = yes
cache_attribute = "LDAP-Cached-Membership"
allow_dangling_group_ref = no
}
client {
scope = "sub"
base_dn = ""
}
profile {
}
options {
ldap_debug = 0
chase_referrals = no
net_timeout = 3
res_timeout = 10
srv_timelimit = 3
idle = 60
probes = 3
interval = 3
}
tls {
certificate_file = "/etc/freeradius/certs/google/certificate.crt"
private_key_file = "/etc/freeradius/certs/google/key.key"
random_file = "/dev/urandom"
check_crl = no
start_tls = no
require_cert = "allow"
}
}
Creating attribute ldap_google-LDAP-Group
# Loaded module rlm_expr
# Loading module "expr" from file /etc/freeradius/mods-enabled/expr
expr {
safe_characters =
"@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_:
/äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ"
}
# Loading module "sradutmp" from file
/etc/freeradius/mods-enabled/sradutmp
radutmp sradutmp {
filename = "/var/log/freeradius/sradutmp"
username = "%{User-Name}"
case_sensitive = yes
check_with_nas = yes
permissions = 420
caller_id = no
}
instantiate {
}
# Instantiating module "totp" from file /etc/freeradius/mods-enabled/totp
# Instantiating module "proxy_rate_limit" from file
/etc/freeradius/mods-enabled/proxy_rate_limit
# Instantiating module "mschap" from file
/etc/freeradius/mods-enabled/mschap
rlm_mschap (mschap): using internal authentication
# Instantiating module "cache_auth_accept" from file
/etc/freeradius/mods-enabled/cache_auth
rlm_cache (cache_auth_accept): Driver rlm_cache_rbtree (module
rlm_cache_rbtree) loaded and linked
# Instantiating module "cache_auth_reject" from file
/etc/freeradius/mods-enabled/cache_auth
rlm_cache (cache_auth_reject): Driver rlm_cache_rbtree (module
rlm_cache_rbtree) loaded and linked
# Instantiating module "cache_ldap_user_dn" from file
/etc/freeradius/mods-enabled/cache_auth
rlm_cache (cache_ldap_user_dn): Driver rlm_cache_rbtree (module
rlm_cache_rbtree) loaded and linked
# Instantiating module "attr_filter.post-proxy" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/post-proxy
# Instantiating module "attr_filter.pre-proxy" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/pre-proxy
# Instantiating module "attr_filter.access_reject" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/access_reject
# Instantiating module "attr_filter.access_challenge" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file
/etc/freeradius/mods-config/attr_filter/access_challenge
# Instantiating module "attr_filter.accounting_response" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file
/etc/freeradius/mods-config/attr_filter/accounting_response
# Instantiating module "attr_filter.coa" from file
/etc/freeradius/mods-enabled/attr_filter
reading pairlist file /etc/freeradius/mods-config/attr_filter/coa
# Instantiating module "auth_log" from file
/etc/freeradius/mods-enabled/detail.log
rlm_detail (auth_log): 'User-Password' suppressed, will not appear in
detail output
# Instantiating module "reply_log" from file
/etc/freeradius/mods-enabled/detail.log
# Instantiating module "pre_proxy_log" from file
/etc/freeradius/mods-enabled/detail.log
# Instantiating module "post_proxy_log" from file
/etc/freeradius/mods-enabled/detail.log
# Instantiating module "expiration" from file
/etc/freeradius/mods-enabled/expiration
# Instantiating module "files" from file
/etc/freeradius/mods-enabled/files
reading pairlist file /etc/freeradius/mods-config/files/authorize
reading pairlist file /etc/freeradius/mods-config/files/accounting
reading pairlist file /etc/freeradius/mods-config/files/pre-proxy
# Instantiating module "linelog" from file
/etc/freeradius/mods-enabled/linelog
# Instantiating module "log_accounting" from file
/etc/freeradius/mods-enabled/linelog
# Instantiating module "preprocess" from file
/etc/freeradius/mods-enabled/preprocess
reading pairlist file /etc/freeradius/mods-config/preprocess/huntgroups
reading pairlist file /etc/freeradius/mods-config/preprocess/hints
# Instantiating module "etc_passwd" from file
/etc/freeradius/mods-enabled/passwd
rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no
# Instantiating module "eap" from file /etc/freeradius/mods-enabled/eap
# Linked to sub-module rlm_eap_md5
# Linked to sub-module rlm_eap_gtc
gtc {
challenge = "Password: "
auth_type = "PAP"
}
# Linked to sub-module rlm_eap_tls
tls {
tls = "tls-common"
virtual_server = "check-eap-tls"
configurable_client_cert = no
}
tls-config tls-common {
verify_depth = 0
ca_path = "/etc/freeradius/certs"
pem_file_type = yes
private_key_file = "/etc/freeradius/certs/server.pem"
certificate_file = "/etc/freeradius/certs/server.pem"
ca_file = "/etc/freeradius/certs/ca.pem"
private_key_password = <<< secret >>>
fragment_size = 1024
include_length = yes
auto_chain = yes
check_crl = no
check_all_crl = no
ca_path_reload_interval = 0
cipher_list = "DEFAULT"
cipher_server_preference = no
reject_unknown_intermediate_ca = no
ecdh_curve = ""
tls_max_version = "1.3"
tls_min_version = "1.2"
cache {
enable = yes
lifetime = 8
name = "base-eap-cache"
max_entries = 255
persist_dir = "/var/log/freeradius/tlscache"
}
verify {
skip_if_ocsp_ok = no
}
ocsp {
enable = no
override_cert_url = yes
url = "http://127.0.0.1/ocsp/"
use_nonce = yes
timeout = 0
softfail = no
}
}
# Linked to sub-module rlm_eap_ttls
ttls {
tls = "tls-common"
default_eap_type = "md5"
copy_request_to_tunnel = no
use_tunneled_reply = no
virtual_server = "google-ldap-auth"
include_length = yes
require_client_cert = no
}
tls: Using cached TLS configuration from previous invocation
# Linked to sub-module rlm_eap_peap
peap {
tls = "tls-common"
default_eap_type = "mschapv2"
copy_request_to_tunnel = no
use_tunneled_reply = no
proxy_tunneled_request_as_eap = yes
virtual_server = "inner-tunnel"
soh = no
require_client_cert = no
}
tls: Using cached TLS configuration from previous invocation
# Linked to sub-module rlm_eap_mschapv2
mschapv2 {
with_ntdomain_hack = no
send_error = no
}
# Instantiating module "logintime" from file
/etc/freeradius/mods-enabled/logintime
# Instantiating module "pap" from file /etc/freeradius/mods-enabled/pap
# Instantiating module "detail" from file
/etc/freeradius/mods-enabled/detail
# Instantiating module "reject" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "fail" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "ok" from file /etc/freeradius/mods-enabled/always
# Instantiating module "handled" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "invalid" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "userlock" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "notfound" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "noop" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "updated" from file
/etc/freeradius/mods-enabled/always
# Instantiating module "IPASS" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "suffix" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "bangpath" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "realmpercent" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "ntdomain" from file
/etc/freeradius/mods-enabled/realm
# Instantiating module "ldap_google" from file
/etc/freeradius/mods-enabled/ldap_google
rlm_ldap: libldap vendor: OpenLDAP, version: 20518
rlm_ldap (ldap_google): Couldn't find configuration for accounting, will
return NOOP for calls from this section
rlm_ldap (ldap_google): Couldn't find configuration for post-auth, will
return NOOP for calls from this section
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! libldap is using GnuTLS, while FreeRADIUS is using OpenSSL
!! There may be random issues with TLS connections due to this conflict.
!! The server may also crash.
!! See https://wiki.freeradius.org/modules/Rlm_ldap for more information.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
rlm_ldap (ldap_google): Initialising connection pool
pool {
start = 5
min = 3
max = 32
spare = 10
uses = 0
lifetime = 0
cleanup_interval = 30
idle_timeout = 60
retry_delay = 30
max_retries = 5
spread = no
}
rlm_ldap (ldap_google): Opening additional connection (0), 1 of 32
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
rlm_ldap (ldap_google): Opening additional connection (1), 1 of 31
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
rlm_ldap (ldap_google): Opening additional connection (2), 1 of 30
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
rlm_ldap (ldap_google): Opening additional connection (3), 1 of 29
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
rlm_ldap (ldap_google): Opening additional connection (4), 1 of 28
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
} # modules
radiusd: #### Loading Virtual Servers ####
server { # from file /etc/freeradius/radiusd.conf
} # server
server google-ldap-auth { # from file
/etc/freeradius/sites-enabled/google-ldap-auth
# Loading authenticate {...}
Compiling Auth-Type LDAP for attr Auth-Type
# Loading authorize {...}
# Loading post-auth {...}
Compiling Post-Auth-Type REJECT for attr Post-Auth-Type
} # server google-ldap-auth
server default { # from file /etc/freeradius/sites-enabled/default
# Loading authenticate {...}
Compiling Auth-Type PAP for attr Auth-Type
Compiling Auth-Type CHAP for attr Auth-Type
Compiling Auth-Type MS-CHAP for attr Auth-Type
Compiling Auth-Type LDAP for attr Auth-Type
# Loading authorize {...}
Ignoring "sql" (see raddb/mods-available/README.rst)
Compiling Autz-Type New-TLS-Connection for attr Autz-Type
# Loading preacct {...}
# Loading accounting {...}
# Loading post-auth {...}
Compiling Post-Auth-Type REJECT for attr Post-Auth-Type
Compiling Post-Auth-Type Challenge for attr Post-Auth-Type
Compiling Post-Auth-Type Client-Lost for attr Post-Auth-Type
} # server default
server check-eap-tls { # from file
/etc/freeradius/sites-enabled/check-eap-tls
# Loading authorize {...}
} # server check-eap-tls
server inner-tunnel { # from file /etc/freeradius/sites-enabled/inner-tunnel
# Loading authenticate {...}
Compiling Auth-Type PAP for attr Auth-Type
Compiling Auth-Type CHAP for attr Auth-Type
Compiling Auth-Type MS-CHAP for attr Auth-Type
Compiling Auth-Type LDAP for attr Auth-Type
# Loading authorize {...}
Ignoring "ldap" (see raddb/mods-available/README.rst)
# Loading post-proxy {...}
# Loading post-auth {...}
# Skipping contents of 'if' as it is always 'false' --
/etc/freeradius/sites-enabled/inner-tunnel:366
Compiling Post-Auth-Type REJECT for attr Post-Auth-Type
} # server inner-tunnel
radiusd: #### Opening IP addresses and Ports ####
listen {
type = "auth"
ipaddr = 127.0.0.1
port = 18123
}
listen {
type = "auth"
ipaddr = *
port = 1812
limit {
max_connections = 16
lifetime = 0
idle_timeout = 900
}
}
listen {
type = "acct"
ipaddr = *
port = 1813
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
listen {
type = "auth"
ipv6addr = ::
port = 1812
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
listen {
type = "acct"
ipv6addr = ::
port = 1813
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
listen {
type = "auth"
ipaddr = 127.0.0.1
port = 18120
}
Listening on auth address 127.0.0.1 port 18123 bound to server
google-ldap-auth
Listening on auth address * port 1812 bound to server default
Listening on acct address * port 1813 bound to server default
Listening on auth address :: port 1812 bound to server default
Listening on acct address :: port 1813 bound to server default
Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel
Listening on proxy address * port 43959
Listening on proxy address :: port 57843
Ready to process requests
(0) Received Access-Request Id 7 from 71.59.46.3:50614 to
172.17.0.2:1812 length 279
(0) User-Name = "radiustest(a)thecampusway.com"
(0) NAS-IP-Address = 10.0.10.44
(0) NAS-Identifier = "default"
(0) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(0) NAS-Port-Type = Wireless-802.11
(0) Service-Type = Framed-User
(0) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(0) Connect-Info = "CONNECT 0Mbps 802.11b"
(0) Acct-Session-Id = "2CD80055E5E3D815"
(0) Acct-Multi-Session-Id = "C462484392D6AC24"
(0) WLAN-Pairwise-Cipher = 1027076
(0) WLAN-Group-Cipher = 1027076
(0) WLAN-AKM-Suite = 1027077
(0) WLAN-Group-Mgmt-Cipher = 1027078
(0) Filter-Id = "wpa-eap"
(0) Framed-MTU = 1002
(0) EAP-Message =
0x0223002001726164697573746573744074686563616d7075737761792e636f6d
(0) Message-Authenticator = 0x99176599a9049015a131259af64cb46e
(0) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(0) authorize {
(0) policy filter_username {
(0) if (&User-Name) {
(0) if (&User-Name) -> TRUE
(0) if (&User-Name) {
(0) if (&User-Name =~ / /) {
(0) if (&User-Name =~ / /) -> FALSE
(0) if (&User-Name =~ /@[^@]*@/ ) {
(0) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(0) if (&User-Name =~ /\.\./ ) {
(0) if (&User-Name =~ /\.\./ ) -> FALSE
(0) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(0) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(0) if (&User-Name =~ /\.$/) {
(0) if (&User-Name =~ /\.$/) -> FALSE
(0) if (&User-Name =~ /(a)\./) {
(0) if (&User-Name =~ /(a)\./) -> FALSE
(0) } # if (&User-Name) = notfound
(0) } # policy filter_username = notfound
(0) [preprocess] = ok
(0) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(0) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250708
(0) 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/71.59.46.3/auth-detail-20250708
(0) auth_log: EXPAND %t
(0) auth_log: --> Tue Jul 8 17:06:54 2025
(0) [auth_log] = ok
(0) [chap] = noop
(0) [mschap] = noop
(0) [digest] = noop
(0) policy rewrite_called_station_id {
(0) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(0) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(0) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(0) update request {
(0) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(0) --> 78-8A-20-58-6E-4E
(0) &Called-Station-Id := 78-8A-20-58-6E-4E
(0) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(0) --> 0x788A20586E4E
(0) &Called-Station-MAC := 0x788a20586e4e
(0) } # update request = noop
(0) if ("%{8}") {
(0) EXPAND %{8}
(0) --> CampusInternal
(0) if ("%{8}") -> TRUE
(0) if ("%{8}") {
(0) update request {
(0) EXPAND %{8}
(0) --> CampusInternal
(0) &Called-Station-SSID := CampusInternal
(0) } # update request = noop
(0) } # if ("%{8}") = noop
(0) [updated] = updated
(0) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(0) ... skipping else: Preceding "if" was taken
(0) } # policy rewrite_called_station_id = updated
(0) suffix: Checking for suffix after "@"
(0) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(0) suffix: No such realm "thecampusway.com"
(0) [suffix] = noop
(0) eap: Peer sent EAP Response (code 2) ID 35 length 32
(0) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the
rest of authorize
(0) [eap] = ok
(0) } # authorize = ok
(0) Found Auth-Type = eap
(0) # Executing group from file /etc/freeradius/sites-enabled/default
(0) authenticate {
(0) eap: Peer sent packet with method EAP Identity (1)
(0) eap: Using default_eap_type = TTLS
(0) eap: Calling submodule eap_ttls to process data
(0) eap_ttls: (TLS) TTLS -Initiating new session
(0) eap: Sending EAP Request (code 1) ID 36 length 6
(0) eap: EAP session adding &reply:State = 0x03aa1051038e0583
(0) [eap] = handled
(0) } # authenticate = handled
(0) Using Post-Auth-Type Challenge
(0) # Executing group from file /etc/freeradius/sites-enabled/default
(0) Challenge { ... } # empty sub-section is ignored
(0) session-state: Saving cached attributes
(0) Framed-MTU = 994
(0) Sent Access-Challenge Id 7 from 172.17.0.2:1812 to 71.59.46.3:50614
length 64
(0) EAP-Message = 0x012400061520
(0) Message-Authenticator = 0x00000000000000000000000000000000
(0) State = 0x03aa1051038e0583178612c213b1973d
(0) Finished request
Waking up in 4.9 seconds.
(1) Received Access-Request Id 8 from 71.59.46.3:50614 to
172.17.0.2:1812 length 426
(1) User-Name = "radiustest(a)thecampusway.com"
(1) NAS-IP-Address = 10.0.10.44
(1) NAS-Identifier = "default"
(1) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(1) NAS-Port-Type = Wireless-802.11
(1) Service-Type = Framed-User
(1) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(1) Connect-Info = "CONNECT 0Mbps 802.11b"
(1) Acct-Session-Id = "2CD80055E5E3D815"
(1) Acct-Multi-Session-Id = "C462484392D6AC24"
(1) WLAN-Pairwise-Cipher = 1027076
(1) WLAN-Group-Cipher = 1027076
(1) WLAN-AKM-Suite = 1027077
(1) WLAN-Group-Mgmt-Cipher = 1027078
(1) Filter-Id = "wpa-eap"
(1) Framed-MTU = 1002
(1) EAP-Message =
0x022400a115800000009716030100920100008e0303686d502e471b6ec9eeeadb59cbb76ec7ef7cb1fa459defde87ba81a8f1cae83700002c00ffc02cc02bc024c023c00ac009c008c030c02fc028c027c014c013c012009d009c003d003c0035002f000a01000039000a00080006001700180019000b00020100000d00120010040102010501060104030203050306030005000501000000000012000000170000
(1) State = 0x03aa1051038e0583178612c213b1973d
(1) Message-Authenticator = 0x1771f89eede34a34666acd191581c527
(1) Restoring &session-state
(1) &session-state:Framed-MTU = 994
(1) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(1) authorize {
(1) policy filter_username {
(1) if (&User-Name) {
(1) if (&User-Name) -> TRUE
(1) if (&User-Name) {
(1) if (&User-Name =~ / /) {
(1) if (&User-Name =~ / /) -> FALSE
(1) if (&User-Name =~ /@[^@]*@/ ) {
(1) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(1) if (&User-Name =~ /\.\./ ) {
(1) if (&User-Name =~ /\.\./ ) -> FALSE
(1) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(1) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(1) if (&User-Name =~ /\.$/) {
(1) if (&User-Name =~ /\.$/) -> FALSE
(1) if (&User-Name =~ /(a)\./) {
(1) if (&User-Name =~ /(a)\./) -> FALSE
(1) } # if (&User-Name) = notfound
(1) } # policy filter_username = notfound
(1) [preprocess] = ok
(1) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(1) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250708
(1) 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/71.59.46.3/auth-detail-20250708
(1) auth_log: EXPAND %t
(1) auth_log: --> Tue Jul 8 17:06:54 2025
(1) [auth_log] = ok
(1) [chap] = noop
(1) [mschap] = noop
(1) [digest] = noop
(1) policy rewrite_called_station_id {
(1) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(1) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(1) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(1) update request {
(1) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(1) --> 78-8A-20-58-6E-4E
(1) &Called-Station-Id := 78-8A-20-58-6E-4E
(1) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(1) --> 0x788A20586E4E
(1) &Called-Station-MAC := 0x788a20586e4e
(1) } # update request = noop
(1) if ("%{8}") {
(1) EXPAND %{8}
(1) --> CampusInternal
(1) if ("%{8}") -> TRUE
(1) if ("%{8}") {
(1) update request {
(1) EXPAND %{8}
(1) --> CampusInternal
(1) &Called-Station-SSID := CampusInternal
(1) } # update request = noop
(1) } # if ("%{8}") = noop
(1) [updated] = updated
(1) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(1) ... skipping else: Preceding "if" was taken
(1) } # policy rewrite_called_station_id = updated
(1) suffix: Checking for suffix after "@"
(1) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(1) suffix: No such realm "thecampusway.com"
(1) [suffix] = noop
(1) eap: Peer sent EAP Response (code 2) ID 36 length 161
(1) eap: Continuing tunnel setup
(1) [eap] = ok
(1) } # authorize = ok
(1) Found Auth-Type = eap
(1) # Executing group from file /etc/freeradius/sites-enabled/default
(1) authenticate {
(1) eap: Removing EAP session with state 0x03aa1051038e0583
(1) eap: Previous EAP request found for state 0x03aa1051038e0583,
released from the list
(1) eap: Peer sent packet with method EAP TTLS (21)
(1) eap: Calling submodule eap_ttls to process data
(1) eap_ttls: Authenticate
(1) eap_ttls: (TLS) EAP Peer says that the final record size will be 151
bytes
(1) eap_ttls: (TLS) EAP Got all data (151 bytes)
(1) eap_ttls: (TLS) TTLS - Handshake state - before SSL initialization
(1) eap_ttls: (TLS) TTLS - Handshake state - Server before SSL
initialization
(1) eap_ttls: (TLS) TTLS - Handshake state - Server before SSL
initialization
(1) eap_ttls: (TLS) TTLS - recv TLS 1.3 Handshake, ClientHello
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read
client hello
(1) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, ServerHello
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
server hello
(1) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, Certificate
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
certificate
(1) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, ServerKeyExchange
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write key
exchange
(1) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, ServerHelloDone
(1) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
server done
(1) eap_ttls: (TLS) TTLS - Server : Need to read more data: SSLv3/TLS
write server done
(1) eap_ttls: (TLS) TTLS - In Handshake Phase
(1) eap: Sending EAP Request (code 1) ID 37 length 1000
(1) eap: EAP session adding &reply:State = 0x03aa1051028f0583
(1) [eap] = handled
(1) } # authenticate = handled
(1) Using Post-Auth-Type Challenge
(1) # Executing group from file /etc/freeradius/sites-enabled/default
(1) Challenge { ... } # empty sub-section is ignored
(1) session-state: Saving cached attributes
(1) Framed-MTU = 994
(1) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(1) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(1) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(1) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(1) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(1) Sent Access-Challenge Id 8 from 172.17.0.2:1812 to 71.59.46.3:50614
length 1064
(1) EAP-Message =
0x012503e815c000000b9e160303005d02000059030386ec205ce0daf23042da63f9fb8c7297e6cd39e952194965444f574e47524401204d51560031fda57dc5cdbc1e121c6f4529b6925c897065fd9a361a3a00c33ef8c030000011ff01000100000b0004030001020017000016030309dc0b0009d80009d500049e3082049a30820382a003020102020101300d06092a864886f70d01010b05003081a4310b30090603550406130255533110300e06035504080c0747656f726769613117301506035504070c0e506561636874726565204369747931183016060355040a0c0f5468652043616d7075732c204c4c433125302306092a864886f70d010901161661646d696e4074686563616d7075737761792e636f6d3129302706035504030c205468652043616d70757320436572746966696361746520417574686f72697479301e170d3235303632343230333635365a170d3236303632343230333635365a308181310b30090603550406130255533110300e0603
(1) Message-Authenticator = 0x00000000000000000000000000000000
(1) State = 0x03aa1051028f0583178612c213b1973d
(1) Finished request
Waking up in 4.9 seconds.
(2) Received Access-Request Id 9 from 71.59.46.3:50614 to
172.17.0.2:1812 length 271
(2) User-Name = "radiustest(a)thecampusway.com"
(2) NAS-IP-Address = 10.0.10.44
(2) NAS-Identifier = "default"
(2) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(2) NAS-Port-Type = Wireless-802.11
(2) Service-Type = Framed-User
(2) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(2) Connect-Info = "CONNECT 0Mbps 802.11b"
(2) Acct-Session-Id = "2CD80055E5E3D815"
(2) Acct-Multi-Session-Id = "C462484392D6AC24"
(2) WLAN-Pairwise-Cipher = 1027076
(2) WLAN-Group-Cipher = 1027076
(2) WLAN-AKM-Suite = 1027077
(2) WLAN-Group-Mgmt-Cipher = 1027078
(2) Filter-Id = "wpa-eap"
(2) Framed-MTU = 1002
(2) EAP-Message = 0x022500061500
(2) State = 0x03aa1051028f0583178612c213b1973d
(2) Message-Authenticator = 0xc06f6349e2aa457f3ba04bf1b4094885
(2) Restoring &session-state
(2) &session-state:Framed-MTU = 994
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(2) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(2) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(2) authorize {
(2) policy filter_username {
(2) if (&User-Name) {
(2) if (&User-Name) -> TRUE
(2) if (&User-Name) {
(2) if (&User-Name =~ / /) {
(2) if (&User-Name =~ / /) -> FALSE
(2) if (&User-Name =~ /@[^@]*@/ ) {
(2) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(2) if (&User-Name =~ /\.\./ ) {
(2) if (&User-Name =~ /\.\./ ) -> FALSE
(2) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(2) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(2) if (&User-Name =~ /\.$/) {
(2) if (&User-Name =~ /\.$/) -> FALSE
(2) if (&User-Name =~ /(a)\./) {
(2) if (&User-Name =~ /(a)\./) -> FALSE
(2) } # if (&User-Name) = notfound
(2) } # policy filter_username = notfound
(2) [preprocess] = ok
(2) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(2) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250708
(2) 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/71.59.46.3/auth-detail-20250708
(2) auth_log: EXPAND %t
(2) auth_log: --> Tue Jul 8 17:06:54 2025
(2) [auth_log] = ok
(2) [chap] = noop
(2) [mschap] = noop
(2) [digest] = noop
(2) policy rewrite_called_station_id {
(2) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(2) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(2) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(2) update request {
(2) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(2) --> 78-8A-20-58-6E-4E
(2) &Called-Station-Id := 78-8A-20-58-6E-4E
(2) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(2) --> 0x788A20586E4E
(2) &Called-Station-MAC := 0x788a20586e4e
(2) } # update request = noop
(2) if ("%{8}") {
(2) EXPAND %{8}
(2) --> CampusInternal
(2) if ("%{8}") -> TRUE
(2) if ("%{8}") {
(2) update request {
(2) EXPAND %{8}
(2) --> CampusInternal
(2) &Called-Station-SSID := CampusInternal
(2) } # update request = noop
(2) } # if ("%{8}") = noop
(2) [updated] = updated
(2) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(2) ... skipping else: Preceding "if" was taken
(2) } # policy rewrite_called_station_id = updated
(2) suffix: Checking for suffix after "@"
(2) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(2) suffix: No such realm "thecampusway.com"
(2) [suffix] = noop
(2) eap: Peer sent EAP Response (code 2) ID 37 length 6
(2) eap: Continuing tunnel setup
(2) [eap] = ok
(2) } # authorize = ok
(2) Found Auth-Type = eap
(2) # Executing group from file /etc/freeradius/sites-enabled/default
(2) authenticate {
(2) eap: Removing EAP session with state 0x03aa1051028f0583
(2) eap: Previous EAP request found for state 0x03aa1051028f0583,
released from the list
(2) eap: Peer sent packet with method EAP TTLS (21)
(2) eap: Calling submodule eap_ttls to process data
(2) eap_ttls: Authenticate
(2) eap_ttls: (TLS) Peer ACKed our handshake fragment
(2) eap: Sending EAP Request (code 1) ID 38 length 1000
(2) eap: EAP session adding &reply:State = 0x03aa1051018c0583
(2) [eap] = handled
(2) } # authenticate = handled
(2) Using Post-Auth-Type Challenge
(2) # Executing group from file /etc/freeradius/sites-enabled/default
(2) Challenge { ... } # empty sub-section is ignored
(2) session-state: Saving cached attributes
(2) Framed-MTU = 994
(2) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(2) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(2) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(2) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(2) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(2) Sent Access-Challenge Id 9 from 172.17.0.2:1812 to 71.59.46.3:50614
length 1064
(2) EAP-Message =
0x012603e815c000000b9e551d23041830168014daadca16512273368faeee38e3d1448d166bf928300d06092a864886f70d01010b050003820101001778615f4e67853c306a035d59f5b19f9e78ffeac70a76e18f5022a5907dbc2e37291333d8d0592698632662d9d8e33601a46a0b9193ac86c60487d4d9a0fdb47bc36ca4a9df0537d61eaa6645f1b4815362105cbcc8a7fdffc1e5c909d16ab4c55bef8abb78c4abf703fb70c5233e2f17e2872dc11b30d2264df6398615c6ddb3c6e4d484b11134e73779a853dc0a3a1c83396d979ddd74c188d14a6602009a57f1cd9060fc421372d6daa1134515ff124d47adab6017f8a3793bfda9baf3b47f31d37d743232c82e50c97125ce3684e6b1aa39720f907b5ccdcfddee967daa37e783b7e70cb342837cb95d55570d509daef58e0d892216d1cd01d09c9354c30005313082052d30820415a003020102021453b0418eacdfd3ef23e70a35243230ee4b124c8d300d06092a864886f70d01010b05003081a4310b3009
(2) Message-Authenticator = 0x00000000000000000000000000000000
(2) State = 0x03aa1051018c0583178612c213b1973d
(2) Finished request
Waking up in 4.9 seconds.
(3) Received Access-Request Id 10 from 71.59.46.3:50614 to
172.17.0.2:1812 length 271
(3) User-Name = "radiustest(a)thecampusway.com"
(3) NAS-IP-Address = 10.0.10.44
(3) NAS-Identifier = "default"
(3) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(3) NAS-Port-Type = Wireless-802.11
(3) Service-Type = Framed-User
(3) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(3) Connect-Info = "CONNECT 0Mbps 802.11b"
(3) Acct-Session-Id = "2CD80055E5E3D815"
(3) Acct-Multi-Session-Id = "C462484392D6AC24"
(3) WLAN-Pairwise-Cipher = 1027076
(3) WLAN-Group-Cipher = 1027076
(3) WLAN-AKM-Suite = 1027077
(3) WLAN-Group-Mgmt-Cipher = 1027078
(3) Filter-Id = "wpa-eap"
(3) Framed-MTU = 1002
(3) EAP-Message = 0x022600061500
(3) State = 0x03aa1051018c0583178612c213b1973d
(3) Message-Authenticator = 0xf938181e70d289aaa9c97c49842228ee
(3) Restoring &session-state
(3) &session-state:Framed-MTU = 994
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(3) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(3) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(3) authorize {
(3) policy filter_username {
(3) if (&User-Name) {
(3) if (&User-Name) -> TRUE
(3) if (&User-Name) {
(3) if (&User-Name =~ / /) {
(3) if (&User-Name =~ / /) -> FALSE
(3) if (&User-Name =~ /@[^@]*@/ ) {
(3) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(3) if (&User-Name =~ /\.\./ ) {
(3) if (&User-Name =~ /\.\./ ) -> FALSE
(3) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(3) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(3) if (&User-Name =~ /\.$/) {
(3) if (&User-Name =~ /\.$/) -> FALSE
(3) if (&User-Name =~ /(a)\./) {
(3) if (&User-Name =~ /(a)\./) -> FALSE
(3) } # if (&User-Name) = notfound
(3) } # policy filter_username = notfound
(3) [preprocess] = ok
(3) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(3) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250708
(3) 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/71.59.46.3/auth-detail-20250708
(3) auth_log: EXPAND %t
(3) auth_log: --> Tue Jul 8 17:06:54 2025
(3) [auth_log] = ok
(3) [chap] = noop
(3) [mschap] = noop
(3) [digest] = noop
(3) policy rewrite_called_station_id {
(3) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(3) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(3) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(3) update request {
(3) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(3) --> 78-8A-20-58-6E-4E
(3) &Called-Station-Id := 78-8A-20-58-6E-4E
(3) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(3) --> 0x788A20586E4E
(3) &Called-Station-MAC := 0x788a20586e4e
(3) } # update request = noop
(3) if ("%{8}") {
(3) EXPAND %{8}
(3) --> CampusInternal
(3) if ("%{8}") -> TRUE
(3) if ("%{8}") {
(3) update request {
(3) EXPAND %{8}
(3) --> CampusInternal
(3) &Called-Station-SSID := CampusInternal
(3) } # update request = noop
(3) } # if ("%{8}") = noop
(3) [updated] = updated
(3) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(3) ... skipping else: Preceding "if" was taken
(3) } # policy rewrite_called_station_id = updated
(3) suffix: Checking for suffix after "@"
(3) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(3) suffix: No such realm "thecampusway.com"
(3) [suffix] = noop
(3) eap: Peer sent EAP Response (code 2) ID 38 length 6
(3) eap: Continuing tunnel setup
(3) [eap] = ok
(3) } # authorize = ok
(3) Found Auth-Type = eap
(3) # Executing group from file /etc/freeradius/sites-enabled/default
(3) authenticate {
(3) eap: Removing EAP session with state 0x03aa1051018c0583
(3) eap: Previous EAP request found for state 0x03aa1051018c0583,
released from the list
(3) eap: Peer sent packet with method EAP TTLS (21)
(3) eap: Calling submodule eap_ttls to process data
(3) eap_ttls: Authenticate
(3) eap_ttls: (TLS) Peer ACKed our handshake fragment
(3) eap: Sending EAP Request (code 1) ID 39 length 1000
(3) eap: EAP session adding &reply:State = 0x03aa1051008d0583
(3) [eap] = handled
(3) } # authenticate = handled
(3) Using Post-Auth-Type Challenge
(3) # Executing group from file /etc/freeradius/sites-enabled/default
(3) Challenge { ... } # empty sub-section is ignored
(3) session-state: Saving cached attributes
(3) Framed-MTU = 994
(3) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(3) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(3) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(3) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(3) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(3) Sent Access-Challenge Id 10 from 172.17.0.2:1812 to 71.59.46.3:50614
length 1064
(3) EAP-Message =
0x012703e815c000000b9ebcf130fd82a66d6bac241c75a83cb5eab479b81361e8610203010001a38201533082014f301d0603551d0e04160414daadca16512273368faeee38e3d1448d166bf9283081e40603551d230481dc3081d98014daadca16512273368faeee38e3d1448d166bf928a181aaa481a73081a4310b30090603550406130255533110300e06035504080c0747656f726769613117301506035504070c0e506561636874726565204369747931183016060355040a0c0f5468652043616d7075732c204c4c433125302306092a864886f70d010901161661646d696e4074686563616d7075737761792e636f6d3129302706035504030c205468652043616d70757320436572746966696361746520417574686f72697479821453b0418eacdfd3ef23e70a35243230ee4b124c8d300f0603551d130101ff040530030101ff30360603551d1f042f302d302ba029a0278625687474703a2f2f7777772e6578616d706c652e6f72672f6578616d706c655f
(3) Message-Authenticator = 0x00000000000000000000000000000000
(3) State = 0x03aa1051008d0583178612c213b1973d
(3) Finished request
Waking up in 4.8 seconds.
(4) Received Access-Request Id 11 from 71.59.46.3:50614 to
172.17.0.2:1812 length 271
(4) User-Name = "radiustest(a)thecampusway.com"
(4) NAS-IP-Address = 10.0.10.44
(4) NAS-Identifier = "default"
(4) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(4) NAS-Port-Type = Wireless-802.11
(4) Service-Type = Framed-User
(4) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(4) Connect-Info = "CONNECT 0Mbps 802.11b"
(4) Acct-Session-Id = "2CD80055E5E3D815"
(4) Acct-Multi-Session-Id = "C462484392D6AC24"
(4) WLAN-Pairwise-Cipher = 1027076
(4) WLAN-Group-Cipher = 1027076
(4) WLAN-AKM-Suite = 1027077
(4) WLAN-Group-Mgmt-Cipher = 1027078
(4) Filter-Id = "wpa-eap"
(4) Framed-MTU = 1002
(4) EAP-Message = 0x022700061500
(4) State = 0x03aa1051008d0583178612c213b1973d
(4) Message-Authenticator = 0x71f254904fce529fa0fc4e9fe4e0420e
(4) Restoring &session-state
(4) &session-state:Framed-MTU = 994
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(4) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(4) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(4) authorize {
(4) policy filter_username {
(4) if (&User-Name) {
(4) if (&User-Name) -> TRUE
(4) if (&User-Name) {
(4) if (&User-Name =~ / /) {
(4) if (&User-Name =~ / /) -> FALSE
(4) if (&User-Name =~ /@[^@]*@/ ) {
(4) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(4) if (&User-Name =~ /\.\./ ) {
(4) if (&User-Name =~ /\.\./ ) -> FALSE
(4) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(4) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(4) if (&User-Name =~ /\.$/) {
(4) if (&User-Name =~ /\.$/) -> FALSE
(4) if (&User-Name =~ /(a)\./) {
(4) if (&User-Name =~ /(a)\./) -> FALSE
(4) } # if (&User-Name) = notfound
(4) } # policy filter_username = notfound
(4) [preprocess] = ok
(4) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(4) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250708
(4) 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/71.59.46.3/auth-detail-20250708
(4) auth_log: EXPAND %t
(4) auth_log: --> Tue Jul 8 17:06:54 2025
(4) [auth_log] = ok
(4) [chap] = noop
(4) [mschap] = noop
(4) [digest] = noop
(4) policy rewrite_called_station_id {
(4) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(4) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(4) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(4) update request {
(4) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(4) --> 78-8A-20-58-6E-4E
(4) &Called-Station-Id := 78-8A-20-58-6E-4E
(4) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(4) --> 0x788A20586E4E
(4) &Called-Station-MAC := 0x788a20586e4e
(4) } # update request = noop
(4) if ("%{8}") {
(4) EXPAND %{8}
(4) --> CampusInternal
(4) if ("%{8}") -> TRUE
(4) if ("%{8}") {
(4) update request {
(4) EXPAND %{8}
(4) --> CampusInternal
(4) &Called-Station-SSID := CampusInternal
(4) } # update request = noop
(4) } # if ("%{8}") = noop
(4) [updated] = updated
(4) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(4) ... skipping else: Preceding "if" was taken
(4) } # policy rewrite_called_station_id = updated
(4) suffix: Checking for suffix after "@"
(4) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(4) suffix: No such realm "thecampusway.com"
(4) [suffix] = noop
(4) eap: Peer sent EAP Response (code 2) ID 39 length 6
(4) eap: Continuing tunnel setup
(4) [eap] = ok
(4) } # authorize = ok
(4) Found Auth-Type = eap
(4) # Executing group from file /etc/freeradius/sites-enabled/default
(4) authenticate {
(4) eap: Removing EAP session with state 0x03aa1051008d0583
(4) eap: Previous EAP request found for state 0x03aa1051008d0583,
released from the list
(4) eap: Peer sent packet with method EAP TTLS (21)
(4) eap: Calling submodule eap_ttls to process data
(4) eap_ttls: Authenticate
(4) eap_ttls: (TLS) Peer ACKed our handshake fragment
(4) eap: Sending EAP Request (code 1) ID 40 length 14
(4) eap: EAP session adding &reply:State = 0x03aa105107820583
(4) [eap] = handled
(4) } # authenticate = handled
(4) Using Post-Auth-Type Challenge
(4) # Executing group from file /etc/freeradius/sites-enabled/default
(4) Challenge { ... } # empty sub-section is ignored
(4) session-state: Saving cached attributes
(4) Framed-MTU = 994
(4) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(4) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(4) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(4) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(4) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(4) Sent Access-Challenge Id 11 from 172.17.0.2:1812 to 71.59.46.3:50614
length 72
(4) EAP-Message = 0x0128000e158000000b9e0e000000
(4) Message-Authenticator = 0x00000000000000000000000000000000
(4) State = 0x03aa105107820583178612c213b1973d
(4) Finished request
Waking up in 4.8 seconds.
(5) Received Access-Request Id 12 from 71.59.46.3:50614 to
172.17.0.2:1812 length 401
(5) User-Name = "radiustest(a)thecampusway.com"
(5) NAS-IP-Address = 10.0.10.44
(5) NAS-Identifier = "default"
(5) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(5) NAS-Port-Type = Wireless-802.11
(5) Service-Type = Framed-User
(5) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(5) Connect-Info = "CONNECT 0Mbps 802.11b"
(5) Acct-Session-Id = "2CD80055E5E3D815"
(5) Acct-Multi-Session-Id = "C462484392D6AC24"
(5) WLAN-Pairwise-Cipher = 1027076
(5) WLAN-Group-Cipher = 1027076
(5) WLAN-AKM-Suite = 1027077
(5) WLAN-Group-Mgmt-Cipher = 1027078
(5) Filter-Id = "wpa-eap"
(5) Framed-MTU = 1002
(5) EAP-Message =
0x0228008815800000007e1603030046100000424104f87f7bdd5321da1823aaedf3cd09d62b6e5d21256c9099da611acbae6d8d1723ab1f895e34a14f549ad6a9172d7166bccf01d2eaf59748b1d89f3e0017e8dcf314030300010116030300287008d26c1da49b8327023ccbee1e649fb5f095b37bc5a5a14e41e0478fce1a9026e5999184b3920d
(5) State = 0x03aa105107820583178612c213b1973d
(5) Message-Authenticator = 0x96854403b1ef6d478ee71a044a447b6e
(5) Restoring &session-state
(5) &session-state:Framed-MTU = 994
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(5) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(5) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(5) authorize {
(5) policy filter_username {
(5) if (&User-Name) {
(5) if (&User-Name) -> TRUE
(5) if (&User-Name) {
(5) if (&User-Name =~ / /) {
(5) if (&User-Name =~ / /) -> FALSE
(5) if (&User-Name =~ /@[^@]*@/ ) {
(5) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(5) if (&User-Name =~ /\.\./ ) {
(5) if (&User-Name =~ /\.\./ ) -> FALSE
(5) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(5) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(5) if (&User-Name =~ /\.$/) {
(5) if (&User-Name =~ /\.$/) -> FALSE
(5) if (&User-Name =~ /(a)\./) {
(5) if (&User-Name =~ /(a)\./) -> FALSE
(5) } # if (&User-Name) = notfound
(5) } # policy filter_username = notfound
(5) [preprocess] = ok
(5) auth_log: EXPAND
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d
(5) auth_log: -->
/var/log/freeradius/radacct/71.59.46.3/auth-detail-20250708
(5) 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/71.59.46.3/auth-detail-20250708
(5) auth_log: EXPAND %t
(5) auth_log: --> Tue Jul 8 17:06:54 2025
(5) [auth_log] = ok
(5) [chap] = noop
(5) [mschap] = noop
(5) [digest] = noop
(5) policy rewrite_called_station_id {
(5) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(5) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(5) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(5) update request {
(5) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(5) --> 78-8A-20-58-6E-4E
(5) &Called-Station-Id := 78-8A-20-58-6E-4E
(5) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(5) --> 0x788A20586E4E
(5) &Called-Station-MAC := 0x788a20586e4e
(5) } # update request = noop
(5) if ("%{8}") {
(5) EXPAND %{8}
(5) --> CampusInternal
(5) if ("%{8}") -> TRUE
(5) if ("%{8}") {
(5) update request {
(5) EXPAND %{8}
(5) --> CampusInternal
(5) &Called-Station-SSID := CampusInternal
(5) } # update request = noop
(5) } # if ("%{8}") = noop
(5) [updated] = updated
(5) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(5) ... skipping else: Preceding "if" was taken
(5) } # policy rewrite_called_station_id = updated
(5) suffix: Checking for suffix after "@"
(5) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(5) suffix: No such realm "thecampusway.com"
(5) [suffix] = noop
(5) eap: Peer sent EAP Response (code 2) ID 40 length 136
(5) eap: Continuing tunnel setup
(5) [eap] = ok
(5) } # authorize = ok
(5) Found Auth-Type = eap
(5) # Executing group from file /etc/freeradius/sites-enabled/default
(5) authenticate {
(5) eap: Removing EAP session with state 0x03aa105107820583
(5) eap: Previous EAP request found for state 0x03aa105107820583,
released from the list
(5) eap: Peer sent packet with method EAP TTLS (21)
(5) eap: Calling submodule eap_ttls to process data
(5) eap_ttls: Authenticate
(5) eap_ttls: (TLS) EAP Peer says that the final record size will be 126
bytes
(5) eap_ttls: (TLS) EAP Got all data (126 bytes)
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
server done
(5) eap_ttls: (TLS) TTLS - recv TLS 1.2 Handshake, ClientKeyExchange
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read
client key exchange
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read
change cipher spec
(5) eap_ttls: (TLS) TTLS - recv TLS 1.2 Handshake, Finished
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS read finished
(5) eap_ttls: (TLS) TTLS - send TLS 1.2 ChangeCipherSpec
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write
change cipher spec
(5) eap_ttls: (TLS) TTLS - send TLS 1.2 Handshake, Finished
(5) eap_ttls: (TLS) TTLS - Handshake state - Server SSLv3/TLS write finished
(5) eap_ttls: Serialising session
4d51560031fda57dc5cdbc1e121c6f4529b6925c897065fd9a361a3a00c33ef8, and
storing in cache
(5) eap_ttls: WARNING: (TLS) TTLS - Wrote session
4d51560031fda57dc5cdbc1e121c6f4529b6925c897065fd9a361a3a00c33ef8 to
/var/log/freeradius/tlscache/4d51560031fda57dc5cdbc1e121c6f4529b6925c897065fd9a361a3a00c33ef8.asn1
(147 bytes)
(5) eap_ttls: (TLS) TTLS - Handshake state - SSL negotiation finished
successfully
(5) eap_ttls: (TLS) TTLS - Connection Established
(5) eap_ttls: TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(5) eap_ttls: TLS-Session-Version = "TLS 1.2"
(5) eap: Sending EAP Request (code 1) ID 41 length 61
(5) eap: EAP session adding &reply:State = 0x03aa105106830583
(5) [eap] = handled
(5) } # authenticate = handled
(5) Using Post-Auth-Type Challenge
(5) # Executing group from file /etc/freeradius/sites-enabled/default
(5) Challenge { ... } # empty sub-section is ignored
(5) session-state: Saving cached attributes
(5) Framed-MTU = 994
(5) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.3 Handshake,
ClientHello"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHello"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Certificate"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerKeyExchange"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
ServerHelloDone"
(5) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.2 Handshake,
ClientKeyExchange"
(5) TLS-Session-Information = "(TLS) TTLS - recv TLS 1.2 Handshake,
Finished"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 ChangeCipherSpec"
(5) TLS-Session-Information = "(TLS) TTLS - send TLS 1.2 Handshake,
Finished"
(5) TLS-Cache-Filename =
"/var/log/freeradius/tlscache/4d51560031fda57dc5cdbc1e121c6f4529b6925c897065fd9a361a3a00c33ef8.asn1"
(5) TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(5) TLS-Session-Version = "TLS 1.2"
(5) Sent Access-Challenge Id 12 from 172.17.0.2:1812 to 71.59.46.3:50614
length 119
(5) EAP-Message =
0x0129003d1580000000331403030001011603030028b19efd79a55f2de25c6bcfc50e44e1b2a96b72e072a66d3acbc1d2cebe5484dbe9c3465072c68254
(5) Message-Authenticator = 0x00000000000000000000000000000000
(5) State = 0x03aa105106830583178612c213b1973d
(5) Finished request
Waking up in 4.7 seconds.
(6) Received Access-Request Id 13 from 71.59.46.3:50614 to
172.17.0.2:1812 length 344
(6) User-Name = "radiustest(a)thecampusway.com"
(6) NAS-IP-Address = 10.0.10.44
(6) NAS-Identifier = "default"
(6) Called-Station-Id = "78-8A-20-58-6E-4E:CampusInternal"
(6) NAS-Port-Type = Wireless-802.11
(6) Service-Type = Framed-User
(6) Calling-Station-Id = "30-35-AD-A5-B9-A6"
(6) Connect-Info = "CONNECT 0Mbps 802.11b"
(6) Acct-Session-Id = "2CD80055E5E3D815"
(6) Acct-Multi-Session-Id = "C462484392D6AC24"
(6) WLAN-Pairwise-Cipher = 1027076
(6) WLAN-Group-Cipher = 1027076
(6) WLAN-AKM-Suite = 1027077
(6) WLAN-Group-Mgmt-Cipher = 1027078
(6) Filter-Id = "wpa-eap"
(6) Framed-MTU = 1002
(6) EAP-Message =
0x0229004f15800000004517030300407008d26c1da49b8423d36f8168b44564d00f207874cc5155c890d6d428f0bef5ddb87ec8c41d6f3346dd5a8671ef0c9ff4cac23e75b2e0947cc319849b59dfdd
(6) State = 0x03aa105106830583178612c213b1973d
(6) Message-Authenticator = 0x644e24b9d6a4b895fa9352a9bbf6284e
(6) Restoring &session-state
(6) &session-state:Framed-MTU = 994
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.3 Handshake, ClientHello"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHello"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Certificate"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerKeyExchange"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, ServerHelloDone"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.2 Handshake, ClientKeyExchange"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - recv TLS
1.2 Handshake, Finished"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 ChangeCipherSpec"
(6) &session-state:TLS-Session-Information = "(TLS) TTLS - send TLS
1.2 Handshake, Finished"
(6) &session-state:TLS-Cache-Filename =
"/var/log/freeradius/tlscache/4d51560031fda57dc5cdbc1e121c6f4529b6925c897065fd9a361a3a00c33ef8.asn1"
(6) &session-state:TLS-Session-Cipher-Suite =
"ECDHE-RSA-AES256-GCM-SHA384"
(6) &session-state:TLS-Session-Version = "TLS 1.2"
(6) # Executing section authorize from file
/etc/freeradius/sites-enabled/default
(6) authorize {
(6) policy filter_username {
(6) if (&User-Name) {
(6) if (&User-Name) -> TRUE
(6) if (&User-Name) {
(6) if (&User-Name =~ / /) {
(6) if (&User-Name =~ / /) -> FALSE
(6) if (&User-Name =~ /@[^@]*@/ ) {
(6) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(6) if (&User-Name =~ /\.\./ ) {
(6) if (&User-Name =~ /\.\./ ) -> FALSE
(6) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(6) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(6) if (&User-Name =~ /\.$/) {
(6) if (&User-Name =~ /\.$/) -> FALSE
(6) if (&User-Name =~ /(a)\./) {
(6) if (&User-Name =~ /(a)\./) -> FALSE
(6) } # if (&User-Name) = notfound
(6) } # policy filter_username = notfound
(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/71.59.46.3/auth-detail-20250708
(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/71.59.46.3/auth-detail-20250708
(6) auth_log: EXPAND %t
(6) auth_log: --> Tue Jul 8 17:06:54 2025
(6) [auth_log] = ok
(6) [chap] = noop
(6) [mschap] = noop
(6) [digest] = noop
(6) policy rewrite_called_station_id {
(6) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(6) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
-> TRUE
(6) if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
{
(6) update request {
(6) EXPAND %{toupper:%{1}-%{2}-%{3}-%{4}-%{5}-%{6}}
(6) --> 78-8A-20-58-6E-4E
(6) &Called-Station-Id := 78-8A-20-58-6E-4E
(6) EXPAND 0x%{toupper:%{1}%{2}%{3}%{4}%{5}%{6}}
(6) --> 0x788A20586E4E
(6) &Called-Station-MAC := 0x788a20586e4e
(6) } # update request = noop
(6) if ("%{8}") {
(6) EXPAND %{8}
(6) --> CampusInternal
(6) if ("%{8}") -> TRUE
(6) if ("%{8}") {
(6) update request {
(6) EXPAND %{8}
(6) --> CampusInternal
(6) &Called-Station-SSID := CampusInternal
(6) } # update request = noop
(6) } # if ("%{8}") = noop
(6) [updated] = updated
(6) } # if (&Called-Station-Id && (&Called-Station-Id =~
/^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i))
= updated
(6) ... skipping else: Preceding "if" was taken
(6) } # policy rewrite_called_station_id = updated
(6) suffix: Checking for suffix after "@"
(6) suffix: Looking up realm "thecampusway.com" for User-Name =
"radiustest(a)thecampusway.com"
(6) suffix: No such realm "thecampusway.com"
(6) [suffix] = noop
(6) eap: Peer sent EAP Response (code 2) ID 41 length 79
(6) eap: Continuing tunnel setup
(6) [eap] = ok
(6) } # authorize = ok
(6) Found Auth-Type = eap
(6) # Executing group from file /etc/freeradius/sites-enabled/default
(6) authenticate {
(6) eap: Removing EAP session with state 0x03aa105106830583
(6) eap: Previous EAP request found for state 0x03aa105106830583,
released from the list
(6) eap: Peer sent packet with method EAP TTLS (21)
(6) eap: Calling submodule eap_ttls to process data
(6) eap_ttls: Authenticate
(6) eap_ttls: (TLS) EAP Peer says that the final record size will be 69
bytes
(6) eap_ttls: (TLS) EAP Got all data (69 bytes)
(6) eap_ttls: Session established. Proceeding to decode tunneled attributes
(6) eap_ttls: Got tunneled request
(6) eap_ttls: EAP-Message =
0x0200002001726164697573746573744074686563616d7075737761792e636f6d
(6) eap_ttls: FreeRADIUS-Proxied-To = 127.0.0.1
(6) eap_ttls: Got tunneled identity of radiustest(a)thecampusway.com
(6) eap_ttls: Setting default EAP type for tunneled EAP session
(6) eap_ttls: Sending tunneled request
(6) Virtual server google-ldap-auth received request
(6) EAP-Message =
0x0200002001726164697573746573744074686563616d7075737761792e636f6d
(6) FreeRADIUS-Proxied-To = 127.0.0.1
(6) User-Name = "radiustest(a)thecampusway.com"
(6) WARNING: Outer and inner identities are the same. User privacy is
compromised.
(6) server google-ldap-auth {
(6) # Executing section authorize from file
/etc/freeradius/sites-enabled/google-ldap-auth
(6) authorize {
(6) policy filter_username {
(6) if (&User-Name) {
(6) if (&User-Name) -> TRUE
(6) if (&User-Name) {
(6) if (&User-Name =~ / /) {
(6) if (&User-Name =~ / /) -> FALSE
(6) if (&User-Name =~ /@[^@]*@/ ) {
(6) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(6) if (&User-Name =~ /\.\./ ) {
(6) if (&User-Name =~ /\.\./ ) -> FALSE
(6) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/)) {
(6) if ((&User-Name =~ /@/) && (&User-Name !~ /(a)(.+)\.(.+)$/))
-> FALSE
(6) if (&User-Name =~ /\.$/) {
(6) if (&User-Name =~ /\.$/) -> FALSE
(6) if (&User-Name =~ /(a)\./) {
(6) if (&User-Name =~ /(a)\./) -> FALSE
(6) } # if (&User-Name) = notfound
(6) } # policy filter_username = notfound
(6) policy filter_inner_identity {
(6) if (!&outer.request:User-Name || !&User-Name) {
(6) if (!&outer.request:User-Name || !&User-Name) -> FALSE
(6) if (&outer.request:User-Name != &User-Name) {
(6) if (&outer.request:User-Name != &User-Name) -> FALSE
(6) } # policy filter_inner_identity = notfound
(6) policy split_username_nai {
(6) if (&User-Name && (&User-Name =~
/^([^@]*)(@([-[:alnum:]]+\.[-[:alnum:].]+))?$/)) {
(6) if (&User-Name && (&User-Name =~
/^([^@]*)(@([-[:alnum:]]+\.[-[:alnum:].]+))?$/)) -> TRUE
(6) if (&User-Name && (&User-Name =~
/^([^@]*)(@([-[:alnum:]]+\.[-[:alnum:].]+))?$/)) {
(6) update request {
(6) EXPAND %{1}
(6) --> radiustest
(6) &Stripped-User-Name := radiustest
(6) } # update request = noop
(6) if ("%{3}" != '') {
(6) EXPAND %{3}
(6) --> thecampusway.com
(6) if ("%{3}" != '') -> TRUE
(6) if ("%{3}" != '') {
(6) update request {
(6) EXPAND %{3}
(6) --> thecampusway.com
(6) &Stripped-User-Domain = thecampusway.com
(6) } # update request = noop
(6) } # if ("%{3}" != '') = noop
(6) [updated] = updated
(6) } # if (&User-Name && (&User-Name =~
/^([^@]*)(@([-[:alnum:]]+\.[-[:alnum:].]+))?$/)) = updated
(6) ... skipping else: Preceding "if" was taken
(6) } # policy split_username_nai = updated
(6) update control {
(6) &Cache-Status-Only := yes
(6) } # update control = noop
(6) cache_auth_accept: EXPAND
%{md5:%{%{Stripped-User-Name}:-%{User-Name}}%{User-Password}}
(6) cache_auth_accept: --> 8490f51734159039b7dd95debfe526bc
(6) cache_auth_accept: No cache entry found for
"8490f51734159039b7dd95debfe526bc"
(6) [cache_auth_accept] = notfound
(6) if (ok) {
(6) if (ok) -> FALSE
(6) update control {
(6) &Cache-Status-Only := yes
(6) } # update control = noop
(6) cache_auth_reject: EXPAND
%{md5:%{Calling-Station-Id}%{Stripped-User-Name}%{User-Password}}
(6) cache_auth_reject: --> 8490f51734159039b7dd95debfe526bc
(6) cache_auth_reject: No cache entry found for
"8490f51734159039b7dd95debfe526bc"
(6) [cache_auth_reject] = notfound
(6) if (ok) {
(6) if (ok) -> FALSE
rlm_ldap (ldap_google): Reserved connection (0)
(6) ldap_google: EXPAND (uid=%{%{Stripped-User-Name}:-%{User-Name}})
(6) ldap_google: --> (uid=radiustest)
(6) ldap_google: Performing search in "ou=Users,dc=thecampusway,dc=com"
with filter "(uid=radiustest)", scope "sub"
(6) ldap_google: Waiting for search result...
(6) ldap_google: User object found at DN
"uid=radiustest,ou=Staff,ou=Users,dc=thecampusway,dc=com"
(6) ldap_google: Adding cacheable user object memberships
(6) ldap_google: &control:LDAP-Cached-Membership +=
"cn=classroom_teachers,ou=Groups,dc=thecampusway,dc=com"
(6) ldap_google: Skipping caching group objects as directive
'group.membership_filter' is not set
(6) ldap_google: Processing user attributes
rlm_ldap (ldap_google): Released connection (0)
Need more connections to reach 10 spares
rlm_ldap (ldap_google): Opening additional connection (5), 1 of 27
pending slots used
rlm_ldap (ldap_google): Connecting to ldaps://ldap.google.com:636
rlm_ldap (ldap_google): Waiting for bind result...
rlm_ldap (ldap_google): Bind successful
rlm_ldap (ldap_google): Closing expired connection (4) - Hit
idle_timeout limit
rlm_ldap (ldap_google): Closing expired connection (3) - Hit
idle_timeout limit
rlm_ldap (ldap_google): Closing expired connection (2) - Hit
idle_timeout limit
rlm_ldap (ldap_google): You probably need to lower "min"
rlm_ldap (ldap_google): Closing expired connection (1) - Hit
idle_timeout limit
(6) [ldap_google] = ok
(6) if (&User-Password && !control:Auth-Type) {
(6) if (&User-Password && !control:Auth-Type) -> FALSE
(6) } # authorize = updated
(6) ERROR: No Auth-Type found: rejecting the user via Post-Auth-Type =
Reject
(6) Failed to authenticate the user
(6) Using Post-Auth-Type Reject
(6) # Executing group from file
/etc/freeradius/sites-enabled/google-ldap-auth
(6) Post-Auth-Type REJECT {
(6) attr_filter.access_reject: EXPAND %{User-Name}
(6) attr_filter.access_reject: --> radiustest(a)thecampusway.com
(6) attr_filter.access_reject: Matched entry DEFAULT at line 11
(6) [attr_filter.access_reject] = updated
(6) if (&control:Auth-Type == ldap) {
(6) ERROR: Failed retrieving values required to evaluate condition
(6) update control {
(6) &Cache-TTL := 0
(6) } # update control = noop
(6) cache_ldap_user_dn: EXPAND %{Stripped-User-Name}
(6) cache_ldap_user_dn: --> radiustest
(6) cache_ldap_user_dn: No cache entry found for "radiustest"
(6) cache_ldap_user_dn: Creating new cache entry
(6) cache_ldap_user_dn: &control:LDAP-UserDN = &control:LDAP-UserDN ->
'uid=radiustest,ou=Staff,ou=Users,dc=thecampusway,dc=com'
(6) cache_ldap_user_dn: Merging cache entry into request
(6) cache_ldap_user_dn: &control:LDAP-UserDN =
"uid=radiustest,ou=Staff,ou=Users,dc=thecampusway,dc=com"
(6) cache_ldap_user_dn: Committed entry, TTL 86400 seconds
(6) [cache_ldap_user_dn] = updated
(6) } # Post-Auth-Type REJECT = updated
(6) } # server google-ldap-auth
(6) Virtual server sending reply
(6) eap_ttls: Got tunneled Access-Reject
tls: Removing session
4d51560031fda57dc5cdbc1e121c6f4529b6925c897065fd9a361a3a00c33ef8 from
the cache
(6) eap: ERROR: Failed continuing EAP TTLS (21) session. EAP sub-module
failed
(6) eap: Sending EAP Failure (code 4) ID 41 length 4
(6) eap: Failed in EAP select
(6) [eap] = invalid
(6) } # authenticate = invalid
(6) Failed to authenticate the user
(6) Using Post-Auth-Type Reject
(6) # Executing group from file /etc/freeradius/sites-enabled/default
(6) Post-Auth-Type REJECT {
(6) attr_filter.access_reject: EXPAND %{User-Name}
(6) attr_filter.access_reject: --> radiustest(a)thecampusway.com
(6) attr_filter.access_reject: Matched entry DEFAULT at line 11
(6) [attr_filter.access_reject] = updated
(6) [eap] = noop
(6) policy remove_reply_message_if_eap {
(6) if (&reply:EAP-Message && &reply:Reply-Message) {
(6) if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(6) else {
(6) [noop] = noop
(6) } # else = noop
(6) } # policy remove_reply_message_if_eap = noop
(6) } # Post-Auth-Type REJECT = updated
(6) Delaying response for 1.000000 seconds
Waking up in 0.9 seconds.
(6) Sending delayed response
(6) Sent Access-Reject Id 13 from 172.17.0.2:1812 to 71.59.46.3:50614
length 44
(6) EAP-Message = 0x04290004
(6) Message-Authenticator = 0x00000000000000000000000000000000
Waking up in 3.0 seconds.
(0) Cleaning up request packet ID 7 with timestamp +162 due to
cleanup_delay was reached
(1) Cleaning up request packet ID 8 with timestamp +162 due to
cleanup_delay was reached
(2) Cleaning up request packet ID 9 with timestamp +162 due to
cleanup_delay was reached
(3) Cleaning up request packet ID 10 with timestamp +162 due to
cleanup_delay was reached
(4) Cleaning up request packet ID 11 with timestamp +162 due to
cleanup_delay was reached
(5) Cleaning up request packet ID 12 with timestamp +162 due to
cleanup_delay was reached
Waking up in 0.6 seconds.
(6) Cleaning up request packet ID 13 with timestamp +162 due to
cleanup_delay was reached
Ready to process requests
4
4
Gday :-)
Each day is a step closer.
Here I am trying to run a test with the the test certificates and am
failing. I see the positives in the fail in that I am actually
contacting Freeradius. That's a step forwards.
Any chance of knowing what these error messages mean?
Have I used the wrong certificates in the wrong place?
***
(39) eap: Peer sent EAP Response (code 2) ID 224 length 1344
(39) eap: No EAP Start, assuming it's an on-going EAP conversation
(39) [eap] = updated
(39) [files] = noop
(39) [expiration] = noop
(39) [logintime] = noop
(39) [pap] = noop
(39) } # authorize = updated
(39) Found Auth-Type = eap
(39) # Executing group from file /etc/freeradius/sites-enabled/default
(39) authenticate {
(39) eap: Removing EAP session with state 0x7724b18972c4bc8c
(39) eap: Previous EAP request found for state 0x7724b18972c4bc8c,
released from the list
(39) eap: Peer sent packet with method EAP TLS (13)
(39) eap: Calling submodule eap_tls to process data
(39) eap_tls: (TLS) EAP Done initial handshake
(39) eap_tls: (TLS) TLS - Handshake state - Server SSLv3/TLS write
server done
(39) eap_tls: (TLS) TLS - recv TLS 1.2 Handshake, Certificate
(39) eap_tls: (TLS) TLS - Creating attributes from 2 certificate in chain
(39) eap_tls: TLS-Cert-Serial :=
"7b3ac5c50ab5ad8b63570648b1f5642e20c97be2"
(39) eap_tls: TLS-Cert-Expiration := "250907060222Z"
(39) eap_tls: TLS-Cert-Valid-Since := "250709060222Z"
(39) eap_tls: TLS-Cert-Subject :=
"/C=FR/ST=Radius/L=Somewhere/O=Example
Inc./emailAddress=admin(a)example.org/CN=Example Certificate Authority"
(39) eap_tls: TLS-Cert-Issuer :=
"/C=FR/ST=Radius/L=Somewhere/O=Example
Inc./emailAddress=admin(a)example.org/CN=Example Certificate Authority"
(39) eap_tls: TLS-Cert-Common-Name := "Example Certificate Authority"
(39) eap_tls: TLS-Cert-CRL-Distribution-Points +=
"http://www.example.org/example_ca.crl"
(39) eap_tls: (TLS) TLS - Creating attributes from 1 certificate in chain
(39) eap_tls: TLS-Client-Cert-Serial := "02"
(39) eap_tls: TLS-Client-Cert-Expiration := "250907060223Z"
(39) eap_tls: TLS-Client-Cert-Valid-Since := "250709060223Z"
(39) eap_tls: TLS-Client-Cert-Subject := "/C=FR/ST=Radius/O=Example
Inc./CN=user@example.org/emailAddress=user@example.org"
(39) eap_tls: TLS-Client-Cert-Issuer :=
"/C=FR/ST=Radius/L=Somewhere/O=Example
Inc./emailAddress=admin(a)example.org/CN=Example Certificate Authority"
(39) eap_tls: TLS-Client-Cert-Common-Name := "user(a)example.org"
(39) eap_tls: TLS-Client-Cert-CRL-Distribution-Points +=
"http://www.example.com/example_ca.crl"
(39) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage += "TLS Web
Client Authentication"
(39) eap_tls: TLS-Client-Cert-X509v3-Subject-Key-Identifier +=
"6D:00:F5:8E:7C:BB:67:49:12:7A:C1:3F:93:AB:78:A9:68:87:9B:90"
(39) eap_tls: TLS-Client-Cert-X509v3-Authority-Key-Identifier +=
"E1:9D:14:10:16:D5:9D:4E:CE:42:43:E7:49:3A:5E:74:92:46:07:64"
(39) eap_tls: TLS-Client-Cert-X509v3-Extended-Key-Usage-OID +=
"1.3.6.1.5.5.7.3.2"
(39) eap_tls: Verifying client certificate: /usr/bin/openssl verify
-CApath /etc/freeradius/certs %{TLS-Client-Cert-Filename}
(39) eap_tls: Executing: /usr/bin/openssl verify -CApath
/etc/freeradius/certs %{TLS-Client-Cert-Filename}:
(39) eap_tls: EXPAND %{TLS-Client-Cert-Filename}
(39) eap_tls: --> /tmp/radiusd/radiusd.client.XXUK9jFp
C = FR, ST = Radius, O = Example Inc., CN = user(a)example.org,
emailAddress = user(a)example.org
error 20 at 0 depth lookup: unable to get local issuer certificate
error /tmp/radiusd/radiusd.client.XXUK9jFp: verification failed
(39) eap_tls: ERROR: Program returned code (2) and output ''
tls: Certificate CN (user(a)example.org) fails external verification!
(39) eap_tls: (TLS) TLS - send TLS 1.2 Alert, fatal internal_error
(39) eap_tls: ERROR: (TLS) TLS - Alert write:fatal:internal error
(39) eap_tls: ERROR: (TLS) TLS - Server : Error in error
(39) eap_tls: ERROR: (TLS) Failed reading from OpenSSL:
error:0A000086:SSL routines::certificate verify failed
(39) eap_tls: ERROR: (TLS) System call (I/O) error (-1)
(39) eap_tls: ERROR: (TLS) EAP Receive handshake failed during operation
(39) eap_tls: ERROR: [eaptls process] = fail
(39) eap: ERROR: Failed continuing EAP TLS (13) session. EAP sub-module
failed
(39) eap: Sending EAP Failure (code 4) ID 224 length 4
(39) eap: Failed in EAP select
(39) [eap] = invalid
(39) } # authenticate = invalid
(39) Failed to authenticate the user
(39) Using Post-Auth-Type Reject
(39) # Executing group from file /etc/freeradius/sites-enabled/default
(39) Post-Auth-Type REJECT {
(39) attr_filter.access_reject: EXPAND %{User-Name}
(39) attr_filter.access_reject: --> user(a)example.org
(39) attr_filter.access_reject: Matched entry DEFAULT at line 11
(39) [attr_filter.access_reject] = updated
(39) [eap] = noop
(39) policy remove_reply_message_if_eap {
(39) if (&reply:EAP-Message && &reply:Reply-Message) {
(39) if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(39) else {
(39) [noop] = noop
(39) } # else = noop
(39) } # policy remove_reply_message_if_eap = noop
(39) } # Post-Auth-Type REJECT = updated
(39) Delaying response for 1.000000 seconds
Waking up in 0.3 seconds.
Waking up in 0.6 seconds.
(39) Sending delayed response
(39) Sent Access-Reject Id 46 from 172.17.0.5:1812 to 172.17.0.1:34232
length 44
(39) EAP-Message = 0x04e00004
(39) Message-Authenticator = 0x00000000000000000000000000000000
Waking up in 0.1 seconds.
(26) Cleaning up request packet ID 33 with timestamp +49 due to
cleanup_delay was reached
(27) Cleaning up request packet ID 34 with timestamp +49 due to
cleanup_delay was reached
(28) Cleaning up request packet ID 35 with timestamp +49 due to
cleanup_delay was reached
(29) Cleaning up request packet ID 36 with timestamp +49 due to
cleanup_delay was reached
(30) Cleaning up request packet ID 37 with timestamp +49 due to
cleanup_delay was reached
(31) Cleaning up request packet ID 38 with timestamp +49 due to
cleanup_delay was reached
(32) Cleaning up request packet ID 39 with timestamp +49 due to
cleanup_delay was reached
Waking up in 3.6 seconds.
(33) Cleaning up request packet ID 40 with timestamp +53 due to
cleanup_delay was reached
(34) Cleaning up request packet ID 41 with timestamp +53 due to
cleanup_delay was reached
(35) Cleaning up request packet ID 42 with timestamp +53 due to
cleanup_delay was reached
(36) Cleaning up request packet ID 43 with timestamp +53 due to
cleanup_delay was reached
(37) Cleaning up request packet ID 44 with timestamp +53 due to
cleanup_delay was reached
(38) Cleaning up request packet ID 45 with timestamp +53 due to
cleanup_delay was reached
(39) Cleaning up request packet ID 46 with timestamp +53 due to
cleanup_delay was reached
Ready to process requests
2
1