close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Last modified 13 years ago

#1205 closed Defekt

Schul- und Lehrertauschverzeichnis leer — at Version 11

Reported by: Rüdiger Kupper Owned by: bau
Priority: schnell erledigen Milestone: Schuljahr 2013/14
Component: Server: LML-Server (paedml) Severity: beeinträchtigt den Unterricht vieler Lehrer
Keywords: Cc:

Description (last modified by Rüdiger Kupper)

Hallo Jens,
gerade fällt mir auf, dass sowohl das Schul- als auch das Lehrertauschverzeichnis komplett leer sind. Und zwar nicht nur auf dem Ltsp, sondern auch auf dem paedml!

Im Schultauschverzeichnis liegt eine einzige neue Datei, ein Visual-Basic-Skript mit anstößigem Inhalt, angelegt am 30. Oktober, von Nutzer <xxx>:

11:08/0 paedml ~ # ls /home/share/teachers/
11:09/0 paedml ~ # ls /home/share/teachers/ -l
insgesamt 0
11:09/0 paedml ~ # ls /home/share/school/ -l
insgesamt 4
-rw-r--r-- 1 <xxx> teachers 246 Okt 30 14:43 Kopie von lol.vbs
11:10/0 paedml ~ # finger <xxx>
Login: georgotas      			Name: <xxx>
Directory: /home/students/<xx>/<xxx>	Shell: /bin/bash
Never logged in.
No mail.
No Plan.

Fragen

  • Fällt die dazu irgend etwas ein? Gab es irgend eine Aktion, die die Tauschverzeichnisse versehentlich löschen konnte? Z.B. unsere pam_mounts? (Ich wüsste nicht, wie das geschehen sollte, schon rein von den Rechten her.)
  • Hat der Schüler irgend etwas damit zu tun? Die Datei kann er ja auch über Horde in den Schultauschordner gelegt haben (jetzt mal vom Inhalt abgesehen).
  • Gab es einen Systemeinbruch?

Plan

Wie gehen wir vor?

Anbei: Die Daten der Tauschordner bekommen wir, zumindest mit Stand vom Sommer, aus unserem Systembackup zurück -- da habe ich neulich schonmal Dateien raus rekonstruiert.
Lief danach nochmal ein Backup?

Change History (11)

comment:1 by Rüdiger Kupper, 13 years ago

Der Hinweis "never logged in" oben sagt jedenfalls, dass der Nutzer niemals auf dem paedml eingeloggt war. -- Aber falls jemand sein Passwort ausgespäht und ein Rootkit installiert hat, dann verschleiert das vielleicht auch den Zugriff.

Hinweis: Die Dateien im Lehrertauschverzeichnis gehör(t)en ihren jeweiligen Besitzern. Schreibrecht darauf haben nur die Besitzer selbst. --> Niemand außer Root konnte die Dateien löschen.

Last edited 13 years ago by Rüdiger Kupper (previous) (diff)

comment:2 by Rüdiger Kupper, 13 years ago

Mir kommt grade ein Verdacht:

Ich habe vor einigen Tagen mehrmals die Nutzerverzeichnisse der beiden Testnutzer "lehrer" und "schuelte" neu angelegt, mittels "sophomorix-user --reset-user". Kann es dabei irgendwie passiert, sein, dass versehentlich die Tauschverzeichnisse gelöscht wurden (sind ja ev. im Home über bind-Mounts verlinkt).
In der Manpage steht:

--reset-user user1,user2,...
       Löscht alle Dateien im homedirectory und erzeugt darin eine neue Verzeichnisstruktur. Daten in den Tauschverzeichnissen werden
       nicht entfernt. Der Status des users wird NICHT verändert.

Aber könnte da vielleicht etwas schiefgelaufen sein mit den Bind-Mounts??

comment:3 by Rüdiger Kupper, 13 years ago

ARGH!!

Ja, genau das ist das Problem: Wenn die Bindmounts noch bestehen, dann löscht sophomorix-user --reset-user durch die Bindmounts hindurch die kompletten Tauschverzeichnisse!!

Das ist ein dicker fetter Bug in der linuxmuster.net 6!
Ich werde gleich eine Warnmail an die Liste schreiben.

Testfall:

  1. Nutzer "schuelte" loggt sich per Horde ein und greift auf seine Dateien zu. sophomorix-bind richtet die Bindmounts ein:
    12:02/0 paedml ~ # sophomorix-bind -i
    The following filesystems would be umounted with option --cron:
       /home/students/a/schuelte/__tauschen/tausch-Schule
       /home/students/a/schuelte/__tauschen/tausch-a
       /home/students/a/schuelte/__vorlagen/vorlagen-a
    
  2. Jetzt loggt sich der Nutzer bei Horde wieder aus -- die Bindmounts bleiben aber bestehen, weil Horde sie nicht wieder trennt.
  3. Der Administrator beschließt, das Homeverzeichnis von Nutzer "schuelte" neu zu initialisieren.
    12:02/0 paedml ~ # sophomorix-user --reset-user schuelte
    #### /usr/sbin/sophomorix-user started ...                                ####
    Resetting the account of schuelte:
       - schuelte is a valid username.
    Cleaning up user schuelte
       Removing contents of /home/students/a/schuelte
    GLOBIGNORE=/; rm -rf /home/students/a/schuelte/* 2>/dev/null
       Creating directories in /home/students/a/schuelte
          mkdir -p /home/students/a/schuelte/__tauschen/tausch-a
          mkdir -p /home/students/a/schuelte/__vorlagen/vorlagen-a
          mkdir -p /home/students/a/schuelte/__tauschen/tausch-Schule
    
    Man beachte die Zeile rm -rf /home/students/a/schuelte/*! Dieser Befehl folgt natürlich auch den Bindmounts (die erscheinen im Dateisystem ja als gewöhnliche Dateien). Und der Befehl läuft natürlich mit Root-Rechten!!
  4. Effekt: Das komplette Schultauschverzeichnis wird gelöscht. Ist der Nutzer ein Lehrer, wird das komplette Lehrertauschverzeichnis ebenfalls gelöscht.
    12:02/0 paedml ~ # ls /home/share/school/
    12:02/0 paedml ~ # 
    

comment:4 by Rüdiger Kupper, 13 years ago

Priority: höchste → hoch
Summary: Schul- und Lehrertauschverzeichnis leer / Einbruch? → Schul- und Lehrertauschverzeichnis leer

So, was mich ja dennoch beruhigt: Wir hatten wohl keinen Einbruch ins System. jetzt ist also die zentrale Frage: Wann gab es das letzte Backup von Schul- und Lehrertauschverzeichnis?

comment:6 by Rüdiger Kupper, 13 years ago

Ich habe /home/share/{school,teachers} aus dem Systembackup zur Serverumstellung wiederhergestellt.
Gibt es noch ein aktuelleres Backup als dieses?

comment:7 by bau, 13 years ago

Leider ist das die aktuellste Sicherung, die wir haben :-(
Du hast ja die Sicherung beim proxmoxltsp6 getestet, wir sollten die Sicherung des paedml vom proxmoxpaedml mal auf unsere ToDo-Liste setzen:

  • Sicherungsplatte im ltspL1 einbauen
  • Sekundensnapshot auf proxmoxpaedml
  • mount des Snapshots
  • mount der Sicherungsplatte per NFS
  • rsync des gemounteten Snapshots auf die Sicherungsplatte

in reply to:  7 comment:8 by Rüdiger Kupper, 13 years ago

Replying to bau:

Leider ist das die aktuellste Sicherung, die wir haben :-(

Schade. Naja, dann ist es eben so. Ich werde eine kurze Info an die Kollegen schreiben, dass Änderungen im Lehrertauschverzeichnis seit dem Sommer verloren gegangen sind. Hoffentlich gab es nicht allzu viele.

Du hast ja die Sicherung beim proxmoxltsp6 getestet, wir sollten die Sicherung des paedml vom proxmoxpaedml mal auf unsere ToDo-Liste setzen:

  • Sicherungsplatte im ltspL1 einbauen
  • Sekundensnapshot auf proxmoxpaedml
  • mount des Snapshots
  • mount der Sicherungsplatte per NFS
  • rsync des gemounteten Snapshots auf die Sicherungsplatte

Das brauchen wir gar nicht von Hand zu machen, das kann alles der Proxmox erledigen:

  • Man muss lediglich ein genügen großes "Storage" einrichten und es als "Backup-Storage" markieren.
  • Das kann ein "local storage" sein, also eine lokale Platte im proxmoxpaedml, es kann aber auch ein NFS-Share sein, z.B. ein NAS oder eben eine Platte im proxmoxL1.
  • Dann kann man im Proxmox-Webinterface auf Knopfdruck Backups machen, das geht im laufenden Betrieb, ohne dass die VM etwas davon mitbekommt.
  • Außerdem kann man einen Zeitplan festlegen, nach dem automatisch Backups gemacht werden, also z.B. jede Woche oder täglich.
  • Lediglich beim Zurückspielen eines Backups muss die VM abgeschaltet werden.

Das sollten wir jetzt möglichst bald einrichten. Es würde schon reichen, einfach eine Platte einzubauen. Die Einrichtung geht dann recht flott. Und ich hätte ein besseres Gefühl, denn man sieht ja, dass doch immer etwas passieren kann.

comment:9 by Rüdiger Kupper, 13 years ago

Okay, für das Backup habe ich ein neues Ticket eingerichtet: #1207.

comment:10 by bau, 13 years ago

Habe ein kleines Script geschrieben, mit dem man ein wenig aufräumen kann:

kepler--delete-links

löscht unter __tauschen und __vorlagen alles, was da nicht hingehört, prüft aber vorher, ob da nicht noch ein Mount vorliegt.

Last edited 13 years ago by bau (previous) (diff)

comment:11 by Rüdiger Kupper, 13 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.