[PHP5-FPM] permissions sur les sockets

Bonjour à tous,

j’essaie de corriger un problème de sécurité lié aux permissions sur les socket php5-fpm :

OS : Debian Wheezy fresh install
LAMP : Apache 2.2 + mod_fastcgi + php5-fpm

A partir de PHP 5.4.28 les permissions sur les sockets ont été durci pour corriger une faille de sécurité: bugs.php.net/bug.php?id=67060
Initialement les permissions sur les sockets fpm était 0666. Maintenant c’est 0660

ll /var/run/php5-fpm* srw-rw---- 1 dia dia 0 Oct 28 10:00 /var/run/php5-fpm_dia.sock -rw-r--r-- 1 root root 5 Oct 28 10:00 /var/run/php5-fpm.pid srw-rw---- 1 www-data www-data 0 Oct 28 10:00 /var/run/php5-fpm_www.sock
Mais apache râle car fastcgi à apparemment un problème de droits

Si je repasse les droits du socket à 0666 (avec un chmod ou par le fichier de pool) tout fonctionne.

Tout ce que j’ai pu trouver, c’est des admin qui laissent les droits en 0666 sans ce poser de question… Ou alors certains arrivent à résoudre le problème avec les directives :

listen.owner = dia listen.group = dia

Ce qui n’a pas d’effet dans mon cas.
Alors si un champion de la pile LAMP passe par la je veux bien un coup de main :slightly_smiling:

Voici ma config :

cat /etc/apache2/mods-available/fastcgi.conf

<IfModule mod_fastcgi.c> AddType application/x-httpd-fastphp5 .php Action application/x-httpd-fastphp5 /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -appConnTimeout 10 -idle-timeout 250 -socket /var/run/php5-fpm.sock -pass-header Authorization </IfModule>

cat /etc/php5/fpm/pool.d/dia.conf

[dia] user = dia group = dia listen = /var/run/php5-fpm_dia.sock listen.owner = dia listen.group = dia listen.mode = 0660 ...

cat /etc/apache2/sites-available/dia.com

[code]<VirtualHost *:80>
ServerAdmin contact@dia.com
ServerName dia.com

DocumentRoot /home/dia/www
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined

<IfModule mod_fastcgi.c>
    AddType application/x-httpd-fastphp5 .php
    Action application/x-httpd-fastphp5 /php5-fcgi
    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi_dia
    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi_dia -socket /var/run/php5-fpm_dia.sock -pass-header Authorization
</IfModule>
[/code]

Erreur apache

Merci !

Hello,

Ça me parait plutôt normal comme message d’erreur, Apache essaie de lire ton socket mais il est en 0660 avec dia:dia et Apache utilisé le user www-data. J’ai pas fais de recherche sur dia mais je pense que si tu rajouter www-data dans le groupe dia ça devrait suffire :slightly_smiling:

[Edit] : Dans le cas contraire tu peux ne pas utilisé le socket mais le port php-fpm en 9000 par default je crois. Tu perds un peux en perf mais tu dois gagner en sécu (je pense ?) (Sur les docs Nginx par exemple ils proposent la connexion par port et plus par socket)

Merci pour ta réponse TrashHard,

Comme je n’utilise pas mod_php mais FPM peut être que justement cette erreur de socket provient d’une config erronée…
Je suis sur que les droits correctes sont 0660, je cherche du coté de de ma config fastcgi.

Il y a de l’idée ! Mais sans effet malheureusement cela ne suffit pas.

Effectivement, je n’ai pas testé avec le réseau…C’est quand même dommage :confused: