Vai al contenuto

Configurazioni per il supporto di schermatura Kerberos

Warning

Per poter utilizzare lo schermatore Kerberos, gli account amministratore devono essere collocati nel gruppo Protected Users.
Questo obbliga a utilizzare il protocollo di autenticazione Kerberos invece di NTLM. Il Edge Gateway deve prima essere configurato per supportare l'autenticazione Kerberos.

Configurare Edge Gateway per supportare l'autenticazione Kerberos con account posizionati in Protected Users

Lo schermatura Kerberos fornisce crittografia aggiuntiva per gli scambi iniziali tra il client e il KDC (Kerberos Domain Controller) utilizzando informazioni collegate a un account di computer.

cyberelements.io o cyberelements Cleanroom preferibilmente eseguiti su macchine Debian che non sono connesse a un dominio AD, il che significa che non hanno alcuna informazione sull'account del computer sull'AD.
La configurazione per supportare lo schermatura Kerberos consiste in due fasi:

  • Creazione di un account di computer di servizio nell'AD
  • Configurazione di schermatura Kerberos sul Edge Gateway basata sull'account creato in precedenza

Creazione di un account di computer di servizio

Info

Questa pagina userà un account di servizio chiamato svc_cyberelements come esempio. Adatta i seguenti comandi in base al nome dell'account di servizio.

Warning

Se si desidera utilizzare le postazioni di lavoro PAW, inserire questo account di servizio nello stesso silo delle postazioni di lavoro PAW di destinazione.

Dal controller di dominio, iniziare creando un account computer con una password utilizzata per generare i ticket Kerberos.

Per creare questo account, è possibile utilizzare il seguente comando Powershell da un controller di dominio (adattare il nome dell'account di servizio, nell'esempio svc_cyberelements, e l'UO desiderata, nell'esempio OU=Service_accounts,DC=domain,DC=local, per creare l'account di servizio):

1
New-ADComputer -Name svc_cyberelements -SAMAccountName 'svc_cyberelements$' -AccountPassword $Null -Path 'OU=Service_accounts,DC=domain,DC=local'-KerberosEncryptionType AES256 -PasswordNeverExpires $True -Enabled $True

Per verificare che l'account del computer sia stato creato, utilizzare il seguente comando (sostituire svc_cyberelements con il nome dell'account creato in precedenza):

1
Get-ADComputer -Identity svc_cyberelements -Properties Enabled

Quindi utilizzare lo strumento ktpass di Windows per esportare un file keytab che conterrà le chiavi di crittografia che consentiranno al gateway di recuperare il TGT.

Example

Esempio per creare un file svc_cyberelements.keytab con l'account del computer:

1
ktpass /princ 'svc_cyberelements$@DOMAIN.LOCAL' /mapuser 'svc_cyberelements$@DOMAIN.LOCAL' +rndPass /out svc_cyberelements.keytab /crypto AES256-SHA1 /ptype KRB5_NT_SRV_HST /mapop set
Ricordarsi di inserire i simboli $ alla fine dei nomi degli account e di mettere la maiuscola nel nome del dominio (obbligatorio).

Accettare qualsiasi richiesta di conferma che possa apparire inserendo y.

Poi riposizionare il valore dell'attributo UserPrincipalName con il seguente comando PowerShell:

1
Set-ADComputer 'svc_cyberelements$' -UserPrincipalName 'svc_cyberelements$@DOMAIN.LOCAL'

Configurazione di schermatura Kerberos sul Edge Gateway

Riprendi il file keytab generato in precedenza e copialo sul server Edge Gateway.
In un contesto in cui sono stati generati diversi file keytab e devono essere utilizzati sullo stesso Edge Gateway, si prega di combinare i file keytab in un singolo file .

Avvertenza

Il file keytab contiene le chiavi di crittografia. Se un utente malintenzionato ne ottiene possesso, può impersonare l'account del computer associato, riducendo così la sicurezza dell'infrastruttura.
Questo file non deve quindi essere memorizzato in nessun altro luogo che sul Edge Gateway.

Posizionare il file nella directory /etc/ipdiva/cleanroom/.

Cambiare i proprietari dei file keytab in ipdivacareuser per l'utente e carerecord per il gruppo, quindi modificare i permessi dei file (modificare il file keytab in base al nome del proprio file):

1
2
chown ipdivacareuser:carerecord /etc/ipdiva/cleanroom/svc_cyberelements.keytab
chmod 640 /etc/ipdiva/cleanroom/svc_cyberelements.keytab

Modificare il file di configurazione Edge Gateway /etc/ipdiva/cleanroom/xrdprecord.ini per specificare, tramite il parametro keytab=, il percorso verso il file keytab preparato in precedenza.

Example

2
keytab=/etc/ipdiva/cleanroom/svc_cyberelements.keytab

In questa fase, la connessione alle applicazioni RDP privilegiate in modalità agentless (HTML5 o altro) dovrebbe funzionare con account utente appartenenti a Protected Users e quindi richiedere una forte autenticazione Kerberos. La configurazione dell'applicazione RDP deve soddisfare determinati prerequisiti.

Prova della configurazione di Kerberos

Debugging

I seguenti comandi kinit possono fornire ulteriori log dopo l'esecuzione del seguente comando (valido fino a quando la sessione SSH o della console non viene disconnessa):

1
export KRB5_TRACE=/dev/stdout

Iniziamo recuperando un ticket Kerberos con un comando simile a quello seguente:

1
kinit -k -t /etc/ipdiva/cleanroom/svc_cyberelements.keytab 'svc_cyberelements$@DOMAIN.LOCAL' -c /tmp/test_kerberos

Assicurati di sostituire la posizione del file keytab, il nome dell'account di servizio creato e il suo dominio associato.

Se il recupero del ticket Kerberos è stato un successo, il seguente comando dovrebbe indicare l'esistenza di un ticket per l'account del servizio:

1
klist -c /tmp/test_kerberos

Se il recupero è riuscito, è necessario tentare di recuperare un ticket per un utente con un comando simile a quello seguente:

1
kinit -T /tmp/test_kerberos user@DOMAIN.LOCAL

Sostituire user@DOMAIN.LOCAL con un utente che probabilmente si connetterà tramite RDP e Kerberos armoring. Si prega di notare che verrà richiesta la password di questo utente.
Se il recupero del biglietto è riuscito, il seguente comando lo visualizzerà:

1
klist -c

Se viene visualizzato un errore KDC policy rejects request while getting initial credentials, significa che il KDC ha rifiutato la richiesta di biglietto.

  • kinit non è stato in grado di utilizzare il ticket /tmp/test_kerberos (se kinit non può utilizzarlo, continua senza un messaggio di errore con una richiesta di ticket di base)
  • Il conto di servizio non è presente nel silo dell'utente testato. Ciò si verifica quando AD è isolato e richiede che il conto di computer di servizio sia collocato nel silo appropriato {target="_blank"}.

Ulteriori informazioni sono disponibili nei registri degli eventi Sécurité del controllore di dominio (KDC) utilizzato.

Dopo la prova, si raccomanda di cancellare i ticket generati:

1
2
kdestroy
kdestroy -c /tmp/test_kerberos

Combina più file keytab in un singolo file

Se l'architettura cyberelements.io o cyberelements Cleanroom si basa su un singolo Edge Gateway che consentirà l'accesso a più terze parti, è necessario unire tutti i file keytab generati per i diversi account di servizio in un singolo file keytab.

Nota

In questa sezione, si presumeranno i seguenti file keytab: /root/t0.keytab, /root/t1.keytab e /root/t2.keytab. Questi file devono essere stati inviati al Edge Gateway.

Per unire i file keytab, accedere a Edge Gateway come root, quindi utilizzare i seguenti comandi:

1
2
3
4
5
ktutil
rkt /root/t0.keytab
rkt /root/t1.keytab
rkt /root/t2.keytab
wkt /root/unified.keytab

I comandi rkt consentono di caricare quanti file keytab siano necessari, e il comando wkt genera un nuovo file keytab.
Per favore, modifica i percorsi dei file in base a quelli in tuo possesso.

Premere il tasto q per uscire dall'utilità ktutil.

Ripristinare il unified.keytab file e seguire le Configuring Kerberos shielding on the Edge Gateway Sezione.