Configurer l’authentification Kerberos

Note

  • cette configuration est obligatoire en version WAPT Enterprise ;
  • en effet sans authentification Kerberos, n’importe qui pourra s’enregistrer sur le serveur WAPT et remonter de fausses informations dans l’inventaire ;
  • pour plus d’information rendez-vous sur Enregistrer une machine avec le serveur WAPT et sur Signer les remontées d’inventaire ;
  • l’authentification Kerberos sera utilisée lors de l’enregistrement du poste uniquement ;

Installation des composants Kerberos

apt-get install krb5-user msktutil
apt-get install libnginx-mod-http-auth-spnego

Configuration de krb5

Modifier le fichier /etc/krb5.conf et remplacer tout son contenu par les 4 lignes suivantes en précisant le domaine Active Directory de votre organisation (ici <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érer un ticket Kerberos

Utiliser la commande kinit et klist ci-dessous, vous pouvez utiliser le compte Administrateur Local ou tout autre compte avec délégation de privilèges sur le conteneur de destination dans Active Directory (par défaut CN=Computers).

En commentaire les résultats attendus des commandes :

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 demande d’authentification aboutit, créer le compte machine ainsi que le Keytab http avec msktutil.

Modifier le paramètre <DOMAIN_CONTROLER> en fonction de votre contrôleur de domaine (ex: 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

Les commandes ci-dessus supposent que vous avez correctement configuré le hostname de l’ordinateur ;

Pour vérfier, la ligne de commande echo $(hostname) doit renvoyer l’adresse DNS qu’utiliseront les agents WAPT.

Enfin modifier le propriétaire du keytab et ses permissions.

sudo chown root:www-data /etc/nginx/http-krb5.keytab
sudo chmod 640 /etc/nginx/http-krb5.keytab

My wapt server does not have access to a writeable active directory

  • Connect to your active directory (Not a RODC)

Create a computer account « srvwapt » (with graphical interface)

  • Add a spn on the « srvwapt$ » account
setspn -A HTTP/srvwapt.mydomain.lan srvwapt

Create a keytab for this wapt server :

ktpass -out C:\http-krb5.keytab -princ HTTP/srvwapt@MYDOMAIN.LAN rndpass -minpass 64 -crypto all -pType KRB5_NT_PRINCIPAL /mapuser srvwapt$@MYDOMAIN.LAN
Reset SRVWAPT$'s password [y/n]?  y

Transfer this file to /etc/nginx/ (with winscp for example)

Apply the right to the http-krb5.keytab file

For Debian :

sudo chmod 640 /etc/nginx/http-krb5.keytab
sudo chown root:www-data /etc/nginx/http-krb5.keytab

For Centos :

sudo chown root:nginx /etc/nginx/http-krb5.keytab
sudo chmod 640 /etc/nginx/http-krb5.keytab

Case of a use of a rodc

  • For RODC Add the srvwapt account to the allowed password group for replication
  • Remember to preload the password of the wapt server with the different rodc server.
Preload Password srvwapt account

Test Keytab

If a RW or RODC server is available from the wapt server, you can test your keytab with this command :

kinit -kt /etc/nginx/http-krb5.keytab HTTP/srvwapt@MYDOMAIN.LAN

Post-Configuration

Il est maintenant nécessaire de relancer la post-configuration afin d’activer l’authentification Kerberos pour l’enregistrement des machines.

Le script de post-configuration va mettre à jour la configuration Nginx et WAPTServer pour utiliser l’authentification Kerberos.

Indication

Ce script de post-configuration doit être exécuté en tant qu’utilisateur root.

/opt/wapt/waptserver/scripts/postconf.sh --force-https

L’authentification Kerberos est maintenant correctement configurée.

Note

Le script de post-configuration génère un certificat autosigné. Si vous le souhaitez, vous pouvez le remplacer par un certificat commercial ou issue d’une CA interne en suivant la documentation pour installer un certificat.

Sinon, passer directement à l’étape suivante pour installer la console WAPT sur votre PC d’Administrateur.