Administrator Beckspaced.com
2014-07-22 13:21:03 UTC
hallo opensuse-de mailing list ;-)
ich hab hier ein problem mit mod_security und will irgendwie keine
loesung finden ;-(
doch vielleicht kann mir ja hier jemand weiterhelfen?
ist eine jungfraeuliche opensuse 13.1 box, frisch installiert mit
minimal system
dazu der apache webserver in version 2.4.6 und das module
apache2-mod_security2
alles via yast installiert und alle update patches eingespielt.
mod security hat die version 2.6.7 und yast liefert mit hierzu das owasp
core rule set in version 2.2.6
dies ist aber leider nicht kompatibel mit mod security version 2.6.7,
weshalb ich mir das CRS 2.2.5 heruntergeladen habe, was nun auch bestens
funktioniert und keinerlei fehler beim start von apache in den logs
hinterlaesst.
[:notice] [pid 17011] ModSecurity for Apache/2.6.7
(http://www.modsecurity.org/) configured.
[:notice] [pid 17011] ModSecurity: APR compiled version="1.4.8"; loaded
version="1.4.8"
[:notice] [pid 17011] ModSecurity: PCRE compiled version="8.33 "; loaded
version="8.33 2013-05-28"
[:notice] [pid 17011] ModSecurity: LIBXML compiled version="2.9.1"
[mpm_prefork:notice] [pid 17011] AH00163: Apache/2.4.6 (Linux/SUSE)
PHP/5.4.20 OpenSSL/1.0.1h configured -- resuming nor
mal operations
soweit prima ... apache started mit mod security ... fehlerlos
dann geh ich mal gucken, ob mir mod security folgende 'boese' url abfaengt:
http://irgendeinedomain.com/../../../etc/passwd
und bingo! error log gibt folgende message raus:
[Tue Jul 22 14:56:41.447240 2014] [:error] [pid 17029] [client
91.43.198.228] ModSecurity: Access denied with code 403 (phase 2).
Pattern match "(?:\\\\b(?:\\\\.(?:ht(?:access|passwd|group)|www_?acl
)|global\\\\.asa|httpd\\\\.conf|boot\\\\.ini)\\\\b|\\\\/etc\\\\/)" at
REQUEST_FILENAME. [file
"/usr/share/owasp-modsecurity-crs-225/base_rules/modsecurity_crs_40_generic_attacks.conf"]
[line "181"]
[id "950005"] [rev "2.2.5"] [msg "Remote File Access Attempt"] [data
"/etc/"] [severity "CRITICAL"] [tag "WEB_ATTACK/FILE_INJECTION"] [tag
"WASCTC/WASC-33"] [tag "OWASP_TOP_10/A4"] [tag "PCI/6.5.4"]
[hostname "domain.com"] [uri "/etc/passwd"] [unique_id
"U85fiU4vegoAAEKFQOsAAAAB"]
passt also eigentlich alles! und mod security weisst mich nun darauf
hin, dass ich mal SecDataDIr definieren soll, damit mod security seine
collections / daten speichern kann:
[Tue Jul 22 14:56:41.444603 2014] [:error] [pid 17029] [client
91.43.198.228] ModSecurity: Unable to retrieve collection (name
"global", key "global"). Use SecDataDir to define data directory first.
[hostname "domain.com"] [uri "/etc/passwd"] [unique_id
"U85fiU4vegoAAEKFQOsAAAAB"]
[Tue Jul 22 14:56:41.444681 2014] [:error] [pid 17029] [client
91.43.198.228] ModSecurity: Unable to retrieve collection (name "ip",
key "91.43.198.228_1d3533473747867f5ae2e667e469e9838feaeff0"). Us
e SecDataDir to define data directory first. [hostname "domain.com"]
[uri "/etc/passwd"] [unique_id "U85fiU4vegoAAEKFQOsAAAAB"]
und genau hier faengt jetzt mein problem an ;-)
per default ist SecDataDir /tmp definiert, was aber net so tolle ist, da
nun bei opensuse 13.1 der apache via systemd gestarted wird. und systemd
verwendet nun ein privateTmp, damit nur der apache server auf den /tmp
order zugriff hat.
naja ... dachte ich mir, nimmst du halt den ordner /var/log/apache2 als
SecDataDir. ausprobiert ... und auch das ging irgendwie nicht wie es sollte.
denn wenn mod security daten in die collection ip bzw. global
reinschreiben will, dann sollten die dateien ip.dir - ip.pag -
global.dir - global.pag erstellt werden ... doch genau das passiert
nicht! und mod security kann einfach keine daten schreiben.
ich hab das jetzt echt schon alles ausprobiert. dateien via touch selbst
erzeugt touch /var/log/apache2/ip.dir ... etc ...
dann berechtigungen via chmod auf 777 gesetzt, damit wirklich jeder in
die dateien schreiben kann.
doch auch des hat nix geholfen! in den apache error logs gibts zwar
keine fehler meldungen mehr und auch keine permission denied meldungen
aber fakt ist leider, dass auch in die selbst erstellten dateien mit
chmod 777 niemals daten von mod security geschrieben werden ;-(
auch hab ich dann schon mal probiert den privateTmp von systemd in
apache2.service auf false / no zu setzen.
ein systemsctl daemon-reload und dann apache wieder neu gestartet. nun
hat apache keinen privateTmp mehr und kann daten wieder in /tmp folder
schreiben.
dann auch das SecDataDir uaf /tmp gesetzt ... doch auch leider hier
wieder das gleich problem ;-(
mod security kann bzw will oder darf nicht? daten erstellen ... ip.dir
... global.dir
ist echt zum verrueckt werden ;-( weil ich das ganze auch seit jahren
ohne probleme auf anderen opensuse boxen, wie z.b. 12.2 oder 12.3 am
laufen habe. nur bei 13.1 will es nicht ;-(
ich denke halt, dass des irgendwas mit systemd zu tun hat? vielleicht
erstellt systemd sowas wie ne jail fuer apache? und somit kann mod
security auch nicht dateien erzeugen bzw. schreiben?
ich hab dann auch schon geguckt ob SELinux aktiv ist -> ist es aber
nicht! gibt also keine weiteren berechtigungsprobleme ...
naja ... ich hoffe, dass ich das alle gut beschrieben habe und
vielleicht findet sich ja hier jemand, welcher mir vielleicht weiter
helfen koennte ;-)
ich waere wirklich mehr als dankbar fuer jegliche hilfe!
hier noch ein paar links zu foren, auf welchen ich mein problem schon
mal geschildert habe:
https://github.com/SpiderLabs/ModSecurity/issues/688
https://forums.opensuse.org/showthread.php/496433-Mod-Security-2-2-7-problem-OpenSUSE-13-1
https://forums.opensuse.org/showthread.php/496434-mod_secuirty-2-2-7-on-opensuse-13-1
http://www.opensuse-forum.de/allgemeines/software-und-anwendungen/10111-mod-security-2-2-7-problem-opensuse-13-1/
also jetzt schon vielen dank
greetings
becki
ich hab hier ein problem mit mod_security und will irgendwie keine
loesung finden ;-(
doch vielleicht kann mir ja hier jemand weiterhelfen?
ist eine jungfraeuliche opensuse 13.1 box, frisch installiert mit
minimal system
dazu der apache webserver in version 2.4.6 und das module
apache2-mod_security2
alles via yast installiert und alle update patches eingespielt.
mod security hat die version 2.6.7 und yast liefert mit hierzu das owasp
core rule set in version 2.2.6
dies ist aber leider nicht kompatibel mit mod security version 2.6.7,
weshalb ich mir das CRS 2.2.5 heruntergeladen habe, was nun auch bestens
funktioniert und keinerlei fehler beim start von apache in den logs
hinterlaesst.
[:notice] [pid 17011] ModSecurity for Apache/2.6.7
(http://www.modsecurity.org/) configured.
[:notice] [pid 17011] ModSecurity: APR compiled version="1.4.8"; loaded
version="1.4.8"
[:notice] [pid 17011] ModSecurity: PCRE compiled version="8.33 "; loaded
version="8.33 2013-05-28"
[:notice] [pid 17011] ModSecurity: LIBXML compiled version="2.9.1"
[mpm_prefork:notice] [pid 17011] AH00163: Apache/2.4.6 (Linux/SUSE)
PHP/5.4.20 OpenSSL/1.0.1h configured -- resuming nor
mal operations
soweit prima ... apache started mit mod security ... fehlerlos
dann geh ich mal gucken, ob mir mod security folgende 'boese' url abfaengt:
http://irgendeinedomain.com/../../../etc/passwd
und bingo! error log gibt folgende message raus:
[Tue Jul 22 14:56:41.447240 2014] [:error] [pid 17029] [client
91.43.198.228] ModSecurity: Access denied with code 403 (phase 2).
Pattern match "(?:\\\\b(?:\\\\.(?:ht(?:access|passwd|group)|www_?acl
)|global\\\\.asa|httpd\\\\.conf|boot\\\\.ini)\\\\b|\\\\/etc\\\\/)" at
REQUEST_FILENAME. [file
"/usr/share/owasp-modsecurity-crs-225/base_rules/modsecurity_crs_40_generic_attacks.conf"]
[line "181"]
[id "950005"] [rev "2.2.5"] [msg "Remote File Access Attempt"] [data
"/etc/"] [severity "CRITICAL"] [tag "WEB_ATTACK/FILE_INJECTION"] [tag
"WASCTC/WASC-33"] [tag "OWASP_TOP_10/A4"] [tag "PCI/6.5.4"]
[hostname "domain.com"] [uri "/etc/passwd"] [unique_id
"U85fiU4vegoAAEKFQOsAAAAB"]
passt also eigentlich alles! und mod security weisst mich nun darauf
hin, dass ich mal SecDataDIr definieren soll, damit mod security seine
collections / daten speichern kann:
[Tue Jul 22 14:56:41.444603 2014] [:error] [pid 17029] [client
91.43.198.228] ModSecurity: Unable to retrieve collection (name
"global", key "global"). Use SecDataDir to define data directory first.
[hostname "domain.com"] [uri "/etc/passwd"] [unique_id
"U85fiU4vegoAAEKFQOsAAAAB"]
[Tue Jul 22 14:56:41.444681 2014] [:error] [pid 17029] [client
91.43.198.228] ModSecurity: Unable to retrieve collection (name "ip",
key "91.43.198.228_1d3533473747867f5ae2e667e469e9838feaeff0"). Us
e SecDataDir to define data directory first. [hostname "domain.com"]
[uri "/etc/passwd"] [unique_id "U85fiU4vegoAAEKFQOsAAAAB"]
und genau hier faengt jetzt mein problem an ;-)
per default ist SecDataDir /tmp definiert, was aber net so tolle ist, da
nun bei opensuse 13.1 der apache via systemd gestarted wird. und systemd
verwendet nun ein privateTmp, damit nur der apache server auf den /tmp
order zugriff hat.
naja ... dachte ich mir, nimmst du halt den ordner /var/log/apache2 als
SecDataDir. ausprobiert ... und auch das ging irgendwie nicht wie es sollte.
denn wenn mod security daten in die collection ip bzw. global
reinschreiben will, dann sollten die dateien ip.dir - ip.pag -
global.dir - global.pag erstellt werden ... doch genau das passiert
nicht! und mod security kann einfach keine daten schreiben.
ich hab das jetzt echt schon alles ausprobiert. dateien via touch selbst
erzeugt touch /var/log/apache2/ip.dir ... etc ...
dann berechtigungen via chmod auf 777 gesetzt, damit wirklich jeder in
die dateien schreiben kann.
doch auch des hat nix geholfen! in den apache error logs gibts zwar
keine fehler meldungen mehr und auch keine permission denied meldungen
aber fakt ist leider, dass auch in die selbst erstellten dateien mit
chmod 777 niemals daten von mod security geschrieben werden ;-(
auch hab ich dann schon mal probiert den privateTmp von systemd in
apache2.service auf false / no zu setzen.
ein systemsctl daemon-reload und dann apache wieder neu gestartet. nun
hat apache keinen privateTmp mehr und kann daten wieder in /tmp folder
schreiben.
dann auch das SecDataDir uaf /tmp gesetzt ... doch auch leider hier
wieder das gleich problem ;-(
mod security kann bzw will oder darf nicht? daten erstellen ... ip.dir
... global.dir
ist echt zum verrueckt werden ;-( weil ich das ganze auch seit jahren
ohne probleme auf anderen opensuse boxen, wie z.b. 12.2 oder 12.3 am
laufen habe. nur bei 13.1 will es nicht ;-(
ich denke halt, dass des irgendwas mit systemd zu tun hat? vielleicht
erstellt systemd sowas wie ne jail fuer apache? und somit kann mod
security auch nicht dateien erzeugen bzw. schreiben?
ich hab dann auch schon geguckt ob SELinux aktiv ist -> ist es aber
nicht! gibt also keine weiteren berechtigungsprobleme ...
naja ... ich hoffe, dass ich das alle gut beschrieben habe und
vielleicht findet sich ja hier jemand, welcher mir vielleicht weiter
helfen koennte ;-)
ich waere wirklich mehr als dankbar fuer jegliche hilfe!
hier noch ein paar links zu foren, auf welchen ich mein problem schon
mal geschildert habe:
https://github.com/SpiderLabs/ModSecurity/issues/688
https://forums.opensuse.org/showthread.php/496433-Mod-Security-2-2-7-problem-OpenSUSE-13-1
https://forums.opensuse.org/showthread.php/496434-mod_secuirty-2-2-7-on-opensuse-13-1
http://www.opensuse-forum.de/allgemeines/software-und-anwendungen/10111-mod-security-2-2-7-problem-opensuse-13-1/
also jetzt schon vielen dank
greetings
becki
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org