[[Vorlage(Ausbaufähig, "Mitarbeiter am Artikel gesucht: Der Artikel behandelt verschiedene Derivate und sollte aufgeteilt werden. Details gibt es in der Diskussion zum Artikel.")]] {{{#!vorlage Wissen [:Editor: Einen Texteditor öffnen] [:sudo: Root-Rechte erlangen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./proxy_logo.png, align=left)]] 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#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 [wikipedia:Request_for_Comments:RFC]-Standards verletzt. Diese Art des Proxyservers kann auch als lokaler Proxyserver Anwendung finden. = Systemaktualisierungen = {{{#!vorlage 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 Links]): * [:Synaptic:] * [:APT:] (Konfiguration über '''/etc/apt/apt.conf''') 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: {{{#!code c 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): {{{#!code c Acquire::http::proxy "http://proxy-IP:port/"; Acquire::https::proxy "https://proxy-IP:port/"; Acquire::ftp::proxy "ftp://proxy-IP:port/"; }}} Alternativ mit Authentifizierung: {{{#!code c Acquire::http::proxy "http://user:kennwort@proxy-IP:port/"; Acquire::https::proxy "https://user:kennwort@proxy-IP:port/"; }}} = Unity und GNOME 3= [[Bild(./unity_proxy.png, 250, right, title="Proxyeinstellungen Unity")]] Ü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 = [[Bild(./kde_proxy.png, 250, right)]] 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 [#Alternatives-Verfahren 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: {{{#!vorlage Tabelle KDE-Proxyeinstellungen +++ Feld Wert +++ HTTP `http_proxy` +++ HTTPS `https_proxy` +++ FTP `ftp_proxy` }}} [[Anker(Alternativ)]] = 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#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 [https://support.mozilla.org/de/kb/firefox-mit-autoconfig-anpassen Mozilla] werden nur zwei Dateien benötigt, um Firefox benutzerspezifisch anzupassen. Die erste Datei "autoconfig.js" befindet sich im Verzeichnis /defaults/pref und enthält nur zwei Zeilen: {{{#!code c 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 /. 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): {{{#!code c // 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: {{{#!code c 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#Proxy-Nutzung:] beschrieben. == Subversion == Damit die Versionsverwaltung [:Archiv/Subversion: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: {{{#!code xml 8123 127.0.0.1 8123 127.0.0.1 8123 127.0.0.1 2 127.0.0.1;*.ratsgymnasium-pe.de }}} 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. = Links = * [bug:56655:Bugreport zur Proxy-Problematik mit Synaptic] {en} * [bug:48329:Bugreport zur Proxy-Problematik allgemein] {en} * [bug:800093:Bugreport zu aptdaemon ignoriert Proxykonfiguration] {en} # tag: Netzwerk, System, Server