27.5. Einen Proxy in Anwendungen konfigurieren

Sie werden sich sicher fragen, was dieser Aspekt hier im Buch zu suchen hat. Wichtig wird das genau dann, wenn Sie hinter einem Proxy Server sitzen und dieser ihnen den direkten Weg zum Paketmirror oder auch zu dringend benötigten Informationsseiten versperrt. Dann wird die Recherche und auch der nachfolgende Bezug passender deb-Pakete nämlich etwas hakelig. Mehrfach waren wir in dieser Lage, was uns erstmal etwas ausgebremst hat. Wir fügen die Informationen dazu hier ein, damit Sie es leichter haben, aus einer solchen Situation herauszukommen, falls Sie unverhofft darin landen.

27.5.1. Mittels wget

Das Werkzeug wget aus dem gleichnamigen Debianpaket [Debian-Paket-wget] agiert wie ein fensterloser Webbrowser und bezieht die Daten von der im Aufruf angegebenen URL. wget respektiert bereits konfigurierte Proxy Server und wertet dazu die vier Umgebungsvariablen http_proxy, https_proxy, ftp_proxy und no_proxy aus, falls diese auf ihrem Linux-System vorhanden sind.

Der nachfolgende Aufruf demonstriert, wie Sie das Paket mc [Debian-Paket-mc] via wget vom Paketmirror ftp.de.debian.org beziehen. Das heruntergeladene Paket finden Sie dann als Datei mc_4.8.26-1.1_amd64.deb in ihrem aktuellen Verzeichnis.

Bezug des Paketes mc vom Paketmirror ftp.de.debian.org via wget

$ wget http://ftp.de.debian.org/debian/pool/main/m/mc/mc_4.8.26-1.1_amd64.deb
--2023-06-12 22:07:02--  http://ftp.de.debian.org/debian/pool/main/m/mc/mc_4.8.26-1.1_amd64.deb
Auflösen des Hostnamen »ftp.de.debian.org (ftp.de.debian.org)«... 141.76.2.4
Verbindungsaufbau zu ftp.de.debian.org (ftp.de.debian.org)|141.76.2.4|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 534020 (522K) [application/vnd.debian.binary-package]
In »»mc_4.8.26-1.1_amd64.deb«« speichern.

mc_4.8.26-1.1_amd64.deb     100%[==========================================>] 521,50K   488KB/s   in 1,1s

2023-06-12 22:07:04 (488 KB/s) - »»mc_4.8.26-1.1_amd64.deb«« gespeichert [534020/534020]
$

In Bezug auf Proxy Server verfügt wget über weitere Schalter für die Kommandozeile, die sich im Alltag als recht nützlich erweisen:

--no-proxy-server
keinen Proxy Server verwenden, auch wenn dieser systemweit konfiguriert ist. Ignoriert die Umgebungsvariablen http_proxy, https_proxy, ftp_proxy und no_proxy.
--proxy_user
Authentifizierung beim Proxy Server mit dem angegebenen Benutzername.
--proxy_password
Authentifizierung beim Proxy Server mit dem angegebenen Passwort.

Bitte beachten Sie bei der Verwendung der beiden Schalter --proxy_user und --proxy_password im direkten Aufruf über die Kommandozeile, dass die darüber angegebenen Authentifizierungsdaten in der Historie ihres Kommandointerpreters landen. Abhilfe schaffen Sie, indem Sie die Authentifizierungsdaten entweder in der lokalen Datei ~/.wgetrc oder systemweit in der Datei /etc/wgetrc hinterlegen.

27.5.2. Mittels curl

Was mit wget gelingt, geht auch mit curl (Debianpaket curl [Debian-Paket-curl]) — curl kann nur deutlich mehr. Nützlich ist hier zunächst der Schalter -x (Langversion: --proxy), mit dem Sie zunächst den Proxy Server benennen. Der darauffolgende Wert repräsentiert das Login benutzer mit dem Passwort passwort und dem Proxy Server mit der IP-Adresse 127.0.0.1 und dem Port 1234.

Bezug der Datei über einen Proxy mittels curl

curl --proxy "http://benutzer:passwort@127.0.0.1:1234" "http://webseite.org/datei"
curl --proxy "benutzer:passwort@127.0.0.1:1234" "http://webseite.org/datei"

Bitte beachten Sie beim direkten Aufruf über die Kommandozeile, dass die darüber angegebenen Authentifizierungsdaten in der Historie ihres Kommandointerpreters landen. Abhilfe schaffen Sie auf drei möglichen Wegen. In Variante 1 speichern Sie die benötigten Authentifizierungsdaten in den Umgebungsvariablen. curl wertet dazu http_proxy und https_proxy aus. Dann vereinfacht sich obiger Aufruf zu:

Bezug der Datei über einen Proxy mittels curl (vereinfachter Aufruf). 

curl "http://webseite.org/datei"

In Variante 2 speichern Sie die benötigten Authentifizierungsdaten in einer lokalen Datei und geben diese curl beim Aufruf als zusätzlichen Parameter mit. Das gelingt über den Schalter -K (Langform: --config), gefolgt vom Namen der Konfigurationsdatei. Der nachfolgende Aufruf benutzt die Datei proxy-config mit diesem Inhalt:

Konfigurationsdatei für curl zur Verwendung eines Proxy Servers. 

--proxy "http://benutzer:passwort@127.0.0.1:1234"

Der Aufruf von curl vereinfacht sich dann wie folgt:

Bezug der Datei über einen Proxy Server mittels Konfigurationsdatei für curl

$ curl -K proxy-config "http://webseite.org/datei"

Auch Variante 3 möchten wir Ihnen nicht vorenthalten. Dieser Weg führt über die lokale Konfigurationsdatei ~/.curlrc. Dort hinterlegen Sie die Defaultparameter für curl analog zu Variante 2. Rufen Sie nun curl auf, prüft es, ob diese Konfigurationsdatei vorhanden ist und liest die voreingestellten Authentifizierungsdaten von dort. Der Aufruf von curl ist identisch zu Variante 1.

Weitere Schalter zum Thema Proxy Server entnehmen Sie bitte der umfangreichen Manpage zu curl oder dem Curl Developer Guide [curl-developer].

27.5.3. Webbrowser Firefox

Firefox kann ebenfalls mit Proxy Servern umgehen. Eine Konfiguration dazu erlaubt Firefox jedoch nicht über Kommandozeilenschalter, sondern ausschließlich über den Menüpunkt Einstellungen → Allgemein → Netzwerkeinstellungen (siehe Abbildung 27.1, „Proxy-Einstellungen bei Firefox“ für das entsprechende Dialogfenster).

Abbildung 27.1. Proxy-Einstellungen bei Firefox

praxis/http-proxy/firefox-proxy.png

Während frühe Versionen von Firefox Umgebungsvariablen mitunter noch ignorierten, haben Sie mittlerweile die freie Auswahl zwischen den Varianten „keinen Proxy Server verwenden“, „automatische Erkennung“, „Verwendung der Umgebungsvariablen“ , „manueller Konfiguration“ und ``Verwendung einer automatischen URL zur Konfiguration``. Sobald Sie die passenden Eintragungen im Dialogfenster durchgeführt haben, werden diese aktiv und Firefox kommuniziert mit dem von Ihnen angegebenen Proxy Server.

27.5.4. Webbrowser Chromium

Chromium verhält sich in Bezug auf die Konfiguration für Proxy Server entgegengesetzt zu Firefox. In den Systemeinstellungen finden Sie keinen Eintrag, dafür geschieht alles über passende Schalter auf der Kommandozeile. Zudem respektiert Chromium die lokalen Einstellungen, wie es Ihnen freudig mitteilt, sobald Sie die lokale URL chrome://linux-proxy-config/ ansurfen (siehe Abbildung 27.2, „Mitteilung von Chromium zu den Einstellungen für Proxy Server“).

Abbildung 27.2. Mitteilung von Chromium zu den Einstellungen für Proxy Server

praxis/http-proxy/chromium-infomeldung.png

Als Kommandozeilenparameter stehen Ihnen zur Verfügung:

--proxy-server
den angegebenen Proxy Server benutzen. Für einen SOCKS Proxy v4 sieht der Aufruf wie folgt aus:
$ chromium --proxy-server="socks4://webserver:1234"
--no-proxy-server
keinen Proxy Server verwenden, auch wenn dieser systemweit konfiguriert ist
--proxy-auto-detect
automatische Erkennung des Proxy Servers
--proxy-pac-url
legt die URL der automatischen Konfiguration zur Erkennung des Proxy Servers fest