[RESOLU] Kerberos Episode 3

Question about WAPT Server / Requêtes et aides autour du serveur Wapt
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
pirona
Messages : 7
Inscription : 15 oct. 2019 - 15:09

31 déc. 2019 - 13:19

Bonjour,

j'ai un petit souci avec l'implémentation de mon wapt concernant Kerberos.

J'ai lu les épisodes précédents, et ne me suit pas fait avoir par le problème $(hostname) : j'ai un serviceprincipalname qui porte le nom qui est contacté par les agents.

Lorsque je déploie mon agent, ma machine client test ne s'enregistre pas dans la console.
Tout le reste fonctionne : je passe par un script powershell pour lancer waptdeploy.
J'ai le service, le store, je vois mes paquets, mais point de nouveau pc dans la console.

Quand en cmd élevé, j'exécute la commande :

Code : Tout sélectionner

wapt-get register -l debug --service
j'ai ceci :

Code : Tout sélectionner

C:\Windows\system32>wapt-get register -l debug --service
Current loglevel : DEBUG
About to speak to waptservice...
Call register URL...
url: http://127.0.0.1:8088/register.json?notify_user=0&notify_server=1 timeout: 10000
url: http://127.0.0.1:8088/events?max_count=1 timeout: 11000
Waptservice User :url: http://127.0.0.1:8088/events?max_count=1 : OK Duration: 47
... qui reste suspendu ad vitam eternam.

J'ai aussi une 403 quand je vais sur https://monserveur.td/add_host_kerberos .. que je ne m'explique pas sur un navigateur en m'identifiant en admin du domaine.

Je suis sur un serveur en Debian 9, je n'ai rien de fantaisiste dans mon hostname, ni dans mon /etc/hosts.
Côté client, ce sont des Windows 10 Pro 1903/1909

Si vous avez des pistes, je suis preneur ! :)

Machine admin : Windows 10
Version wapt : 1.7.4.6232
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1795
Inscription : 10 juil. 2014 - 23:52
Contact :

02 janv. 2020 - 10:09

Bonjour

Le plus simple pour debug c'est de le faire avec un psexec

Code : Tout sélectionner

psexec.exe -s cmd
wapt-get register -ldebug
Vous pouvez ensuite vérifier que le poste a négociée un ticket kerberos:

Code : Tout sélectionner

klist

Attention votre agent wapt doit bien avoir la valeur (dans wapt-get.ini)

Code : Tout sélectionner

use_kerberos=1
Ensuite sur le serveur, dans le fichier

/opt/wapt/conf/waptserver.ini

Il faut :

Code : Tout sélectionner

use_kerberos = True
Dans le fichier /etc/nginx/sites-enabled/wapt.conf

Vous devez bien trouver ceci

Code : Tout sélectionner

            
            location /add_host_kerberos {
                auth_gss on;
                auth_gss_keytab  /etc/nginx/http-krb5.keytab;
                proxy_pass http://127.0.0.1:8080;
            }
Si non, relancer le postconf et cocher la case kerberos
pirona
Messages : 7
Inscription : 15 oct. 2019 - 15:09

07 janv. 2020 - 16:43

Bonjour,

Merci pour la piste : j'ai fait tous vos tests et ai reçu ceci via un psexec :

Code : Tout sélectionner

...
2020-01-07 16:36:16,733 DEBUG https://monserveur.tld:443 "POST /add_host_kerberos HTTP/1.1" 403 169
2020-01-07 16:36:16,733 DEBUG authenticate_user(): returning <Response [403]>
2020-01-07 16:36:16,733 DEBUG handle_401(): returning <Response [403]>
2020-01-07 16:36:16,733 DEBUG handle_response(): returning <Response [403]>
2020-01-07 16:36:16,733 DEBUG handle_response() has seen 0 401 responses
2020-01-07 16:36:16,733 DEBUG handle_other(): Handling: 403
2020-01-07 16:36:16,733 DEBUG handle_other(): returning <Response [403]>
2020-01-07 16:36:16,733 DEBUG handle_response(): returning <Response [403]>
Traceback (most recent call last):
  File "<string>", line 1425, in <module>
  File "<string>", line 1207, in main
  File "C:\Program Files (x86)\wapt\common.py", line 5412, in register_computer
    signer = self.get_host_certificate().cn
  File "C:\Program Files (x86)\wapt\common.py", line 1882, in post
    req.raise_for_status()
  File "C:\Program Files (x86)\wapt\lib\site-packages\requests\models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://monserveur.tld/add_host_kerberos
FATAL ERROR : HTTPError: 403 Client Error: Forbidden for url: https://monserveur.tld/add_host_kerberos
Exception at 0044181C: EPyIOError:
HTTPError: 403 Client Error: Forbidden for url: https://monserveur.tld/add_host_kerberos.

j'ai également rééxécuté le postconf avec succès.
Ça ressemble à un problème très simple mais je n'arrive pas à mettre le doigt dessus.
pirona
Messages : 7
Inscription : 15 oct. 2019 - 15:09

07 janv. 2020 - 17:03

Je précise aussi ce que je reçois avec un status sur le service (sur le serveur wapt) :

Code : Tout sélectionner

root@wapt:/opt/wapt# systemctl status waptserver.service
● waptserver.service - WAPT Server startup script
   Loaded: loaded (/lib/systemd/system/waptserver.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-01-07 16:58:54 CET; 1min 4s ago
 Main PID: 8929 (python)
    Tasks: 1 (limit: 1147)
   Memory: 42.1M
   CGroup: /system.slice/waptserver.service
           └─8929 /opt/wapt/bin/python /opt/wapt/waptserver/server.py

Jan 07 16:58:54 monserveur.tld systemd[1]: Started WAPT Server startup script.
Jan 07 16:59:22 monserveur.tld  python[8929]: 2020-01-07 16:59:22,559 CRITICAL Get_websocket_auth_token failed EWaptAuthenticationFailure(u'Unknown host UUID 4DA586BB-BE2D-4232-903D-1DDC1F8E190F. Please register first.',)
pirona
Messages : 7
Inscription : 15 oct. 2019 - 15:09

07 janv. 2020 - 17:29

Bonjour,

j'ai trouvé la solution : un chmod 644 sur le fichier keytab utilisé par nginx...

Merci de votre aide.
Verrouillé