DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Configurazione del Protocollo di Autenticazione Kerberos

Configurazione del Protocollo di Autenticazione Kerberos

Chiamato così dal cane a tre teste che custodiva le porte degli inferi nei miti dell’Antica Grecia, il protocollo Kerberos fornisce un servizio di autenticazione sicura per reti informatiche. Esegue l’autenticazione reciproca tra l’utente e il server con l’aiuto di un Centro di Distribuzione delle Chiavi (KDC) terzo e fidato che fornisce il servizio di autenticazione e concessione dei ticket. Tutti i principali sistemi operativi, tra cui Microsoft Windows, Linux, Apple OS X e FreeBSD, supportano il protocollo Kerberos.

I messaggi del protocollo Kerberos sono protetti contro gli attacchi di riproduzione e l’intercettazione mediante crittografia con chiavi segrete condivise. Lo scopo principale di Kerberos è evitare la trasmissione di password criptate attraverso la rete. Elimina la minaccia dei packet sniffer e migliora la sicurezza complessiva della rete.

Sebbene il provider di supporto alla sicurezza di Kerberos affronti efficacemente le gravi minacce alla sicurezza, potrebbe essere difficile da implementare a causa di una varietà di limitazioni:

  • Se il server Kerberos è inattivo, gli utenti non possono accedere. Il problema può essere risolto utilizzando meccanismi di autenticazione di riserva e server Kerberos multipli.
  • Gli orologi degli host coinvolti devono essere sincronizzati. In caso contrario, l’autenticazione fallirà, poiché i ticket di Kerberos hanno un certo periodo di validità.
  • Kerberos non può essere utilizzato quando gli utenti vogliono connettersi a servizi da sistemi non affidabili.
  • Nel caso venga utilizzata la crittografia simmetrica, il compromissione dell’infrastruttura di autenticazione permetterà a unattaccante di impersonare qualsiasi utente.
  • Ogni servizio di rete che richiede un nome di host diverso avrà bisogno del proprio set di chiavi di Kerberos.

Come Funziona l’Autenticazione Kerberos

kerberos

Un Centro di Distribuzione delle Chiavi è composto da un Server di Autenticazione (AS) e un Server di Concessione dei Ticket (TGS). TGT è un Ticket di Concessione dei Ticket.

  1. L’utente inserisce il login e la password. L’ID utente in testo chiaro va al Server di Autenticazione (AS) con una richiesta di servizi per conto dell’utente.
  2. AS controlla se l’accesso dell’utente è presente nel database. Se ci sono informazioni su quell’utente, AS può generare una chiave segreta del cliente in base all’ID e alla password dell’utente. AS invia all’utente:
    • La chiave di sessione client/TSG (crittografata con la chiave segreta del cliente);
    • TGT che include l’ID utente, l’indirizzo di rete e il periodo di validità del ticket + chiave di sessione Client/TGS (crittografata con la chiave segreta del TGS).
  3. L’utente decodifica il primo messaggio ma non può decodificare il secondo, poiché non possiede la chiave segreta del TGS. Il cliente invia un messaggio al TGS:
    • Il TGT ricevuto da AS + ID del server + chiave segreta TGS/Client (crittografata con la chiave segreta del TGS);
    • L’autenticatore che include l’ID del cliente e il timestamp (crittografato con la chiave di sessione Client/TSG).
  4. Il TGS decripta il primo messaggio, ottiene il TGT + chiave di sessione TGS/Client, con cui decripta il secondo messaggio. Il TGS verifica se l’ID utente del primo messaggio corrisponde all’ID del secondo messaggio e se il timestamp non supera il periodo di validità del ticket. In caso positivo, il TGS invia all’utente:
    • L’ID utilizzato, l’indirizzo di rete, il periodo di validità del ticket + chiave di sessione Client/Server (crittografata con la chiave segreta del server);
    • La chiave di sessione client/server (crittografata con la chiave segreta Client/TGS).
  5. Il cliente invia al server a cui tenta di accedere:
    • L’ID utilizzato, l’indirizzo di rete, il periodo di validità del ticket + chiave di sessione Client/Server (crittografata con la chiave segreta del server);
    • L’autenticatore che include l’ID e il timestamp (crittografato con la chiave di sessione Client/Server).
  6. Il server di destinazione decripta i messaggi dell’utente, verifica se l’ID utente nei due messaggi ha lo stesso valore e se il periodo di validità non è superato, quindi invia al cliente il seguente parametro per confermare la sua identità:
    • Timestamp + 1 (crittografato con la chiave di sessione client/server).

Il cliente verifica se il valore del timestamp è timestamp + 1, il che mostra la vera identità del server. Se è così, il cliente può fidarsi del server e iniziare a lavorare con esso.

Applicazioni Moderne di Kerberos

Kerberos rimane vitale negli ambienti aziendali odierni. I fornitori di cloud integrano Kerberos con i loro servizi di identità. L’autenticazione multifattoriale migliora la postura di sicurezza di Kerberos. Le soluzioni di single sign-on sfruttano Kerberos per un accesso senza interruzioni. Molte applicazioni containerizzate supportano l’autenticazione Kerberos. I pipeline DevOps usano Kerberos per flussi di lavoro CI/CD sicuri. I sistemi di gestione dei dispositivi mobili incorporano i principi di Kerberos. Le architetture Zero Trust spesso si basano sulle fondamenta di Kerberos. Soluzioni di identità federata estendono Kerberos oltre i confini organizzativi. La gestione automatizzata dei certificati semplifica la manutenzione di Kerberos. Le implementazioni moderne affrontano molte delle limitazioni tradizionali di Kerberos.

Configurare il Protocollo di Autenticazione Kerberos

Per configurare il protocollo Kerberos, è necessario fare quanto segue:

  1. Creare un utente Active Directory (può essere utilizzato uno già esistente).
    • Accedere al server del controller di dominio, fare clic su Start → Strumenti di Amministrazione e avviare Utenti e Computer di Active Directory.
    • Se non è già selezionato, fare clic sul nodo del proprio dominio (domain.com).
    • Fare clic con il tasto destro su Utenti, puntare su Nuovo, e quindi fare clic su Utente.
    • Nella finestra di dialogo Nuovo Oggetto → Utente specificare i parametri del nuovo utente. Può essere un utente normale, non è necessario fornire all’utente ulteriori privilegi. L’account utente deve essere attivo (con la casella di controllo Account disabilitato non selezionata) e la password dell’account deve essere perpetua (con la casella di controllo Password mai scade selezionata).
  2. Assegnare i nomi principali con le chiavi crittografate sul controller di dominio. Per le macchine su Linux, creare un file keytab contenente coppie di principali Kerberos e chiavi crittografate. Un file keytab viene utilizzato per autenticarsi a vari sistemi remoti utilizzando Kerberos senza inserire una password.
    • Creare un keytab con la prima voce utilizzando lo strumento ktpass: ktpass /princ user1_backend@DOMAIN.COM /mapuser user1_backend /pass /crypto all /ptype KRB5_NT_PRINCIPAL /out C:\Users\user1\Desktop\datasunrise.keytab -setupn
      /princIl nome principale del servizio (SPN) nel seguente formato: @
      /mapuserMappa il nome del principale Kerberos, che è specificato dal parametro princ, al dominio dell’utente specificato.
      /passSpecifica la password per il nome principale dell’utente.
      /ptypeSpecifica il tipo di principale. Utilizzare KRB5_NT_PRINCIPAL.
      /cryptoSpecifica le chiavi generate nel file keytab.
      /outAssegna una directory e un nome per il file *.keytab di output.
      -setupnNon imposta il nome principale dell’utente insieme al nome principale del servizio.
    • Creare una seconda voce nel file keytab per connettersi al database utilizzando l’utente AD. L’esempio è dato per creare voci keytab per connettersi al database Vertica utilizzando l’utente AD. Per altri database o autenticazioni GUI, eseguire lo stesso comando con il nome del servizio corrispondente nel parametro /princ. ktpass /out ./datasunrise.keytab /princ vertica/user1.domain.com@DOMAIN.COM /mapuser user1 /mapop set /pass /ptype KRB5_NT_PRINCIPAL /crypto RC4-HMAC-NT
    • Sarà necessario trasferire il file keytab sulla macchina Linux.
  3. Configurare la delega di Active Directory.
    • Sul controller di dominio, accedere a Utenti e Computer di Active Directory, individuare l’account della macchina che si desidera configurare per Kerberos.
    • Nella sezione Proprietà, andare alla scheda Delega e selezionare Fida questo computer per delega solo ai servizi specificati e fare clic su Aggiungi.
    • Nella finestra Utenti e Computer, specificare l’account utente che è stato utilizzato per avviare il database o il nome del server in cui è installato l’RDBMS.
    • Facoltativamente, è possibile utilizzare Controlla nomi per vedere se un utente o un computer specificato esiste e fare clic su OK, quindi selezionare il servizio richiesto e fare clic su OK.
  4. Installare e configurare il client Kerberos sulla propria macchina. sudo apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-config

    Modificare il file /etc/krb5.conf per aggiungere il nome completo del dominio, il nome del controller di dominio e il parametro realm

    Importante: Non lasciare alcun commento taggato con il segno “#” nel file di configurazione.

    [libdefaults]
        default_realm       =           DOMAIN.COM    # parametro specifico del dominio (nome completo del dominio)
        clockskew           =           300
        ticket_lifetime     =           1d
        forwardable         =           true
        proxiable           =           true
        dns_lookup_realm    =           true
        dns_lookup_kdc      =           true
        
       
    [realms]
        DOMAIN.COM = {
        kdc            =       hostname.domain.com   # parametro specifico del dominio (nome del controller di dominio)
        admin_server   =       hostname.domain.com   # parametro specifico del dominio (nome del controller di dominio)
        default_domain =       DOMAIN.COM            # parametro specifico del dominio (nome completo del dominio)
        }
        
    [domain_realm]
        .domain.com = DOMAIN.COM  # parametro specifico del dominio (nome di dominio per i nomi DNS)
        domain.com = DOMAIN.COM   # parametro specifico del dominio (nome di dominio per i nomi DNS)
        
    [appdefaults]
        pam = {
        ticket_lifetime         = 1d
        renew_lifetime          = 1d
        forwardable             = true
        proxiable               = false
        retain_after_close      = false
        minimum_uid             = 0
        debug                   = false
        }

Per le macchine con sistema operativo Windows, non è necessario installare e configurare il protocollo Kerberos ma deve essere nel dominio Active Directory. Inoltre, per impostare i nomi principali dei servizi viene utilizzato il comando setspn. Di seguito un esempio di configurazione di una macchina Windows per connettersi al database MS SQL Server utilizzando le credenziali utente AD.

L’indirizzo del proxy deve corrispondere all’SPN registrato del servizio MSSQLSvc. Utilizzare lo strumento SetSPN per registrare i due SPN richiesti per l’account del computer per il quale è stata consentita la delega:

setspn -A MSSQLSvc/proxy-host:proxy-port proxy-host setspn -A MSSQLSvc/full-fqdn-proxy-host:proxy-port proxy-host

È possibile ottenere l’elenco di tutti gli SPN registrati con il seguente comando:

setspn -L proxy-host

Per eliminare il proxy SPN, eseguire le seguenti operazioni:

setspn -D MSSQLSvc/proxy-host:proxy-port proxy-host

Per testare lo schema di autorizzazione eseguire il seguente comando dopo essersi connessi al server:

select auth_scheme from sys.dm_exec_connections where session_id=@@spid

Il risultato corrisponderà allo schema di autenticazione utilizzato dal server: SQL, NTLM o KERBEROS.

Nel caso si riceva l’errore “Cannot generate SSPI context”, fare riferimento alle istruzioni di supporto Microsoft su come risolvere il problema con l’interfaccia del provider di supporto alla sicurezza.

DataSunrise può funzionare come un proxy di autenticazione per database cloud e on-premises per minimizzare i rischi di accessi utente non autorizzati mantenendo le politiche di autenticazione di Microsoft Active Directory e del protocollo Kerberos.

Il suo database o archiviazione basata su cloud contiene informazioni sensibili che richiedono protezione? Ha bisogno di essere conforme ai regolamenti GDPR, SOX o HIPAA? Scopra le soluzioni all’avanguardia di DataSunrise per l’auditing del database, la sicurezza e il mascheramento dei dati. Provi il nostro software gratuitamente o programmi una demo online oggi stesso.

Successivo

Creare una Macchina Virtuale DataSunrise su Microsoft Azure

Creare una Macchina Virtuale DataSunrise su Microsoft Azure

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

Countryx
United States
United Kingdom
France
Germany
Australia
Afghanistan
Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Bouvet
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo, Republic of the
Congo, The Democratic Republic of the
Cook Islands
Costa Rica
Cote D'Ivoire
Croatia
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-Bissau
Guyana
Haiti
Heard Island and Mcdonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic Of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libyan Arab Jamahiriya
Liechtenstein
Lithuania
Luxembourg
Macao
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
North Macedonia, Republic of
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestinian Territory, Occupied
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Helena
Saint Kitts and Nevis
Saint Lucia
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia and Montenegro
Seychelles
Sierra Leone
Singapore
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and the South Sandwich Islands
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-Leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Zimbabwe
Choose a topicx
Informazioni generali
Vendite
Servizio clienti e supporto tecnico
Richieste di collaborazione e alleanza
Informazioni generali:
info@datasunrise.com
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
partner@datasunrise.com