Simultaneous-Use doesn't work.

Ernie Dunbar maillist at lightspeed.ca
Mon Dec 11 19:36:00 CET 2006


> Hello Ernie,
>
> Just wondering if you are using clients.conf at all?

Yup. The way you can tell is by running `freeradius -X`, like I did.
You'll see a line like this:

Config:   including file: /etc/freeradius/clients.conf

> I need to migrate
> an older freeradius 0.9x to 1.2 and notice that the newer sql setup
> uses an "nas" table that was not in the older setup. We used
> clients.conf for the nas's and I'm trying to figure out how/if
> clients.conf gets migrated to the nas table. Did you find any
> pertinent docs?

Nope. The best documentation I can find is the FreeRADIUS faq on the
FreeRADIUS home page. And it's out of date in this matter.

>
> Friday, December 1, 2006, 2:46:04 PM, you wrote:
>
>> I'm using FreeRADIUS 1.0.2 and its associated mysql plugin on a Debian
>> 3.1
>> system. I've managed to get the server working to where our customers
>> are
>> authenticating out of the mysql database just fine and the accounting
>> records are being stored in mysql properly too.
>
>> But the Simultaneous-Use configuration directive doesn't do a thing. It
>> doesn't even check against radwtmp (even though the radwho command works
>> fine) when someone logs on. The FAQ at
>> http://www.freeradius.org/faq/#4.7.2 doesn't help any either, in no
>> small
>> part because it's outdated and neither raddb/naslist nor radcheck.pl
>> exist
>> in the new version. I don't see anything about Simultaneous-Use being
>> parsed when I run 'freeradius -X' however, so that might be a clue.
>
>> Here's the appropriate configuration on our server:
>
>> clients.conf:
>
>> client XXX.XXX.XXX.XXX {
>>         secret = XXXXXX
>>         nastype = cisco
>>         login = XXXXXX
>>         password = XXXXXX
>>         shortname = dialup
>> }
>
>> users:
>
>> DEFAULT Framed-Protocol == PPP, Simultaneous-Use := 1
>>         Framed-Protocol = PPP,
>>         Service-Type = Framed-User,
>>         Framed-Compression = Van-Jacobson-TCP-IP
>
>> And finally, the output of freeradius -X:
>
>> ns2:/etc/freeradius# /usr/sbin/freeradius -X
>> Starting - reading configuration files ...
>> reread_config:  reading radiusd.conf
>> Config:   including file: /etc/freeradius/proxy.conf
>> Config:   including file: /etc/freeradius/clients.conf
>> Config:   including file: /etc/freeradius/snmp.conf
>> Config:   including file: /etc/freeradius/eap.conf
>> Config:   including file: /etc/freeradius/sql.conf
>>  main: prefix = "/usr"
>>  main: localstatedir = "/var"
>>  main: logdir = "/var/log/freeradius"
>>  main: libdir = "/usr/lib/freeradius"
>>  main: radacctdir = "/var/log/freeradius/radacct"
>>  main: hostname_lookups = no
>>  main: max_request_time = 30
>>  main: cleanup_delay = 5
>>  main: max_requests = 256
>>  main: delete_blocked_requests = 0
>>  main: port = 1812
>>  main: allow_core_dumps = no
>>  main: log_stripped_names = yes
>>  main: log_file = "/var/log/freeradius/radius.log"
>>  main: log_auth = yes
>>  main: log_auth_badpass = yes
>>  main: log_auth_goodpass = yes
>>  main: pidfile = "/var/run/freeradius/freeradius.pid"
>>  main: user = "freerad"
>>  main: group = "freerad"
>>  main: usercollide = no
>>  main: lower_user = "no"
>>  main: lower_pass = "no"
>>  main: nospace_user = "after"
>>  main: nospace_pass = "after"
>>  main: checkrad = "/usr/sbin/checkrad"
>>  main: proxy_requests = off
>>  security: max_attributes = 200
>>  security: reject_delay = 1
>>  security: status_server = no
>>  main: debug_level = 0
>> read_config_files:  reading dictionary
>> read_config_files:  reading naslist
>> read_config_files:  reading clients
>> read_config_files:  reading realms
>> radiusd:  entering modules setup
>> Module: Library search path is /usr/lib/freeradius
>> Module: Loaded exec
>>  exec: wait = yes
>>  exec: program = "(null)"
>>  exec: input_pairs = "request"
>>  exec: output_pairs = "(null)"
>>  exec: packet_type = "(null)"
>> rlm_exec: Wait=yes but no output defined. Did you mean output=none?
>> Module: Instantiated exec (exec)
>> Module: Loaded expr
>> Module: Instantiated expr (expr)
>> Module: Loaded PAP
>>  pap: encryption_scheme = "crypt"
>> Module: Instantiated pap (pap)
>> Module: Loaded MS-CHAP
>>  mschap: use_mppe = yes
>>  mschap: require_encryption = no
>>  mschap: require_strong = no
>>  mschap: with_ntdomain_hack = no
>>  mschap: passwd = "(null)"
>>  mschap: authtype = "MS-CHAP"
>>  mschap: ntlm_auth = "(null)"
>> Module: Instantiated mschap (mschap)
>> Module: Loaded System
>>  unix: cache = no
>>  unix: passwd = "(null)"
>>  unix: shadow = "/etc/shadow"
>>  unix: group = "(null)"
>>  unix: radwtmp = "/var/log/freeradius/radwtmp"
>>  unix: usegroup = no
>>  unix: cache_reload = 600
>> Module: Instantiated unix (unix)
>> Module: Loaded preprocess
>>  preprocess: huntgroups = "/etc/freeradius/huntgroups"
>>  preprocess: hints = "/etc/freeradius/hints"
>>  preprocess: with_ascend_hack = no
>>  preprocess: ascend_channels_per_line = 23
>>  preprocess: with_ntdomain_hack = no
>>  preprocess: with_specialix_jetstream_hack = no
>>  preprocess: with_cisco_vsa_hack = no
>> Module: Instantiated preprocess (preprocess)
>> Module: Loaded files
>>  files: usersfile = "/etc/freeradius/users"
>>  files: acctusersfile = "/etc/freeradius/acct_users"
>>  files: preproxy_usersfile = "/etc/freeradius/preproxy_users"
>>  files: compat = "no"
>> Module: Instantiated files (files)
>> Module: Loaded SQL
>>  sql: driver = "rlm_sql_mysql"
>>  sql: server = "localhost"
>>  sql: port = ""
>>  sql: login = "dialupacct"
>>  sql: password = "d8271@#1"
>>  sql: radius_db = "dialupacct"
>>  sql: acct_table = "radacct"
>>  sql: acct_table2 = "radacct"
>>  sql: authcheck_table = "radcheck"
>>  sql: authreply_table = "radreply"
>>  sql: groupcheck_table = "radgroupcheck"
>>  sql: groupreply_table = "radgroupreply"
>>  sql: usergroup_table = "usergroup"
>>  sql: nas_table = "nas"
>>  sql: dict_table = "dictionary"
>>  sql: sqltrace = yes
>>  sql: sqltracefile = "/var/log/freeradius/sqltrace.sql"
>>  sql: readclients = no
>>  sql: deletestalesessions = yes
>>  sql: num_sql_socks = 5
>>  sql: sql_user_name = "%{User-Name}"
>>  sql: default_user_profile = ""
>>  sql: query_on_not_found = no
>>  sql: authorize_check_query = "SELECT
>> id,UserName,Attribute,Value,op FROM
>> radcheck WHERE Username = '%{SQL-User-Name}' ORDER BY id"
>>  sql: authorize_reply_query = "SELECT
>> id,UserName,Attribute,Value,op FROM
>> radreply WHERE Username = '%{SQL-User-Name}' ORDER BY id"
>>  sql: authorize_group_check_query = "SELECT
>> radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radgroupcheck.op
>>  FROM radgroupcheck,usergroup WHERE usergroup.Username =
>> '%{SQL-User-Name}' AND usergroup.GroupName = radgroupcheck.GroupName
>> ORDER BY radgroupcheck.id"
>>  sql: authorize_group_reply_query = "SELECT
>> radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgroupreply.Value,radgroupreply.op
>>  FROM radgroupreply,usergroup WHERE usergroup.Username =
>> '%{SQL-User-Name}' AND usergroup.GroupName = radgroupreply.GroupName
>> ORDER BY radgroupreply.id"
>>  sql: accounting_onoff_query = "UPDATE radacct SET AcctStopTime='%S',
>> AcctSessionTime=unix_timestamp('%S') - unix_timestamp(AcctStartTime),
>> AcctTerminateCause='%{Acct-Terminate-Cause}', AcctStopDelay =
>> '%{Acct-Delay-Time}' WHERE AcctSessionTime=0 AND AcctStopTime=0 AND
>> NASIPAddress= '%{NAS-IP-Address}' AND AcctStartTime <= '%S'"
>>  sql: accounting_update_query = "UPDATE radacct ? SET FramedIPAddress =
>> '%{Framed-IP-Address}', ? AcctSessionTime = '%{Acct-Session-Time}', ?
>> AcctInputOctets = '%{Acct-Input-Octets}', ? AcctOutputOctets =
>> '%{Acct-Output-Octets}' ? WHERE AcctSessionId = '%{Acct-Session-Id}' ?
>> AND UserName = '%{SQL-User-Name}' ? AND NASIPAddress=
>> '%{NAS-IP-Address}'"
>>  sql: accounting_update_query_alt = "INSERT into radacct (AcctSessionId,
>> AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType,
>> AcctStartTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start,
>> AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId,
>> ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay)
>> values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}',
>> '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}',
>> '%{NAS-Port-Type}', DATE_SUB('%S',INTERVAL (%{Acct-Session-Time:-0} +
>> %{Acct-Delay-Time:-0}) SECOND), '%{Acct-Session-Time}',
>> '%{Acct-Authentic}', '', '%{Acct-Input-Octets}',
>> '%{Acct-Output-Octets}',
>> '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}',
>> '%{Framed-Protocol}', '%{Framed-IP-Address}', '0')"
>>  sql: accounting_start_query = "INSERT into radacct (AcctSessionId,
>> AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType,
>> AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic,
>> ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets,
>> CalledStationId, CallingStationId, AcctTerminateCause, ServiceType,
>> FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay)
>> values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}',
>> '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}',
>> '%{NAS-Port-Type}', '%S', '0', '0', '%{Acct-Authentic}',
>> '%{Connect-Info}', '', '0', '0', '%{Called-Station-Id}',
>> '%{Calling-Station-Id}', '', '%{Service-Type}', '%{Framed-Protocol}',
>> '%{Framed-IP-Address}', '%{Acct-Delay-Time}', '0')"
>>  sql: accounting_start_query_alt = "UPDATE radacct SET AcctStartTime =
>> '%S', AcctStartDelay = '%{Acct-Delay-Time}', ConnectInfo_start =
>> '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND
>> UserName
>> = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}'"
>>  sql: accounting_stop_query = "UPDATE radacct SET AcctStopTime = '%S',
>> AcctSessionTime = '%{Acct-Session-Time}', AcctInputOctets =
>> '%{Acct-Input-Octets}', AcctOutputOctets = '%{Acct-Output-Octets}',
>> AcctTerminateCause = '%{Acct-Terminate-Cause}', AcctStopDelay =
>> '%{Acct-Delay-Time}', ConnectInfo_stop = '%{Connect-Info}' WHERE
>> AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}'
>> AND NASIPAddress = '%{NAS-IP-Address}'"
>>  sql: accounting_stop_query_alt = "INSERT into radacct (AcctSessionId,
>> AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType,
>> AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic,
>> ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets,
>> CalledStationId, CallingStationId, AcctTerminateCause, ServiceType,
>> FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay)
>> values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}',
>> '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}',
>> '%{NAS-Port-Type}', DATE_SUB('%S', INTERVAL (%{Acct-Session-Time:-0} +
>> %{Acct-Delay-Time:-0}) SECOND), '%S', '%{Acct-Session-Time}',
>> '%{Acct-Authentic}', '', '%{Connect-Info}', '%{Acct-Input-Octets}',
>> '%{Acct-Output-Octets}', '%{Called-Station-Id}',
>> '%{Calling-Station-Id}',
>> '%{Acct-Terminate-Cause}', '%{Service-Type}', '%{Framed-Protocol}',
>> '%{Framed-IP-Address}', '0', '%{Acct-Delay-Time}')"
>>  sql: group_membership_query = "SELECT GroupName FROM usergroup WHERE
>> UserName='%{SQL-User-Name}'"
>>  sql: connect_failure_retry_delay = 60
>>  sql: simul_count_query = "SELECT COUNT(*) FROM radacct WHERE
>> UserName='%{SQL-User-Name}' AND AcctStopTime = 0"
>>  sql: simul_verify_query = "SELECT RadAcctId, AcctSessionId, UserName,
>> NASIPAddress, NASPortId, FramedIPAddress, CallingStationId,
>> FramedProtocol FROM radacct WHERE UserName='%{SQL-User-Name}' AND
>> AcctStopTime = 0"
>>  sql: postauth_table = "radpostauth"
>>  sql: postauth_query = "INSERT into radpostauth (id, user, pass, reply,
>> date) values ('', '%{User-Name}', '%{User-Password:-Chap-Password}',
>> '%{reply:Packet-Type}', NOW())"
>>  sql: safe-characters =
>> "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /"
>> rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and
>> linked
>> rlm_sql (sql): Attempting to connect to dialupacct at localhost:/dialupacct
>> rlm_sql (sql): starting 0
>> rlm_sql (sql): Attempting to connect rlm_sql_mysql #0
>> rlm_sql_mysql: Starting connect to MySQL server for #0
>> rlm_sql (sql): Connected new DB handle, #0
>> rlm_sql (sql): starting 1
>> rlm_sql (sql): Attempting to connect rlm_sql_mysql #1
>> rlm_sql_mysql: Starting connect to MySQL server for #1
>> rlm_sql (sql): Connected new DB handle, #1
>> rlm_sql (sql): starting 2
>> rlm_sql (sql): Attempting to connect rlm_sql_mysql #2
>> rlm_sql_mysql: Starting connect to MySQL server for #2
>> rlm_sql (sql): Connected new DB handle, #2
>> rlm_sql (sql): starting 3
>> rlm_sql (sql): Attempting to connect rlm_sql_mysql #3
>> rlm_sql_mysql: Starting connect to MySQL server for #3
>> rlm_sql (sql): Connected new DB handle, #3
>> rlm_sql (sql): starting 4
>> rlm_sql (sql): Attempting to connect rlm_sql_mysql #4
>> rlm_sql_mysql: Starting connect to MySQL server for #4
>> rlm_sql (sql): Connected new DB handle, #4
>> Module: Instantiated sql (sql)
>> Module: Loaded realm
>>  realm: format = "suffix"
>>  realm: delimiter = "@"
>>  realm: ignore_default = no
>>  realm: ignore_null = no
>> Module: Instantiated realm (suffix)
>> Module: Loaded detail
>>  detail: detailfile =
>> "/var/log/freeradius/radacct/%{Client-IP-Address}/detail-%Y%m%d"
>>  detail: detailperm = 384
>>  detail: dirperm = 493
>>  detail: locking = no
>> Module: Instantiated detail (detail)
>> Module: Loaded radutmp
>>  radutmp: filename = "/var/log/freeradius/radutmp"
>>  radutmp: username = "%{User-Name}"
>>  radutmp: case_sensitive = yes
>>  radutmp: check_with_nas = yes
>>  radutmp: perm = 384
>>  radutmp: callerid = yes
>> Module: Instantiated radutmp (radutmp)
>> Module: Loaded eap
>>  eap: default_eap_type = "md5"
>>  eap: timer_expire = 60
>>  eap: ignore_unknown_eap_types = no
>>  eap: cisco_accounting_username_bug = no
>> rlm_eap: Loaded and initialized type md5
>> rlm_eap: Loaded and initialized type leap
>>  gtc: challenge = "Password: "
>>  gtc: auth_type = "PAP"
>> rlm_eap: Loaded and initialized type gtc
>>  mschapv2: with_ntdomain_hack = no
>> rlm_eap: Loaded and initialized type mschapv2
>> Module: Instantiated eap (eap)
>> Listening on authentication *:1812
>> Listening on accounting *:1813
>> Ready to process requests.
>
>> -
>> List info/subscribe/unsubscribe? See
>> http://www.freeradius.org/list/users.html
>
>





More information about the Freeradius-Users mailing list