So konfigurieren Sie die IIS7-Protokollierung optimal, um den Header „HTTP_X_FORWARDED_FOR“ zu erfassen

So konfigurieren Sie die IIS7-Protokollierung optimal, um den Header „HTTP_X_FORWARDED_FOR“ zu erfassen

Wir haben IIS7-Server, die hinter einem Nginx-Reverse-Proxy sitzen.

Der Reverse-Proxy sendet den Standard-Header „HTTP_X_FORWARDED_FOR“ mit der IP-Adresse des Besuchers, aber die IIS7-Protokollierung protokolliert nur die IP-Adresse des Nginx-Servers (was sinnvoll ist, aber nicht das, was ich will).

Wie kann ich IIS7 anweisen, stattdessen (oder zusätzlich) den Header „HTTP_X_FORWARDED_FOR“ zu protokollieren?

(Hinweis: Ich bin ein Linux-Administrator, kein Windows-Administrator, daher bin ich für ausführliche Anweisungen und Links sehr dankbar.)

Antwort1

Dies ist nicht in IIS integriert, aber Sie können ein Modul installieren, das diese Funktion ausführt. Es heißt ARR-Helper, funktioniert aber mit jedem Proxy vor IIS:

http://blogs.iis.net/anilr/archive/2009/03/03/client-ip-not-logged-on-content-server-when-using-arr.aspx

Antwort2

Es gibt jetzt ein IIS7-Modul, mit dem Sie benutzerdefinierte Header protokollieren können.

Wie man: http://learn.iis.net/page.aspx/579/advanced-logging-for-iis-70---custom-logging/

Antwort3

Obwohl die Frage mit „iis-7“ gekennzeichnet ist, ist dies der oberste Treffer bei der Suche nach X-Forwarded-For und IIS. Daher dachte ich, ich mache weiter und stelle diese Informationen für IIS 8.5 bereit.

IIS 8.5 und höher

IIS 8.5 führte dieErweiterte ProtokollierungFunktion, mit der der Administrator problemlos HTTP-Anforderungsheader wie X-Forwarded-For protokollieren kann. Diese Antwort wurde von der verlinkten Seite übernommen.

  1. OffenIIS-Manager.

  2. Wählen Sie die Site oder den Server imAnschlüsseund doppelklicken Sie dann aufProtokollierung. Beachten Sie, dass die erweiterte Protokollierung nur für die Protokollierung auf Site-Ebene verfügbar ist. Wenn Sie den Server imAnschlüsseund dann dieBenutzerdefinierte FelderAbschnitt desW3C-ProtokollierungsfelderDer Dialog ist deaktiviert.

  3. ImFormatFeld unterLogdatei, wählenW3Cund dann aufFelder auswählen....

  4. ImW3C-ProtokollierungsfelderKlicken Sie im DialogfeldFeld hinzufügen.... Beachten Sie, dass die erweiterte Protokollierung nur für die Protokollierung auf Site-Ebene verfügbar ist. Wenn Sie den Server in derAnschlüsseund dannFeld hinzufügen...ist behindert.

  5. ImBenutzerdefiniertes Feld hinzufügenGeben Sie im DialogfeldFeldnameum beispielsweise c-ip-originaldas benutzerdefinierte Feld in der Protokolldatei zu identifizieren. Bitte beachten Sie, dass der Feldname keine Leerzeichen enthalten darf.

  6. WählenAnforderungsheaderimQuelle TypListe.

  7. Geben Sie X-FORWARDED-FOReinQuelle.

  8. KlickenOK.

  9. KlickenOK.

  10. KlickenAnwendenimAktionen, um die neue Konfiguration anzuwenden.

Sobald die benutzerdefinierten Felder konfiguriert wurden, erstellt IIS neue Textprotokolldateien mit dem Zusatz „_x“ an den Dateinamen, um anzuzeigen, dass die Datei benutzerdefinierte Felder enthält.

Beachten Sie, dass die Gesamtgröße der aus allen benutzerdefinierten Feldern erfassten Daten 65.536 Byte nicht überschreiten darf. Wenn die Gesamtgröße 65.536 Byte überschreitet, kürzt IIS die Daten.

verwandte Informationen