IPs bei bestimmten Anfragen sperren

Alles, was den Apache betrifft, kann hier besprochen werden.

IPs bei bestimmten Anfragen sperren

Postby sh106 » 30. January 2006 23:39

Hallo!

Meinen Server erreichen immer wieder Anfragen nach einem bestimmten Schema, meist 10 bis 15 im Sekundentakt und von der gleichen IP aus, die auf nicht vorhandene Dateien lauten und offensichtlich Sicherheitslücken ausnutzen wollen.

Kann man sowas auf einfache, aber effektive Art und Weise blocken?

Ok, statisch wäre das machbar, indem ich alle Schlüsselworte (awstats.pl, xmlrpc.php und Konsorten) aufliste, die in den Anfragen vorkommen, und anhand dieser Liste blocke.
Aber ist es auch möglich, nach solch einer Anfrage alle Anfragen von der entsprechenden IP oder Domain für fünf Minuten oder so zu blocken? Das hätte den Vorteil, daß man die Schlüsselbegriffe genauer formulieren kann und trotzdem noch sehr effektiv Exploits verhindert. Daneben würden dann auch neue Exploits geblockt, für die noch keine Schlüsselworte eingetragen sind, solange vorher eine Anfrage kommt, die den Block auslöst.

Also z.B. folgende Anfrage:
Code: Select all
xyz.domain.tld - "GET /awstats/awstats.pl?configdir=[...usw...]"

(das ist in den meisten Fällen die erste von den 10-15 Anfragen) soll zu einem zeitweiligen Block von 'xyz.domain.tld' führen.

Bisher sind in der httpd.conf einige Blocks gegen Bots eingetragen, die über das Modul setenvif laufen. Gibt es dort oder z.B. beim Rewrite-Modul entsprechende Möglichkeiten?

Grüße aus Norddeutschland - sh106
sh106
 

Postby KingCrunch » 31. January 2006 11:16

Temporär blocken ist mir derzeit nicht bekannt, ob das direkt aus dem Apache heraus funktioniert. Kannst aber ber mod_rewrite die IP komplett für den Zugriff auf alle oder die genannten Dateien blocken. Das entspräche dann einer permanenten Umleitung auf "Forbidden".
Irgendwie so sähe das dann aus, wäre cool, wenn Wiedmann oder so da nochma drüber fliegen könnte, ansonsten musste auch selbst ma das Manual konsultieren ;9
Code: Select all
RewriteCond ^%{REMOTE_ADDR} ^127.0.0.1
RewriteRule ^.*$ - [F]

So oder so ähnlich. Das geht natürlich noch beliebig kompliziert. Du kannst zum Beispiel auf den Zugriff auf den genannten Datei immer sperren, wenn alle (!) versuchen auf die Dateien zuzugreifen, ohne vorher auf deiner Seite gewesen zu sein
Code: Select all
RewriteCond ^4{HTTP_REFERER} ^http://deineurl.de
RewriteRule ^/(dateien)$ - [F]

Wie gesagt: So oder so ähnlich, am besten ma selbst drüber gucken, was alles möglich ist

Eine Anlaufstelle: ModRewrite.info
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby sh106 » 08. February 2006 21:30

Danke schon mal für die Antwort!

mod_rewrite werde ich mir in Bälde noch mal genauer zu Gemüte führen, vielleicht kann ich die gewünschten Blocks damit noch etwas einfacher / effektiver implementieren als bisher.

Grüße - sh106
sh106
 

Postby copclerk » 04. November 2006 13:58

hab zu diesem thema noch ne frage.

kann man bestimmte get anfragen nicht gleich abweisen ohne modrewrite einzusetzten?

ich beabsichtige bestimmte wörter schon in der get abfrage zu blockieren habe aber probleme mit meinem mod-rewrite.

für eine hilfe währe ich dankbar.

-------------------------

Nach einem Jahr gebe ich mir selbst die Antwort:
Ja, es ist z.B. mit der Web Application Firewall mod_security2 für Apache zu lösen, fertige regel werden sogar mitgeliefert.
copclerk
 
Posts: 10
Joined: 24. October 2006 08:59


Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests