Freeradius-Users
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
March 2026
- 16 participants
- 14 discussions
Hi Everyone,
Hope this finds you well.
I am looking into hosting options for running a PostgreSQL database in
Azure for FreeRADIUS, which I am currently evaluating using Azure
PostgreSQL Flexible Server. This connects without SSL no problem and
is functioning as needed (authentication and accounting). However,
this will not connect with SSL enabled from FreeRADIUS due to
expecting the sslcert and sslkey, which is not supported by Azure
PostgreSQL Flexible Server or Azure Database for PostgreSQL (i.e.
mutual TLS not supported).
This is as per:
https://learn.microsoft.com/en-us/azure/postgresql/security/security-tls#ot…
If I attempt to connect using the psql client with only the
sslrootcert PEM file specified, this is working:
psql "port=5432 host=psqlfreeradius.postgres.database.azure.com
user=radius dbname=radius sslmode=verify-full
sslrootcert=/etc/ssl/certs/MSCerts.pem"
Password for user radius:
psql (16.13 (Ubuntu 16.13-0ubuntu0.24.04.1), server 18.2)
WARNING: psql major version 16, server major version 18.
Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384,
compression: off)
Type "help" for help.
On reading into libpq, these parameters are only ignored
(sslcert/sslkey) when SSL is not attempted. Therefore, I suspect this
is a limitation of using libpq but I am by no means a developer!
My query is whether there is a solution to allow FreeRADIUS to ignore
the sslcert/sslkey being missing from the connection string to enable
this to function similarly to the above or whether this is a
limitation of the Azure service that I am using and I should query
with Microsoft Support.
Please find the debug output below:
FreeRADIUS Version 3.2.8
Copyright (C) 1999-2025 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
FreeRADIUS is developed, maintained, and supported by InkBridge Networks.
For commercial support, please email sales(a)inkbridgenetworks.com
https://inkbridgenetworks.com/
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/detail.log
including configuration file /etc/freeradius/mods-enabled/sql
including configuration file
/etc/freeradius/mods-config/sql/main/postgresql/queries.conf
including configuration file /etc/freeradius/mods-enabled/realm
including configuration file /etc/freeradius/mods-enabled/echo
including configuration file /etc/freeradius/mods-enabled/expr
including configuration file /etc/freeradius/mods-enabled/mschap
including configuration file /etc/freeradius/mods-enabled/sradutmp
including configuration file /etc/freeradius/mods-enabled/passwd
including configuration file /etc/freeradius/mods-enabled/unix
including configuration file /etc/freeradius/mods-enabled/date
including configuration file /etc/freeradius/mods-enabled/chap
including configuration file /etc/freeradius/mods-enabled/preprocess
including configuration file /etc/freeradius/mods-enabled/replicate
including configuration file /etc/freeradius/mods-enabled/pap
including configuration file /etc/freeradius/mods-enabled/utf8
including configuration file /etc/freeradius/mods-enabled/eap
including configuration file /etc/freeradius/mods-enabled/linelog
including configuration file /etc/freeradius/mods-enabled/attr_filter
including configuration file /etc/freeradius/mods-enabled/radutmp
including configuration file /etc/freeradius/mods-enabled/files
including configuration file /etc/freeradius/mods-enabled/soh
including configuration file /etc/freeradius/mods-enabled/always
including configuration file /etc/freeradius/mods-enabled/unpack
including configuration file /etc/freeradius/mods-enabled/ntlm_auth
including configuration file /etc/freeradius/mods-enabled/digest
including configuration file /etc/freeradius/mods-enabled/exec
including configuration file /etc/freeradius/mods-enabled/expiration
including configuration file /etc/freeradius/mods-enabled/proxy_rate_limit
including configuration file /etc/freeradius/mods-enabled/detail
including configuration file /etc/freeradius/mods-enabled/logintime
including configuration file /etc/freeradius/mods-enabled/totp
including configuration file /etc/freeradius/mods-enabled/dynamic_clients
including files in directory /etc/freeradius/policy.d/
including configuration file /etc/freeradius/policy.d/accounting
including configuration file /etc/freeradius/policy.d/control
including configuration file /etc/freeradius/policy.d/moonshot-targeted-ids
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/rfc7542
including configuration file /etc/freeradius/policy.d/cui
including configuration file /etc/freeradius/policy.d/canonicalization
including configuration file /etc/freeradius/policy.d/debug
including configuration file /etc/freeradius/policy.d/abfab-tr
including configuration file /etc/freeradius/policy.d/filter
including files in directory /etc/freeradius/sites-enabled/
including configuration file /etc/freeradius/sites-enabled/default
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
delay_proxy_rejects = no
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 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.
client org_10 {
ipaddr = 10.0.0.0/8
secret = <<< secret >>>
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
client org_172_16 {
ipaddr = 172.16.0.0/12
secret = <<< secret >>>
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
client org_192_168 {
ipaddr = 192.168.0.0/16
secret = <<< secret >>>
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
Debugger not attached
Configuration version: 7513-5adf-1687-8734
systemd watchdog is disabled
# 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_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_sql
# Loading module "sql" from file /etc/freeradius/mods-enabled/sql
sql {
driver = "rlm_sql_postgresql"
server = ""
port = 0
login = ""
password = <<< secret >>>
radius_db = "host=psqlfreeradius.postgres.database.azure.com
port=5432 dbname=radius user=radius password=raddpass
sslmode=verify-full sslrootcert=/etc/ssl/certs/MSCerts.pem"
read_groups = yes
read_profiles = yes
read_clients = no
delete_stale_sessions = yes
sql_user_name = "%{User-Name}"
default_user_profile = ""
client_query = "SELECT id, nasname, shortname, type, secret,
server FROM nas"
authorize_check_query = "SELECT id, UserName, Attribute,
Value, Op FROM radcheck WHERE Username = '%{SQL-User-Name}' ORDER BY
id"
authorize_reply_query = "SELECT id, UserName, Attribute,
Value, Op FROM radreply WHERE Username = '%{SQL-User-Name}' ORDER BY
id"
authorize_group_check_query = "SELECT id, GroupName,
Attribute, Value, op FROM radgroupcheck WHERE GroupName =
'%{SQL-Group}' ORDER BY id"
authorize_group_reply_query = "SELECT id, GroupName,
Attribute, Value, op FROM radgroupreply WHERE GroupName =
'%{SQL-Group}' ORDER BY id"
group_membership_query = "SELECT GroupName FROM radusergroup
WHERE UserName='%{SQL-User-Name}' ORDER BY priority"
simul_count_query = "SELECT COUNT(RadAcctId) FROM radacct a
LEFT OUTER JOIN nasreload n USING (NASIPAddress) WHERE
UserName='%{SQL-User-Name}' AND AcctStopTime IS NULL AND
(a.AcctStartTime > n.ReloadTime OR n.ReloadTime IS NULL)"
simul_verify_query = "SELECT RadAcctId, AcctSessionId,
UserName, NASIPAddress, NASPortId, FramedIPAddress, CallingStationId,
FramedProtocol FROM radacct a LEFT OUTER JOIN nasreload n USING
(nasipaddress) WHERE UserName='%{SQL-User-Name}' AND AcctStopTime IS
NULL AND (a.AcctStartTime > n.reloadtime OR n.reloadtime IS NULL)"
safe_characters =
"@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_:
/"
auto_escape = no
record_query_number = no
accounting {
reference =
"%{tolower:type.%{%{Acct-Status-Type}:-%{Request-Processing-Stage}}.query}"
type {
accounting-on {
query = "UPDATE radacct SET AcctStopTime =
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), AcctUpdateTime =
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), AcctSessionTime =
(%{%{integer:Event-Timestamp}:-%l} - EXTRACT(EPOCH
FROM(AcctStartTime))), AcctTerminateCause =
'%{%{Acct-Terminate-Cause}:-NAS-Reboot}' WHERE AcctStopTime IS NULL
AND NASIPAddress= '%{%{NAS-IPv6-Address}:-%{NAS-IP-Address}}' AND
AcctStartTime <= TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l})"
}
accounting-off {
query = "UPDATE radacct SET AcctStopTime =
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), AcctUpdateTime =
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), AcctSessionTime =
(%{%{integer:Event-Timestamp}:-%l} - EXTRACT(EPOCH
FROM(AcctStartTime))), AcctTerminateCause =
'%{%{Acct-Terminate-Cause}:-NAS-Reboot}' WHERE AcctStopTime IS NULL
AND NASIPAddress= '%{%{NAS-IPv6-Address}:-%{NAS-IP-Address}}' AND
AcctStartTime <= TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l})"
}
start {
query = "INSERT INTO radacct (AcctSessionId, AcctUniqueId,
UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime,
AcctUpdateTime, AcctStopTime, AcctSessionTime, AcctAuthentic,
ConnectInfo_start, ConnectInfo_Stop, AcctInputOctets,
AcctOutputOctets, CalledStationId, CallingStationId,
AcctTerminateCause, ServiceType, FramedProtocol, FramedIpAddress,
FramedIpv6Address, FramedIpv6Prefix, FramedInterfaceId,
DelegatedIpv6Prefix ) VALUES('%{Acct-Session-Id}',
'%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', NULLIF('%{Realm}',
''), '%{%{NAS-IPv6-Address}:-%{NAS-IP-Address}}',
NULLIF('%{%{NAS-Port-ID}:-%{NAS-Port}}', ''), '%{NAS-Port-Type}',
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}),
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), NULL, 0,
'%{Acct-Authentic}', '%{Connect-Info}', NULL, 0, 0,
'%{Called-Station-Id}', '%{Calling-Station-Id}', NULL,
'%{Service-Type}', '%{Framed-Protocol}',
NULLIF('%{Framed-IP-Address}', '')::inet,
NULLIF('%{Framed-IPv6-Address}', '')::inet,
NULLIF('%{Framed-IPv6-Prefix}', '')::inet,
NULLIF('%{Framed-Interface-Id}', ''),
NULLIF('%{Delegated-IPv6-Prefix}', '')::inet ) ON CONFLICT
(AcctUniqueId) DO UPDATE SET AcctStartTime =
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), AcctUpdateTime =
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), ConnectInfo_start =
'%{Connect-Info}' WHERE radacct.AcctUniqueId =
'%{Acct-Unique-Session-Id}' AND radacct.AcctStopTime IS NULL"
}
interim-update {
query = "UPDATE radacct SET FramedIPAddress =
NULLIF('%{Framed-IP-Address}', '')::inet, FramedIPv6Address =
NULLIF('%{Framed-IPv6-Address}', '')::inet, FramedIPv6Prefix =
NULLIF('%{Framed-IPv6-Prefix}', '')::inet, FramedInterfaceId =
NULLIF('%{Framed-Interface-Id}', ''), DelegatedIPv6Prefix =
NULLIF('%{Delegated-IPv6-Prefix}', '')::inet, AcctSessionTime =
%{%{Acct-Session-Time}:-NULL}, AcctInterval =
(%{%{integer:Event-Timestamp}:-%l} - EXTRACT(EPOCH FROM
(COALESCE(AcctUpdateTime, AcctStartTime)))), AcctUpdateTime =
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), AcctInputOctets =
(('%{%{Acct-Input-Gigawords}:-0}'::bigint << 32) +
'%{%{Acct-Input-Octets}:-0}'::bigint), AcctOutputOctets =
(('%{%{Acct-Output-Gigawords}:-0}'::bigint << 32) +
'%{%{Acct-Output-Octets}:-0}'::bigint) WHERE AcctUniqueId =
'%{Acct-Unique-Session-Id}' AND AcctStopTime IS NULL"
}
stop {
query = "UPDATE radacct SET AcctStopTime =
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), AcctUpdateTime =
TO_TIMESTAMP(%{%{integer:Event-Timestamp}:-%l}), AcctSessionTime =
COALESCE(%{%{Acct-Session-Time}:-NULL},
(%{%{integer:Event-Timestamp}:-%l} - EXTRACT(EPOCH
FROM(AcctStartTime)))), AcctInputOctets =
(('%{%{Acct-Input-Gigawords}:-0}'::bigint << 32) +
'%{%{Acct-Input-Octets}:-0}'::bigint), AcctOutputOctets =
(('%{%{Acct-Output-Gigawords}:-0}'::bigint << 32) +
'%{%{Acct-Output-Octets}:-0}'::bigint), AcctTerminateCause =
'%{Acct-Terminate-Cause}', FramedIPAddress =
NULLIF('%{Framed-IP-Address}', '')::inet, FramedIPv6Address =
NULLIF('%{Framed-IPv6-Address}', '')::inet, FramedIPv6Prefix =
NULLIF('%{Framed-IPv6-Prefix}', '')::inet, FramedInterfaceId =
NULLIF('%{Framed-Interface-Id}', ''), DelegatedIPv6Prefix =
NULLIF('%{Delegated-IPv6-Prefix}', '')::inet, ConnectInfo_stop =
'%{Connect-Info}' WHERE AcctUniqueId = '%{Acct-Unique-Session-Id}' AND
AcctStopTime IS NULL"
}
}
}
post-auth {
reference = ".query"
query = "INSERT INTO radpostauth (username, pass, reply,
authdate ) VALUES('%{User-Name}',
'%{%{User-Password}:-%{Chap-Password}}', '%{reply:Packet-Type}',
'%S.%M' )"
}
}
rlm_sql (sql): Driver rlm_sql_postgresql (module rlm_sql_postgresql)
loaded and linked
Creating attribute SQL-Group
# 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
}
# Loaded module rlm_exec
# 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_expr
# Loading module "expr" from file /etc/freeradius/mods-enabled/expr
expr {
safe_characters =
"@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_:
/äéöüàâæçèéêëîïôœùûüaÿÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔŒÙÛÜŸ"
}
# 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_radutmp
# 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
}
# 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_unix
# Loading module "unix" from file /etc/freeradius/mods-enabled/unix
unix {
radwtmp = "/var/log/freeradius/radwtmp"
}
Creating attribute Unix-Group
# 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_chap
# Loading module "chap" from file /etc/freeradius/mods-enabled/chap
# 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_replicate
# Loading module "replicate" from file /etc/freeradius/mods-enabled/replicate
# Loaded module rlm_pap
# Loading module "pap" from file /etc/freeradius/mods-enabled/pap
pap {
normalise = yes
}
# Loaded module rlm_utf8
# Loading module "utf8" from file /etc/freeradius/mods-enabled/utf8
# Loaded module rlm_eap
# Loading module "eap" from file /etc/freeradius/mods-enabled/eap
eap {
default_eap_type = "md5"
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_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_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
}
# 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_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_soh
# Loading module "soh" from file /etc/freeradius/mods-enabled/soh
soh {
dhcp = yes
}
# 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_unpack
# Loading module "unpack" from file /etc/freeradius/mods-enabled/unpack
# 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_digest
# Loading module "digest" from file /etc/freeradius/mods-enabled/digest
# Loading module "exec" from file /etc/freeradius/mods-enabled/exec
exec {
wait = no
input_pairs = "request"
shell_escape = yes
timeout = 10
}
# Loaded module rlm_expiration
# Loading module "expiration" from file
/etc/freeradius/mods-enabled/expiration
# 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
}
# 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_logintime
# Loading module "logintime" from file /etc/freeradius/mods-enabled/logintime
logintime {
minimum_timeout = 60
}
# 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_dynamic_clients
# Loading module "dynamic_clients" from file
/etc/freeradius/mods-enabled/dynamic_clients
instantiate {
# Instantiating module "sql" from file /etc/freeradius/mods-enabled/sql
postgresql {
send_application_name = yes
}
rlm_sql (sql): Attempting to connect to database
"host=psqlfreeradius.postgres.database.azure.com port=5432
dbname=radius user=radius password=raddpass sslmode=verify-full
sslrootcert=/etc/ssl/certs/MSCerts.pem"
rlm_sql (sql): 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_sql (sql): Opening additional connection (0), 1 of 32 pending slots used
rlm_sql_postgresql: Connecting using parameters:
host=psqlfreeradius.postgres.database.azure.com port=5432
dbname=radius user=radius password=raddpass sslmode=verify-full
sslrootcert=/etc/ssl/certs/MSCerts.pem application_name='FreeRADIUS
3.2.8 - radiusd (sql)'
rlm_sql_postgresql: Connection failed: connection to server at
"psqlfreeradius.postgres.database.azure.com" (10.86.36.196), port 5432
failed: could not open certificate file
"/root/.postgresql/postgresql.crt": Permission denied
rlm_sql_postgresql: Socket destructor called, closing socket
rlm_sql (sql): Opening connection failed (0)
rlm_sql (sql): Removing connection pool
/etc/freeradius/mods-enabled/sql[27]: Instantiation failed for module "sql"
Thank you in advance for any guidance.
Kind regards
Sam
2
2
On the latest v4 dev version I am trying to include a v3 ALIAS dictionary
file (shipped with the source) for some testing.
In the main dictionary file, I am using:
$INCLUDE dict/v3/dictionary.aruba
# cat dict/v3/dictionary.aruba
ALIAS Aruba-User-Role 26.14823.1
ALIAS Aruba-User-Vlan 26.14823.2
ALIAS Aruba-Priv-Admin-User 26.14823.3
ALIAS Aruba-Admin-Role 26.14823.4
ALIAS Aruba-Essid-Name 26.14823.5
ALIAS Aruba-Location-Id 26.14823.6
ALIAS Aruba-Port-Identifier 26.14823.7
ALIAS Aruba-MMS-User-Template 26.14823.8
ALIAS Aruba-Named-User-Vlan 26.14823.9
[snip]
But the server errors upon start:
Failed reading site-local dictionary: Out of memory
Failed parsing dictionary at
/usr/local/etc/raddb/dict/v3/dictionary.aruba[1]
from $INCLUDE at /usr/local/etc/raddb/dictionary[181]
Failed parsing dictionary at /usr/local/etc/raddb/dictionary[181]
I tried other v3 ALIAS files and the same so not Aruba specific.
Any ideas? The server starts and runs perfectly fine without this include
line.
Thanks,
James
--
Visit purple.ai <https://purple.ai/>
Purple on LinkedIn
<https://uk.linkedin.com/company/purple-wifi>
Email disclaimer
<http://www.purple.ai/email-disclaimer/>
2
5
I'm playing around with v4 and one thing I can't get working is how to
insert all of the mapped reply attributes when I insert into the SQL
radpostauth table.
Just before we perform the insert, I am trying to get all of the reply
attributes we're sending as described here:
https://www.freeradius.org/documentation/freeradius-server/4.0.0/reference/…
&control.Tmp-String-9 := "%pairs.print(reply.[*])"
and then referencing the tmp string on the query.
I get:
%pairs.print(reply.[*])
^: Unresolved expansion functions are not allowed here
Any thoughts? If this isn't the right way, please advise how I can get
these reply attributes into a string ready for the sql insert.
Thanks
James
--
Visit purple.ai <https://purple.ai/>
Purple on LinkedIn
<https://uk.linkedin.com/company/purple-wifi>
Email disclaimer
<http://www.purple.ai/email-disclaimer/>
2
4
Hi all,
we are using the rlm_rest module to make authentication decisions. we
would like to pass the rejection reason our REST API came up with back
to FreeRadius for logging with rlm_sqllog.
We managed to pass attributes back when returning a JSON payload with
http/200 (accept), but it doesn't work for http/401 (reject).
Is there a way during a reject to signal some log message from the REST
API back to freeradius (like it works during accept)?
I've noticed that the documentation says the following:
# Authorize/Authenticate
#
# Code Meaning Process body Module code
# 401 unauthorized yes reject
# 2xx successful yes ok/updated
but also:
# If the body is processed and found to contain attribute
updated will be returned,
# except in the case of a 401 code.
As far as I understand, "Process body = yes" should mean that
attributes are updated, except for the case of 401, where this doesn't
happen.
Here's a rough sketch of our setup and what we tried:
We have configured a REST request in the authorize and post-auth
sections.
When a client is allowed into the network, a http/200 message with this
payload (and corresponding content-type header) is returned from our
REST API:
{
"Extreme-Netlogin-Extended-Vlan":"UvlanWhatever",
"control:mycompany-vlan":"vlanWhatever"
}
FreeRADIUS correctly parses this and adds the VLAN tag in the response
headed to the NAS, and the "control:" are available for use, like in
the snippet below.
server default {
post-auth {
if (&control:mycompany-vlan == "vlanSpecialCase") {
update control {
Auth-Type := Accept
mycompany-reject-reason := "none"
}
}
else {
eap
}
}
}
we save some extra detail in `mycompany-reject-reason`. This is then
stored in our logs. That works beautifully.
However, when a client is rejected, we would like to also update
`mycompany-reject-reason` but with the rejection message coming from
the REST call, which returns a http/401 like this:
{
"control:mycompany-reason": "why the client was rejected"
}
we have tried to then update the `mycompany-reason` unlang attribute:
server default {
post-auth {
Post-Auth-Type REJECT {
update control {
mycompany-reject-reason := &control:mycompany-reason
}
}
}
However, this does not work: no attributes are updated, and this gets
pritned to the logs:
Tue Mar 24 15:07:29 2026 : ERROR: (822634) rest: ERROR: Server
returned:
Tue Mar 24 15:07:29 2026 : ERROR: (822634) rest: ERROR:
{"control:mycompany-reason":"the failure message"}
Tue Mar 24 15:07:29 2026 : Auth: (822634) Rejected in post-auth:
[user(a)example.com/<via Auth-Type = eap>] (from client nas01.example.com
port 0 cli aabbccddeeff)
3
4
Hi all,
I have migrated my freeradius 3.2.3 setup to a new RHEL9 server and
am seeing this error message sometimes after a request is finished:
(0) Finished request
(0) Cleaning up request packet ID 3401348380 with timestamp +7 due to done
Ready to process requests
Failed reading DHCP socket: No child processes
Ready to process requests
Failed reading DHCP socket: No child processes
Ready to process requests
Any hints or clues to what might be causing it or what to check/configure?
--
Ľudo Mikula
3
3
I'm very new to using FreeRadius and apologize I don't have a lot of
technical knowledge about it. I am setting up FreeRadius with a
WAP2-Enterprise wifi network, with the FreeRadius server configured from my
Ubiquiti access points.
I set up the sql module, and made sure "sql" was listed under the
"authorize" and "session" sections of by site's (default) configuration. I
also enabled accounting and everything seemed to be working. I added users
to the radcheck table with cleartext passwords. I added a Simultaneous-Use
line for my user, but it always seemed to be ignored.
After a lot of searching, I've discovered that my 'default' config was
being used for the 'outer' authentication (eap), and then the
"inner-tunnel" config was being used for actual authentication. This
already has the sql option under "authorize", but not in "session". Adding
"sql" to the "session" section of
/etc/freeradius/sites-enabled/inner-tunnel is what finally allowed
Simultaneous-Use checking.
I'm posting this because this didn't seem to be documented (here:
https://www.freeradius.org/documentation/freeradius-server/3.2.9/howto/simu…)
It would have been helpful to have a hint about the inner-tunnel
configuration when using eap authentication.
I'm not looking for more help at the moment, other than that I am wondering
if there is a way to constrain simultaneous connections for all users at
once. The Simultaneous-Use query doesn't look for a DEFAULT line in the
mysql database.
Matthew
2
3
17 Mar '26
I've come across an issue with dynamic home_servers for supporting
OpenRoaming connections.
In `authorize`, we use the following code to check if it's our home domain,
if the 'home_server' already exists, or if we need to dynamically query
which radsec server to proxy to:
--------------------------------
openroaming_lookup {
if (&control:Proxy-To-Realm || &control:Home-Server-Name) {
return
}
if (&User-Name && &User-Name =~ /home.domain/) {
return
}
elsif (&User-Name && &User-Name =~ /(a)(.*)$/) {
switch "%{home_server_dynamic:%{1}}" {
case "1" {
# Proxy to this one particular home server
update control {
&Home-Server-Name := "%{1}"
}
}
case "0" {
# Proxy with home server pool, failover,
etc.
update control {
&Proxy-To-Realm := "%{1}"
}
}
case {
# no home server exists, ask DNS
update control {
&Temp-Home-Server-String :=
`%{config:confdir}/mods-config/realm/freeradius-naptr-to-home-server.sh -d
%{config:confdir} %{1} aaa+auth:radius>
}
if (&control:Temp-Home-Server-String == ""
) {
reject
} else {
update control {
&Home-Server-Name := "%{1}"
}
}
}
}
}
}
--------------------------------
This generally works well. For a new (unknown home server), we call the
below mods-config/realm/freeradius-naptr-to-home-server.sh script to
perform the dynamic discovery:
--------------------------------
#!/bin/sh
usage() {
echo "Usage: ${0} [OPTIONS] <realm> <optional NAPTR tag>"
echo " -d RADIUS_DIR Set radius directory"
echo " -t test (skip running radmin)"
exit 1
}
test -n "${1}" || usage
RADDB=/usr/local/etc/raddb
RADMIN=y
while [ `echo "$1" | cut -c 1` = "-" ]
do
case "$1" in
-d)
RADDB=$2
shift;shift
;;
-t)
RADMIN=
shift
;;
*)
usage
;;
esac
done
test -n "${2}" && NAPTRTAG="${2}" || NAPTRTAG="x-eduroam:radius.tls"
DIGCMD=$(command -v dig)
HOSTCMD=$(command -v host)
PRINTCMD=$(command -v printf)
validate_host() {
echo ${@} | tr -d '\n\t\r' | grep -E '^[_0-9a-zA-Z][-._0-9a-zA-Z]*$'
}
validate_port() {
echo ${@} | tr -d '\n\t\r' | grep -E '^[0-9]+$'
}
dig_it_srv() {
${DIGCMD} +short srv $SRV_HOST | sort -n -k1 |
while read line; do
set $line
PORT=$(validate_port $3)
HOST=$(validate_host $4)
if [ -n "${HOST}" ] && [ -n "${PORT}" ]; then
$PRINTCMD "\tipaddr = ${HOST%.}\n\tport = ${PORT}\n"
fi
done
}
dig_it_naptr() {
${DIGCMD} +short naptr "${REALM}" | grep $NAPTRTAG | sort -n -k1 |
while read line; do
set $line
TYPE=$3
HOST=$(validate_host $6)
if ( [ "$TYPE" = "\"s\"" ] || [ "$TYPE" = "\"S\"" ] ) && [
-n "${HOST}" ]; then
SRV_HOST=${HOST%.}
dig_it_srv
fi
done
}
host_it_srv() {
${HOSTCMD} -t srv $SRV_HOST | sort -n -k5 |
while read line; do
set $line
PORT=$(validate_port $7)
HOST=$(validate_host $8)
if [ -n "${HOST}" ] && [ -n "${PORT}" ]; then
$PRINTCMD "\tipaddr ${HOST%.}:${PORT}\n"
fi
done
}
host_it_naptr() {
${HOSTCMD} -t naptr "${REALM}" | grep $NAPTRTAG | sort -n -k5 |
while read line; do
set $line
TYPE=$7
HOST=$(validate_host ${10})
if ( [ "$TYPE" = "\"s\"" ] || [ "$TYPE" = "\"S\"" ] ) && [
-n "${HOST}" ]; then
SRV_HOST=${HOST%.}
host_it_srv
fi
done
}
REALM=$(validate_host ${1})
if [ -z "${REALM}" ]; then
echo "realm \"${1}\" failed validation" >&2
usage
fi
if [ -x "${DIGCMD}" ]; then
SERVERS=$(dig_it_naptr)
elif [ -x "${HOSTCMD}" ]; then
SERVERS=$(host_it_naptr)
else
echo "${0} requires either \"dig\" or \"host\" command." >&2
exit 1
fi
if [ ! -n "${SERVERS}" ]; then
echo "No servers found" >&2
exit 1
fi
if [ -z "${RADMIN}" ]; then
$PRINTCMD "home_server ${REALM} {\n${SERVERS}\n\t\$INCLUDE
tls.conf\n}\n"
exit 0
fi
HOME_SERVER_FILE="$RADDB/home_servers/$1"
if [ -f "$HOME_SERVER_FILE" ]; then
echo "Home server file $HOME_SERVER_FILE already exists. Skipping
creation and radmin command." >&2
else
echo "Creating new home server file $HOME_SERVER_FILE." >&2
$PRINTCMD "home_server ${REALM} {\n${SERVERS}\n\t\$INCLUDE
tls.conf\n}\n" > "$HOME_SERVER_FILE"
/usr/local/sbin/radmin -e "add home_server file $HOME_SERVER_FILE"
fi
echo $1
--------------------------------
Again, this works well. It creates a new file in the home_servers folder,
and radmin adds it to the server to use immediately.
The problem arises if we have an authentication request from a new realm
but the "server" is one that we already have a reference to, from a
previously added dynamic home server definition.
For example, an authentication request comes in with a realm of
davidlloyd.openroaming.net and the script generates the following home
server config:
# cat home_servers/davidlloyd.openroaming.net
home_server davidlloyd.openroaming.net {
ipaddr = idpeu.openroaming.net
port = 2083
$INCLUDE tls.conf
}
This new home server was then added via radmin, and everything was ok. The
request is proxied to that new server. So far, so good.
Later, another authentication request comes in with a realm of
eu-sdk.openroaming.net, and the script generates the following home server
config:
# cat home_servers/eu-sdk.openroaming.net
home_server eu-sdk.openroaming.net {
ipaddr = idpeu.openroaming.net
port = 2083
$INCLUDE tls.conf
}
However, this failed to add via radmin, because the "ipaddr" is the same as
a previously defined dynamic home server, and the authentication fails as
it doesn't proxy the request.
ipaddr = idpeu.openroaming.net <<<< this
The error thrown by radmin is:
# radmin -e "add home_server file /usr/local/etc/raddb/home_servers/
davidlloyd.openroaming.net"
ERROR: Unable to add home server - Failed adding home_server to the
internal data structures
This doesn't just happen for "openroaming" hosted realms either. Take
cityroam in Japan for example. They have multiple realms too, but the same
servers:
# cat home_servers/*city*
home_servers/jwa.bemap.cityroam.jp:
home_server jwa.bemap.cityroam.jp {
ipaddr = jpgw4.cityroam.jp
port = 2083
ipaddr = jpgw.cityroam.jp
port = 2083
$INCLUDE tls.conf
}
home_servers/w-jp1.wi2.cityroam.jp:
home_server w-jp1.wi2.cityroam.jp {
ipaddr = jpgw4.cityroam.jp
port = 2083
ipaddr = jpgw.cityroam.jp
port = 2083
$INCLUDE tls.conf
}
It's like we need a way to set servers and then map multiple realms to the
same server (as traditionally done in proxy.conf)?
How can we best solve this issue? Is there another method for doing this
besides the one above?
We can't statically define these servers (as the whole point of openroaming
is to dynamic proxy to the resolved servers, which may change), and we'll
never know what user realm may hit us next will be, and they will probably
share servers.
Thanks,
James
--
Visit purple.ai <https://purple.ai/>
Purple on LinkedIn
<https://uk.linkedin.com/company/purple-wifi>
Email disclaimer
<http://www.purple.ai/email-disclaimer/>
2
2
I'm trying something new with FreeRADIUS. There are two virtual servers
(staff, guest) which authenticate against two separate DB backends
(MySQL and MSSQL, respectively). Accordingly, the clients are configured
with the "virtual_server" directive. What I'm trying to achieve is to
make FreeRADIUS work on two separate subnets, on which separate devices
communicate with separate virtual servers, which authenticate against
two separate DBs. iOS devices refuse to authenticate from the *staff*
virtual server while Android devices do. And when I remove the *guest*
virtual server, iOS devices start connecting too.
[2.7.2-RELEASE][root(a)router.scilek.com]/root: radiusd -X
FreeRADIUS Version 3.2.3
Copyright (C) 1999-2022 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/local/share/freeradius/dictionary
including dictionary file /usr/local/share/freeradius/dictionary.dhcp
including dictionary file /usr/local/share/freeradius/dictionary.vqp
including dictionary file /usr/local/etc/raddb/dictionary
including configuration file /usr/local/etc/raddb/radiusd.conf
including configuration file /usr/local/etc/raddb/clients.conf
including files in directory /usr/local/etc/raddb/mods-enabled/
including configuration file /usr/local/etc/raddb/mods-enabled/passwd
including configuration file /usr/local/etc/raddb/mods-enabled/expr
including configuration file /usr/local/etc/raddb/mods-enabled/totp
including configuration file /usr/local/etc/raddb/mods-enabled/date
including configuration file /usr/local/etc/raddb/mods-enabled/chap
including configuration file /usr/local/etc/raddb/mods-enabled/mysql
including configuration file
/usr/local/etc/raddb/mods-config/sql/main/mysql/queries.conf
including configuration file /usr/local/etc/raddb/mods-enabled/attr_filter
including configuration file /usr/local/etc/raddb/mods-enabled/replicate
including configuration file /usr/local/etc/raddb/mods-enabled/googleauth
including configuration file /usr/local/etc/raddb/mods-enabled/always
including configuration file /usr/local/etc/raddb/mods-enabled/sql_office
including configuration file
/usr/local/etc/raddb/mods-config/sql/main/mysql/queries.conf
including configuration file /usr/local/etc/raddb/mods-enabled/eap
including configuration file /usr/local/etc/raddb/mods-enabled/sradutmp
including configuration file /usr/local/etc/raddb/mods-enabled/pap
including configuration file /usr/local/etc/raddb/mods-enabled/logintime
including configuration file
/usr/local/etc/raddb/mods-enabled/datacounter_acct
including configuration file /usr/local/etc/raddb/mods-enabled/sql_guest
including configuration file
/usr/local/etc/raddb/mods-config/sql/main/mssql/queries.conf
including configuration file /usr/local/etc/raddb/mods-enabled/unix
including configuration file /usr/local/etc/raddb/mods-enabled/exec
including configuration file /usr/local/etc/raddb/mods-enabled/unpack
including configuration file /usr/local/etc/raddb/mods-enabled/echo
including configuration file /usr/local/etc/raddb/mods-enabled/files
including configuration file /usr/local/etc/raddb/mods-enabled/expiration
including configuration file
/usr/local/etc/raddb/mods-enabled/dynamic_clients
including configuration file /usr/local/etc/raddb/mods-enabled/realm
including configuration file /usr/local/etc/raddb/mods-enabled/motp
including configuration file /usr/local/etc/raddb/mods-enabled/preprocess
including configuration file /usr/local/etc/raddb/mods-enabled/digest
including configuration file /usr/local/etc/raddb/mods-enabled/mschap
including configuration file /usr/local/etc/raddb/mods-enabled/soh
including configuration file /usr/local/etc/raddb/mods-enabled/detail.log
including configuration file /usr/local/etc/raddb/mods-enabled/utf8
including configuration file /usr/local/etc/raddb/mods-enabled/detail
including configuration file /usr/local/etc/raddb/mods-enabled/mssql
including configuration file
/usr/local/etc/raddb/mods-config/sql/main/mssql/queries.conf
including configuration file /usr/local/etc/raddb/mods-enabled/radutmp
including configuration file /usr/local/etc/raddb/mods-enabled/linelog
including files in directory /usr/local/etc/raddb/policy.d/
including configuration file /usr/local/etc/raddb/policy.d/canonicalization
including configuration file /usr/local/etc/raddb/policy.d/operator-name
including configuration file /usr/local/etc/raddb/policy.d/accounting
including configuration file /usr/local/etc/raddb/policy.d/debug
including configuration file
/usr/local/etc/raddb/policy.d/pfs_custom_policies
including configuration file /usr/local/etc/raddb/policy.d/filter
including configuration file /usr/local/etc/raddb/policy.d/cui
including configuration file /usr/local/etc/raddb/policy.d/control
including configuration file /usr/local/etc/raddb/policy.d/abfab-tr
including configuration file /usr/local/etc/raddb/policy.d/eap
including configuration file /usr/local/etc/raddb/policy.d/rfc7542
including configuration file
/usr/local/etc/raddb/policy.d/moonshot-targeted-ids
including configuration file /usr/local/etc/raddb/policy.d/dhcp
including files in directory /usr/local/etc/raddb/sites-enabled/
including configuration file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-peap
including configuration file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
including configuration file /usr/local/etc/raddb/sites-enabled/staff
including configuration file /usr/local/etc/raddb/sites-enabled/guest
main {
security {
allow_core_dumps = no
}
name = "radiusd"
prefix = "/usr/local"
localstatedir = "/var"
logdir = "/var/log"
run_dir = "/var/run"
}
main {
name = "radiusd"
prefix = "/usr/local"
localstatedir = "/var"
sbindir = "/usr/local/sbin"
logdir = "/var/log"
run_dir = "/var/run"
libdir = "/usr/local/lib/freeradius-3.2.3"
radacctdir = "/var/log/radacct"
hostname_lookups = no
max_request_time = 30
cleanup_delay = 5
max_requests = 1024
postauth_client_lost = no
pidfile = "/var/run/radiusd.pid"
checkrad = "/usr/local/sbin/checkrad"
debug_level = 0
proxy_requests = yes
log {
stripped_names = no
auth = yes
auth_badpass = no
auth_goodpass = no
msg_badpass = ""
msg_goodpass = ""
colourise = yes
msg_denied = "You are already logged in - access denied"
}
resources {
}
security {
max_attributes = 200
reject_delay = 1.000000
status_server = no
}
}
radiusd: #### Loading Realms and Home Servers ####
radiusd: #### Loading Clients ####
client CP_GUEST {
ipaddr = 192.168.255.12
require_message_authenticator = no
secret = <<< secret >>>
nas_type = "other"
virtual_server = "guest"
proto = "udp"
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
client CP_OFFICE {
ipaddr = 192.168.1.1
require_message_authenticator = no
secret = <<< secret >>>
nas_type = "other"
virtual_server = "staff"
proto = "udp"
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
client DENEME {
ipaddr = 192.168.1.11
require_message_authenticator = no
secret = <<< secret >>>
nas_type = "other"
virtual_server = "staff"
proto = "udp"
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
Debugger not attached
# Creating Auth-Type = eap
# Creating Auth-Type = PAP
# Creating Auth-Type = MS-CHAP
# Creating Autz-Type = Status-Server
# Creating Auth-Type = mschap
radiusd: #### Instantiating modules ####
modules {
# Loaded module rlm_passwd
# Loading module "etc_passwd" from file
/usr/local/etc/raddb/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_expr
# Loading module "expr" from file /usr/local/etc/raddb/mods-enabled/expr
expr {
safe_characters =
"@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_:
/äéöüàâæçèéêëîïôSùûüa ÄÉÖÜßÀÂÆÇÈÉÊËÎÏÔRÙÛÜx"
}
# Loaded module rlm_totp
# Loading module "totp" from file /usr/local/etc/raddb/mods-enabled/totp
# Loaded module rlm_date
# Loading module "date" from file /usr/local/etc/raddb/mods-enabled/date
date {
format = "%b %e %Y %H:%M:%S %Z"
utc = no
}
# Loading module "wispr2date" from file
/usr/local/etc/raddb/mods-enabled/date
date wispr2date {
format = "%Y-%m-%dT%H:%M:%S"
utc = no
}
# Loaded module rlm_chap
# Loading module "chap" from file /usr/local/etc/raddb/mods-enabled/chap
# Loaded module rlm_sql
# Loading module "mysql" from file
/usr/local/etc/raddb/mods-enabled/mysql
sql mysql {
driver = "rlm_sql_mysql"
server = "localhost"
port = 3306
login = "raduser"
password = <<< secret >>>
radius_db = "raddb"
read_groups = yes
read_profiles = yes
read_clients = no
delete_stale_sessions = yes
sql_user_name = "%{User-Name}"
logfile = "/var/log/sqltrace.sql"
default_user_profile = ""
client_query = "CALL load_clients()"
authorize_check_query = "CALL authorize_check('%{SQL-User-Name}')"
authorize_reply_query = "CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')"
authorize_group_check_query = "CALL
authorize_group_check('%{mysql-SQL-Group}')"
authorize_group_reply_query = "CALL
authorize_group_reply('%{mysql-SQL-Group}')"
group_membership_query = "CALL
group_membership('%{SQL-User-Name}')"
simul_count_query = "CALL simul_count('%{SQL-User-Name}')"
safe_characters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#+%&?*-_@."
auto_escape = no
accounting {
reference = "%{tolower:type.%{Acct-Status-Type}.query}"
type {
accounting-on {
query = "CALL
accounting_on('%{Called-Station-Id}','%{Acct-Terminate-Cause}','%{NAS-Identifier}','%{NAS-IP-Address}','%{Event-Timestamp}')"
}
accounting-off {
query = "CALL
accounting_off('%{Called-Station-Id}','%{Acct-Terminate-Cause}','%{NAS-Identifier}','%{NAS-IP-Address}','%{Event-Timestamp}')"
}
start {
query = "CALL
accounting_start('%{Acct-Session-Id}','%{SQL-User-Name}','%{Class}','%{NAS-IP-Address}','%{Called-Station-Id}','%{Calling-Station-
Id}','%{Framed-IP-Address}','%{NAS-Identifier}','%{NAS-Port}','%{NAS-Port-Type}','%{Connect-Info}','%{Event-Timestamp}')"
}
interim-update {
query = "CALL accounting_update
('%{Acct-Session-Id}','%{Called-Station-Id}','%{Calling-Station-Id}','%{Acct-Session-Time}','%{Acct-Input-Octets
}','%{Acct-Input-Gigawords}','%{Acct-Output-Octets}','%{Acct-Output-Gigawords}','%{User-Name}','%{Class}','%{Framed-IP-Address}','%{NAS-Identifier}','%{
NAS-Port}','%{NAS-Port-Type}','%{Connect-Info}','%{NAS-IP-Address}','%{Event-Timestamp}')"
}
stop {
query = "CALL accounting_stop
('%{Acct-Session-Id}','%{SQL-User-Name}','%{Called-Station-Id}','%{Calling-Station-Id}','%{Acct-Session-Time}','%{
Acct-Input-Octets}','%{Acct-Input-Gigawords}','%{Acct-Output-Octets}','%{Acct-Output-Gigawords}','%{Acct-Terminate-Cause}','%{Framed-IP-Address}','%{NAS
-Identifier}','%{NAS-Port}','%{NAS-Port-Type}','%{Connect-Info}','%{Event-Timestamp}')"
}
}
}
post-auth {
reference = ".query"
}
}
rlm_sql (mysql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and
linked
Creating attribute mysql-SQL-Group
# Loaded module rlm_attr_filter
# Loading module "attr_filter.post-proxy" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
attr_filter attr_filter.post-proxy {
filename =
"/usr/local/etc/raddb/mods-config/attr_filter/post-proxy"
key = "%{Realm}"
relaxed = no
}
# Loading module "attr_filter.pre-proxy" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
attr_filter attr_filter.pre-proxy {
filename = "/usr/local/etc/raddb/mods-config/attr_filter/pre-proxy"
key = "%{Realm}"
relaxed = no
}
# Loading module "attr_filter.access_reject" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
attr_filter attr_filter.access_reject {
filename =
"/usr/local/etc/raddb/mods-config/attr_filter/access_reject"
key = "%{User-Name}"
relaxed = no
}
# Loading module "attr_filter.access_challenge" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
attr_filter attr_filter.access_challenge {
filename =
"/usr/local/etc/raddb/mods-config/attr_filter/access_challenge"
key = "%{User-Name}"
relaxed = no
}
# Loading module "attr_filter.accounting_response" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
attr_filter attr_filter.accounting_response {
filename =
"/usr/local/etc/raddb/mods-config/attr_filter/accounting_response"
key = "%{User-Name}"
relaxed = no
}
# Loading module "attr_filter.coa" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
attr_filter attr_filter.coa {
filename = "/usr/local/etc/raddb/mods-config/attr_filter/coa"
key = "%{User-Name}"
relaxed = no
}
# Loaded module rlm_replicate
# Loading module "replicate" from file
/usr/local/etc/raddb/mods-enabled/replicate
# Loaded module rlm_exec
# Loading module "googleauth" from file
/usr/local/etc/raddb/mods-enabled/googleauth
exec googleauth {
wait = yes
program = "/usr/local/etc/raddb/scripts/googleauth.py
%{request:User-Name} %{reply:MOTP-Init-Secret} %{reply:MOTP-PIN}
%{request:User-Password}"
shell_escape = yes
}
# Loaded module rlm_always
# Loading module "reject" from file
/usr/local/etc/raddb/mods-enabled/always
always reject {
rcode = "reject"
simulcount = 0
mpp = no
}
# Loading module "fail" from file
/usr/local/etc/raddb/mods-enabled/always
always fail {
rcode = "fail"
simulcount = 0
mpp = no
}
# Loading module "ok" from file /usr/local/etc/raddb/mods-enabled/always
always ok {
rcode = "ok"
simulcount = 0
mpp = no
}
# Loading module "handled" from file
/usr/local/etc/raddb/mods-enabled/always
always handled {
rcode = "handled"
simulcount = 0
mpp = no
}
# Loading module "invalid" from file
/usr/local/etc/raddb/mods-enabled/always
always invalid {
rcode = "invalid"
simulcount = 0
mpp = no
}
# Loading module "userlock" from file
/usr/local/etc/raddb/mods-enabled/always
always userlock {
rcode = "userlock"
simulcount = 0
mpp = no
}
# Loading module "notfound" from file
/usr/local/etc/raddb/mods-enabled/always
always notfound {
rcode = "notfound"
simulcount = 0
mpp = no
}
# Loading module "noop" from file
/usr/local/etc/raddb/mods-enabled/always
always noop {
rcode = "noop"
simulcount = 0
mpp = no
}
# Loading module "updated" from file
/usr/local/etc/raddb/mods-enabled/always
always updated {
rcode = "updated"
simulcount = 0
mpp = no
}
# Loading module "sql_office" from file
/usr/local/etc/raddb/mods-enabled/sql_office
sql sql_office {
driver = "rlm_sql_mysql"
server = "localhost"
port = 3306
login = "raduser"
password = <<< secret >>>
radius_db = "raddb"
read_groups = yes
read_profiles = yes
read_clients = yes
delete_stale_sessions = yes
sql_user_name = "%{User-Name}"
logfile = "/var/log/sqltrace.sql"
default_user_profile = ""
client_query = "CALL load_clients()"
authorize_check_query = "CALL authorize_check('%{SQL-User-Name}')"
authorize_reply_query = "CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')"
authorize_group_check_query = "CALL
authorize_group_check('%{sql_office-SQL-Group}')"
authorize_group_reply_query = "CALL
authorize_group_reply('%{sql_office-SQL-Group}')"
group_membership_query = "CALL
group_membership('%{SQL-User-Name}')"
simul_count_query = "CALL simul_count('%{SQL-User-Name}')"
safe_characters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#+%&?*-_@."
auto_escape = no
accounting {
reference = "%{tolower:type.%{Acct-Status-Type}.query}"
type {
accounting-on {
query = "CALL
accounting_on('%{Called-Station-Id}','%{Acct-Terminate-Cause}','%{NAS-Identifier}','%{NAS-IP-Address}','%{Event-Timestamp}')"
}
accounting-off {
query = "CALL
accounting_off('%{Called-Station-Id}','%{Acct-Terminate-Cause}','%{NAS-Identifier}','%{NAS-IP-Address}','%{Event-Timestamp}')"
}
start {
query = "CALL
accounting_start('%{Acct-Session-Id}','%{SQL-User-Name}','%{Class}','%{NAS-IP-Address}','%{Called-Station-Id}','%{Calling-Station-
Id}','%{Framed-IP-Address}','%{NAS-Identifier}','%{NAS-Port}','%{NAS-Port-Type}','%{Connect-Info}','%{Event-Timestamp}')"
}
interim-update {
query = "CALL accounting_update
('%{Acct-Session-Id}','%{Called-Station-Id}','%{Calling-Station-Id}','%{Acct-Session-Time}','%{Acct-Input-Octets
}','%{Acct-Input-Gigawords}','%{Acct-Output-Octets}','%{Acct-Output-Gigawords}','%{User-Name}','%{Class}','%{Framed-IP-Address}','%{NAS-Identifier}','%{
NAS-Port}','%{NAS-Port-Type}','%{Connect-Info}','%{NAS-IP-Address}','%{Event-Timestamp}')"
}
stop {
query = "CALL accounting_stop
('%{Acct-Session-Id}','%{SQL-User-Name}','%{Called-Station-Id}','%{Calling-Station-Id}','%{Acct-Session-Time}','%{
Acct-Input-Octets}','%{Acct-Input-Gigawords}','%{Acct-Output-Octets}','%{Acct-Output-Gigawords}','%{Acct-Terminate-Cause}','%{Framed-IP-Address}','%{NAS
-Identifier}','%{NAS-Port}','%{NAS-Port-Type}','%{Connect-Info}','%{Event-Timestamp}')"
}
}
}
post-auth {
reference = ".query"
}
}
rlm_sql (sql_office): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded
and linked
Creating attribute sql_office-SQL-Group
# Loaded module rlm_eap
# Loading module "eap" from file /usr/local/etc/raddb/mods-enabled/eap
eap {
default_eap_type = "ttls"
timer_expire = 60
max_eap_type = 52
ignore_unknown_eap_types = yes
cisco_accounting_username_bug = no
max_sessions = 4096
}
# Loaded module rlm_radutmp
# Loading module "sradutmp" from file
/usr/local/etc/raddb/mods-enabled/sradutmp
radutmp sradutmp {
filename = "/var/log/sradutmp"
username = "%{User-Name}"
case_sensitive = yes
check_with_nas = yes
permissions = 420
caller_id = no
}
# Loaded module rlm_pap
# Loading module "pap" from file /usr/local/etc/raddb/mods-enabled/pap
pap {
normalise = yes
}
# Loaded module rlm_logintime
# Loading module "logintime" from file
/usr/local/etc/raddb/mods-enabled/logintime
logintime {
minimum_timeout = 60
}
# Loading module "check_quota" from file
/usr/local/etc/raddb/mods-enabled/datacounter_acct
exec check_quota {
wait = no
program = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_acct.sh %{request:User-Name}
%{request:Calling-Station-Id} %{request:NAS
-IP-Address} %{request:Class} %{request:Acct-Status-Type}
%{request:Called-Station-Id} %{request:Framed-IP-Address}
%{request:Acct-Session-ID} %{request
:NAS-Identifier} "
shell_escape = yes
}
# Loading module "sql_guest" from file
/usr/local/etc/raddb/mods-enabled/sql_guest
sql sql_guest {
driver = "rlm_sql_unixodbc"
server = "mssqlserver"
port = 1433
login = "sa"
password = <<< secret >>>
radius_db = "radius"
read_groups = yes
read_profiles = yes
read_clients = no
delete_stale_sessions = yes
sql_user_name = "%{User-Name}"
logfile = "/var/log/sqltrace.sql"
default_user_profile = ""
client_query = "EXECUTE LoadClients()"
authorize_check_query = "EXECUTE AuthorizeCheck
N'%{SQL-User-Name}'"
authorize_reply_query = "EXECUTE AuthorizeReply
N'%{SQL-User-Name}', N'%{Calling-Station-Id}'"
authorize_group_check_query = "EXECUTE AuthorizeGroupCheck
N'%{sql_guest-SQL-Group}'"
authorize_group_reply_query = "EXECUTE AuthorizeGroupReply
N'%{sql_guest-SQL-Group}'"
group_membership_query = "EXECUTE GroupMembership
N'%{SQL-User-Name}'"
simul_count_query = "EXECUTE SimulCount N'%{SQL-User-Name}'"
safe_characters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#+%&?*-_@."
auto_escape = no
accounting {
reference = "%{tolower:type.%{Acct-Status-Type}.query}"
type {
accounting-on {
query = "EXECUTE AccountingOn N'%{Called-Station-Id}',
N'%{Acct-Terminate-Cause}', N'%{NAS-Identifier}', N'%{NAS-IP-Address}',
N'%{Event-Timesta
mp}'"
}
accounting-off {
query = "EXECUTE AccountingOff N'%{Called-Station-Id}',
N'%{Acct-Terminate-Cause}', N'%{NAS-Identifier}', N'%{NAS-IP-Address}',
N'%{Event-Timest
amp}'"
}
start {
query = "EXECUTE AccountingStart N'%{Acct-Session-Id}',
N'%{SQL-User-Name}', N'%{Class}', N'%{NAS-IP-Address}',
N'%{Called-Station-Id}', N'%{Cal
ling-Station-Id}', N'%{Framed-IP-Address}', N'%{NAS-Identifier}',
N'%{NAS-Port}', N'%{NAS-Port-Type}', N'%{Connect-Info}',
N'%{Event-Timestamp}'"
}
interim-update {
query = "EXECUTE AccountingUpdate N'%{Acct-Session-Id}',
N'%{Called-Station-Id}', N'%{Calling-Station-Id}',
N'%{Acct-Session-Time}', N'%{Acct-In
put-Octets}', N'%{Acct-Input-Gigawords}', N'%{Acct-Output-Octets}',
N'%{Acct-Output-Gigawords}', N'%{User-Name}', N'%{Class}',
N'%{Framed-IP-Address}',
N'%{NAS-Identifier}', N'%{NAS-Port}', N'%{NAS-Port-Type}',
N'%{Connect-Info}', N'%{NAS-IP-Address}', N'%{Event-Timestamp}'"
}
stop {
query = "EXECUTE AccountingStop N'%{Acct-Session-Id}',
N'%{SQL-User-Name}', N'%{Called-Station-Id}', N'%{Calling-Station-Id}',
N'%{Acct-Session-
Time}', N'%{Acct-Input-Octets}', N'%{Acct-Input-Gigawords}',
N'%{Acct-Output-Octets}', N'%{Acct-Output-Gigawords}',
N'%{Acct-Terminate-Cause}', N'%{Fram
ed-IP-Address}', N'%{NAS-Identifier}', N'%{NAS-Port}',
N'%{NAS-Port-Type}', N'%{Connect-Info}', N'%{Event-Timestamp}'"
}
}
}
post-auth {
reference = ".query"
}
}
rlm_sql (sql_guest): Driver rlm_sql_unixodbc (module rlm_sql_unixodbc)
loaded and linked
Creating attribute sql_guest-SQL-Group
# Loaded module rlm_unix
# Loading module "unix" from file /usr/local/etc/raddb/mods-enabled/unix
unix {
radwtmp = "/var/log/radwtmp"
}
Creating attribute Unix-Group
# Loading module "exec" from file /usr/local/etc/raddb/mods-enabled/exec
exec {
wait = no
input_pairs = "request"
shell_escape = yes
timeout = 10
}
# Loaded module rlm_unpack
# Loading module "unpack" from file
/usr/local/etc/raddb/mods-enabled/unpack
# Loading module "echo" from file /usr/local/etc/raddb/mods-enabled/echo
exec echo {
wait = yes
program = "/bin/echo %{User-Name}"
input_pairs = "request"
output_pairs = "reply"
shell_escape = yes
}
# Loaded module rlm_files
# Loading module "files" from file
/usr/local/etc/raddb/mods-enabled/files
files {
filename = "/usr/local/etc/raddb/mods-config/files/authorize"
acctusersfile = "/usr/local/etc/raddb/mods-config/files/accounting"
preproxy_usersfile =
"/usr/local/etc/raddb/mods-config/files/pre-proxy"
}
# Loaded module rlm_expiration
# Loading module "expiration" from file
/usr/local/etc/raddb/mods-enabled/expiration
# Loaded module rlm_dynamic_clients
# Loading module "dynamic_clients" from file
/usr/local/etc/raddb/mods-enabled/dynamic_clients
# Loaded module rlm_realm
# Loading module "IPASS" from file
/usr/local/etc/raddb/mods-enabled/realm
realm IPASS {
format = "prefix"
delimiter = "/"
ignore_default = no
ignore_null = yes
}
# Loading module "suffix" from file
/usr/local/etc/raddb/mods-enabled/realm
realm suffix {
format = "suffix"
delimiter = "@"
ignore_default = no
ignore_null = yes
}
# Loading module "realmpercent" from file
/usr/local/etc/raddb/mods-enabled/realm
realm realmpercent {
format = "suffix"
delimiter = "%"
ignore_default = no
ignore_null = yes
}
# Loading module "ntdomain" from file
/usr/local/etc/raddb/mods-enabled/realm
realm ntdomain {
format = "prefix"
delimiter = "\\"
ignore_default = no
ignore_null = yes
}
# Loading module "motp" from file /usr/local/etc/raddb/mods-enabled/motp
exec motp {
wait = yes
program = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/otpverify.sh %{request:User-Name}
%{request:User-Password} %{reply:MOTP-Init-Secret}
%{reply:MOTP-PIN} %{reply:MOTP-Offset}"
shell_escape = yes
}
# Loaded module rlm_preprocess
# Loading module "preprocess" from file
/usr/local/etc/raddb/mods-enabled/preprocess
preprocess {
huntgroups =
"/usr/local/etc/raddb/mods-config/preprocess/huntgroups"
hints = "/usr/local/etc/raddb/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_digest
# Loading module "digest" from file
/usr/local/etc/raddb/mods-enabled/digest
# Loaded module rlm_mschap
# Loading module "mschap" from file
/usr/local/etc/raddb/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_soh
# Loading module "soh" from file /usr/local/etc/raddb/mods-enabled/soh
soh {
dhcp = yes
}
# Loaded module rlm_detail
# Loading module "auth_log" from file
/usr/local/etc/raddb/mods-enabled/detail.log
detail auth_log {
filename =
"/var/log/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
escape_filenames = no
log_packet_header = no
}
# Loading module "reply_log" from file
/usr/local/etc/raddb/mods-enabled/detail.log
detail reply_log {
filename =
"/var/log/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
escape_filenames = no
log_packet_header = no
}
# Loading module "pre_proxy_log" from file
/usr/local/etc/raddb/mods-enabled/detail.log
detail pre_proxy_log {
filename =
"/var/log/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/pre-proxy-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
escape_filenames = no
log_packet_header = no
}
# Loading module "post_proxy_log" from file
/usr/local/etc/raddb/mods-enabled/detail.log
detail post_proxy_log {
filename =
"/var/log/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/post-proxy-detail-%Y%m%d"
header = "%t"
permissions = 384
locking = no
escape_filenames = no
log_packet_header = no
}
# Loaded module rlm_utf8
# Loading module "utf8" from file /usr/local/etc/raddb/mods-enabled/utf8
# Loading module "detail" from file
/usr/local/etc/raddb/mods-enabled/detail
detail {
filename =
"/var/log/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail_%Y_%m_%d"
header = "%t"
permissions = 384
locking = no
escape_filenames = no
log_packet_header = no
}
# Loading module "mssql" from file
/usr/local/etc/raddb/mods-enabled/mssql
sql mssql {
driver = "rlm_sql_unixodbc"
server = "mssqlserver"
port = 1433
login = "sa"
password = <<< secret >>>
radius_db = "radius"
read_groups = yes
read_profiles = yes
read_clients = no
delete_stale_sessions = yes
sql_user_name = "%{User-Name}"
logfile = "/var/log/sqltrace.sql"
default_user_profile = ""
client_query = "EXECUTE LoadClients()"
authorize_check_query = "EXECUTE AuthorizeCheck
N'%{SQL-User-Name}'"
authorize_reply_query = "EXECUTE AuthorizeReply
N'%{SQL-User-Name}', N'%{Calling-Station-Id}'"
authorize_group_check_query = "EXECUTE AuthorizeGroupCheck
N'%{mssql-SQL-Group}'"
authorize_group_reply_query = "EXECUTE AuthorizeGroupReply
N'%{mssql-SQL-Group}'"
group_membership_query = "EXECUTE GroupMembership
N'%{SQL-User-Name}'"
simul_count_query = "EXECUTE SimulCount N'%{SQL-User-Name}'"
safe_characters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#+%&?*-_@."
auto_escape = no
accounting {
reference = "%{tolower:type.%{Acct-Status-Type}.query}"
type {
accounting-on {
query = "EXECUTE AccountingOn N'%{Called-Station-Id}',
N'%{Acct-Terminate-Cause}', N'%{NAS-Identifier}', N'%{NAS-IP-Address}',
N'%{Event-Timesta
mp}'"
}
accounting-off {
query = "EXECUTE AccountingOff N'%{Called-Station-Id}',
N'%{Acct-Terminate-Cause}', N'%{NAS-Identifier}', N'%{NAS-IP-Address}',
N'%{Event-Timest
amp}'"
}
start {
query = "EXECUTE AccountingStart N'%{Acct-Session-Id}',
N'%{SQL-User-Name}', N'%{Class}', N'%{NAS-IP-Address}',
N'%{Called-Station-Id}', N'%{Cal
ling-Station-Id}', N'%{Framed-IP-Address}', N'%{NAS-Identifier}',
N'%{NAS-Port}', N'%{NAS-Port-Type}', N'%{Connect-Info}',
N'%{Event-Timestamp}'"
}
interim-update {
query = "EXECUTE AccountingUpdate N'%{Acct-Session-Id}',
N'%{Called-Station-Id}', N'%{Calling-Station-Id}',
N'%{Acct-Session-Time}', N'%{Acct-In
put-Octets}', N'%{Acct-Input-Gigawords}', N'%{Acct-Output-Octets}',
N'%{Acct-Output-Gigawords}', N'%{User-Name}', N'%{Class}',
N'%{Framed-IP-Address}',
N'%{NAS-Identifier}', N'%{NAS-Port}', N'%{NAS-Port-Type}',
N'%{Connect-Info}', N'%{NAS-IP-Address}', N'%{Event-Timestamp}'"
}
stop {
query = "EXECUTE AccountingStop N'%{Acct-Session-Id}',
N'%{SQL-User-Name}', N'%{Called-Station-Id}', N'%{Calling-Station-Id}',
N'%{Acct-Session-
Time}', N'%{Acct-Input-Octets}', N'%{Acct-Input-Gigawords}',
N'%{Acct-Output-Octets}', N'%{Acct-Output-Gigawords}',
N'%{Acct-Terminate-Cause}', N'%{Fram
ed-IP-Address}', N'%{NAS-Identifier}', N'%{NAS-Port}',
N'%{NAS-Port-Type}', N'%{Connect-Info}', N'%{Event-Timestamp}'"
}
}
}
post-auth {
reference = ".query"
}
}
rlm_sql (mssql): Driver rlm_sql_unixodbc (module rlm_sql_unixodbc)
loaded and linked
Creating attribute mssql-SQL-Group
# Loading module "radutmp" from file
/usr/local/etc/raddb/mods-enabled/radutmp
radutmp {
filename = "/var/log/radutmp"
username = "%{User-Name}"
case_sensitive = yes
check_with_nas = yes
permissions = 384
caller_id = yes
}
# Loaded module rlm_linelog
# Loading module "linelog" from file
/usr/local/etc/raddb/mods-enabled/linelog
linelog {
filename = "/var/log/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
/usr/local/etc/raddb/mods-enabled/linelog
linelog log_accounting {
filename = "/var/log/linelog-accounting"
escape_filenames = no
syslog_severity = "info"
permissions = 384
format = ""
reference = "Accounting-Request.%{%{Acct-Status-Type}:-unknown}"
}
instantiate {
# Instantiating module "expiration" from file
/usr/local/etc/raddb/mods-enabled/expiration
# Instantiating module "logintime" from file
/usr/local/etc/raddb/mods-enabled/logintime
# Instantiating module "mssql" from file
/usr/local/etc/raddb/mods-enabled/mssql
rlm_sql (mssql): Attempting to connect to database "radius"
rlm_sql (mssql): Initialising connection pool
pool {
start = 5
min = 5
max = 10
spare = 3
uses = 0
lifetime = 0
cleanup_interval = 30
idle_timeout = 60
retry_delay = 1
max_retries = 5
spread = no
}
rlm_sql (mssql): Opening additional connection (0), 1 of 10 pending
slots used
rlm_sql (mssql): Opening additional connection (1), 1 of 9 pending slots
used
rlm_sql (mssql): Opening additional connection (2), 1 of 8 pending slots
used
rlm_sql (mssql): Opening additional connection (3), 1 of 7 pending slots
used
rlm_sql (mssql): Opening additional connection (4), 1 of 6 pending slots
used
# Instantiating module "mysql" from file
/usr/local/etc/raddb/mods-enabled/mysql
rlm_sql_mysql: libmysql version: 8.0.39
mysql {
tls {
tls_required = no
check_cert = no
check_cert_cn = no
}
warnings = "auto"
}
rlm_sql (mysql): Attempting to connect to database "raddb"
rlm_sql (mysql): Initialising connection pool
pool {
start = 5
min = 3
max = 5
spare = 10
uses = 0
lifetime = 0
cleanup_interval = 30
idle_timeout = 60
retry_delay = 60
max_retries = 5
spread = no
}
Ignoring "spare = 10", forcing to "spare = 2"
rlm_sql (mysql): Opening additional connection (0), 1 of 5 pending slots
used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
rlm_sql (mysql): Opening additional connection (1), 1 of 4 pending slots
used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
rlm_sql (mysql): Opening additional connection (2), 1 of 3 pending slots
used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
rlm_sql (mysql): Opening additional connection (3), 1 of 2 pending slots
used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
rlm_sql (mysql): Opening additional connection (4), 1 of 1 pending slots
used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
}
# Instantiating module "etc_passwd" from file
/usr/local/etc/raddb/mods-enabled/passwd
rlm_passwd: nfields: 3 keyfield 0(User-Name) listable: no
# Instantiating module "attr_filter.post-proxy" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
reading pairlist file
/usr/local/etc/raddb/mods-config/attr_filter/post-proxy
# Instantiating module "attr_filter.pre-proxy" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
reading pairlist file /usr/local/etc/raddb/mods-config/attr_filter/pre-proxy
# Instantiating module "attr_filter.access_reject" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
reading pairlist file
/usr/local/etc/raddb/mods-config/attr_filter/access_reject
# Instantiating module "attr_filter.access_challenge" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
reading pairlist file
/usr/local/etc/raddb/mods-config/attr_filter/access_challenge
# Instantiating module "attr_filter.accounting_response" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
reading pairlist file
/usr/local/etc/raddb/mods-config/attr_filter/accounting_response
# Instantiating module "attr_filter.coa" from file
/usr/local/etc/raddb/mods-enabled/attr_filter
reading pairlist file /usr/local/etc/raddb/mods-config/attr_filter/coa
# Instantiating module "reject" from file
/usr/local/etc/raddb/mods-enabled/always
# Instantiating module "fail" from file
/usr/local/etc/raddb/mods-enabled/always
# Instantiating module "ok" from file
/usr/local/etc/raddb/mods-enabled/always
# Instantiating module "handled" from file
/usr/local/etc/raddb/mods-enabled/always
# Instantiating module "invalid" from file
/usr/local/etc/raddb/mods-enabled/always
# Instantiating module "userlock" from file
/usr/local/etc/raddb/mods-enabled/always
# Instantiating module "notfound" from file
/usr/local/etc/raddb/mods-enabled/always
# Instantiating module "noop" from file
/usr/local/etc/raddb/mods-enabled/always
# Instantiating module "updated" from file
/usr/local/etc/raddb/mods-enabled/always
# Instantiating module "sql_office" from file
/usr/local/etc/raddb/mods-enabled/sql_office
mysql {
tls {
tls_required = no
check_cert = no
check_cert_cn = no
}
warnings = "auto"
}
rlm_sql (sql_office): Attempting to connect to database "raddb"
rlm_sql (sql_office): Initialising connection pool
pool {
start = 5
min = 3
max = 8
spare = 10
uses = 0
lifetime = 0
cleanup_interval = 30
idle_timeout = 60
retry_delay = 30
max_retries = 5
spread = no
}
Ignoring "spare = 10", forcing to "spare = 5"
rlm_sql (sql_office): Opening additional connection (0), 1 of 8 pending
slots used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
rlm_sql (sql_office): Opening additional connection (1), 1 of 7 pending
slots used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
rlm_sql (sql_office): Opening additional connection (2), 1 of 6 pending
slots used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
rlm_sql (sql_office): Opening additional connection (3), 1 of 5 pending
slots used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
rlm_sql (sql_office): Opening additional connection (4), 1 of 4 pending
slots used
rlm_sql_mysql: Starting connect to MySQL server
WARNING: MYSQL_OPT_RECONNECT is deprecated and will be removed in a
future version.
rlm_sql_mysql: Connected to database 'raddb' on Localhost via UNIX
socket, server version 8.0.35, protocol version 10
rlm_sql (sql_office): Processing generate_sql_clients
rlm_sql (sql_office) in generate_sql_clients: query is CALL load_clients()
rlm_sql (sql_office): Reserved connection (0)
rlm_sql (sql_office): Executing select query: CALL load_clients()
rlm_sql (sql_office): Adding client 192.168.0.21 (RESEPSIYON) to global
clients list
rlm_sql (192.168.0.21): Client "RESEPSIYON" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.22 (RESTORAN) to global
clients list
rlm_sql (192.168.0.22): Client "RESTORAN" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.23 (KAT4-1) to global
clients list
rlm_sql (192.168.0.23): Client "KAT4-1" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.24 (KAT4-2) to global
clients list
rlm_sql (192.168.0.24): Client "KAT4-2" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.25 (KAT5-1) to global
clients list
rlm_sql (192.168.0.25): Client "KAT5-1" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.26 (KAT5-2) to global
clients list
rlm_sql (192.168.0.26): Client "KAT5-2" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.27 (KAT6-1) to global
clients list
rlm_sql (192.168.0.27): Client "KAT6-1" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.28 (KAT6-2) to global
clients list
rlm_sql (192.168.0.28): Client "KAT6-2" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.29 (KAT7-1) to global
clients list
rlm_sql (192.168.0.29): Client "KAT7-1" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.30 (KAT7-2) to global
clients list
rlm_sql (192.168.0.30): Client "KAT7-2" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.31 (KAT8-1) to global
clients list
rlm_sql (192.168.0.31): Client "KAT8-1" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.32 (KATT) to global
clients list
rlm_sql (192.168.0.32): Client "KATT" (sql_office) added
rlm_sql (sql_office): Adding client 192.168.0.5 (UNIFI) to global
clients list
rlm_sql (192.168.0.5): Client "UNIFI" (sql_office) added
rlm_sql (sql_office): Released connection (0)
# Instantiating module "eap" from file
/usr/local/etc/raddb/mods-enabled/eap
# Linked to sub-module rlm_eap_tls
tls {
tls = "tls-common"
}
tls-config tls-common {
verify_depth = 0
ca_path = "/usr/local/etc/raddb/certs"
pem_file_type = yes
private_key_file = "/usr/local/etc/raddb/certs/server_key.pem"
certificate_file = "/usr/local/etc/raddb/certs/server_cert.pem"
ca_file = "/usr/local/etc/raddb/certs/ca_cert.pem"
dh_file = "/usr/local/etc/raddb/certs/dh"
random_file = "/dev/urandom"
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
check_cert_issuer = "/CN=scs-ca/C=TR/ST=KONYA/L=Konya/O=SCS
Kurumsal Bilisim Hizmetleri Ltd"
reject_unknown_intermediate_ca = no
ecdh_curve = "prime256v1"
tls_min_version = "1.0"
cache {
enable = no
lifetime = 24
max_entries = 255
}
verify {
skip_if_ocsp_ok = no
}
ocsp {
enable = no
override_cert_url = no
url = "http://127.0.0.1/ocsp/"
use_nonce = yes
timeout = 0
softfail = no
}
}
tls: In order to use TLS 1.0 and/or TLS 1.1, you likely need to set:
cipher_list = "DEFAULT@SECLEVEL=0"
tls: Setting DH parameters from /usr/local/etc/raddb/certs/dh - this is
no longer necessary.
tls: You should comment out the 'dh_file' configuration item.
# Linked to sub-module rlm_eap_ttls
ttls {
tls = "tls-common"
default_eap_type = "tls"
copy_request_to_tunnel = yes
use_tunneled_reply = no
virtual_server = "inner-tunnel-ttls"
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 = "tls"
copy_request_to_tunnel = yes
use_tunneled_reply = no
proxy_tunneled_request_as_eap = yes
virtual_server = "inner-tunnel-peap"
soh = yes
require_client_cert = no
soh_virtual_server = "soh-server"
}
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 "pap" from file
/usr/local/etc/raddb/mods-enabled/pap
# Instantiating module "sql_guest" from file
/usr/local/etc/raddb/mods-enabled/sql_guest
rlm_sql (sql_guest): Attempting to connect to database "radius"
rlm_sql (sql_guest): Initialising connection pool
pool {
start = 5
min = 5
max = 10
spare = 3
uses = 0
lifetime = 0
cleanup_interval = 30
idle_timeout = 60
retry_delay = 1
max_retries = 5
spread = no
}
rlm_sql (sql_guest): Opening additional connection (0), 1 of 10 pending
slots used
rlm_sql (sql_guest): Opening additional connection (1), 1 of 9 pending
slots used
rlm_sql (sql_guest): Opening additional connection (2), 1 of 8 pending
slots used
rlm_sql (sql_guest): Opening additional connection (3), 1 of 7 pending
slots used
rlm_sql (sql_guest): Opening additional connection (4), 1 of 6 pending
slots used
# Instantiating module "files" from file
/usr/local/etc/raddb/mods-enabled/files
reading pairlist file /usr/local/etc/raddb/mods-config/files/authorize
reading pairlist file /usr/local/etc/raddb/mods-config/files/accounting
reading pairlist file /usr/local/etc/raddb/mods-config/files/pre-proxy
# Instantiating module "IPASS" from file
/usr/local/etc/raddb/mods-enabled/realm
# Instantiating module "suffix" from file
/usr/local/etc/raddb/mods-enabled/realm
# Instantiating module "realmpercent" from file
/usr/local/etc/raddb/mods-enabled/realm
# Instantiating module "ntdomain" from file
/usr/local/etc/raddb/mods-enabled/realm
# Instantiating module "preprocess" from file
/usr/local/etc/raddb/mods-enabled/preprocess
reading pairlist file /usr/local/etc/raddb/mods-config/preprocess/huntgroups
reading pairlist file /usr/local/etc/raddb/mods-config/preprocess/hints
# Instantiating module "mschap" from file
/usr/local/etc/raddb/mods-enabled/mschap
rlm_mschap (mschap): using internal authentication
# Instantiating module "auth_log" from file
/usr/local/etc/raddb/mods-enabled/detail.log
rlm_detail (auth_log): 'User-Password' suppressed, will not appear in
detail output
# Instantiating module "reply_log" from file
/usr/local/etc/raddb/mods-enabled/detail.log
# Instantiating module "pre_proxy_log" from file
/usr/local/etc/raddb/mods-enabled/detail.log
# Instantiating module "post_proxy_log" from file
/usr/local/etc/raddb/mods-enabled/detail.log
# Instantiating module "detail" from file
/usr/local/etc/raddb/mods-enabled/detail
# Instantiating module "linelog" from file
/usr/local/etc/raddb/mods-enabled/linelog
# Instantiating module "log_accounting" from file
/usr/local/etc/raddb/mods-enabled/linelog
} # modules
radiusd: #### Loading Virtual Servers ####
server { # from file /usr/local/etc/raddb/radiusd.conf
} # server
server inner-tunnel-peap { # from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-peap
# Loading authenticate {...}
Compiling Auth-Type PAP for attr Auth-Type
Compiling Auth-Type MS-CHAP for attr Auth-Type
# Loading authorize {...}
# Loading session {...}
# Loading post-proxy {...}
# Loading post-auth {...}
Compiling Post-Auth-Type REJECT for attr Post-Auth-Type
} # server inner-tunnel-peap
server inner-tunnel-ttls { # from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
# Loading authenticate {...}
Compiling Auth-Type PAP for attr Auth-Type
Compiling Auth-Type MS-CHAP for attr Auth-Type
# Loading authorize {...}
# Loading session {...}
# Loading post-proxy {...}
# Loading post-auth {...}
Compiling Post-Auth-Type REJECT for attr Post-Auth-Type
} # server inner-tunnel-ttls
server staff { # from file /usr/local/etc/raddb/sites-enabled/staff
# Loading authenticate {...}
Compiling Auth-Type MS-CHAP for attr Auth-Type
# Loading authorize {...}
Compiling Autz-Type Status-Server for attr Autz-Type
# Loading preacct {...}
# Loading accounting {...}
# Loading session {...}
# Loading post-proxy {...}
# Loading post-auth {...}
} # server staff
server guest { # from file /usr/local/etc/raddb/sites-enabled/guest
# Loading authenticate {...}
Compiling Auth-Type MS-CHAP for attr Auth-Type
# Loading authorize {...}
Compiling Autz-Type Status-Server for attr Autz-Type
# Loading preacct {...}
# Loading accounting {...}
# Loading session {...}
# Loading post-proxy {...}
# Loading post-auth {...}
} # server guest
radiusd: #### Opening IP addresses and Ports ####
listen {
type = "auth"
ipaddr = 127.0.0.1
port = 18128
}
listen {
type = "auth"
ipaddr = 127.0.0.1
port = 18127
}
listen {
type = "auth"
ipaddr = 192.168.1.1
port = 1812
}
listen {
type = "acct"
ipaddr = 192.168.1.1
port = 1813
}
listen {
type = "auth"
ipaddr = 192.168.255.12
port = 1812
}
listen {
type = "acct"
ipaddr = 192.168.255.12
port = 1813
}
Listening on auth address 127.0.0.1 port 18128 bound to server
inner-tunnel-peap
Listening on auth address 127.0.0.1 port 18127 bound to server
inner-tunnel-ttls
Listening on auth address 192.168.1.1 port 1812 bound to server staff
Listening on acct address 192.168.1.1 port 1813 bound to server staff
Listening on auth address 192.168.255.12 port 1812 bound to server guest
Listening on acct address 192.168.255.12 port 1813 bound to server guest
Ready to process requests
(0) Received Access-Request Id 46 from 192.168.1.11:38756 to
192.168.1.1:1812 length 219
(0) User-Name = "scilek"
(0) NAS-IP-Address = 192.168.1.11
(0) NAS-Identifier = "DENEME"
(0) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(0) NAS-Port-Type = Wireless-802.11
(0) Service-Type = Framed-User
(0) Calling-Station-Id = "7C-24-99-BB-95-97"
(0) Connect-Info = "CONNECT 0Mbps 802.11b"
(0) Acct-Session-Id = "2BF296A0F9146E3B"
(0) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(0) Mobility-Domain-Id = 47287
(0) WLAN-Pairwise-Cipher = 1027076
(0) WLAN-Group-Cipher = 1027076
(0) WLAN-AKM-Suite = 1027075
(0) Framed-MTU = 1400
(0) EAP-Message = 0x02c9000b017363696c656b
(0) Message-Authenticator = 0x54953d21791aca8302aa1d112e7e9e1e
(0) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/staff
(0) authorize {
(0) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
rlm_sql (mysql): Reserved connection (2)
rlm_sql (mysql): Released connection (2)
(0) EXPAND %{User-Name}
(0) --> scilek
(0) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(0) EXPAND /var/log/sqltrace.sql
(0) --> /var/log/sqltrace.sql
(0) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (3)
(0) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(0) --> 1
(0) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(0) [preprocess] = ok
(0) mysql: EXPAND %{User-Name}
(0) mysql: --> scilek
(0) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (4)
(0) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(0) mysql: --> CALL authorize_check('scilek')
(0) mysql: Executing select query: CALL authorize_check('scilek')
(0) mysql: User found in radcheck table
(0) mysql: Conditional check items matched, merging assignment check items
(0) mysql: Cleartext-Password := "aaaa"
(0) mysql: Simultaneous-Use := 3
(0) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(0) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(0) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(0) mysql: User found in radreply table, merging reply items
(0) mysql: Class := 0x7363696c656b
(0) mysql: Idle-Timeout := 120
(0) mysql: Acct-Interim-Interval := 600
(0) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(0) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(0) mysql: --> CALL group_membership('scilek')
(0) mysql: Executing select query: CALL group_membership('scilek')
(0) mysql: User not found in any groups
rlm_sql (mysql): Released connection (4)
(0) [mysql] = ok
(0) pap: No User-Password attribute in the request. Cannot do PAP
(0) [pap] = noop
(0) eap: Peer sent EAP Response (code 2) ID 201 length 11
(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 /usr/local/etc/raddb/sites-enabled/staff
(0) authenticate {
(0) eap: Peer sent packet with method EAP Identity (1)
(0) eap: Calling submodule eap_ttls to process data
(0) eap_ttls: (TLS) Initiating new session
(0) eap: Sending EAP Request (code 1) ID 202 length 6
(0) eap: EAP session adding &reply:State = 0xb050be94b09aab4e
(0) [eap] = handled
(0) } # authenticate = handled
(0) Using Post-Auth-Type Challenge
(0) Post-Auth-Type sub-section not found. Ignoring.
(0) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(0) session-state: Saving cached attributes
(0) Framed-MTU = 994
(0) Sent Access-Challenge Id 46 from 192.168.1.1:1812 to
192.168.1.11:38756 length 84
(0) Class = 0x7363696c656b
(0) Idle-Timeout = 120
(0) Acct-Interim-Interval = 600
(0) EAP-Message = 0x01ca00061520
(0) Message-Authenticator = 0x00000000000000000000000000000000
(0) State = 0xb050be94b09aab4e7b2311cb3d254004
(0) Finished request
Waking up in 4.9 seconds.
(1) Received Access-Request Id 47 from 192.168.1.11:38756 to
192.168.1.1:1812 length 387
(1) User-Name = "scilek"
(1) NAS-IP-Address = 192.168.1.11
(1) NAS-Identifier = "DENEME"
(1) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(1) NAS-Port-Type = Wireless-802.11
(1) Service-Type = Framed-User
(1) Calling-Station-Id = "7C-24-99-BB-95-97"
(1) Connect-Info = "CONNECT 0Mbps 802.11b"
(1) Acct-Session-Id = "2BF296A0F9146E3B"
(1) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(1) Mobility-Domain-Id = 47287
(1) WLAN-Pairwise-Cipher = 1027076
(1) WLAN-Group-Cipher = 1027076
(1) WLAN-AKM-Suite = 1027075
(1) Framed-MTU = 1400
(1) EAP-Message =
0x02ca00a115800000009716030100920100008e030369b31db69281dcfdd217c58574cb0b61b6d7b2f6814e9296c03a7b33e233023b00002c00ffc02cc02bc024c0
23c00ac009c008c030c02fc028c027c014c013c012009d009c003d003c0035002f000a01000039000a00080006001700180019000b00020100000d0012001004010201050106010403020305
0306030005000501000000000012000000170000
(1) State = 0xb050be94b09aab4e7b2311cb3d254004
(1) Message-Authenticator = 0xd2b41f59f236bb533b0f7935b345bb41
(1) Restoring &session-state
(1) &session-state:Framed-MTU = 994
(1) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/staff
(1) authorize {
(1) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
rlm_sql (mysql): Reserved connection (2)
rlm_sql (mysql): Released connection (2)
(1) EXPAND %{User-Name}
(1) --> scilek
(1) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(1) EXPAND /var/log/sqltrace.sql
(1) --> /var/log/sqltrace.sql
(1) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (3)
(1) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(1) --> 1
(1) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(1) [preprocess] = ok
(1) mysql: EXPAND %{User-Name}
(1) mysql: --> scilek
(1) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (4)
(1) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(1) mysql: --> CALL authorize_check('scilek')
(1) mysql: Executing select query: CALL authorize_check('scilek')
(1) mysql: User found in radcheck table
(1) mysql: Conditional check items matched, merging assignment check items
(1) mysql: Cleartext-Password := "aaaa"
(1) mysql: Simultaneous-Use := 3
(1) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(1) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(1) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(1) mysql: User found in radreply table, merging reply items
(1) mysql: Class := 0x7363696c656b
(1) mysql: Idle-Timeout := 120
(1) mysql: Acct-Interim-Interval := 600
(1) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(1) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(1) mysql: --> CALL group_membership('scilek')
(1) mysql: Executing select query: CALL group_membership('scilek')
(1) mysql: User not found in any groups
rlm_sql (mysql): Released connection (4)
(1) [mysql] = ok
(1) pap: No User-Password attribute in the request. Cannot do PAP
(1) [pap] = noop
(1) eap: Peer sent EAP Response (code 2) ID 202 length 161
(1) eap: Continuing tunnel setup
(1) [eap] = ok
(1) } # authorize = ok
(1) Found Auth-Type = eap
(1) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(1) authenticate {
(1) eap: Expiring EAP session with state 0xb050be94b09aab4e
(1) eap: Finished EAP session with state 0xb050be94b09aab4e
(1) eap: Previous EAP request found for state 0xb050be94b09aab4e,
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) Handshake state - before SSL initialization
(1) eap_ttls: (TLS) Handshake state - Server before SSL initialization
(1) eap_ttls: (TLS) Handshake state - Server before SSL initialization
(1) eap_ttls: (TLS) recv TLS 1.3 Handshake, ClientHello
(1) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS read client hello
(1) eap_ttls: (TLS) send TLS 1.2 Handshake, ServerHello
(1) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS write server hello
(1) eap_ttls: (TLS) send TLS 1.2 Handshake, Certificate
(1) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS write certificate
(1) eap_ttls: (TLS) send TLS 1.2 Handshake, ServerKeyExchange
(1) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS write key exchange
(1) eap_ttls: (TLS) send TLS 1.2 Handshake, ServerHelloDone
(1) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS write server done
(1) eap_ttls: (TLS) Server : Need to read more data: SSLv3/TLS write
server done
(1) eap_ttls: (TLS) In Handshake Phase
(1) eap: Sending EAP Request (code 1) ID 203 length 1004
(1) eap: EAP session adding &reply:State = 0xb050be94b19bab4e
(1) [eap] = handled
(1) } # authenticate = handled
(1) Using Post-Auth-Type Challenge
(1) Post-Auth-Type sub-section not found. Ignoring.
(1) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(1) session-state: Saving cached attributes
(1) Framed-MTU = 994
(1) TLS-Session-Information = "(TLS) recv TLS 1.3 Handshake, ClientHello"
(1) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, ServerHello"
(1) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Certificate"
(1) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerKeyExchange"
(1) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerHelloDone"
(1) Sent Access-Challenge Id 47 from 192.168.1.1:1812 to
192.168.1.11:38756 length 1088
(1) Class = 0x7363696c656b
(1) Idle-Timeout = 120
(1) Acct-Interim-Interval = 600
(1) EAP-Message =
0x01cb03ec15c000000aa7160303003d020000390303b5dc43036a219d4b0b1a20615f2b1b0d78bd4c00e33aa6d4476f9e2fcf3e376100c030000011ff0100010000
0b0004030001020017000016030309050b0009010008fe0004ba308204b63082039ea003020102020105300d06092a864886f70d01010b0500306c310f300d060355040313067363732d6361
310b3009060355040613025452310e300c060355040813054b4f4e5941310e300c060355040713054b6f6e7961312c302a060355040a1323534353204b7572756d73616c2042696c6973696d
2048697a6d65746c657269204c74643020170d3236303331323230303032315a180f32303539303131383230303032315a306c310f300d06035504031306726164697573310b300906035504
0613025452310e300c060355040813054b4f4e5941310e300c060355040713054b6f6e7961312c302a060355040a1323534353204b7572756d73616c2042696c6973696d2048697a6d65746c
657269204c74
(1) Message-Authenticator = 0x00000000000000000000000000000000
(1) State = 0xb050be94b19bab4e7b2311cb3d254004
(1) Finished request
Waking up in 4.9 seconds.
(2) Received Access-Request Id 48 from 192.168.1.11:38756 to
192.168.1.1:1812 length 232
(2) User-Name = "scilek"
(2) NAS-IP-Address = 192.168.1.11
(2) NAS-Identifier = "DENEME"
(2) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(2) NAS-Port-Type = Wireless-802.11
(2) Service-Type = Framed-User
(2) Calling-Station-Id = "7C-24-99-BB-95-97"
(2) Connect-Info = "CONNECT 0Mbps 802.11b"
(2) Acct-Session-Id = "2BF296A0F9146E3B"
(2) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(2) Mobility-Domain-Id = 47287
(2) WLAN-Pairwise-Cipher = 1027076
(2) WLAN-Group-Cipher = 1027076
(2) WLAN-AKM-Suite = 1027075
(2) Framed-MTU = 1400
(2) EAP-Message = 0x02cb00061500
(2) State = 0xb050be94b19bab4e7b2311cb3d254004
(2) Message-Authenticator = 0xa703b43f285bef20dc8ff90db0ef0d7d
(2) Restoring &session-state
(2) &session-state:Framed-MTU = 994
(2) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.3
Handshake, ClientHello"
(2) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHello"
(2) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, Certificate"
(2) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerKeyExchange"
(2) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHelloDone"
(2) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/staff
(2) authorize {
(2) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
rlm_sql (mysql): Reserved connection (2)
rlm_sql (mysql): Released connection (2)
(2) EXPAND %{User-Name}
(2) --> scilek
(2) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(2) EXPAND /var/log/sqltrace.sql
(2) --> /var/log/sqltrace.sql
(2) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (3)
(2) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(2) --> 1
(2) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(2) [preprocess] = ok
(2) mysql: EXPAND %{User-Name}
(2) mysql: --> scilek
(2) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (4)
(2) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(2) mysql: --> CALL authorize_check('scilek')
(2) mysql: Executing select query: CALL authorize_check('scilek')
(2) mysql: User found in radcheck table
(2) mysql: Conditional check items matched, merging assignment check items
(2) mysql: Cleartext-Password := "aaaa"
(2) mysql: Simultaneous-Use := 3
(2) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(2) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(2) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(2) mysql: User found in radreply table, merging reply items
(2) mysql: Class := 0x7363696c656b
(2) mysql: Idle-Timeout := 120
(2) mysql: Acct-Interim-Interval := 600
(2) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(2) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(2) mysql: --> CALL group_membership('scilek')
(2) mysql: Executing select query: CALL group_membership('scilek')
(2) mysql: User not found in any groups
rlm_sql (mysql): Released connection (4)
(2) [mysql] = ok
(2) pap: No User-Password attribute in the request. Cannot do PAP
(2) [pap] = noop
(2) eap: Peer sent EAP Response (code 2) ID 203 length 6
(2) eap: Continuing tunnel setup
(2) [eap] = ok
(2) } # authorize = ok
(2) Found Auth-Type = eap
(2) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(2) authenticate {
(2) eap: Expiring EAP session with state 0xb050be94b19bab4e
(2) eap: Finished EAP session with state 0xb050be94b19bab4e
(2) eap: Previous EAP request found for state 0xb050be94b19bab4e,
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 204 length 1004
(2) eap: EAP session adding &reply:State = 0xb050be94b29cab4e
(2) [eap] = handled
(2) } # authenticate = handled
(2) Using Post-Auth-Type Challenge
(2) Post-Auth-Type sub-section not found. Ignoring.
(2) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(2) session-state: Saving cached attributes
(2) Framed-MTU = 994
(2) TLS-Session-Information = "(TLS) recv TLS 1.3 Handshake, ClientHello"
(2) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, ServerHello"
(2) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Certificate"
(2) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerKeyExchange"
(2) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerHelloDone"
(2) Sent Access-Challenge Id 48 from 192.168.1.1:1812 to
192.168.1.11:38756 length 1088
(2) Class = 0x7363696c656b
(2) Idle-Timeout = 120
(2) Acct-Interim-Interval = 600
(2) EAP-Message =
0x01cc03ec15c000000aa7020230110603551d11040a30088206726164697573300d06092a864886f70d01010b050003820101003d658b1913031f266a933b8dce03
077c97910312dba9a3bca29462e20d4597dc8cc2c4701ccc79a03dfea5d8b72218888f8f9ac1a9591466b5dcde5f321b3853f9c23a6e5013922eae218a3fdf833b1ba07725bb59b955644c73
c54db7f84c6df5055bbd0ee9a78d50bc97b6eba75c47ab59f4e7b8ec4dc4fc45d0fe38afacd3b97ce21a7a920afcc35e39a8cd39251f326932c21c1fd8f65eb91d716fd89a9edc8ff9775c2c
d0d41c2c3ac12aba8bbe3dc98cd7aec0fa666fe1515939ff6587d81b0d763b1f0df5df4af9491a7c51949ff38b90556c6ffb3f6bb8a9eccdab1f45d6f00bf327a27dfb08b7dc7dbc8bab5e80
32089f270de9df5c3ccbca93909400043e3082043a30820322a003020102020866d39f0cf0ffff0e300d06092a864886f70d01010b0500306c310f300d060355040313067363732d6361310b
300906035504
(2) Message-Authenticator = 0x00000000000000000000000000000000
(2) State = 0xb050be94b29cab4e7b2311cb3d254004
(2) Finished request
Waking up in 4.9 seconds.
(3) Received Access-Request Id 49 from 192.168.1.11:38756 to
192.168.1.1:1812 length 232
(3) User-Name = "scilek"
(3) NAS-IP-Address = 192.168.1.11
(3) NAS-Identifier = "DENEME"
(3) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(3) NAS-Port-Type = Wireless-802.11
(3) Service-Type = Framed-User
(3) Calling-Station-Id = "7C-24-99-BB-95-97"
(3) Connect-Info = "CONNECT 0Mbps 802.11b"
(3) Acct-Session-Id = "2BF296A0F9146E3B"
(3) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(3) Mobility-Domain-Id = 47287
(3) WLAN-Pairwise-Cipher = 1027076
(3) WLAN-Group-Cipher = 1027076
(3) WLAN-AKM-Suite = 1027075
(3) Framed-MTU = 1400
(3) EAP-Message = 0x02cc00061500
(3) State = 0xb050be94b29cab4e7b2311cb3d254004
(3) Message-Authenticator = 0x7b4285293304be6c8f0f84d0f5b9bda4
(3) Restoring &session-state
(3) &session-state:Framed-MTU = 994
(3) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.3
Handshake, ClientHello"
(3) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHello"
(3) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, Certificate"
(3) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerKeyExchange"
(3) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHelloDone"
(3) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/staff
(3) authorize {
(3) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
rlm_sql (mysql): Reserved connection (2)
rlm_sql (mysql): Released connection (2)
(3) EXPAND %{User-Name}
(3) --> scilek
(3) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(3) EXPAND /var/log/sqltrace.sql
(3) --> /var/log/sqltrace.sql
(3) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (3)
(3) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(3) --> 1
(3) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(3) [preprocess] = ok
(3) mysql: EXPAND %{User-Name}
(3) mysql: --> scilek
(3) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (4)
(3) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(3) mysql: --> CALL authorize_check('scilek')
(3) mysql: Executing select query: CALL authorize_check('scilek')
(3) mysql: User found in radcheck table
(3) mysql: Conditional check items matched, merging assignment check items
(3) mysql: Cleartext-Password := "aaaa"
(3) mysql: Simultaneous-Use := 3
(3) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(3) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(3) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(3) mysql: User found in radreply table, merging reply items
(3) mysql: Class := 0x7363696c656b
(3) mysql: Idle-Timeout := 120
(3) mysql: Acct-Interim-Interval := 600
(3) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(3) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(3) mysql: --> CALL group_membership('scilek')
(3) mysql: Executing select query: CALL group_membership('scilek')
(3) mysql: User not found in any groups
rlm_sql (mysql): Released connection (4)
(3) [mysql] = ok
(3) pap: No User-Password attribute in the request. Cannot do PAP
(3) [pap] = noop
(3) eap: Peer sent EAP Response (code 2) ID 204 length 6
(3) eap: Continuing tunnel setup
(3) [eap] = ok
(3) } # authorize = ok
(3) Found Auth-Type = eap
(3) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(3) authenticate {
(3) eap: Expiring EAP session with state 0xb050be94b29cab4e
(3) eap: Finished EAP session with state 0xb050be94b29cab4e
(3) eap: Previous EAP request found for state 0xb050be94b29cab4e,
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 205 length 749
(3) eap: EAP session adding &reply:State = 0xb050be94b39dab4e
(3) [eap] = handled
(3) } # authenticate = handled
(3) Using Post-Auth-Type Challenge
(3) Post-Auth-Type sub-section not found. Ignoring.
(3) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(3) session-state: Saving cached attributes
(3) Framed-MTU = 994
(3) TLS-Session-Information = "(TLS) recv TLS 1.3 Handshake, ClientHello"
(3) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, ServerHello"
(3) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Certificate"
(3) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerKeyExchange"
(3) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerHelloDone"
(3) Sent Access-Challenge Id 49 from 192.168.1.1:1812 to
192.168.1.11:38756 length 831
(3) Class = 0x7363696c656b
(3) Idle-Timeout = 120
(3) Acct-Interim-Interval = 600
(3) EAP-Message =
0x01cd02ed158000000aa752310e300c060355040813054b4f4e5941310e300c060355040713054b6f6e7961312c302a060355040a1323534353204b7572756d7361
6c2042696c6973696d2048697a6d65746c657269204c7464820866d39f0cf0ffff0e300c0603551d13040530030101ff300b0603551d0f040403020106300d06092a864886f70d01010b0500
0382010100b5b35e2e36b89c388b93481bb63001ddbb88f7964c6df60966edfe1bee6c34ec27c1839cc4ac042cb5e7d18a27ad99786226cf4534e3fb16363d7f12efd0f4a641dbc6c7f579a2
c05d3683b2dbf88e2d148b6a6735579985e933f49f010dcd649432499ab384a4c248727f0792ab781a49e2236ae9e81ba2ef8a35ada252554ecf8f897fa887ad973d216234aef7c8b3457b50
47ba45aeba831c53bbe83f189e667c4bb8b6dc693aebcfb40b912483a4bafa94174eebff4f7e1eab56d8fe346301504f8ea00bbfb50ac1cf671fa5fada5d9581a894e5dc7255d85ad1b2a2f3
26966d39a431
(3) Message-Authenticator = 0x00000000000000000000000000000000
(3) State = 0xb050be94b39dab4e7b2311cb3d254004
(3) Finished request
Waking up in 4.9 seconds.
(4) Received Access-Request Id 50 from 192.168.1.11:38756 to
192.168.1.1:1812 length 362
(4) User-Name = "scilek"
(4) NAS-IP-Address = 192.168.1.11
(4) NAS-Identifier = "DENEME"
(4) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(4) NAS-Port-Type = Wireless-802.11
(4) Service-Type = Framed-User
(4) Calling-Station-Id = "7C-24-99-BB-95-97"
(4) Connect-Info = "CONNECT 0Mbps 802.11b"
(4) Acct-Session-Id = "2BF296A0F9146E3B"
(4) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(4) Mobility-Domain-Id = 47287
(4) WLAN-Pairwise-Cipher = 1027076
(4) WLAN-Group-Cipher = 1027076
(4) WLAN-AKM-Suite = 1027075
(4) Framed-MTU = 1400
(4) EAP-Message =
0x02cd008815800000007e1603030046100000424104212ccaa22da9308f54b96e2c098e75a6ac78e8e529e6af5aafafc4a00f188d46c48ad3b7460e4f2d60e0b67f
9bbcddcf8ae006f12bf9835dddccb183e806d14e1403030001011603030028e5c9b201e818b89ca0c6e4cee2ca652ede7d62e443e367aab9259d13d9103888728d4fe754945a6a
(4) State = 0xb050be94b39dab4e7b2311cb3d254004
(4) Message-Authenticator = 0xead07360b889c67ae378c3413274373f
(4) Restoring &session-state
(4) &session-state:Framed-MTU = 994
(4) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.3
Handshake, ClientHello"
(4) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHello"
(4) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, Certificate"
(4) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerKeyExchange"
(4) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHelloDone"
(4) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/staff
(4) authorize {
(4) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
rlm_sql (mysql): Reserved connection (2)
rlm_sql (mysql): Released connection (2)
(4) EXPAND %{User-Name}
(4) --> scilek
(4) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(4) EXPAND /var/log/sqltrace.sql
(4) --> /var/log/sqltrace.sql
(4) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (3)
(4) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(4) --> 1
(4) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(4) [preprocess] = ok
(4) mysql: EXPAND %{User-Name}
(4) mysql: --> scilek
(4) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (4)
(4) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(4) mysql: --> CALL authorize_check('scilek')
(4) mysql: Executing select query: CALL authorize_check('scilek')
(4) mysql: User found in radcheck table
(4) mysql: Conditional check items matched, merging assignment check items
(4) mysql: Cleartext-Password := "aaaa"
(4) mysql: Simultaneous-Use := 3
(4) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(4) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(4) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(4) mysql: User found in radreply table, merging reply items
(4) mysql: Class := 0x7363696c656b
(4) mysql: Idle-Timeout := 120
(4) mysql: Acct-Interim-Interval := 600
(4) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(4) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(4) mysql: --> CALL group_membership('scilek')
(4) mysql: Executing select query: CALL group_membership('scilek')
(4) mysql: User not found in any groups
rlm_sql (mysql): Released connection (4)
(4) [mysql] = ok
(4) pap: No User-Password attribute in the request. Cannot do PAP
(4) [pap] = noop
(4) eap: Peer sent EAP Response (code 2) ID 205 length 136
(4) eap: Continuing tunnel setup
(4) [eap] = ok
(4) } # authorize = ok
(4) Found Auth-Type = eap
(4) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(4) authenticate {
(4) eap: Expiring EAP session with state 0xb050be94b39dab4e
(4) eap: Finished EAP session with state 0xb050be94b39dab4e
(4) eap: Previous EAP request found for state 0xb050be94b39dab4e,
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) EAP Peer says that the final record size will be 126
bytes
(4) eap_ttls: (TLS) EAP Got all data (126 bytes)
(4) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS write server done
(4) eap_ttls: (TLS) recv TLS 1.2 Handshake, ClientKeyExchange
(4) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS read client key
exchange
(4) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS read change
cipher spec
(4) eap_ttls: (TLS) recv TLS 1.2 Handshake, Finished
(4) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS read finished
(4) eap_ttls: (TLS) send TLS 1.2 ChangeCipherSpec
(4) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS write change
cipher spec
(4) eap_ttls: (TLS) send TLS 1.2 Handshake, Finished
(4) eap_ttls: (TLS) Handshake state - Server SSLv3/TLS write finished
(4) eap_ttls: (TLS) Handshake state - SSL negotiation finished successfully
(4) eap_ttls: (TLS) Connection Established
(4) eap_ttls: TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(4) eap_ttls: TLS-Session-Version = "TLS 1.2"
(4) eap: Sending EAP Request (code 1) ID 206 length 61
(4) eap: EAP session adding &reply:State = 0xb050be94b49eab4e
(4) [eap] = handled
(4) } # authenticate = handled
(4) Using Post-Auth-Type Challenge
(4) Post-Auth-Type sub-section not found. Ignoring.
(4) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(4) session-state: Saving cached attributes
(4) Framed-MTU = 994
(4) TLS-Session-Information = "(TLS) recv TLS 1.3 Handshake, ClientHello"
(4) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, ServerHello"
(4) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Certificate"
(4) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerKeyExchange"
(4) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerHelloDone"
(4) TLS-Session-Information = "(TLS) recv TLS 1.2 Handshake,
ClientKeyExchange"
(4) TLS-Session-Information = "(TLS) recv TLS 1.2 Handshake, Finished"
(4) TLS-Session-Information = "(TLS) send TLS 1.2 ChangeCipherSpec"
(4) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Finished"
(4) TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(4) TLS-Session-Version = "TLS 1.2"
(4) Sent Access-Challenge Id 50 from 192.168.1.1:1812 to
192.168.1.11:38756 length 139
(4) Class = 0x7363696c656b
(4) Idle-Timeout = 120
(4) Acct-Interim-Interval = 600
(4) EAP-Message =
0x01ce003d1580000000331403030001011603030028a1bd9f4ebd2d8352f62849ada9ccff257bcf23bf1b41b2106e3ad06bc7812a2364f6b4868dd16e8e
(4) Message-Authenticator = 0x00000000000000000000000000000000
(4) State = 0xb050be94b49eab4e7b2311cb3d254004
(4) Finished request
Waking up in 4.8 seconds.
(5) Received Access-Request Id 51 from 192.168.1.11:38756 to
192.168.1.1:1812 length 285
(5) User-Name = "scilek"
(5) NAS-IP-Address = 192.168.1.11
(5) NAS-Identifier = "DENEME"
(5) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(5) NAS-Port-Type = Wireless-802.11
(5) Service-Type = Framed-User
(5) Calling-Station-Id = "7C-24-99-BB-95-97"
(5) Connect-Info = "CONNECT 0Mbps 802.11b"
(5) Acct-Session-Id = "2BF296A0F9146E3B"
(5) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(5) Mobility-Domain-Id = 47287
(5) WLAN-Pairwise-Cipher = 1027076
(5) WLAN-Group-Cipher = 1027076
(5) WLAN-AKM-Suite = 1027075
(5) Framed-MTU = 1400
(5) EAP-Message =
0x02ce003b158000000031170303002ce5c9b201e818b89d24f944cdd6d72ccde9dad8d6b4e335b0f2afabc76d21f170a932b2dec6d1b835763775d3
(5) State = 0xb050be94b49eab4e7b2311cb3d254004
(5) Message-Authenticator = 0x26ae96b7e6e731080aef161500bef21d
(5) Restoring &session-state
(5) &session-state:Framed-MTU = 994
(5) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.3
Handshake, ClientHello"
(5) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHello"
(5) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, Certificate"
(5) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerKeyExchange"
(5) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHelloDone"
(5) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.2
Handshake, ClientKeyExchange"
(5) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.2
Handshake, Finished"
(5) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
ChangeCipherSpec"
(5) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, Finished"
(5) &session-state:TLS-Session-Cipher-Suite =
"ECDHE-RSA-AES256-GCM-SHA384"
(5) &session-state:TLS-Session-Version = "TLS 1.2"
(5) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/staff
(5) authorize {
(5) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
rlm_sql (mysql): Reserved connection (2)
rlm_sql (mysql): Released connection (2)
(5) EXPAND %{User-Name}
(5) --> scilek
(5) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(5) EXPAND /var/log/sqltrace.sql
(5) --> /var/log/sqltrace.sql
(5) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (3)
(5) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(5) --> 1
(5) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(5) [preprocess] = ok
(5) mysql: EXPAND %{User-Name}
(5) mysql: --> scilek
(5) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (4)
(5) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(5) mysql: --> CALL authorize_check('scilek')
(5) mysql: Executing select query: CALL authorize_check('scilek')
(5) mysql: User found in radcheck table
(5) mysql: Conditional check items matched, merging assignment check items
(5) mysql: Cleartext-Password := "aaaa"
(5) mysql: Simultaneous-Use := 3
(5) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(5) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(5) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(5) mysql: User found in radreply table, merging reply items
(5) mysql: Class := 0x7363696c656b
(5) mysql: Idle-Timeout := 120
(5) mysql: Acct-Interim-Interval := 600
(5) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(5) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(5) mysql: --> CALL group_membership('scilek')
(5) mysql: Executing select query: CALL group_membership('scilek')
(5) mysql: User not found in any groups
rlm_sql (mysql): Released connection (4)
(5) [mysql] = ok
(5) pap: No User-Password attribute in the request. Cannot do PAP
(5) [pap] = noop
(5) eap: Peer sent EAP Response (code 2) ID 206 length 59
(5) eap: Continuing tunnel setup
(5) [eap] = ok
(5) } # authorize = ok
(5) Found Auth-Type = eap
(5) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(5) authenticate {
(5) eap: Expiring EAP session with state 0xb050be94b49eab4e
(5) eap: Finished EAP session with state 0xb050be94b49eab4e
(5) eap: Previous EAP request found for state 0xb050be94b49eab4e,
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 49
bytes
(5) eap_ttls: (TLS) EAP Got all data (49 bytes)
(5) eap_ttls: Session established. Proceeding to decode tunneled attributes
(5) eap_ttls: Got tunneled request
(5) eap_ttls: EAP-Message = 0x0200000b017363696c656b
(5) eap_ttls: FreeRADIUS-Proxied-To = 127.0.0.1
(5) eap_ttls: Got tunneled identity of scilek
(5) eap_ttls: Setting default EAP type for tunneled EAP session
(5) eap_ttls: Sending tunneled request
(5) Virtual server inner-tunnel-ttls received request
(5) EAP-Message = 0x0200000b017363696c656b
(5) FreeRADIUS-Proxied-To = 127.0.0.1
(5) User-Name = "scilek"
(5) NAS-IP-Address = 192.168.1.11
(5) NAS-Identifier = "DENEME"
(5) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(5) NAS-Port-Type = Wireless-802.11
(5) Service-Type = Framed-User
(5) Calling-Station-Id = "7C-24-99-BB-95-97"
(5) Connect-Info = "CONNECT 0Mbps 802.11b"
(5) Acct-Session-Id = "2BF296A0F9146E3B"
(5) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(5) Mobility-Domain-Id = 47287
(5) WLAN-Pairwise-Cipher = 1027076
(5) WLAN-Group-Cipher = 1027076
(5) WLAN-AKM-Suite = 1027075
(5) Framed-MTU = 1400
(5) Event-Timestamp = "Mar 12 2026 23:10:30 +03"
(5) WARNING: Outer and inner identities are the same. User privacy is
compromised.
(5) server inner-tunnel-ttls {
(5) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
(5) authorize {
(5) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
rlm_sql (mysql): Reserved connection (2)
rlm_sql (mysql): Released connection (2)
(5) EXPAND %{User-Name}
(5) --> scilek
(5) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(5) EXPAND /var/log/sqltrace.sql
(5) --> /var/log/sqltrace.sql
(5) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (3)
(5) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(5) --> 1
(5) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(5) eap: Peer sent EAP Response (code 2) ID 0 length 11
(5) eap: EAP-Identity reply, returning 'ok' so we can short-circuit the
rest of authorize
(5) [eap] = ok
(5) } # authorize = ok
(5) Found Auth-Type = eap
(5) # Executing group from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
(5) authenticate {
(5) eap: Peer sent packet with method EAP Identity (1)
(5) eap: Calling submodule eap_tls to process data
(5) eap_tls: (TLS) Initiating new session
(5) eap_tls: (TLS) Setting verify mode to require certificate from client
(5) eap: Sending EAP Request (code 1) ID 1 length 6
(5) eap: EAP session adding &reply:State = 0x5892ccaa5893c184
(5) [eap] = handled
(5) } # authenticate = handled
(5) } # server inner-tunnel-ttls
(5) Virtual server sending reply
(5) EAP-Message = 0x010100060d20
(5) Message-Authenticator = 0x00000000000000000000000000000000
(5) State = 0x5892ccaa5893c1845b13eb504fc5bcc6
(5) eap_ttls: Got tunneled Access-Challenge
(5) eap: Sending EAP Request (code 1) ID 207 length 55
(5) eap: EAP session adding &reply:State = 0xb050be94b59fab4e
(5) [eap] = handled
(5) } # authenticate = handled
(5) Using Post-Auth-Type Challenge
(5) Post-Auth-Type sub-section not found. Ignoring.
(5) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(5) session-state: Saving cached attributes
(5) Framed-MTU = 994
(5) TLS-Session-Information = "(TLS) recv TLS 1.3 Handshake, ClientHello"
(5) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, ServerHello"
(5) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Certificate"
(5) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerKeyExchange"
(5) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerHelloDone"
(5) TLS-Session-Information = "(TLS) recv TLS 1.2 Handshake,
ClientKeyExchange"
(5) TLS-Session-Information = "(TLS) recv TLS 1.2 Handshake, Finished"
(5) TLS-Session-Information = "(TLS) send TLS 1.2 ChangeCipherSpec"
(5) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Finished"
(5) TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(5) TLS-Session-Version = "TLS 1.2"
(5) Sent Access-Challenge Id 51 from 192.168.1.1:1812 to
192.168.1.11:38756 length 133
(5) Class = 0x7363696c656b
(5) Idle-Timeout = 120
(5) Acct-Interim-Interval = 600
(5) EAP-Message =
0x01cf003715800000002d1703030028a1bd9f4ebd2d83532258cc6dc59b55571076fb3f1ba72b6ef10fb26e1f2ef0552abd71f657e3707f
(5) Message-Authenticator = 0x00000000000000000000000000000000
(5) State = 0xb050be94b59fab4e7b2311cb3d254004
(5) Finished request
Waking up in 4.8 seconds.
(6) Received Access-Request Id 52 from 192.168.1.11:38756 to
192.168.1.1:1812 length 281
(6) User-Name = "scilek"
(6) NAS-IP-Address = 192.168.1.11
(6) NAS-Identifier = "DENEME"
(6) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(6) NAS-Port-Type = Wireless-802.11
(6) Service-Type = Framed-User
(6) Calling-Station-Id = "7C-24-99-BB-95-97"
(6) Connect-Info = "CONNECT 0Mbps 802.11b"
(6) Acct-Session-Id = "2BF296A0F9146E3B"
(6) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(6) Mobility-Domain-Id = 47287
(6) WLAN-Pairwise-Cipher = 1027076
(6) WLAN-Group-Cipher = 1027076
(6) WLAN-AKM-Suite = 1027075
(6) Framed-MTU = 1400
(6) EAP-Message =
0x02cf003715800000002d1703030028e5c9b201e818b89eccad391906fa2a9d73b4ca6f81fcca613455083803fdb15587f8d74816cb16bb
(6) State = 0xb050be94b59fab4e7b2311cb3d254004
(6) Message-Authenticator = 0x57ab3d312c4a89b71a0ff58daa45105b
(6) Restoring &session-state
(6) &session-state:Framed-MTU = 994
(6) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.3
Handshake, ClientHello"
(6) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHello"
(6) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, Certificate"
(6) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerKeyExchange"
(6) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHelloDone"
(6) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.2
Handshake, ClientKeyExchange"
(6) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.2
Handshake, Finished"
(6) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
ChangeCipherSpec"
(6) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, Finished"
(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
/usr/local/etc/raddb/sites-enabled/staff
(6) authorize {
(6) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (4)
rlm_sql (mysql): Released connection (4)
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
(6) EXPAND %{User-Name}
(6) --> scilek
(6) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (2)
(6) EXPAND /var/log/sqltrace.sql
(6) --> /var/log/sqltrace.sql
(6) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (2)
(6) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(6) --> 1
(6) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(6) [preprocess] = ok
(6) mysql: EXPAND %{User-Name}
(6) mysql: --> scilek
(6) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(6) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(6) mysql: --> CALL authorize_check('scilek')
(6) mysql: Executing select query: CALL authorize_check('scilek')
(6) mysql: User found in radcheck table
(6) mysql: Conditional check items matched, merging assignment check items
(6) mysql: Cleartext-Password := "aaaa"
(6) mysql: Simultaneous-Use := 3
(6) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(6) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(6) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(6) mysql: User found in radreply table, merging reply items
(6) mysql: Class := 0x7363696c656b
(6) mysql: Idle-Timeout := 120
(6) mysql: Acct-Interim-Interval := 600
(6) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(6) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(6) mysql: --> CALL group_membership('scilek')
(6) mysql: Executing select query: CALL group_membership('scilek')
(6) mysql: User not found in any groups
rlm_sql (mysql): Released connection (3)
(6) [mysql] = ok
(6) pap: No User-Password attribute in the request. Cannot do PAP
(6) [pap] = noop
(6) eap: Peer sent EAP Response (code 2) ID 207 length 55
(6) eap: Continuing tunnel setup
(6) [eap] = ok
(6) } # authorize = ok
(6) Found Auth-Type = eap
(6) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(6) authenticate {
(6) eap: Expiring EAP session with state 0x5892ccaa5893c184
(6) eap: Finished EAP session with state 0xb050be94b59fab4e
(6) eap: Previous EAP request found for state 0xb050be94b59fab4e,
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 45
bytes
(6) eap_ttls: (TLS) EAP Got all data (45 bytes)
(6) eap_ttls: Session established. Proceeding to decode tunneled attributes
(6) eap_ttls: Got tunneled request
(6) eap_ttls: EAP-Message = 0x02010006031a
(6) eap_ttls: FreeRADIUS-Proxied-To = 127.0.0.1
(6) eap_ttls: Sending tunneled request
(6) Virtual server inner-tunnel-ttls received request
(6) EAP-Message = 0x02010006031a
(6) FreeRADIUS-Proxied-To = 127.0.0.1
(6) User-Name = "scilek"
(6) State = 0x5892ccaa5893c1845b13eb504fc5bcc6
(6) NAS-IP-Address = 192.168.1.11
(6) NAS-Identifier = "DENEME"
(6) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(6) NAS-Port-Type = Wireless-802.11
(6) Service-Type = Framed-User
(6) Calling-Station-Id = "7C-24-99-BB-95-97"
(6) Connect-Info = "CONNECT 0Mbps 802.11b"
(6) Acct-Session-Id = "2BF296A0F9146E3B"
(6) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(6) Mobility-Domain-Id = 47287
(6) WLAN-Pairwise-Cipher = 1027076
(6) WLAN-Group-Cipher = 1027076
(6) WLAN-AKM-Suite = 1027075
(6) Framed-MTU = 1400
(6) Event-Timestamp = "Mar 12 2026 23:10:30 +03"
(6) WARNING: Outer and inner identities are the same. User privacy is
compromised.
(6) server inner-tunnel-ttls {
(6) session-state: No cached attributes
(6) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
(6) authorize {
(6) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (4)
rlm_sql (mysql): Released connection (4)
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
(6) EXPAND %{User-Name}
(6) --> scilek
(6) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (2)
(6) EXPAND /var/log/sqltrace.sql
(6) --> /var/log/sqltrace.sql
(6) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (2)
(6) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(6) --> 1
(6) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(6) eap: Peer sent EAP Response (code 2) ID 1 length 6
(6) eap: No EAP Start, assuming it's an on-going EAP conversation
(6) [eap] = updated
(6) mysql: EXPAND %{User-Name}
(6) mysql: --> scilek
(6) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(6) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(6) mysql: --> CALL authorize_check('scilek')
(6) mysql: Executing select query: CALL authorize_check('scilek')
(6) mysql: User found in radcheck table
(6) mysql: Conditional check items matched, merging assignment check items
(6) mysql: Cleartext-Password := "aaaa"
(6) mysql: Simultaneous-Use := 3
(6) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(6) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(6) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(6) mysql: User found in radreply table, merging reply items
(6) mysql: Class := 0x7363696c656b
(6) mysql: Idle-Timeout := 120
(6) mysql: Acct-Interim-Interval := 600
(6) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(6) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(6) mysql: --> CALL group_membership('scilek')
(6) mysql: Executing select query: CALL group_membership('scilek')
(6) mysql: User not found in any groups
rlm_sql (mysql): Released connection (3)
(6) [mysql] = ok
(6) [expiration] = noop
(6) [logintime] = noop
(6) pap: WARNING: Auth-Type already set. Not setting to PAP
(6) [pap] = noop
(6) [mschap] = noop
(6) } # authorize = updated
(6) Found Auth-Type = eap
(6) # Executing group from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
(6) authenticate {
(6) eap: Expiring EAP session with state 0x5892ccaa5893c184
(6) eap: Finished EAP session with state 0x5892ccaa5893c184
(6) eap: Previous EAP request found for state 0x5892ccaa5893c184,
released from the list
(6) eap: Peer sent packet with method EAP NAK (3)
(6) eap: Found mutually acceptable type MSCHAPv2 (26)
(6) eap: Calling submodule eap_mschapv2 to process data
(6) eap_mschapv2: Issuing Challenge
(6) eap: Sending EAP Request (code 1) ID 2 length 42
(6) eap: EAP session adding &reply:State = 0x5892ccaa5990d684
(6) [eap] = handled
(6) } # authenticate = handled
(6) } # server inner-tunnel-ttls
(6) Virtual server sending reply
(6) Class = 0x7363696c656b
(6) Idle-Timeout = 120
(6) Acct-Interim-Interval = 600
(6) Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(6) EAP-Message =
0x0102002a1a0102002510bffd3059303277ba6bb6e4df54c20bc6667265657261646975732d332e322e33
(6) Message-Authenticator = 0x00000000000000000000000000000000
(6) State = 0x5892ccaa5990d6845b13eb504fc5bcc6
(6) eap_ttls: Got tunneled Access-Challenge
(6) eap: Sending EAP Request (code 1) ID 208 length 91
(6) eap: EAP session adding &reply:State = 0xb050be94b680ab4e
(6) [eap] = handled
(6) } # authenticate = handled
(6) Using Post-Auth-Type Challenge
(6) Post-Auth-Type sub-section not found. Ignoring.
(6) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(6) session-state: Saving cached attributes
(6) Framed-MTU = 994
(6) TLS-Session-Information = "(TLS) recv TLS 1.3 Handshake, ClientHello"
(6) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, ServerHello"
(6) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Certificate"
(6) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerKeyExchange"
(6) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake,
ServerHelloDone"
(6) TLS-Session-Information = "(TLS) recv TLS 1.2 Handshake,
ClientKeyExchange"
(6) TLS-Session-Information = "(TLS) recv TLS 1.2 Handshake, Finished"
(6) TLS-Session-Information = "(TLS) send TLS 1.2 ChangeCipherSpec"
(6) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Finished"
(6) TLS-Session-Cipher-Suite = "ECDHE-RSA-AES256-GCM-SHA384"
(6) TLS-Session-Version = "TLS 1.2"
(6) Sent Access-Challenge Id 52 from 192.168.1.1:1812 to
192.168.1.11:38756 length 169
(6) Class = 0x7363696c656b
(6) Idle-Timeout = 120
(6) Acct-Interim-Interval = 600
(6) EAP-Message =
0x01d0005b158000000051170303004ca1bd9f4ebd2d8354e48f566537644f05d4fce9e7f724e77cfd24c307a57fd0b7abb2f2e48738c514363fec1ad495ac430a55
bbb608bb1e14441a6607cd40af34a82051e6306845f41c837a67
(6) Message-Authenticator = 0x00000000000000000000000000000000
(6) State = 0xb050be94b680ab4e7b2311cb3d254004
(6) Finished request
Waking up in 4.8 seconds.
(7) Received Access-Request Id 53 from 192.168.1.11:38756 to
192.168.1.1:1812 length 341
(7) User-Name = "scilek"
(7) NAS-IP-Address = 192.168.1.11
(7) NAS-Identifier = "DENEME"
(7) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(7) NAS-Port-Type = Wireless-802.11
(7) Service-Type = Framed-User
(7) Calling-Station-Id = "7C-24-99-BB-95-97"
(7) Connect-Info = "CONNECT 0Mbps 802.11b"
(7) Acct-Session-Id = "2BF296A0F9146E3B"
(7) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(7) Mobility-Domain-Id = 47287
(7) WLAN-Pairwise-Cipher = 1027076
(7) WLAN-Group-Cipher = 1027076
(7) WLAN-AKM-Suite = 1027075
(7) Framed-MTU = 1400
(7) EAP-Message =
0x02d000731580000000691703030064e5c9b201e818b89fe3f2082479bf1e2ac27cdc57ff2f5458bc9a824f789ffa65e847b6f5e0f8cf231a12618ad24e6e96a86b
5491fe8b36644763d37aa26e2b44ed6bd3ceebbe65a2d5c2f800f705685f6cdc8842705c07a7c3344f6dd7c596288158c50d
(7) State = 0xb050be94b680ab4e7b2311cb3d254004
(7) Message-Authenticator = 0xe526bc0a8a29ccd71bc17ef6c0b7269e
(7) Restoring &session-state
(7) &session-state:Framed-MTU = 994
(7) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.3
Handshake, ClientHello"
(7) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHello"
(7) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, Certificate"
(7) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerKeyExchange"
(7) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, ServerHelloDone"
(7) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.2
Handshake, ClientKeyExchange"
(7) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.2
Handshake, Finished"
(7) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
ChangeCipherSpec"
(7) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2
Handshake, Finished"
(7) &session-state:TLS-Session-Cipher-Suite =
"ECDHE-RSA-AES256-GCM-SHA384"
(7) &session-state:TLS-Session-Version = "TLS 1.2"
(7) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/staff
(7) authorize {
(7) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (4)
rlm_sql (mysql): Released connection (4)
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
(7) EXPAND %{User-Name}
(7) --> scilek
(7) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (2)
(7) EXPAND /var/log/sqltrace.sql
(7) --> /var/log/sqltrace.sql
(7) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (2)
(7) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(7) --> 1
(7) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(7) [preprocess] = ok
(7) mysql: EXPAND %{User-Name}
(7) mysql: --> scilek
(7) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(7) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(7) mysql: --> CALL authorize_check('scilek')
(7) mysql: Executing select query: CALL authorize_check('scilek')
(7) mysql: User found in radcheck table
(7) mysql: Conditional check items matched, merging assignment check items
(7) mysql: Cleartext-Password := "aaaa"
(7) mysql: Simultaneous-Use := 3
(7) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(7) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(7) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(7) mysql: User found in radreply table, merging reply items
(7) mysql: Class := 0x7363696c656b
(7) mysql: Idle-Timeout := 120
(7) mysql: Acct-Interim-Interval := 600
(7) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(7) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(7) mysql: --> CALL group_membership('scilek')
(7) mysql: Executing select query: CALL group_membership('scilek')
(7) mysql: User not found in any groups
rlm_sql (mysql): Released connection (3)
(7) [mysql] = ok
(7) pap: No User-Password attribute in the request. Cannot do PAP
(7) [pap] = noop
(7) eap: Peer sent EAP Response (code 2) ID 208 length 115
(7) eap: Continuing tunnel setup
(7) [eap] = ok
(7) } # authorize = ok
(7) Found Auth-Type = eap
(7) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(7) authenticate {
(7) eap: Expiring EAP session with state 0x5892ccaa5990d684
(7) eap: Finished EAP session with state 0xb050be94b680ab4e
(7) eap: Previous EAP request found for state 0xb050be94b680ab4e,
released from the list
(7) eap: Peer sent packet with method EAP TTLS (21)
(7) eap: Calling submodule eap_ttls to process data
(7) eap_ttls: Authenticate
(7) eap_ttls: (TLS) EAP Peer says that the final record size will be 105
bytes
(7) eap_ttls: (TLS) EAP Got all data (105 bytes)
(7) eap_ttls: Session established. Proceeding to decode tunneled attributes
(7) eap_ttls: Got tunneled request
(7) eap_ttls: EAP-Message =
0x020200411a0202003c314cbe2e0a115563f9b5b00473c2c5746e0000000000000000149db57b3a134c0e80e803dfdc6efecef067534c43bf728d0073
63696c656b
(7) eap_ttls: FreeRADIUS-Proxied-To = 127.0.0.1
(7) eap_ttls: Sending tunneled request
(7) Virtual server inner-tunnel-ttls received request
(7) EAP-Message =
0x020200411a0202003c314cbe2e0a115563f9b5b00473c2c5746e0000000000000000149db57b3a134c0e80e803dfdc6efecef067534c43bf728d007363696c656b
(7) FreeRADIUS-Proxied-To = 127.0.0.1
(7) User-Name = "scilek"
(7) State = 0x5892ccaa5990d6845b13eb504fc5bcc6
(7) NAS-IP-Address = 192.168.1.11
(7) NAS-Identifier = "DENEME"
(7) Called-Station-Id = "FE-EC-DA-07-12-00:DENEME"
(7) NAS-Port-Type = Wireless-802.11
(7) Service-Type = Framed-User
(7) Calling-Station-Id = "7C-24-99-BB-95-97"
(7) Connect-Info = "CONNECT 0Mbps 802.11b"
(7) Acct-Session-Id = "2BF296A0F9146E3B"
(7) Acct-Multi-Session-Id = "8D20F9078F5A89BD"
(7) Mobility-Domain-Id = 47287
(7) WLAN-Pairwise-Cipher = 1027076
(7) WLAN-Group-Cipher = 1027076
(7) WLAN-AKM-Suite = 1027075
(7) Framed-MTU = 1400
(7) Event-Timestamp = "Mar 12 2026 23:10:30 +03"
(7) WARNING: Outer and inner identities are the same. User privacy is
compromised.
(7) server inner-tunnel-ttls {
(7) session-state: No cached attributes
(7) # Executing section authorize from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
(7) authorize {
(7) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) {
rlm_sql (mysql): Reserved connection (4)
rlm_sql (mysql): Released connection (4)
rlm_sql (mysql): Reserved connection (0)
rlm_sql (mysql): Released connection (0)
rlm_sql (mysql): Reserved connection (1)
rlm_sql (mysql): Released connection (1)
(7) EXPAND %{User-Name}
(7) --> scilek
(7) SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (2)
(7) EXPAND /var/log/sqltrace.sql
(7) --> /var/log/sqltrace.sql
(7) Executing select query: CALL is_login_allowed('scilek',
'7C-24-99-BB-95-97', 'FE-EC-DA-07-12-00=3ADENEME')
rlm_sql (mysql): Released connection (2)
(7) EXPAND %{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}
(7) --> 1
(7) if ("%{mysql: CALL is_login_allowed('%{User-Name}',
'%{Calling-Station-Id}', '%{Called-Station-Id}')}" == "0" ) -> FALSE
(7) eap: Peer sent EAP Response (code 2) ID 2 length 65
(7) eap: No EAP Start, assuming it's an on-going EAP conversation
(7) [eap] = updated
(7) mysql: EXPAND %{User-Name}
(7) mysql: --> scilek
(7) mysql: SQL-User-Name set to 'scilek'
rlm_sql (mysql): Reserved connection (3)
(7) mysql: EXPAND CALL authorize_check('%{SQL-User-Name}')
(7) mysql: --> CALL authorize_check('scilek')
(7) mysql: Executing select query: CALL authorize_check('scilek')
(7) mysql: User found in radcheck table
(7) mysql: Conditional check items matched, merging assignment check items
(7) mysql: Cleartext-Password := "aaaa"
(7) mysql: Simultaneous-Use := 3
(7) mysql: EXPAND CALL
authorize_reply('%{SQL-User-Name}','%{Calling-Station-Id}')
(7) mysql: --> CALL authorize_reply('scilek','7C-24-99-BB-95-97')
(7) mysql: Executing select query: CALL
authorize_reply('scilek','7C-24-99-BB-95-97')
(7) mysql: User found in radreply table, merging reply items
(7) mysql: Class := 0x7363696c656b
(7) mysql: Idle-Timeout := 120
(7) mysql: Acct-Interim-Interval := 600
(7) mysql: Exec-Program-Wait = "/usr/local/bin/bash
/usr/local/etc/raddb/scripts/datacounter_auth.sh scilek"
(7) mysql: EXPAND CALL group_membership('%{SQL-User-Name}')
(7) mysql: --> CALL group_membership('scilek')
(7) mysql: Executing select query: CALL group_membership('scilek')
(7) mysql: User not found in any groups
rlm_sql (mysql): Released connection (3)
(7) [mysql] = ok
(7) [expiration] = noop
(7) [logintime] = noop
(7) pap: WARNING: Auth-Type already set. Not setting to PAP
(7) [pap] = noop
(7) [mschap] = noop
(7) } # authorize = updated
(7) Found Auth-Type = eap
(7) # Executing group from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
(7) authenticate {
(7) eap: Expiring EAP session with state 0x5892ccaa5990d684
(7) eap: Finished EAP session with state 0x5892ccaa5990d684
(7) eap: Previous EAP request found for state 0x5892ccaa5990d684,
released from the list
(7) eap: Peer sent packet with method EAP MSCHAPv2 (26)
(7) eap: Calling submodule eap_mschapv2 to process data
(7) eap_mschapv2: Auth-Type sub-section not found. Ignoring.
(7) eap_mschapv2: # Executing group from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
(7) eap: Sending EAP Failure (code 4) ID 2 length 4
(7) eap: Freeing handler
(7) [eap] = reject
(7) } # authenticate = reject
(7) Failed to authenticate the user
(7) Using Post-Auth-Type Reject
(7) # Executing group from file
/usr/local/etc/raddb/sites-enabled/inner-tunnel-ttls
(7) Post-Auth-Type REJECT {
(7) attr_filter.access_reject: EXPAND %{User-Name}
(7) attr_filter.access_reject: --> scilek
(7) attr_filter.access_reject: Matched entry DEFAULT at line 11
(7) [attr_filter.access_reject] = updated
(7) update outer.session-state {
(7) No attributes updated for RHS &request:Module-Failure-Message
(7) } # update outer.session-state = noop
(7) } # Post-Auth-Type REJECT = updated
(7) Login incorrect: [scilek] (from client DENEME port 0 cli
7C-24-99-BB-95-97 via TLS tunnel)
(7) } # server inner-tunnel-ttls
(7) Virtual server sending reply
(7) EAP-Message = 0x04020004
(7) Message-Authenticator = 0x00000000000000000000000000000000
(7) eap_ttls: Got tunneled Access-Reject
(7) eap: ERROR: Failed continuing EAP TTLS (21) session. EAP sub-module
failed
(7) eap: Sending EAP Failure (code 4) ID 208 length 4
(7) eap: Failed in EAP select
(7) [eap] = invalid
(7) } # authenticate = invalid
(7) Failed to authenticate the user
(7) Using Post-Auth-Type Reject
(7) Post-Auth-Type sub-section not found. Ignoring.
(7) # Executing group from file /usr/local/etc/raddb/sites-enabled/staff
(7) Login incorrect (eap: Failed continuing EAP TTLS (21) session. EAP
sub-module failed): [scilek] (from client DENEME port 0 cli
7C-24-99-BB-95-97)
(7) Delaying response for 1.000000 seconds
Waking up in 0.3 seconds.
Waking up in 0.6 seconds.
(7) Sending delayed response
(7) Sent Access-Reject Id 53 from 192.168.1.1:1812 to 192.168.1.11:38756
length 64
(7) Class = 0x7363696c656b
(7) Idle-Timeout = 120
(7) Acct-Interim-Interval = 600
(7) EAP-Message = 0x04d00004
(7) Message-Authenticator = 0x00000000000000000000000000000000
Waking up in 3.8 seconds.
(0) Cleaning up request packet ID 46 with timestamp +11 due to
cleanup_delay was reached
(1) Cleaning up request packet ID 47 with timestamp +11 due to
cleanup_delay was reached
(2) Cleaning up request packet ID 48 with timestamp +11 due to
cleanup_delay was reached
(3) Cleaning up request packet ID 49 with timestamp +11 due to
cleanup_delay was reached
(4) Cleaning up request packet ID 50 with timestamp +11 due to
cleanup_delay was reached
(5) Cleaning up request packet ID 51 with timestamp +11 due to
cleanup_delay was reached
(6) Cleaning up request packet ID 52 with timestamp +11 due to
cleanup_delay was reached
(7) Cleaning up request packet ID 53 with timestamp +11 due to
cleanup_delay was reached
Ready to process requests
5
6
Gday,
Google Gemini is insisting quite strongly that, after changing fragment
size in the /etc/raddb/mods-enabled/eap, I also need to put something in
the post-auth part.
The problem is that sometimes AI can be wrong and I cannot find
alternate sources that back this claim up. My Google-fu may be weak.
Google Gemini wants me to copy and paste this snippet:
post-auth {
update reply {
Framed-MTU := 1024
}
}
into /etc/raddb/sites-enabled/default in the post-auth section. Gemini
points to a comment block that says: "# Please do not put "unlang"
configurations into the "authenticate"
# section. Put them in the "post-auth" section instead. That's what
# the post-auth section is for."
is Google Gemini correct? Does this belong in the post-auth and is
perfectly fine to do?
In a previous email,
https://lists.freeradius.org/pipermail/freeradius-users/2022-March/101630.h…,
to this list, it sounds like it could be in sites-available/default
Aren't they symlinks?
I can't find anything specific to comment or uncomment, and I would have
thought it would have been there, as an example. This makes me hesitant.
The example is for a State attribute when I want to set a configuration.
Even if the syntax is the same.
So it would look like this:
# Post-Authentication
# Once we KNOW that the user has been authenticated, there are
# additional steps we can take.
post-auth {
#
# If you need to have a State attribute, you can
# add it here. e.g. for later CoA-Request with
# State, and Service-Type = Authorize-Only.
#
# if (!&reply:State) {
# update reply {
# State := "0x%{randstr:16h}"
# }
# }
update reply {
Framed-MTU := 1024
}
Yay or Nay?
Kat
3
2
Pertaining the concern mentioned by Alan about clickhouse db updates
queries, if you mean the update statements, well as option-1 what i'm
trying to writing directly into the ClickHouse database. I was thinking to
replace the update statements by insert for both Interim-Update and Stop to
log all accounting triggers instead of updating in-place since what I want
to track all accounting changes happening per session. Any concerns here
for this approach?
As option-2 approach, I thought of using the details module, perhaps with
on hourly %H or minutes %G rotations and then use some thirdparty pipelines
to parse those and write them in batches into a ClickHouse DB and track the
files written.
To help having an idea of current accounting rate per minute (peak hours):
interims: 30k, starts: 500, stops: 1k
1
1