Frage zu mod_security rules
-
- Posts: 71
- Joined: 2006-06-21 13:31
- Location: Potsdam
Frage zu mod_security rules
Guten Tag,
ich möchte demnächst mod_security auf unserem Rootserver installieren und die Auswahl zwischen 2 Rulesets von
a)gotroot
b)von der Produktanbieterseite selbst.
Folgendes läuft auf dem Server und mehr Dienste sind soweit nicht vorgesehen:
Apache2 mit php4/php5
Postfix+MySQL
Webpages in PHP zzgl. MySQL Datenbankunterstützung
verschiedene Subdomains, darunter eine wo phpmyadmin usw per Passwortabfrage (htpasswd) gesichert liegt.
Nach der Modulinstallation muss der Zugriff auf MySQL Datenbanken (Datensätze verändern, löschen oder bearbeiten) auch per Skript und phpmyadmin möglich sein.
Auf welche Rules aus beiden Rulesets könnte ich eurer Meinung nach bei unseren Anforderungen, s.o., verzichten aus Performancegründen?
http://www.modsecurity.org/projects/rules/
http://www.gotroot.com/downloads/ftp/mo ... y/apache2/
Über Ratschläge von Euch würde ich mich sehr freuen, habe mod_security bisher nicht im produktiven Bereich eingesetzt.
ich möchte demnächst mod_security auf unserem Rootserver installieren und die Auswahl zwischen 2 Rulesets von
a)gotroot
b)von der Produktanbieterseite selbst.
Folgendes läuft auf dem Server und mehr Dienste sind soweit nicht vorgesehen:
Apache2 mit php4/php5
Postfix+MySQL
Webpages in PHP zzgl. MySQL Datenbankunterstützung
verschiedene Subdomains, darunter eine wo phpmyadmin usw per Passwortabfrage (htpasswd) gesichert liegt.
Nach der Modulinstallation muss der Zugriff auf MySQL Datenbanken (Datensätze verändern, löschen oder bearbeiten) auch per Skript und phpmyadmin möglich sein.
Auf welche Rules aus beiden Rulesets könnte ich eurer Meinung nach bei unseren Anforderungen, s.o., verzichten aus Performancegründen?
http://www.modsecurity.org/projects/rules/
http://www.gotroot.com/downloads/ftp/mo ... y/apache2/
Über Ratschläge von Euch würde ich mich sehr freuen, habe mod_security bisher nicht im produktiven Bereich eingesetzt.
Re: Frage zu mod_security rules
Ich kann noch nen paar Rulesets anbieten: http://www.rootforum.org/forum/viewtopic.php?t=35865 :oops:
Ansonsten spiele ich grade mit nem neuen Ruleset von gotroot.com rum, welches auf das Minimum reduziert wurde. Allerdings würde ich dies auch noch als sehr experimentell einstufen.
Viel Spaß beim frickeln. :P
Ansonsten spiele ich grade mit nem neuen Ruleset von gotroot.com rum, welches auf das Minimum reduziert wurde. Allerdings würde ich dies auch noch als sehr experimentell einstufen.
Wird schwer. Nach eigenen Erfahrungen lohnt sich der Aufwand nicht, die Rulesets dahin zu optimieren, dass sie damit laufen. Sinnvoller und Pflegeleichter erscheint es dann doch bei der Subdomain ModSecurity zu deaktivieren und 'nen Auge auf eine aktuelle phpMyAdmin-Version zu legen.ghoster1970 wrote:Nach der Modulinstallation muss der Zugriff auf MySQL Datenbanken (Datensätze verändern, löschen oder bearbeiten) auch per Skript und phpmyadmin möglich sein.
Code: Select all
<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>
-
- Posts: 71
- Joined: 2006-06-21 13:31
- Location: Potsdam
Re: Frage zu mod_security rules
hmmmm, darauf hätte ich auch selbst kommen können :oops:<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>
Werde heut Nacht mal das Modul kompilieren und mit den neuen gotroot Rules. Die sind abgespeckt sagst du? Hab nämlich noch die alten irgendwo verstaubt auf der Platte zu liegen.
Mein Server ist eigentlich entsprechend abgesichert, auch ohne mod_security... sagen wir mal zumindest gegen Skript-Kiddies.
In den letzten Tagen hab ich vermehrt Zugriffsversuche wie http://URL/?cmd... usw usw usw in den logs gefunden.
Alle erfolglos aber kann ja mal einer kommen der wirklich Ahnung hat!
Ob dann mod_security greift wenn "real Hackers" kommen?
Mir fehlt jedenfalls die Erfahrung mit dem Teil :o
Re: Frage zu mod_security rules
Nunja der offizielle gotroot.com Klumpen hat sehr viele definierten Regeln, welche zwar zum Teil die "false detection"-Rate auf ein gewisses minimum zurückschraubt. Allerdings musst du bedenken, dass das ganze Ruleset bei jeden Request abgearbeitet wird. Wie sich das ab einer gewissen Menge von Hits/Requests verhält kannst du dir nun selbst ausmalen.ghoster1970 wrote:Die sind abgespeckt sagst du? Hab nämlich noch die alten irgendwo verstaubt auf der Platte zu liegen.
Das gestrippte Ruleset von mir deckt die allgemeinen und gängigen "Angriffe" ab und das ohne Performanceverlust. Und in Kombination mit 'nem sauberem Setup mit php-fcgi denke ich, ist ein guter Weg durch die Mitte. Falls dir das zu wenig ist, bietet sich ja noch die Möglichkeit von [chroot|jails], SELinux oder gleich den Webserver zu virtualisieren. ;)
Re: Frage zu mod_security rules
magst deine rules dann mal hier posten?`wäre super!caput wrote:Nunja der offizielle gotroot.com Klumpen hat sehr viele definierten Regeln, welche zwar zum Teil die "false detection"-Rate auf ein gewisses minimum zurückschraubt. Allerdings musst du bedenken, dass das ganze Ruleset bei jeden Request abgearbeitet wird. Wie sich das ab einer gewissen Menge von Hits/Requests verhält kannst du dir nun selbst ausmalen.ghoster1970 wrote:Die sind abgespeckt sagst du? Hab nämlich noch die alten irgendwo verstaubt auf der Platte zu liegen.
Das gestrippte Ruleset von mir deckt die allgemeinen und gängigen "Angriffe" ab und das ohne Performanceverlust. Und in Kombination mit 'nem sauberem Setup mit php-fcgi denke ich, ist ein guter Weg durch die Mitte. Falls dir das zu wenig ist, bietet sich ja noch die Möglichkeit von [chroot|jails], SELinux oder gleich den Webserver zu virtualisieren. ;)
Re: Frage zu mod_security rules
Siehe Links auf dem zweiten Beitrag aus diesem Thread. :roll:Malo wrote:magst deine rules dann mal hier posten?`wäre super!
-
- Posts: 695
- Joined: 2005-09-16 00:06
- Location: Berlin-Reinickendorf
- Contact:
Re: Frage zu mod_security rules
Hi caput,
ich experimentiere auch gerade ein wenig mit den neuen Rules von gotroot rum.
Aber nichtsdertrotz, werde mal gucki-lucki in deine vorgeschlagenen Rules machen :)
EDIT:
Lasse mal deine Rules testweise für ein paar Tage auf unserem vServer laufen. Sieht soweit erstmal ausreichend aus, evtl. wird noch aus der Sektion Rootkits 1-2 Nachträge geben.
Mal sehen wie es mit der Performance aussieht, lasse mich mal überraschen.
/EDIT
ich experimentiere auch gerade ein wenig mit den neuen Rules von gotroot rum.
Aber nichtsdertrotz, werde mal gucki-lucki in deine vorgeschlagenen Rules machen :)
EDIT:
Lasse mal deine Rules testweise für ein paar Tage auf unserem vServer laufen. Sieht soweit erstmal ausreichend aus, evtl. wird noch aus der Sektion Rootkits 1-2 Nachträge geben.
Mal sehen wie es mit der Performance aussieht, lasse mich mal überraschen.
/EDIT
Re: Frage zu mod_security rules
@caput
Bis dato laufen deine Rules echt gut! :)
Bis dato laufen deine Rules echt gut! :)
Re: Frage zu mod_security rules
... vielleicht sollte man die Rulesets hinsichtlich der eigenen Anwendungen auf dem Server optimieren und dann anpreisen?
Also sowas wie:
"joomla/mambo.conf"
oder
"phpbb.conf"
so liese es sich sicherlich noch ein wenig "übersichtlicher" gestalten oder?
Also sowas wie:
"joomla/mambo.conf"
oder
"phpbb.conf"
so liese es sich sicherlich noch ein wenig "übersichtlicher" gestalten oder?
Re: Frage zu mod_security rules
Das Ruleset von mir ist schon so "generell" wie möglich gehalten, so das keine anwendungsspeziefischen Rules mehr drin sind. Und im allgemeinen Decken diese dann auch die anwendungsspeziefischen Rules ab, welches unter Umstände zu false positives führen kann. Deshalb auch das "experimentell" zwischen den Worten.derfalk wrote:... vielleicht sollte man die Rulesets hinsichtlich der eigenen Anwendungen auf dem Server optimieren und dann anpreisen?
[..]
so liese es sich sicherlich noch ein wenig "übersichtlicher" gestalten oder?
Re: Frage zu mod_security rules
ok, das ist ne Antwort wo ich mit leben kann ;) Mich "verblüffte" nur, das die Rules von z.B. Gotroot so tierisch lang sind und deine so kompackt ;)
-
- Posts: 695
- Joined: 2005-09-16 00:06
- Location: Berlin-Reinickendorf
- Contact:
Re: Frage zu mod_security rules
Das kompakte Ruleset von caput richtet sich in erster Linie gegen alle gängigen Angriffsversuche auf einen Rootserver. Wenn man sich damit näher beschäftigen will/soll, muss man auch die Aktivitäten der Gegenseite beobachten, sich die Rootkits ziehen und analysieren.derfalk wrote:ok, das ist ne Antwort wo ich mit leben kann ;) Mich "verblüffte" nur, das die Rules von z.B. Gotroot so tierisch lang sind und deine so kompackt ;)
Sicherer ist es eigentlich noch, wenn der Webserver in einem Käfig landet, dann kann so schnell erstmal nicht das gesamte System kompromitiert werden. Du musst dich erstmal "nur" um den Käfig und dessen Inhalte (Skripte) kümmern.
Was aber nicht heissen soll das keine Schäden entstehen können...
Re: Frage zu mod_security rules
mahlzeit,ghoster1970 wrote: a)gotroot
erstmal vorneweg: ich wuerde mod_security nicht einsetzen, solange man keine potentiel unsicheren PHP- oder CGI-applikationen auf der kiste hat. ansonsten halte ich das risiko durch einen buffer-overflow in mod_security selber verwundbar zu werden fuer groesser als den nutzen.
das original-pack von gotroot hat bei mir ein paar probleme gemacht:
1. die badips.conf ist nicht terminiert, d.h. wenn 1.2.3.4 als boese in der liste ist, wird 1.2.3.45 auch ausgesperrt. hab das auch schon an gotroot gemailt, hat aber keinen gejuckt. hab dann einfach die liste konvertiert mit etwas perl:
Code: Select all
#!/usr/bin/perl
# convert gotroot.com badips.conf to include ^ and $
# 20060623,ar
# SecFilterSelective REMOTE_ADDR "69.28.242.87"
# SecFilterSelective REMOTE_ADDR 198.161.192.9
while(<>) {
s/^(SecFilterSelective REMOTE_ADDR )"{0,1}(d{1,3}\.d{1,3}\.d{1,3}\.d{1,3})"{0,1}/$1^$2$/;
print;
}
2. das plesk-horde konnte keine mails mehr weiterleiten, korrektur in rules.conf 2 zeilen auskommentiert und einmail "webmail" dazu
Code: Select all
# diff rules.conf /tmp/apache2/rules.conf
< #SecFilterSelective REQUEST_METHOD "!^(GET|HEAD|POST|PUT|PROPFIND|OPTIONS)$" "chain,id:340001,rev:1,severity:2,msg:'Restricted HTTP function'"
< #SecFilterSelective HTTP_Content-Type "!(^$|^application/x-www-form-urlencoded$|^multipart/form-data)"
---
> SecFilterSelective REQUEST_METHOD "!^(GET|HEAD|POST|PUT|PROPFIND|OPTIONS)$" "chain,id:340001,rev:1,severity:2,msg:'Restricted HTTP function'"
> SecFilterSelective HTTP_Content-Type "!(^$|^application/x-www-form-urlencoded$|^multipart/form-data)"
179c179
< SecFilterSelective REQUEST_URI "!(/webmail|tiki-objectpermissions|aardvarkts/install/index|/gallery/do_command|banner_click|wp-login|tiki-view_cache|/horde/index|/horde/services/go|/goto|gallery2?/main|ad-?server/adjs)" "chain,id:300018,rev:1,severity:2,msg:'Generic PHP code injection protection'"
---
> SecFilterSelective REQUEST_URI "!(/tiki-objectpermissions|aardvarkts/install/index|/gallery/do_command|banner_click|wp-login|tiki-view_cache|/horde/index|/horde/services/go|/goto|gallery2?/main|ad-?server/adjs)" "chain,id:300018,rev:1,severity:2,msg:'Generic PHP code injection protection'"