Hallo ihr alle,
ich betreibe schon seit einigen Jahren mehrere Server, auf denen der Apache problelos läuft, aber vor zwei Wochen hat sich auf einem der Server mit apache 2.2.15 unter Linux plötzlich etwas ereignet, was für mich bisher völlig unerklärlich ist.
Es passiert folgendes: Fordert ein Klient eine Datei an, so werden ab einer willkürlichen Stelle in der Datei eine Vielzahl von ASCII-Nullen in den Datenfluss eingebaut. Dann geht die Datei normal weiter, bis dann wieder einige tausend ASCII-Nullen erscheinen. Aufgefallen ist es zunächst dadurch, dass PDF-Dateien nicht dargestellt werden konnten, dann auch Bilddateien.
Ich habe diesen Sachverhalt getestet, indem ich eine Datei mit vi erzeugt habe, die nur die Ziffernfolge 01234567890123456789... enthielt (natürlich mit Zeilenstruktur). Nach "lynx localhost/datei.pdf" (.pds, damit lynx fragt, ob ein Download stattfinden soll), sieht die heruntergeladene Datei wie folgt aus: Von Zeile 1 bis Zeile 407 wie im Original, die Zeile 408 beginnt noch mit 012345678 und dann kommen vielleicht 20000 ASCII-Nullen (^@ im vi, \0 im od). Dann geht es regulär weiter bis zur Zeile 865, dann kommen wieder vielen Nullen, dann geht es wieder regulär weiter, ab Zeile 2341 wieder Nullen usw. Interessant ist, dass sich die Nullen *dazwischen* schieben. Hört die Zahlenfolge also z.B. bei 7 auf, dann geht sie nach den Nullen bei 8 weiter.
Lädt man die Datei mehrmals herunter, so hat sie stets eine andere Länge. Da ich die Datei zu Testzwecken auf dem lokalen Rechner herunterlade, Server und Klient also derselbe Rechner sind, scheiden Probleme mit Netzwerkkarte, Router oder Switch aus.
Und zuletzt noch eine Beobachtung: Stellen in httpd in httpd.conf mit "Listen 81" auf Port 81 ein, so ist der Datenverkehr völlig problemlos. Die dann mit "lynx localhost:81/datei.pdf" heruntergeladene Datei ist völlig fehlerfrei.
Ich habe schon mit chkrootkit und anderen Tools gesucht. chkrootkit meldet zwei Prozesse, die mit readdir nicht angezeigt werden können. Die beiden Prozessnummern finden sich aber nicht unter /proc, also vielleicht falscher Alarm?
Wer kann weiterhelfen?
Viele Grüße
Ralph