FreeRADIUS: Begrenzung der Zugriffszeit nach der ersten Benutzung

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 |
+—-+———–+——————-+—-+————-+

3 Antworten auf „FreeRADIUS: Begrenzung der Zugriffszeit nach der ersten Benutzung“

  1. Genau so gemacht…
    Leider funktioniert es nicht.. Bin echt schon depri 🙂

    Die standart counter wie noresetcounter funktionieren…

    Nur dieser eine hier, der will nicht..

    Es kommt immer noops zurück und dann macht er irgendwie pap…

    Eine idee? Ich verzweifel echt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.