PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu Rewrite mit htaccess



AndreasMeier
02.01.07, 12:31
Hallo zusammen,

ich hab in einem Logfile auf dem Webserver etwas gefunden, was ich komisch finde und blockieren möchte.

Und zwar versucht jemand, per PycURL etwas auf der Seite zu machen.

Die Einträge im Logfile schauen etwa so aus:
211.205.53.65 - - [12/Dec/2006:11:36:23 +0100] "GET /index.php HTTP/1.1" 200 52823 "http://www.cricketgeek.com/" "PycURL/7.15.5"

Die IP-Adresse ist irgendwo in Korea und natürlich auf der DNS-Blacklist.

Meine Frage ist nun, ob ich eine Möglichkeit habe, das ganze anhand der Browserkennung "PycURL/7.15.5" zu blockieren.

Meine htaccess dürfte jawohl der richtige Ansatzpunkt für so etwas sein, ebenso eine RewriteRule.
Meine htaccess schaut im Moment schon so aus:


DirectoryIndex
Order allow,deny
Allow from all
Options -Indexes

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301]


Was ich nun suche, ist eine Erweiterung der bestehenden Rewrite-Geschichte, die dann den UserAgent abfrägt und irgendwie umleitet oder blockiert.

Durch (nur ein Beispiel aus Google genommen):


RewriteCond %{HTTP_USER_AGENT} EmailSiphon
RewriteRule .* - [F,L]


müsste ich doch weiterkommen.

Das Problem, was ich noch habe, ist, wie die erste Zeile korrekt gestaltet sein muss ?
Muß die dann lauten:
a) RewriteCond %{HTTP_USER_AGENT} PycURL
b) RewriteCond %{HTTP_USER_AGENT} PycURL/7.15.5
c) RewriteCond %{HTTP_USER_AGENT} "PycURL/7.15.5"

Zweite Frage ist, was die Rule im Beispiel dann macht, ebenso die Schalter F und L.

Dritte Frage wäre dann noch, wie ich eine neue Regel an die schon bestehende anschliessen kann, ohne das die erste nicht genommen wird.

Danke für eure Hilfe.
Gruß
Andreas

michael.sprick
02.01.07, 12:45
Hi,

also eine Rewrite Regel ist sicher der richtige Ansatz dafür.

Sie könnte zum Beispiel so aussehen:



RewriteCond %{HTTP_USER_AGENT} ^PycURL.*
RewriteRule .* - [F,L]


Die Regel greift, wenn der übermittelte Useragent mit "PycURL" beginnt. Die Regel selber bewirkt, dass Anfragen auf beliebige Dateien mit Status 403 (Forbidden) beantwortet werden. Das »L« steht für Last Rule - das bedeutet, es werden keine nachfolgenden Regeln abgearbeitet.

hth, michael

EDIT: PycURL ist übrigens nur ein Pythoninterface zu cURL. Vermutlich holt also jemand per Python Skript Daten von Deiner Webseite ab (Nachrichten? Downloads?). Das muss ja nicht zwanghaft was schlimmes sein.

AndreasMeier
02.01.07, 16:09
Hallo Michael,

danke für die Antwort.

Das heißt, ich könnte die neue Rewrite Rule so ins bestehende einbauen ??


DirectoryIndex
Order allow,deny
Allow from all
Options -Indexes

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301]

RewriteCond %{HTTP_USER_AGENT} ^PycURL.*
RewriteRule .* - [F,L]


Dadurch das die PycURL-Regel als Letztes steht, schliesst das "L" in der Rule das ganze ab und keine weiteren Regeln werden bearbeitet.



EDIT: PycURL ist übrigens nur ein Pythoninterface zu cURL. Vermutlich holt also jemand per Python Skript Daten von Deiner Webseite ab (Nachrichten? Downloads?). Das muss ja nicht zwanghaft was schlimmes sein.

Ist mir bekannt, dass das mit cURL zusammenhängt - auch, dass das nicht unbedingt was schlimmes ist. Ich hab aber nix, was auf Nachrichten oder Downloads gehen kann. Von daher - weg damit.
Was mich in meiner Meinung bestärkt, ist die Tatsache, dass alle PycURL-Kennungen von IP-Adressen kommen, die irgendwie auf einer DNS-Blacklist stehen.

Gruß
Andreas

marce
02.01.07, 16:14
vermutlich ein normaler Bot, der nach installierten Webanwendungen mit Schwachstellen sucht...

Jinto
02.01.07, 16:22
Ich sehe den Punkt nicht, eine normale Anwendungen zu blockieren. Wäre es nicht (etwas) sinnvoller nur diese eine IP zu blockieren?

Wobei ich ehlich gesagt weder ein Fan von dem einen, noch von dem andern bin. Solange man keinen Fehler in seinem Programm hat ist es eh egal. Falls doch, sollte man eher die Anwendung reparieren. (Meine Meinung).

AndreasMeier
02.01.07, 17:42
Ich kann nicht nur eine IP blockieren, da ich diverse PycURL-Anfragen von mehreren IP-Adressen hatte/hab.
Alle IP-Adressen waren auf einer DNS-Blacklist, die meisten aus Korea.
Als Referer wurden irgendwelche URLs hergenommen.

Ich sehe das nicht als normale Anwendung. Ebenso wenig bin ich ein Freund davon, dass irgendjemand aus Korea auf Webservern nach Schwachstellen sucht (unabhängig davon, ob welche existieren).