Как установить Kerberos KDC Server и клиент на Ubuntu 18.04 — Information Security Squad

Как установить Kerberos KDC Server и клиент на Ubuntu 18.04

Здесь и сейчас рассматривается постепенное руководство по настройке Kerberos Server (KDC) и Kerberos Enabled Client, а затем тестирование установки путем получения тикета Kerberos с сервера KDC.

В этом уроке вы узнаете:

  • Что такое Kerberos и как он работает
  • Настройте сервер Kerberos (KDC)
  • Настройте клиента
  • Проверьте аутентификацию Kerberos
  • Создание Keytab

Что такое Kerberos и как он работает

Kerberos — это протокол сетевой аутентификации.

Он разработан для обеспечения строгой аутентификации для клиент-серверных приложений с использованием криптографии с секретным ключом.

Клиент аутентифицирует себя на сервере аутентификации (AS), который перенаправляет имя пользователя в центр распространения ключей (KDC).

KDC выдает тикет (билет) для выдачи (TGT), который имеет метку времени и шифрует его с использованием секретного ключа службы выдачи билетов (TGS), и возвращает зашифрованный результат на рабочую станцию ​​пользователя.

Это делается нечасто, обычно при входе пользователя в систему; TGT истекает в какой-то момент, хотя он может быть прозрачно обновлен менеджером сеанса пользователя, когда пользователи вошли в систему.

Когда клиенту необходимо связаться с другим узлом («приципал» на языке Kerberos) какой-то службе на этом узле, клиент отправляет TGT в TGS, который обычно использует тот же хост, что и KDC.

Служба должна быть зарегистрирована в TGT с именем участника службы (SPN).

Клиент использует SPN для запроса доступа к этой услуге.

После проверки того, что TGT действителен и что пользователю разрешен доступ к запрошенной услуге, TGS выдает клиенту ключи билета и сеанса.

Затем клиент отправляет билет на сервисный сервер (SS) вместе со своим сервисным запросом.

Astra Linux. Настройка защищенной печати Cups. Аутентификация Kerberos

Apache. Аутентификация Kerberos

Astra Linux Directory

Настройте сервер Kerberos (KDC)

Синхронизация времени и DNS играет важную роль для правильной работы KDC.

Если разница во времени превышает 5 минут, аутентификация не удастся.

Полные доменные имена в идеале должны разрешаться в правильной среде, здесь мы можем изменить /etc/hosts, но рекомендуется правильно использовать DNS.

Выполните приведенную ниже команду, чтобы установить сервер администрирования Kerberos и KDE (центр распространения ключей):

# apt install krb5-kdc krb5-admin-server krb5-config

Система спросит следующие три вещи по одному:

  • Kerberos Realm. (здесь я использовал UBUNTUBOX.COM)
  • Имя хоста сервера Kerberos — kdc.ubuntubox.com
  • Имя хоста админа (смена пароля) сервера для Kerberos Realm UBUNTUBOX.COM — kdc.ubuntubox.com

Теперь выполните приведенную ниже команду для настройки realm.

# krb5_newrealm

Система попросит ввести пароль для создания базы данных и после этого запустит процессы администрирования Kerberos KDC krb5kdc и Kerberos kadmind.

root@kdc:~# krb5_newrealm 
This script should be run on the master KDC/admin server to initialize
a Kerberos realm.  It will ask you to type in a master key password.
This password will be used to generate a key that is stored in
/etc/krb5kdc/stash.  You should try to remember this password, but it
is much more important that it be a strong password than that it be
remembered.  However, if you lose the password and /etc/krb5kdc/stash,
you cannot decrypt your Kerberos database.
Loading random data
Initializing database '/var/lib/krb5kdc/principal' for realm 'UBUNTUBOX.COM',
master key name 'K/M@UBUNTUBOX.COM
	'
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: 


Now that your realm is set up you may wish to create an administrative
principal using the addprinc subcommand of the kadmin.local program.
Then, this principal can be added to /etc/krb5kdc/kadm5.acl so that
you can use the kadmin program on other computers.  Kerberos admin
principals usually belong to a single user and end in /admin.  For
example, if jruser is a Kerberos administrator, then in addition to
the normal jruser principal, a jruser/admin principal should be
created.
Don't forget to set up DNS information so your clients can find your
KDC and admin servers.  Doing so is documented in the administration
guide.
root@kdc:~#

Откройте файл /etc/krb5kdc/kadm5.acl в любом текстовом редакторе и раскомментируйте последнюю строку, чтобы файл выглядел следующим образом.

vim /etc/krb5kdc/kadm5.acl
# This file Is the access control list for krb5 administration.
# When this file is edited run service krb5-admin-server restart to activate
# One common way to set up Kerberos administration is to allow any principal
# ending in /admin is given full administrative rights.
# To enable this, uncomment the following line:
*/admin *

Теперь процесс установки сервера Kerberos завершен успешно.

Настройка клиента

Выполните приведенную ниже команду для установки и настройки клиента Kerberos.

# apt install krb5-user

Опять же, он спросит 3 вещи, один за другим, как и в настройке сервера KDC.

  • Kerberos Realm — UBUNTUBOX.COM
  • Имя хоста для сервера KDC — kdc.ubuntubox.com
  • Имя хоста сервера администратора — kdc.ubuntubox.com

Проверьте аутентификацию Kerberos

Принципал Kebs — это уникальная составляющая, которой Kerberos может назначать билеты, поэтому мы создадим принципал в KDC Server, как показано ниже.

addprinc "principal_name"
root@kdc:~# kadmin.local
Authenticating as principal root/admin@UBUNTUBOX.COM
	 with password.
kadmin.local:  addprinc sandipb
WARNING: no policy specified for sandipb@UBUNTUBOX.COM; defaulting to no policy
Enter password for principal "sandipb@UBUNTUBOX.COM": 
Re-enter password for principal "sandipb@UBUNTUBOX.COM": 
Principal "sandipb@UBUNTUBOX.COM" created.
kadmin.local:

Чтобы удалить участника из KDC, выполните следующую команду.

delprinc "principal_name"
root@kdc:~# kadmin.local:  
Authenticating as principal root/admin@UBUNTUBOX.COM with password.
kadmin.local:  delprinc sandipb
Are you sure you want to delete the principal "sandipb@UBUNTUBOX.COM"? (yes/no): yes
Principal "sandipb@UBUNTUBOX.COM" deleted.
Make sure that you have removed this principal from all ACLs before reusing.
kadmin.local:

Теперь для аутентификации в Kerberos и получения билета с сервера KDC выполните следующую команду на клиентском узле.

Примечание. Тикеты будут уничтожены при перезагрузке компьютера, запуске команды kdestroy или истечении срока их действия. Вам нужно будет снова запустить kinit после того, как это произойдет.

# kinit sandipb
root@kdcclient:~# kinit sandipb
Password for sandipb@UBUNTUBOX.COM
	: 
root@kdcclient:~# 
root@kdcclient:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: sandipb@UBUNTUBOX.COM

Valid starting       Expires              Service principal
2018-12-29T19:38:53  2018-12-30T05:38:53  krbtgt/UBUNTUBOX.COM@UBUNTUBOX.COM
	renew until 2018-12-30T19:38:38
root@kdcclient:~#

Чтобы проверить детали принципала, выполните приведенную ниже команду в KDC Server.

getprinc "principal_name"
root@kdc:~# kadmin.local
Authenticating as principal root/admin@UBUNTUBOX.COM with password.
kadmin.local:  getprinc sandipb
Principal: sandipb@UBUNTUBOX.COM
Expiration date: [never]
Last password change: Sun Dec 30 19:30:59 +04 2018
Password expiration date: [never]
Maximum ticket life: 0 days 10:00:00
Maximum renewable life: 7 days 00:00:00
Last modified: Sun Dec 30 19:30:59 +04 2018 (root/admin@UBUNTUBOX.COM)
Last successful authentication: Sun Dec 30 19:38:53 +04 2018
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 2
Key: vno 1, aes256-cts-hmac-sha1-96
Key: vno 1, aes128-cts-hmac-sha1-96
MKey: vno 1
Attributes: REQUIRES_PRE_AUTH
Policy: [none]
kadmin.local:

Создание Keytab

keytab — это файл, содержащий пары принципалов Kerberos и зашифрованные ключи (которые получены из пароля Kerberos).

Вы можете использовать файл keytab для аутентификации на различных удаленных системах с использованием Kerberos без ввода пароля.

Однако, когда вы измените свой пароль Kerberos, вам нужно будет воссоздать все ваши keytabs.

root@kdc:~# ktutil
ktutil:  add_entry -password -p sandipb@UBUNTUBOX.COM
	 -k 1 -e aes256-cts-hmac-sha1-96
Password for sandipb@UBUNTUBOX.COM: 
ktutil:  add_entry -password -p sandipb@UBUNTUBOX.COM -k 1 -e aes128-cts-hmac-sha1-96
Password for sandipb@UBUNTUBOX.COM: 
ktutil:  wkt sandipkt.keytab
ktutil:  q
root@kdc:~#
root@kdc:~# klist -kte sandipkt.keytab 
Keytab name: FILE:sandipkt.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   1 2018-12-30T00:35:07 sandipb@UBUNTUBOX.COM (aes256-cts-hmac-sha1-96) 
   1 2018-12-30T00:35:07 sandipb@UBUNTUBOX.COM (aes128-cts-hmac-sha1-96) 
root@kdc:~#
root@kdc:~# kinit -k -t sandipkt.keytab sandipb
root@kdc:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: sandipb@UBUNTUBOX.COM

Valid starting       Expires              Service principal
2018-12-30T00:36:44  2018-12-30T10:36:44  krbtgt/UBUNTUBOX.COM@UBUNTUBOX.COM
	renew until 2018-12-31T00:36:34
root@kdc:~#

Заключение

Аутентификация имеет решающее значение для безопасности компьютерных систем, традиционные методы аутентификации не подходят для использования.

Система аутентификации Kerberos хорошо подходит для аутентификации пользователей в таких средах.

 


   	

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40