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.