You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2024-01-08 18:15:33

katanka
Member
Registered: 2023-07-26
Posts: 5

La configuration du dossier racine du serveur web n'est pas sécurisée

Bonjour à toutes et tous,

Je reprends l'installation de 2 serveurs GLPI ( 2 usages distincts) installés sur un serveur Windows sous XAMPP.

Les serveurs sont installés respectivement dans les dossiers suivants :

c:\xampp\htdocs\glpi accessible via l'url http://glpi/glpi
c:\xampp\htdocs\ctm accessible via l'url http://glpi/ctm

Le serveur windows se nommant vous l'aurez deviné "glpi" smile

Je cherche donc à sécuriser le dossier racine de chacune de ces instances, si possible sans changer l'url d'accès à celles-ci.

J'ai lu dans les précédents posts des réponses à la mise en place de cette sécurisation, mais j'avoue être perdu car il y est fait référence quasi systématiquement au dossier glpi\public.

La solution semble passer par la modification du fichier  http-vhosts.conf situé dans le dossier c:\xampp\apache\conf\extra mais je préfère attendre vos retours pour ne pas casser l'accès à ces 2 sites en production.

Merci d'avance de votre aide

Offline

#2 2024-01-09 12:36:18

Chico008
Member
Registered: 2022-12-14
Posts: 384

Re: La configuration du dossier racine du serveur web n'est pas sécurisée

pour rappel, Xampp (Wamp et cie) c'est pour du dev/test, c'est a éviter absolument pour une prod finale.

prod finale :
Windows > ISS avec maria ou mysql + complement php
Linux > Apache/php avec maria

ensuite il faut différencier l'Url d'un dossier dans ton serveur, ce sont 2 chose différentes
tu peut tres bien changer ta conf d'un site pour le faire pointer sur un autre dossier source, sans que l'Url change.

post nous ta conf actuelle et on pourra te dire quoi corriger, mais il faut juste que tu ajoutes les alias correspondant pour /glpi et /ctm pour redirigier dans le dossier publique de chaque glpi.
c'est d'ailleur indiqué dans la doc officielle de glpi (alias /glpi /var/www/glpi/public), a adapter pour ta conf.

Last edited by Chico008 (2024-01-09 12:37:32)

Offline

#3 2024-01-09 17:40:06

katanka
Member
Registered: 2023-07-26
Posts: 5

Re: La configuration du dossier racine du serveur web n'est pas sécurisée

J'ai relu la doc d'install et je viens de modifier le fichier httpd-vhosts.conf situé dans le dossier "C:\xampp\apache\conf\extra" en ajoutant ceci :

<VirtualHost *:80>
    ServerName glpi.localhost

    DocumentRoot c:/xampp/htdocs/glpi/public

    # If you want to place GLPI in a subfolder of your site (e.g. your virtual host is serving multiple applications),
    # you can use an Alias directive. If you do this, the DocumentRoot directive MUST NOT target the GLPI directory itself.
    Alias "/glpi" "c:/xampp/htdocs/glpi/public"

    <Directory c:/xampp/htdocs/glpi/public>
        Require all granted

        RewriteEngine On

        # Ensure authorization headers are passed to PHP.
        # Some Apache configurations may filter them and break usage of API, CalDAV, ...
        RewriteCond %{HTTP:Authorization} ^(.+)$
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

        # Redirect all requests to GLPI router, unless file exists.
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>
</VirtualHost>

Je n'accède plus au site une fois le serveur apache relancé, Internal server error, je précise que je fais ces modifications sans savoir ce qu'elles opèrent concrètement, n'ayant aucune connaissance en ce domaine, désolé

Last edited by katanka (2024-01-10 10:25:28)

Offline

#4 2024-01-10 12:01:32

Chico008
Member
Registered: 2022-12-14
Posts: 384

Re: La configuration du dossier racine du serveur web n'est pas sécurisée

Si tu accedes a glpi par un alias (http://server/site)
il ne faut pas utiliser les directives virtualhost

tu as 2 sites, donc j'imagine 2 glpi installé dans 2 dossiers
ta conf devrait plutot ressembler a ceci

#### GLPI ####
# If you want to place GLPI in a subfolder of your site (e.g. your virtual host is serving multiple applications),
# you can use an Alias directive. If you do this, the DocumentRoot directive MUST NOT target the GLPI directory itself.
Alias "/glpi" "c:/xampp/htdocs/glpi/public"

<Directory c:/xampp/htdocs/glpi/public>
   Require all granted
   RewriteEngine On
   
   # Ensure authorization headers are passed to PHP.
   # Some Apache configurations may filter them and break usage of API, CalDAV, ...
   RewriteCond %{HTTP:Authorization} ^(.+)$
   RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
   
   # Redirect all requests to GLPI router, unless file exists.
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>

#### CTM ####
Alias "/ctm" "c:/xampp/htdocs/ctm/public"

<Directory c:/xampp/htdocs/ctm/public>
   Require all granted
   RewriteEngine On
   
   # Ensure authorization headers are passed to PHP.
   # Some Apache configurations may filter them and break usage of API, CalDAV, ...
   RewriteCond %{HTTP:Authorization} ^(.+)$
   RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
   
   # Redirect all requests to GLPI router, unless file exists.
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>

Offline

#5 2024-01-10 12:21:56

katanka
Member
Registered: 2023-07-26
Posts: 5

Re: La configuration du dossier racine du serveur web n'est pas sécurisée

Merci de ton retour Chico008 !

Comme précisé dans mon message d'intro j'ai effectivement 2 sites GLPI distincts, chacun dans un dossier propre.

Le fichier index.php exécuté est je pense celui à la racine du dossier glpi et non celui situé dans le dossier glpi\public, mais je n'en suis pas sûr pour autant  ...

Pour bien comprendre ce que tu me proposes, quel est le fichier de conf que je dois modifier en conséquence pour y spécifier ces éléments car j'ai fais l'essai avec le fichier http-vhosts.conf et je n'ai plus accès aux 2 site une fois la modif faite et le serveur apache relancé

Last edited by katanka (2024-01-10 12:24:07)

Offline

#6 2024-01-11 10:15:51

Chico008
Member
Registered: 2022-12-14
Posts: 384

Re: La configuration du dossier racine du serveur web n'est pas sécurisée

aussi pour ca que je deteste xampp et cie, les conf n'y sont jamais standard c'est toujours bordelique.

les bonnes pratiques pour apacche, est que tu ne touche pas au fichiers pas defaut (qui sont globaux on va dire), tu crée un fichier conf par site (dns ou alias), que tu active avec une commande ensuite pour qu'apache le voit et le traite, permettant l'acces au site (a2ensite <site>)

pour xamp si je me souvient (plus touche depuis 20 ans) ca doit etre un http.conf ou httpd.conf (qui contient deja des choses avec des directory de base)
et il faut ajouter cette conf à la fin.
remet ton httpd-vhost a l'origine.

a savoir qu'a chaque modif de fichier conf, il faut relancer apache, si tu ne le relance pas, ca sera pas pris en compte et pourra provoquer des erreurs.

Si tu prevoit d'avoir tes instance sur un serveur windows, je te conseille vivement de te mettre a IIS.

sinon il faudra attendre qu'un specialiste xampp passe par ici.

Last edited by Chico008 (2024-01-11 10:17:18)

Offline

#7 2024-01-11 12:37:11

katanka
Member
Registered: 2023-07-26
Posts: 5

Re: La configuration du dossier racine du serveur web n'est pas sécurisée

Ok je comprends un peu mieux.

J'ai remis le fichier http-vhost comme à l'origine. Le fichier httpd.conf se trouve dans le dossier c:\xampp\apache\conf.

Il contient entre autres cette partie déclarative :

# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#

#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. admin@your-domain.com
#
ServerAdmin postmaster@localhost

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName localhost:80

#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
    AllowOverride none
    Require all denied
</Directory>

#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.
    #
    Options Indexes FollowSymLinks Includes ExecCGI

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

J'ai essayé d'insérer le code vu ensemble tout à la fin du fichier de conf, puis aussi avant cette partie déclarative. Dans les 2 cas je me retrouve avec une internal error 500 en tentant d'accéder à chacun des sites.
Si j'essaie de décoder les commentaires de cette partie ( mais c'est presque du chinois pour moi), il "suffirait" d' ajouter juste les lignes d'Alias ?

Tu n'es pas le premier à me dire de passer sous IIS en prod mais ce n'est clairement pas un domaine que je maitrise et que je dois faire en sorte de maintenir un outil opérationnel sans pouvoir y consacrer tout l'investissement nécessaire, ayant de multiples éléments à gérer en parallèle.
Merci en tout cas de prendre ce temps pour tenter de sécuriser au mieux ces 2 instances

EDIT :

Je viens d'insérer ces lignes dans le fichier http-vhosts.conf, en ayant au préalable décommenter la ligne NameVirtualHost *:80.
J'ai changé également le chemin de chacun des sites dans la partie alias et directory en retirant le dossier public.

L'accès aux 2 sites se fait bien mais j'ai toujours le bandeau qui indique que mon dossier racine n'est pas sécurisé.

Last edited by katanka (2024-01-11 13:06:44)

Offline

#8 2024-01-11 16:26:55

Chico008
Member
Registered: 2022-12-14
Posts: 384

Re: La configuration du dossier racine du serveur web n'est pas sécurisée

de ce que j'ai pu retrouver c'est effectivement le fichier http-vhost qu'il faut modifier et plus le httpd.conf

apres justement, plutot que te prendre la tete avec une solution de dev bancale, passe sur IIS qui est natif windows et sera peut etre plus simple a prendre en main.
Sinon passe sur un serveur Linux avec un vrai apache/php mariadb.
ca demande un minimum de connaissance linux, mais une fois en place, ca bouge plus.

Offline

Board footer

Powered by FluxBB