Mit Hilfe eines Moduls kann man den FreeRADIUS dazu bringen, dass ein Benutzerzugang nach einer vorgegebenen Zeit nach der ersten Anmeldung abläuft. Dazu erzeugt man ein neues Modul innerhalb des Modulverzeichnisses (dieses findet man meistens unter /etc/freeradius/modules/). Ich habe da Modul passender Weise accessperiod genannt und es sollte wie folgt aussehen:
sqlcounter accessperiod {
counter-name = Max-Access-Period-Time
check-name = Access-Period
sqlmod-inst = sql
key = User-Name
reset = never
query = "SELECT IFNULL((SELECT TIME_TO_SEC(TIMEDIFF(Now(),AcctStartTime)) FROM radacct WHERE UserName = '%{%k}' ORDER BY AcctStartTime LIMIT 1),0)"
}
Danach fügt man das Modul am Ende der entsprechenden Authorize-Section der Site des FreeRADIUS ein. Diese könnte dann z.B. wie folgt aussehen:
authorize {
preprocess
chap
mschap
suffix
eap {
ok = return
}
unix
sql
expiration
logintime
pap
noresetcounter
dailycounter
monthlycounter
accessperiod
}
Damit die Konfiguration aktiv wird, muss der FreeRADIUS neu gestartet oder geladen werden und bei den entsprechenden Benutzern muss in der Tabelle radcheck noch das Attribut Access-Period vorgegeben werden. Das könnte z.B. wie folgt aussehen:
+—-+———–+——————-+—-+————-+
| id | UserName | Attribute | op | Value |
+—-+———–+——————-+—-+————-+
| 2 | benutzer2 | Access-Period | := | 3600 |
+—-+———–+——————-+—-+————-+
Schreibe einen Kommentar