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