Protection de Zabbix par LemonLDAP::NG
Le logiciel de supervision réseau Zabbix supporte nativement l'authentification HTTP, il est donc assez simple de l'intégrer à LemonLDAP::NG.
La première étape est de créer vos utilisateurs sur Zabbix (si Zabbix supporte l'authentification HTTP, il faut tout de même créer les utilisateurs en avance, ils ne sont pas créés automatiquement à la première connexion).
Il faut ensuite configurer Zabbix pour utiliser l'authentification HTTP. Cette configuration se fait dans Administration → Authentification, comme sur cette capture d'écran:
Il faut ensuite ajuster la configuration d'apache. La première étape évidente est de créer le virtualhost pour l'accès à Zabbix, par exemple zabbix.domain.tld. La configuration de ce virtualhost va dépendre de votre système et de vos habitudes, le plus important étant qu'il contienne la directive habituelle à savoir PerlHeaderParserHandler My::Package \\Il est aussi recommandé de désactiver l'alias par défaut (/zabbix) qui pourrait rendre l'application accessible depuis un autre vhost, court-circuitant la protection de LemonLDAP::NG.
Dernier point, par défaut Zabbix cherche le nom de l'utilisateur dans la variable PHP_AUTH_USER au lieu de la plus standard REMOTE_USER. Il faut donc ajouter cette directive dans la configuration apache:
SetEnvIfNoCase Auth-User "(.*)" PHP_AUTH_USER=$1
Voilà par exemple la configuration apache que nous utilisons:
# # Zabbix monitoring system php web frontend # # Alias /zabbix /usr/share/zabbix <Directory "/usr/share/zabbix"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all php_admin_value post_max_size 16M php_admin_value max_execution_time 600 php_admin_value max_input_time 300 php_admin_value date.timezone "Europe/Paris" Order deny,allow Deny from all Allow from all SetEnvIfNoCase Auth-User "(.*)" PHP_AUTH_USER=$1 </Directory> <Directory "/usr/share/zabbix/include"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/include/classes"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <VirtualHost 0.0.0.0:80> ServerName zabbix.domain.tld DocumentRoot /usr/share/zabbix RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] RewriteRule ^/(.*|$) https://%{HTTP_HOST}/$1 [L,R] </VirtualHost> <VirtualHost 0.0.0.0:443> ServerName zabbix.domain.tld DocumentRoot /usr/share/zabbix SSLEngine on RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] PerlHeaderParserHandler My::Package </VirtualHost>