ISPConfig: Upgrade von Ubuntu 10.04 auf 12.04

Ich habe heute mal einige Server die ich mit ISPConfig (aktuell Version 3.0.5.2) verwalte auf Ubuntu 12.04 aktualisiert. Nachdem Ubuntu 12.04 nun ziemlich genau ein Jahr draußen ist, war die Zeit nach meiner Meinung reif für ein Upgrade.

Das Upgrade lief auch ohne größere Probleme durch. Ich habe aber bei MySQL aus Kompatibilitätsgründen wieder MyISAM als Standard-Tabellentyp eingestellt. Dies kann mit der Zeile

default-storage-engine = MyISAM

in der Datei /etc/mysql/my.cnf bewerkstelligt werden.

Des weiteren hat Postfix ein bisschen rumgezickt. Beim starten hat es einige Zeilen in der main.cf und master.cf angemaul, die nicht mehr unterstützt werden. Diese kann man aber einfach auskommentieren. Außerdem lief die SASL-Authentifizierung von Postfix nicht mehr. Deshalb konnte man keine E-Mails per Authentifizierung verschicken. Die Lösung des Problems wird im Launchpad unter der folgenden URL aber schon beschrieben: https://bugs.launchpad.net/ubuntu/+source/cyrus-sasl2/+bug/875440/comments/34. Offensichtlich hat sich hier in der Schreibweise einiger Parameter etwas geändert. Wenn man die Datei /etc/postfix/sasl/smtpd.conf wie folgt abändert, läuft es wieder:

pwcheck_method: saslauthd
mech_list: plain login pam
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: [entfernt]
sql_passwd: [entfernt]
sql_database: dbispconfig
sql_select: select password from mail_user where login = '%u@%r'

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