Hallo,
nach einem Jahr Version7 haben wir heute den proxy endlich scharf gestellt. Funktioniert mit dem logon.sh wunderbar im linuxclient.
Nur haben wir auch Notebooks und Lernsticks im Einsatz, d.h diese Geräte verlassen auch mal das Schulnetz. Und da sind die Proxyeinstellungen natürlich fehl am Platz.
Wie handhabt ihr das? Irgendwie müsste man die Proxyeinstellungen, wenn der server nicht erreichbar ist, wieder deaktivieren …
Hallo,
die Dokumentation scheint nicht für alle Linuxe zu passen. Bei Debian BUllseye führt
PROXY_HOST=http://firewall.$PROXY_DOMAIN
zu dem Eintrag in env mit http://http://firewal...
Es funktioniert bei uns erst mit
PROXY_HOST=firewall.$PROXY_DOMAIN
Das kann man z.B. mit curl http://google.de
testen. (EDIT: curl meint aber dann sich authentifizieren zu müssen). Firefox geht auch mit den falschen env-Einträgen.
VG Helge
PS: Zum eigentlichen Thema: wir probieren gerade ein logoff-script zu erstellen.
wie ich grade auch auf Github geschrieben habe, gibt es unter Linux kein logoff script. Das liegt daran, dass es keinen einfachen Weg zu geben scheint, um vor dem Logout ein Script im Userkontext auszuführen.
Ich verstehe aber auch nicht, was ihr damit machen wollt. Wenn ihr den Proxy nur unter bestimmten Bedingungen aktivieren möchtet, baut einfach im logon Script eine Bedingung ein.
Lehrer und Schüler haben Notebooks bzw. Lernsticks von der Schule erhalten , die im Schulnetz gestartet werden. Also wird bei diesen der proxy über das logon-script aktiviert.
Jetzt gehen die nach Hause und starten dort ihre Geräte und dann ist der Proxy immernoch aktiv. D.h. sie kommen dort nicht mehr ins Internet.
Deshalb war unser erster Gedanke über ein logoff script dwn Proxy wieder zu deaktivieren.
Jetzt überlegen wir, wie es anders geht.
Anscheinend sind wir die Einzigen mit diesem usecase.
Achso, also es gibt beim Logon keine Verbindung zum Server und dadurch auch kein Serverseitiges logon, verstehe…
In dem Fall könnt ihr ein lokales Logon Script benutzen, um die Einstellungen zurückzusetzen:
ja, das ist kein Use-Case für Anmeldeskripte, weil es dafür eine andere Lösung gibt. Einfach Proxy Auto-Config – Wikipedia nutzen und auf das skriptbasierte umschalten verzichten.
Das OS bzw. die Browser schauen, ob die URL zum Proxy-Skript abrufbar ist, wenn ja, wird das JavaScript darin ausgewertet, die IP und Port des Proxy-Servers liefert. Ist die URL nicht abrufbar, wird nix ausgewertet und kein Proxy genutzt.
Auf dem Server wird in sysstart.sh nun eine Datei „10_proxy.sh“ nach /etc/linuxmuster-linuxclient7/onLogin.d/ kopiert. In dieser wird erst geschaut ob der Server erreichbar ist und je nachdem dann die Proxy Einstellungen gesetzt und eben aktiv abgestellt.
Aktueller Stand ist: /etc/linuxmuster-linuxclient7/onLogin.d/10_proxy.sh wird ausgeführt, wenn:
Rechner im Schulnetz
Rechner hat gar kein Netz
leider wird das Script aber ignoriert, wenn man in einem „fremden“ Netz ist. Das betrifft auch alle 00_example.sh scripte in den Hook-Ordnern, bis auf den onBoot.d-Hook-Ordner. Das lässt sich gut mit einer Suche nach 00_example.sh in journalctl nachvollziehen.
@dorian Danke für die Tipps, hättest Du hier auch einen?
Hier das Script:
#!/bin/bash
echo "Setting Proxy ..."
if musterstick-check-in-school; then
# We are in school so set proxy settings...
PROXY_DOMAIN=merian.lan
PROXY_HOST=firewall.$PROXY_DOMAIN
PROXY_PORT=3128
# set proxy via env (for Firefox)
lmn-export no_proxy=127.0.0.0/8,10.0.0.0/8,192.168.0.0/16,172.16.0.0/12,localhost,.local,.$PROXY_DOMAIN
lmn-export http_proxy=$PROXY_HOST:$PROXY_PORT
lmn-export ftp_proxy=$PROXY_HOST:$PROXY_PORT
lmn-export https_proxy=$PROXY_HOST:$PROXY_PORT
# set proxy gconf (for Chrome)
gsettings set org.gnome.system.proxy ignore-hosts "['127.0.0.0/8','10.0.0.0/8','192.168.0.0/16','127.0.0/12','localhost','.local','.$PROXY_DOMAIN']"
gsettings set org.gnome.system.proxy mode "manual"
gsettings set org.gnome.system.proxy.http port "$PROXY_PORT"
gsettings set org.gnome.system.proxy.http host "$PROXY_HOST"
gsettings set org.gnome.system.proxy.https port "$PROXY_PORT"
gsettings set org.gnome.system.proxy.https host "$PROXY_HOST"
gsettings set org.gnome.system.proxy.ftp port "$PROXY_PORT"
gsettings set org.gnome.system.proxy.ftp host "$PROXY_HOST"
echo "### Enabled proxy settings for school"
else
# unset proxy via env
lmn-unset no_proxy
lmn-unset http_proxy
lmn-unset ftp_proxy
lmn-unset https_proxy
# unset proxy gconf (for Chrome)
gsettings set org.gnome.system.proxy mode "none"
echo "### Disabled proxy settings for school"
fi
exit 0
Damit scheint /etc/linuxmuster-linuxclient7/onLogin.d/10_proxy.sh bei uns den proxy aus der Systemeinstellung (env) zu entfernen bzw. zu setzen.
Danke dafür.
Was mich aber überrascht ist, dass ihr kein Problem mit der Zeit des Anmeldeprozesses zu haben scheint.
Wenn die Rechner bei uns mit einem fremden Netz verbunden sind (z.B. per WLAN zu Hause), dann warten sie beim Booten („A Start job is running for linuxmuster: switch local and remote home depending on ad server connection“) und bei der Anmeldung lange Zeit auf eine Antwort vom Server und dadurch dauert der Anmeldeprozess seeeehr lange (>> 15 Min.).
Ich hatte mal mit Dorian darüber gesprochen, wo eine entsprechende Abfrage rein muss, bin aber seither nicht dazu gekommen. Und jetzt finde ich meine Notizen nicht mehr.
Hat da jemand eine Idee zu?
Oh doch! Die von dir beschriebenen Probleme haben wir auch. Zu einem Teilproblem gibt es auf github auch ein issue.
Wir hatten auch mal einen Timeout eingebaut. Aber wenn ich mich recht erinnere, haben wir ihn wegen dem eben genannten Script in login.d wieder rausgenommen.
Die Ursache dieser Probleme (die ich nicht wirklich durchschaue) war damit ja auch nicht behoben.
die Timeout Probleme liegen wahrscheinlich daran, dass der Rechner beim Boot und Login versucht, ein Kerberos Ticket zu holen und das Sysvol einzuhängen. Ist der Rechner offline, geht es sofort schief, ist er aber in einem anderen Netz, gehen die Pakete ins Nichts, kommen nich zurück und er wartet ewig auf eine Antwort.
Ich fixe das, wenn ich die Zeit finde. Bin momentan sehr eingespannt mit Uni, Klausuren, Training und Wettkämpfen.
Die beste Anleitung und Erklärung dazu habe ich bei gentoo gefunden. Incl. Warnhinweis: Das sollte man im WLAN nur verwenden, wenn den Geräten nicht erlaubt ist, sich zu sehen. Sonst ist die man in the middle Attacke vermutlich nicht so schwer zu bewerkstellingen.
Für die FestPCs und zum „erstmal vertraut machen“ finde ich die Lösung mit den Anmeldeskripten nicht verkehrt.
Übrigens verwendet unser aktueller Firefox-ESR die Einstellungen von Gnome und nicht mehr die Umgebungsvariablen.