# Apache-Log: Client-IP wird nicht richtig festgestellt

## ChrisM87

Hallo,

neuerdings finde ich folgendes häufiger in meinem Apache-Log:

127.0.0.1 [15/Sep/2007:15:41:41 +0200] "GET /" 400 540 "-" "-"

Das kommt mehrmals am Tag und öfters auch ein paar Mal hintereinander.

Jetzt bin ich natürlich auf der Suche, woher die Anfragen kommen. Localhost ist auf jeden Fall nicht, das habe ich auch schon mit tcpdump kontrolliert (dank SSL-Verschlüsselung kann ich aber leider nicht reinschauen). In der Log-Direktive für den Apache steht %a, was eigentlich genau die Client-IP loggen soll.

Wie kann ich hier rausbekommen, woher die Anfragen wirklich kommen (ohne jedes Mal tcpdump zu bemühen) oder hat jemand eine Idee, wie es zu diesem seltsamen Verhalten kommt?

ChrisM

----------

## ChrisM87

Hallo,

okay, mittlerweile bin ich soweit, dass ich einsehe, dass die Anfragen vielleicht doch von localhost kommen.

Jetzt muss ich allerdings noch rausfinden, woher. Sie kommen ohne Zusammenhang im Log (also kein Web-Script, das irgendwie versucht, Content dämlicherweise über HTTP nachzuladen) und auch nicht regelmäßig (kein Cron). Und natürlich auch nicht in kausalem Zusammenhang mit dem Ausführen irgendwelcher Befehle.

Was ich also bräuchte, wäre einfach ein tcpdump, das mir wie netstat mit -p bei jedem Paket noch das lokale Programm dazu angibt und das ich einfach mal einen Tag in einem Screen laufen lassen kann und alles auf Port 443 und Interface lo mitschneiden soll.

Gibt es sowas?

ChrisM

----------

## CommanderHammilton

welche Version vom apache ist bei Dir am rennen ?  :Shocked: 

----------

## ChrisM87

Hi,

bei mir läuft der Apache 2.2.6.

Aber der Apache ist ja- hoffe/glaube ich- doch nicht das Problem. Ich suche einfach ein Tool, das alle Pakete abfängt (wie tcpdump), aber die PID oder den Prozessnamen dazu drucken kann. Das kann doch nicht so schwer sein...

ChrisM

----------

## ChrisM87

Hi,

okay, einen Übeltäter habe ich jetzt wohl schon: Den Graceful Restart, den der Logrorate z.B. über Cron macht.

Erst dachte ich, das Initscript macht dort irgendwelche krummen Sachen, aber warum erzeugt auch der Befehl

start-stop-daemon --stop --signal USR1 --exec /usr/sbin/apache2 --pidfile /var/run/apache2.pid

das hier im Log:

 *Quote:*   

> 443 127.0.0.1 [17/Sep/2007:23:25:12 +0200] "GET /" 400 540 "-" "-"
> 
> 443 127.0.0.1 [17/Sep/2007:23:25:12 +0200] "GET /" 400 540 "-" "-"
> 
> 443 127.0.0.1 [17/Sep/2007:23:25:12 +0200] "GET /" 400 540 "-" "-"
> ...

 

Die Anfragen kommen wie man sieht nur auf dem SSL-Port, obwohl der Server durchaus auch Plain HTTP auf Port 80 spricht.

Gibt's für die Meldungen eine Erklärung?

ChrisM

----------

## ChrisM87

Hi,

okay, noch einfacheres Beispiel

kill -SIGUSR1 23742 (23742 ist die PID des Apache-Masterprozesses)

produziert:

127.0.0.1 - - [19/Sep/2007:00:01:41 +0200] "GET / HTTP/1.0" 200 430

127.0.0.1 - - [19/Sep/2007:00:01:43 +0200] "GET / HTTP/1.0" 200 430

127.0.0.1 - - [19/Sep/2007:00:01:43 +0200] "GET / HTTP/1.0" 200 430

127.0.0.1 - - [19/Sep/2007:00:01:43 +0200] "GET / HTTP/1.0" 200 430

127.0.0.1 - - [19/Sep/2007:00:01:43 +0200] "GET / HTTP/1.0" 200 430

Ich hab sowas noch auf keinem anderen System erlebt, kann es aber jetzt auf allen drei Gentoo-Systemen reproduzieren. Ist das tatsächlich normal und mir vorher nie aufgefallen (was es hätte müssen, da es in der Statistik doch raussticht, wenn es an die IP-Auswertung geht und Apache-Logs täglich rotiert werden) oder woran könnte das liegen?

ChrisM

----------

