- Failed to start kerberos 5 key distribution center astra linux
- Kerberos
- Подготовка к установке
- Имена и доступность компьютеров
- Синхронизация времени
- Настройка сервера
- Установка пакетов
- Настройка
- Настройка DNS для автоматизации подключения клиентов
- Настройка клиентов
- Установка пакетов
- Настройка
- Настройка аутентификации клиентов через Kerberos
- Kerberos service started with Error: Cannot open DB2 database on Ubuntu 18
- 1 Answer 1
Failed to start kerberos 5 key distribution center astra linux
I have Ubuntu 16.04, running SAMBA as an AD DC. Configuration seemed to go fine, but my Kerberos tests failed. I rebooted the system and noticed that the Kerberos system failed during boot. In reviewing the boot-up log file, the first sign of a problem was:
kadmind: kadmind: Configuation file does not specify default realm while initializing, aborting kadmind: Configuation file does not specify default realm while initializing, aborting krb5kdc: Configuration file does not specify default realm — while attempting to retrieve default realm krb5kdc: krb5kdc: Configuration file does not specify default realm, attempting to retrieve default realm systemd: krb5-kdc.service: Control process exited, code=exited status=1 systemd: Failed to start Kerberos 5 Key Distribution Center
Here is what I have in my /var/lib/samba/private/krb5.conf:
[libdefaults] default_realm = EXAMPLE.LOCAL dns_lookup_realm = false dns_lookup_kdc = true
[realms] admin_server = servername default_domain = example kdc = servername master_kdc = servername
As far as my limited knowledge goes, I have properly set the Kerberos realm in this system. I don’t know where I have gone wrong, but obviously somehow I am not passing the realm info on properly. Can anyone give me any suggestions on where to go next? Thanks!
Oh, I forgot to mention, I have done a link from the /var/lib/samba/private/krb5.conf file to /etc/krb5.conf. Just in case anyone might suggest that the /etc/krb5.conf file might be the issue. I did not include the [logging] section of my krb5.conf file because I did not see how that could contribute to the primary issue.
Kerberos
Kerberos — сетевая служба аутентификации, основанная на одноименном протоколе аутентификации,
предлагающем механизм взаимной аутентификации клиента и сервера перед установлением связи между ними с учётом того факта,
что начальный обмен информацией происходит в незащищенной среде, а передаваемые пакеты могут быть перехвачены и модифицированы.
Аутентификация через Kerberos является фактическим стандартом аутентификации доменных пользователей, и применяется в Windows Active Directory, Samba AD DC, FreeI PA, Astra Linux Directory (ALD) .
В Linux-системах существуют две основные реализаций Kerberos — MIT и Heimdal. В ОС Astra Linux (и далее в примерах этой статьи) используется MIT Kerberos (смю также Samba с поддержкой Heimdal Kerberos в Astra Linux Special Edition 1.6).
При описании работы Kerberos применяются некоторые специфические термины:
- Область (realm) — о бласть (области), обслуживаемые сервисом. П римерно соответствует термину «домен»;
- Принципал — учетная запись Kerberos, с соответствующим набором прав. Примерно соответствует термину «пользователь». Но, при этом, пользователь может получать разные наборы прав от Kerberos (разные принципалы).
Подготовка к установке
Все серверы и клиенты, участвующие в работе Kerberos, должны иметь возможность коммуницировать друг с другом, и иметь точные показания системных часов.
Далее в примере используются
В терминологии Kerberos домену соответствует область (realm), которая обозначается заглавными буквами. Для домена astradomain.ru это будет область ASTRADOMAIN.RU
Имена и доступность компьютеров
Сервис Kerberos следует устанавливать в сети, в которой уже настроена служба DNS. Каждому серверу, входящему в область Kerberos, должно быть присвоено Полное Квалифицированное Доменное Имя (Fully Qualified Domain Name, FQDN).
Настроенный DNS-сервис должен обеспечивать прямое и обратное (реверсивное) разрешение FQDN (для отключения реверсивного разрешения можно в файле конфигурации клиента krb5.conf установить переменной rdns значение false)
Проверить настройку прямого и обратного разрешения имён можно командами:
Синхронизация времени
Протокол Kerberos требует соответствия показаний часов всех клиентов и серверов, и при рассинхронизации часов аутентификация становится невозможной.
Простой и стандартный путь обеспечения синхронизации — использование сервиса Network Time Protocol (NTP).
Настройка сервера
Установка пакетов
Пакеты сервиса Kerberos входят в стандартные дистрибутивы Astra Linux, и могут быть установлены с помощью графического менеджера пакетов,
или из командной строки командой
При установке выдаётся предупреждение о том, что пакет не настроен, которое пока можно проигнорировать.
После установки сервис автоматически не запускается, и должен быть настроен для запуска.
Настройка
При установке пакета будет создан файл конфигурации сервиса /etc/krb5kdc/kdc.conf со стандартным содержимым, в котором автоматически будет указано имя области Kerberos, полученное из FQDN сервера, на котором выполняется установка:
[realms]
ASTRADOMAIN.RU = <
database_name = /var/lib/krb5kdc/principal
admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
acl_file = /etc/krb5kdc/kadm5.acl
key_stash_file = /etc/krb5kdc/stash
kdc_ports = 750,88
max_life = 10h 0m 0s
max_renewable_life = 7d 0h 0m 0s
master_key_type = des3-hmac-sha1
#supported_enctypes = aes256-cts:normal aes128-cts:normal
default_principal_flags = +preauth
>
Kerberos использует для контроля доступа к администрированию сервиса Списки Управления Доступом (Access Control List, ACL) .
По умолчанию, список располагается в файле /etc/krb5kdc/kadm5.acl.
Для примера, создадим файл /etc/krb5kdc/kadm5.acl, дающий неограниченные права любому принципалу, чьё имя заканчивается на /admin:
И создадим новую область Kerberos командой:
При выполнении команды нужно будет ввести и подтвердить пароль администратора, после чего будут автоматически созданы нужные базы данных.
Далее, для выполнения задач по администрированию сервиса Kerberos нужно создать принципала с правами администратора.
Для этого используем инструмент командной строки kadmin.local, предназначенный для администрирования Kerberos на локальном компьютере.
При использовании инструмента kadmin.local подразумевается, что этот инструмент вызывается с защищенного сервера Kerberos,
поэтому инструмент не требует логинов и паролей, и автоматически получает все полномочия для администрирования сервиса Kerberos.
Инструмент вызывается из командной строки командой
После вызова инструмента можно ввести символ «вопросительный знак», в ответ на это будет выдана подсказка по списку команд.
Добавим нового принципала admin/admin командой addprinc:
После ввода команды будет запрошен пароль для создаваемого принципала.
Выход из инструмента kadmin.local осуществляется командой quit.
После создания принципала admin/admin его можно использовать для администрирования сервера Kerberos с удалённых компьютеров с помощью инструмента командной строки kadmin.
Этот инструмент аналогичен инструменту kadmin.local, однако рассчитан на удалённое подключение, и требует авторизации пользователя через указание принципала и ввод пароля:
Настройка DNS для автоматизации подключения клиентов
Для автоматического получения клиентами адреса сервера Kerberos можно использовать специальные настройки сервера DNS: служебные записи (SRV-записи).
Пример таких записей для службы Kerberos см. в статье про сервер DNS
Настройка клиентов
Установка пакетов
Клиентский пакет Kerberos krb5-user входит в дистрибутивы Astra Linux, но по умолчанию не устанавливается. Пакет может быть установлен с помощью графического менеджера пакетов, или из командной строки командой
При установке пакета krb5-user, кроме самого пакета, автоматически будет установлен пакет krb5-config для настройки клиента
Настройка
Если Kerberos предполагается использовать с контроллером домена Samba AD DC,
для настройки клиентов следует использовать копию конфигурационного файла /var/lib/samba/krb5.conf,
автоматически создаваемого при процедуре назначения Samba
Кроме того, в сети должны быть правильно настроены и работать службы DNS и DHCP.
Настройка клиента Kerberos выполняется командой
- Попросит указать имя домена (в нашем примере — ASTRADOMAIN.RU);
- Задаст вопрос о необходимости указать сервер(ы) Kerberos в файле конфигурации клиента /etc/krb5.conf.
Если ответить «да», то программа попросит ввести имена сервера (серверов) Kerberos
Если DNS уже настроен (см «Настройка DNS для автоматизации подключения клиентов»), можно просто ответить «нет».
После завершения работы программы настройки результат настройки можно проверить получением принципала. Команда kinit должна выполняться без ошибок:
Настройка аутентификации клиентов через Kerberos
Для обеспечения возможности аутентификации пользователей через Kerberos требуется дополнительно установить пакет libpam-krb5:
После установки пакета необходимые модули аутентификации будут автоматически добавлены в стек авторизации PAM.
Kerberos service started with Error: Cannot open DB2 database on Ubuntu 18
I installed kerberos on Ubuntu 18 with sudo apt install krb5-kdc krb5-admin-server But, When I ran systemctl status krb5-kdc.service , it turns out:
Feb 17 21:25:23 device2 krb5kdc[8675]: Cannot open DB2 database '/var/lib/krb5kdc/principal': No such file or directory - while initializing database for realm DENNIS.COM Feb 17 21:25:23 device2 krb5kdc[8675]: krb5kdc: cannot initialize realm DENNIS.COM - see log file for details Feb 17 21:25:23 device2 systemd[1]: krb5-kdc.service: Control process exited, code=exited status=1 Feb 17 21:25:23 device2 systemd[1]: krb5-kdc.service: Failed with result 'exit-code'. Feb 17 21:25:23 device2 systemd[1]: Failed to start Kerberos 5 Key Distribution Center.
I am having the same issue. I am using the «purge» list of commands I found at the url (just the rm and purge commands and apt install(s)) (FYI), but I’m still in the same «cannot open DB2 database» vortex that you are. 🙁 github.com/shafiquejamal/kafka-zookeeper-kerberos/blob/master/…
1 Answer 1
Holy Moly. Maybe I just needed some rest.
sudo kdb5_util create -s -r MYCOOLNAME.COM
sudo systemctl restart krb5-kdc.service
Then I ran this (below) (maybe you don’t need sudo on this one)
sudo systemctl status krb5-kdc.service
And ( INSTEAD OF THE ERROR VORTEX I was getting before ) . I instead got the below ( success . ):
$ systemctl status krb5-kdc.service ● krb5-kdc.service - Kerberos 5 Key Distribution Center Loaded: loaded (/lib/systemd/system/krb5-kdc.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-02-25 03:16:25 EST; 4min 45s ago Process: 5749 ExecStart=/usr/sbin/krb5kdc -P /var/run/krb5-kdc.pid $DAEMON_ARGS (code=exited, status= Main PID: 5763 (krb5kdc) Tasks: 1 (limit: 4915) CGroup: /system.slice/krb5-kdc.service └─5763 /usr/sbin/krb5kdc -P /var/run/krb5-kdc.pid Feb 25 03:16:25 myloginname krb5kdc[5749]: Setting pktinfo on socket 0.0.0.0.88 Feb 25 03:16:25 myloginname krb5kdc[5749]: Setting up UDP socket for address . 88 Feb 25 03:16:25 myloginname krb5kdc[5749]: setsockopt(12,IPV6_V6ONLY,1) worked Feb 25 03:16:25 myloginname krb5kdc[5749]: Setting pktinfo on socket . 88 Feb 25 03:16:25 myloginname krb5kdc[5749]: Setting up TCP socket for address 0.0.0.0.88 Feb 25 03:16:25 myloginname krb5kdc[5749]: Setting up TCP socket for address . 88 Feb 25 03:16:25 myloginname krb5kdc[5749]: setsockopt(14,IPV6_V6ONLY,1) worked Feb 25 03:16:25 myloginname krb5kdc[5749]: set up 6 sockets Feb 25 03:16:25 myloginname krb5kdc[5763]: commencing operation Feb 25 03:16:25 myloginname systemd[1]: Started Kerberos 5 Key Distribution Center. lines 1-19/19 (END)
Below is my complete list.
(PURGE (and start over..sigh. again) (below) ) sudo rm -rf /etc/krb5conf sudo rm -rf /var/lib/krb5kdc sudo rm -rf /etc/krb5.conf sudo apt purge -y krb5-kdc krb5-admin-server krb5-config krb5-locales krb5-user krb5.conf ("purge" commands above from .. from https://github.com/shafiquejamal/kafka-zookeeper-kerberos/blob/master/README-Kerberos.md ) (REINSTALL) (below) sudo apt install krb5-kdc krb5-admin-server krb5-config krb5-locales krb5-user krb5.conf sudo kdb5_util create -s -r MYCOOLNAME.COM (and finally. to resolve the "Cannot open DB2 database '/var/lib/krb5kdc/principal'" issue) (below) sudo systemctl status krb5-kdc.service sudo systemctl restart krb5-kdc.service