Ручная настройка сервера в качестве клиента freeipa


Если нет возможности использовать ipa-client-install,как например на данный момент на debian9.
Я не пробовал,но с редхатообразными разницы особой не должно быть.
1.
На IPA сервере добавляем в ручную новый хост.Можно через морду,или в консоли
ipa host-add --force --ip-address=192.168.1.2 client1.example.com
—client1.example.com — hostname клиента.
2.
ipa host-add-managedby --hosts=ipaserver.example.com client1.example.com
ipa-getkeytab -s ipaserver.example.com -p host/client1.example.com -k /tmp/client1.keytab

Получившийся client1.keytab копируем на клиента и переименовываем в /etc/krb5.keytab,и делаем ему root:root 0600

3.
На клиенте
3.1 Ставим:
apt-get install sssd krb5-user
3.2 Приводим /etc/sssd/sssd.conf к виду
[sssd]
config_file_version = 2
services = nss, pam, ssh

domains = example.com
[nss]

[pam]

[ssh]
[domain/example.com]
cache_credentials = True
krb5_store_password_if_offline = True
ipa_domain = example.com
id_provider = ipa
auth_provider = ipa
access_provider = ipa
ipa_hostname = client1.example.com
chpass_provider = ipa
ipa_server = ipaserver.example.com
ldap_tls_cacert = /etc/ipa/ca.crt

Значения меняем на свои.
ca.crt берем на своем сервере https://ipaserver.example.com/ipa/config/ca.crt
Проверяем,чтобы в /etc/nsswitch.conf были строки вида

passwd: compat sss
shadow: compat sss
group: compat sss

netgroup: compat sss

Если sss нет,то дописываем
3.3 Приводим /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
rdns = false
ticket_lifetime = 24h
forwardable = yes
allow_weak_crypto = true

[realms]
EXAMPLE.COM = {
kdc = ipaserver.example.com:88
kdc = ipa-loc.example.com:88
admin_server = ipaserver.example.com:749
default_domain = example.com
}

[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM

3.4 Проверяем конфиги pam
В /etc/pam.d/
common-account,common-auth,common-password,common-session должны быть соответственно
account [default=bad success=ok user_unknown=ignore] pam_sss.so
auth [success=1 default=ignore] pam_sss.so use_first_pass
password sufficient pam_sss.so use_authtok
session optional pam_sss.so
Для редхатов будут отличаться только названия файлов.Опции те же но группируются по другому

После этого пробуем стартовать
systemctl start sssd
Если запустилось без ошибок,то пробуем получить ключ с сервера
sss_ssh_authorizedkeys username
Если опять же все ок,то дописываем в /etc/ssh/sshd_config
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody
На всякий случай перезагружаемся и пробуем зайти по ssh.
Если как каком-то из последних этапов получаем ошибку,то внимательно проверяем конфиги на опечатки.Ну или что-то изменилось.