Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:linuxclient:maus]] 

MAus1 - Classroommanagement

Programm ist ersetzt durch → MAus2

Programm als Ersatz zu iTALC. Sendet in einem Computerraum ssh-Befehle an die Linux-Clients oder Netzwerk-Befehle an die Windows-Clients um die Monitore Auszuschalten. Der Key zur Authentifizierung der ssh-Befehle bzw. das Passwort der Netzwerk-Befehle wird am Server im Programmverzeichnis abgelegt und ist nur für die Gruppe Lehrer lesbar. An den Windows-Clienst läuft ein „Mausdienst“ um die Netzwerk-Befehle auszuführen.

Features:

  • einfaches Fenster auf dem Desktop mit drei Buttons
  • steuernder Master/Lehrer-PC kann Linux oder Windows 7/10 haben
  • zu steuernder Client/Schüler-PC mit Ubuntu 14.04, Ubuntu 16.04 oder Windows 7/10
  • Sperren, Freigeben der Schüler-PC in einem Raum mit schwarzem Bildschirm oder einem Sperrbild
  • Einzelne Schüler-PC können für die Funktionen selektiert werden
  • Herunterfahren, Reboot, Logout, Wake On LAN der Schüler-PC
  • Nachrichten können an einzelne oder alle Schüler-PC gesendet werden
  • Beliebige Shell- bzw. Commandline-Befehle können an einzelnen oder allen Schüler-PC ausgeführt werden (unter User root bzw. dem angemeldeten Windows-Anwender)
  • bis zu 20 verschiedene Räume sind konfigurierbar
  • nur ein Lehrer kann die Schüler-PC des Raumes sperren, da nur ein Lehrer Zugriff auf den private ssh-Key bzw. das Mausdienst-Passwort hat
  • der Lehrer-PC ist variabel oder kann fest vorgegeben werden
  • nur der pgmadmin kann die Konfiguration der Räume bearbeiten
  • Programm kann über das Unity-Startmenü (Dash) gestartet werden oder dem Startmenue bei Windows
  • IP und MAC - Adressen können aus der workstations-Datei importiert werden
  • per VNC kann mit einzelnen Schüler-PC verbunden werden (am Schüler-PC muss dazu ein VNC-Server laufen)

Vorbereitung am Server

Die Konfiguration des Programms erfolgt über den Benutzer „pgmadmin“, der deshalb in die Gruppe „teachers“ aufgenommen werden muss. Für die Ausführung des install-Scriptes benötigt der pgmadmin eine shell. Dazu am Server als root folgende Befehle ausführen:

 # smbldap-usermod -G teachers pgmadmin
 # sophomorix-passwd -u pgmadmin --shell /bin/bash

Programm installieren am Linux-Client

Download: maus-0.54-tar-Paket.

Am Linux-Schüler-PC: Als pgmadmin anmelden, das tar-Paket entpacken (man erhält das Verzeichnis maus.files) und dann in einem Terminal mit root-Rechten das enthaltene Script „install.sh“ ausführen (→ Details zum install-Script).

sudo ./install.sh

Das Script ist nur für die Erstinstallation geeignet. Nach Installation kann das tar-Paket und das entpackte Verzeichnis maus.files gelöscht werden.
Danach reboot des Linux-Schüler-PC und ein Image schreiben.
Das Image kann problemlos für alle PCs verwendet werden, so dass man nur ein allgemeines Image hat, unabhängig von Schüler PC - Lehrer PC - beliebige Räume.

Das Bild zum Sperrbildschirm muss als X-Windows-Bitmap vorliegen. Es wird am Client unter /root/bin/closed.xbm abgelegt. Das Bild wird, wenn zu klein, als Kachel verwendet.

Universelles postsync-Script: Falls dieses installiert ist und die Datei /root/.ssh/authorized_keys verteilt muss der public-ssh-Maus-Key dieser Datei händisch angehängt werden. Am Server dazu ausführen (????? durch die Patchklasse ersetzen):

# cat /home/samba/progs/maus/maus-key.pub >> /var/linbo/linuxmuster-client/?????/common/root/.ssh/authorized_keys

Bei der Installation wird automatisch ein ssh-Keypaar erzeugt. Ebenso wird für den „Mausdienst“ ein Zufallspasswort erzeugt und benötigte ssl-Keys mit Zertifikaten. Der pgmadmin kann das Programm auch entsperren und ein neues ssh-Key-Paar erzeugen und installieren. Danach ein Image schreiben und verteilen, da alle Linux-Clients den neuen public-ssh-Key benötigen.

Update

Zum Updaten am Linux-Schüler-PC: Als pgmadmin anmelden, das tar-Paket entpacken und dann in einem Terminal mit root-Rechten das enthaltene Script „update.sh“ ausführen.
Dabei werden werden alle Programm-Dateien am Server und am Linux-Client ersetzt. Die Konfigurations-Datei wird beibehalten. Die ssh-Keys (ggf. mit VNC-Passwort-Datei) werden nicht verändert sondern vom Server zum Client zurückgeschrieben.

Das update-Script eignet sich auch um auf einem zweiten Linux-Image MAus zu installieren. Beide Images benutzen dann dieselben Keys und Passwort-Dateien.
Nach einem Update von Version 0.4x auf Version >0.50 müssen die VNC-Passwörter neu gesetzt werden (als pgmadmin im Konfigurations-Menü).

Programm als pgmadmin starten und Räume konfigurieren

Nur der pgmadmin hat die Rechte um die Liste der Computerräume zu bearbeiten. An einem Client sich deshalb als pgmadmin anmelden, Programm „maus“ starten, mit der RMT das Kontextmenu aufklappen und „Konfiguration“ auswählen.
Alternativ kann die Datei maus.cfg auch mit einem beliebigen Editor bearbeitet werden.

Zu einer Raum-Konfiguration gehören:

  1. Name des Raumes
  2. IP des Lehrer-PC (IP-Adresse oder *)
  3. IP-Liste aller Schüler-PC (ohne Lehrer-PC), ggf auch mit MAC-Adressen (werden für WakeOnLAN benötigt), ggf. auch mit PC-Namen für die Liste
  4. PC-Typ: Linux-, Windows- oder Dual-Boot-Client. Je nach Typ wird der PC vom Master verschieden angesteuert.

Mit der Funktion „Räume importieren“ können aus der Workstations-Datei „/etc/linuxmuster/workstations“ des Servers ein Raum samt seinen IPs, MACs und PC-Namen importiert werden.

Programm an einem Lehrer PC als Lehrer starten

Das Kontext-Menu zu einem einzelnen Schüler-PC ist per RMT erreichbar.

Konfigurationsdatei - Beispiel

Die Konfigurations-Datei kann als pgmadmin über das Programm selbst oder mit einem Editor bearbeitet werden. Sie liegt unter /home/samba/progs/maus/maus.cfg.

maus.cfg
[Programm]
#Name="Monitore Aus"
BorderStyle=single
FixedPosition=1
xpos=-30
ypos=30
width=320
# optional: height=100
ButtonAnzahl=0
 
PrivateKey=maus-key
CopyPrivKey=0
AdminUsers=root,pgmadmin,linuxadmin,winadmin
debug=0
 
Raumanzahl=2
SperrBild=1
WOLDelay=0
# VNCPort=0 disables VNC
VNCPort=4711
VNCPassPfad=x11vnc.pass
SendeNachrichtVisible=1
SendeBefehlVisible=0
PCListeVisible=0
 
# SleepTimeSSL=100
# SleepTimeTCP=50
# SleepTimeNAC=100
 
[Windows]
width=320
# optional: height=100
PuttyKey=maus-key.ppk
VNCPassPfad_text=x11vnc.text
FingerprintPfad=host-rsa-key.fingerprint
plinkPfad=plink.exe
WOLPfad=wol.exe
UltraVNCPfad=C:\Program Files\uvnc bvba\UltraVNC\vncviewer.exe
 
[MausDienst]
Port=9731
UseSSL=0
UseAuth=1
 
[Button1]
Name="Print Enviroment"
Exec="printenv"
BefehlsAusgabeAnzeigen=1
 
[Raum1]
Raumname=CR001
LehrerIP=*
PC-Anzahl=6
SchuelerIP1=10.16.100.101,00:04:00:B0:EF:AA,terra-1,dual
SchuelerIP2=10.16.100.102,00:04:00:B0:EF:33,terra-2,dual
SchuelerIP3=10.16.100.103,00:04:00:B0:EF:44,terra-3,dual
SchuelerIP4=10.16.100.104,00:04:00:B0:EF:77,HP01,lin
SchuelerIP5=10.16.100.105,00:04:00:B0:EF:88,HP02,win
SchuelerIP6=10.16.100.106,00:04:00:B0:EF:99,HP03,dual
 
[Raum2]
Raumname=CR002
LehrerIP=10.16.200.100
PC-Anzahl=4
SchuelerIP1=10.16.200.101,00:04:00:B0:EF:BC,dell01,win
SchuelerIP2=10.16.200.102,00:04:00:B0:7B:6F,dell02,win
SchuelerIP3=10.16.200.103,00:04:00:B0:11:22,dell03,win
SchuelerIP4=10.16.200.104,00:04:00:28:28:E7,dell04,win
  • CopyPrivKey=1 : Beim Start von MAus wird der ssh-Key in das home des Benutzers kopiert (nach <HOME>/.ssh/maus-key) und mit den korrekten Rechten versehen. Danach gibt es z.B. auch keine Rechteprobleme für den Benutzer pgmadmin. Wenn der ssh-Key zu offene Rechte enthält (z.B. für die Gruppe lesbar ist), dann verweigert ssh u.U. dessen Verwendung.
  • ButtonAnzahl=x : Dadurch können weitere Buttons auf dem Widget zugefügt werden, genaueres siehe → ButtonBar
  • PrivateKey : Der Pfad zum private ssh-Key kann sowohl relativ als auch absolut angegeben werden. Bei einer relativen Angabe (Ohne „/“ am Anfang) wird der Key in Bezug zum Programmverzeichnis gesucht.
  • FixedPosition: Das Fenster positioniert sich automatisch immer an der angegebenen Position, z.B. auch nach Auflösungsänderung.
  • SendeNachrichtVisible Mit dem Kontext-Menue zum PC kann man an diesen Nachrichten absetzen
  • SendeBefehlVisible Mit dem Kontext-Menue zum PC kann man an diesen Shell-Befehle absetzen
  • PCListeVisible: Damit wird die noch experimentelle Funktion der „PC Schüler Liste“ freigeschaltet. Diese Funktion listet in einem Fenster alle Clients des Raumes auf, die dabei periodisch nach Erreichbarkeit und angemeldetem Benutzer abgefragt werden.
  • LehrerIP: Diese kann fest vorgegeben werden oder mit „*“ ist ein beliebiger PC des Raums möglich, an dem MAus gestartet werden kann.
  • SchuelerIPx: vier Angaben können festgelegt werden: <IP>,<MAC>,<PC-Name>,<Typ>. Auf korrekte Werte muss man selbst achten!
  • WOLDelay=x: Zeitlicher Abstand in x Sekunden mit dem die Wake On Lan-Funktion ausgeführt wird
  • SperrBild=1 Beim Sperren wird am Client-PC ein zweiter X-Server gestartet, der ein Bild mit oder ohne Uhr anzeigt
  • UseAuth Für die Steuerung der Windows-Clients wird eine Passwort-Authentifikation verwendet
  • UseSSL Für die Kommunikation zwischen Master und Windows-Client wird SSL verwendet, Funktion noch experimentell!
  • SleepTime… Verzögerungszeiten (in Millisekunden), um die Netzwerkkommunikation sicherzustellen. Bei Problemen ggf. die Werte erhöhen.
  • weitere Optionen siehe → ButtonBar

Optional: Rechte der ssh-Keys direkt am Server setzen

Die Zugriffsrechte der Keys und Passwörter können auch am Server gesetzt werden (normal nicht notwendig, wenn die Gruppenzugehörigkeit des pgmadmin zu den teachers gesetzt ist):

 # chown -R pgmadmin:teachers /home/samba/progs/maus/
 # chmod 640 /home/samba/progs/maus/maus-key
 # chmod 640 /home/samba/progs/maus/maus-key.pub
 # chmod 640 /home/samba/progs/maus/mausdienst.pass
 # chmod 640 /home/samba/progs/maus/x11vnc.pass
 # chmod 640 /home/samba/progs/maus/x11vnc.text

Sicherheitsüberlegungen

Der Zugriff von einem Client auf einen anderen Client kann missbraucht werden. Alle Zugangsschlüssel und Kennwörter für die Clients sind für alle Lehrer lesbar. Ein Zugriff auf den Server ist damit aber nicht möglich.

Sicherheitsproblem „VNC“: Durch das Vorhandensein eines VNC-Servers im Image kann jeder PC von anderen beobachtet werden, falls das Zugangskennwort bekannt ist - und zwar auch unabhängig von MAus.

Sicherheitsproblem „ssh“: Mit Hilfe des prvate-ssh-Key von MAus kann man (d.h. ein Lehrer) auf jedem Client root-Rechte erlangen und damit auch andere PC beobachten bzw. die daran angemeldeten Benutzer.

Sicherheitsproblem „Befehl ausführen“: Mit Hilfe eines am Client ausgeführten Shell-Befehls kann dieser Client manipuliert werden. Das kann man per .cfg-Datei beim Mausdienst abstellen (s.u.).

Zugriff auf die Schüler-PC per VNC

Voraussetzung:

  • Am Client ist ein VNC-Server installiert. Das Installationsscript von MAus führt diese Installation nicht durch!
  • Der VNC-Server ist per Kennwort auf Port 4711 erreichbar
  • für Linux-Master: Das VNC-Kennwort liegt chiffriert (wie umklar??) lokal an Client in der Datei „/etc/x11vnc.pass“, diese wird bei der Installation von MAus zum Server kopiert und ist dort nur für die Gruppe „teachers“ lesbar
  • für Windows-Master: Das VNC-Kennwort liegt minimal verschlüsselt in der Datei „x11vnc.text“ am Server und ist dort nur für die Gruppe „teachers“ lesbar. Es muss es nach Installation in der Konfiguration von MAus manuell als pgmadmin gesetzt werden (EDIT-Button). Der Ultra-VNCviewer benutzt diese Textdatei zur Authentifizierung.
  • Nach Installation muss der verwendete VNC-Port bei den Programm-Optionen von MAus gesetzt werden, was die VNC-Funktionalität dann auch freischaltet

Zum Installation eines VNC-Servers kann man z.B. vorgehen wie in → VNC - Server auf dem Ubuntuclient. Bei Verwendung eines default-cloop ist jedoch der VNC-Server schon vorinstalliert, er läuft dort standardmäßig auf Port 4711. Die Passwortdatei ggf. nachträglich zum Server kopieren:

cp /etc/x11vnc.pass /home/samba/progs/maus/
chown pgmadmin:teachers /home/samba/progs/maus/x11vnc.pass
chmod 640 /home/samba/progs/maus/x11vnc.pass

MAus auf Windows-PC als Master

An einem Linux-Clients muss MAus zuerst mit dem obigen tar-Paket installiert werden. Dabei werden auch für Windows notwendige Keys und Hilfs-Programme angelegt (ab Version 0.42) und die Windows-Programmdatei am Server abgelegt.

Installation am Windows-PC: Eine Verknüpfung auf /home/samba/progs/maus/maus.exe im Programm-Menue oder auf dem Desktop ablegen. Läuft unter Windows 7 - 64 Bit oder Windows 10 - 64 Bit. Am Besten die Verknüpfung auf dem Desktop nur für die Gruppe teachers anlegen.

Zum Benutzen der VNC-Bildschirmübertragung am Windows-PC zusätzlich → UtraVNC-Viewer installieren. (optional)
Zum Ansteuern der Linux-Clients wird das Putty-Kommandozeilentool „plink.exe“ benutzt, für WakeOnLan „wol.exe“, diese sind im tar-Paket enthalten und werden unter K:\maus\ abgelegt. Für den ssh-Zugriff benötigt plink.exe den ssh-private-Key im Putty-Format (ppk) und einen Fingerprint des host-Key des Linux-Clients, dies erledigt alles das install-Script im tar-Paket.

Das Windows-Programm verwendet dieselbe Konfiguration und Räume wie unter Linux. Nur die Höhe und die Breite des Desktopfensters kann getrennt festgelegt werden.

MAus auf Windows-PC als Client: "Mausdienst"

Ab MAus Version 0.50

siehe → Mausdienst auf Windows Client installieren

Deinstallation von MAus bis Version 0.54

Um MAus vollständig vom Client zu entfernen sind folgende Dateien am Client zu löschen:

/root/bin/sperren.sh
/root/bin/freigeben.sh
/root/bin/closed.xbm 
/usr/share/applications/maus.desktop
/usr/share/icons/maus.ico

Folgenden Dateien sind zu editieren:

/etc/ssh/sshd_config

→ Dort die Zeile mit „AllowUsers …“ editieren, im Auslieferungszustand steht dort: „AllowUsers root@10.16.1.1“

/root/.ssh/authorized_keys

→ Dort die Zeile mit dem rsa-Key von MAus löschen.

 [[anwenderwiki:linuxclient:maus]] anwenderwiki/linuxclient/maus.txt · Zuletzt geändert: 2017/02/09 20:17 (Externe Bearbeitung)