Proxy Auto Konfiguration

Damit man die Einstellungen seines Proxy Servers nicht bei jedem Client händisch nachhalten muss, kann man die Einstellungen via Wpad-Datei automatisch verteilen.

Dazu ist ein Webserver notwendig, der die Datei bereit stellt.

Installation des Webservers:

apt-get install apache2

Anschließend muss eine Konfigurationsdatei erstellt werden, die dem Webserver sagt, wie er mit dem Konfigurationsskript umzugehen hat (/etc/apache2/conf.d/wpad.dat):

AddType application/x-ns-proxy-autoconfig .dat

Danach kann die Datei erstellt und auf die jeweiligen Gegebenheiten angepasst werden (/var/www/wpad.dat):

function FindProxyForURL(url, host)
{
$proxy = "PROXY proxyserver.example.local:8080";
// URLs within this network are accessed direct
if (isInNet(host, "192.168.42.0", "255.255.255.0")) {return "DIRECT";}
if (isInNet(host, "172.16.0.0", "255.255.0.0")) {return "DIRECT";}
if (isInNet(host, "127.0.0.0", "255.0.0.0")) {return "DIRECT";}
//Return proxy for EVERYTHING else
else return $proxy;
}

Apache Dienst neustarten.

Wpad DNS Eintrag

[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_alert type=”general” accent_color=”” background_color=”” border_size=”1px” icon=”fa-exclamation-triangle” box_shadow=”yes” animation_type=”0″ animation_direction=”down” animation_speed=”0.1″ animation_offset=”” class=”” id=””]Achtung: Nach dem Hinzufügen des DNS Eintrags wird der Proxy live geschaltet und von jedem Client angenommen![/fusion_alert]

Man erstellt dazu einen DNS Eintrag, welcher als CNAME wpad.example.local hat und auf squidproxy.example.local verweist.

Vorher sollte man aber einen Browser auf “Automatisches Konfigurationsskript” stellen und das Skript testen:

Verbindungs-Einstellungen[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Apache Verzeichnisschutz durch .htaccess Datei

Die Konfiguration des Apache Webservers kann man nicht nur in der zentralen Konfigurationsdatei und in den Dateien für virtuelle Hosts beeinflussen. Angaben, die in der dezentralen Datei gemacht werden, sind nur für das aktuelle Verzeichnis und all seinen Unterverzeichnissen gültig. Der Name dieser Datei, die in allen Verzeichnissen gesucht wird, lautet meist .htaccess. Der name der zu suchenden Datei kann aber mit der Direktive AccessFileName geändert werden.

Ändert man Einstellungen des Webservers über diese Datei, muss dieser nicht neu gestartet werden. Die Änderungen werden beim nächsten Aufruf einer Seite wirksam.

Seitenzugriffe sperren

Um z.B. den Zugriff auf eine bestimmte Seite durch eine Nutzername/Passwort Abfragen zu schützen, ist eine .htaccess Datei im betreffenden Verzeichnis anzulegen. Dieser Inhalt sollte enthalten sein:

[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /Pfad/zur/.htpasswd
Require valid-user

Zeile 3 gibt dabei den Pfad zur Passwortdatei an, welche den abzufragenden Nutzernamen und das Passwort enthält.

Passwortdatei anlegen

Um die Passwortdatei auf der Commandozeile selbst anlegen zu können, ist das Paket “apache2-utils” nötig.
Durch Aufruf von

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]

htpasswd -c /Pfad/zur/.htpasswd username

wird die Datei erstellt und der User hinterlegt, nachdem eine Passworteingabe erfolgte.

User hinzufügen oder bestehendes Passwort ändern

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]

htpasswd /Pfad/zur/.htpasswd username

Benutzer entfernen

[/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”]

htpasswd -D /Pfad/zur/.htpasswd username

Wenn man die Passwortdatei erstellt und diese zusammen mit der Datei .htaccess in das Verzeichnis kopiert hat, kann man das geschützte Verzeichnis im Browser aufrufen und sollte zur Eingabe von Benutzername und Kennwort aufgefordert werden.

htpasswd[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Apache umleiten des Hauptordners, nicht der Unterordner

Soll der Apache Webserver nur die Hauptdomäne bzw. Webseite umleiten, aber nicht die angesprochenen Unterverzeichnisse, kann das über folgende Rewrite-Regel realisiert werden:

RewriteEngine On
RewriteCond %{HTTP_HOST} example.com$ [NC]
RewriteRule ^/?$ http://example2.com/ [L,R=301]

D.h., dass example.com umgeleitet wird auf example2.com. Nicht aber example.com/irgendwas.