Configurer l’authentification par Kerberos¶
Note
sans l’authentification par Kerberos, vous devez soit faire confiance lors de l’enregistrement initial ou bien entrer un mot de passe pour chaque poste lors de l’enregistrement;
pour plus d’information, consultez la documentation enregistrer une machine sur le serveur WAPT et signer les mises à jour d’inventaire;
l’authentification par Kerberos ne sera uniquement utilisé que lors de l’enregistrement de l’appareil;
Installer les composants pour Kerberos et configurer le fichier krb5.conf¶
#Debian
apt install krb5-user msktutil libnginx-mod-http-auth-spnego
#CentOS
yum install krb5-workstation msktutil nginx-mod-http-auth-spnego
Note
Cette fonctionnalité n’est pas disponible avec un serveur WAPT Windows
Modifiez le fichier /etc/krb5.conf
et remplacez tout le contenu par les 4 lignes suivantes en remplaçant MYDOMAIN.LAN par votre nom de domaine Active Directory (i.e. <MYDOMAIN.LAN>).
Attention
Le default_realm
doit absolument être écrit en lettres MAJUSCULES !!
[libdefaults]
default_realm = MYDOMAIN.LAN
dns_lookup_kdc = true
dns_lookup_realm=false
Récupérez un ticket keytab. Utilisez les commandes kinit et klist. Vous pouvez utiliser compte Administrator ou n’importe quel autre compte avec une délégation de droit permettant de joindre un poste au domaine dans la bonne OU de destination (par défaut CN=Computers).
Dans le shell retranscrit ci-dessous, les commandes sont en noir et le texte retouné est commenté en gris clair:
sudo kinit administrator
## Password for administrator@MYDOMAIN.LAN:
## Warning: Your password will expire in 277 days on lun. 17 sept. 2018 10:51:21 CEST
sudo klist
## Ticket cache: FILE:/tmp/krb5cc_0
## Default principal: administrator@MYDOMAIN.LAN
##
## Valid starting Expires Service principal
## 01/12/2017 16:49:31 02/12/2017 02:49:31 krbtgt/MYDOMAIN.LAN@MYDOMAIN.LAN
## renew until 02/12/2017 16:49:27
Si la requête d’authentification est réussie, vous pouvez créer votre HTTP Keytab avec la commande msktutil.
Assurez-vous de modifier l’entrée <DOMAIN_CONTROLER> avec le nom de votre contrôleur de domaine (eg: srvads.mydomain.lan).
sudo msktutil --server DOMAIN_CONTROLER --precreate --host $(hostname) -b cn=computers --service HTTP --description "host account for wapt server" --enctypes 24 -N
sudo msktutil --server DOMAIN_CONTROLER --auto-update --keytab /etc/nginx/http-krb5.keytab --host $(hostname) -N
Attention
Assurez-vous d’avoir correctement configuré le nom du serveur WAPT avant de lancer ces commandes;
Pour faire une double vérification de votre hostname, vous pouvez lancer echo $(hostname)
et cela doit vous retourner le nom qui sera utilisé par l’agent WAPT lancé sur les postes clients.
appliquez les bons droits d’accès au fichier
http-krb5.keytab
:#Debian sudo chmod 640 /etc/nginx/http-krb5.keytab sudo chown root:www-data /etc/nginx/http-krb5.keytab #CentOS sudo chown root:nginx /etc/nginx/http-krb5.keytab sudo chmod 640 /etc/nginx/http-krb5.keytab
Post-configuration¶
Vous pouvez désormais utiliser le script de post-configuration pour configurer Kerberos sur le serveur WAPT.
Le script de post-configuration va configurer Nginx et l’utilisation de l’authentification par Kerberos sur le serveur WAPT.
Indication
Ce script de post-configuration doit être lancé en tant que root.
/opt/wapt/waptserver/scripts/postconf.sh --force-https
L’authentication par Kerberos va maintenant être configuré.
Cas spéciaux d’usage¶
Mon serveur WAPT n’a pas accès à un Active Directory en écriture¶
connectez-vous à votre Active Directory (Pas un RODC);
créez un compte machine srvwapt;
ajoutez un champ SPN sur le compte srvwapt$;
setspn -A HTTP/srvwapt.mydomain.lan srvwapt
créez un keytab pour le serveur WAPT:
ktpass -out C:\http-krb5.keytab -princ HTTP/srvwapt.mydomain.lan@MYDOMAIN.LAN rndpass -minpass 64 -crypto all -pType KRB5_NT_PRINCIPAL /mapuser srvwapt$@MYDOMAIN.LAN Reset SRVWAPT$'s password [y/n]? y
Note
Si l’adresse de votre serveur WAPT est différente de celle de votre domaine Active Directory, remplacez HTTP/srvwapt.mydomain.lan@MYDOMAIN.LAN par HTTP/srvwapt.othername.com@MYDOMAIN.LAN.
transférez ce fichier vers
/etc/nginx/
(avec winscp par exemple);appliquez les bons droits d’accès au fichier
http-krb5.keytab
:#Debian sudo chmod 640 /etc/nginx/http-krb5.keytab sudo chown root:www-data /etc/nginx/http-krb5.keytab #CentOS sudo chown root:nginx /etc/nginx/http-krb5.keytab sudo chmod 640 /etc/nginx/http-krb5.keytab
L’agent WAPT a uniquement un accès vers un contrôleur de domaine RODC¶
pour un RODC, ajoutez le compte srvwapt » au groupe autorisé à répliquer les mots de passe;
n’oubliez pas de pré-charger le mot de passe du serveur WAPT avec les différents serveurs RODC;
Vous avez de multiples domaines Active Directory avec ou sans relations¶
Si vous avez des domaines Active Directory multiples, vous devez créer un keytab
par domaine en suivant la procédure ci-dessus, ex :
http-krb5-domain1.local.keytab
;http-krb5-domain2.local.keytab
;http-krb5-domain3.local.keytab
;
Vous allez alors fusionner tous ces keytabs
en un unique keytab
:
ktutil
read_kt http-krb5-domain1.local.keytab
read_kt http-krb5-domain2.local.keytab
read_kt http-krb5-domain3.local.keytab
write_kt http-krb5.keytab