LINUX.ORG.RU
ФорумAdmin

Kerberos, LDAP, PAM (Все на Linux)

 , ,


1

3

Добрый день.Прошу помочь в поиске информации. Хочу разобраться как работает Kerberos, LDAP и PAM в этой связке на Linux сервер/клиент по ssh. Те статьи которые нашел никак не раскрывают картину, либо относятся к какому-то уже готовому продукту типа астры. Мне удалось запустить kdc и зайти в систему-клиент с помощью учетки настроенной в kdc на сервере. Но тепреь у меня появилось еще больше вопросов. Как оказалось на клиент по ssh зайти могу только если эта учетка уже есть на клиенте, заранее создана, если она не создана на клиенте локально, то зайти нельзя, в логах ругается, что мол нет uid/guid. У учетки которая есть локально появляется два выбора пароля - можно ввести локальный, а можно от кербероса. Но я не знаю как сделать так, чтобы можно было контролировать создание удаление учеток. Чтобы home был у всех свой локальный безо всяких samba. Что-бы Guid/Uid указывал я при создании как админ, а не автоматом как захотелось системе. Чтобы требовало смену пароля у пользователя. Я думаю, что это может сделать LDAP, но не нашел еще норм статьи разжовывающей, как оно работает и надо ли его вообще прикручивать к kerberos. Еще не понял как правильно и безопасно организовать вход в систему-клиент и локальных учеток и kerberos через PAM. И в дальнейшем закрыть вход локальных, либо оставить только специальный учетки для входа локально, а всем остальным разрешить вход только через kerberos пароль. Одни вопросы, а ответов пока нет. realm - может ли быть любым словом или обязательно быть доменом? Как сделать дублирование kerberos на случай падения первого узла? итд. Прошу помочь.

vi /var/lib/kerberos/krb5kdc/kdc.conf

[kdcdefaults]
        kdc_ports = 750,88
        default_realm = OAO.SSS
  
[realms]
OAO.SSS = {
    database_name = /var/lib/kerberos/krb5kdc/principal
    admin_keytab = FILE:/var/lib/kerberos/krb5kdc/kadm5.keytab
    acl_file = /var/lib/kerberos/krb5kdc/kadm5.acl
	dict_file = /var/lib/kerberos/krb5kdc/kadm5.dict
    key_stash_file = /var/lib/kerberos/krb5kdc/.k5.OAO.SSS
    kdc_ports = 750,88
    max_life = 10h 0m 0s
    max_renewable_life = 7d 0h 0m 0s
}
 
[logging]
    kdc = FILE:/var/log/krb5/krb5kdc.log
    admin_server = FILE:/var/log/krb5/kadmind.log


vi /etc/krb5.conf

[libdefaults]
default_realm = OAO.SSS
default_ccache_name = FILE:/tmp/krb5cc_%{uid}

[realms]
OAO.SSS = {
kdc = kvm-kdc01.OAO.SSS
}

[domain_realm]
.oao.sss = OAO.SSS
oao.sss = OAO.SSS

[logging]
    kdc = FILE:/var/log/krb5/krb5kdc.log
    admin_server = FILE:/var/log/krb5/kadmind.log
    default = SYSLOG:NOTICE:DAEMON

	



Последнее исправление: Shinma (всего исправлений: 2)

как работает Kerberos, LDAP и PAM в этой связке на Linux сервер/клиент по ssh

какой-то набор слов. дальше не читал.

http://itdavid.blogspot.com/2012/05/howto-centos-6.html

но читать надо много, со временем понимая всё больше из прочитанного.

mos ★★☆☆☆
()

Не всё прочел, но:
Если упрощенно, то керберос это шифрованный билет раздаваемый в ответ на правильные ответы.
Он никакого отношения к параметрам UID|GID не имеет - вообще в принципе. Единственное - сервер имеет свою базу юзеров(условно - логин+пароль, или ещё бывает сертификатов).

А для хранения остальных настроек пользователей в распределенной системе нужна другая система хранения и раздачи настроек. Или как вариант заводить локальных юзеров, но это чревато ошибками или непонятками(как в твоем случае).
Для сети компьютеров обычно используют LDAP (в частности одной из реализации openldap).

В нем как раз и хранятся uid,gid,home_dir, и т.д.
Есть способы совмещения баз керберос и лдап. Т.е. сервер лдап хранит нужную для керберос информацию в своей базе, а сервер-кербероз -не хранит у себя, а обращяется к лдап.
Но есть и другие варианты(раздельно хранить, дублировать, или иные способы доступа [NIS]).

У клиентов на linux нужно или настраивать pam в двух вариантах(krb5,ldap) или использовать совмещенный клиент(sssd).

Для начала рекомендую почитать https://www.opennet.ru/docs/RUS/fds/

Atlant ★★★★★
()
Последнее исправление: Atlant (всего исправлений: 1)

Да чем больше литературы тем лучше, а еще лучше на русском. Спасибо.

Shinma
() автор топика

Во-первых, если ты хочешь сделать это всё быстро, то бери freeipa, т.к. самому собирать аналог будет долго. А там всё из коробки, и порой даже работает.

Во-вторых, не делай сам создание учёток. Для этого есть sssd и oddjob. Ограничивать можно группами и т.п., uid/gid можно мапить через ldap. Настраиваешь через ldap, дальше пользователю при входе создастся всё, что нужно.

Без sssd, через pam-ldap и т.п., конечно, тоже можно, но не стоит. Он проще в настройке, умеет работать оффлайн и не сломает логин.

В общем тебе нужно отдельно читануть про ldap-сервер, отдельно про керберос, отдельно про настройку sssd для аутентификации через ldap+kerberos.

Ivan_qrt ★★★★★
()

Использовать под мои задачи можно только три софта указанные в шапке темы. Никаких готовых и сторонних решений не требуется. Необходимо просто много хорошего мануала на эти три темы. Без всяких готовых решений, где за меня уже все подумали, ничего не рассказали и если, что-то сломается то я останусь неграмотным инженегром зависимым от надслоек над надслойками.

Shinma
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.