HTTP
L'authentification HTTP est l'une des méthodes d'authentification externe fournies par Zabbix et peut être utilisée pour sécuriser davantage votre interface Web Zabbix avec un mécanisme d'authentification de base au niveau du serveur HTTP.
L'authentification HTTP de base protège les ressources du site Web (Zabbix WebUI) avec un nom d'utilisateur et un mot de passe. Lorsqu'un utilisateur tente d'accéder à Zabbix WebUI, le navigateur affiche une boîte de dialogue demandant des informations d'identification avant d'envoyer quoi que ce soit au code php de Zabbix WebUI.
Un serveur HTTP dispose d'un fichier contenant des informations d'identification utilisées pour authentifier les utilisateurs.
Voyons d'abord comment configurer l'authentification de base dans le serveur HTTP.
Warning
The examples below provide just minimum set of options to configure basic authentication. Please refer to respective HTTP server documentation for more details
Basic authentication
To enable basic authentication, we first need a "password-file" containing all usernames and passwords that are allowed to access the frontend.
Important
Usernames configured for basic authentication in HTTP server must exist in Zabbix. But only passwords configured in HTTP server are used for users authentication.
To create this file we need the command htpasswd. Execute following commands
to ensure we have this utility:
Install htpasswd utility
Red Hat
SUSE
Ubuntu
Next we will create the required file and the Admin user in it:
Info
NGINX
Apache on Red Hat
Apache on SUSE / Ubuntu
This command will request you to input the desired password for the Admin user
and will then create the specified password-file with the username and encrypted
password in it.
For any additional user we can use the same command but without the -c option
as the file is now already created:
Add additional users
Which will add user1 to the /etc/nginx/httpauth-file. Replace this path with
the path of this file on your distribution/webserver.
In the end the password-file should look something like:
Example password-file
Now that we have a password-file, we can continue to configure the web-browser to actually perform basic authentication, using this file.
Configure authentication file on Nginx
Find location / { block in Nginx configuration file that defines your Zabbix
WebUI (if you followed the installation steps as described in earlier chapters,
this should be in /etc/nginx/conf.d/zabbix.conf) and add these two lines:
Info
N'oubliez pas de redémarrer le service Nginx après avoir effectué cette modification.
Configure authentication file on Apache HTTPD
Trouvez le bloc <Directory "/usr/share/zabbix"> dans le fichier de
configuration Apache HTTP, il définit votre WebUI Zabbix (ie :
/etc/zabbix/apache.conf) et ajoutez ces lignes :
Note
By default configuration has Require all granted, remove this line.
Example
RedHat:
<Directory "/usr/share/zabbix">
...
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
Ubuntu / SUSE
Do not forget to restart apache2 or httpd service after making this change.
Configuration de Zabbix pour l'authentification HTTP
Une fois le serveur WEB configuré avec l'authentification de base, il est temps
de configurer le serveur Zabbix. Dans le menu Zabbix, sélectionnez Users |
Authentication | HTTP settings et cochez la case Enable HTTP authentication.
Cliquez sur Update et confirmez les changements en cliquant sur OK.
{
align=center }
2.1 Authentification des utilisateurs HTTP
Remove domain name Le champ doit contenir une liste de domaines séparés par
des virgules que Zabbix supprimera du nom d'utilisateur fourni. Par exemple, si
un utilisateur entre "test@myzabbix" ou "myzabbix\test" et que nous avons
"myzabbix" dans ce champ, l'utilisateur sera connecté avec le nom d'utilisateur
"test".
Décocher la case Case-sensitive login indiquera à Zabbix de ne pas tenir
compte des majuscules/minuscules dans les noms d'utilisateur, par exemple "tEst"
et "test" deviendront des noms d'utilisateur tout aussi légitimes même si dans
Zabbix nous n'avons que l'utilisateur "test" de configuré.
Notez que le formulaire de connexion par défaut est réglé sur "Zabbix login
form". Maintenant, si vous vous déconnectez, vous verrez le lien "Sign in with
HTTP" (se connecter avec HTTP) sous les champs Username (nom d'utilisateur) et
Password (mot de passe). Si vous cliquez sur ce lien, vous serez automatiquement
connecté à Zabbix WebUI avec le même nom d'utilisateur que celui que vous avez
utilisé précédemment. Vous pouvez également saisir un nom d'utilisateur et un
mot de passe différents et vous connecter normalement à Zabbix WebUI en tant
qu'utilisateur différent.
HTTP users authentication login
2.2 Formulaire d'authentification des utilisateurs HTTP
Si vous sélectionnez "HTTP login form" dans le menu déroulant Default login
form, vous ne verrez pas le formulaire de connexion standard de Zabbix lorsque
vous essayerez de vous déconnecter. En fait, vous ne pourrez pas vous
déconnecter à moins que votre session d'authentification n'expire. La seule
façon de se déconnecter est d'effacer les cookies dans votre navigateur. Vous
devrez alors suivre à nouveau la procédure d'authentification de base du serveur
Web.
Conclusion
La configuration de l'authentification au niveau HTTP ajoute une couche critique de contrôle d'accès à votre interface Web Zabbix en exploitant les mécanismes d'authentification natifs de votre serveur Web. Que vous utilisiez Nginx ou Apache, cette approche garantit que les utilisateurs sont invités à fournir des informations d'identification avant même d'atteindre Zabbix, ce qui protège efficacement contre les accès non autorisés au niveau du point d'entrée HTTP. Il est essentiel de s'assurer que les noms d'utilisateur utilisés dans l'authentification HTTP sont déjà définis dans Zabbix lui-même - seul le mot de passe du serveur web compte pour les vérifications d'identité - et de configurer correctement les paramètres d'authentification HTTP de Zabbix (tels que la suppression du domaine et les options de sensibilité à la casse). En coordonnant les paramètres d'authentification du serveur web avec la configuration interne de Zabbix, vous pouvez obtenir des flux de travail de connexion des utilisateurs transparents et sécurisés qui combinent la facilité d'utilisation frontale avec des mesures de protection robustes.
Questions
-
Quel est l'avantage de l'authentification HTTP (basée sur le serveur web) par rapport au mécanisme d'authentification interne de Zabbix ? (Pensez à la protection au niveau du serveur web avant même que l'utilisateur n'atteigne l'interface utilisateur de Zabbix.)
-
Pourquoi est-il essentiel qu'un utilisateur existe dans Zabbix même lorsque l'authentification HTTP est activée et pourquoi le mot de passe Zabbix n'est-il pas pertinent dans ce cas ?
-
Quelles sont les options de configuration dans le frontend de Zabbix sous "Administration → Authentification" pour l'authentification HTTP, et comment chacune d'entre elles peut-elle affecter le comportement de connexion ? Les exemples incluent l'activation/désactivation de la sensibilité à la casse, la suppression du domaine et le choix du formulaire de connexion.
-
Supposons que vous désactiviez la sensibilité à la casse des logins et que vous mainteniez les deux comptes 'Admin' et 'admin' dans Zabbix. Comment l'authentification HTTP se comportera-t-elle, et à quel résultat devez-vous vous attendre ?
-
Imaginez la résolution d'un problème d'échec de connexion lors de l'utilisation de l'authentification HTTP : Quelles mesures prendriez-vous pour vous assurer que l'authentification du serveur web est configurée correctement avant d'examiner les paramètres de Zabbix ?
-
Du point de vue de la sécurité, quand l'authentification HTTP seule serait-elle insuffisante et quelles autres méthodes d'authentification (par exemple, LDAP, SAML, MFA) pourriez-vous mettre en œuvre pour plus de sécurité ?