Titelseite

5.5.2. OpenVPN-Client-Zertifikate

Lehrer/innen wie Schüler/innen können ihr OpenVPN-Client-Zertifikat über die Schulkonsole auf der Startseite erstellen. Nach der Erstellung müssen die Zertifikate vom Administrator aktiviert werden, damit sichergestellt ist, dass nur berechtigte Benutzer sicheren Remotezugriff erhalten. Die Aktivierung und andere Zertifikatverwaltungsaufgaben lassen sich über das IPCop-Webinterface (VPNs -> OpenVPN -> Client status and control) erledigen. Bei vielen Zertifikaten wird das schnell unübersichtlich und artet zu einer "Klickorgie" aus. Aus diesem Grund bietet die paedML Linux 5.0 ein Kommandozeilen-Frontend linuxmuster-ovpn, mit dessen Hilfe Sie als root auf der Serverkonsole (nicht auf dem IPCop direkt) die OpenVPN-Client-Zertifikate verwalten können.

Die Eingabe des Befehls

# linuxmuster-ovpn

liefert eine kurze Übersicht der möglichen Parameter:

Tool to manage OpenVPN client certificates

Usage: linuxmuster-ovpn    <--check --username=login>
                           <--create --username=login --password=password>
                           <--download --username=login>
                           <--show --username=login>
                           <--activate [--username=login|--group=groupname]>
                           <--deactivate [--username=login|--group=groupname]>
                           <--purge [--username=login|--group=groupname]>
                           <--cleanup>
                           <--list>
                           <--purgeallstudentcerts>

Anmerkung

linuxmuster-ovpn verwaltet nur Zertifikate, die es selbst erstellt hat oder die über die Schulkonsole erstellt wurden.

Zertifikate, die direkt über das IPCop-OpenVPN-Webinterface erstellt wurden, werden ignoriert.

Überprüfen Sie, ob ein User ein Zertifkat erstellt hat

Mit der Option --check wird geprüft, ob sich ein bestimmter User ein Zertifikat erstellt hat:

10:03/1 server ~ # linuxmuster-ovpn --check --username=zell
User zell has an openvpn certificate.

Diese Funktion wird von der Schulkonsole verwendet und ist für die Kommandozeile wenig sinnvoll.

Zertifikat erstellen

Die Option --create ermöglicht die Erstellung eines Zertifikats. Loginname des Users und ein mindestens sechs Zeichen langes Passwort müssen mit übergeben werden:

10:48/0 server ~ # linuxmuster-ovpn --create --username=zell --password=passwort
Creating openvpn certificate for user zell ...
openvpn certificate for user zell successfully created! :-)
Certificate for user zell successfully downloaded! :-)

Zertifikat und OpenVPN-Konfigurationsdateien werden in das Heimatverzeichnis des Users in den Ordner OpenVPN heruntergeladen. Die Funktion wird ebenfalls von der Schulkonsole genutzt.

Alternativ kann beim Aufruf das Passwort über die Standardeingabe übergeben werden:

# echo -e passwort\n | linuxmuster-ovpn --create --username=zell

Zertifikat herunterladen

Mit der Option --download wird das Zertifikat nochmal in das Heimatverzeichnis des Users heruntergeladen:

10:56/0 server ~ # linuxmuster-ovpn --download --username=zell
Certificate for user zell successfully downloaded! :-)

Auch diese Funktion wird von der Schulkonsole genutzt.

Zertfikatsinformationen anzeigen

Details zu einem Client-Zertifikat lässt man sich mit der Option --show anzeigen:

11:02/0 server ~ # linuxmuster-ovpn --show --username=zell
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 47 (0x2f)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=DE, ST=BW, L=Musterstadt, O=Musterschule, OU= \x09paedML-Linux-3.0,
                CN=Musterschule/emailAddress=administrator@linuxmuster.local
        Validity
            Not Before: Apr 14 08:49:12 2007 GMT
            Not After : Apr 11 08:49:12 2017 GMT
        Subject: C=DE, ST=BW, O= \x09Musterschule, CN= Klaus zell [zell]

Zertifikate aktivieren

Die Zertifikatsaktivierung geschieht über die Option --activate. Dabei können Sie entweder nur das Zertifikat eines bestimmten Users

11:05/0 server ~ # linuxmuster-ovpn --activate --username=zell
Found certificate for user zell.
 Activating OpenVPN certificate for zell!
Executing certificate configuration update ...

oder die Zertifikate einer ganzen Gruppe aktivieren.

11:09/0 server ~ # linuxmuster-ovpn --activate --group=5a
Found certificate for user hartmape.
 Activating OpenVPN certificate for hartmape!
Found certificate for user schirrmo.
 Activating OpenVPN certificate for schirrmo!
Found certificate for user serdarje.
 Activating OpenVPN certificate for serdarje!
Executing certificate configuration update ...

Zertifikate deaktivieren

Analog zur Zertifikatsaktivierung lassen sich Zertifikate über die Option --deactivate auch wieder deaktivieren. Für einzelne User ebenso

11:13/0 server ~ # linuxmuster-ovpn --deactivate --username=zell
Found certificate for user zell.
 Deactivating OpenVPN certificate for zell!
Executing certificate configuration update ...

wie für eine Gruppe.

11:13/0 server ~ # linuxmuster-ovpn --deactivate --group=5a
Found certificate for user hartmape.
 Deactivating OpenVPN certificate for hartmape!
Found certificate for user schirrmo.
 Deactivating OpenVPN certificate for schirrmo!
Found certificate for user serdarje.
 Deactivating OpenVPN certificate for serdarje!
Executing certificate configuration update ...

Zertifikate löschen

Die Option --purge erlaubt das Löschen von Zertifikaten bestimmter User

11:16/0 server ~ # linuxmuster-ovpn --purge --username=zell
Purging OpenVPN certificate for zell ...
Executing certificate configuration update ...

oder einer ganzen Gruppe.

11:17/0 server ~ # linuxmuster-ovpn --purge --group=5a
Purging OpenVPN certificate for hartmape ...
Purging OpenVPN certificate for schirrmo ...
Purging OpenVPN certificate for serdarje ...
Executing certificate configuration update ...

Dabei wird auch der OpenVPN-Ordner im Heimatverzeichnis des Users gelöscht.

Zertifikate auflisten

Eine Übersicht über alle erstellten Zertifikate inklusive Aktivierungszustand ermöglicht die Option --list:

11:20/0 server ~ # linuxmuster-ovpn --list
1       on       Hans Bader [ba] (teachers)
2       on       Hans Bo [bo] (teachers)
3       on       Mannfred Bech [bz] (teachers)
4       on       Andrea Denzer [de] (teachers)
5       on       Doerthe Mueller [do] (teachers)
6       on       Marianne Dornstett [dorn] (teachers)
7       on       Hans-Peter Schoeninger [schoen] (teachers)
9       on       Klaus Zembowski [zem] (teachers)
22      off      Katrin Fray [frayka] (10a)
23      off      Felix Gengler [genglefe] (10a)
24      off      Judith Ilkes [ilkesju] (10a)
25      off      Henriette Imbrogiana [imbroghe] (10a)
26      off      Richard Krueger [kruegeri] (10a)
27      on       Jochen Gaissinger [gaissijo] (13a)
28      on       Tanja Gelhaar [gelhaata] (13a)
29      on       Achim Gengler [gengleac] (13a)
30      off      Klaus zell [zell] (teachers)
31      off      Peter Hartmann [hartmape] (5a)
32      off      Moritz Schirra [schirrmo] (5a)
33      off      Jelena Serdarevicic [serdarje] (5a)

Hängt man über eine Pipe noch einen grep-Befehl an, so lassen sich nur die Zertifikate einer bestimmten Gruppe auflisten:

11:26/0 server ~ # linuxmuster-ovpn --list | grep 10a
22      off      Katrin Fray [frayka] (10a)
23      off      Felix Gengler [genglefe] (10a)
24      off      Judith Ilkes [ilkesju] (10a)
25      off      Henriette Imbrogiana [imbroghe] (10a)
26      off      Richard Krueger [kruegeri] (10a)

Zertifikate aufräumen

Wollen Sie die Zertifikate gelöschter User wieder loswerden und die Zertifikate von Usern, die in den Dachboden versetzt wurden, deaktivieren, so ist --cleanup die Option der Wahl:

# linuxmuster-ovpn --cleanup

Nach Aufruf dieses Befehls sind alle Zertifikate, für die keine User mehr auf dem System existieren, gelöscht. Außerdem werden die Zertifikate nur noch geduldeter User deaktiviert. Es empfiehlt sich also diesen Befehl immer im Anschluss an eine Aktion, bei der User gelöscht oder versetzt wurden, aufzurufen.

Darüberhinaus ist es eventuell wünschenswert am Schuljahresende alle Schülerzertifikate zu löschen. Dies ermöglicht die Option --purgeallstudentcerts:

# linuxmuster-ovpn --purgeallstudentcerts

Vorsicht: Nach dieser Aktion sind wirklich alle Schülerzertifikate gelöscht!

Es bietet sich an, diese Aufräumaktionen per Cronjob automatisiert ausführen zu lassen. Entsprechende Beispiele sind auf dem Server bereits angelegt. Loggen Sie sich als root in Webmin ein (https://server:999) und navigieren Sie nach System -> Geplante Cron-Aufträge. Dort können Sie die Beispiele ihren Anforderungen entsprechend anpassen und aktivieren. Alternativ lässt sich dies als root auch auf der Serverkonsole mit dem Befehl crontab -e erledigen (Kenntnisse über die Bedienung des Editors vi und der Notation von Crontab-Einträgen vorausgesetzt):

# 0 1 1 * * /usr/sbin/linuxmuster-backup --full
# 0 2 9,17,25 * * /usr/sbin/linuxmuster-backup --diff
# 0 3 2-8,10-16,18-24,26-31 * * /usr/sbin/linuxmuster-backup --inc
# 0 0 * * * /usr/sbin/linuxmuster-ovpn --cleanup
# 30 0 31 7 * /usr/sbin/linuxmuster-ovpn --purgeallstudentcerts

Gültigkeitsdauer von Zertifikaten festlegen

Die Standard-Gültigkeitsdauer von OpenVPN-Client-Zertifikaten wird in der Konfigurationsdatei /etc/linuxmuster/clientcert.conf festgelegt

s in days, default 10 years
admins_certperiod=3650

# period for teachers in days, default 10 years
teachers_certperiod=3650

# period for others in days, default 1 year
others_certperiod=365

Die Gültigkeitsdauer wird in Tagen abgegeben. Die Standardwerte sind für Administratoren und Lehrer/innen jeweils 3650 Tage, für andere User (Schüler/innen) 365 Tage. Ändern Sie gegebenenfalls die Werte entsprechend Ihren Anforderungen.

Beachten Sie, dass die hier festgelegten Werte für die Gültigkeitsdauer nur von linuxmuster-ovpn ausgewertet werden. Zertifikate, die Sie mit dem IPCop-OpenVPN-Webinterface erstellen, sind generell 16 Jahre gültig.

5.0.1