Load default profile if no profile matched
    Daniel Finger 
    daniel.finger at ewetel.de
       
    Tue Apr  9 10:39:12 CEST 2019
    
    
  
Hi!
I am tryiing to recreate the old behaviour I had with freeRADIUS 2:
If User has correct credentials and no group the user belongs to matches, 
read a default group, which rejects access.
We have no Fall-Through Attributes in the Database.
If I configure the sql module in freeRADIUS 3.0.18 like I had with FR2:
     read_groups = yes
     read_profiles = yes
     default_user_profile = "DEFAULT"
Do you have a suggestion for me how to change the configuration, so it 
behaves like the old Radius Server?
The default profile is always read, even if previous groups matched:
(7) sql: EXPAND %{User-Name}
(7) sql:    --> test_account_dsl
(7) sql: SQL-User-Name set to 'test_account_dsl'
rlm_sql (sql): Reserved connection (1)
(7) sql: EXPAND SELECT id, UserName, Attribute, Value, op FROM radcheck 
WHERE username = '%{SQL-User-Name}' AND Status = 1 ORDER BY id
(7) sql:    --> SELECT id, UserName, Attribute, Value, op FROM radcheck 
WHERE username = 'test_account_dsl' AND Status = 1 ORDER BY id
(7) sql: Executing select query: SELECT id, UserName, Attribute, Value, op 
FROM radcheck WHERE username = 'test_account_dsl' AND Status = 1 ORDER BY id
(7) sql: User found in radcheck table
(7) sql: Conditional check items matched, merging assignment check items
(7) sql:   Cleartext-Password := "test12"
(7) sql: EXPAND SELECT id,UserName,Attribute,Value, op FROM radreply WHERE 
username = '%{SQL-User-Name}' ORDER BY id
(7) sql:    --> SELECT id,UserName,Attribute,Value, op FROM radreply WHERE 
username = 'test_account_dsl' ORDER BY id
(7) sql: Executing select query: SELECT id,UserName,Attribute,Value, op FROM 
radreply WHERE username = 'test_account_dsl' ORDER BY id
rlm_sql (sql): Reserved connection (26)
rlm_sql (sql): Released connection (26)
(7) sql: EXPAND SELECT GroupName FROM usergroup WHERE Username = 
'%{SQL-User-Name}' ORDER BY priority
(7) sql:    --> SELECT GroupName FROM usergroup WHERE Username = 
'test_account_dsl' ORDER BY priority
(7) sql: Executing select query: SELECT GroupName FROM usergroup WHERE 
Username = 'test_account_dsl' ORDER BY priority
(7) sql: User found in the group table
(7) sql: EXPAND SELECT id,GroupName,Attribute,Value,op FROM radgroupcheck 
WHERE groupname = '%{sql-SQL-Group}' ORDER BY id
(7) sql:    --> SELECT id,GroupName,Attribute,Value,op FROM radgroupcheck 
WHERE groupname = 'dsl_192_2048_filter' ORDER BY id
(7) sql: Executing select query: SELECT id,GroupName,Attribute,Value,op FROM 
radgroupcheck WHERE groupname = 'dsl_192_2048_filter' ORDER BY id
(7) sql: Group "dsl_192_2048_filter": Conditional check items matched
(7) sql: Group "dsl_192_2048_filter": Merging assignment check items
(7) sql:   Simultaneous-Use := 2
(7) sql: EXPAND SELECT id,GroupName,Attribute,Value,op FROM radgroupreply 
WHERE groupname = '%{sql-SQL-Group}' ORDER BY id
(7) sql:    --> SELECT id,GroupName,Attribute,Value,op FROM radgroupreply 
WHERE groupname = 'dsl_192_2048_filter' ORDER BY id
(7) sql: Executing select query: SELECT id,GroupName,Attribute,Value,op FROM 
radgroupreply WHERE groupname = 'dsl_192_2048_filter' ORDER BY id
(7) sql: Group "dsl_192_2048_filter": Merging reply items
(7) sql:   ERX-Egress-Policy-Name = "ds_2048_filter"
(7) sql:   ERX-Ingress-Policy-Name = "us_192"
(7) sql:   Framed-Protocol = PPP
(7) sql:   Service-Type = Framed-User
(7) sql:   Session-Timeout = 86400
(7) sql: Checking profile DEFAULT
(7) sql: EXPAND DEFAULT
(7) sql:    --> DEFAULT
(7) sql: SQL-User-Name set to 'DEFAULT'
rlm_sql (sql): Reserved connection (2)
rlm_sql (sql): Released connection (2)
(7) sql: EXPAND SELECT GroupName FROM usergroup WHERE Username = 
'%{SQL-User-Name}' ORDER BY priority
(7) sql:    --> SELECT GroupName FROM usergroup WHERE Username = 'DEFAULT' 
ORDER BY priority
(7) sql: Executing select query: SELECT GroupName FROM usergroup WHERE 
Username = 'DEFAULT' ORDER BY priority
(7) sql: User found in the group table
(7) sql: EXPAND SELECT id,GroupName,Attribute,Value,op FROM radgroupcheck 
WHERE groupname = '%{sql-SQL-Group}' ORDER BY id
(7) sql:    --> SELECT id,GroupName,Attribute,Value,op FROM radgroupcheck 
WHERE groupname = 'DEFAULT' ORDER BY id
(7) sql: Executing select query: SELECT id,GroupName,Attribute,Value,op FROM 
radgroupcheck WHERE groupname = 'DEFAULT' ORDER BY id
(7) sql: Group "DEFAULT": Conditional check items matched
(7) sql: Group "DEFAULT": Merging assignment check items
(7) sql:   Auth-Type := Reject
(7) sql: EXPAND SELECT id,GroupName,Attribute,Value,op FROM radgroupreply 
WHERE groupname = '%{sql-SQL-Group}' ORDER BY id
(7) sql:    --> SELECT id,GroupName,Attribute,Value,op FROM radgroupreply 
WHERE groupname = 'DEFAULT' ORDER BY id
(7) sql: Executing select query: SELECT id,GroupName,Attribute,Value,op FROM 
radgroupreply WHERE groupname = 'DEFAULT' ORDER BY id
(7) sql: Group "DEFAULT": Merging reply items
rlm_sql (sql): Released connection (1)
(7)             [sql] = ok
The old behaviour:
[sql]     expand: %{User-Name} -> test_account_dsl
[sql] sql_set_user escaped user --> 'test_account_dsl'
rlm_sql (sql): Reserving sql socket id: 64
[sql]     expand: SELECT id,UserName,Attribute,Value,op FROM radcheck WHERE 
Username = '%{SQL-User-Name}' AND Status = 1 ORDER BY id -> SELECT 
id,UserName,Attribute,Value,op FROM radcheck WHERE Username = 
'test_account_dsl' AND Status = 1 ORDER BY id
[sql] User found in radcheck table
[sql]     expand: SELECT id,UserName,Attribute,Value,op FROM radreply WHERE 
Username = '%{SQL-User-Name}' ORDER BY id -> SELECT 
id,UserName,Attribute,Value,op FROM radreply WHERE Username = 
'test_account_dsl' ORDER BY id
[sql]     expand: SELECT GroupName FROM usergroup WHERE 
UserName='%{SQL-User-Name}' ORDER BY priority -> SELECT GroupName FROM 
usergroup WHERE UserName='test_account_dsl' ORDER BY priority
[sql]     expand: SELECT id,GroupName,Attribute,Value,op FROM radgroupcheck 
WHERE GroupName = '%{Sql-Group}' ORDER BY id -> SELECT 
id,GroupName,Attribute,Value,op FROM radgroupcheck WHERE GroupName = 
'dsl_192_2048_filter' ORDER BY id
[sql] User found in group dsl_192_2048_filter
[sql]     expand: SELECT id,GroupName,Attribute,Value,op FROM radgroupreply 
WHERE GroupName = '%{Sql-Group}' ORDER BY id -> SELECT 
id,GroupName,Attribute,Value,op FROM radgroupreply WHERE GroupName = 
'dsl_192_2048_filter' ORDER BY id
rlm_sql (sql): Released sql socket id: 64
++[sql] = ok
and if no check item matches:
[sql]     expand: %{User-Name} -> test_account_dsl
[sql] sql_set_user escaped user --> 'test_account_dsl'
rlm_sql (sql): Reserving sql socket id: 61
[sql]     expand: SELECT id,UserName,Attribute,Value,op FROM radcheck WHERE 
Username = '%{SQL-User-Name}' AND Status = 1 ORDER BY id -> SELECT 
id,UserName,Attribute,Value,op FROM radcheck WHERE Username = 
'test_account_dsl' AND Status = 1 ORDER BY id
[sql] User found in radcheck table
[sql]     expand: SELECT id,UserName,Attribute,Value,op FROM radreply WHERE 
Username = '%{SQL-User-Name}' ORDER BY id -> SELECT 
id,UserName,Attribute,Value,op FROM radreply WHERE Username = 
'test_account_dsl' ORDER BY id
[sql]     expand: SELECT GroupName FROM usergroup WHERE 
UserName='%{SQL-User-Name}' ORDER BY priority -> SELECT GroupName FROM 
usergroup WHERE UserName='test_account_dsl' ORDER BY priority
[sql]     expand: SELECT id,GroupName,Attribute,Value,op FROM radgroupcheck 
WHERE GroupName = '%{Sql-Group}' ORDER BY id -> SELECT 
id,GroupName,Attribute,Value,op FROM radgroupcheck WHERE GroupName = 
'dsl_192_2048_filter' ORDER BY id
[sql] Checking profile DEFAULT
[sql] sql_set_user escaped user --> 'DEFAULT'
[sql]     expand: SELECT GroupName FROM usergroup WHERE 
UserName='%{SQL-User-Name}' ORDER BY priority -> SELECT GroupName FROM 
usergroup WHERE UserName='DEFAULT' ORDER BY priority
[sql]     expand: SELECT id,GroupName,Attribute,Value,op FROM radgroupcheck 
WHERE GroupName = '%{Sql-Group}' ORDER BY id -> SELECT 
id,GroupName,Attribute,Value,op FROM radgroupcheck WHERE GroupName = 
'DEFAULT' ORDER BY id
[sql] User found in group DEFAULT
[sql]     expand: SELECT id,GroupName,Attribute,Value,op FROM radgroupreply 
WHERE GroupName = '%{Sql-Group}' ORDER BY id -> SELECT 
id,GroupName,Attribute,Value,op FROM radgroupreply WHERE GroupName = 
'DEFAULT' ORDER BY id
rlm_sql (sql): Released sql socket id: 61
++[sql] = ok
Greetings,
Daniel Finger
    
    
More information about the Freeradius-Users
mailing list