ubuntuusers.de

Proxyserver

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Mitarbeiter am Artikel gesucht: Der Artikel behandelt verschiedene Derivate und sollte aufgeteilt werden. Details gibt es in der Diskussion zum Artikel.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./proxy_logo.png Dieser Artikel beschreibt den Zugriff auf ein Netzwerk (z.B. das Internet) über einen Proxyserver. Dabei werden hier lediglich die Konfigurationsmöglichkeiten über die Desktop-Umgebungen und über die Konsole aufgezeigt. Das Installieren und Einrichten eines Proxyservers wird hier nicht behandelt, sondern ist für verschiedene Programme über den Artikel Serverdienste (Abschnitt „Proxyserver“) zu finden.

An dieser Stelle nur als kurzer Hinweis: das Filtern von Inhalten verschlüsselter Verbindungen (z.B. HTTPS, SFTP) ist eine Problematik, die äußerst schwierig ist. Nutzt man einen Proxy als reinen URL-Filter (erlaubte/verbotene Internetadressen), sollte aber auch für diese Protokolle ein Proxy angegeben werden.

Proxy-Arten

Lokaler Proxy

Ein lokaler Proxy ist ein Proxyserver, der entweder auf dem Quell- oder Zielsystem eingesetzt wird. Er nistet sich zwischen dem Browser des Clients und dem Internet ein. Lokale Proxys werden meist als Filter oder Konverter benutzt.

Transparenter Proxy

Ein transparenter Proxy ist so konfiguriert, dass er nach extern hin als Proxyserver erkennbar ist und alle Clientanfragen und Browserdaten nahezu unverändert weiterreicht. Hierbei werden auch unter Umständen die IP-Adressen der Clients weitergereicht. Beim Einsatz eines Routers im kleinen Netzwerk ist ein transparenter Proxy nicht notwendig, da der Router nach außen hin nur eine IP-Adresse übermittelt und die IP-Adressen der Clients verborgen bleiben.

Anonymer Proxy

Ein anonymer Proxy ist so konfiguriert, dass er nach extern hin als Proxyserver erkennbar ist und alle Clientanfragen weiterreicht. Die IP-Adressen der Clients werden verborgen. Hiermit ist nach korrekter Einstellung der Filter- und Anonymisierungs-Optionen eine Verschleierung der Browserdaten der Clients möglich. Zu beachten ist jedoch, dass die IP-Adresse des Routers stets sichtbar ist und immer auch als IP-Adresse des anonymen Proxy's erscheint. Die IP-Adresse kann nicht verschleiert oder verborgen werden. Da jedoch die IP-Adresse des Routers im Internet "lautstark" behauptet, ein Proxy zu sein, erschwert es Datensammlern die Rückverfolgung. Abgesehen davon werden einige Browserdaten vorenthalten, was wiederum die Wiedererkennung erschwert. Diese Art des Proxyservers eignet sich, um als lokaler Proxy eingesetzt zu werden.

Unsichtbarer (Elite) Proxy

Ein unsichtbarer (Elite) Proxy ist im wesentlichen ein anonymer Proxy, der verheimlicht, ein Proxyserver zu sein. Er ist so konfiguriert, dass er nach extern unsichtbar ist und alle Clientanfragen weiterreicht. Die lokalen IP-Adressen der Clients werden verborgen. Zusätzlich verschleiern korrekte Filter- und Anonymisierungs-Optionen viele Einzelheiten über die Clients. Allerdings sind solche Proxys nicht gern gesehen, da die absolute Verschleierung die RFC-Standards verletzt. Diese Art des Proxyservers kann auch als lokaler Proxyserver Anwendung finden.

Systemaktualisierungen

Hinweis:

Werden die im folgenden beschriebenen Konfigurationsmöglichkeit genutzt, so kann die spezielle Konfiguration folgender Programme wirkungslos sein (die Liste ist möglicherweise nicht vollständig; siehe auch Links):

Eine fehlerhafte oder unvollständige Konfiguration kann also die Funktion dieser Programme verhindern, selbst wenn dort der Proxy korrekt konfiguriert ist.

Um der Paketverwaltung ungehinderten Zugriff auf das Internet zu gewähren (also unter Umgehung des Proxy, falls das auf dem Gateway erlaubt ist), erstellt bzw. bearbeitet man die Datei /etc/apt/apt.conf mit Root-Rechten und ergänzt folgende Zeile:

1
Acquire::http::proxy "false";

Falls aber auf dem Gateway die Ports 80 (http), 443 (https) und 20/21 (ftp) gesperrt sind und diese Dienste nur über den Proxy zu erreichen sind, muss man dies nicht nur im Networkmanager eintragen, sondern zusätzlich der Paketverwaltung apt in der Datei /etc/apt/apt.conf mitteilen (insbesondere bei Lubuntu):

1
2
3
Acquire::http::proxy "http://proxy-IP:port/";
Acquire::https::proxy "https://proxy-IP:port/";
Acquire::ftp::proxy "ftp://proxy-IP:port/";

Alternativ mit Authentifizierung:

1
2
Acquire::http::proxy "http://user:kennwort@proxy-IP:port/";
Acquire::https::proxy "https://user:kennwort@proxy-IP:port/";

Unity und GNOME 3

./unity_proxy.png Über "Systemeinstellungen → Netzwerk" kann man über den Menüpunkt "Netzwerk-Proxy" den Proxy angeben (siehe auch GNOME3 Systemeinstellungen). Mit dem Schaltfläche "Systemweit anwenden" werden diese Einstellungen für alle Nutzer übernommen. Natürlich ist hierzu das Administratorkennwort notwendig.

Muss man sich am Proxy authentifizieren, so gibt man den Server mit Benutzernamen und Passwort in der Form:

username:passwort@proxyserver

an.

KDE

./kde_proxy.png KDE bietet unter

  • "Systemeinstellungen → Verbindungen → Proxy"

verschiedene Möglichkeiten, einen Proxy einzustellen. Allerdings muss beachtet werden, dass sich diese Einstellungen nur auf KDE-Programme auswirken. Daher sollte auch unter KDE das alternative Verfahren (siehe nächster Abschnitt) genutzt werden und im hier genannten Dialog die Option "Voreingestellte Umgebungsvariablen für Proxy verwenden" gewählt werden. Direkt hinter dem Optionstitel befindet sich eine Schaltfläche mit der Aufschrift "Einrichtung...". Hier öffnet sich ein Dialog, in dem nun noch folgende Werte eingetragen werden müssen:

KDE-Proxyeinstellungen
Feld Wert
HTTP http_proxy
HTTPS https_proxy
FTP ftp_proxy

⚓︎

Alternatives Verfahren

Ein Proxy kann auch unabhängig von der grafischen Desktop-Umgebung eingerichtet werden. Dies bietet den Vorteil, dass diese Einstellungen auch systemweit Gültigkeit haben können, was gerade auf einem Mehrbenutzersystem hilfreich sein kann. Möchte man die Einstellungen bei diesem Verfahren nur für einen bestimmten Benutzer einrichten, so muss die versteckte Datei ~/.profile im Homeverzeichnis des entsprechenden Benutzers bearbeitet werden. Für eine systemweite Konfiguration dagegen ist es die Datei /etc/profile, die mit Root-Rechten [2] editiert werden muss. (Bei Lubuntu müssen die folgenden Zeilen zusätzlich in die Datei /etc/environment eingetragen und die Datei /etc/apt/apt.conf entsprechend ergänzt werden, wie oben im Abschnitt Systemaktualisierungen beschrieben.)

Folgende Zeilen müssen am Ende der Datei hinzugefügt werden [1] (SERVER-IP_ODER_NAME:PORT bitte anpassen):

export http_proxy=http://SERVER-IP_ODER_NAME:PORT
export https_proxy=http://SERVER-IP_ODER_NAME:PORT
export ftp_proxy=http://SERVER-IP_ODER_NAME:PORT
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
export FTP_PROXY=$ftp_proxy

Verlangt der Proxy eine Authentifizierung, sind folgende Zeilen erforderlich:

export http_proxy=http://BENUTZER:PASSWORD@SERVER-IP_ODER_NAME:PORT
export https_proxy=http://BENUTZER:PASSWORD@SERVER-IP_ODER_NAME:PORT
export ftp_proxy=http://BENUTZER:PASSWORD@SERVER-IP_ODER_NAME:PORT
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
export FTP_PROXY=$ftp_proxy

Die Platzhalter "BENUTZER", "PASSWORD", "SERVER-IP_ODER_NAME" und "PORT" müssen entsprechend gesetzt werden.

Außerdem kann man festlegen, für welche Hosts man keinen Proxyserver verwenden möchte. Hierzu kann man eine durch Kommata getrennte Liste von IP-Adressen oder Namen in der Umgebungsvariable no_proxy speichern. Möchte man beispielsweise weder für example.com noch für die IP-Adresse 192.0.2.42 über den Proxy gehen, so muss man zusätzlich zu den oben genannten Einträgen noch die folgende Zeile zur Datei /etc/profile hinzufügen:

export no_proxy=example.com,192.0.2.42

Die Einstellungen in /etc/profile werden erst nach einem erneuten Anmelden aktiv.

Gesonderte Konfiguration

Manche Programme berücksichtigen die bisher beschriebenen Einstellungen nicht und benötigen trotz systemweiter Einstellung dennoch eine eigene Konfiguration. Soweit bekannt, werden diese Programme im Folgenden beschrieben.

Firefox

Ab Firefox 3.x benutzt Firefox üblicherweise die im System hinterlegten Proxy-Einstellungen. Will man, dass diese Einstellungen nicht durch den Benutzer deaktiviert werden können, so kann man ab Firefox 5 die entsprechenden Einstellungen in der globalen Datei /etc/firefox/syspref.js (oder /etc/firefox/pref/syspref.js; siehe auch Firefox/Einstellungen Sperren (Abschnitt „Globale-Konfiguration-ab-Firefox-5“)) mit Root-Rechten vornehmen:

lockPref("network.proxy.http", "PROXY_SERVER_IP_ODER_NAME");
lockPref("network.proxy.http_port", PROXY_SERVER_PORT);
lockPref("network.proxy.ssl", "PROXY_SERVER_IP_ODER_NAME");
lockPref("network.proxy.ssl_port", PROXY_SERVER_PORT);
lockPref("network.proxy.type", 1);
lockPref("network.proxy.no_proxies_on", "localhost, 127.0.0.1 ");
lockPref("network.proxy.share_proxy_settings", true);

Ob die Einstellungen erfolgreich übernommen worden sind, kann man überprüfen, in dem man "about:config" in die Adresszeile des Firefox eingibt und nach den genannten Einstellungen filtert.

Falls aus bestimmten Gründen die systemweiten Einstellungen nicht genutzt werden sollen, findet man die entsprechenden Parameter in den Einstellungen unter "Bearbeiten → Einstellungen → Erweitert → Netzwerk → Einstellungen...". Hier reicht die Angabe der Proxy-Adresse und des Ports. Benutzername und Passwort - falls erforderlich - dürfen nicht mit angegeben werden. Firefox stellt die Notwendigkeit dieser Daten beim ersten Zugriff auf den Proxy fest und bietet dann einen Dialog zur Eingabe an.

Firefox als Snap

Entsprechend von Mozilla werden nur zwei Dateien benötigt, um Firefox benutzerspezifisch anzupassen. Die erste Datei "autoconfig.js" befindet sich im Verzeichnis <Installations-Verzeichnis>/defaults/pref und enthält nur zwei Zeilen:

1
2
pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);

Die zweite dort referenzierten Datei "firefox.cfg" mit den Proxy-Einstellungen befindet sich in <Installations-Verzeichnis>/.

Mit Ubuntu 22.04 oder höher wird Firefox als Snap (siehe auch https://ubuntu.com/desktop/features) bereitgestellt. Ist man sich unsicher, ob Firefox als Snap auf dem lokalen System installiert wurde, so kann man dies im Konsolenfenster mit folgenden Befehlen überprüfen:

~$ which firefox
/snap/bin/firefox
or
~$ snap list
Name               Version          Rev    Tracking         Publisher   Notes
firefox            110.0-3          2356   latest/stable/
  mozilla    -
...
~$

Firefox snap ist nicht in der Lage aus Verzeichnissen wie /usr/lib/firefox zu lesen. Ebenso ist das Filesystem von Firefox snap nur lesbar. Ab der Version 108 von Firefox gibt es die Möglichkeit, benutzerspezifische Einstellungen unter /etc/firefox vorzunehmen. Diese Möglichkeit kann zur systemweite Einstellung eines Proxy genutzt werden. Folgende Anweisungen sind nötig.

$ cd /etc
$ sudo mkdir firefox  
$ cd /etc/firefox

Im Verzeichnis /etc/firefox ist die Datei "firefox.cfg" mit folgendem Inhalt zu erzeugen (Die erste Kommentarzeile ist dabei wichtig und sollte übernommen werden):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// IMPORTANT: Start your code on the 2nd line
pref("network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation", true);
pref("network.proxy.backup.ssl", "");
pref("network.proxy.backup.ssl_port", 0);
pref("network.proxy.http", "PROXY_SERVER_IP_ODER_NAME");
pref("network.proxy.http_port", PROXY_SERVER_PORT);
pref("network.proxy.share_proxy_settings", true);
pref("network.proxy.ssl", "PROXY_SERVER_IP_ODER_NAME");
pref("network.proxy.ssl_port", PROXY_SERVER_PORT);
pref("network.proxy.type", 1);
pref("network.trr.mode", 5);

Das Unterverzeichnis defaults/pref erzeugen:

$ sudo mkdir /etc/firefox/defaults
$ sudo mkdir /etc/firefox/defaults/pref
$ cd /etc/firefox/defaults/pref

und dort die Datei "autoconfig.js" mit folgenden Inhalt erstellen:

1
2
pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);

Chromium

Zumindest unter GNOME und KDE übernimmt Chromium bzw. Google Chrome automatisch die systemweiten Einstellungen. Sonderfälle wie Xfce und LXDE sind im Artikel Chromium (Abschnitt „Proxy-Nutzung“) beschrieben.

Subversion

Damit die Versionsverwaltung Subversion über einen Proxy kommuniziert, muss dies in der Datei ~/.subversion/servers (als Benutzer) oder /etc/subversion/servers (systemweit; nur mit Root-Rechten editierbar) angegeben werden:

[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
# http-proxy-host = defaultproxy.whatever.com
# http-proxy-port = 7000

http-proxy-host = WEB.PROXY.NAME
http-proxy-port = PORT

LibreOffice

Auch bei LibreOffice lässt sich neben der individuellen Einstellung (Extras → Optionen → LibreOffice → Internet → Proxy) die Konfiguration systemweit festlegen durch die Datei Inet.xcd in Programmordner/share/registry:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<?xml version="1.0"?>
<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry">
     
<oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Inet" oor:package="org.openoffice">
	<node oor:name="Settings">
		<prop oor:name="ooInetHTTPSProxyPort" oor:op="fuse" oor:finalized="true"><value>8123</value></prop>
		<prop oor:name="ooInetHTTPSProxyName" oor:op="fuse" oor:finalized="true"><value>127.0.0.1</value></prop>
		<prop oor:name="ooInetHTTPProxyPort"  oor:op="fuse" oor:finalized="true"><value>8123</value></prop>
		<prop oor:name="ooInetHTTPProxyName"  oor:op="fuse" oor:finalized="true"><value>127.0.0.1</value></prop>
		<prop oor:name="ooInetFTPProxyPort"   oor:op="fuse" oor:finalized="true"><value>8123</value></prop>
		<prop oor:name="ooInetFTPProxyName"   oor:op="fuse" oor:finalized="true"><value>127.0.0.1</value></prop>
		<prop oor:name="ooInetProxyType"      oor:op="fuse" oor:finalized="true"><value>2</value></prop>
		<prop oor:name="ooInetNoProxy"        oor:op="fuse" oor:finalized="true"><value>127.0.0.1;*.ratsgymnasium-pe.de</value></prop>
	</node>
</oor:component-data>
</oor:data>

Mit LibreOffice ist es aber nicht möglich, direkt einen Proxy mit Authentifizierung zu nutzen.

Lokaler Proxy als Client eines Proxies mit Authentifizierung

Manche Programme können keinen Proxy mit Authentifizierung nutzen, z.B. LibreOffice. Um dieses Problem zu umgehen, kann lokal ein kleiner Proxy eingerichtet werden. Anfragen können dann ohne Authentifizierung an den lokalen Proxy gestellt werden, der diese mit Authentifizierung an den eigentlichen Proxy weiterreicht.

Diese Revision wurde am 11. August 2023 16:20 von WindowsIsUnsafe erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Netzwerk, System, Server