Hello everybody,
I'm using Freeradius 0.9.3 on a RedHat 7.3.
I'm trying to make a kind of "hot spot" thanks to the counter module of
freeradius.
I want people to authenticate one time for a defined amount of seconds (120
in
my example). Once their credit time has expired, they would be logged off
and
their account would be definitively blocked (as I never reset the counter).
I configured my radius and network (my NAS is an access-controller HP 760),
the user correctly logs in.
After 2 minutes, he is kicked out, that's great.
My problem is that he can log in again with the same account.
I hope that's clear enough.
Thanks in advance for telling me what I'm doing wrong or for any tips that
could help me.
Jean-Marie
Here is the configuration of radiusd.conf I made:
######################
radiusd.conf
######################
counter daily {
filename = ${raddbdir}/db.daily
key = User-Name
count-attribute = Acct-Session-Time
# reset = daily
reset = never
counter-name = Daily-Session-Time
check-name = Max-Daily-Session
# allowed-servicetype = Framed-User
allowed-servicetype = Login-User
cache-size = 5000
}
....
instantiate {
#
expr
#
# We add the counter module here so that it registers
# the check-name attribute before any module which sets
# it
# daily
daily
}
....
authorize {
preprocess
chap
eap
suffix
files
mschap
daily
}
....
accounting {
acct_unique
detail
# daily
daily
unix # wtmp file
radutmp
}
Here is the users file :
######################
users
######################
user Max-Daily-Session:= 120, User-Password == "password"
Service-Type = Login-User
Here is the accounting logs that Freeradius creates :
########################
/${logdir}/radacct
########################
Thu May 27 15:52:40 2004
User-Name = "user"
NAS-IP-Address = 172.16.1.2
NAS-Identifier = "00e081526836"
Acct-Status-Type = Start
Calling-Station-Id = "00-0c-f1-13-7a-43"
Called-Station-Id = "00-e0-81-52-68-36"
Acct-Session-Id = "1-000cf1137a43-1085665454-413-OZPFBnEv"
Client-IP-Address = 172.16.1.2
Acct-Unique-Session-Id = "258bad8957416a39"
Timestamp = 1085665960
Thu May 27 15:54:46 2004
User-Name = "user"
NAS-IP-Address = 172.16.1.2
NAS-Identifier = "00e081526836"
Acct-Status-Type = Stop
Calling-Station-Id = "00-0c-f1-13-7a-43"
Called-Station-Id = "00-e0-81-52-68-36"
Acct-Session-Id = "1-000cf1137a43-1085665454-413-OZPFBnEv"
Acct-Session-Time = 126
Client-IP-Address = 172.16.1.2
Acct-Unique-Session-Id = "258bad8957416a39"
Timestamp = 1085666086
Thu May 27 15:57:05 2004
User-Name = "user"
NAS-IP-Address = 172.16.1.2
NAS-Identifier = "00e081526836"
Acct-Status-Type = Start
Calling-Station-Id = "00-0c-f1-13-7a-43"
Called-Station-Id = "00-e0-81-52-68-36"
Acct-Session-Id = "1-000cf1137a43-1085665718-413-do1eGpcy"
Client-IP-Address = 172.16.1.2
Acct-Unique-Session-Id = "39b3dccbfe337738"
Timestamp = 1085666225
Thu May 27 15:59:05 2004
User-Name = "user"
NAS-IP-Address = 172.16.1.2
NAS-Identifier = "00e081526836"
Acct-Status-Type = Stop
Calling-Station-Id = "00-0c-f1-13-7a-43"
Called-Station-Id = "00-e0-81-52-68-36"
Acct-Session-Id = "1-000cf1137a43-1085665718-413-do1eGpcy"
Acct-Session-Time = 121
Client-IP-Address = 172.16.1.2
Acct-Unique-Session-Id = "39b3dccbfe337738"
Timestamp = 1085666345
#######################################################
Here is the debug of radiusd -X for the logging :
#######################################################
rad_recv: Access-Request packet from host 172.16.1.2:1059, id=89, length=83
User-Name = "user"
User-Password = "password"
NAS-IP-Address = 172.16.1.2
NAS-Identifier = "00e081526836"
Calling-Station-Id = "00-0c-f1-13-7a-43"
modcall: entering group authorize for request 1
modcall[authorize]: module "preprocess" returns ok for request 1
modcall[authorize]: module "chap" returns noop for request 1
modcall[authorize]: module "eap" returns noop for request 1
rlm_realm: No '@' in User-Name = "user", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[authorize]: module "suffix" returns noop for request 1
users: Matched user at 97
modcall[authorize]: module "files" returns ok for request 1
modcall[authorize]: module "mschap" returns noop for request 1
rlm_counter: Entering module authorize code
rlm_counter: (Check item - counter) is greater than zero
rlm_counter: Authorized user user, check_item=120, counter=0
rlm_counter: Sent Reply-Item for user user, Type=Session-Timeout, value=120
modcall[authorize]: module "daily" returns ok for request 1
modcall: group authorize returns ok for request 1
auth: type Local
auth: user supplied User-Password matches local User-Password
Sending Access-Accept of id 89 to 172.16.1.2:1059
Service-Type = Login-User
Session-Timeout = 120
Finished request 1
Going to the next request
--- Walking the entire request list ---
Waking up in 6 seconds...
rad_recv: Accounting-Request packet from host 172.16.1.2:1060, id=90,
length=130
User-Name = "user"
NAS-IP-Address = 172.16.1.2
NAS-Identifier = "00e081526836"
Acct-Status-Type = Start
Calling-Station-Id = "00-0c-f1-13-7a-43"
Called-Station-Id = "00-e0-81-52-68-36"
Acct-Session-Id = "1-000cf1137a43-1085667568-413-3KviFEgY"
modcall: entering group preacct for request 2
modcall[preacct]: module "preprocess" returns noop for request 2
rlm_realm: No '@' in User-Name = "user", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[preacct]: module "suffix" returns noop for request 2
modcall[preacct]: module "files" returns noop for request 2
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 = 172.16.1.2,NAS-IP-Address =
172.16.1.2,Acct-Session-Id =
"1-000cf1137a43-1085667568-413-3KviFEgY",User-Name = "user"'
rlm_acct_unique: Acct-Unique-Session-ID = "0d62303b8e51c196".
modcall[accounting]: module "acct_unique" returns ok for request 2
radius_xlat: '/var/log/radius/radacct/172.16.1.2/detail-20040527'
rlm_detail: /var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d
expands to /var/log/radius/radacct/172.16.1.2/detail-20040527
modcall[accounting]: module "detail" returns ok for request 2
rlm_counter: We only run on Accounting-Stop packets.
modcall[accounting]: module "daily" returns noop for request 2
modcall[accounting]: module "unix" returns noop for request 2
radius_xlat: '/var/log/radius/radutmp'
radius_xlat: 'user'
rlm_radutmp: No NAS-Port seen. Cannot do anything.
rlm_radumtp: WARNING: checkrad will probably not work!
modcall[accounting]: module "radutmp" returns noop for request 2
modcall: group accounting returns ok for request 2
Sending Accounting-Response of id 90 to 172.16.1.2:1060
Finished request 2
Going to the next request
Cleaning up request 2 ID 90 with timestamp 40b5faea
rl_next: returning NULL
Waking up in 6 seconds...
####################################################################
Here is the debug of radiusd -X for the logging out:
####################################################################"
rad_recv: Accounting-Request packet from host 172.16.1.2:1061, id=71,
length=136
User-Name = "user"
NAS-IP-Address = 172.16.1.2
NAS-Identifier = "00e081526836"
Acct-Status-Type = Stop
Calling-Station-Id = "00-0c-f1-13-7a-43"
Called-Station-Id = "00-e0-81-52-68-36"
Acct-Session-Id = "1-000cf1137a43-1085667568-413-3KviFEgY"
Acct-Session-Time = 126
modcall: entering group preacct for request 3
modcall[preacct]: module "preprocess" returns noop for request 3
rlm_realm: No '@' in User-Name = "user", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[preacct]: module "suffix" returns noop for request 3
modcall[preacct]: module "files" 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 = 172.16.1.2,NAS-IP-Address =
172.16.1.2,Acct-Session-Id =
"1-000cf1137a43-1085667568-413-3KviFEgY",User-Name = "user"'
rlm_acct_unique: Acct-Unique-Session-ID = "0d62303b8e51c196".
modcall[accounting]: module "acct_unique" returns ok for request 3
radius_xlat: '/var/log/radius/radacct/172.16.1.2/detail-20040527'
rlm_detail: /var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d
expands to /var/log/radius/radacct/172.16.1.2/detail-20040527
modcall[accounting]: module "detail" returns ok for request 3
rlm_counter: Packet Unique ID = '0d62303b8e51c196'
rlm_counter: Could not find Service-Type attribute in the request. Returning
NOOP.
modcall[accounting]: module "daily" returns noop for request 3
modcall[accounting]: module "unix" returns noop for request 3
radius_xlat: '/var/log/radius/radutmp'
radius_xlat: 'user'
rlm_radutmp: No NAS-Port seen. Cannot do anything.
rlm_radumtp: WARNING: checkrad will probably not work!
modcall[accounting]: module "radutmp" returns noop for request 3
modcall: group accounting returns ok for request 3
Sending Accounting-Response of id 71 to 172.16.1.2:1061
Finished request 3
Going to the next request
--- Walking the entire request list ---
Cleaning up request 3 ID 71 with timestamp 40b5fb68
Nothing to do. Sleeping until we see a request.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html