Request: How to implement SSID and group aware logic

Taylor Gorman taylorgorman at thecampusway.com
Tue Jul 15 18:04:36 UTC 2025


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 at 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 at 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 at 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 !~ /@(.+)\.(.+)$/))  {
(0)         if ((&User-Name =~ /@/) && (&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)  = 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 at 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 at 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 !~ /@(.+)\.(.+)$/))  {
(1)         if ((&User-Name =~ /@/) && (&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)  = 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 at 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 at 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 !~ /@(.+)\.(.+)$/))  {
(2)         if ((&User-Name =~ /@/) && (&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)  = 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 at 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 at 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 !~ /@(.+)\.(.+)$/))  {
(3)         if ((&User-Name =~ /@/) && (&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)  = 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 at 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 at 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 !~ /@(.+)\.(.+)$/))  {
(4)         if ((&User-Name =~ /@/) && (&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)  = 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 at 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 at 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 !~ /@(.+)\.(.+)$/))  {
(5)         if ((&User-Name =~ /@/) && (&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)  = 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 at 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 at 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 !~ /@(.+)\.(.+)$/))  {
(6)         if ((&User-Name =~ /@/) && (&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)  = 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 at 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 at 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 at 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 !~ /@(.+)\.(.+)$/))  {
(6)           if ((&User-Name =~ /@/) && (&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)  = 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 at 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




More information about the Freeradius-Users mailing list