LINUX.ORG.RU

Настройка PAM_LDAP и NSS_LDAP


0

0

Выложил на всеобщее поругание заметку на русском языке о том, как завести OpenLDAP и настроить pam_ldap и nss_ldap таким образом, чтобы заставить систему производить аутентификацию пользователей обращаясь на сервера каталога

>>> Собственно текст заметки

★★★★★

Проверено: maxcom

slapd.conf:
rootdn          "cn=sysadm,dc=pupkin,dc=com,dc=ru"

ldap.conf:
rootbinddn cn=sysadm,dc=pupkin,dc=com,dc=ru

и какой смысл под админом за уидами ходить ?

а nscd Вы не запускаете чтоли ?

borisych ★★★★★
()

В статье написано: PAM_LDAP (он же nss_ldap)
Давайте сразу отделим мух от котлет и не будем вносить дезу?
nss - это не pam, и никогда им не был. А вообще, самое интересное, что
действительно хотелось бы почитать - это возможность настройки ldap без pam. Таких статей практически нет.

P.S. PAM - must die. Кривое инвалидное поделие сантехников.

anonymous
()
Ответ на: комментарий от borisych

без него работает в такой конфигурации прекрасно .

anonymous
()
Ответ на: комментарий от anonymous

Кривой и перегруженный дизайн, кривой конфиг, желание в одной проге
сделать всё, кривая реализация, несколько раз находились дыры с
эксплойтами.

Образец правильной реализации и прямого дизайна:
http://cr.yp.to/checkpwd/interface.html

Вот это действительно универсальный и охринительно простой интерфейс.
Настолько прост, что прикручивается к чему угодно, даже к тому же pam'у:
http://checkpasswd-pam.sourceforge.net/checkpassword-pam.8.html

anonymous
()
Ответ на: комментарий от anonymous

Да, да, для наколеной системы очень охренительный интерфейс!

И зачем люди придумывают AA, Tacacs, SASL, GSSAPI и PAM? Наверное, от нечего делать :>

BaT ★★★★★
()
Ответ на: комментарий от BaT

А что касается наколенной системы, то известное дело - шестигранник
круче, чем круглое колесо :)

anonymous
()

Хорошо написана статья.
Все грамотно и понятно.

З.Ы.SSL можно было прикрутить сразу, что бы потом глупые вопросы не поднимались.
Анонимусу который "действительно хотел почитать - это возможность настройки ldap без pam. Таких статей практически нет."
Статья называется настрйка PAM_LDAP, для работы которого необходим nss_ldap. Но это совершенно не означает что для работы nss_ldap необходим модуль pam_ldap.

anonymous
()
Ответ на: комментарий от borisych

2borisych:

> и какой смысл под админом за уидами ходить ?

Вы меня оскорбить хотите, или просто читать не умеете?

rootbinddn используется теми программами, которые имеют euid равный 0 и лезут править пользователей - chfn, chsh, chfn, passwd. А просто за эккаунтами система ходит анонимно, поскольку "обычное хождение" описывается в binddn. Вы бы хоть /etc/ldap.conf на своей машинке почитали, с комментариями, а?

no-dashi ★★★★★
() автор топика

Просвятите, пожалуста, дилетанта. Необходимо ли указывать ldap в nss для shadow? И означает ли это то, что при ldap-pam-nss конструкции локальный администратор любого клиента может посмотреть хэши паролей пользователей всей сети с помощью "getent shadow"?

anonymous
()
Ответ на: комментарий от anonymous

>Кривой и перегруженный дизайн, кривой конфиг, желание в одной проге
>сделать всё, кривая реализация, несколько раз находились дыры с
>эксплойтами.

Приведи _ФОРМАЛИЗОВАННОЕ_ определение кривости и перегруженности дизайна. Что не можешь ? Тогда и помалкивай.



anonymous
()

Народ, здесь когда-то проскакивала статья, как настроен openldap в каком-то Челябинском (по-моему) институте, не поделитесь ссылкой? В поиске не нашел ее.

anonymous
()
Ответ на: комментарий от anonymous

В каком месте PAM перегружен ?
Вообще ничего лишнего в нем нет !

Насчет PAM_LDAP - штука правильная,но с недостаточным функционалом.
1) Мне нужны ulimit's. Штука полезная, против кривого ПО и шаловливых ручек. pam_limit конечно здорово, но много лучше хранить в LDAP.
2)Я частенько использую chroot. pam_chroot есть, но мне опять нужно хранить в ldap.
3) Неким пользователям для некоторых задач необходимо выставлять переменные окружения. Легко через профайлики,есть еще и pam_env (кажется) но лучше бы в ldap.
4) Автомонтирование каталогов при входе. Есть pam для этого, но опять же централизовано в ldap куда симпатичнее. Хотя возможно автомонтирование домашнего каталога и пройдет.

Стандартов на хранение в LDAP таких вещей нет, к сожалению.

Если эти вопросы решить, то можно действительно говорить о централизованном хранение/управлении пользователями.

Есть еще проблемки в конфигурировании openLDAP, чтобы назначить админа на ветку (тоесть на сервер или на группу серверов), придеться это каждый раз вгонять в конфигурационный файл.

eda
()

2no-dashi

>Выложил на всеобщее поругание ...

Так получай:

1)
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/redhat/autofs.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/misc.schema

Абсолютно излишни, а присутствие redhat/autofs.schema создаст
проблемы для пользователей не RH.

2)
allow bind_v2

Я наткнулся только на одну программу, которой нужна совместимость с
LDAPv2 - bind2ldap. Может быть закоментировать с объяснением? Или
просто объяснить для чего это тут?

3)
Применение objectClass: nisMailAlias весьма спорно.
"Не плоди сущности без надобности".

4)
Тяжелая тема - SASL аутентификация в OpenLDAP и ее настройка даже
не упоминается.

А, вообще, своевременная и полезная "заметка".
Лично я ни чего нового не почерпнул, но все равно спасибо автору
за хорошую работу.

anonymous
()

Ничего так.
- Неплохо бы сразу показать включение SSL - ведь LDAP на один сервер мало когда нужен.
- Совершенно зря вводить новичков в заблуждение, что nss_ldap и pam-ldap неразрывно связанны. pam нужен только для авторизации, а она нужна не всегдa.
- Вместо NisMailAlias, возможно более логично использовать "account". В нем, кстати, есть полезный для сетевой конфигурации атрибут host.

anonymous
()
Ответ на: комментарий от no-dashi

>> и какой смысл под админом за уидами ходить ? >Вы меня оскорбить хотите, или просто читать не умеете?

Как-то вы, действительно, не очень изящно за паролями ходите... Надеюсь, что оно так у вас оттого, что не хотелось статейку раздувать, к тому же вы обещали что-то про безопасность.

Не кажется ли вам, что вы черезмерно упростили вопрос? Стремление показать простыми сложные вещи известно к чему приводит...

anonymous
()

$ getent shadow
что в ответ выплевывает простому пользователю?

Вопрос не праздный, поскольку не описаны права доступа
к полям данных LDAP.

z2v
()
Ответ на: комментарий от no-dashi

>rootbinddn используется теми программами, которые имеют euid равный 0 и лезут править пользователей - chfn, chsh, chfn, passwd. А просто за эккаунтами система ходит анонимно, поскольку "обычное хождение" описывается в binddn.

у вас еще дерево можно анонимно читать ....

я так полагаю, что в статье, приведен пример дефолтной инсталляции openldap в rh (от debian покрайней мере мало чем отличаеится), что же вы тогда настраивали ?

>access to * by peername=127.0.0.1 read by anonymous auth by users read

то есть менять пароль можно только командой passwd и только из консоли ? а где адресные книги ? где настройки форвардов ? чем тогда приведенное "решение" отличается от /etc/passwd & /etc/shadow ?

>Вы бы хоть /etc/ldap.conf на своей машинке почитали, с комментариями, а?

и читал и писал.

borisych ★★★★★
()
Ответ на: комментарий от borisych

Да, и почему не написанно про интеграцию с Windows PDC? что за ламерство, надо было описать!

Человек вполне конкретно сел писать про pam_ldap и nss_ldap. Пусть с некоторыми недочетами, но написал. Он не обещал писать про устройство LDAP, про настройку security policy, про SASL аутентификацию, про репликацию, про Kerberos, про интеграцию с почтой, про адресные книги, про самбу, про... про что еще не обещал?

Так что не надо выискивать в статье того, чего туда класть и не собирались. Мы верим, что вы много чего про LDAP знаете - но если хотите продемонстрировать свое знание - напишите все, о чем no-dashi умолчал. И будет вам честь и хвала.

BaT ★★★★★
()

Да отлично все работает с этим PAM_LDAP, главное сразу SSL прикрутить. Такое решение этоу уже практически общепринятый стандарт, по крайней мере для Red Hat.

А вот немножко не в тему вопрос, нашел кто-то человеческую утилиту для администритрования OpenLDAP? Только не советуйте общаться с лдапом через текстовые файлы и утилиты командной строки, не те масштабы уже давно. В свое время убил кучу времени на это и кроме довольно убогих поделок ничего не нашел. Самая приличная прога называлась LDAP Browser-Editor, была написана на java каким-то студентом и перестала развиваться. Под юниксовую платформу тоже ничего достойного, всякие там GQ LDAP Client, LDAP Explorer, LDAP Interface - фуфло полное. Под винду есть очень хорошая вещь - Softerra LDAP Administrator, но софтина закрытая и коммерческая, а потому малодоступная.

Собственно поэтому и отказался от OpenLDAP в пользу SUN Netscape Directory Service, никакого сравнения...

anonymous
()
Ответ на: комментарий от anonymous

>А вот немножко не в тему вопрос, нашел кто-то человеческую утилиту для администритрования OpenLDAP?

JXplorer 3.0

CA Open Source Licence Version 1.0 Copyright (c) 2003 Computer Associates.

Хоть и на jave написана (минус - тормоза, плюс - кроссплатформенность), но правильный LDAP администратор со всем необходимым. Рекомендую.

anonymous
()
Ответ на: комментарий от anonymous

> include /etc/openldap/schema/nis.schema
> include /etc/openldap/schema/redhat/autofs.schema
> include /etc/openldap/schema/openldap.schema
> include /etc/openldap/schema/misc.schema
>
> Абсолютно излишни, а присутствие redhat/autofs.schema создаст
проблемы для пользователей не RH

Согласен, но кроме misc.schema - там содержится nisMailAlias

> Применение objectClass: nisMailAlias весьма спорно.
> "Не плоди сущности без надобности".

Тогда уж можно вообще свой класс написать. Но novice этого сделать не сумеет, а advanced притянет какой-нибудь другой более полезный класс, чем account, в качестве structural (тот же sambaSamAccount, например)

P.S.: а эту заметку я писал именно по принципу "как заставить все работать без лишних телодвижений"

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Чтобы исключить доступ к хэшам паролей со стороны всех пользователей, кроме владельцев этих паролей, всего-то надо сделать

access to attrs=userPassword by self write by * auth

И все. Если убить /etc/ldap.secret и сделать chpasswd.sh, который будет "дергать" ldapsearch и ldappasswd -x -D <результат ldapsearch> -W -S <результат ldapsearch>, то наступит счастье :-)

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от no-dashi

>а эту заметку я писал именно по принципу "как заставить все работать без лишних телодвижений"

В таком случае, IMHO, обязательно нужно обратить внимание на безопасность. Элементарная правка инитскрипта, чтобы сервер слушал только на 127.0.0.1 защитит novice от многих проблем. А то, как выставят хост в инет - что витрина магазина.

anonymous
()
Ответ на: комментарий от no-dashi

2no-dashi

может Вам сначала доки покурить , а только потом начать писать , или 
чукча не читатель он писатель ? вводите народ в только заблуждение.

как посмотришь так пользователей можно заводить только так :

# echo "dn: cn=serega,dc=pupkin,dc=com,dc=ru
objectClass: sambaSamAccount
objectClass: sambaSidEntry
objectClass: posixAccount
cn: serega
uid: serega
uidNumber: 1000
gidNumber: 1001
homeDirectory: /home/serega
sambaSID: S-1-5-21-3905436772-1214432718-19344733
" | \
	ldapadd -x -w zarazamelkaya \
	-D "cn=root,dc=pupkin,dc=com,dc=ru"


не в курсе что smbpasswd прекрасно все сам делает ?
что за _дебильные_ требования :

# Установленный дистрибутив Fedora Core 1
# Установленный пакет samba-3.0.X
# Установленный пакет openldap-servers

openldap только в RH работает ? 


еще

/etc/openldap/slapd.conf в дебиан не существует,

/etc/ldap.conf в дебиан зовется /etc/pam_ldap.conf

если что-то и есть дельное по _настройке_ ldap
так это http://www.bayour.com/LDAPv3-HOWTO.html


borisych ★★★★★
()
Ответ на: комментарий от borisych

> как посмотришь так пользователей можно заводить только так:

А ты уверен, что у тебя самба корректно настроена? Чтобы с помощью smbpasswd заводить юзеров? Не нравится предложенный мной метод - используй свой. И наверное, тебе и в голову не приходило, что иногда хочется заводить юзеров не всех в одной ветви?

> /etc/openldap/slapd.conf в дебиан не существует

Твои проблемы :-)

$ man slapd.conf [... skipped ...] /etc/openldap/slapd.conf default slapd configuration file [... skipped ...]

> что за _дебильные_ требования :

Если я тестировал это на на Fedora Core, то и описываю соответствующие условия. Ну а вообще... Поскольку не слышу от тебя конструктивных предложений, могу предложить тебе отправляться в пешее эротическое путешествие.

no-dashi ★★★★★
() автор топика
Ответ на: комментарий от no-dashi

ностроил: на соседней машине с консоли логиниться, а вот su и ssh нехочет. ХЭЛП

kp97

anonymous
()
Ответ на: комментарий от borisych

чего то ты Борисыч пиздишь.. smbpasswd поставит только objectClass: sambaSamAccount objectClass: sambaSidEntry

и именно ищет objectClass: posixAccount в своей базе.

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