mod_security ist eine Modul für den
Apachewebserver, welches als Application-Layer-Filter arbeitet. Es kann also nicht nur nach Quell- und IP gefilter werden, sondern auch nach HTTP-Headern, POST-Eingaben, PHP-Variablen in der URL und in Cookies usw.
Damit kann man sich mit geeigneten Regeln gegen eine Menge Angriffe auf Webseiten wehren, wie SQL oder Remotefile-Injections, XSS und auch automatisierten Anfragen durch z.B. Malware, Crawler oder Trojaner.
Der Standardregelsatz bietet einen Grundschutz, muss aber ggf. auf die eigenen Ansprüche angepasst werden.
Mit dem Update von
mod_security von 1.9.x auf 2.x hat sich das Konfigurationsformat etwas geändert. Wichtigste Neuerung: Die Direktive
SecFilter heißt nun
SecRule. Weitergehende Infos zum Upgrade findet man unter [1].
Wenn man nun Subversion über WebDAV nutzen möchte, muss man den Standardregelsatz anpassen.
Im Internet [2] fand ich folgende Zeilen für eine
99_custom_rules.conf:
SecRule REQUEST_METHOD "^(PROPFIND|PROPPATCH)$" allow
SecRule REQUEST_METHOD "^(REPORT|OPTIONS)$" allow
SecRule REQUEST_METHOD "^(MKACTIVITY|CHECKOUT)$" allow
SecRule REQUEST_METHOD "^(PUT|DELETE|MERGE)$" allow
SecRule REQUEST_METHOD "^(MKCOL)$" allow
Leider gelang der Zugriff auf das SVN danach immer noch nicht. Woran das liegt, müsste man sich nochmal genau ansehen. Wahrscheinlich greift eine Regel früher, die das Ausführen weiterer Regeln verhindert.
Da man mod_security Vhost-weise konfigurieren kann, reichte uns als Workaround, das
Modul für den Vhost zu deaktivieren. Das sollte sicherheitstechnisch kein Problem sein, wenn das nur der WebDAV-Vhost ist.
Quellen:
[1] http://www.modsecurity.org/documentation/ModSecurity-Migration-Matrix.pdf
[2] http://www.moltar.ca/how-to-configure-modsecurity-to-play-nice-with-subversion-22/