Client IP-Adressen hinter Reverse-Proxy durchreichen (X-Forwarded-For) mit Apache-Webserver

Aus Twilight-Networks Wiki
Wechseln zu:Navigation, Suche

Vorwort

Diese Dokumentation beschreibt den Installationsvorgang von Apache-Modul mod_remoteip und dessen Einrichtung.

Bitte vergewissern Sie sich, dass Ihr System über die nötigen Voraussetzungen verfügt, wie in der Infobox beschrieben. Weiterhin sind Grundkenntnisse im Umgang mit Linux erforderlich, da die Vorgehensweise, wie sie hier beschrieben ist, in manchen Teilen abweichen kann. Kein System ist wie das Andere. Die Dokumentation wurde sorgfältig von mir geprüft. Dennoch kann ich keinerlei Haftung für Schäden an Ihrem System oder eine Gewährleistung übernehmen. Bitte verwenden Sie diese Dokumentation auf eigene Gefahr.


Client IP-Adressen hinter Reverse-Proxy durchreichen (X-Forwarded-For) mit Apache-Webserver
Stand: 01/2021


480px-Apache HTTP server logo (2016).svg.png


Verwendete Software:


Voraussetzungen:

  • Apache-Webserver (fertig eingerichtet)


Weitere, empfohlene Dokumentationen:





















Was soll erreicht werden?

Wird ein Webserver hinter einem Reverse-Proxy oder Load-Balancer betrieben, werden nicht die IP-Adressen der tatsächlichen Clients protokolliert, sondern die des Reverse-Proxys bzw. Load-Balancers. Abhilfe schafft hier das HTTP-Header-Feld X-Forwarded-For. Es wird dazu verwendet die IP-Adresse des tatsächlichen Clients zu identifizieren und zwar unabhängig davon, ob die Verbindung über einen Reverse-Proxy oder Load-Balancer hergestellt wird.

Diese Dokumentation beschreibt die Einrichtung des Apache-WebServers, entsprechend des oben beschriebenen Soll-Zustands.


Server vorbereiten

Root-Rechte einräumen

Während der gesamten Dokumentation werden Root-Rechte benötigt. Um auf das Voranstellen von sudo zu verzichten, verschaffen Sie sich für die gesamte Sitzung erhöhte Rechte mit:

# sudo -i



Apache konfigurieren

Modul mod_remoteip aktivieren und einrichten

Aktivieren Sie das Modul mod_remoteip:

# a2enmod remoteip


Erstellen Sie eine neue Datei remoteip.conf mit folgendem Inhalt.
Ersetzen Sie 192.0.2.42 durch die IP-Adresse Ihres Reverse-Proxys bzw. Load-Balancers.

# nano /etc/apache2/conf-available/remoteip.conf
remoteip.conf
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 192.0.2.42


Der Parameter RemoteIPTrustedProxy berücksichtigt nur IP-Adressen aus dem öffentlichen Adressraum.

Sollen zusätzlich auch lokale IP-Adressen berücksichtigt werden, verwenden Sie stattdessen den Paramaeter RemoteIPInternalProxy.

remoteip.conf
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 192.0.2.42



Aktivieren Sie die Konfiguration:

# a2enconf remoteip



Log-Format auf X-Forward-For anpassen

Editieren Sie die Datei apache.conf und ändern Sie folgende Parameter:

# nano /etc/apache2/apache2.conf
Anzupassende Parameter:
# apache2.conf
[...]
#LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
[...]



Apache neustarten

Starten Sie den Dienst apache2 neu, damit die Konfiguration angewendet wird:

# service apache2 restart