Apache httpd hört nicht auf, umgekehrte DNS-Anforderungen für die IP-Adressen von Clients auszuführen

9

Offensichtlich führt meine Apache-httpd-Instanz Reverse-DNS-Suchen (RDNS, geben Sie mir den Hostnamen für diese IP-Adresse) für die IP-Adresse jeder eingehenden Clientverbindung durch. Das ist schlecht. Zumal manchmal die Auflösung mit einem fehlenden PTR-Datensatz fehlschlägt - nach 28 Sekunden .

Diagnose: Ich %Dhabe meinen "kombinierten" Protokollstil erweitert und die Antwortzeiten folgendermaßen betrachtet: Klar <1 für alle, die mit ihrem Hostnamen protokolliert werden, und 20+ für diejenigen, die ihre IP protokolliert bekommen.

Folgendes habe ich versucht:

  • Schalten Sie die server-statusErweiterung aus.
  • Überprüfen Sie, ob dies HostnameLookups Offin der Konfiguration enthalten ist.
  • Stellen Sie sicher, dass mod_accessin einer Allow/ Deny-Regel kein Hostname angegeben ist .
  • Überprüfen Sie, ob Reverse-Proxy-Server denselben Regeln folgen.

Was habe ich vermisst?

Paul
quelle
Apache nach den Änderungen neu starten?
Unfundednut
Ja, ich habe es getan, aber es force-reloadwar genug.
Paul

Antworten:

18

Es scheint, dass die Standardinstallation von Ubuntu 8.04 Apache httpd mit einer LogFormatbeginnt, die mit beginnt %hund die RDNS-Suche einer Client-IP durchführt. Warum Oh warum?? Durch Ersetzen durch %a(Remote-IP-Adresse, siehe benutzerdefinierte Protokollformate ) wird dieses Problem um ca. 90%. Einige bleiben ...

Paul
quelle
3

Haben Sie überprüft HostnameLookups, dass in keiner anderen Richtlinie festgelegt ist? Haben Sie das Modul mod_authz_host aktiviert?

Christian
quelle
Ja, ich grep -rihabe alles hinter mich gebracht . mod_authz_hostist aktiv und in den Allow / Deny-Regeln werden keine Hostnamen verwendet. Jetzt nicht mal mit localhost.
Paul
0

Interessanterweise bin ich gerade auf einem meiner Server auf ein ähnliches Problem gestoßen. Das Problem begann ungefähr zu der Zeit, als ich ein Befehlszeilen-PHP-Skript ausführte, das die Protokolldateien nach den wichtigsten IP-Adressen durchsuchte. Dann ließ ich PHP für jede IP-Adresse eine umgekehrte DNS-Suche durchführen. Ungefähr zu dem Zeitpunkt, als ich dies tat, bemerkte ich, dass Apache plötzlich anfing, Hostnamen anstelle von IP-Adressen in die Protokolle zu kopieren. Der Wechsel von% h zu% a und der Neustart von Apache scheinen das Problem behoben zu haben. HostnameLookups ist auf Aus gesetzt. Ich vermute, dass Apache nur lokal zwischengespeicherte Ergebnisse verwendet, wenn zufällig eine umgekehrte Suche nach der IP im Cache durchgeführt wird. Könnte sein? Entweder das oder das ist ein Fehler im Server.


quelle