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.