FreeBSD und Erfahrungen mit Proxyeinstellungen?

nevotheless

Member
Ahoi,

ich bin sehr neu in der FreeBSD Welt und bin bislang schon sehr entzückt. Allerdings stößt mir wie bei allen Unixoiden Betriebssystemen in unserer Umgebung eine Sache immer wieder sauer auf: Proxy Einstellungen.

Es ist ein räudiges Thema und in meinen noch nicht all zu vielen Jahren als System Administrator habe ich des öfteren mit Entwicklern gesprochen oder auch selbst Anwendungen angepasst sodass diese funktionieren wie wohl eigentlich gewollt. Viele Entwickler scheinen das Thema "Proxy" immer mit Samthandschuhen anzufassen was mich zu folgenden FreeBSD bezogenen Entdeckungen bringt und für mich die Frage aufwirft, wie andere FreeBSD Administratoren damit umgehen.

Wir haben also FreeBSD neu installiert und habe Proxy Variablen HTTP_PROXY und HTTPS_PROXY sowohl in der /etc/csh.cshrc als auch /etc/profile nach Schema http://username:passwort@proxyserver:port gesetzt.

Die ersten Begegnungen mit Internetverbindung liefen dann erstmal super. PKG, git und npm haben diese Angaben wunderbar respektiert.

Dann aber versuchten wir per Befehl "Freebsd-update" das System auf Updates prüfen zu lassen und da waren Sie wieder die Proxy bezogenen Probleme. Es sei eine Proxy Authentifizierung Notwendig. Ich schaute meinen Co-Admin an und wir fragten uns beide ob wir schon von Alzheimer befallen wären. Wir schauten uns zunächst die gesetzten Umgebungsvariablen an und es schein alles richtig eingestellt zu sein. Also welzten wir man pages und fanden heraus dass das für den Download der FreeBSD-Update Binary zuständige phttpget wohl eine für uns neue Umgebungsvariable namens HTTP_PROXY_AUTH ins Spiel bringt, was nicht weiter Schlimm wäre wenn es nicht voraussetzen würde die HTTP_PROXY und HTTPS_PROXY Variable so abzuändern dass diese den Authentifizierungsteil nicht mehr beinhalte.

Wir hatten nun also HTTP_PROXY und HTTPS_PROXY nach Schema http://proxyserver:port gesetzt und die HTTP_PROXY_AUTH Variable (und auch HTTP_AUTH) mit basic:*:username:password gefüllt.

Freebsd-Update lief!

PKG auch. Alles andere, nicht mehr. Was nicht sonderlich verwunderlich ist, da Git, NPM und all die Mainstream Paketmanager alle aus der Linuxwelt kommen und ich diese HTTP_PROXY_AUTH Variable dort noch nie zuvor gesehen habe.

Nun also nocheinmal meine Frage: Wie geht ihr damit um? Schreibt ihr dafür Scripte, die die Variablen vorher ändern und später wieder zurücksetzen oder gibt es auch einen eleganten Weg der mir bislang nicht in die Quere gekommen ist?

Zudem frage ich mich ob jemand mit dem Programm "Fetch" im Bezug auf Proxy Verwendung Erfahrungen wie ich gemacht hat. Denn egal was ich für Umgebungsvariablen setze, Fetch ignoriert sie alle. Laut Man Page sollte das aber nicht so sein denn es Unterstützt angeblich alles mögliche aber davon sehe ich in der Praxis leider nichts. Während also Entweder freebsd-update und pkg oder pkg, git und npm gleichzeitig mit dem Internet kommunizieren können jenachdem ob ich die HTTP_PROXY_AUTH Methode nutze oder nicht funktioniert Fetch einfach nie.

Ich habe mir sogar bereits den vermeintlich korrekten C Code angeschaut und alles Proxy bezogene was ich in der Source File gefunden habe bezog sich darauf "no_proxy" zu setzen. Alle anderen Angaben wie die Man Pages vermuten lassen habe ich dort nicht gefunden. (Was aber auch daran liegen kann dass das FreeBSD SVN leicht unübersichtlich ist und ich nicht weiß ob ich nun tatsächlich die richtige Source gefunden habe.)

Ich freue mich auf eure Geschichten und Anmerkungen zum Thema Proxykonfigurationen und FreeBSD!
 
Alle anderen Angaben wie die Man Pages vermuten lassen habe ich dort nicht gefunden.
Die Umgebungsvariablen sind nicht Bestandteil des fetch-Binaries, sondern der Bibliothek libfetch. Die Manpage dazu ist fetch(3). Dort ist auch eine umfangreiche Dokumentation zu den Umgebungsvariablen inkl. Beispiele zu finden.

pkg ist gegen diese Bibliothek gelinkt, freebsd-update ist ein Shellskript, das auch fetch(1) benutzt.

Ergo sollte das Trio (was es ja nicht ist) fetch/pkg/freebsd-update gleichermaßen funktionieren.

Ich rate außerdem dringend davon ab, Umgebungsvariablen an mehreren Orten zu definieren. Man sucht sich einen Ort aus und überprüft, ob sie gesetzt wurden.

Rob
 
Zurück
Oben