Nagios 3 + erreur 403

  • Bonjour à tous.


    J'ai installé Nagios3 sur mon serveur (Debian + I-mscp). Seulement voilà, je but systématiquement sur une erreur 403 aprés le login sur Nagios :


    - Install Nagios OK
    - login Nagios (demande par .htaccess) ok
    - erreur 403 systématique.



    Je pense que cela viens de la prise en charge du php par mod_fcgid, car j'ai créé une page "test.html" dans le répertoire /usr/share/nagios3/htdocs, et elle est correctement évaluée par le serveur, par contre dés qu'il sagit d'une page en php : erreur 403.


    NB : le user nagios est bien présents et c'est lui qui execute le daemon nagios.


    J'ai "Googlé" sur le sujet bien sûr, mais a part 3 topic en Allemand sur le forum de i-mscp et autre sujets en anglais sur Google (config de nagios en général) , rien trouvé sur ce sujet en particulier.


    Une idée ?



    Cdt

    Edited once, last by Nuxwin ().

  • Bonjour ;


    Il me faut les logs. L'erreur 403 (sur qu'elle page/script). Bref, fournit les logs si tu veux de l'aide.


    Merci

    badge.php?id=1239063037&bid=2518&key=1747635596&format=png&z=547451206

    Edited once, last by Nuxwin ().

  • Bonjour,


    1 - voici le log apache (/var/log/apache2/users/mon-site-access.log) :


    Code
    1. 80.x.x.x - - [14/Jan/2013:10:52:19 +0100] "GET /nagios3/ HTTP/1.1" 401 525 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17"


    pas d'autres erreurs http notamment dans /var/log/nagios3/nagios.log ou nagios.debug



    2 - Installation nagios :


    Lors de l'installation de Nagios, le fichier de conf complémentaire /etc/nagios3/apache2.conf est inclus dans la conf apache (/etc/apache2/conf.d ==> lrwxrwxrwx 1 root root 25 8 janv. 12:02 nagios3 -> /etc/nagios3/apache2.conf
    ) :


    /etc/nagios3/apache2.conf :

    Code
    1. # apache configuration for nagios 3.xScriptAlias /cgi-bin/nagios3 /usr/lib/cgi-bin/nagios3ScriptAlias /nagios3/cgi-bin /usr/lib/cgi-bin/nagios3# Where the stylesheets (config files) resideAlias /nagios3/stylesheets /etc/nagios3/stylesheets# Where the HTML pages liveAlias /nagios3 /usr/share/nagios3/htdocs<DirectoryMatch (/usr/share/nagios3/htdocs|/usr/lib/cgi-bin/nagios3|/etc/nagios3/stylesheets)> Options FollowSymLinks DirectoryIndex index.php AllowOverride AuthConfig Order Allow,Deny Allow From All AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios3/htpasswd.users require valid-user</DirectoryMatch>


    3 - Page index.php de démarrage de nagios (/usr/share/nagios3/index.php) :


    HTML
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"><html><head><meta name="ROBOTS" content="NOINDEX, NOFOLLOW"><title>Nagios</title><link rel="shortcut icon" href="images/favicon.ico" type="image/ico"></head><frameset cols="180,*"><frame src="side.php" name="side" frameborder="0"><frame src="main.php" name="main" frameborder="0"><noframes><!-- This page requires a web browser which supports frames. --> <h2>Nagios</h2><p align="center"><a href="http://www.nagios.org/">www.nagios.org</a><br>Copyright (c) 1999-2009 Ethan Galstad<br></p><p><i>Note: These pages require a browser which supports frames</i></p></noframes></frameset></html>



    4 - Notes :


    - si je créé une page "test.html" avec un texte minimal, elle s'affiche sans problème (pas de 403)
    - si je change cette page en "test.php", alors j'ai l'erreur 403
    - j'ai bien noté la différence entre le retour sur le navigateur (403) et la trace dans le log (401), mais pas d'autres erreur dans les logs....


    5 - Conf php /apache :


    php est configuré en fcgi, contenu de /etc/apache2/mods-enabled/fcgid_imscp.conf :




    Je pense que cela vien de la manière dont le php est "invoqué" mais je n'arrive pas a bien comprendre ce qu'il ce passe.


    Cdt,

    Edited once, last by TazmanFR ().

  • Re ;


    Voici donc comment procéder avec i-MSCP (Git master - apache2 + fastcgi/fcgid + suexec).


    1. Dans le répertoire /etc/apache2/conf.d, supprimer le lien symbolique qui pointe vers le fichier de configuration /etc/nagios3/apache2.conf


    2. Créer le fichier /etc/apache2/sites-available/01_nagios3.conf avec le contenu suivant


    Code
    1. <VirtualHost localhost:80> ScriptAlias /cgi-bin/nagios3 /usr/lib/cgi-bin/nagios3 ScriptAlias /nagios3/cgi-bin /usr/lib/cgi-bin/nagios3 # Where the stylesheets (config files) reside Alias /nagios3/stylesheets /etc/nagios3/stylesheets # Where the HTML pages live Alias /nagios3 /usr/share/nagios3/htdocs <DirectoryMatch (/usr/share/nagios3/htdocs|/usr/lib/cgi-bin/nagios3|/etc/nagios3/stylesheets)> Options FollowSymLinks DirectoryIndex index.php AllowOverride AuthConfig Order Allow,Deny Allow From All AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios3/htpasswd.users require valid-user </DirectoryMatch> <IfModule mod_fcgid.c> <Location /nagios3> FCGIWrapper /var/www/fcgi/master/php5-fcgid-starter .php Options +ExecCGI Order allow,deny Allow from all </Location> <Directory "/var/www/fcgi/master"> AllowOverride None Options +ExecCGI MultiViews -Indexes Order allow,deny Allow from all </Directory> </IfModule> <IfModule mod_fastcgi.c> ScriptAlias /php5/ /var/www/fcgi/master/ <Directory "/var/www/fcgi/master"> AllowOverride None Options +ExecCGI MultiViews -Indexes Order allow,deny Allow from all </Directory> </IfModule> # Enable this ScriptAlias if you want to enable the grouplist patch. # See http://apan.sourceforge.net/download.html for more info # It allows you to see a clickable list of all hostgroups in the # left pane of the Nagios web interface # XXX This is not tested for nagios 2.x use at your own peril #ScriptAlias /nagios3/side.html /usr/lib/cgi-bin/nagios3/grouplist.cgi</virtualHost>


    3. Éditer le fichier /etc/apache2/sites-available/00_master.conf pour y ajouter le contenu suivant avant la balise de fermeture </VirtualHost>


    Code
    1. # Nagios configuration - Begin ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /nagios3/stylesheets http://localhost/nagios3/stylesheets ProxyPassReverse /nagios3/stylesheets http://localhost/nagios3/stylesheets ProxyPass /nagios3 http://localhost/nagios3 ProxyPassReverse /nagios3 http://localhost/nagios3 ProxyPass /cgi-bin/nagios3 http://localhost/cgi-bin/nagios3 ProxyPassReverse /cgi-bin/nagios3 http://localhost/cgi-bin/nagios3 ProxyPass /nagios3/cgi-bin http://localhost/nagios3/cgi-bin ProxyPassReverse /nagios3/cgi-bin http://localhost/nagios3/cgi-bin # Nagios configuration - Ending


    4. Activer le nouveau fichier de configuration


    Code
    1. # a2ensite 01_nagios3.conf


    5. S'assurer que tous les modules requis sont bien activés


    Code
    1. # a2enmod cgid proxy proxy_http


    6. Editer le fichier /var/www/fcgi/master/php5/php.ini pour ajouter le path de nagios ( /usr/share/nagios3/htdocs/ ) à la directive open_basedir


    Pour exemple, avec la dernière version (Git master d' i-MSCP), ma directive open_basedir devient:


    Code
    1. open_basedir = ":/var/www/imscp/gui:/etc/imscp:/var/run/imscp.lock:/proc:/bin/df:/bin/mount:/var/log/rkhunter.log:/var/log/chkrootkit.log:/usr/share/php:/usr/share/pear:/usr/share/nagios3/htdocs/"


    7. Re-démarrer apache2


    Code
    1. # service apache2 restart


    Désormais, tu devrais pouvoir accéder à nagios3 via l’adresse de ton panel, eg:


    admin.imscp.domain.tld/nagios3


    Voilà.


    [hr]


    Explication: La configuration par défaut livrée avec le paquet Debian de nagios3 ne peut pas fonctionner avec i-MSCP dans la mesure où elle se situe au niveau global. i-MSCP utilise suexec et celui-ci interdit l'exécution de scripts situés en dehors du document root. Ici, je résous ce problème en redirigeant les requêtes vers un autre host (localhost) qui n'est accessible que localement et qui n'utilise pas suexec.


    Rendu final


    nagios.png


    Merci d'utiliser i-MSCP.

    badge.php?id=1239063037&bid=2518&key=1747635596&format=png&z=547451206

    Edited once, last by Nuxwin ().


  • Edit: Tu utilises fcgid et non fastcgi. Je vais te fournir les modification a effectuer pour fcgid.


    Merci d'utiliser i-MSCP.


    Re,


    ok je veux bien la conf pour fcgid.


    Sinon pour contourner l'interdiction de l'emplacement du document root, ne pourrait on pas monter le répertoire nagios (/usr/share/nagios3/) dans un sous repertoire du document root /var/www/virtual/domain.tld/htdocs/nagios3 grâce a "mount --bind ancien_rep nouveau_rep" ?


    Je me penche également sur l'install de backuppc, je vais avoir les mêmes contraintes du coup un mount --bind est plus rapide à faire si cela fonctionne.....


    Cdt

    Edited once, last by Nuxwin ().


  • Re ;


    Personnellement je n'ai pas essayé et de toute façon je ne le ferais pas. Je préfère gérer ce genre de problème à la source directement. Le module proxy permet, comme tu peux le voir, de contourner aisément ce genre de problème. Par ailleurs, les fichiers utilisés par nagios sont éclatés dans plusieurs répertoires. Il y a des scripts PHP mais aussi des scripts CGI, sans compter les ressources statiques comme les images et css...


    Je suis entrain de te préparer les fichiers de configuration pour l'utilisation de nagios avec i-MSCP + Apache2 + fcgid + suexec. Je vais d'ailleurs sûrement les inclure dans i-MSCP.


    Merci d'utiliser i-MSCP.

    badge.php?id=1239063037&bid=2518&key=1747635596&format=png&z=547451206

    Edited once, last by Nuxwin ().

  • Re ;


    J'ai ajouté la configuration pour fcgid. http://forum.i-mscp.net/Thread…reur-403?pid=9806#pid9806 . Le fichier 01_nagios3.conf devrait normalement être compatible avec fastcgi et fcgid désormais.


    Si tu rencontre un problème, je peux éventuellement t'aider via Teamviewer. N'oublie pas que j'utilise la dernière version en date d' i-MSCP. Normalement, cela devrait aussi fonctionner avec la stable 1.0.3.0. ;)


    Note: Je vais te fournir les templates i-MSCP plus tard et aussi ajouter la configuration pour que cela fonction avec ITK.


    Merci d'utiliser i-MSCP.


    [hr]


    Edit


    Si tu souhaite activer cette partie:


    Code
    1. # Enable this ScriptAlias if you want to enable the grouplist patch.
    2. # See http://apan.sourceforge.net/download.html for more info
    3. # It allows you to see a clickable list of all hostgroups in the
    4. # left pane of the Nagios web interface
    5. # XXX This is not tested for nagios 2.x use at your own peril
    6. #ScriptAlias /nagios3/side.html /usr/lib/cgi-bin/nagios3/grouplist.cgi


    dans le fichier 01_nagios3.conf, il faudra sûrement ajouter une directive dans le fichier 00_master.conf aussi.


    Tu noteras également que pour un accès SSL, tu devras reporter la configuration nagios du fichier 00_master.conf dans le fichier 00_master_ssl.conf (si tu l'utilise).


    Voilà ;)

    badge.php?id=1239063037&bid=2518&key=1747635596&format=png&z=547451206

    Edited once, last by Nuxwin ().

  • Afin de donné une info supplémentaire,
    Sur le serveur de test 1.1.0-rc1.3 J’ai installé juste les check d'un serveur nagios (autre machine) avec les paquets suivant


    nagios-plugins-1.4.15
    nrpe-2.12


    Je n'ai eu aucun problème.


  • @tutux:


    Oui mais là, tu interroges un serveur nagios distant. Ici, il s'agit d'installer un serveur nagios avec i-MSCP (sur la même machine).


    Merci d'utiliser i-MSCP

    badge.php?id=1239063037&bid=2518&key=1747635596&format=png&z=547451206

    Edited once, last by Nuxwin ().