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.