Webui + proxy plötzlich aus

Hallo zusammen
zur der Proxy-Problematik habe ich einen sehr Verdächtigen: Es sind die Ipads die im grünen Netz integriert sind sich aber nicht an der Domäne anmelden. Der Proxy-Eintrag am Ipad wird zentral ohne Usernamen vorgenommen. Wenn so ein ipad jetzt sich im Hintergrund aktualisieren will kommt es nicht ins Netz, da noch kein User ein Login am Proxy vorgenommen hat. Ich glaube also dass unsere Ipads den Squid einfach geflutet haben … zumindest ist der Spuk weg, seit dem die ipds den Proxy umgehen.

Haltet ihr das beschriebene Szenario für plausibel?

Wie geht man mit Clients um, die im grünen Netz sein sollen (weil Schuleigentum) aber keine Domänenanmeldung durchführen (weil einer Fachschaft zugeordnet). Der per DHCP verteilte DNS (der Server) löst bei mir die in der Firewall hinterlegten IPs der externen Server nicht auf. Gebe ich die Firewall als DNS an klappt alles. Bei den PCs mit Domänenanmeldung habe ich keine DNS-Probleme.

Grüße Rainer

Hallo Rainer,

zur der Proxy-Problematik habe ich einen sehr Verdächtigen: Es sind die
Ipads die im grünen Netz integriert sind sich aber nicht an der Domäne
anmelden. Der Proxy-Eintrag am Ipad wird zentral ohne Usernamen
vorgenommen. Wenn so ein ipad jetzt sich im Hintergrund aktualisieren
will kommt es nicht ins Netz, da noch kein User ein Login am Proxy
vorgenommen hat. Ich glaube also dass unsere Ipads den Squid einfach
geflutet haben … zumindest ist der Spuk weg, seit dem die ipds den Proxy
umgehen.

Haltet ihr das beschriebene Szenario für plausibel?

klingt plausibel.

Wie geht man mit Clients um, die im grünen Netz sein sollen (weil
Schuleigentum) aber keine Domänenanmeldung durchführen (weil einer
Fachschaft zugeordnet).

noProxy in der opnsense.

LG

Holger

Hallo Holger und Gemeinde,

die Aufnahme in eine noproxy-Gruppe is soweit klar. MUSS auch dann der DNS auf die Firewall gesetzt werden? Bei mir scheint das besser zu laufen …

Ich fand ja eigentlich das Feature sich am Proxy/Browser von Hand anzumelden für Geräte in den Fachschaften ideal. Mit dem Gerät arbeiten vor Ort (z.B. Messwerterfassung) bedarf keiner Anmeldung. Internetzugriff dann aber schon.

Grüße Rainer

Hallo Rainer

Damit ist es dann bestätigt, dass es nicht an der Anzahl von Sessions in die Webui liegt, oder ?

Gruß

Arnaud

Hallo Arnaud
die Anzahl habe ich zwischenzeitlich auf 500 erhöht … also dass es eine Kombination aus 2 Problemen war ist durchaus denkbar …
Grüße Rainer

du mußt bei der proxyeinstellung im Cleint die lokalen Adressbereiche
ausnehmen …

hallo holger, verstehe leider die antwort nicht.
bsp. mein client hat 10.0.117.100 und hat dhcp eingestellt, wie nehme ich da was aus? ist auch nur problemchen, werde ich nach hinten schieben, stört nur mich.

wir haben übrigens auch ipad-koffer, habe diesen noch nie gewartet, und clients gehen nicht ins netz. werde dazu eigenen thread aufmachen und fragen. weiß nicht, was die so „rumfunken“ momentan, der router hängt aber schon im netz.

Hallo Hendrik,

du mußt bei der proxyeinstellung im Cleint die lokalen Adressbereiche
ausnehmen …

hallo holger, verstehe leider die antwort nicht.
bsp. mein client hat 10.0.117.100 und hat dhcp eingestellt, wie nehme
ich da was aus? ist auch nur problemchen, werde ich nach hinten
schieben, stört nur mich.

in den Einstellungen zum Proxy am Client.
Da schreibst du 10.0.0.0/16 mit rein

LG

Holger

Hallo,

bei mir ist heute in der Schule die Schulkonsole (WebUI) auch nicht
erreichbar gewesen.
Zum Glück hat ein Kollege ziemlich genau sagen können, wann das war.
Er hatte Passwörter von Schüler in der SchuKo geändert.
Als er dann einem Nachzügler noch das Passwort ändern wollte kam ein
„Fehler 500 Internal Server error“
Ab da war die SchuKO nicht mehr erreichbar.
d.h. es erschien nichts (leere Seite, aber keine Fehlerseite) im Browser.
Weil der Kollege das so genau sagen konnte, hab ich auch was in den logs
gefunden /var/log/ajenti/ajenti.log


2019-09-19 12:38:34,946 INFO : Authenticating session as ebraem
2019-09-19 12:38:43,515 ERROR : {‚info‘: u’80090308: LdapErr:
DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1’,
‚desc‘: u’Invalid credentials’}
2019-09-19 12:38:58,611 ERROR : {‚info‘: u’80090308: LdapErr:
DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1’,
‚desc‘: u’Invalid credentials’}
2019-09-19 12:38:59,704 INFO : Opening a session for user genzke
2019-09-19 12:38:59,705 INFO : Opening a new worker gate for session
341, client 10.17.154.17
2019-09-19 12:38:59,748 INFO : New worker „session 341“ PID 8491,
EUID 0, EGID 0
2019-09-19 12:38:59,748 INFO : Authenticating session as genzke
2019-09-19 12:39:12,506 INFO : Opening a session for user martin
2019-09-19 12:39:12,507 INFO : Closing session 333 due to pool overflow
2019-09-19 12:39:12,512 INFO : Opening a new worker gate for session
342, client 10.17.102.3
2019-09-19 12:39:12,554 INFO : New worker „session 342“ PID 8522,
EUID 0, EGID 0


Also auch ein Overflow von Sessions.
Ich hatte schon in der /etc/ajenti/config.yml auf 60 Sessions
umgestellt… aber 342 Stück? Wo kommen die alle her?
Ich hab nur 160 Rechner im Netz …

Ich hab die SchuKo wieder an den Start gebracht durch:

service linuxmuster-webui stop
service linuxmuster-webui start

Danach geht es wieder mit session 1 los.

Morgen schau ich mal, ob die alten Sessions abgeräumt wurden und ob er
wieder bei 1 anfängt…

LG

Holger

hatte bisher nur windows-clients → netmask setzen, richtig?

Er hatte Passwörter von Schüler in der SchuKo geändert […]

interessant, exakt das machen wir jetzt ständig, hatte aufgrund eines tipps aus dem forum irgend einen wert von ca. 50 auf 500 gesetzt (kann jetzt nicht nachsehen welchen), seitdem ist das problem nicht mehr aufgetreten. vllt war es das!

Oder nur aufgeschoben…!?

Viele Grüße,
Jochen

richtig, verschoben… nicht per web-ui erreichbar seit gerade.
ich geh heim…

Interessant. Solche Probleme hatten wir eigentlich selten, auch wenn ich in einer Umgebung gerade auch das stoppen der Webui Feststelle.

Eventuell hilft es übergangsweise mal den Webui Daemon alle paar Stunden neuzustarten. Arnaud und ich werden mal schauen was hier das Problem ist.

Es wäre gut, wenn ihr hierfür Logfiles vor und während dem auftreten des Problems bereitstellen könntet.

Hallo @Till,

Ich bin gerade am Testen, seit einer Stunde : bei mir steht 2 als max_sessions, und ich kann leider das Problem nicht reproduzieren.

Einige Erklärungen sind hier nötig :

  1. Das ist egal, welcher Nummer eine Session hat, ob 2 oder 10000, was wichtig ist , ist die Anzahl von Sessions. 342 ist nur eine Nummer, aber keine Anzahl von Sessions.

  2. Es gilt die folgende Regeln :

a) wenn eine Session älter als 1 Stunde ist, dann wird es gelöscht, d.h. dass der User sich wieder anmelden soll,

b) wenn die Anzahl von Sessions größer als max_sessions ( in /etc/ajenti/config.yml ) ist, dann wird die älteste Session ( d.h. die ohne Event seit eine längere Zeit ) gelöscht. Eine Meldung Closing session 1 due to pool overflow ist damit normal.

  1. Es gibt immer eine zusätzliche besondere Session für das System.

Für jede Session wird ein Worker gestartet, und jedes Mal, dass eine Session gelöscht ist, ist auch diesen Worker gekillt ( kann man mit ps aux | grep ajenti-panel listen ), zumindest in meiner Umgebung.

Ich hoffe, dass meine Erklärungen verständlich sind.

Wie oben gesagt, ich kann momentan das Problem nicht reproduzieren, und damit ist es schwierig, eine Lösung zu finden, jede Info wäre hilfreich.

Gruß

Arnaud

Hallo Arnaud,

Ich bin gerade am Testen, seit einer Stunde : bei mir steht 2 als
max_sessions, und ich kann leider das Problem nicht reproduzieren.

… ich denke, dafür bist du einfach ein wenig zu wenige Leute (me,
myself and i sind halt nur drei …).

KLar hast du versucht mit
max_sessions = 2
ein früheres Auftreten zu produzieren: aber wieviel „Leute“ waren bei
dir gleichzeitig an der WebUI angemeldet beim testen?
Wieviele unterschiedliche Benutzernamen wurden dafür verwendet?

Ich meine du brauchst mindestens 3 „Rechner“ und drei unterschiedliche
Nutzernamen …

Einige Erklärungen sind hier nötig :

  1. Das ist egal, welcher Nummer eine Session hat, ob 2 oder 10000, was
    wichtig ist , ist die Anzahl von Sessions. 342 ist nur eine Nummer,
    aber keine Anzahl von Sessions.

OK, das verstehe ich.

Es gilt die folgende Regeln :

a) wenn eine Session älter als 1 Stunde ist, dann wird es gelöscht, d.h.
dass der User sich wieder anmelden soll,

b) wenn die Anzahl von Sessions größer als |max_sessions| ( in

/etc/ajenti/config.yml| ) ist, dann wird die älteste Session ( d.h. die
ohne Event seit eine längere Zeit ) gelöscht. Eine Meldung |Closing
session 1 due to pool overflow| ist damit normal.

OK, die Meldung hatte ich auch: die Frage ist: wie kam ich auch die Zahl
(über 60)?
Ich halte es für Möglich, dass zu dem zweitpunkt gerade in zwei
Computerräumen Schüler waren und es ist auch möglich, dass die gerade
alle in der WebUI waren um ihr Passwort zu ändern: aber das sind noch
immer nur 52 gleichzeitige Sessions.
Dass zusätzlich noch 8 weitere im Schulhaus auf waren halte ich doch für
sehr unwahrscheinlich.
Also stellt sich die Frage: wird eine session durch „abmelden“
verläßlich beendet?
Das solltest du auch testen.
Ich könnte dir helfen, wenn es eine Möglichkeit gäbe zu zählen wieviele
unclosed Sessions aktuell vorhanden sind.
… vielleicht eine andere Möglichkeit außer der, dass man die Zeilen
von ajenti-panel in ps aux zählt …

An dieser Stelle möchte ich auch noch anmerken, dass ich mir gut
vorstellen kann, dass viele Sessions nicht „beendet“ wurden: weil der
logout Knopf in dem Kreis oben rechts drin steckt: das blickt der
durchschnittslehrer nicht.
Mir war das nie aufgefallen: aber jetzt hab ich das seit 1,5 Wochen
laufen und habe öfters gesehen, dass die Lehrer rumsuchen, wo man sich
ausloggen kann … und lange suchen die nicht: dann wird halt ausgeloggt.
Einem durchschnittsschüler traue ich zu den Knopf schneller zu finden:
aber ich traue ihm auch noch weniger Geduld zu, und damit …

Deswegen möchte ich anregen den logout Knopf doch prominenter zu platzieren.
Das wäre ein Featurerequest.
Soll ich das in Git Hub als issue eintragen?

Viele Grüße
Holger

Hallo Andreas,

ich schicke dir und Anraud logdateien zu.

Welche sollen es sein (außer der /var/log/ajenti/ajenti.log)?

LG

Holger

Hallo Holger,

Nein, es ist auf der Sessionebene nicht nötig : man kann es mit verschiedene Browsers und Private Modus es testen.
Ich bin „relativ“ sicher, dass das Problem nicht an die Sessions liegt : eine Session ist nur eine Liste, vergliechen mit den Inhalt eines Cookies.

Was du meinst ist etwas anderes : zu viele Verbindungen, die evtl das Socket überschwemmt : es ist eine mögliche Ursache. Ich sehe leider viele mögliche Ursachen :

  • falsch intepretiertes Zeichen im SchülerPW,
  • schlecht formatiertes Request : in diesem Fall wartet die Webui auf das Ende des Requests, und der Timeout ist 10 Minuten. Das ist mein lieblings Szenario.
  • Race Condition im Requestqueue : wenn Ajenti auf die Antwort eines Plugins wartet, es könnte sein, dass eine andere Antwort es zerstört hat,
  • usw …

Ja : es wird einfach von der Liste aller Sessions entfernt.
Schwieriger ist zu sagen, was passiert wenn eine Websocket gebrochen ist.

Die Zeilen aus ps zählen ist einfach, dafür gibt es wc -l :slight_smile:

ps aux | grep 'worker \[session'

zeigt alle aktuelle Sessions, und

ps aux | grep 'worker \[session' | wc -l

zählt es.
Leider werden die Logs von ajenti nicht viel mehr sagen. In /var/log/auth.log kann man sehen, wer sich in ajenti geloggt hat. Evtl kann man mit journalctl -u linuxmuster-webui etwas finden.

Ich habe heute probiert, dieses Passwort eines Users zu geben :

aA0123456789!§+-@#$%&*()[]{}

um die Zeichen richtig zu testen. Das PW ist zwar als ErstPW gespeichert, aber es ist nicht möglich damit sich einzuloggen. sophomorix-passwd --test-firstpassword -u USER meldet auch, dass es nicht geht. Ich gebe das PW Muster! zurück, dann geht es. Da stimmt was mit den Zeichen nicht, und wie oben gesagt, könnte es zu Probleme führen. Wenn du das schon mal ein bisschen testen könntest, wäre es hilfreich.

In alle neue Weboberfläche ist das Abmelden im Usermenu, selbst hier im Discourse, von daher ist es kohärent, es oben rechts im Usermenü zu lassen.
Aber anstatt eine Buchstabe könnte man den Login schreiben, das wäre sichtbarer.

Gruß

Arnaud

Hallo,

Das habe ich zumindest gefunden : das Zeichen § ist das Problem.
Aber das ist nicht die Ursache des 500 Fehlers.

Gruß

Arnaud

Hallo Arnaud,

>aA0123456789!§+-@#$%&*()[]{} |

um die Zeichen richtig zu testen. Das PW ist zwar als ErstPW
gespeichert, aber es ist nicht möglich damit sich einzuloggen.
>sophomorix-passwd --test-firstpassword -u USER| meldet auch, dass
es nicht geht.

Das habe ich zumindest gefunden : das Zeichen § ist das Problem.
Aber das ist nicht die Ursache des 500 Fehlers.

weswegen gehören eigentlich
. und _
in der WebUI nich tzu den erlaubten Sonderzeichen?
Einige Lehrer bei mir in der Schule wollten die nehmen: ging aber nicht.
Erst dann haben sie sich die Liste der Sonderzeichen genau angeschaut.

Kann man die noch aufnhmen, die beiden Sonderzeichen?
Es ist ja nicht so, dass sophomorix das nicht könnte: die Zeichen werden
ja durch die WebUI gefiltert.

LG

Holger

Hallo Holger,

Als ich angefangen habe, war die Liste von Zeichen schon da, muss ich mit den anderen Entwickler absprechen, um zu überprüfen, was genau sophomorix erlaubt.
Das ist natürlich kein Problem es in die Webui hinzufügen wenn sophomorix es kann.

Ich habe mal getestet und so ist es, dass die Zeichen beim Ändern des PWs im Usermenü gefiltert ist, aber NICHT wenn man das PW für eine(n) Schül. setzt.
D.h. : oben im Usermenü kann man kein . oder _, aber im Usermanagement doch, was nicht stimmt.
Das hat auch eine andere Konzequenz : man kann alle Zeichen im Usermanagment verwenden, was nicht gut ist, und vielleicht eine Ursache des 500s Fehlers ( ich weiß nicht, wo man das s fürs Genitiv schreibt :slight_smile: ).

Ich habe gerade getestet, da geht alles : é~œÜßê`<> usw …
Aber selbst so bleibt die Webui erreichbar …

Gruß

Arnaud

Hallo,

wie „doomkopf“ weiter oben geschrieben hat, ist deren WebUI immer wieder nicht erreichbar bis der Dienst manuell neu gestartet wurde.

Die Session-Anzahl (max_sessions in /etc/ajenti/config.yml) wurde bereits auf 500 erhöht.
In den Ajenti Logs sehe ich leider keine Meldungen, die auf die Ursache hindeuten.
Können die Ajenti Logs ggf. sinnvoller parametrisiert werden (Debug o.ä.) um die Ursache zu finden?

Auszug aus den Ajenti Logs von Freitag:

-------------------------------------------------------
2019-09-20 17:55:24,931 INFO    : Opening a session for user global-admin
2019-09-20 17:55:24,931 INFO    : Opening a new worker gate for session 108, client 10.0.0.254
2019-09-20 17:55:24,956 INFO    : New worker "session 108" PID 23051, EUID 0, EGID 0
2019-09-20 17:55:24,957 INFO    : Authenticating session as global-admin
2019-09-20 19:15:43,809 INFO    : Process 12012 exiting normally
2019-09-20 19:15:46,535 INFO    : Loading config from /etc/ajenti/config.yml
2019-09-20 19:15:46,539 INFO    : Ajenti Core 2.1.30
2019-09-20 19:15:46,539 INFO    : Detected platform: debian / Ubuntu 18.04.3 LTS
2019-09-20 19:15:46,790 INFO    : Discovered 21 plugins
2019-09-20 19:15:47,373 INFO    : lmn_landing.__init__.py: lmn_landing loaded
2019-09-20 19:15:47,419 INFO    : Loaded 21 plugins
2019-09-20 19:15:47,420 INFO    : Binding to [0.0.0.0]:443
2019-09-20 19:15:47,438 INFO    : SSL enabled
2019-09-20 19:15:47,460 INFO    : New worker "restricted session" PID 28646, EUID 0, EGID 0
2019-09-20 19:15:47,461 INFO    : Worker 28646 is demoting to UID 65534 / GID 65534...
2019-09-20 19:15:47,461 INFO    : ...done, new EUID 65534 EGID 65534
2019-09-20 19:16:21,726 WARNING : URL not found: /favicon.ico
2019-09-20 19:16:58,249 INFO    : Opening a session for user global-admin
2019-09-20 19:16:58,249 INFO    : Opening a new worker gate for session 1, client 10.0.0.254
2019-09-20 19:16:58,256 INFO    : New worker "session 1" PID 28680, EUID 0, EGID 0
2019-09-20 19:16:58,257 INFO    : Authenticating session as global-admin
2019-09-20 19:16:59,713 WARNING : URL not found: /favicon.ico
-------------------------------------------------------

Was für Infos werden ansonsten noch benötigt?

LG
Xandra