[RESUELTO] Episodio 3 de Kerberos

Preguntas sobre el servidor WAPT / Solicitudes y ayuda relacionadas con el servidor WAPT
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
pirona
Mensajes: 7
Inscripciones: 15 Oct 2019 - 15:09 horas.

31 de diciembre de 2019 - 13:19

Buen día,

Tengo un pequeño problema con la implementación de mi sistema Wapt con respecto a Kerberos.

Leí los episodios anteriores y no me engañó el problema $(hostname): tengo un serviceprincipalname que tiene el nombre con el que se comunican los agentes.

Cuando implemento mi agente, mi máquina cliente de prueba no se registra en la consola.
Todo lo demás funciona: uso un script de PowerShell para iniciar waptdeploy.
Tengo el servicio, la tienda, puedo ver mis paquetes, pero no hay ninguna PC nueva en la consola.

Cuando estoy en el símbolo del sistema elevado, ejecuto el comando:

Código: Seleccionar todo

wapt-get register -l debug --service
Tengo esto:

Código: Seleccionar todo

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
... que queda suspendido ad vitam eternam.

También recibo un error 403 cuando voy a https://myserver.td/add_host_kerberos .. lo cual no puedo explicar en un navegador cuando inicio sesión como administrador del dominio.

Estoy en un servidor Debian 9, no tengo nada especial en mi nombre de host ni en mi /etc/hosts.
En el lado del cliente, estos son Windows 10 Pro 1903/1909

Si tienes alguna pista, ¡estoy todo oídos! :)

Equipo del administrador: Windows 10
Versión de Wapt: 1.7.4.6232
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

2 de enero de 2020 - 10:09 AM

Buen día

La forma más fácil de depurar es hacerlo con un psexec

Código: Seleccionar todo

psexec.exe -s cmd
wapt-get register -ldebug
Luego puede verificar que la estación de trabajo haya negociado un ticket Kerberos:

Código: Seleccionar todo

klist

Tenga en cuenta que su agente wapt debe tener el valor correcto (en wapt-get.ini)

Código: Seleccionar todo

use_kerberos=1
Luego en el servidor, en el archivo

/opt/wapt/conf/waptserver.ini

Es necesario:

Código: Seleccionar todo

use_kerberos = True
En el archivo /etc/nginx/sites-enabled/wapt.conf

Debes poder encontrar esto

Código: Seleccionar todo

            
            location /add_host_kerberos {
                auth_gss on;
                auth_gss_keytab  /etc/nginx/http-krb5.keytab;
                proxy_pass http://127.0.0.1:8080;
            }
De lo contrario, reinicie postconf y marque la casilla Kerberos
pirona
Mensajes: 7
Inscripciones: 15 Oct 2019 - 15:09 horas.

7 de enero de 2020 - 16:43

Buen día,

Gracias por el consejo: hice todas tus pruebas y recibí esto a través de un psexec:

Código: Seleccionar todo

...
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.

También volví a ejecutar postconf con éxito.
Parece un problema muy simple, pero no puedo identificarlo exactamente.
pirona
Mensajes: 7
Inscripciones: 15 Oct 2019 - 15:09 horas.

7 de enero de 2020 - 17:03

También quiero aclarar qué recibo con una actualización de estado en el servicio (en el servidor wapt):

Código: Seleccionar todo

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
Mensajes: 7
Inscripciones: 15 Oct 2019 - 15:09 horas.

7 de enero de 2020 - 17:29

Hola,

encontré la solución: un chmod 644 en el archivo keytab utilizado por nginx...

Gracias por su ayuda.
Bloqueado