GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar Kerberos 5 KDC Server en Linux para la autenticación

Kerberos es un protocolo de autenticación de red.

Kerberos proporciona una fuerte autenticación criptográfica contra los dispositivos que permite que el cliente y los servidores se comuniquen de una manera más segura. Está diseñado para abordar los problemas de seguridad de la red.

Cuando los firewalls actúan como una solución para abordar la intrusión de las redes externas, Kerberos generalmente se usa para abordar la intrusión y otros problemas de seguridad dentro de la red.

La versión actual de Kerberos es la versión 5, que se denomina KRB5 .

Para implementar Kerberos, necesitamos tener el servicio de autenticación centralizado ejecutándose en el servidor.

Este servicio se denomina CENTRO DE DISTRIBUCIÓN DE LLAVES (KDC).

Todas las demás computadoras en el reino de Kerberos confían en un servidor registrado con KDC.

Archivo krb5.conf de muestra

Aquí hay un archivo krb5.conf de ejemplo que contiene toda la información de asignación de REALM y de 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

Instalar servidor Kerberos KDC

Por motivos de seguridad, se recomienda ejecutar el servidor Kerberos (KDC) en un servidor independiente.

Descargue e instale el paquete del servidor krb5.

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

Verifique que los siguientes rpm estén instalados antes de configurar 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

Modificar archivo /etc/krb5.conf

Cambie /etc/krb5.conf para que se refleje como se muestra a continuación con las asignaciones REALM y DOMAIN_REALM adecuadas.

# 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

Modificar archivo kdc.conf

También se debe modificar kdc.conf como se muestra a continuación.

# 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
 }

Crear base de datos KDC

Luego, cree la base de datos KDC usando el comando kdb5_util como se muestra a continuación. En esta etapa, ingrese la contraseña adecuada para la clave maestra de la base de datos de 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:

Asignar privilegios de administrador

A los usuarios se les pueden otorgar privilegios de administrador de la base de datos usando el archivo /var/kerberos/krb5kdc/kadm5.acl.

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

En el ejemplo anterior, cualquier principal en MYREALM con una instancia de administrador tiene todos los privilegios de administrador.

Crear un director

Cree el principal con el siguiente comando. En este ejemplo, creé el principal con el nombre de usuario "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.

Iniciar el servicio Kerberos

Inicie los demonios KDC y kadmin como se muestra a continuación.

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

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

Configurar cliente Kerberos

Configure el cliente de Kerberos para autenticarse en la base de datos de KDC:

Ahora veamos cómo configurar el cliente krb5 para autenticarse en la base de datos Kerberos KDC que creamos anteriormente.

Paso 1:Instale los paquetes krb5-libs y krb5-workstation en la máquina cliente.

Paso 2:copie /etc/krb5.conf desde el servidor KDC a la máquina cliente.

Paso 3:Ahora necesitamos crear el principal para el cliente en la base de datos KDC/Kerberos.

Puede usar los siguientes comandos para crear el principal para la máquina cliente en el servidor maestro de KDC. En el siguiente ejemplo, estoy creando un principal de host para el cliente elserver3.example.com en el servidor KDC maestro 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.

Paso 4:extraiga el archivo krb5.keytab para el cliente del servidor maestro de KDC con el siguiente comando:

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

Esto completa la configuración. Ya has terminado en esta etapa.

A partir de ahora, cada vez que establezca una conexión SSH, RSH, el host verificará su identidad con la base de datos de KDC mediante el archivo keytab y establecerá una conexión segura a través de Kerberos.

Ktadd se usa para generar una nueva tabla de claves o agregar un principal a una tabla de claves existente desde el comando kadmin.

Ktremove se usa para eliminar el principal de una tabla de claves existente. El comando para eliminar el principal que creamos anteriormente es,

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

Eliminar una base de datos KDC

Por alguna razón, si tiene que eliminar una base de datos KDC, use el siguiente comando:

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

La opción -f en el comando anterior fuerza la eliminación de la base de datos KDC.

Copia de seguridad y restauración de la base de datos KDC

Para hacer una copia de seguridad de una base de datos KDC en un archivo, use krb5_util_dump.

# kdb5_util dump kdcfile

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

Para restaurar la base de datos KDC desde el archivo de volcado creado en el paso anterior, haga lo siguiente:

# kdb5_util load kdcfile

Linux
  1. Cómo instalar SQL Server en Linux

  2. Cómo instalar el servidor web Nginx en Linux

  3. Cómo instalar Borgmatic para realizar copias de seguridad sencillas del servidor Linux

  4. Cómo instalar un servidor Linux de virtualización

  5. ¿Cómo instalo Microsoft SQL Server para Linux (fedora)?

Servidor de monitoreo Graylog en Ubuntu Linux para servidores/servicios de monitoreo

Cómo instalar el servidor web Nginx en Ubuntu Linux:un tutorial para principiantes

Cómo instalar Apache en Arch Linux

Cómo instalar Webmin en Ubuntu Linux

Cómo instalar y configurar el cortafuegos CSF para Linux

Cómo instalar Jenkins en Rocky Linux 8