Добрый день.
Есть необходимость хранить на Лдап сервере два пароля для каждого пользователя.
Один для фтп, другой для впн.Не могу осилить права доступа к атрибутам.
Пока и впн и фтп сервера подключаются к ЛДАП от имени рута. Что не есть правильно,
но я всё что мог перебрал.
Не могу заставить аутентифицироватся от имени анонимуса.
Любое написаное мной правило доступа запрещает доступ анонимуса.Было много комбинаций правил, остановился сейчас на таком.
access to attrs=vpnPassword, attrs=userPassword
by anonymous auth
by * none
access to *
by users read
by anonymous authПожалуйста дайте ссылку на русский мануал или подскажите что не так.
Плюс в каком атрибуте хранить второй пароль?
Как создать такой атрибут, который шифровался б так же как и userpassword?
>Добрый день.
>Есть необходимость хранить на Лдап сервере два пароля для каждого пользователя.
>Один для фтп, другой для впн.
>
>Не могу осилить права доступа к атрибутам.
>Пока и впн и фтп сервера подключаются к ЛДАП от имени рута.
>Что не есть правильно,
>но я всё что мог перебрал.если ваши сервисы не в состоянии пробрасывать аутентификацию пользователей в ldap,то заведите админов этих сервисов и подключайтесь под ними.
>Не могу заставить аутентифицироватся от имени анонимуса.
>Любое написаное мной правило доступа запрещает доступ анонимуса.
>
>Было много комбинаций правил, остановился сейчас на таком.
>
>access to attrs=vpnPassword, attrs=userPassword
> by anonymous auth
> by * none
>access to *
> by users read
> by anonymous auth
>
>Пожалуйста дайте ссылку на русский мануал или подскажите что не так.ничего криминального в ваших acl нет. возможно ваши сервисы просто не умеют ldap_auth_bind (читай выше про отдельных админов)
кроме-того, лдап на некоторых системых очень конкретен к синтаксису...не любит переводы строк, табуляцию в acl, считая это частью acl.
должно быть примерно так:
access to attrs=userPassword by dn.regex="cn=adm,o=myorg" write by anonymous auth by self write by * none
access to dn.regex=".*,ou=PeopleOfFTPandVPN,o=myorg" by dn.regex="cn=adm,o=myorg" write by self write by * read
>Плюс в каком атрибуте хранить второй пароль?
>Как создать такой атрибут, который шифровался б так же как и userpassword?вообще смысл единого хранилища в слове _единый_ :)
но что вам мешает сделать 2-й атрибут userpassword? вменяемый сервис будет перебирать их пока не совпадёт с одним из них. Ничего также не мешает сделать свой атрибут по аналогии с userpassword и назвать его как вам хочется. Как сделать? открыть core.schema + документацию и сделать по аналогии
>если ваши сервисы не в состоянии пробрасывать аутентификацию пользователей в ldap,
>то заведите
>админов этих сервисов и подключайтесь под ними.Не понимаю что такое админы сервисов...
Имеется ввиду создать в лдап пользователей типа VpnRoot FtpRoot?
И предоставить им доступ к соответствующим атрибутам?>ничего криминального в ваших acl нет. возможно ваши сервисы просто не умеют
>ldap_auth_bind (читай выше про отдельных админов)Не уверен, но если эти сервисы логинятся сейчас от имени рута, то разве это не означает что умеют?
То с чего надо было начать:
Freebsd 4.9: openldap-server-2.4.2.a_1; freeradius-1.1.2; mpd-3.18_4
RedHat7: pure-ftpd-1.0.21>кроме-того, лдап на некоторых системых очень конкретен к синтаксису...не любит переводы строк,
>табуляцию в acl, считая это частью acl.
>должно быть примерно так:
>access to attrs=userPassword by dn.regex="cn=adm,o=myorg" write by anonymous auth by self write
>by * none
>access to dn.regex=".*,ou=PeopleOfFTPandVPN,o=myorg" by dn.regex="cn=adm,o=myorg" write by self write by * readСпасибо.
У Вас есть русский док по конфигу аклом?>>Плюс в каком атрибуте хранить второй пароль?
>>Как создать такой атрибут, который шифровался б так же как и userpassword?
>
>вообще смысл единого хранилища в слове _единый_ :)
Знаю но у полутысячи пользователей уже роздано по два пароля :)>но что вам мешает сделать 2-й атрибут userpassword? вменяемый сервис будет перебирать
>их пока не совпадёт с одним из них.
Попробовал. похоже у меня невменяемый. :)>Ничего также не
>мешает сделать свой атрибут по аналогии с userpassword и назвать
>его как вам хочется. Как сделать? открыть core.schema + документацию и
>сделать по аналогии
Показываю как сделал.attributetype ( 2.5.4.66 NAME 'vpnPassword'
DESC 'RFC2256/2307: password of user'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{128} )Как видно не особо отличается от Юзерпасворда
#attributetype ( 2.5.4.35 NAME 'userPassword'
# DESC 'RFC2256/2307: password of user'
# EQUALITY octetStringMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{128} )Но при выполнении ЛдапСерч, Юзерпассворд выдается криптованый, а впн пассворд - открытый.
И хранить его криптованым в лдапе нельзя из-за Радиуса. Не понял причины, но в конфиге радиуса так и написано - пароль должен быть открытым.