Update hinter einem Proxy funktioniert nicht (24.7)

Started by ds71, January 03, 2025, 03:18:45 PM

Previous topic - Next topic
Moin ins Forum und Frohes Neues!

Ich wollte die Zeit vor dem Start des allgemeinen Dienstgeschäfts nutzen und den OPNsense HA Cluster (Deciso DEC2670) auf den aktuellen Stand bringen. Ausgangslage war Version 21.1.irgendwas, und auch dort hatte ich bereits Probleme mit den Updates über einen Proxyserver sowohl über das Webinterface als auch über die Console. Zum Hintergrund: Wir sind aus technischen und organisatiorischen Gründen (die Organisation oben drüber verlangt es) dazu verpflichtet, Verkehr ins Internet (http und https) über Proxy-Server laufen zu lassen. Wir betreiben einen eigenen Proxy-Server (squid), der wiederum als einziges Gerät aus unserem Netzwerksegment den Upstream-Proxyserver erreichen kann. Eine direkte DNS-Auflösung funktioniert daher auch nicht.

Zuerst habe ich also den inaktiven Knoten über eine Neuinstallation aktualisiert (USB-Stick, OPNsense-24.7-serial-amd64.img) und bei der Installation die vorliegende Konfiguration der laufenden Installation übernommen. Auf diesem Knoten lief dann auch das Update auf 24.7.11_2, nachdem ich passende Einstellungen bzgl. genereller Verwendung eines Proxyservers vorgenommen habe. Als Zwischenergebnis hatte ich dann einen funktionierenden HA-Cluster mit verschiedenen OPNsense Versionen. Dann habe ich mir den anderen Knoten und auf gleiche Weise aktualisiert - dort habe ich allerdings nicht das Update über den Proxyserver hinbekommen, obwohl ich ziemlich sicher bin, dass ich die gleichen Einstellungen in Konfigurationsdateien vorgenommen habe.

In /usr/local/opnsense/service/conf/configd.conf und /root/.cshrc habe ich ergänzt:
setenv HTTP_PROXY http://proxy77:3128
setenv HTTPS_PROXY http://proxy77:3128
setenv http_proxy http://proxy77:3128
setenv https_proxy http://proxy77:3128
setenv FTP_PROXY http://proxy77:3128
setenv ftp_proxy http://proxy77:3128

In /usr/local/etc/pkg.conf habe ich ergänzt:
pkg_env : {
    http_proxy: "{http://proxy77:3128}"
    https_proxy: "{http://proxy77:3128}"
}

Die Einstellungen in pkg.conf blieben erhalten, die Einstellungen in den beiden anderen Dateien waren jeweils nach erfolgten Updates auf dem ersten Knoten wieder weg und mussten jeweils neu ergänzt werden. Diese Einstellungen und Vorgehensweise hab ich an anderer Stelle im Internet finden können.

Namensauflösung auf der OPNsense Console funktioniert mit "proxy77", als auch mit dessen fqdn.
Die Funktion 12 - "Update from console" liefert die Ausgabe "Fetching change log information, please wait... fetch: https://pkg.opnsense.org/FreeBSD:14:amd64/24.7/sets/changelog.txz: Host does not resolve".
Auf der Shell kann ich allerdings erfolgreich "fetch https://pkg.opnsense.org/FreeBSD:14:amd64/24.7/sets/changelog.txz" ausführen, auch andere Webseiten lassen sich über curl oder fetch herunterladen - also muss das schon grundlegend richtig eingestellt sein.

Meine Vermutung ist, dass es noch andere Orte gibt, wo man einen Proxy konfigurieren kann, oder dass der Update-Vorgang diese Einstellungen einfach ignoriert. Auf meiner Test-OPNsense im Test-Netz ohne Proxy-Zwang hat alles super funktioniert, wie ich mir das gewünscht hätte.

Mir ist klar, dass meine Konstellation mit einem Zwangsproxy (sogar für die Firewall) eher unüblich ist, hoffe aber dennoch auf eine Lösung von den Experten...

Grüße,

Daniel

Nach einer tiefergehenden Recherche und unter Einbeziehung von FreeBSD im Allgemeinen konnte ich das Problem mit der OPNsense Aktualisierung über einen Proxy-Server wie folgt lösen:

Datei /usr/local/opnsense/service/conf/configd.conf.d/proxy.conf anlegen, mit folgendem Inhalt:
[environment]
HTTP_PROXY=http://proxy:3128
HTTPS_PROXY=http://proxy:3128
http_proxy=http://proxy:3128
https_proxy=http://proxy:3128

Am Ende der Datei /usr/local/etc/pkg.conf hinzufügen:
pkg_env : {
    HTTP_PROXY: "http://proxy:3128"
    HTTPS_PROXY: "http://proxy:3128"
    http_proxy: "http://proxy:3128"
    https_proxy: "http://proxy:3128"
}

In die (bei mir leeren) Datei /etc/csh.cshrc eintragen:
setenv HTTP_PROXY http://proxy:3128
setenv HTTPS_PROXY http://proxy:3128
setenv http_proxy http://proxy:3128
setenv https_proxy http://proxy:3128

Sofern DNS richtig konfiguriert ist, liefert ein "host proxy" den FQDN "proxy.domain.tld" sowie seine IP-Adresse.
Ich hoffe mal, dass das so auch update-sicher ist und diese Einstellungen erhalten bleiben.