Epoptes ist wie Italc eine spezielle Art der Fernwartung, mit der sich einzelne Linux-PCs oder auch ganze Gruppen bzw. Pools verwalten und fernsteuern lassen. Einsatzzweck ist die Nutzung als Unterrichtshilfe innerhalb von EDV-Schulungsräumen. In der Distribution Edubuntu ist es das Standardprogramm für Classroommanagement.
Epoptes nutzt eine Kombination aus Master- und Client-Rechnern und basiert auf einer verschlüsselten Reverse-Vnc Verbindung. Die Authentifizierung geschieht mittels Zertifikat und Nutzergruppe.
In reinen Linuxumgebungen ist Epoptes ITalc weit überlegen, da es für diesen Zweck speziell entwickelt ist.
Vorteile:
Nachteile:
Die nachfolgende Anleitung beinhaltet eine Sicherheitslücke, da der private Schlüssel von einem fähigen Schüler ohne weiteres vom Server heruntergeladen werden kann. Um dieses Problem zu verhindern wurde die Anleitung als Ansible Rolle neu implementiert. Diese Rolle ist an diese Anleitung angelehnt und kann dazu eingesetzt werden um die Installation automatisch durchzuführen. Siehe auch Ansible role ypid.epoptes.
Die Installation läuft grob folgendermaßen ab:
Das ist in Ubuntu schnell erledigt:
#sudo apt-get update && sudo apt-get install epoptes-client epoptes
Eventuelle Konfigurationsabfragen können einfach mit den vorgegebenen Defaulteinstellungen übernommen werden. Die eigentliche Konfiguration erfolgt später per Hand.
#sudo add-apt repository ppa:epoptes/ppa
ausführen und dann wie oben beschrieben Epoptes installieren.
Im Installationsskript von epoptes-client ist ein Fehler…es wird „vergessen“ einen Cache-Ordner anzulegen, ohne den einige Mechanismen (Presentation; Bildschirmsperre) nicht funktionieren.
Anlegen eines Cache-Ordners im Verzeichnis des Template-Benutzers (i.d.R linuxadmin):
#mkdir -p /home/linuxadmin/.config/epoptes
Man kopiert in diesem Schritt alle wesentlichen Programmkomponenten und Konfigurationsdateien von epoptes-client und epoptes-server (epoptes) weg (per ssh oder auf einen Stick) und löscht diese auf dem Masterclient, so dass die wesentlichen Bestandteile von Epoptes nicht mehr im Betriebsystem vorhanden sind.
Folgende Dateien sind zu sichern und anschließend auf dem Masterclient zu löschen:
…in /etc:
…in /usr:
In diesem Schritt wird vom Masterclient ein neues Image mit Linbo erstellt, in dem Epoptes nur mit den verbliebenen Dateien enthalten ist.
Zum besseren Verständis wird die folgende Doku davon ausgehen, dass Epoptes im Raum „muster“ mit den Clients muster-01, muster-02,… und dem Lehrerrechner muster-le (mit IP 10.16.5.100) eingerichtet werden soll. Deweiteren wird vorausgesetzt, dass auf dem Server das aktuelle (nach 19.11.2014) Universelle - Linbo - Postsyncskript gemäß der Anleitung eingerichtet ist und der Umgang damit klar ist! Hier ist zu beachten, dass der Muster-Linux-Client der lml und die Postsyncskripte nicht (!) parallel gepfelgt werden. Sie unterliegen auch keinem automatischen Update. Man muss also selbst überprüfen, ob man das aktuelle Postsyncskript installiert hat, welches die im Folgenden genannten Operationen ausführt.
–delete
im rsync-Befehl,Ohne diese Schalter funktioniert die nachfolgende Einrichtung nicht!
Innerhalb des Postsync-Vereichnisses auf dem Server wird der Ordner muster angelegt und folgende Verzeichnispfade samt zuvor (s. oben) gesicherten Dateien und Konfigurationen eingefügt, angepasst, erstellt:
1. Datei/Verzeichnispfad:
# The server where epoptes-client will be connecting to. # If unset, thin client user sessions running on the server will try to connect # to "localhost", while thin client root sessions and fat or standalone clients # will try to connect to "server". # LTSP automatically puts "server" in /etc/hosts for thin and fat clients, # but you'd need to put "server" in DNS manually for standalone clients. #SERVER=muster-le # The port where the server will be listening on, and where the client will try # to connect to. For security reasons it defaults to a system port, 789. #PORT=789 # Set Wake On LAN for devices that support it. Comment it out to disable it. #WOL=g
#SERVER=server
…hier muss das Kommentarzeichen entfernt werden und der Hostname des Lehrerrechners des jeweiligen Raumes eingetragen werden, d.h. im Beispiel muster-le. Es wurde beobachtet, dass sich der Clientdienst sofort nach dem Start wieder beendet hat, obwohl die Namensauflösung auf dem Client (ping muster-le) funktioniert hat. Hier brachte es Abhilfe, die IP der Rechners muster-le einzutragen.#PORT=789
…hier das Kommentrazeichen entfernen.#WOL=g
…will man Rechner mit Epoptes aufwecken können, so muss das Kommentarzeichen vor WOL entfernt werden.2. Datei/Verzeichnispfad:
3. Datei/Verzeichnispfad
[Desktop Entry] Name=Epoptes client service Name[el]=Υπηρεσία πελάτη του Epoptes Comment=Epoptes computer lab administation tool client service Comment[el]=Υπηρεσία πελάτη του λογισμικού διαχείρισης εργαστηρίων Epoptes Exec=/usr/sbin/epoptes-client Icon=epoptes Terminal=false Type=Application Categories=Settings;System; #X-GNOME-AutoRestart=true NoDisplay=true
#X-GNOME-AutoRestart=true
…hier sollte das Kommentarzeichen entfernt werden, damit der Client im Falle eines Crashs des Displayservers neustartet4. Datei/Verzeichnispfad
# Diese Datei wird per postsync gepatcht. Zu bearbeiten ist sie auf dem Server. # HOSTNAME wird im Postsyncskript mit dem echten Namen gepatcht 127.0.0.1 HOSTNAME #Die nächste Zeile enthält die Hostnamen so, wie sie auf dem Server eingetragen sind... #SERVERIP server.linuxmuster-net.lokal server # damit CUPS zufrieden ist, muss noch diese Zeile hier dazu: #SERVERIP server.lokal server.local #Server für epoptes 10.16.5.100 muster-le
#Server für epoptes
…hier die IP und den Hostnamen des Lehrerrechners eintragen; im Beispiel also 10.16.5.100 muster-le4. Datei/Verzeichnispfad
Innerhalb des Postsync-Vereichnisses auf dem Server wird der Ordner muster-le angelegt und folgende Verzeichnispfade samt zuvor (s. oben) gesicherten Dateien und Konfigurationen eingefügt, angepasst, erstellt:
1. Datei/Verzeichnispfad:
# The port where the server will be listening on, and where the client will try # to connect to. For security reasons it defaults to a system port, 789. #PORT=789 # Epoptes server will use the following group for the communications socket. # That means that any user in that group will be able to launch the epoptes UI # and control the clients. SOCKET_GROUP=epoptes
SOCKET_GROUP=
…hier muss die Gruppe epoptes entfernt und die Gruppe teachers eingetragen werden.2. Datei/Verzeichnispfad:
3. Datei/Verzeichnispfad:
# Diese Datei wird per postsync gepatcht. Zu bearbeiten ist sie auf dem Server." # Pfad: ${linbodir}/${universalpostsyncdir}/${patchclass}/${HOSTS} # HOSTNAME wird im Postsyncskript mit dem echten Namen gepatcht 127.0.0.1 HOSTNAME #Die nächste Zeile enthält die Hostnamen so, wie sie auf dem Server eingetragen sind... #SERVERIP server.windeck-gymnasium.de server # damit CUPS zufrieden ist, muss noch diese Zeile hier dazu: #SERVERIP server.lokal server.local
4. Datei/Verzeichnispfad:
5. Datei/Verzeichnispfad:
[Desktop Entry] Name=Epoptes iTalc-Ersatz Comment=Epoptes computer lab administration tool TryExec=/usr/bin/epoptes Exec=/usr/bin/epoptes Icon=epoptes Terminal=false Type=Application Categories=Network;RemoteAccess; X-Ubuntu-Gettext-Domain=epoptes
Name=Epoptes…
…hier kann man noch eine Bezeichung einfügen, die das Wort „iTalc*“ enthält, so dass Epoptes in der unity-dash auch bei der Suche nach iTalc erscheint…erleichtert den Kollegen den Umstieg!Durch die Struktur des Postsync-Skripts (erst Synchronisation des Raums (im Beispiel: muster), dann Synchronisation des Lehrerrechners (im Beipiel (muster-le)) hat man jetzt das Problem, dass der Epoptes-Client auch auf dem Epoptes-Server läuft, was zu Problemen führt. Die Lösung ist einfach. Man legt innerhalb des im Postsync-Vereichniss auf dem Server angelegten Ordners muster-le leere epoptes-client Dummyfiles an. Damit werden bei der Synchronisation die epoptes-client Dateien durch leere Dateien ersetzt…
Es sind also folgende leere Dateien/Ordner zu erstellen:
in …muster-le/etc:
in …muster-le/usr:
#touch /var/linbo/linuxmuster-client/<PATCHKLASSE>/muster-le/etc/default/epoptes-client
In manchen Installationen tritt der Effekt auf, dass sich die Clients nicht vom Server abmelden. Dann erscheinen die „Überwachungsbildschirme“ mehrfach mit verschiedenen Login-Namen auf dem Lehrerrechner. Die Ursache ist, dass er epoptes-client beim Abmelden nicht beendet wird. Die Quick&Dirty Lösung, die bei mir funktioniert ist folgende:
Statt epoptes-client in /etc/xdg/autostart starten zu lassen, starten wir es über die „upstart“-Skripte in der Benutzerkonfiguration.
Per Universellem Postsync-Skript lässt sich das erledigen, ohne ein neues Image schreiben zu müssen. Es müssen auf den Linux-Clients im Homeverzeichnis des Vorlagenbenutzers (linuxadmin im trusty.cloop) folgende zwei Dateien angelegt werden:
description "Desktop Start Task" start on desktop-start task script /usr/sbin/epoptes-client & end script
und
description "Desktop Beenden Task" start on session-end task script kill $(ps aux | grep "epoptes-client$" | grep -v grep | sed -e "s/ */ /g" | cut -d " " -f2) end script
Die „Bash-Magic-Zeile“ für das Killen tut das, was nach meinem Verständnis das Kommando „pkill epoptes-client“ tun sollte. Das hat aber bei mir nicht funktioniert und in der Kürze der Zeit war das das Nächstbeste, was mir eingefallen ist.
Die o.g. Anpassung muss für jeden EDV-Raum einmal gemacht werden. Nach einem synchronisierten Neustart ist dann Epoptes im jeweiligen Raum eingerichtet und kann benutzt werden.
Weitere Informationen zu Epoptes finden sich hier: