authenticate against bytes in and out with sqlcounter
Martin Potgieter
martin at systemadmin.co.za
Wed Nov 9 23:28:20 CET 2005
hello,
I am using freeradius 1.0.5 and trying to get to a point where I can
deny access to a user when he has "used" more than a specific amount of
bandwidth in a month (from the 1st to the last day of the month).
rlm_sqlcounter seems to be what I need. I have configured it as I think
it should be but when I go into debug mode the values seem to get
changed at a point.
Here is my sqlcounter.conf file:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
sqlcounter monthlycounter {
counter-name = Max-Bytes
check-name = Max-Bytes
sqlmod-inst = sql
key = User-Name
reset = monthly
Reply-Message = "You have reached your bandwidth cap for
this Month"
query = "SELECT sum(AcctOutputOctets) +
sum(AcctInputOctets) FROM radacct where UserName = '%{%k}'"
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
In my radiusd.conf my authorize section is as follows:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
authorize {
preprocess
chap
mschap
suffix
sql
monthlycounter
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
When I am in debug mode I get the following:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Thu Nov 10 00:17:41 2005 : Debug: rlm_sql (sql): Reserving sql socket id: 4
Thu Nov 10 00:17:41 2005 : Debug: rlm_sql_mysql: query: SELECT
sum(AcctOutputOctets) + sum(AcctInputOctets) FROM radacct where UserName
= 'surfing at home'
Thu Nov 10 00:17:41 2005 : Debug: rlm_sql (sql): - sql_xlat finished
Thu Nov 10 00:17:41 2005 : Debug: rlm_sql (sql): Released sql socket id: 4
Thu Nov 10 00:17:41 2005 : Debug: radius_xlat: '9628587663'
Thu Nov 10 00:17:41 2005 : Debug: rlm_sqlcounter: (Check item - counter)
is greater than zero
Thu Nov 10 00:17:41 2005 : Debug: rlm_sqlcounter: Authorized user
surfing at home, check_item=-1073741824, counter=2147483647
Thu Nov 10 00:17:41 2005 : Debug: rlm_sqlcounter: Sent Reply-Item for
user surfing at home, Type=Session-Timeout, value=1
Thu Nov 10 00:17:41 2005 : Debug: modsingle[authorize]: returned from
monthlycounter (rlm_sqlcounter) for request 2
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Why the altered negative number in the check_item? Is the radius_xlat
doing something? Do I need to put in Max-Bytes in one of the dictionary
files? The example in experimental.conf did not mention anything about
adding attributes so I assumed not.
Also the "counter=2147483647" is not the value I have in the database
for that user...
I am missing something here :-)
Thanks for any help
Martin
More information about the Freeradius-Users
mailing list