Pagina 1 di 1

[RISOLTO] Episodio 3 di Kerberos

Pubblicato: 31 dicembre 2019 - 13:19
di pirona
Buongiorno,

Ho un piccolo problema con l'implementazione del mio sistema Wapt per quanto riguarda Kerberos.

Ho letto gli episodi precedenti e non mi sono lasciato ingannare dal problema $(hostname): ho un serviceprincipalname che ha il nome che viene contattato dagli agenti.

Quando distribuisco il mio agente, il mio computer client di prova non si registra nella console.
Tutto il resto funziona: utilizzo uno script PowerShell per avviare waptdeploy.
Ho il servizio, il negozio, riesco a vedere i miei pacchetti, ma non c'è nessun nuovo PC nella console.

Quando sono nel prompt dei comandi con privilegi elevati, eseguo il comando:

Codice: Seleziona tutto

wapt-get register -l debug --service
Io ho questo:

Codice: Seleziona tutto

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
...che resta sospeso ad vitam eternam.

Ricevo anche un errore 403 quando vado su https://ilmioserver.td/add_host_kerberos .. che non riesco a spiegare su un browser quando accedo come amministratore del dominio.

Utilizzo un server Debian 9, non ho nulla di particolare nel mio hostname, né nel mio /etc/hosts.
Sul lato client, si tratta di Windows 10 Pro 1903/1909

Se avete qualche dritta, sono tutto orecchie! :)

Computer amministratore: Windows 10
Versione Wapt: 1.7.4.6232

Re: Episodio 3 di Kerberos

Pubblicato: 2 gennaio 2020 - 10:09
di sfontenau
Buongiorno

Il modo più semplice per eseguire il debug è farlo con un psexec

Codice: Seleziona tutto

psexec.exe -s cmd
wapt-get register -ldebug
È quindi possibile verificare che la workstation abbia negoziato un ticket Kerberos:

Codice: Seleziona tutto

klist

Tieni presente che il tuo agente wapt deve avere il valore corretto (in wapt-get.ini)

Codice: Seleziona tutto

use_kerberos=1
Quindi sul server, nel file

/opt/wapt/conf/waptserver.ini

È necessario:

Codice: Seleziona tutto

use_kerberos = True
Nel file /etc/nginx/sites-enabled/wapt.conf

Devi riuscire a trovarlo

Codice: Seleziona tutto

            
            location /add_host_kerberos {
                auth_gss on;
                auth_gss_keytab  /etc/nginx/http-krb5.keytab;
                proxy_pass http://127.0.0.1:8080;
            }
In caso contrario, riavviare postconf e selezionare la casella Kerberos

Re: Episodio 3 di Kerberos

Pubblicato: 7 gennaio 2020 - 16:43
di pirona
Buongiorno,

Grazie per il suggerimento: ho eseguito tutti i test e ho ricevuto questo tramite un psexec:

Codice: Seleziona tutto

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

Ho anche rieseguito con successo il postconf.
Sembra un problema molto semplice, ma non riesco a capirlo bene.

Re: Episodio 3 di Kerberos

Pubblicato: 7 gennaio 2020 - 17:03
di pirona
Vorrei anche chiarire cosa ricevo con un aggiornamento di stato sul servizio (sul server wapt):

Codice: Seleziona tutto

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.',)

[RISOLTO] Episodio 3 di Kerberos

Pubblicato: 7 gennaio 2020 - 17:29
di pirona
Ciao,

ho trovato la soluzione: un chmod 644 sul file keytab utilizzato da nginx...

Grazie per l'aiuto.