#2354 closed Aufgabe
Massenlogin simulieren
| Reported by: | Rüdiger Kupper | Owned by: | bau |
|---|---|---|---|
| Priority: | schnell erledigen | Milestone: | Schuljahr 2016/17 |
| Component: | Hardware: Netzwerktechnik | Severity: | beeinträchtigt den Unterricht einiger Lehrer |
| Keywords: | Cc: |
Description
Hinter das Problem der Hänger bei gleichzeitigen Logins kommen wir nur, wenn wir die Situation realistisch simulieren können: Während der Unterrichtszeit verbietet sich das Experimentieren, doch außerhalb des Unterrichts sind wir meist im Netzwerk allein.
Zum Testen von Optionen bräuchten wir eine realistische Umgebung (viele eingeloggte User, üblicher Netzwerkverkehr und dann loggen sich 20-30 Nutzer gleichzeitig im Computerraum ein).
Unsere 30 Gast-Accounts manuell einzuloggen ist schonmal eine gute Maßnahme, aber auf die Dauer sehr mühsam. Ich möchte das gerne automatisieren können.
TODO: Herausfinden, wie man graphische Sitzungen auf den Clients von remote starten kann. Dann ein Skript schreiben, das auf vielen Rechner gleichzeitig Sitzungen startet. Schön wäre, wenn es dann auch gleich noch in jeder Sitzung den Firefox öffnen könnte...
Change History (6)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Stichwort: lightdm auf Autologin konfigurieren, dann per parallel-ssh lightdm neu starten. Morgen mal probieren.
comment:3 by , 10 years ago
| Status: | new → closed |
|---|
So, das Skript ist fertig! Sobald die Schülerrechner fertig gesynct haben, kann man es verwenden.
(Anbei: Das Syncen hat -- trotz Torrent! -- dazu geführt, dass jetzt 90 rsync-Prozesse auf dem paedml laufen! An so etwas kann ich mich vor den Ferien nicht erinnern, da hat der Bittorrent besser geklappt, oder?)
Verwendung
Das Skript heißt loginbomb und liegt auf allen Clients. Startet man es (als root) auf einem einzelnen Client, so macht es nichts weiter, als eine graphische Sitzung für einen unserer Gast-User zu starten. In dieser Sitzung werden dann automatisch bestimmte Programme aufgerufen (defaultmäßig Firefox und Writer).
Der Aufruf loginbomb -d beendet die Sitzung und macht den Rechner wieder normal benutzbar.
Auf einem einzelnen Client kann man damit nicht viel Schaden anrichten. Seine Wirkung entfaltet das Skript erst, wenn Du es per parallel-ssh vom paedml aus auf vielen Clients gleichzeitig aufrufst. Beispiel:
root@paedml# parallel-ssh -H "$(workstationsgrepper -r 1-09 -H)" loginbomb
startet auf allen Rechnern im Raum 1-09 gleichzeitig graphische Gastsitzungen. Die Nummer des Gastnutzers wird per Modulo 30 aus der IP des Clients ausgerechnet -- das stellt sicher, dass auf allen Rechnern im Raum verschiedene Nutzer eingeloggt werden (denn die Clients in den Computerräumen haben fortlaufende IPs).
Den Login-GAU könntest Du simulieren mit:
root@paedml# parallel-ssh -H "$(workstationsgrepper -g schueler -H)" loginbomb
Das würde auf jedem Schülerrechner eine Sitzung starten. Da das mehr als 30 sind, würden dann die Gastnutzer auf mehreren Rechnern gleichzeitig eingeloggt.
Die Skripte "entschärfen" sich nach 20 Sekunden selbst, so dass beim nächsten Login wieder alles normal ist. Es gibt aber auch die Möglichkeit, alle Sitzungen vom paedml aus wieder zu beenden:
root@paedml# parallel-ssh -H "$(workstationsgrepper -r 1-09 -H)" loginbomb -d
beendet die Gastsitzung auf den Clients und löscht die Autostartskripte, so dass der Rechner normal verwendbar ist.
Das Skript nimmt noch ein paar Optionen, die beschreibe ich gleich.
comment:4 by , 10 years ago
Das Skript nimmt noch zwei Optionen:
--workload="... ... ...": Liste der Programme, die nach dem Login gestartet werden. Muss mit den Namen der*.desktop-Dateien in/usr/share/applicationskorrespondieren. Default: "firefox libreoffice-writer".--timetowait=...: Sekunden, die das Skript dem Login Zeit gibt, bevor es die Autostartskripte entfernt und den Rechner wieder normal verwendbar macht. Default: 20 Sekunden.
follow-up: 6 comment:5 by , 8 years ago
Hallo Rüdiger,
kann loginbomb auch einen bestimmten User anmelden, dessen Passwort ich angebe?
Ich logge für die Klausur jetzt halt mal per Hand ein - auch für Rubens Anmeldung des ostbe zur Kurswahl wäre das nützlich
Grüße
Jems
comment:6 by , 8 years ago
Replying to bau:
kann loginbomb auch einen bestimmten User anmelden, dessen Passwort ich angebe?
Ja, kann es, habe ich für die 5er-Anmeldung implementiert. Der Hilfetext war leider unlesbar, das habe ich jetzt repariert. Da steht, wie es geht:
root@rechner2-3-12:~# loginbomb --help Usage: loginbomb -h|--help loginbomb [-t <time>|--timetowait=<time>] [-w <apps>|--workload <apps>] loginbomb -d|--defuse Beim Aufruf ohne Argument wird ein Testnutzer automatisch eingeloggt und in seiner Sitzung die angegebenen Anwendungen gestartet. Nach einer Wartezeit wird das Autologin-Skript deaktiviert (falls der Rechner dann noch läuft), damit der nächste Login wieder normal erfolgt. Die Wartezeit kann im Argument --timetowait gesetzt werden (Default: 60 Sekunden). Die zu startenden Anwendungen können im Argument --workload gesetzt werden (Default: 'firefox libreoffice-writer'. Die Namen müssen mit .desktop-Dateien in /usr/share/applications korrespondieren.) Normalerweise werden als Testnutzer die Accounts 'gast1' bis 'gast30' verwendet. Werden andere Accounts gewünscht, so können diese im Parameter --users übergeben werden, z.B. --users='schuelte lehrer kepler'. Beim Aufruf mit Argument --defuse wird die laufende Sitzung sofort beendet und das Autologinskript entfernt, so dass der Rechner wieder normal verwendbar ist. (HINWEIS: Wurde beim Aufruf eine Nutzerliste mit --users übergeben, sollte zusammen mit --defuse die selbe Liste übergeben werden!)
Also als Argument --users="<nutzer1> <nutzer2> ..." angeben. Passwörter werden nicht benötigt, da die Nutzer über die Auto-Login- option von lightdm angemeldet werden. (Natürlich kann nur root das veranlassen.)
Letzteres lässt sich realisieren, indem man FF in den Autostart der Gastnutzer schreibt. Und vielleicht auch noch andere Programme wie LO.