# Bots aussperren



## hahni (20. Apr. 2013)

Hallo zusammen,

gerade bei Online-Shops kommen oft die Bots von irgendwelchen Rechteverwertern wie PixRay vorbei und machen viel Traffic. Außerdem gibt es auch noch andere Harvester vorbei, die ohne praktischen Nutzen sind und nur viel Traffic machen.

Über die .htaccess kann natürlich jeder Benutzer bei ISPConfig 2 selbst solche Robots aussperren. Leider aber können das viele Webseitenbetreiber nicht und zweitens sind Änderungen in der .htaccess nicht wirklich bequem, weil das jeder für sich und seine Webseite machen muss.

Nun wäre für mich gut zu wissen, wie man so etwas zentral administrieren kann. Geht das? Wenn ja: wo und wie?

Viele Grüße

Hahni


----------



## nowayback (20. Apr. 2013)

hi,

ip notieren -> iptables ip drop -> ruhe - serverweit


----------



## hahni (20. Apr. 2013)

Stelle mir eher so etwas wie das hier vor:

--
# Spambots aufgrund von HTTP_USER_AGENT aussperren
RewriteCond %{HTTP_USER_AGENT} ^DA\ d.d\+ [OR]
RewriteCond %{HTTP_USER_AGENT} ^IE\ d.d\ Compatible.*Browser$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^[A-Z]+$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^MSIE\ 6\.0\ \(compatible; [OR]
RewriteCond %{HTTP_USER_AGENT} ^NG [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download [OR]
RewriteCond %{HTTP_USER_AGENT} 4\.0\ Robot\)\ Microsoft [OR]
RewriteCond %{HTTP_USER_AGENT} ^adressendeutschland [OR]
RewriteCond %{HTTP_USER_AGENT} ^Alexibot [OR]
RewriteCond %{HTTP_USER_AGENT} ^AmigaOs/MC680x0 [OR]
RewriteCond %{HTTP_USER_AGENT} ^anarchie [OR]
RewriteCond %{HTTP_USER_AGENT} ^asterias [OR]
RewriteCond %{HTTP_USER_AGENT} ^Atomz [OR]
RewriteCond %{HTTP_USER_AGENT} ^BackDoorBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^BackWeb [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bandit [OR]
RewriteCond %{HTTP_USER_AGENT} ^BatchFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^biz-Spider_for [OR]
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Black.Hole [OR]
RewriteCond %{HTTP_USER_AGENT} ^BlowFish [OR]
RewriteCond %{HTTP_USER_AGENT} ^BotALot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^Buddy [OR]
RewriteCond %{HTTP_USER_AGENT} ^BuiltBotTough [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bullseye [OR]
RewriteCond %{HTTP_USER_AGENT} ^BunnySlippers [OR]
RewriteCond %{HTTP_USER_AGENT} ^Cegbfeieh [OR]
RewriteCond %{HTTP_USER_AGENT} ^Check\&Get [OR]
RewriteCond %{HTTP_USER_AGENT} ^CheeseBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^CherryPicker [OR]
RewriteCond %{HTTP_USER_AGENT} ^cherry.?picker [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Cobra\ Development [OR]
RewriteCond %{HTTP_USER_AGENT} ^Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^contype [OR]
RewriteCond %{HTTP_USER_AGENT} ^Copier [OR]
RewriteCond %{HTTP_USER_AGENT} ^CopyHunter [OR]
RewriteCond %{HTTP_USER_AGENT} ^CopyRightCheck [OR]
RewriteCond %{HTTP_USER_AGENT} ^cosmos [OR]
RewriteCond %{HTTP_USER_AGENT} ^Crazy\ Browser [OR]
RewriteCond %{HTTP_USER_AGENT} ^crescent [OR]
RewriteCond %{HTTP_USER_AGENT} ^Crescent [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DittoSpyder [OR]
RewriteCond %{HTTP_USER_AGENT} ^Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\Wonder [OR]
RewriteCond %{HTTP_USER_AGENT} ^Drip [OR]
RewriteCond %{HTTP_USER_AGENT} ^DTS\ Agent [OR]
RewriteCond %{HTTP_USER_AGENT} ^ealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^eaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^EasyDL/d.d+ [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^ecorder [OR]
RewriteCond %{HTTP_USER_AGENT} ^efp@gmx.net [OR]
RewriteCond %{HTTP_USER_AGENT} ^eGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^email [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Enterprise_Search [OR]
RewriteCond %{HTTP_USER_AGENT} ^EroCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^express [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^extractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^e?mail.?(collector|magnet|reaper|siphon|sweeper|harvest|collect|wolf) [OR]
RewriteCond %{HTTP_USER_AGENT} ^fake\-agent [OR]
RewriteCond %{HTTP_USER_AGENT} ^Fetch\ API\ Request [OR]
RewriteCond %{HTTP_USER_AGENT} ^ffline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^ffline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^flashget [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlickBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Foobot [OR]
RewriteCond %{HTTP_USER_AGENT} ^freeches [OR]
RewriteCond %{HTTP_USER_AGENT} ^FrontPage [OR]
RewriteCond %{HTTP_USER_AGENT} FrontPage [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Getight [OR]
RewriteCond %{HTTP_USER_AGENT} ^getright [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetSmart [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb\! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GornKer [OR]
RewriteCond %{HTTP_USER_AGENT} ^gotit [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go.Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^go.?zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^grabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^harvest [OR]
RewriteCond %{HTTP_USER_AGENT} ^Harvest [OR]
RewriteCond %{HTTP_USER_AGENT} ^hloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} ^httrack [OR]
RewriteCond %{HTTP_USER_AGENT} ^HTTrack [OR]
RewriteCond %{HTTP_USER_AGENT} ^humanlinks [OR]
RewriteCond %{HTTP_USER_AGENT} ^iCCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^ichiro [OR]
RewriteCond %{HTTP_USER_AGENT} ^imagefetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InfoNaviobot [OR]
RewriteCond %{HTTP_USER_AGENT} ^InfoNaviRobot [OR]
RewriteCond %{HTTP_USER_AGENT} ^InsurancoBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^Iria [OR]
RewriteCond %{HTTP_USER_AGENT} ^JC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^JennyBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Kenjin.Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Keyword.Density [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^LexiBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^lftp [OR]
RewriteCond %{HTTP_USER_AGENT} ^libWeb/clsHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^libwww-perl [OR]
RewriteCond %{HTTP_USER_AGENT} ^likse [OR]
RewriteCond %{HTTP_USER_AGENT} ^LinkExplore [OR]
RewriteCond %{HTTP_USER_AGENT} ^LinkextractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^LINKS\ ARoMATIZED [OR]
RewriteCond %{HTTP_USER_AGENT} ^LinkScan/8.1a.Unix [OR]
RewriteCond %{HTTP_USER_AGENT} ^LinkWalker [OR]
RewriteCond %{HTTP_USER_AGENT} ^lwp-trivial [OR]
RewriteCond %{HTTP_USER_AGENT} ^MA [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mag-Net [OR]
RewriteCond %{HTTP_USER_AGENT} ^Magnet [OR]
RewriteCond %{HTTP_USER_AGENT} ^mail [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mata.Hari [OR]
RewriteCond %{HTTP_USER_AGENT} ^Maxthon [OR]
RewriteCond %{HTTP_USER_AGENT} ^Memo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Data\ Access [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft.URL [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIIxpc [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mirror [OR]
RewriteCond %{HTTP_USER_AGENT} ^mister\ pix [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister.PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^moget [OR]
RewriteCond %{HTTP_USER_AGENT} ^MSIECrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetMechanic [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^net.?(ants|mechanic|spider|vampire|zip) [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^nicerspro [OR]
RewriteCond %{HTTP_USER_AGENT} ^NICErsPRO [OR]
RewriteCond %{HTTP_USER_AGENT} ^ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^NPBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^oegp [OR]
RewriteCond %{HTTP_USER_AGENT} ^offline [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
...
RewriteRule ^.* - [F]
--


----------



## hahni (22. Apr. 2013)

Weiß tatsächlich keine eine Antwort darauf?


----------



## Deex (22. Apr. 2013)

Apache Mod_security hat hat diverse Konfigurationen mit denen du "Bad Bots" ausperren kannst.

Das Definitionspack (Core Rules)findest du hier
OWASP ModSecurity Core Rule Set (CRS)

Modsecurity gibt es auf
ModSecurity: Open Source Web Application Firewall


Aber zu den Bots..könnte schlimmer sein ^^


----------



## hahni (23. Apr. 2013)

Hey Deex,

vielen Dank für deine prompte und zielgerichtete Antwort. Habe mal mod_security wie folgt installiert:
mod security lucid

Sehe ich es richtig, dass OWASP weitere Filterregeln enthält? Also insbesondere die, um Bots fern zu halten?

Viele Grüße

Hahni


----------



## Deex (23. Apr. 2013)

> Also insbesondere die, um Bots fern zu halten?


Jain,- also jede dieser Filterregeln enthält Indikatoren für anfragen die als unseriös gelten, darunter können natürlich auch Crawler fallen die eine reihe von anfragen machen die kein normaler user machen würden.

Wichtig wäre das wenn du mod_security verwendest das vorher im Debug Modus laufen lässt und schaust was er laut debug logs alles Filtern würde. Mit der Whitelist kannst du dann seriösen traffic von den Filtern ausschließen. Also Mod Security muss wirklich vorher eingestellt werden. Wenn du das deine gewisse Zeit gemacht hast und denkst okay das ist nun so okay dann kannst du es scharf schalten.

Was gegen Bots auch helfen könnte wäre eine robots.txt, wobei das nur die seriösen anbieter treffen würde. Du kannst den Crawlern verbieten bestimmte urls aufzurufen. Wenn du dann noch Traffic siehst von Crawlern auf verzeichnissen die du als verboten eingestellt hast könntest du die IP Sperren. 

Im großen und ganzen, sieht das mit den Bots wirklich schlimm aus,- es lässt sich kaum vermeiden.  Wir haben das bei uns ua. mit CDN gelöst und Project Honeypot für Crawler die wahllos E-Mail Adressen sammeln. Ebenso benutzen wir die Bots einfach positv indem sie für uns Daten Anfragen auf API Schnittstellen machen weil dieses oder jenes Script aufrufen ohne das wir nen Cron einrichten mussten.

Mir fällt dabei grade ein das für dein Problem Mod_evasive bestimmt gut geeignet wäre. Eigentlich ist es ein Modul zum Abwehr von DDOS attacken. Wenn es richtig Konfiguriert ist sperrt es IP Adressen über Fail2ban automatisch die innerhalb von bestimmten Zeiten eine Anzahl von Anfragen übersteigen. Damit könntest du die Bots aussperren und gute wie die von Bing oder Google whitelisten. Wenn jemand per Software eure Seiten crawlt dann macht er eine überdurchschnittliche anfrage an Internetseiten (mehr als ein Normaler nutzer),- auf die art solltest du sie Kriegen können.

mod evasive


----------



## hahni (23. Apr. 2013)

Habe eine gute Anleitung gefunden speziell für Ubuntu 10.04 LTS:
» Ubuntu 10.04 – Apache mod_evasive & mod_security Linux Log

Nach der habe ich einmal installiert. Und wenn man dann die base_rules importieren und herunterladen will, dann kommt man auf die Seite, die du auch gepostet hast.

Mit den Standard-Regeln scheint alles gut zu funktionieren. Die habe ich nun mal Live im Test. Wenn sich das bewährt, dann werde ich die noch zusätzlich verfeinern.

Bin mal gespannt, ob sich das auf den Traffic und die Rechenleistung auswirken wird. Teilweise sind die Regeln in den .data-Files so easy, dass ich die mühelos erweitern können sollte !

"mod_evasive" habe ich auch im Einsatz und schon getestet. Reagiert äußert verstimmt auf viele kurzzeitige Anfragen hintereinander !

Alles in allem bisher ein guter Tipp von dir ! Besten Dank!


----------



## Deex (25. Apr. 2013)

> Alles in allem bisher ein guter Tipp von dir ! Besten Dank!


Sehr gerne, ich wünsche euch viel Erfolg


----------



## hahni (29. Juni 2013)

Hat leider doch nicht so gut geklappt, wie ich dachte. Gerade bei TYPO3 und Magento gibt es Schwierigkeiten. TYPO3-Seiten werden "verstümmelt" und scheinbar passen die Pfade nicht mehr. Bei Magento kommt zwar die Login-Maske fürs Backend, aber wenn man sich anmeldet, kommt postwendent der standardmäßige 403er von mod_security. Das ist natürlich extrem unvorteilhaft


----------



## magenbrot (1. Juli 2013)

wie die anderen Security Module braucht auch mod_security Anpassungen für deine spezielle Umgebung.

Für Typo3 z.B. http://typo3.org/waf.txt

verfügbare Direktiven:
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Configuration_Directives


----------



## hahni (2. Juli 2013)

Ich bin nach der Anleitung vorgegangen:
modsecurity

Dann klappt das sowohl für TYPO3, Magento und WordPress. Die Regeln für TYPO3 sollen angeblich veraltet sein. Obs stimmt, kann ich noch zu wenig prüfen !

Für Referer-Spam brauche ich aber noch eine Lösung. Da will ich die "bad domains" einfach sperren können...


----------



## Deex (2. Juli 2013)

Was genau meinst du mit Referer Spam, backlinks?

Liebe Grüße,

Deex


----------



## hahni (2. Juli 2013)

Genau! Es gibt ja Spambots, die nur deine Seite aufrufen, um dann ggf. in deinen Besucherstatisiken Backlinks abzustauben.

Das habe ich mal wie hier beschrieben mit mod_security gelöst:
Community: Pinterest - Protect your images - Shakodo

Bin gespannt, ob das klappen wird. Ist zwar im Beispiel ein anderer Fall. Aber ich glaube, dass das auch für Spammer wie "r-e-f-e-r-e-r.com" funktioniert.


----------



## hahni (2. Juli 2013)

Bei TYPO3 und Magento läuft alles wunderbar. Wenn man allerdings in WordPress die Seiten speichern möchte, kommt folgende Fehlermeldung:

--
*Forbidden*

 You don't have permission to access /wp-admin/post.php on this server.
 Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
--

Erst dachte ich, dass das mit der Anzahl der zu übergebenden Parameter zusammen hängt. Da es aber bei Magento und TYPO3 funktioniert, kann ich mir das als Grund leider nicht vorstellen.

Was könnte noch eine Ursache sein?


----------



## Till (3. Juli 2013)

Schau ins error.log der Webseite.


----------



## hahni (3. Juli 2013)

[Wed Jul 03 11:39:45 2013] [error] [client 178.25.109.53] ModSecurity: Unable to retrieve collection (name "global", key "global"). Use SecDataDir to define data directory first. [hostname "domain.de"] [uri "/wp-content/gallery/abschlussball-goethe-marien-real-2012/abschlussball-goethe-st-marien-realschule-19.jpg"] [unique_id "UdPxYcMFuwMAAGfcEOoAAAAG"]
[Wed Jul 03 11:39:45 2013] [error] [client 178.25.109.53] ModSecurity: Unable to retrieve collection (name "ip", key "178.25.109.53_d375d9d82cb59634556ba794e9ef957b59782c6b"). Use SecDataDir to define data directory first. [hostname "domain.de"] [uri "/wp-content/gallery/abschlussball-goethe-marien-real-2012/abschlussball-goethe-st-marien-realschule-19.jpg"] [unique_id "UdPxYcMFuwMAAGfcEOoAAAAG"]
[Wed Jul 03 11:39:46 2013] [error] [client 178.25.109.53] ModSecurity: Warning. Operator GE matched 0 at TX:inbound_anomaly_score. [file "/etc/apache2/mod_security_rules/modsecurity_crs_60_correlation.conf"] [line "36"] [msg "Inbound Anomaly Score Exceeded (Total Inbound Score: 0, SQLi=0, XSS=0): "] [hostname "domain.de"] [uri "/wp-content/gallery/abschlussball-goethe-marien-real-2012/abschlussball-goethe-st-marien-realschule-19.jpg"] [unique_id "UdPxYcMFuwMAAGfcEOoAAAAG"]
[Wed Jul 03 11:39:46 2013] [error] [client 178.25.109.53] ModSecurity: Warning. Operator GE matched 0 at TXutbound_anomaly_score. [file "/etc/apache2/mod_security_rules/modsecurity_crs_60_correlation.conf"] [line "39"] [msg "Outbound Anomaly Score Exceeded (score 0): "] [hostname "domain.de"] [uri "/wp-content/gallery/abschlussball-goethe-marien-real-2012/abschlussball-goethe-st-marien-realschule-19.jpg"] [unique_id "UdPxYcMFuwMAAGfcEOoAAAAG"]
[Wed Jul 03 11:39:46 2013] [error] [client 178.25.109.53] ModSecurity: Unable to retrieve collection (name "global", key "global"). Use SecDataDir to define data directory first. [hostname "domain.de"] [uri "/wp-content/header-images/None"] [unique_id "UdPxYsMFuwMAAGdF0hgAAAAA"]
[Wed Jul 03 11:39:46 2013] [error] [client 178.25.109.53] ModSecurity: Unable to retrieve collection (name "ip", key "178.25.109.53_d375d9d82cb59634556ba794e9ef957b59782c6b"). Use SecDataDir to define data directory first. [hostname "domain.de"] [uri "/wp-content/header-images/None"] [unique_id "UdPxYsMFuwMAAGdF0hgAAAAA"]
[Wed Jul 03 11:39:46 2013] [error] [client 178.25.109.53] File does not exist: /var/www/web4/web/wp-content/header-images/None, referer: http://domain.de/wp-admin/post.php?post=2&action=edit
[Wed Jul 03 11:39:46 2013] [error] [client 178.25.109.53] File does not exist: /var/www/web4/web/error/fileNotFound.html, referer: http://domain.de/wp-admin/post.php?post=2&action=edit
[Wed Jul 03 11:39:46 2013] [error] [client 178.25.109.53] ModSecurity: Warning. Operator GE matched 0 at TX:inbound_anomaly_score. [file "/etc/apache2/mod_security_rules/modsecurity_crs_60_correlation.conf"] [line "36"] [msg "Inbound Anomaly Score Exceeded (Total Inbound Score: 0, SQLi=0, XSS=0): "] [hostname "domain.de"] [uri "/wp-content/header-images/None"] [unique_id "UdPxYsMFuwMAAGdF0hgAAAAA"]
[Wed Jul 03 11:39:46 2013] [error] [client 178.25.109.53] ModSecurity: Warning. Operator GE matched 0 at TXutbound_anomaly_score. [file "/etc/apache2/mod_security_rules/modsecurity_crs_60_correlation.conf"] [line "39"] [msg "Outbound Anomaly Score Exceeded (score 0): "] [hostname "domain.de"] [uri "/wp-content/header-images/None"] [unique_id "UdPxYsMFuwMAAGdF0hgAAAAA"]
[Wed Jul 03 11:39:47 2013] [error] [client 84.56.100.2] ModSecurity: Unable to retrieve collection (name "global", key "global"). Use SecDataDir to define data directory first. [hostname "domain.de"] [uri "/wp-content/gallery/abschlussball-goethe-marien-real-2012/abschlussball-goethe-st-marien-realschule-13.jpg"] [unique_id "UdPxY8MFuwMAAGbDlmEAAAAK"]
[Wed Jul 03 11:39:47 2013] [error] [client 84.56.100.2] ModSecurity: Unable to retrieve collection (name "ip", key "84.56.100.2_1af4037c556dbce10b69bb3c0d538042695f494a"). Use SecDataDir to define data directory first. [hostname "domain.de"] [uri "/wp-content/gallery/abschlussball-goethe-marien-real-2012/abschlussball-goethe-st-marien-realschule-13.jpg"] [unique_id "UdPxY8MFuwMAAGbDlmEAAAAK"]


----------



## magenbrot (3. Juli 2013)

na da stehen doch ein paar Hinweise drin. Kurz gegoogled:


```
Use SecDataDir to define data directory first.
```
Modsecurity Use SecDataDir to define data directory first - cPanel Forums


```
ModSecurity: Warning. Operator GE matched 0 at TX:inbound_anomaly_score. [file "/etc/apache2/mod_security_rules/modsecurity_crs_60_correlation.conf"] [line "36"]
```
Schau mal in Zeile 36 der Datei /etc/apache2/mod_security_rules/modsecurity_crs_60_correlation.conf was diese Regel tut und pass sie für deine Zwecke an.




Solange deine Regeln noch nicht vollständig funktionieren, kannst du mod_security in einen "DetectOnly" Modus schalten. Dann erhälst du noch die Hinweise aber deine Seite funktioniert trotzdem:

ModSecurity Blog: Handling False Positives and Creating Custom Rules


----------



## hahni (3. Juli 2013)

Zeile 36 direkt gibt es nicht. Und daher blick ich nicht, was geändert werden müsste:

--
# ---------------------------------------------------------------
# Core ModSecurity Rule Set ver.2.0.10
# Copyright (C) 2006-2010 Trustwave All rights reserved.
#
# The ModSecurity Core Rule Set is distributed under GPL version 2
# Please see the enclosed LICENCE file for full details.
# ---------------------------------------------------------------


#
# This file is used in post processing after the response has been sent to
# the client (in the logging phase).  Its purpose is to provide inbound+outbound
# correlation of events to provide a more intelligent designation as to the outcome
# or result of the transaction - meaning, was this a successful attack?
#


# Correlated Successful Attack
#
SecRule &TX:'/LEAKAGE\\\/ERRORS/' "@ge 1" \
    "chain,phase:5,t:none,log,pass,skipAfter:END_CORRELATION,severity:'0',msg:'Correlated Successful Attack Identified: (Total Score: %{tx.anomaly_score}, SQLi=%{TX.SQL_INJECTION_SCORE}, XSS=%{TX.XSS_SCORE}) Inbound Attack (%{tx.inbound_tx_msg} - Inbound Anomaly Score: %{TX.INBOUND_ANOMALY_SCORE}) + Outbound Data Leakage (%{tx.msg} - Outbound Anomaly Score: %{TX.OUTBOUND_ANOMALY_SCORE})'"
        SecRule &TX:'/WEB_ATTACK/' "@ge 1" "t:none"


# Correlated Attack Attempt
#
SecRule &TX:'/AVAILABILITY\\\/APP_NOT_AVAIL/' "@ge 1" \
    "chain,phase:5,t:none,log,pass,skipAfter:END_CORRELATION,severity:'1',msg:'Correlated Attack Attempt Identified: (Total Score: %{tx.anomaly_score}, SQLi=%{TX.SQL_INJECTION_SCORE}, XSS=%{TX.XSS_SCORE}) Inbound Attack (%{tx.inbound_tx_msg} Inbound Anomaly Score: %{TX.INBOUND_ANOMALY_SCORE}) + Outbound Application Error (%{tx.msg} - Outbound Anomaly Score: %{TX.OUTBOUND_ANOMALY_SCORE})'"
        SecRule &TX:'/WEB_ATTACK/' "@ge 1" "t:none"

SecRule TX:INBOUND_ANOMALY_SCORE "@gt 0" \
    "chain,phase:5,t:none,log,noauditlog,pass,skipAfter:END_CORRELATION,msg:'Inbound Anomaly Score (Total Inbound Score: %{TX.INBOUND_ANOMALY_SCORE}, SQLi=%{TX.SQL_INJECTION_SCORE}, XSS=%{TX.XSS_SCORE}): %{tx.inbound_tx_msg}'"
        SecRule TX:INBOUND_ANOMALY_SCORE "@lt %{tx.inbound_anomaly_score_level}"

SecRule TX:INBOUND_ANOMALY_SCORE "@ge %{tx.inbound_anomaly_score_level}" \
    "phase:5,t:none,log,noauditlog,pass,msg:'Inbound Anomaly Score Exceeded (Total Inbound Score: %{TX.INBOUND_ANOMALY_SCORE}, SQLi=%{TX.SQL_INJECTION_SCORE}, XSS=%{TX.XSS_SCORE}): %{tx.inbound_tx_msg}'"

SecRule TX:OUTBOUND_ANOMALY_SCORE "@ge %{tx.outbound_anomaly_score_level}" \
    "phase:5,t:none,log,noauditlog,pass,msg:'Outbound Anomaly Score Exceeded (score %{TX.OUTBOUND_ANOMALY_SCORE}): %{tx.msg}'"

SecMarker END_CORRELATION
--


----------



## hahni (4. Juli 2013)

Habe die Regel sowie die darüber und die darunter einmal deaktiviert. Alle einzeln bzw. alle zusammen. Allerdings noch immer das gleiche Ergebnis. Speichern von WordPress-Artikeln geht leider nicht!


----------

