Did You Know?
Did You Know (by GMVolt)
Es gibt ein paar unbelehrbare, die der Meinung sind, dass man Dateien – insbesondere Bilder – von anderen Servern einfach so in die eigene Webseite “reinladen” kann. Ist ja technisch kein Problem – sogar gewollt. Von der rechtlichen Fragestellung mal ganz abgesehen sieht es aber so aus, dass derjenige, der die Dateien auf seinem Webserver liegen hat, den Traffic bezahlen muss, den der verursacht, der die Bilder in seiner Webseite verwendet. Von der Rechenleistung und der Netzwerkbandbreite mal ganz zu schweigen.
Was kann man dagegen tun?
Erstens kann man natürlich denjenigen Kontaktieren, der die Daten verwendet. Der ist oft aber gar nicht aufzuspüren.
An dem Punkt helfen dann technische Maßnahmen. So weit auf dem Webserver mod_rewrite installiert ist reichen zwei einfache Zeilen in der .htaccess.
Da die Problemkinder oft Grafiken sind, gibt es eine wirksame, eigentlich ganz unterhaltsame Option: Statt der angeforderten Grafik verschickt man eine andere, riesig große Grafik in grausamen Farben. Wenn man die einfarbig hält, dann bleibt die Dateigröße auch bei einer hohen Pixelzahl schön klein – in der Regel wesentlich kleiner als die zu ersetzende Datei. Und wenn alles gut läuft, dann will die Ersatzgrafik sowieso niemand sehen, also wird sie auch nicht so oft abgerufen
Also: Datei hochladen und folgende Zeilen in die .htaccess:
RewriteCond %{HTTP_REFERER} bandbreiteklauer\.com [OR,NC]
RewriteCond %{HTTP_REFERER} beepworld\.de [OR,NC]
RewriteCond %{HTTP_REFERER} facebook\.com [NC]
RewriteRule jpg$ /dont_hotlink.png [L]
Dabei einfach “bandbreiteklauer\.com”, “beepworld\.de” und “facebook\.com” durch die Domains der Bösewichte ersetzen. Will man mehr oder weniger Server aussperren, dann einfach weitere Zeilen mit RewriteCond einfügen. Es ist nur wichtig, dass die letzte Zeile am Ende nur [NC], alle anderen aber [OR,NC] enthalten, damit das ganze als ein zusammengehörender Block gehandhabt wird.
Ich habe gerade meinen neuen Arbeitsplatz-PC zusammengeschraubt und bin jetzt gerade dabei parallel die Festplatten zu formatieren und Windows-Updates zu installieren.
Meine Anforderungen waren:
Klare Ansage: Für einen “Normalanwender” oder normale Büro-Arbeiten ist diese Maschine total überdimensioniert. Für einen Entwickler wie mich ist das aber derzeit eine absolute Traummaschine.
Warum?
Bisher habe ich hier teilweise bis zu drei Rechner parallel laufen, die jetzt durch den neuen PC ersetzt werden sollen:
Alle drei hängen an der Steckdose und verbrauchen im eingeschalteten Zustand jeweils zwischen 100 und 150 Watt Strom. Sie brauchen physikalisch Platz und einen Steckplatz auf dem Netzwerk-Switch. Um den AMD einzuschalten muss ich aufstehen und quer durch mein Arbeitszimmer laufen. Er fährt zudem altersbedingt nicht mehr jedes mal sauber hoch – und wenn es mal Probleme gibt, dann muss ich mir erst mal einen Monitor suchen, den ich an’s System hängen kann.
Lange Rede, kurzer Sinn: Virtuelle Maschinen sind ab jetzt mein Lösungsansatz. Alleine mit dem gesparten Stromverbrauch sollte sich der neue Rechner innerhalb von zwei bis drei Jahren amortisiert haben.
Jetzt zum Schmuckstück selbst:
Als Betriebssystem kommt Windows Vista (64bit) zum Einsatz, was ich aber nicht extra kaufen musste sondern noch hier “herumliegen” hatte. Als Virtualisierungs-Lösung werde ich wohl auf VMware Workstation setzen, da ich mit den kostenfreien alternativen VirtualBox und VirtualPC zu viele Probleme hatte.
Alles in allem hat der PC also rund einen Tausender gekostet, zuzüglich der Software Lizenzen.
Ich konnte zwar noch nicht wirklich mit dem PC arbeiten, da ich wie gesagt noch beim Installieren, Formatieren und ersten Updaten bin – aber bisher bin ich begeistert. Das ichbinleise-Gehäuse trägt seinen Namen nicht umsonst und die offensichtliche Leistung ist absolute Spitzenklasse, die die drei vorher im Einsatz befindlichen Rechner problemlos ersetzen dürfte.
Wann Windows 7 jetzt tatsächlich auf den Markt kommt, das weiss wohl noch nicht mal Microsoft bisher so genau. Allerdings ist man bei Microsoft wohl auf den Trichter gekommen, dass die User die (meiner Meinung nach sehr sinnvollen und mittlerweile notwendigen) Änderungen “unter der Haube” von Windows XP zu Vista nicht so recht wahrnehmen. Für die meisten ist Vista doch nur ein XP mit neuem Anstrich und einem nervigen, neuen Fenster, das ab und an mal aufgeht und fragt, ob man das wirklich tun will.
Also, was tut man dagegen? Man ändert auch offensichtliches.
Zum Beispiel gibt’s in Windows 7 einen neuen Calc, also einen neuen Rechner:

Wird ehrlich gesagt auch langsam mal Zeit. Der alte ist gefühlt ohne Veränderungen seit Windows 3 dabei.
Der neue bietet – wie oben zu sehen – beispielsweise einen Modus für Programmierer, der auch in Hex oder Oktal rechnen kann. Außerdem kommt der Rechner mit einigen “voreinprogrammierten” Formeln. Nur noch Startbetrag, Zinssatz und Dauer eintragen, und schon kommt ein Endbetrag raus. Einfach so. Echt toll
– Sogar mit dem Datum kann man rechnen.
Alle die nicht mehr warten wollen werfen mal einen Blick zu Daily Gyan – Da gibt’s nen Link zum Download des Rechners für Vista.
Ich habe gerade ein kleines PHP Script geschrieben, mit dem man ganz einfach ein lokales Verzeichnis (inclusive Unterverzeichnisse) auf einem Webserver in ein Amazon S3 Bucket spiegeln kann – beispielsweise, um diese dann für CloudForce zu verwenden.
Eine erste Version gibt’s jetzt hier herunterzuladen: S3 Mirror for PHP.
Im WWW wimmelt es inzwischen ja nur so von verschiedenen Bots. Manche füttern Suchmaschinen, manche machen anderes. Manche sind sinnvoll für Webseiten-Betreiber, manche nicht.
Ich habe inzwischen angefangen, besonders sinnlose, störende oder sogar schädliche Spider auszusperren, die unsere Webseiten herunterladen wollen. Immerhin verbrauchen die unsere Bandbreite und unsere Rechenleistung, die wir an anderer Stelle besser einsetzen können.
Einige Bots sind ja noch so nett und schauen erst mal in die robots.txt, ob sie Daten abrufen dürfen. Andere greifen einfach zu. Und die allerschlimmsten sind die, die sich noch nicht mal als Bot identifizieren. Gegen die ist nicht so leicht anzukommen – denn man erkennt sie einfach nicht.
Ein paar von dieser Sorte sperre ich grundsätzlich in der .htaccess anhand der IP aus:
SetEnvIfNoCase Remote_Addr "^82.99.30." banned
SetEnvIfNoCase Remote_Addr "^69.58.178." banned
SetEnvIfNoCase Remote_Addr "^69.84.207." banned
SetEnvIfNoCase Remote_Addr "^91.205.124." banned
SetEnvIfNoCase Remote_Addr "^86.162.11.102" banned
SetEnvIfNoCase Remote_Addr "^82.99.30." banned
order allow,deny
allow from all
deny from env=banned
Das ist allerdings nur ein Tropfen auf den heißen Stein… Diese IPs sind sehr spezifisch und sind einfach ein paar, die mir negativ aufgefallen sind.
Bei den folgenden Bots / User Agents ist das einfacher. Damit diese Regeln funktionieren muss vorher mod_rewrite mit “RewriteEngine On” eingeschaltet werden.
RewriteCond %{HTTP_USER_AGENT} ^BAGL/Nutch-0.9 [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^Baiduspider [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^CCBot [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^Java/ [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ URL\ Control [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^Python-urllib [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^sonarv [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^Touche [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^Yanga [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^Yeti/ [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^BPImageWalker/ [OR,NC]
RewriteCond %[HTTP_USER_AGENT} ^QRVA [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*NaverBot/ [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*DBLBot/ [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*discobot/ [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*DotBot/ [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot/ [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*VoilaBot [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*Pockey [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*NetMechanic [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*SuperBot [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*WebMiner [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*WebCopier [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*Web\ Downloader [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*WebMirror [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*Offline [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*WebZIP [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*WebReaper [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*Anarchie [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*Mass\ Down [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*BlackWidow [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*WebStripper [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*WebHook [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*Scooter [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*swish-e [OR,NC]
RewriteCond %{HTTP_USER_AGENT} ^.*Teleport[NC]
RewriteRule ^.*$ - [F,L]
Was sperren diese Regeln aus?
Etwas anders – der Vollständigkeit halber aber auch erwähnt – ist das hier:
RewriteRule wp-login\.php - [F,L]
RewriteRule xmlrpc\.php - [F,L]
RewriteRule wp-atom\.php - [F,L]
RewriteRule login_page\.php$ - [F,L]
RewriteRule include\.php$ - [F,L]
RewriteRule php.*my.*admin - [NC,F,L]
RewriteRule mysql - [NC,F,L]
RewriteRule typo3 - [NC,F,L]
RewriteRule xampp - [NC,F,L]
RewriteRule w00tw00t - [F,L]
Damit sperre ich diverse URLs, die gerne von Hackern aufgerufen werden, die einfach mal schauen, was es für Angriffsflächen gibt, und beantworte sie mit 403 FORBIDDEN.
Eigentlich ziemlich sinnlos, denn die entsprechenden Dateien gibt’s auf den Servern ohnehin nicht – und wenn doch, dann will man sie normalerweise auch aufrufen können. Aber es werden auf diese Weise doch ein paar Bytes gespart, da die 403 FORBIDDEN Fehlermeldung im Normalfall kleiner ist als die 404 NOT FOUND Datei.
Außerdem sind 404 NOT FOUND Seiten oft auch irgendwie mit der Datenbank verknüpft. Die 403 FORBIDDEN Seite kann man einfach ausgeben, während man das 404 NOT FOUND in der Regel mit einer Hilfestellung für die User verbinden möchte. Hackern ist es in der Regel egal, ob sie einem den Server durch viele schnell aufeinander folgende Aufrufe lahmlegen. Von daher: einfach eine statische 403 FORBIDDEN Seite rausjagen. Das erzeugt nahezu keine Server-Last.
And last, but not least: Man kann dann in der Log-Datei die entsprechenden Aufrufe leichter identifizieren.
Gerade gefunden und für gut befunden: Ein Gadget für die Vista Sidebar, das den aktuellen Status von Nagios abfragt.
Jetzt müssen nur noch alle Dienste in unseren neuen Nagios reinkonfiguriert werden
Kurze Meldung am Rande:
Windows Live wird ein neuer OpenID Provider. Damit schließt sich auch Microsoft der Initiative an.
Bisher kann man sich nur im Integration-System von Microsoft registrieren. Das ganze hat auch bisher nur Community Technology Preview (CTP)-Status. Für Entwickler zum Testen der Kommektivität aber schon mal sehr praktisch.