Dear All

I am running freeradius-0.9.3 at my redhat 9 machine. rlm_sqlcounter module is 
also installed. at radius log shows that module is successfully loaded.
Sat Apr 10 13:53:43 2004 : Info: rlm_sql (sql): Driver rlm_sql_mysql (module 
rlm_sql_mysql) loaded and linked

but seems to me rlm_sqlcounter is not working properly.
counter is not resetting the user as well as not rejecting though his maximum 
sessiontime has been finished. So whats wrong with my configuration. Can anyone 
help me out of this problem.


I have put attribte at my mysql database

mysql> select * from radcheck where username='testshuvo';

| id   | UserName  | Attribute       | Value | op |
+------+-----------+-----------------+-------+----+
| 6471 | testshuvo | User-Password   | 12345  | := |
| 6476 | testshuvo | Max-All-Session | 11000 | := |
+------+-----------+-----------------+-------+----+

here is my configuration files

#/etc/raddb/sqlcounter.conf


#-----#
sqlcounter noresetcounter {
                counter-name = Max-All-Session-Time
                check-name = Max-All-Session
                sqlmod-inst = sql
                key = User-Name
                reset = never

                query = "Select sum(AcctSessionTime) from radacct where 
username='%(%k)'"
        }
sqlcounter dailycounter {
                driver = "rlm_sqlcounter"
                counter-name = Daily-Session-Time
                check-name = Max-Daily-Session
                sqlmod-inst = sqlcca3
                key = User-Name
                reset = daily

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

        }

sqlcounter monthlycounter {
                counter-name = Monthly-Session-Time
                check-name = Max-Monthly-Session
                sqlmod-inst = sqlcca3
                key = User-Name
                reset = monthly

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

        }

#-----#


#/etc/raddb/radiusd.conf


prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = /usr/sbin
logdir = ${localstatedir}/log/radius
raddbdir = ${sysconfdir}/raddb
radacctdir = ${logdir}/radacct
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/radiusd
log_file = ${logdir}/radius.log
libdir = /usr/lib
pidfile = ${run_dir}/radiusd.pid


user = radiusd
group = radiusd

max_request_time = 30
delete_blocked_requests = no
cleanup_delay = 5
max_requests = 1024
bind_address = *
port = 0
hostname_lookups = no
allow_core_dumps = no
regular_expressions     = yes
extended_expressions    = yes
log_stripped_names = no
log_auth = no
log_auth_badpass = no
log_auth_goodpass = no
usercollide = no
lower_user = no
lower_pass = no
nospace_user = no
nospace_pass = no

checkrad = ${sbindir}/checkrad

security {
        max_attributes = 200
        reject_delay = 1
        status_server = no
}

proxy_requests  = yes
$INCLUDE  ${confdir}/proxy.conf
$INCLUDE  ${confdir}/clients.conf
snmp    = no
$INCLUDE  ${confdir}/snmp.conf


thread pool {
        start_servers = 5
        max_servers = 32
        min_spare_servers = 3
        max_spare_servers = 10
        max_requests_per_server = 0
}

modules {
        $INCLUDE  ${confdir}/sqlcounter.conf

        pap {
                encryption_scheme = crypt
        }

        chap {
                authtype = CHAP
        }

        pam {
                pam_auth = radiusd
        }

        unix {
                cache = no
                cache_reload = 600
                #passwd = /etc/passwd
                shadow = /etc/shadow
                #group = /etc/group
                radwtmp = ${logdir}/radwtmp
        }

        eap {
                default_eap_type = md5
                timer_expire     = 60

                md5 {
                }

                leap {
                }
        }

        mschap {
                authtype = MS-CHAP
        }


        realm realmslash {
                format = prefix
                delimiter = "/"
        }

        realm suffix {
                format = suffix
                delimiter = "@"
        }

        realm realmpercent {
                format = suffix
                delimiter = "%"
        }

        preprocess {
                huntgroups = ${confdir}/huntgroups
                hints = ${confdir}/hints
                with_ascend_hack = no
                ascend_channels_per_line = 23
                with_ntdomain_hack = no
                with_specialix_jetstream_hack = no
                with_cisco_vsa_hack = no
        }
        files {
                usersfile = ${confdir}/users
                acctusersfile = ${confdir}/acct_users
                compat = no
        }

        detail {
                detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d
                detailperm = 0600
        }


        acct_unique {
                key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-
Address, NAS-Port-Id"
        }


        $INCLUDE  ${confdir}/sql.conf

        radutmp {
                filename = ${logdir}/radutmp
                username = %{User-Name}
                case_sensitive = yes
                check_with_nas = yes
                perm = 0600
                callerid = "yes"
        }

        radutmp sradutmp {
                filename = ${logdir}/sradutmp
                perm = 0644
                callerid = "no"
        }

        attr_filter {
                attrsfile = ${confdir}/attrs
        }

        counter daily {
                filename = ${raddbdir}/db.daily
                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
        }

        always fail {
                rcode = fail
        }
        always reject {
                rcode = reject
        }
        always ok {
                rcode = ok
                simulcount = 0
                mpp = no
        }

        expr {
        }

        digest {
        }

        exec {
                wait = yes
                input_pairs = request
        }

        exec echo {
                wait = yes
                program = "/bin/echo %{User-Name}"
                input_pairs = request
                output_pairs = reply
        }

        ippool main_pool {
                range-start = 192.168.1.1
                range-stop = 192.168.3.254
                netmask = 255.255.255.0
                cache-size = 800
                session-db = ${raddbdir}/db.ippool
                ip-index = ${raddbdir}/db.ipindex
                override = no
        }
}

instantiate {
        expr
#       daily
}

authorize {
        preprocess
#       eap
        suffix
#       files
        sql
        chap
        mschap
        noresetcounter
        dailycounter
        monthlycounter
}


authenticate {
        Auth-Type PAP {
                pap
        }

        Auth-Type CHAP {
                chap
        }

        Auth-Type MS-CHAP {
                mschap
        }

# 
        unix
        eap
# 
        pam
}


preacct {
        preprocess
        suffix
        #files
}

accounting {
        acct_unique
        detail
        sql
#       radutmp
}


session {
        sql
}


post-auth {
}

pre-proxy {
}

post-proxy {
        eap
}

here is the debugging log for your understanding

modcall: group preacct returns noop for request 2
modcall: entering group accounting for request 2
rlm_acct_unique: WARNING: Attribute NAS-Port-Id was not found in request, 
unique ID MAY be inconsistent
rlm_acct_unique: Hashing ',Client-IP-Address = 202.22.200.41,NAS-IP-Address = 
202.22.201.4,Acct-Session-Id = "820001CC",User-Name = "testshuvo"'
rlm_acct_unique: Acct-Unique-Session-ID = "43eb944ab525f0bf".
  modcall[accounting]: module "acct_unique" returns ok for request 2
radius_xlat:  '/var/log/radius/radacct/202.22.200.41/detail-20040410'
rlm_detail: /var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands 
to /var/log/radius/radacct/202.22.200.41/detail-20040410
  modcall[accounting]: module "detail" returns ok for request 2
radius_xlat:  'testshuvo'
rlm_sql (sql): sql_set_user escaped user --> 'testshuvo'
radius_xlat:  '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
('', '820001CC', '43eb944ab525f0bf', 'testshuvo', 'NULL', '202.22.201.4', '18', 
'Async', '2004-04-10 
14:16:19', '0', '0', 'RADIUS', '', '', '0', '0', '', '', '', 'Framed-
User', 'PPP', '202.22.204.61', '0', '0')'
radius_xlat:  '/var/log/radius/sqltrace.sql'
rlm_sql (sql): Reserving sql socket id: 1
rlm_sql_mysql: 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
('', '820001CC', '43eb944ab525f0bf', 'testshuvo', 'NULL', '202.22.201.4', '18', 
'Async', '2004-04-10 
14:16:19', '0', '0', 'RADIUS', '', '', '0', '0', '', '', '', 'Framed-
User', 'PPP', '202.22.204.61', '0', '0')
rlm_sql (sql): Released sql socket id: 1
  modcall[accounting]: module "sql" returns ok for request 2
modcall: group accounting returns ok for request 2
Sending Accounting-Response of id 25 to 202.22.200.41:1646
        Proxy-State = 0x33303139
Finished request 2
Going to the next request
--- Walking the entire request list ---
Waking up in 4 seconds...
--- Walking the entire request list ---
Cleaning up request 1 ID 85 with timestamp 4077ad51
Waking up in 2 seconds...
--- Walking the entire request list ---
Cleaning up request 2 ID 25 with timestamp 4077ad53
Nothing to do.  Sleeping until we see a request.

rad_recv: Accounting-Request packet from host 202.22.200.41:1646, id=26, 
length=160
        Acct-Session-Id = "820001CC"
        User-Name = "testshuvo"
        NAS-IP-Address = 202.22.201.4
        NAS-Port = 18
        NAS-Port-Type = Async
        Acct-Status-Type = Stop
        Acct-Session-Time = 11
        Acct-Authentic = RADIUS
        Acct-Input-Octets = 2044
        Acct-Output-Octets = 1199
        Acct-Terminate-Cause = User-Request
        LE-Terminate-Detail = "User Request - PPP Term Req"
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Framed-IP-Address = 202.22.204.61
        Acct-Delay-Time = 0
        Proxy-State = 0x33303161
modcall: entering group preacct for request 3
  modcall[preacct]: module "preprocess" returns noop for request 3
    rlm_realm: No '@' in User-Name = "testshuvo", looking up realm NULL
    rlm_realm: Found realm "NULL"
    rlm_realm: Adding Stripped-User-Name = "testshuvo"
    rlm_realm: Proxying request from user testshuvo to realm NULL
    rlm_realm: Adding Realm = "NULL"
    rlm_realm: Accounting realm is LOCAL.
  modcall[preacct]: module "suffix" returns noop for request 3
modcall: group preacct returns noop for request 3
modcall: entering group accounting for request 3
rlm_acct_unique: WARNING: Attribute NAS-Port-Id was not found in request, 
unique ID MAY be inconsistent
rlm_acct_unique: Hashing ',Client-IP-Address = 202.22.200.41,NAS-IP-Address = 
202.22.201.4,Acct-Session-Id = "820001CC",User-Name = "testshuvo"'
rlm_acct_unique: Acct-Unique-Session-ID = "43eb944ab525f0bf".
  modcall[accounting]: module "acct_unique" returns ok for request 3
radius_xlat:  '/var/log/radius/radacct/202.22.200.41/detail-20040410'
rlm_detail: /var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands 
to /var/log/radius/radacct/202.22.200.41/detail-20040410
  modcall[accounting]: module "detail" returns ok for request 3
radius_xlat:  'testshuvo'
rlm_sql (sql): sql_set_user escaped user --> 'testshuvo'
radius_xlat:  'UPDATE radacct SET AcctStopTime = '2004-04-10 14:16:29', 
AcctSessionTime = '11', AcctInputOctets = '2044', AcctOutputOctets = '1199', 
AcctTerminateCause = 'User-Request', AcctStopDelay = '0', ConnectInfo_stop = '' 
WHERE AcctSessionId = '820001CC' AND UserName = 'testshuvo' AND NASIPAddress 
= '202.22.201.4' AND AcctStopTime = 0'
radius_xlat:  '/var/log/radius/sqltrace.sql'
rlm_sql (sql): Reserving sql socket id: 0
rlm_sql_mysql: query:  UPDATE radacct SET AcctStopTime = '2004-04-10 14:16:29', 
AcctSessionTime = '11', AcctInputOctets = '2044', AcctOutputOctets = '1199', 
AcctTerminateCause = 'User-Request', AcctStopDelay = '0', ConnectInfo_stop = '' 
WHERE AcctSessionId = '820001CC' AND UserName = 'testshuvo' AND NASIPAddress 
= '202.22.201.4' AND AcctStopTime = 0
rlm_sql (sql): Released sql socket id: 0
  modcall[accounting]: module "sql" returns ok for request 3
modcall: group accounting returns ok for request 3
Sending Accounting-Response of id 26 to 202.22.200.41:1646
        Proxy-State = 0x33303161
Finished request 3
Going to the next request
--- Walking the entire request list ---
Waking up in 6 seconds...
--- Walking the entire request list ---
Cleaning up request 3 ID 26 with timestamp 4077ad5d
Nothing to do.  Sleeping until we see a request.

waiting for your quick response regarding this matter.

thanks and regards

-------------------------------------------------
This mail sent through IMP: http://mail.accesstel.net/



-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to