Zabbix avec Freeipa grace a Kerberos

Je continue l’intégration de mes services à FreeIPA; dans cette optique je vous présente aujourd’hui comment intégrer Zabbix à FreeIPA grâce au module Kerberos d’Apache

Génération de la keytab

A faire sur le serveur FreeIPA

ipa service-add HTTP/zabbix.domain.local

Dans mon cas j’ouvre le service sur l’extérieur, il faut donc que le nom du service externe soit aussi dans la keytab sinon le service Kerberos ne valide pas l’authentification.

ipa service-add HTTP/zabbix.domain.com

une fois les deux services ajoutés, on peut concaténer le tout directement sur le serveur cible (ici Zabbix):

A faire sur le serveur cible

ipa-getkeytab -s freeipa.domain.local -p HTTP/zabbix.domain.local -k /etc/httpd/zabbix.keytab
ipa-getkeytab -s freeipa.domain.local -p HTTP/zabbix.domain.com -k /etc/httpd/zabbix.keytab

On liste le contenu de la keytab pour vérifier :

klist -e -k /etc/httpd/zabbix.keytab

FILE:/etc/httpd/zabbix.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   1 HTTP/zabbix.domain.local@DOMAIN.LOCAL (aes256-cts-hmac-sha1-96)
   1 HTTP/zabbix.domain.local@DOMAIN.LOCAL (aes128-cts-hmac-sha1-96)
   1 HTTP/zabbix.domain.local@DOMAIN.LOCAL (des3-cbc-sha1)
   1 HTTP/zabbix.domain.local@DOMAIN.LOCAL (arcfour-hmac)
   1 HTTP/zabbix.domain.com@DOMAIN.LOCAL (aes256-cts-hmac-sha1-96)
   1 HTTP/zabbix.domain.com@DOMAIN.LOCAL (aes128-cts-hmac-sha1-96)
   1 HTTP/zabbix.domain.com@DOMAIN.LOCAL (des3-cbc-sha1)
   1 HTTP/zabbix.domain.com@DOMAIN.LOCAL (arcfour-hmac)

Ajout de l’utilisateur dans Zabbix et modification de l’authentification

Afin de ne pas se retrouver sans pouvoir accéder a notre plateforme après la modification de l’authentification, il faut créer les utilisateurs sur la plateforme. Faite ça de façon classique en passant par l’interface de Zabbix. Il faut savoir que par défaut l’authentification va prendre en compte l’uid du compte , il faut donc que les uid corresponde.

Une fois l’ajout effectué on peut changer l’authentification en HTTP

Ne vous déloguez pas, ainsi vous gardez le ticket de session le temps de valider que votre infrastructure est fonctionnel.

Modification d’Apache

On va s’appuyer sur un module qui s’appel : auth_kerb. Pour l’installer sur CentOS il suffi de simplement faire :

yum install mod_auth_kerb.x86_64

Il ne reste plus qu’à modifier apache pour prendre en compte la nouvelle méthode authentification

On modifie le virtualhost de Zabbix pour intégrer les lignes en gras :

<VirtualHost *:80>
...
<Directory /usr/share/zabbix/>

                      AuthType Kerberos
                      AuthName "Kerberos Login"
                      KrbMethodNegotiate on
                      KrbMethodK5Passwd on
                      KrbServiceName HTTP
                      KrbAuthRealms DOMAIN.LOCAL
                      Krb5KeyTab /etc/httpd/zabbix.keytab
                      KrbSaveCredentials on
                      KrbConstrainedDelegation on
                      Require valid-user

</Directory>

...

</VirtualHost>

puis on redémarre apache

service httpd restart

A ce stade vous en mesure de vous authentifier sur Zabbix via Kerberos

Si maintenant vous voulez filtrer par groupe d’utilisateurs, le module Kerberos n’est pas en mesure de le faire en l’état, il faut passer par le module LDAP de apache qui va vérifier l’appartenance du compte au groupe avant de valider l’accès.

Je ne l’ai pas encore fait, mais cela ne serai tarder, j’updaterai ce billet en fonction.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *