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