Hello Everybody,

I am trying to use rlm_sqlcounter instead of the db counter in my free radius configuration. But whenever I try to run the "radiusd" in debug mode i get the following error message:

radiusd.conf[926] Failed to link to module 'rlm_sqlcounter': file not found

The complete debugging information is included below with the radiusd.conf file and the users file.

THE DEBUGGING INFORMATION

Starting - reading configuration files ...

reread_config: reading radiusd.conf

Config: including file: /etc/raddb/proxy.conf

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

Config: including file: /etc/raddb/snmp.conf

Config: including file: /etc/raddb/sql.conf

main: prefix = "/usr/local"

main: localstatedir = "/var"

main: logdir = "/var/log"

main: libdir = "/usr/local/lib"

main: radacctdir = "/var/log/radacct"

main: hostname_lookups = no

read_config_files: reading dictionary

read_config_files: reading clients

read_config_files: reading realms

read_config_files: reading naslist

main: max_request_time = 30

main: cleanup_delay = 5

main: max_requests = 1024

main: delete_blocked_requests = 0

main: port = 0

main: allow_core_dumps = no

main: log_stripped_names = no

main: log_auth = no

main: log_auth_badpass = no

main: log_auth_goodpass = no

main: pidfile = "/var/run/radiusd/radiusd.pid"

main: user = "(null)"

main: group = "(null)"

main: usercollide = no

main: lower_user = "no"

main: lower_pass = "no"

main: nospace_user = "no"

main: nospace_pass = "no"

main: proxy_requests = yes

proxy: retry_delay = 5

proxy: retry_count = 3

proxy: synchronous = no

proxy: default_fallback = yes

proxy: dead_time = 120

security: max_attributes = 200

security: reject_delay = 1

main: debug_level = 0

read_config_files: entering modules setup

Module: Library search path is /usr/local/lib

Module: Loaded preprocess

preprocess: huntgroups = "/etc/raddb/huntgroups"

preprocess: hints = "/etc/raddb/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 realm

realm: format = "suffix"

realm: delimiter = "@"

Module: Instantiated realm (suffix)

Module: Loaded SQL

sql: driver = "rlm_sql_mysql"

sql: server = "bishimail.acusign.com"

sql: port = ""

sql: login = "root"

sql: password = ""

sql: radius_db = "radius"

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 = no

sql: sqltracefile = "/var/log/sqltrace.sql"

sql: deletestalesessions = yes

sql: num_sql_socks = 5

sql: sql_user_name = "%{User-Name}"

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: authenticate_query = "SELECT Value,Attribute FROM radcheck WHERE UserName = '%{User-Name}' AND ( Attribute = 'User-Password' OR Attribute = 'Password' OR Attribute = 'Crypt-Password' ) ORDER BY Attribute DESC"

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}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress= '%{NAS-IP-Address}' AND AcctStopTime = 0"

sql: accounting_start_query = "INSERT into radacct (RadAcctId, 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}' AND AcctStopTime = 0"

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}' AND AcctStopTime = 0"

sql: accounting_stop_query_alt = "INSERT into radacct (RadAcctId, 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}', '0', '%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: 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, CalledStationId FROM radacct WHERE UserName='%{SQL-User-Name}' AND AcctStopTime = 0"

sql: simul_zap_query = "DELETE FROM radacct WHERE RadAcctId = '%s'"

rlm_sql: Driver rlm_sql_mysql loaded and linked

rlm_sql: Attempting to connect to [EMAIL PROTECTED]:/radius

rlm_sql: starting 0

rlm_sql: Attempting to connect #0

rlm_sql: Starting connect to MySQL server for #0

rlm_sql: Connected new DB handle, #0

rlm_sql: starting 1

rlm_sql: Attempting to connect #1

rlm_sql: Starting connect to MySQL server for #1

rlm_sql: Connected new DB handle, #1

rlm_sql: starting 2

rlm_sql: Attempting to connect #2

rlm_sql: Starting connect to MySQL server for #2

rlm_sql: Connected new DB handle, #2

rlm_sql: starting 3

rlm_sql: Attempting to connect #3

rlm_sql: Starting connect to MySQL server for #3

rlm_sql: Connected new DB handle, #3

rlm_sql: starting 4

rlm_sql: Attempting to connect #4

rlm_sql: Starting connect to MySQL server for #4

rlm_sql: Connected new DB handle, #4

Module: Instantiated sql (sql)

radiusd.conf[926] Failed to link to module 'rlm_sqlcounter': file not found

 

##

## radiusd.conf -- FreeRADIUS server configuration file.

STRIPPED

##

# I HAVE COMMENTED THIS MODULE

#counter {

# filename = ${raddbdir}/db.counter

# key = User-Name

# count-attribute = Acct-Session-Time

# reset = daily

# counter-name = Daily-Session-Time

# check-name = Max-Daily-Session

# allowed-servicetype = Framed-User

# cache-size = 5000

#}

#THE MODULES BELOW ARE ADDED BY ME. TAKEN FROM THE EXPERIMENTAL MODULE

sqlcounter dailycounter {

counter-name = Daily-Session-Time

check-name = Max-Daily-Session

sqlmod-inst = sqlcca3

key = User-Name

reset = daily

# This query properly handles calls that span from the previous reset period

# into the current period but involves more work for the SQL server than those below

query = "SELECT SUM(AcctSessionTime - GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'"

# This query ignores calls that started in a previous reset period and

# continue into into this one. But it is a little easier on the SQL server

# query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}' AND AcctStartTime > FROM_UNIXTIME('%b')"

# This query is the same as above, but demonstrates an additional

# counter parameter '%e' which is the timestamp for the end of the period

# query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}' AND AcctStartTime BETWEEN FROM_UNIXTIME('%b') AND FROM_UNIXTIME('%e')"

}

sqlcounter monthlycounter {

counter-name = Monthly-Session-Time

check-name = Max-Monthly-Session

sqlmod-inst = sqlcca3

key = User-Name

reset = monthly

# This query properly handles calls that span from the previous reset period

# into the current period but involves more work for the SQL server than those below

query = "SELECT SUM(AcctSessionTime - GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'"

# This query ignores calls that started in a previous reset period and

# continue into into this one. But it is a little easier on the SQL server

# query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}' AND AcctStartTime > FROM_UNIXTIME('%b')"

# query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}' AND AcctStartTime BETWEEN FROM_UNIXTIME('%b') AND FROM_UNIXTIME('%e')"

}

always fail {

rcode = fail

}

always reject {

rcode = reject

}

always ok {

rcode = ok

simulcount = 0

mpp = no

}

authorize {

preprocess

# chap

# counter

# attr_filter

# eap

suffix

# files

sql

# etc_smbpasswd

dailycounter

monthlycounter

#

}

 

authenticate {

# pam

# unix

# authtype LDAP {

# ldap

# }

# mschap

# eap

# Uncomment it if you want to support CHAP

# authtype CHAP {

# chap

# }

}

preacct {

preprocess

suffix

# files

}

accounting {

# acct_unique

detail

sqlcca1

# counter

# unix

sql

radutmp

# sradutmp

}

session {

radutmp

sql

}

# THE USERS FILE STRIPPED

#USER STEVE FOR TESTING ONLY

steve Auth-Type := Local, User-Password == "testing"

Service-Type = Framed-User,

Framed-Protocol = PPP

#ADDED BY ME

DEFAULT Auth-Type := MYSQL, Service-Type == Framed-User, Simultaneous-Use == 1

Framed-IP-Address = 255.255.255.224,

Framed-Protocol = PPP,

Idle-Timeout = 180,

Fall-Through = 1

#ORIGINAL ..I HAVE NOT CHANGED ANYTHING HERE

DEFAULT Service-Type == Framed-User

Framed-IP-Address = 255.255.255.254,

Framed-MTU = 576,

Service-Type = Framed-User,

Fall-Through = Yes

DEFAULT Framed-Protocol == PPP

Framed-Protocol = PPP,

Framed-Compression = Van-Jacobson-TCP-IP

#

# Default for CSLIP: dynamic IP address, SLIP mode, VJ-compression.

#

DEFAULT Hint == "CSLIP"

Framed-Protocol = SLIP,

Framed-Compression = Van-Jacobson-TCP-IP

#

# Default for SLIP: dynamic IP address, SLIP mode.

#

DEFAULT Hint == "SLIP"

Framed-Protocol = SLIP

 

PLEASE ADVISE where I am doing wrong or where the problem is. Sorry for the big and long mail.

If Anyone has come across the problem in the mailing archives, the please let me know. That will also help if the solution is there!!!

 

Atanu Das
System Development
SS NetCom Pvt Ltd.
Dhankheti
Shillong-793003

Visit us at: www.neline.com

Attachment: smime.p7s
Description: application/pkcs7-signature

Reply via email to