Internal Server Error unter CentOS 7

  • Guten Abend,


    ich bin mir fast sicher, dass ich eine Kleinigkeit übersehen habe - ich komme allerdings aktuell nicht darauf.


    Ich habe LiveConfig sowie das dazu gehörige Meta-Paket unter CentOS 7 installiert.


    Nun erhalte ich bei jedem Aufruf einer Seite eines Abonnements folgende Fehlermeldung in den Logs:


    Code
    tailf /var/log/httpd/error_log 
    [Wed Apr 13 19:28:23.711156 2016] [negotiation:error] [pid 18740] (13)Permission denied: [client xxx.xxx.xxx.xxx:58191] AH00686: cannot read directory for multi: /var/www/web1/htdocs/


    bzw


    Code
    [Wed Apr 13 19:32:59.733979 2016] [fcgid:warn] [pid 19012] (104)Connection reset by peer: [client xxx.xxx.xxx.xxx:58276] mod_fcgid: error reading data from FastCGI server
    [Wed Apr 13 19:32:59.734028 2016] [core:error] [pid 19012] [client xxx.xxx.xxx.xxx:58276] End of script output before headers: test.php
    /bin/sh: php-fcgi-starter: Permission denied
    [Wed Apr 13 19:33:00.451672 2016] [fcgid:warn] [pid 19011] (104)Connection reset by peer: [client xxx.xxx.xxx.xxx:58278] mod_fcgid: error reading data from FastCGI server
    [Wed Apr 13 19:33:00.451708 2016] [core:error] [pid 19011] [client xxx.xxx.xxx.xxx:58278] End of script output before headers: test.php


    Nun wundert mich vor allem das "/bin/sh: php-fcgi-starter: Permission denied".


    Die Zugriffsrechte für das Kunden-Verzeichnis sehen gut aus:


    Code
    drwxr-x---. 2 web1   apache  6 13. Apr 19:25 apps
    drwxr-x---. 3 apache web1   17 13. Apr 19:25 conf
    drwxr-x---. 3 web1   apache 35 13. Apr 19:32 htdocs
    drwxr-x---. 3 apache web1   50 13. Apr 19:53 logs
    drwxr-x---. 2 web1   web1    6 13. Apr 19:25 priv
    drwxrwx---. 2 web1   apache  6 13. Apr 19:25 tmp


    Und auch php-fcgi-startet ist vorhanden:


    Code
    /var/www/web1/conf/php5
    insgesamt 12
    -r-xr-x---. 1 web1 web1  215 13. Apr 19:32 php-fcgi-starter
    -rw-r--r--. 1 root web1 5038 13. Apr 19:32 php.ini


    Ich freue mich über jeden Denkanstoß :)

  • Theoretisch ja, praktisch nein. ;)


    Im Prinzip muss für SELinux in vielen Fällen "nur" der Sicherheitskontext von Dateien angepasst werden (chcon). Das Vorgehen wäre also, SELinux zu aktivieren und dann in der /var/log/audit/audit.log zu schauen wo es "kracht".


    LiveConfig setzt unter CentOS für die meisten Dateien und Verzeichnisse bereits den richtigen Kontext. Einige SELinux-Parameter muss man aber als Admin setzen (das macht LiveConfig nicht von alleine, um eventuell beabsichtigte Sicherheitseinstellungen nicht auszuhebeln) - z.B. "setsebool -P httpd_enable_homedirs=1" (suchen Sie hier mal nach "setsebool").


    In der Praxis zeigen sich aber einige recht fiese Detailprobleme. Wenn ich mich richtig erinnere war es z.B. nicht möglich, ImageMagick zum Laufen zu bringen. In einigen Fällen gibt es nämlich widersprüchliche SELinux-Einstellungen, die sich nur mittels eigener Policies beheben lassen. Und das ist eine eigene Wissenschaft für sich...


    Im Shared Hosting hat sich SELinux (obwohl es gerade dafür prädestiniert wäre) nicht so recht durchsetzen können. Die üblichen Werkzeuge sind daher gehärtete Kernel (z.B. grsec), Intrusion Detection (z.B. AIDE), Malware scanning (z.B. LMD/maldet).


    Wenn sich die Zeit findet schreiben wir dafür mal eine separate Anleitung. :)


    Viele Grüße


    -Klaus Keppler

  • Hallo Herr Keppler,


    genau das ist hier meine Überlegung - eigentlich wäre hier eine entsprechende Einsatzmöglichkeit mit SELinux ja wünschenswert.


    Ihr Installer gibt ja auch an, welche Sicherheitseinstellungen nachträglich durchgeführt werden sollen - denen bin ich hier gefolgt.


    Aktuell erhalte ich folgendes in den Logs:


    HTML
    type=AVC msg=audit(1460626058.796:717): avc:  denied  { getattr } for  pid=4161 comm="php-cgi" path="/var/www/web1/htdocs" dev="dm-0" ino=777 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=dir
    type=SYSCALL msg=audit(1460626058.796:717): arch=c000003e syscall=4 success=no exit=-13 a0=7fc739f9c040 a1=7ffe9f39afb0 a2=7ffe9f39afb0 a3=1d items=0 ppid=3291 pid=4161 auid=4294967295 uid=10001 gid=10001 euid=10001 suid=10001 fsuid=10001 egid=10001 sgid=10001 fsgid=10001 tty=(none) ses=4294967295 comm="php-cgi" exe="/usr/bin/php-cgi" subj=system_u:system_r:httpd_sys_script_t:s0 key=(null)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!