Подробный гайд по проверке статуса службы krb5kdc (Kerberos Key Distribution Center) в Linux
Важное примечание про имя службы
В зависимости от дистрибутива служба может называться по-разному:
- RHEL / CentOS / Rocky / AlmaLinux / Fedora:
krb5kdc - Debian / Ubuntu / Linux Mint:
krb5-kdc
В примерах ниже используется krb5kdc. Если ваша система вернёт Unit krb5kdc.service not found, замените на krb5-kdc.
1. Быстрая проверка статуса (systemd)
Современные дистрибутивы используют systemd.
Выполните от имени root или с sudo:
sudo systemctl status krb5kdc
# или для Debian/Ubuntu:
sudo systemctl status krb5-kdc
Что смотреть в выводе:
Active: active (running)→ служба работает штатно.Active: inactive (dead)→ служба остановлена.Active: failed→ служба упала, ниже будут строки с ошибками.Main PID:→ ID процесса, можно проверить черезps -p <PID>.
Дополнительные флаги:
sudo systemctl is-active krb5kdc # выведет только active/inactive/failed
sudo systemctl is-enabled krb5kdc # выведет enabled/disabled (автозапуск)
sudo systemctl show krb5kdc --property=LoadState,ActiveState,SubState
2. Проверка через legacy-утилиту service (для старых систем)
sudo service krb5kdc status
# или
sudo /etc/init.d/krb5-kdc status
Примечание: в современных системах эта команда является обёрткой над systemctl.
3. Проверка процесса и сетевых портов
Если systemctl показывает active, но аутентификация не работает, проверьте "физическое" наличие процесса и слушателя:
# 1. Процесс
pgrep -a krb5kdc
# или
ps aux | grep '[k]rb5kdc'
# 2. Порты (Kerberos использует 88 TCP/UDP, kadmind — 749 TCP)
sudo ss -tulnp | grep -E ':88|:749'
# или
sudo netstat -tulnp | grep -E ':88|:749'
Ожидается:
процесс /usr/sbin/krb5kdc и слушатель на *:88.
4. Анализ логов
Логи — главный источник информации при проблемах.
Через journalctl (systemd):
sudo journalctl -u krb5kdc -n 100 --no-pager -f
# -f для live-просмотра, -n 100 последние 100 строк
Прямые файлы логов (зависит от настройки kdc.conf и syslog):
sudo tail -f /var/log/krb5kdc.log
sudo tail -f /var/log/kadmind.log # если используется kadmin
Ключевые сообщения об ошибках:
Database must not exist→ БД Kerberos не создана/повреждена.Cannot resolve server/No credentials cache found→ проблемы с DNS/клиентом.Clock skew too great→ рассинхронизация времени (>5 мин).Permission denied→ проблемы с правами на/var/kerberos/krb5kdc/или SELinux/AppArmor.
5. Функциональная проверка (клиентский тест)
Статус active не гарантирует, что KDC отвечает корректно.
Протестируйте получение тикета:
# Получение TGT (замените REALM на ваш домен, например EXAMPLE.COM)
kinit admin@EXAMPLE.COM
# Проверка кэша тикетов
klist
# Проверка доступности KDC по сети
nc -zv <IP_KDC> 88
nc -zvu <IP_KDC> 88
Если kinit возвращает Cannot contact any KDC for realm...:
- Проверьте
/etc/krb5.conf(секции[realms],[domain_realm]). - Убедитесь, что файрвол не блокирует
88/tcpи88/udp. - Проверьте резолв имени хоста KDC.
Управление службой
sudo systemctl start krb5kdc # запуск
sudo systemctl restart krb5kdc # перезапуск (после правки конфига)
sudo systemctl stop krb5kdc # остановка
sudo systemctl enable krb5kdc # автозапуск при загрузке
sudo systemctl disable krb5kdc # отключение автозапуска
Важно:
После изменения /etc/krb5.conf или /var/kerberos/krb5kdc/kdc.conf всегда выполняйте restart, а не reload (KDC не перечитывает конфигурацию на лету).
Типичные проблемы и решения
| Симптом | Вероятная причина | Решение |
|---|---|---|
Failed to start Kerberos KDC |
Отсутствует БД или неверные права | kdb5_util create -r REALM -s (только при чистой установке!) |
Active: failed (Result: exit-code) |
Ошибка в kdc.conf или krb5.conf |
Проверьте синтаксис: krb5kdc -d (запуск в фоне отладки) |
Clock skew too great |
Время на клиенте и KDC различается >5 мин | Настройте chronyd/ntpd на всех узлах |
Port 88 already in use |
Другая служба занимает порт или предыдущий процесс "завис" | sudo fuser -k 88/tcp 88/udp, затем restart |
| SELinux блокирует запуск | Audit log показывает denied |
sudo ausearch -m avc -ts recent | audit2allow -M krb5fix → semodule -i krb5fix.pp |
Чек-лист быстрой диагностики
systemctl status krb5kdc→active (running)?sudo ss -tulnp | grep :88→ порты слушаются?sudo journalctl -u krb5kdc -n 20→ нетerror/failed?kinit user@REALM→ тикет получен без ошибок?chronyc trackingилиntpq -p→ время синхронизировано (offset < 1 сек)?
Рекомендации по эксплуатации
- Включите ротацию логов через
logrotate(обычно уже настроена в пакетеkrb5-kdc). - Никогда не запускайте
krb5kdc -dв production надолго: выводит всё в stdout, забивает логи, снижает производительность. - Регулярно делайте бэкап
/var/kerberos/krb5kdc/(файлыprincipal,principal.kadm5,stash). - Используйте
kpropили репликацию KDC для отказоустойчивости в крупных средах.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.