[Résolu] suphp & suPHP_UserGroup



  • Je suis en train de perdre pied sur ma conf de serveur qui pourtant était limpide à en lire les tutos …

    Apache2 + php5.5 + suphp pour créer des Vhost isolées.

    J'ai installé Apache2 + suphp + php 5.4 sur ma Debian 7 , j'ai ensuite upgradé sur php 5.5.

    j'ai une Vhost qui tourne bien : 3w democms point fr mais mes tests me montre que j'arrive toujours à me balader dans le système depuis le php de ma Vhost !

    J'ai respecté la conf au poil de cul :

    /var/www est à root
    /var/www/monsite(/web) est à un utilisateur "monsite" et à un groupe "monsite" en chmod 755 (le 700 ne permettait pas de faire tourner)

    le module suphp est bien chargé par apache2 (dans mod-enabled j'ai le .so et le .conf)

    le fichier /etc/suphp/suphp.conf

    [global]
    ;Path to logfile
    logfile=/var/log/suphp/suphp.log

    ;Loglevel
    loglevel=info

    ;User Apache is running as
    webserver_user=www-data

    ;Path all scripts have to be in
    docroot=/var/www/*

    ;Path to chroot() to before executing script
    ;chroot=/mychroot

    ; Security options
    allow_file_group_writeable=false
    allow_file_others_writeable=false
    allow_directory_group_writeable=false
    allow_directory_others_writeable=false

    ;Check wheter script is within DOCUMENT_ROOT
    check_vhost_docroot=false

    ;Send minor error messages to browser
    errors_to_browser=false

    ;PATH environment variable
    env_path="/bin:/usr/bin"

    ;Umask to set, specify in octal notation
    umask=0022

    ; Minimum UID
    min_uid=100

    ; Minimum GID
    min_gid=100

    [handlers]
    ;Handler for php-scripts
    application/x-httpd-suphp="php:/usr/bin/php-cgi"

    ;Handler for CGI-scripts
    x-suphp-cgi="execute:!self"

    le suphp.conf de mods-enabled

    <IfModule mod_suphp.c>
        <FilesMatch ".ph(p3?|tml)$">
            SetHandler application/x-httpd-suphp
        </FilesMatch>
            suPHP_AddHandler application/x-httpd-suphp

    <Directory />
            suPHP_Engine on
        </Directory>

    # By default, disable suPHP for debian packaged web applications as files
        # are owned by root and cannot be executed by suPHP because of min_uid.
        <Directory /usr/share>
            suPHP_Engine off
        </Directory>

    # Use a specific php config file (a dir which contains a php.ini file)

    #      suPHP_ConfigPath /etc/php5/cgi/suphp/

    # Tells mod_suphp NOT to handle requests with the type <mime-type>.

    #      suPHP_RemoveHandler <mime-type>
    </IfModule>

    et ma Vhost :

    <VirtualHost *:80>
            ServerAdmin contact@monsite.fr
            ServerName www.monsite.fr
            ServerAlias *.www.monsite.fr
            DocumentRoot /var/www/monsite/web/

    #suPHP_UserGroup monsite monsite

    </VirtualHost>

    en l'état mes sites devraient marcher mais ne sont pas isolés les uns des autres. Si j'active la dernière ligne de ma conf Vhost suPHP_UserGroup monsite monsite je n'arrive plus à démarrer Apache !

    vps-xxx:/var/www/www.monsite.fr/web# /etc/init.d/apache2 restart
    [Sun Apr 13 23:32:51 2014] [warn] module suphp_module is already loaded, skipping
    Syntax error on line 20 of /etc/apache2/sites-enabled/000-www.monsite.fr:
    Invalid command 'suPHP_UserGroup', perhaps misspelled or defined by a module not included in the server configuration
    Action 'configtest' failed.
    The Apache error log may have more information.
    

    :( Tout le net parle d'une erreur de compilation propre aux versions < 1.7.x et/ou à un sombre mode "paranoïaque" qui pourtant  est censé être utilisé par défaut depuis la version 1.7.1 Je ne comprend plus rien du tout et j'y suis depuis 14h cet après midi

    quelqu'un aurait il une piste svp ?

    merci d'avance !



  • Je clôture le post car j'ai trouvé une réponse + contournement.

    Il s'avère que ma version de suphp n'était pas celle que je pensais ce qui nécessite de facto de compiler suphp et de ne pas prendre la version packagée si je souhaite utiliser la directive "suPHP_UserGroup monsite monsite" dans la conf Apache.

    la compilation doit se faire avec l'option paranoid, vous trouverez plein de doc sur le sujet sur le web.

    Personnellement j'ai donc abandonné cette directive mais je continue à utiliser suPHP pour cloisonner l'utilisateur dans sa Vhost par rapport aux autres Vhost. Il reste un point : un utilisateur doit également ne pas descendre sous /var/www ! pour cela rien de plus simple : php opendir permet de restreindre la localisation des scripts : à minima /var/www dans mon cas présent.

    Il ne peut ni parcourir mon serveur, ni scruter les autres Vhost.

    A noter que pour que tout fonctionne (.htaccess) j'ai du ajouter le groupe www-data à chaque utilisateur de chaque Vhost + fait un chmod 750 sur l'intégralité des fichiers. 755 sera de toute façon interdit par suPHP ;)

    Bref ça tourne pas comme je l'avais imaginé mais ça tourne !


  • Administrateur

    Pour mon info perso, même si je suis en congé cette semaine : le VPS est stable désormais ou pas ?


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.