Ich habe einen Server mit Apache und ich habe vor kurzem mod_security2 installiert, weil ich von diesem oft angegriffen werde:
Meine Apache-Version ist Apache v2.2.3 und ich verwende mod_security2.c
Dies waren die Einträge aus dem Fehlerprotokoll:
[Wed Mar 24 02:35:41 2010] [error]
[client 88.191.109.38] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Wed Mar 24 02:47:31 2010] [error]
[client 202.75.211.90] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Wed Mar 24 02:47:49 2010] [error]
[client 95.228.153.177] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Wed Mar 24 02:48:03 2010] [error]
[client 88.191.109.38] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
Hier sind die Fehler aus dem access_log:
202.75.211.90 - -
[29/Mar/2010:10:43:15 +0200]
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - -
[29/Mar/2010:11:40:41 +0200]
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - -
[29/Mar/2010:12:37:19 +0200]
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
Ich habe versucht, mod_security2 folgendermaßen zu konfigurieren:
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecFilterSelective REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"
Die Sache in mod_security2 ist, dass SecFilterSelective nicht verwendet werden kann, es gibt mir Fehler. Stattdessen verwende ich eine Regel wie diese:
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecRule REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"
Auch das geht nicht. Ich weiß nicht mehr, was ich tun soll. Hat jemand einen Rat?
Update 1
Ich sehe, dass niemand dieses Problem mit mod_security lösen kann. Bisher scheint die Verwendung von IP-Tabellen die beste Option zu sein, aber ich denke, die Datei wird extrem groß, da sich die IP-Adresse mehrmals am Tag ändert.
Ich habe mir 2 andere Lösungen ausgedacht, kann sich jemand dazu äußern, ob man gut ist oder nicht.
Die erste Lösung, die mir in den Sinn kommt, ist das Ausschließen dieser Angriffe aus meinen Apache-Fehlerprotokollen. Dadurch kann ich andere dringende Fehler leichter erkennen, wenn sie auftreten, und muss kein langes Protokoll durchspucken.
Die zweite Option ist meiner Meinung nach besser und blockiert Hosts, die nicht in der richtigen Weise gesendet werden. In diesem Beispiel wird der w00tw00t-Angriff ohne Hostnamen gesendet, sodass ich denke, dass ich die Hosts blockieren kann, die nicht in der richtigen Form vorliegen.
Update 2
Nachdem ich die Antworten durchgesehen hatte, kam ich zu den folgenden Schlussfolgerungen.
Benutzerdefinierte Protokollierung für Apache zu haben, wird einige unnötige Ressourcen in Anspruch nehmen, und wenn es wirklich ein Problem gibt, möchten Sie wahrscheinlich das vollständige Protokoll anzeigen, ohne dass etwas fehlt.
Es ist besser, die Treffer einfach zu ignorieren und sich auf eine bessere Analyse Ihrer Fehlerprotokolle zu konzentrieren. Verwenden Sie dazu Filter für Ihre Protokolle.
Letzte Gedanken zum Thema
Der oben erwähnte Angriff wird Ihren Computer nicht erreichen, wenn Sie zumindest ein aktuelles System haben, sodass Sie sich im Grunde keine Sorgen machen müssen.
Es kann schwierig sein, alle falschen Angriffe nach einer Weile aus den echten herauszufiltern, da sowohl die Fehlerprotokolle als auch die Zugriffsprotokolle extrem umfangreich werden.
Wenn Sie verhindern, dass dies in irgendeiner Weise geschieht, werden Sie Ressourcen kosten, und es wird empfohlen, Ihre Ressourcen nicht für unwichtige Dinge zu verschwenden.
Die Lösung, die ich jetzt benutze, ist Linux Logwatch . Es sendet mir Zusammenfassungen der Protokolle, die gefiltert und gruppiert werden. Auf diese Weise können Sie das Wichtige leicht vom Unwichtigen trennen.
Vielen Dank für die Hilfe, und ich hoffe, dieser Beitrag kann auch jemand anderem weiterhelfen.