Installer WAPT 2.3 (avec authentification Active Directory) pour le déploiement de logiciels
Sommaire
I. Présentation
Dans ce tutoriel, nous allons mettre en place un serveur WAPT 2.3 sous Debian 11 dans le but de pouvoir déployer des logiciels sur les postes de travail d'un parc informatique. Pour sécuriser l'ajout des machines à notre serveur WAPT, l'authentification Kerberos (via l'Active Directory) sera utilisée.
La solution française WAPT est capable de déployer des logiciels sur Windows, macOS et Linux, tout en intégrant d'autres fonctionnalités comme le déploiement de systèmes d'exploitation, l'inventaire, mais aussi la gestion et le déploiement des mises à jour Windows.
L'éditeur français Tranquil IT, qui a récemment fêté ses 20 ans, est l'auteur de la solution WAPT qui s'appuie majoritairement sur le langage Python 3. Cette solution est disponible en version payante "Enterprise" et gratuite "Discovery".
Pour déployer des logiciels, l'administrateur système a le choix entre créer ses propres paquets d'installation ou piocher dans le catalogue officiel de WAPT qui contient à l'heure actuelle plus de 6 000 paquets. Ces paquets sont personnalisables de façon à ajouter des instructions supplémentaires en éditant un fichier codé en Python.
Dans cette démonstration basée sur un serveur WAPT sous Linux, nous allons déployer des logiciels sur des machines sous Windows (procédure identique pour Windows 11, Windows 10, Windows Server).
Quelques informations la machine virtuelle utilisée pour le serveur WAPT :
- Système : Debian 11.6.0
- Configuration réseau :
- Adresse IP : 192.168.100.14/24
- Passerelle : 192.168.100.1
- DNS : 192.168.100.11 (correspondant au contrôleur de domaine pour it-connect.local)
- Domaine : it-connect.local
- Nom d'hôte : srv-wapt
- Nom FQDN : srv-wapt.it-connect.local
La machine évoquée ci-dessus sera utilisée pour créer le serveur WAPT, tandis que la console d'administration de WAPT sera déployée sur un poste d'administration sous Windows 11.
II. Installer WAPT sur Debian 11
Commençons par la préparation du serveur SRV-WAPT puis l'installation de WAPT en lui-même. La procédure décrite ci-dessous reprend les éléments de la documentation officielle disponible à cette adresse.
Avant de commencer, veillez à effectuer la configuration réseau de votre machine.
Il faut s'assurer que le nom d'hôte FQDN est bien renseigné dans le fichier "/etc/hostname".
nano /etc/hostname
Dans le même esprit, le fichier "/etc/hosts" doit avoir le nom court et le nom FQDN associés à l'adresse IP du serveur. Comme ceci :
nano /etc/hosts
Sur le serveur DNS associé à votre environnement Active Directory, créez un enregistrement de type A dans la zone DNS correspondante à votre domaine. Ici, c'est la zone "it-connect.local" dans laquelle je crée un enregistrement avec le nom et l'adresse IP du serveur.
Vérifiez que le serveur se synchronise bien auprès d'un serveur NTP (pour la date et l'heure), via cette commande :
timedatectl status Local time: ven. 2023-03-31 15:55:39 CEST Universal time: ven. 2023-03-31 13:55:39 UTC RTC time: ven. 2023-03-31 13:55:39 Time zone: Europe/Paris (CEST, +0200) System clock synchronized: yes NTP service: active RTC in local TZ: no
Passons aux choses sérieuses.
Tout d'abord, et puisque nous allons mettre en place l'authentification Kerberos (basée sur l'Active Directory), il convient d'installer le paquet ci-dessous qui est un prérequis :
apt install libnginx-mod-http-auth-spnego
Ensuite, passons à l'installation de WAPT en lui-même.
Les commandes ci-dessous permettent d'ajouter le dépôt de l'éditeur Tranquil IT de façon à récupérer les paquets d'installation de WAPT.
apt install apt-transport-https lsb-release gnupg wget -y wget -O - https://wapt.tranquil.it/$(lsb_release -is)/tiswapt-pub.gpg | apt-key add - echo "deb https://wapt.tranquil.it/$(lsb_release -is)/wapt-2.3/ $(lsb_release -c -s) main" > /etc/apt/sources.list.d/wapt.list
Puis, une fois que c'est, vous pouvez installer les paquets du serveur WAPT.
export DEBIAN_FRONTEND=noninteractive apt update apt install tis-waptserver tis-waptsetup -y unset DEBIAN_FRONTEND
À la fin, on voit bien le message "Installation/Upgrade of waptserver is finished". Nous devons exécuter l'assistant de post-installation, comme l'indique l'image ci-dessous.
Avant d'initier le processus de postconfiguration, prenez connaissance de la remarque suivante :
Lors de la configuration Nginx, le postconf WAPT va générer un paramètre Diffie-Hellman pour mieux sécuriser la connexion https. Si vous êtes sur une machine virtuelle qui vient juste d'être créee ou qui n'a pas fait grand chose, elle peut "manquer d'entropie" pour produire rapidement des nombres aléatoires nécessaires à la génération du paramètre Diffie-Hellman. L'installation au préalable du paquet rng-tools permet de pallier à ce problème :
apt-get install rng-tools
Pour démarrer la postconfiguration, vous devez exécuter cette commande (avec les droits root) :
/opt/wapt/waptserver/scripts/postconf.sh
Répondez "Oui" à la première question pour lancer l'outil de configuration.
Commencez par définir un mot de passe pour le compte administrateur du serveur WAPT.
Choisissez un type d'authentification pour les agents WAPT, c'est-à-dire pour les ordinateurs qui chercheront à s'enregistrer auprès du serveur WAPT. La première option désactive l'authentification. La seconde authentification s'appuie sur Kerberos, tandis que la troisième option impose de saisir un identifiant et mot de passe. Choisissez la seconde option, même si cela est modifiable par la suite.
À l'étape suivante, indiquez "Non" car nous ne souhaitons pas activer la fonctionnalité de déploiement d'OS pour le moment (j'en ai déjà parlé ici).
Répondez "Oui" lorsqu'on vous propose de configurer Nginx.
Vérifiez que le nom du serveur est correct (nom FQDN !) et validez avec "Accepter".
Validez une nouvelle fois, Nginx sera redémarré.
Validez encore pour que les démons waptserver et wapttasks soient démarrés à leur tour.
A la fin, le message "Postconfiguration completed" apparait. Il suffit d'appuyer sur Entrée.
Suite à la postconfiguration, le service Nginx est démarré donc vous pouvez accéder à l'interface Web du serveur WAPT à l'aide d'un navigateur en indiquant le nom du serveur. Pour ma part :
https://srv-wapt.it-connect.local
III. Inscrire le serveur WAPT dans l'Active Directory
Précédemment, nous avons choisi d'activer l'authentification Kerberos pour l'inscription des machines dans WAPT. Ceci implique une configuration spécifique du serveur WAPT pour authentifier les machines clientes. Tout d'abord, vous devez installer un ensemble de paquets pour permettre l'authentification Kerberos :
apt-get install krb5-user msktutil
Puis, vous devez éditer le fichier de configuration krb5.conf :
nano /etc/krb5.conf
Supprimez tout le contenu de ce fichier et indiquez seulement ces 4 lignes en adaptant avec le nom de votre domaine (en majuscules impérativement).
[libdefaults] default_realm = IT-CONNECT.LOCAL dns_lookup_kdc = true dns_lookup_realm=false
Enregistrez. Maintenant, il va falloir initier une connexion à l'Active Directory de façon à créer un compte ordinateur pour le serveur WAPT. Pour cela, utilisez un compte Administrateur ou un compte ayant l'autorisation pour inscrire une machine dans l'unité d'organisation "Provisioning" de l'Active Directory (qu'il convient de créer). Ici, j'utilise le compte "wapt" qui dispose des droits sur "Provisioning" (voir ce tutoriel si vous souhaitez utiliser la délégation de contrôle). En aucun cas, il ne s'agit d'un compte Administrateur du domaine !
kinit wapt
Après avoir saisi cette commande, il faut saisir le mot de passe du compte.
Lorsque vous avez établi la connexion, vous pouvez lister les tickets Kerberos en cache sur votre serveur WAPT avec cette commande :
klist
On voit bien la présence d'un ticket Kerberos avec le compte "[email protected]".
Désormais, exécutez les deux commandes ci-dessous (en adaptant le nom complet du contrôleur de domaine) pour créer le HTTP Keytab avec msktutil. Ce qui permettra au serveur WAPT de valider les demandes d'authentification.
msktutil --server SRV-ADDS-01.it-connect.local --precreate --host $(hostname) -b ou=Provisioning,dc=it-connect,dc=local --service HTTP --description "host account for wapt server" --enctypes 24 -N msktutil --server SRV-ADDS-01.it-connect.local --auto-update --keytab /etc/nginx/http-krb5.keytab --host $(hostname) -N
Après avoir exécuté ces deux commandes, un nouvel objet ordinateur correspondant au serveur WAPT sera visible dans l'annuaire :
Pour finir, sécurisez le fichier Keytab :
chmod 640 /etc/nginx/http-krb5.keytab
chown root:www-data /etc/nginx/http-krb5.keytab
Voilà, l'authentification Kerberos est configurée.
IV. Installer la console WAPT
La console WAPT doit être installée sur une machine différente du serveur WAPT, et pour le moment, elle est disponible seulement sous Windows. En guise de poste d'administration, une machine sous Windows 11 est utilisée. Elle est intégrée au domaine Active Directory it-connect.local.
Accédez à la page web du serveur WAPT à partir de la machine où vous souhaitez installer la console. Dans le menu "WAPTSERVER", cliquez sur "WAPTsetup". Une fois l'exécutable sur la machine, lancez-le...
Un assistant d'installation se lance. Commencez par accepter l'accord de licence.
Cochez l'option "Installer le service WAPT" et poursuivez.
Choisissez "URLS WAPT statiques" et indiquez l'URL de votre serveur pour le dépôt et le serveur, en respectant le format comme sur l'image ci-dessous. Veillez à ce que l'option "Utiliser le compte Kerberos de la machine pour l'enregistrement sur le WaptServer" soit cochée.
Poursuivez et patientez pendant l'installation.
L'installation est terminée. Cliquez sur "Terminer".
Désormais, la console WAPT est accessible sur cette machine. Pour accéder à la console, lancez "waptconsole.exe" qui se situe dans "C:\Program Files (x86)\wapt". Il sera nécessaire d'indiquer le mot de passe admin de votre serveur WAPT (défini pendant le processus de post-installation). Cliquez sur "OK".
V. Créer un certificat personnel
Après avoir installé la console et saisi le mot de passe, la fenêtre "Certificat personnel non renseigné dans la configuration" va s'afficher. Il va falloir créer un certificat personnel qui sera très utile pour signer les paquets, etc... Cliquez sur "Oui".
Vous pouvez constater que l'option "Chemin du certificat personnel" est vide, donc cliquez sur "Nouvelle clé et certificat".
Ici, choisissez un répertoire sécurisé dans lequel stocker la clé privée et le certificat. Dans mon cas, ce sera "C:\WAPT_Cert" et indiquez un mot de passe robuste pour la clé privée. Ce mot de passe doit être stocké en lieu sûr et il sera demandé pour certaines opérations. Validez.
Un message de confirmation apparaît.
Choisissez un préfixe pour les paquets WAPT que vous allez créer par la suite. Ceux proposés par Tranquil IT ont le préfixe "tis". Cliquez sur "Enregistrer".
Une autre fenêtre apparaît, cliquez sur "Oui".
VI. Générer et déployer un agent WAPT
A. Générer l'agent WAPT
La console s'ouvre ! Toutefois, une nouvelle étape se présente à vous : la création d'un agent WAPT que l'on pourra déployer sur les machines à gérer. À la question "Voulez-vous générer l'installeur waptagent pour le déploiement de WAPT sur les clients ?", répondez "Oui".
La fenêtre "Compiler l'agent WAPT" s'ouvre. On peut voir que le certificat précédemment créé sera utilisé pour signer cet agent. Cochez l'option "Utiliser Kerberos pour l'enregistrement initial" pour que les machines s'enregistrent via Kerberos (sinon cela ne fonctionnera pas compte tenu de la configuration effectuée côté serveur). Personnalisez les autres options si vous le souhaitez.
Cliquez sur "OK" et là vous devrez saisir le mot de passe de votre clé privée pour que le paquet de l'agent WAPT puisse être généré et signé.
Dans la console WAPT, au sein de l'onglet "Dépôt privé", le paquet "WAPT Agent" pour Windows apparaît !
Voyons comment déployer l'agent WAPT sur les machines à gérer.
B. Déployer l'agent WAPT par GPO
Pour déployer l'agent WAPT, on a au moins deux options : l'installation manuelle sur chaque poste ou le déploiement de l'agent par GPO. Étudions de plus près cette seconde option qui implique d'utiliser l'outil waptdeploy.exe, que l'on va exécuter par GPO avec des paramètres spécifiques.
Suivez les étapes suivantes pour déployer l'agent WAPT par GPO. L'objectif étant de lancer l'installation au démarrage de la machine.
1 - Récupérez l'exécutable de waptdeploy.exe sur votre serveur WAPT, pour ma part :
https://srv-wapt.it-connect.local/wapt/waptdeploy.exe
2 - Ouvrez la console de Gestion des stratégies de groupe et créez une nouvelle GPO avec le nom que vous souhaitez, par exemple : "Installer-WAPT-Agent".
3 - Parcourez les paramètres de cette façon : Configuration ordinateur > Stratégies > Paramètres Windows > Scripts (démarrage/arrêt) > Démarrage
Une fenêtre va s'ouvrir, au sein de l'onglet "Scripts", cliquez sur "Ajouter" puis sur "Parcourir".
À cet endroit, collez l'exécutable "waptdeploy.exe" et cliquez sur "Ouvrir", comme ceci :
Ensuite, retournez sur l'interface Web de votre serveur WAPT pour récupérer la ligne avec les paramètres indiqués sur la page d'accueil. Pour être plus précis, je parle de cette ligne :
Vous devez copier cette ligne dans la zone "Paramètres de scripts" de la GPO, comme ceci :
Validez... La GPO est prête, il ne reste plus qu'à lier la GPO sur une OU dans l'Active Directory et à tester sur une machine pour valider le déploiement de l'agent WAPT.
Au sein de la console WAPT, dans l'onglet "Inventaire" la machine doit remonter. Le temps que l'agent se déploie sur la machine cible, cela peut prendre quelques minutes.
L'agent WAPT va remonter diverses informations au sujet de la machine vers le serveur WAPT : des informations générales comme le nom, l'OS, l'adresse IP, le type de machine, ou encore l'utilisateur connecté. En complément, un inventaire matériel complet sera remonté, ainsi qu'un inventaire des logiciels présents sur la machine.
Une fois que l'agent est déployé et la machine visible dans WAPT, elle peut être gérée depuis la console WAPT.
VII. Déployer des logiciels avec WAPT
A. Récupérer un paquet à partir du store officiel WAPT
Comme je le disais en introduction, lorsque l'on déploie un logiciel sur une machine avec WAPT, on a la possibilité de piocher dans le magasin officiel de WAPT. Plus de 6 000 paquets sont référencés et prêts à l'emploi, comme vous pouvez le voir sur cette page. Ce magasin d'applications regroupe les paquets d'installation silencieuse pour Windows, mais aussi Linux et macOS.
Sur le store WAPT, les applications sont organisées par catégorie, et à chaque fois on peut voir quels sont les OS pour lesquels ce paquet est disponible.
Pour importer un paquet du magasin officiel sur le dépôt privé de son serveur WAPT, on va passer directement par la console WAPT. Pour cela, on va cliquer sur l'onglet "Dépôt privé", sur "Importer un paquet" puis sur "Importer depuis internet". L'interface présentée ci-dessous s'affichera.
Ici, vous pourrez rechercher un paquet par son nom, par mot clé, par système d'exploitation, par langue, etc... Si l'on prend l'exemple de Mozilla Firefox ESR. On peut rechercher "tis-firefox" ou "firefox" tout simplement, sélectionner le paquet dans la liste (en prenant bien la version Windows) et cliquer sur "Importer".
Pour finaliser l'importation, il est indispensable de saisir le mot de passe de sa clé privée et de valider l'import. On peut aussi indiquer que l'on souhaite importer les dépendances de ce logiciel, dans le cas où ce dernier a besoin d'autres paquets pour fonctionner.
Ensuite, le paquet "Mozilla Firefox ESR" est disponible dans votre dépôt privé et prêt à être déployé sur les machines gérées.
Pour cet exemple, le logiciel 7-Zip sera aussi déployé sur la machine. Je l'ai ajouté à mon dépôt privé sur le même principe que pour Firefox.
B. Créer un groupe de paquets
À partir du dépôt privé, vous pouvez créer un nouveau groupe de paquets. On va pouvoir créer un groupe nommé "Logiciels bureautique" pour intégrer à ce groupe tous les logiciels de bureautique de base que l'on souhaite mettre à disposition de nos utilisateurs. Ainsi, chaque paquet ajouté au groupe "Logiciels bureautique" sera installé sur les machines ciblées.
Dans l'onglet "Dépôt privé", on va cliquer sur "Générer un modèle de paquet" puis choisir "Groupe".
Ici, vous devez nommer le paquet et indiquer les dépendances. En matière de dépendance pour ce groupe, on va sélectionner 7-Zip et Firefox ESR (donc ils doivent apparaître dans la partie gauche de l'interface) puis cliquer sur "Build Upload".
Ce nouveau groupe est immédiatement créé et visible dans notre dépôt privé.
C. Installer des paquets sur des postes
L'installation des paquets sur une machine peut être déclenchée manuellement à partir de la console WAPT, ou sinon, il faut attendre la prochaine synchronisation de l'agent WAPT de chaque machine. Cette synchronisation est effectuée toutes les deux heures par l'agent WAPT.
Il y a plusieurs façons de cibler les machines sur lesquelles installer un ou plusieurs paquets. Ce qui est intéressant, c'est le fait que la console WAPT remonte l'arborescence de l'annuaire Active Directory. Les agents synchronisés sont ajoutés dans la bonne unité d'organisation, en se basant sur le contenu de l'annuaire.
Ainsi, on peut déployer notre groupe de paquets "Logiciels bureautique" sur toutes les machines de l'OU "PC" de l'Active Directory. Cette OU contient les postes de travail, notamment celui nommé "PC-04" sur lequel l'agent est déployé.
Pour cela, on va effectuer un clic droit sur l'OU "PC" et choisir "Créer ou éditer le paquet de l'Unité Organisationnelle".
Ici, on va ajouter une nouvelle dépendance à cette OU : le groupe "Logiciels bureautique". Si l'on n'utilise pas le système de groupes, on peut affecter directement un ou plusieurs paquets. Quand c'est fait, il faut cliquer sur "Build Upload".
Pour lancer les installations manuellement sur cette machine, on peut faire un clic droit sur la machine dans l'inventaire et cliquer sur "Lancer les installations". Intéressant pour effectuer un test immédiat sur une machine. Sinon, on peut aussi déclencher l'installation sur l'intégralité des machines de l'OU "PC" sur le même principe.
Dans la foulée, l'installation va être exécutée sur la machine PC-04 puisqu'elle se situe dans cette OU. Sur la droite de la console WAPT, on peut en savoir plus sur le statut des différentes tâches. Ici, tout semble OK.
Du côté du poste de travail PC-04, effectivement, il y a bien 2 nouvelles applications : Firefox et 7-Zip. Tout s'est déroulé comme prévu !
D. Personnaliser un paquet : déploiement sur mesure
L'une des forces de WAPT, c'est de permettre la personnalisation du déploiement d'un logiciel grâce à un fichier Python nommé "setup.py" intégré à chaque paquet WAPT. Sur le store de WAPT, le contenu du fichier "setup.py" de chaque paquet est visible. Si l'on prend l'exemple de l'application Visual Studio Code, le fichier est visible à l'adresse ci-dessous en cliquant sur "Voir" sous "SETUP.PY".
Le code Python permet de voir tout ce qui sera effectué pour installer Visual Studio Code sur les machines ciblées. Quand on regarde le détail, on voit rapidement que WAPT va plus loin qu'une simple installation. Par exemple, dans le cas de VSCode, WAPT va aussi désactiver la télémétrie, ainsi que la vérification des mises à jour des extensions et les mises à jour automatiques de ces mêmes extensions via la création d'un fichier de configuration "settings.json".
Si l'on souhaite apporter des modifications à un paquet mis en ligne sur le store WAPT, il va falloir utiliser une procédure spécifique. À partir de la fenêtre "Importer des paquets" (depuis Internet), on va sélectionner le paquet "tis-vscode" et cliquer sur "Télécharger et éditer" à la place de "Importer".
Après avoir fait cette manipulation, le paquet sera disponible dans "C:\waptdev" via un sous-dossier portant le nom complet du paquet. À l'intérieur de ce dossier, on va retrouver un fichier nommé "setup.py" que l'on va pouvoir éditer. Pour éditer ce fichier, le Bloc-notes peut suffire.
Dans ce fichier, on va simplement ajouter une ligne pour définir "PowerShell" comme langage par défaut lorsque l'on crée un nouveau fichier dans Visual Studio Code. Et oui, j'aime bien PowerShell, mais ici c'est bien en Python qu'il faut coder.
"files.defaultLanguage": "powershell"
Ce qui donne :
On enregistre le fichier "setup.py". Puisque l'on a terminé de personnaliser le paquet WAPT, on va pouvoir l'importer dans notre dépôt privé. Pour cela, dans l'onglet "Dépôt privé" de la console WAPT, on va cliquer sur "Importer un paquet" puis "Construire et importer un paquet dans le dépôt". C'est à ce moment-là que l'on va sélectionner le dossier du paquet "tis-vscode" dans "C:\waptdev".
Ce nouveau paquet apparaît dans le dépôt privé, aux côtés des autres paquets.
Il ne reste plus qu'à le déployer sur une ou plusieurs machines, sur le même principe que ce que l'on a vu précédemment.
Après installation de Visual Studio Code sur la machine PC-04, j'ai bien un fichier "settings.json" ! Si je crée un nouveau fichier, il est automatiquement associé au langage PowerShell par défaut ! On peut considérer que la modification apportée au paquet a fonctionné.
D'ailleurs, si l'on regarde le fichier "settings.json", on remarque bien la présence de la ligne ajoutée dans le cadre de la personnalisation du paquet :
VIII. Conclusion
Suite à la lecture de cet article, vous êtes en mesure de mettre en œuvre un serveur WAPT Enterprise et de déployer vos premiers logiciels sur vos machines ! La solution WAPT donne accès à un large éventail d'applications grâce au store officiel de l'éditeur, même s'il est possible de créer ses paquets sur mesure ou de personnaliser des paquets existants de façon simple à condition de mettre un peu les mains dans le cambouis.
Si vous désirez tester WAPT Enterprise, je vous invite à suivre le lien suivant puisque vous pouvez demander une licence d'essai gratuitement auprès de l'éditeur : Demander un essai WAPT - Sinon, il y a toujours la version WAPT Discovery, gratuite et limitée à 300 postes.
Bonjour
Merci pour ce tuto
Petite précision sur lequel je me casse la tête depuis un moment (sur la V2.5):
Dans :
msktutil –server SRV-ADDS-01.it-connect.local –precreate –host $(hostname) -b ou=Provisioning,dc=it-connect,dc=local –service HTTP –description « host account for wapt server » –enctypes 24 -N
J’ai du enlever « dc=it-connect,dc=local » pour que cela fonctionne et ajouter les attributs « msDs-supportedEncryptionTypes » en lecture/ecriture dans la délégation du compte wapt
Bonjour Emmanuel,
J’ai le même problème que toi par contre, je ne trouve pas dans la délégation de l’UO, d’attributs « msDs-supportedEncryptionTypes ». Je le retrouve bien mais seulement en éditant l’utilisateur WAPT directement puis dans « éditeur d’attributs » il est présent avec comme valeur « non défini ».
Je suis en windows server 2022 et debian 12 (d’ailleurs la version du paquet libnginx-mod-http-auth-spnego n’est plus dispo pour cette version actuellement sur les dépôts. Il faut aller le chercher ici pour ceux que ça intéresse : https://wapt.tranquil.it/debian/wapt-2.5/pool/main/libn/libnginx-mod-http-auth-spnego/ )