GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare Kerberos 5 KDC Server su Linux per l'autenticazione

Kerberos è un protocollo di autenticazione di rete.

Kerberos fornisce una forte autenticazione crittografica sui dispositivi che consente a client e server di comunicare in modo più sicuro. È progettato per risolvere i problemi di sicurezza della rete.

Quando i firewall rappresentano una soluzione per affrontare l'intrusione dalle reti esterne, Kerberos solitamente viene utilizzato per affrontare l'intrusione e altri problemi di sicurezza all'interno della rete.

L'attuale versione di Kerberos è la versione 5, chiamata KRB5 .

Per implementare Kerberos, dobbiamo avere il servizio di autenticazione centralizzato in esecuzione sul server.

Questo servizio è chiamato KEY DISTRIBUTION CENTER (KDC).

Un server registrato con KDC è considerato attendibile da tutti gli altri computer nel regno di Kerberos.

File di esempio krb5.conf

Ecco un esempio di file krb5.conf che contiene tutte le informazioni di mappatura da REALM e da dominio a REALM,

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 EXAMPLE.COM = {
  kdc = kerberos.example.com
  admin_server = kerberos.example.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM

Installa il server Kerberos KDC

Per motivi di sicurezza, si consiglia di eseguire il server Kerberos (KDC) su un server separato.

Scarica e installa il pacchetto del server krb5.

# rpm -ivh krb5-server-1.10.3-10.el6_4.6.x86_64.rpm
Preparing...       ########################################### [100%]
   1:krb5-server   ########################################### [100%]

Verificare che i seguenti rpm siano installati prima di configurare KDC:

# rpm -qa | grep -i krb5
pam_krb5-2.3.11-9.el6.x86_64
krb5-server-1.10.3-10.el6_4.6.x86_64
krb5-workstation-1.10.3-10.el6_4.6.x86_64
krb5-libs-1.10.3-10.el6_4.6.x86_64

Modifica il file /etc/krb5.conf

Modificare /etc/krb5.conf in modo che rifletta come di seguito con le appropriate mappature REALM e DOMAIN_REALM.

# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = MYREALM.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 MYREALM.COM = {
  kdc = elserver1.example.com
  admin_server = elserver1.example.com
 }

[domain_realm]
 .myrealm.com = MYREALM.COM
 myrealm.com = MYREALM.COM

Modifica file kdc.conf

Anche kdc.conf dovrebbe essere modificato come mostrato di seguito.

# cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 MYREALM.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

Crea database KDC

Quindi, crea il database KDC utilizzando il comando kdb5_util come mostrato di seguito. In questa fase, immettere la password appropriata per la chiave master del database KDC.

# /usr/sbin/kdb5_util create -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'MYREALM.COM',
master key name 'K/[email protected]'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:

Assegna il privilegio di amministratore

Agli utenti possono essere concessi privilegi di amministratore per il database utilizzando il file /var/kerberos/krb5kdc/kadm5.acl.

# cat /var/kerberos/krb5kdc/kadm5.acl
*/[email protected]     *

Nell'esempio precedente, qualsiasi principale in MYREALM con un'istanza di amministratore dispone di tutti i privilegi di amministratore.

Crea un principale

Creare l'entità utilizzando il comando seguente. In questo esempio, ho creato il principal con il nome utente “eluser”.

# kadmin.local -q "addprinc eluser/admin"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for eluser/[email protected]; defaulting to no policy
Enter password for principal "eluser/[email protected]":
Re-enter password for principal "eluser/[email protected]":
Principal "eluser/[email protected]" created.

Avvia il servizio Kerberos

Avvia i demoni KDC e kadmin come mostrato di seguito.

# service krb5kdc start
Starting Kerberos 5 KDC:               [  OK  ]

# service kadmin start
Starting Kerberos 5 Admin Server:      [  OK  ]

Configura client Kerberos

Configura il client Kerberos per l'autenticazione nel database KDC:

Ora vediamo come configurare il client krb5 per l'autenticazione sul database Kerberos KDC che abbiamo creato sopra.

Passaggio 1:installa i pacchetti krb5-libs e krb5-workstation sul computer client.

Passaggio 2:copia /etc/krb5.conf dal server KDC alla macchina client.

Passaggio 3:ora è necessario creare l'entità per il client nel database KDC/Kerberos.

È possibile utilizzare i comandi seguenti per creare l'entità per la macchina client sul server master KDC. Nell'esempio seguente sto creando un'entità host per il client elserver3.example.com sul server KDC master elserver1.example.com

# kadmin.local -q "addprinc host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for host/[email protected]; defaulting to no policy
Enter password for principal "host/[email protected]":
Re-enter password for principal "host/[email protected]":
Principal "host/[email protected]" created.

Passaggio 4:estrai krb5.keytab per il client dal server master KDC utilizzando il comando seguente:

# kadmin.local -q "ktadd -k /etc/krb5.keytab host/elserver3.example.com"
Authenticating as principal root/[email protected] with password.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des3-cbc-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type arcfour-hmac added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-hmac-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/elserver3.example.com with kvno 2, encryption type des-cbc-md5 added to keytab WRFILE:/etc/krb5.keytab.

Questo completa la configurazione. A questo punto hai finito.

D'ora in poi, ogni volta che stabilisci una connessione SSH e RSH, l'host verifica la propria identità rispetto al database KDC utilizzando il file keytab e stabilisce una connessione sicura su Kerberos.

Ktadd viene utilizzato per generare una nuova keytab o aggiungere un principal a una keytab esistente dal comando kadmin.

Ktremove viene utilizzato per rimuovere il principal da una keytab esistente. Il comando per rimuovere il principal che abbiamo creato sopra è,

kadmin.local -q "ktremove -k /etc/krb5.keytab –q all"

Elimina un database KDC

Per qualche motivo, se devi eliminare un database KDC, usa il comando seguente:

# kdb5_util -r MYREALM.COM destroy
kdb5_util: Deleting KDC database stored in /usr/local/var/krb5kdc/principal, you sure
(type yes to confirm)? <== yes
OK, deleting database '/usr/local/var/krb5kdc/principal'...

-f opzione nel comando precedente forza l'eliminazione del database KDC.

Backup e ripristino del database KDC

Per eseguire il backup di un database KDC in un file, usa krb5_util_dump.

# kdb5_util dump kdcfile

# ls -l kdcfile
-rw-------. 1 root root 5382 Apr 10 07:25 kdcfile

Per ripristinare il database KDC dal file di dump creato nel passaggio precedente, procedi come segue:

# kdb5_util load kdcfile

Linux
  1. Come installare SQL Server su Linux

  2. Come installare Nginx Web Server su Linux

  3. Come installare Borgmatic per semplici backup dei server Linux

  4. Come installare il server Linux di virtualizzazione

  5. Come installo Microsoft SQL Server per Linux (Fedora)?

Graylog Monitoring Server su Ubuntu Linux per Monitoring Server/Services

Come installare Nginx Web Server su Ubuntu Linux:un tutorial per principianti

Come installare Apache su Arch Linux

Come installare Webmin su Ubuntu Linux

Come installare e configurare il firewall CSF per Linux

Come installare Jenkins su Rocky Linux 8