Подробный гайд по astra-freeipa-client: пошаговый ввод Astra Linux в домен FreeIPA - Часть 2
10. Логи и диагностика
10.1. Основные логи
В зависимости от версии смотрите:
sudo less /var/log/astra-freeipa-client.log
sudo less /var/log/ipaclient-install.log
sudo less /var/log/sssd/sssd.log
sudo less /var/log/auth.log
Также могут быть полезны:
sudo journalctl -u sssd -e
sudo journalctl -xe
10.2. Логи домена в SSSD
Имя файла может включать домен:
sudo ls -l /var/log/sssd/
sudo less /var/log/sssd/sssd_CORP.EXAMPLE.log
10.3. Временное повышение детальности SSSD
Откройте:
sudo nano /etc/sssd/sssd.conf
Добавьте или измените:
debug_level = 6
Перезапустите:
sudo systemctl restart sssd
После диагностики верните уровень обратно, например:
debug_level = 2
10.4. Диагностика Kerberos
С подробным выводом:
KRB5_TRACE=/dev/stdout kinit user@CORP.EXAMPLE
Проверка текущего билета:
klist
Очистка билетов:
kdestroy
11. Типовые проблемы и решения
11.1. Команда astra-freeipa-client не найдена
Проверьте пакет:
dpkg -l | grep -i freeipa
apt-cache search freeipa
Установите:
sudo apt-get update
sudo apt-get install astra-freeipa-client
Если пакет недоступен:
sudo apt-get install freeipa-client sssd krb5-user
11.2. Не резолвится сервер или домен
Симптомы:
Failed to resolve server
Cannot find KDC for realm
LDAP lookup failed
Проверьте:
getent hosts ipa1.corp.example
cat /etc/resolv.conf
dig +short corp.example
dig +short SRV _kerberos._udp.corp.example
Решение:
- исправить
/etc/resolv.conf; - проверить настройки NetworkManager;
- проверить
/etc/hosts; - убедиться, что DNS-зона доступна;
- проверить сетевые экраны.
11.3. Слишком большое расхождение времени
Симптомы:
Clock skew too great
Clock skew exceeds
Проверка:
date
timedatectl status
chronyc sources
Решение:
sudo timedatectl set-ntp true
sudo systemctl restart chrony
chronyc sources -v
11.4. Неправильный регистр домена или realm
FreeIPA обычно использует:
- домен в нижнем регистре:
corp.example; - realm в верхнем регистре:
CORP.EXAMPLE.
Правильно:
--domain=corp.example
--realm=CORP.EXAMPLE
Неправильно:
--domain=CORP.EXAMPLE
--realm=corp.example
11.5. Пользователь находится, но не входит
Симптомы:
Permission denied
Authentication failure
Проверьте:
sudo tail -f /var/log/auth.log
sudo sssctl user-checks user@CORP.EXAMPLE
Возможные причины:
- пользователь заблокирован во FreeIPA;
- истёк срок действия пароля;
- не настроен PAM;
- запрещён доступ через HBAC;
- у пользователя нет допустимого shell;
- пользователь не входит в разрешённую группу.
Проверка пользователя на сервере:
ipa user-show username
ipa user-find username
11.6. Пользователь входит, но нет домашнего каталога
Проверьте, включён ли pam_mkhomedir.
В Debian/Astra-подобных системах:
sudo pam-auth-update
В интерфейсе включите пункт:
Create home directory during login
Если используется командный режим:
sudo pam-auth-update --enable mkhomedir
Если профиля нет, создайте файл:
sudo nano /usr/share/pam-configs/mkhomedir
Содержимое:
Name: Create home directory during login
Default: yes
Priority: 900
Session-Type: Additional
Session:
required pam_mkhomedir.so umask=0022 skel=/etc/skel
Затем:
sudo pam-auth-update
11.7. SSSD не запускается
Проверьте конфигурацию:
sudo sssctl config-check
sudo journalctl -u sssd -e
Проверьте права:
ls -l /etc/sssd/sssd.conf
Должно быть примерно:
-rw------- root root /etc/sssd/sssd.conf
Исправить:
sudo chown root:root /etc/sssd/sssd.conf
sudo chmod 600 /etc/sssd/sssd.conf
sudo systemctl restart sssd
11.8. Старый кэш SSSD мешает
Очистить кэш:
sudo sss_cache -E
sudo systemctl restart sssd
Проверка:
getent passwd user@CORP.EXAMPLE
В тяжёлых случаях можно аккуратно удалить кэш:
sudo systemctl stop sssd
sudo rm -f /var/lib/sss/db/*
sudo systemctl start sssd
Делайте это только при необходимости.
11.9. Ошибка сертификата
Симптомы:
SSL certificate verify failed
unable to verify peer certificate
Проверьте:
- системное время;
- доступность
/etc/ipa/ca.crt; - доступность сервера;
- срок действия сертификата сервера;
- корректность FQDN сервера.
Проверить сертификат можно, например:
openssl s_client -connect ipa1.corp.example:636
или:
openssl s_client -connect ipa1.corp.example:443
11.10. Вход по SSH запрещён, хотя пароль верный
Проверьте журналы:
sudo tail -f /var/log/auth.log
Во FreeIPA вход может ограничиваться правилами HBAC.
Проверка на сервере:
ipa hbactest --user=username --host=ws01.corp.example --service=sshd
Если доступ запрещён, нужно либо добавить правило доступа, либо включить подходящее правило, например, в тестовой среде:
ipa hbacrule-add-user --users=username allow_all
или проверить существующие правила:
ipa hbacrule-find
ipa hbacrule-show allow_all
11.11. Не работает sudo у доменного пользователя
Проверьте:
sudo grep sudoers /etc/nsswitch.conf
Ожидаемо наличие:
sudoers: files sss
или:
sudoers: files sss
Если нет sss, добавьте.
Также в /etc/sssd/sssd.conf должен быть провайдер:
sudo_provider = ipa
Проверка правил на сервере:
ipa sudorule-find
ipa sudorule-show rule_name
12. Пример рабочего /etc/sssd/sssd.conf
Пример типовой конфигурации для домена corp.example:
[sssd]
config_file_version = 2
domains = corp.example
[domain/corp.example]
id_provider = ipa
auth_provider = ipa
access_provider = ipa
sudo_provider = ipa
ipa_domain = corp.example
ipa_server = _srv_, ipa1.corp.example
ipa_hostname = ws01.corp.example
krb5_realm = CORP.EXAMPLE
cache_credentials = true
use_fully_qualified_names = true
После изменения:
sudo chmod 600 /etc/sssd/sssd.conf
sudo chown root:root /etc/sssd/sssd.conf
sudo systemctl restart sssd
13. Пример рабочего /etc/krb5.conf
[libdefaults]
default_realm = CORP.EXAMPLE
dns_lookup_realm = false
dns_lookup_kdc = true
rdns = false
forwardable = true
[realms]
CORP.EXAMPLE = {
kdc = ipa1.corp.example
admin_server = ipa1.corp.example
}
[domain_realm]
.corp.example = CORP.EXAMPLE
corp.example = CORP.EXAMPLE
Проверка:
kinit admin@CORP.EXAMPLE
klist
14. Пример проверки /etc/nsswitch.conf
grep -E '^(passwd|group|sudoers|services|netgroup):' /etc/nsswitch.conf
Хорошо, если для passwd, group, sudoers есть sss, например:
passwd: files systemd sss
group: files systemd sss
sudoers: files sss
В разных версиях набор модулей может отличаться, но sss должен присутствовать там, где нужны доменные пользователи и группы.
15. Удаление клиента и вывод из домена
Сначала выполните:
sudo astra-freeipa-client --uninstall
Если такой флаг не поддерживается, попробуйте:
sudo astra-freeipa-client --remove
или стандартный вариант:
sudo ipa-client-install --uninstall
После этого на сервере FreeIPA желательно удалить хост, если он больше не нужен:
ipa host-del ws01.corp.example
Проверка:
ipa host-find ws01.corp.example
Дополнительно можно очистить локальные артефакты, но делайте это осторожно:
sudo rm -f /etc/krb5.keytab
sudo rm -f /etc/ipa/default.conf
sudo rm -f /etc/sssd/sssd.conf
После удаления файлов перезапустите службы:
sudo systemctl restart sssd
16. Резервное копирование перед изменениями
Перед первым вводом в домен полезно сохранить текущие настройки:
sudo mkdir -p /root/astra-freeipa-backup
sudo cp -a /etc /root/astra-freeipa-backup/etc-$(date +%Y%m%d-%H%M%S)
Восстановление при неудачной настройке:
sudo rsync -a /root/astra-freeipa-backup/etc-YYYYMMDD-HHMMSS/ /etc/
Будьте осторожны: восстановление /etc целиком может затронуть сетевые настройки, пользователей и службы.
17. Если astra-freeipa-client нет, используйте ipa-client-install
Во многих системах фактически работает стандартная команда:
sudo ipa-client-install
Пример:
sudo ipa-client-install \
--domain=corp.example \
--realm=CORP.EXAMPLE \
--server=ipa1.corp.example \
--hostname=ws01.corp.example \
--mkhomedir
Автоматический вариант:
sudo ipa-client-install \
--domain=corp.example \
--realm=CORP.EXAMPLE \
--server=ipa1.corp.example \
--hostname=ws01.corp.example \
--principal=admin \
--password='VeryStrongPassword' \
--mkhomedir \
--unattended
Удаление:
sudo ipa-client-install --uninstall
18. Короткая шпаргалка
Подготовка
sudo apt-get update
sudo apt-get install astra-freeipa-client
sudo hostnamectl set-hostname ws01.corp.example
sudo timedatectl set-ntp true
Проверка сети и DNS
getent hosts ipa1.corp.example
host -t SRV _kerberos._udp.corp.example
nc -vz ipa1.corp.example 88
nc -vz ipa1.corp.example 389
Ввод в домен
sudo astra-freeipa-client \
--domain=corp.example \
--realm=CORP.EXAMPLE \
--server=ipa1.corp.example \
--hostname=ws01.corp.example \
--mkhomedir
Проверка
systemctl status sssd
getent passwd admin@CORP.EXAMPLE
id admin@CORP.EXAMPLE
kinit admin@CORP.EXAMPLE
klist
Логи
sudo less /var/log/astra-freeipa-client.log
sudo less /var/log/ipaclient-install.log
sudo less /var/log/sssd/sssd.log
sudo less /var/log/auth.log
sudo journalctl -u sssd -e
Удаление
sudo astra-freeipa-client --uninstall
sudo ipa-client-install --uninstall
ipa host-del ws01.corp.example
19. Минимальный чек-лист
- Клиент имеет FQDN.
- DNS корректно резолвит домен и серверы.
- Время синхронизировано.
- Порты до сервера доступны.
- Установлены пакеты клиента.
- Сделан бэкап
/etc. - Выполнен
astra-freeipa-client. - Работает
sssd. getent passwd user@REALMвидит пользователя.kinit user@REALMполучает билет.- Доменный пользователь входит в систему.
- Создаётся домашний каталог.
- Работает
sudo, если нужно. - На сервере виден хост:
ipa host-show hostname.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.