Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ldap+cyrus-sasl+ldapdb

181 views
Skip to first unread message

Sergei Romanov

unread,
Apr 26, 2006, 7:45:18 AM4/26/06
to
Уважаемые all
помогите пожалуйста с такой связкой
ldap+cyrus-sasl+ldapdb
опишу ситуацию подробнее:
#>uname -a 15:48
FreeBSD чччч.ru 6.0-RELEASE FreeBSD 6.0-RELEASE #1: Tue Apr 11
17:44:01 UTC 2006
#>pkg_info|grep ldap && pkg_info|grep cyrus 15:50
cyrus-sasl-ldapdb-2.1.21 SASL LDAPDB auxprop plugin
openldap-sasl-client-2.2.30 Open source LDAP client implementation with
SASL2 support
openldap-sasl-server-2.2.30 Open source LDAP server implementation with
SASL2 support
p5-perl-ldap-0.33 A Client interface to LDAP servers
php5-ldap-5.1.2_1 The ldap shared extension for php
cyrus-sasl-2.1.21_2 RFC 2222 SASL (Simple Authentication and Security
Layer)
cyrus-sasl-ldapdb-2.1.21 SASL LDAPDB auxprop plugin


ставил всё из портов! опищу процесс
установки:
ставил как в доке написано сначала
сасл без ldapa
root[/usr/ports/security/cyrus-sasl2]#>make install clean
он сказал всё ок!
следом ldap+sasl
root[/usr/ports/net/openldap22-sasl-server]#>make WITH_BDB_VER=43
WITH_SASL=yes install
грит тоже всё пучком
теперь ldapdb
root[/usr/ports/security/cyrus-sasl2-ldapdb]#>make install clean
он мне вот такое сказал, когда make делал
configure: WARNING: Disabling SASL authentication database support

запускаем ldap
sh /usr/local/etc/rc.d/slapd.sh start

.30 (Apr 25 2006 16:32:06) $
ччч@xxx.ru:/usr/ports/net/openldap22-sasl-server/work/openldap-2.2.30/servers/
slapd

Apr 25 16:39:55 xxx slapd[89353]: auxpropfunc error invalid parameter
supplied
Apr 25 16:39:55 xxx kernel: Apr 25 16:39:55 xxx slapd[89353]:
auxpropfunc error invalid parameter supplied
Apr 25 16:39:55 xxx slapd[89353]: _sasl_plugin_load failed on
sasl_auxprop_plug_init for plugin: ldapdb
Apr 25 16:39:55 xxx kernel: Apr 25 16:39:55 xxx slapd[89353]:
_sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: ldapdb

т.е он грит что sasl собран без подержки
ldap!? правильно понимаю?!
как исправить оную ошибку?!
просьба не предлогать в качестве
метода SASLAUTHD
pwcheck_method: saslauthd
хочеться через auxprop->ldapdb (уже из
принципа!)

--
---
c уважением s.romanov
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Andrey Voitenkov

unread,
Apr 26, 2006, 10:02:50 AM4/26/06
to
On 2006-04-26, Sergei Romanov wrote:

[...]

> Apr 25 16:39:55 xxx slapd[89353]: auxpropfunc error invalid parameter
> supplied
> Apr 25 16:39:55 xxx kernel: Apr 25 16:39:55 xxx slapd[89353]:
> auxpropfunc error invalid parameter supplied
> Apr 25 16:39:55 xxx slapd[89353]: _sasl_plugin_load failed on
> sasl_auxprop_plug_init for plugin: ldapdb
> Apr 25 16:39:55 xxx kernel: Apr 25 16:39:55 xxx slapd[89353]:
> _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: ldapdb

судя по этому куску, slapd как раз собран с поддержкой sasl.
на старте он пытается загрузить либу sasl, которая, в свою очередь,
пытается лезть в ldapdb (а его еще нет, slapd только стартует).

--
mccloud@

mitrohin a.s.

unread,
Apr 27, 2006, 1:03:14 AM4/27/06
to

добавлю свои 20 копеек.
насколько понимаю, тот плагин ldapdb.c, что идет с cyrus-sasl2, растет из
/usr/ports/net/openldap22-server/work/openldap-2.2.30/contrib/ldapsasl/.
у второго есть README. вам нужно в него посмотреть. ;)

/swp

Sergei Romanov

unread,
Apr 27, 2006, 5:57:27 AM4/27/06
to
mitrohin a.s. пишет:
MA> On Wed, Apr 26, 2006 at 02:02:50PM +0000, Andrey Voitenkov wrote:
MA>> On 2006-04-26, Sergei Romanov wrote:
MA>>
MA>> [...]
MA>> > Apr 25 16:39:55 xxx kernel: Apr 25 16:39:55 xxx slapd[89353]:
MA>> > _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: ldapdb
MA>>
MA>> судя по этому куску, slapd как раз собран с поддержкой sasl.
MA>> на старте он пытается загрузить либу sasl, которая, в свою очередь,
MA>> пытается лезть в ldapdb (а его еще нет, slapd только стартует).
очень даже похоже!!!
MA> добавлю свои 20 копеек.
MA> насколько понимаю, тот плагин ldapdb.c, что идет с cyrus-sasl2, растет из
MA> /usr/ports/net/openldap22-server/work/openldap-2.2.30/contrib/ldapsasl/.
MA> у второго есть README. вам нужно в него посмотреть. ;)
весь его уже до дыр затёр! :)
http://asg.web.cmu.edu/cyrus/download/sasl/options.html
This is as it should be. If you don't like the "auxpropfunc: error -7" message

that is sent to syslog by slapd, you can stop it by creating /usr/lib/sasl2/
slapd.conf with:
auxprop_plugin: slapd
which will force the SASL library to ignore all other auxprop modules.

т.е если вас смущает данная ошибка в sysloge, то вы можете остановить это
добавив в... sasl при этом игнорирует все модули, кроме slapd
добовляем
root[/usr/local/etc]#>cat /usr/lib/sasl2/slapd.conf
auxprop_plugin: slapd
перегружаем ldap смотрим
Apr 27 10:30:37 ччч slapd[1245]: auxpropfunc error invalid parameter supplied
Apr 27 10:30:37 ччч kernel: Apr 27 10:30:37 ччч slapd[1245]: auxpropfunc error

invalid parameter supplied
Apr 27 10:30:37 ччч slapd[1245]: _sasl_plugin_load failed on
sasl_auxprop_plug_init for plugin: ldapdb
Apr 27 10:30:37 ччч kernel: Apr 27 10:30:37 ччч slapd[1245]: _sasl_plugin_load

failed on sasl_auxprop_plug_init for plugin: ldapdb

:(((((
если я правильно понял ошибка не критична?! верно?

Andrey Voitenkov

unread,
Apr 27, 2006, 8:36:09 AM4/27/06
to
On 2006-04-27, Sergei Romanov wrote:
[...]

> т.е если вас смущает данная ошибка в sysloge, то вы можете остановить это
> добавив в... sasl при этом игнорирует все модули, кроме slapd
> добовляем
> root[/usr/local/etc]#>cat /usr/lib/sasl2/slapd.conf
> auxprop_plugin: slapd
> перегружаем ldap смотрим
> Apr 27 10:30:37 ччч slapd[1245]: auxpropfunc error invalid parameter supplied
> Apr 27 10:30:37 ччч kernel: Apr 27 10:30:37 ччч slapd[1245]: auxpropfunc error
>
> invalid parameter supplied
> Apr 27 10:30:37 ччч slapd[1245]: _sasl_plugin_load failed on
> sasl_auxprop_plug_init for plugin: ldapdb
> Apr 27 10:30:37 ччч kernel: Apr 27 10:30:37 ччч slapd[1245]: _sasl_plugin_load
>
> failed on sasl_auxprop_plug_init for plugin: ldapdb
>
>:(((((
> если я правильно понял ошибка не критична?! верно?
>
как по мне, то ошибка весьма критична.
у меня появилось такое впечатление: люди, писавшие доку, предполагают,
что библиотека не полезет к тому же slapd, который ее вызвал.
иначе получается, что slapd присел на корточки, наступил себе на яйца,
а потом пытается встать (да простит мне модаратор такие сравнения).
в таком виде оно не встанет imho.

--
mccloud@

Sergei Romanov

unread,
Apr 27, 2006, 10:10:14 AM4/27/06
to
Andrey Voitenkov пишет:
AV> On 2006-04-27, Sergei Romanov wrote:
AV> [...]
AV>> failed on sasl_auxprop_plug_init for plugin: ldapdb
AV>>
AV>>:(((((
AV>> если я правильно понял ошибка не критична?! верно?
AV>>
AV> как по мне, то ошибка весьма критична.
AV> у меня появилось такое впечатление: люди, писавшие доку, предполагают,
AV> что библиотека не полезет к тому же slapd, который ее вызвал.
AV> иначе получается, что slapd присел на корточки, наступил себе на яйца,
AV> а потом пытается встать (да простит мне модаратор такие сравнения).
AV> в таком виде оно не встанет imho.

шикарное сравнение :))))
но как быть?!
---
c уважением s.romanov
--

Andrey Voitenkov

unread,
Apr 27, 2006, 11:11:08 AM4/27/06
to
On 2006-04-27, Sergei Romanov wrote:
[...]
> AV>> failed on sasl_auxprop_plug_init for plugin: ldapdb
> AV>>
> AV>>:(((((
> AV>> если я правильно понял ошибка не критична?! верно?
> AV>>
> AV> как по мне, то ошибка весьма критична.
> AV> у меня появилось такое впечатление: люди, писавшие доку, предполагают,
> AV> что библиотека не полезет к тому же slapd, который ее вызвал.
> AV> иначе получается, что slapd присел на корточки, наступил себе на яйца,
> AV> а потом пытается встать (да простит мне модаратор такие сравнения).
> AV> в таком виде оно не встанет imho.
>
> шикарное сравнение :))))
> но как быть?!

варианты такие:

1)
отключить ldapdb для slapd.
в /usr/local/lib/sasl2/slapd.conf
pwcheck_method: auxprop

2)
собрать slapd вообще без sasl (sasl для него клиентом будет)

ни одно ни другое я не пробовал, это чистые домыслы.
идея в том, чтоб получить стандартную схему:
клиент->sasllib->db(т.е. slapd)

--
mccloud@

Sergei Romanov

unread,
Apr 27, 2006, 12:05:07 PM4/27/06
to
Andrey Voitenkov пишет:
AV> On 2006-04-27, Sergei Romanov wrote:
AV> [...]
AV>> AV>> failed on sasl_auxprop_plug_init for plugin: ldapdb

AV> варианты такие:

AV> 1)
AV> отключить ldapdb для slapd.
AV> в /usr/local/lib/sasl2/slapd.conf
AV> pwcheck_method: auxprop
сначало было без этой строки не работало, ещё раз попробовал не работает! :((

AV> 2)
AV> собрать slapd вообще без sasl (sasl для него клиентом будет)

AV> ни одно ни другое я не пробовал, это чистые домыслы.
AV> идея в том, чтоб получить стандартную схему:
AV> клиент->sasllib->db(т.е. slapd)

так если я правильно понял собираем так
root[/usr/ports/net/openldap22-server]#>make WITH_BDB_VER=43 WITH_SASL=no
WITH_PERL=yes install
пересобрал только ldap
запускаю: такая же ругань :((
может фишка в том что не правильно слинкованы библиотеки??
root[/usr/ports/net/openldap22-server]#>ldd /usr/local/libexec/slapd
20:02
/usr/local/libexec/slapd:
libldap_r-2.2.so.7 => /usr/local/lib/libldap_r-2.2.so.7 (0x2814c000)
liblber-2.2.so.7 => /usr/local/lib/liblber-2.2.so.7 (0x2817f000)
libdb-4.3.so.0 => /usr/local/lib/libdb-4.3.so.0 (0x2818b000)
libperl.so => /usr/local/lib/perl5/5.8.8/mach/CORE/libperl.so
(0x28256000)
libm.so.4 => /lib/libm.so.4 (0x28355000)
libutil.so.5 => /lib/libutil.so.5 (0x2836b000)
libsasl2.so.2 => /usr/local/lib/libsasl2.so.2 (0x28377000)
libcrypto.so.3 => /usr/local/lib/libcrypto.so.3 (0x2838b000)
libssl.so.3 => /usr/local/lib/libssl.so.3 (0x2847b000)
libfetch.so.4 => /usr/lib/libfetch.so.4 (0x28542000)
libcom_err.so.3 => /usr/lib/libcom_err.so.3 (0x2854e000)
libcrypt.so.3 => /lib/libcrypt.so.3 (0x28550000)
libwrap.so.4 => /usr/lib/libwrap.so.4 (0x28568000)
libpthread.so.2 => /usr/lib/libpthread.so.2 (0x2856f000)
libc.so.6 => /lib/libc.so.6 (0x28594000)
libssl.so.4 => /usr/lib/libssl.so.4 (0x2866b000)
libcrypto.so.4 => /lib/libcrypto.so.4 (0x28699000)
что-то я невижу тут никакого ldapdb?! так должно быть?!
вот это листинг ещё приведу
root[/usr/ports/net/openldap22-server]#>ldd /usr/local/lib/sasl2/libldapdb.so

20:04
/usr/local/lib/sasl2/libldapdb.so:
libldap-2.2.so.7 => /usr/local/lib/libldap-2.2.so.7 (0x28153000)
liblber-2.2.so.7 => /usr/local/lib/liblber-2.2.so.7 (0x28180000)
libc.so.6 => /lib/libc.so.6 (0x28077000)
libsasl2.so.2 => /usr/local/lib/libsasl2.so.2 (0x2818c000)
libcrypto.so.3 => /usr/local/lib/libcrypto.so.3 (0x281a0000)
libssl.so.3 => /usr/local/lib/libssl.so.3 (0x28290000)

Andrey Voitenkov

unread,
Apr 27, 2006, 12:27:55 PM4/27/06
to
On 2006-04-27, Sergei Romanov wrote:
[...]

> так если я правильно понял собираем так
> root[/usr/ports/net/openldap22-server]#>make WITH_BDB_VER=43 WITH_SASL=no
> WITH_PERL=yes install
нет, не так.
WITH_SASL вообще не должно быть.
WITH_SASL=no как раз собирает с sasl (WITH_SASL defined).

make config еще стоит попробовать, я не помню точно, но возможно
этот порт еще и в опциях что-то запоминает.

> пересобрал только ldap
> запускаю: такая же ругань :((
> может фишка в том что не правильно слинкованы библиотеки??

[...]


> libm.so.4 => /lib/libm.so.4 (0x28355000)
> libutil.so.5 => /lib/libutil.so.5 (0x2836b000)
> libsasl2.so.2 => /usr/local/lib/libsasl2.so.2 (0x28377000)

^^^^^^^^^^^^^
и вот он тут опять

--
mccloud@

Sergei Romanov

unread,
Apr 27, 2006, 1:03:51 PM4/27/06
to
собрал.
в логах чисто проверим на всякий случай
root[/usr/local/etc]#>ldd /usr/local/libexec/slapd
/usr/local/libexec/slapd:
libldap_r-2.2.so.7 => /usr/local/lib/libldap_r-2.2.so.7 (0x2813b000)
liblber-2.2.so.7 => /usr/local/lib/liblber-2.2.so.7 (0x2816e000)
libdb-4.3.so.0 => /usr/local/lib/libdb-4.3.so.0 (0x2817a000)
libcrypto.so.3 => /usr/local/lib/libcrypto.so.3 (0x28245000)
libssl.so.3 => /usr/local/lib/libssl.so.3 (0x28335000)
libfetch.so.4 => /usr/lib/libfetch.so.4 (0x283fc000)
libcom_err.so.3 => /usr/lib/libcom_err.so.3 (0x28408000)
libcrypt.so.3 => /lib/libcrypt.so.3 (0x2840a000)
libwrap.so.4 => /usr/lib/libwrap.so.4 (0x28422000)
libpthread.so.2 => /usr/lib/libpthread.so.2 (0x28429000)
libc.so.6 => /lib/libc.so.6 (0x2844e000)
libsasl2.so.2 => /usr/local/lib/libsasl2.so.2 (0x28525000)
libssl.so.4 => /usr/lib/libssl.so.4 (0x28539000)
libcrypto.so.4 => /lib/libcrypto.so.4 (0x28567000)

теперь нам надо настроить клиента!? ок
клиент будет он
cyrus-imapd-2.2.13_1 The cyrus mail server, supporting POP3 and IMAP4
тут можете смело кидать в меня шапки! честно скажу с этим зверем впервые
сталкнулся!

imapd.conf
sasl_log_level: 9
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: ldapdb ????тут верно понимаю
ldapdb_id: mta
ldapdb_pw: 1234509876
ldapdb_uri: ldapi://
ldapdb_mech: EXTERNAL
#configdirectory: /var/imap по идеи эта строка не нужна, но без не не стартует

говорит master[91478]: configdirectory option not specified in configuration
file

#partition-default: /var/spool/imap
ass8bit: yes
defaultdomain: xxx.ru
lmtp_downcase_rcpt: yes
unix_group_enable: no
virtdomains: yes
servername: xxx.ru
allowanonymouslogin: no
allowplaintext: yes
quotawarn: 90
timeout: 30
imapidlepoll: 60
imapidresponse: no
poptimeout: 10
popminpoll: 0
admins: admin ad...@xxx.ru
autocreatequota: 0
plaintextloginpause: 1
singleinstancestore: yes
reject8bit: no
sieveusehomedir: false
sievedir: /var/imap/sieve
annotation_db: skiplist
duplicate_db: berkeley-nosync
mboxlist_db: skiplist
ptscache_db: berkeley
seenstate_db: skiplist
subscription_db: flat
tlscache_db: berkeley-nosync

по поводу этого ldapdb_mech: EXTERNAL заметка
v slapd.conf
password-hash {CLEARTEXT}

sasl-authz-policy to

sasl-regexp uidNumber=(.*)\\+gidNumber=(.*),cn=peercred,cn=external,
cn=auth
ldap:///dc=xxx,dc=xx,dc=ru??sub?(&(uidNumber=$1)
(gidNumber=$2))

sasl-regexp uid=(.*@.*),cn=external,cn=auth
ldap:///dc=xxx,dc=xx,dc=ru??sub?(&(mailBox=$1)
(status=enabled))

запускаем imap он гад ломиться к sasldb
Apr 27 20:57:37 ччч ctl_cyrusdb[91507]: DBERROR db4: /var/imap/db/__db.001:
No such file or directory
Apr 27 20:57:37 ччч master[91506]: unable to create imap listener socket:
Address already in use
Apr 27 20:57:37 ччч kernel: Apr 27 20:57:37 ччч ctl_cyrusdb[91507]: DBERROR
db4: /var/imap/db/__db.001: No such file or directory
Apr 27 20:57:37 ччч kernel: Apr 27 20:57:37 ччч master[91506]: unable to
create imap listener socket: Address already in use

поверните меня пожалуйста в правильную сторону!

Andrey Voitenkov

unread,
Apr 27, 2006, 1:58:52 PM4/27/06
to
On 2006-04-27, Sergei Romanov wrote:
[...]
> теперь нам надо настроить клиента!? ок
> клиент будет он
> cyrus-imapd-2.2.13_1 The cyrus mail server, supporting POP3 and IMAP4
> тут можете смело кидать в меня шапки! честно скажу с этим зверем впервые
> сталкнулся!
>
> imapd.conf
> sasl_log_level: 9
> sasl_pwcheck_method: auxprop
> sasl_auxprop_plugin: ldapdb ????тут верно понимаю
> ldapdb_id: mta
> ldapdb_pw: 1234509876
> ldapdb_uri: ldapi://
^^^^^^^^
тут так и написано? если да, то наверное надо вписать полный путь к директории.

> ldapdb_mech: EXTERNAL
> #configdirectory: /var/imap по идеи эта строка не нужна, но без не не стартует

нужна.

> #partition-default: /var/spool/imap
это тоже раскоментить.

[...]


> запускаем imap он гад ломиться к sasldb
> Apr 27 20:57:37 ччч ctl_cyrusdb[91507]: DBERROR db4: /var/imap/db/__db.001:
> No such file or directory
> Apr 27 20:57:37 ччч master[91506]: unable to create imap listener socket:
> Address already in use
> Apr 27 20:57:37 ччч kernel: Apr 27 20:57:37 ччч ctl_cyrusdb[91507]: DBERROR
> db4: /var/imap/db/__db.001: No such file or directory
> Apr 27 20:57:37 ччч kernel: Apr 27 20:57:37 ччч master[91506]: unable to
> create imap listener socket: Address already in use

не похоже, чтоб он куда-то ломился, их там два наверное запущено...
Address already in use -- кто-то уже слушает его порты?
что в cyrus.conf?

--
mccloud@

Sergei Romanov

unread,
Apr 28, 2006, 1:28:12 AM4/28/06
to
Andrey Voitenkov пишет:
AV> On 2006-04-27, Sergei Romanov wrote:
AV> [...]
AV>> imapd.conf
AV>> sasl_pwcheck_method: auxprop
AV>> sasl_auxprop_plugin: ldapdb ????тут верно понимаю
AV>> ldapdb_uri: ldapi://
AV> ^^^^^^^^
AV> тут так и написано? если да, то наверное надо вписать полный путь к
директории.
Зачем? ldap запущем с флагом slapd_flags='-4 -h "ldap:/// ldapi:///"'
79134 ?? Is 0:00,00 /usr/local/libexec/slapd -4 -h ldap:/// ldapi:/// -u
ldap -g ldap
он весит на 389 порту и ждёт когда к ниму кто-нибудь обратиться
AV>> ldapdb_mech: EXTERNAL
AV>> #configdirectory: /var/imap по идеи эта строка не нужна, но без не не
стартует
AV> нужна.

AV>> #partition-default: /var/spool/imap
AV> это тоже раскоментить.
раскоментил
AV> [...]
AV>> запускаем imap он гад ломиться к sasldb
AV>> Apr 27 20:57:37 ччч ctl_cyrusdb[91507]: DBERROR db4: /var/imap/db/__db.
001:
AV>> Apr 27 20:57:37 ччч kernel: Apr 27 20:57:37 ччч master[91506]: unable to
AV>> create imap listener socket: Address already in use

AV> не похоже, чтоб он куда-то ломился, их там два наверное запущено...
AV> Address already in use -- кто-то уже слушает его порты?
Огромнейшее извинение, всё время забываю про эту гадость
portsentry-1.1 Port scan detection and active defense

AV> что в cyrus.conf?
его не трогал по умолчанию конф!

внёс изменения, стартовал imapd
root[/usr/local/etc]#>ps -ax|grep master
79938 p1 S+ 0:00,04 /usr/local/cyrus/bin/master -D
и..... опять эта грёбаная ошибка
Apr 28 09:10:11 ччч kernel: Apr 28 09:10:11 ччч imap[79912]: executed
Apr 28 09:10:11 ччч imap[79912]: auxpropfunc error invalid parameter supplied
Apr 28 09:10:11 ччч kernel: Apr 28 09:10:11 ччч imap[79912]: auxpropfunc error

invalid parameter supplied
Apr 28 09:10:11 ччч imap[79912]: _sasl_plugin_load failed on
sasl_auxprop_plug_init for plugin: ldapdb
Apr 28 09:10:11 ччч kernel: Apr 28 09:10:11 ччч imap[79912]: _sasl_plugin_load

failed on sasl_auxprop_plug_init for plugin: ldapdb

Apr 28 09:10:11 ччч imap[79912]: IOERROR: creating directory /var/imap:
Permission denied
Apr 28 09:10:11 ччч kernel: Apr 28 09:10:11 ччч imap[79912]: IOERROR: creating

directory /var/imap: Permission denied
Apr 28 09:10:11 ччч imap[79912]: DBERROR: opening /var/imap: cyrusdb error
Apr 28 09:10:11 ччч kernel: Apr 28 09:10:11 ччч imap[79912]: DBERROR: opening
/var/imap: cyrusdb error

еще раз пересобрал ldapdb
root[/usr/ports/security/cyrus-sasl2-ldapdb]#>make
он вот такое сказал


configure: WARNING: Disabling SASL authentication database support

......
checking LDAPDB... enabled
checking ldap.h usability... yes
checking ldap.h presence... yes
checking for ldap.h... yes
.....
перестортовал slapd и imap
ситуация не изменилась _sasl_plugin_load failed on :(((

Andrey Voitenkov

unread,
Apr 28, 2006, 4:42:05 AM4/28/06
to
On 2006-04-28, Sergei Romanov wrote:
[...]

> AV>> sasl_pwcheck_method: auxprop
> AV>> sasl_auxprop_plugin: ldapdb ????тут верно понимаю
> AV>> ldapdb_uri: ldapi://
> AV> ^^^^^^^^
> AV> тут так и написано? если да, то наверное надо вписать полный путь к
> директории.
> Зачем? ldap запущем с флагом slapd_flags='-4 -h "ldap:/// ldapi:///"'
чтоб либа знала куда ей лезть. просто ldap:/// -- это куда-то никуда.

> 79134 ?? Is 0:00,00 /usr/local/libexec/slapd -4 -h ldap:/// ldapi:/// -u
> ldap -g ldap
> он весит на 389 порту и ждёт когда к ниму кто-нибудь обратиться

ну это нормально.

> invalid parameter supplied
> Apr 28 09:10:11 ччч imap[79912]: _sasl_plugin_load failed on
> sasl_auxprop_plug_init for plugin: ldapdb
> Apr 28 09:10:11 ччч kernel: Apr 28 09:10:11 ччч imap[79912]: _sasl_plugin_load

ну вот скорее всего потому, что она не знает куда лезть (см. выше).

> Apr 28 09:10:11 ччч imap[79912]: IOERROR: creating directory /var/imap:
> Permission denied
> Apr 28 09:10:11 ччч kernel: Apr 28 09:10:11 ччч imap[79912]: IOERROR: creating
>
> directory /var/imap: Permission denied
> Apr 28 09:10:11 ччч imap[79912]: DBERROR: opening /var/imap: cyrusdb error
> Apr 28 09:10:11 ччч kernel: Apr 28 09:10:11 ччч imap[79912]: DBERROR: opening
> /var/imap: cyrusdb error

и вот этот финальный блок -- полная фигня. цирруса тошнит.
/var/imap и /var/spool/imap созданы mkimap'ом по доке?

--
mccloud@

mitrohin a.s.

unread,
Apr 28, 2006, 6:34:25 AM4/28/06
to

/usr/local/lib/sasl2/slapd.conf
pwcheck_method: auxprop
auxprop_plugin: slapd

> перегружаем ldap смотрим
> Apr 27 10:30:37 ччч slapd[1245]: auxpropfunc error invalid parameter supplied
> Apr 27 10:30:37 ччч kernel: Apr 27 10:30:37 ччч slapd[1245]: auxpropfunc error
>
> invalid parameter supplied
> Apr 27 10:30:37 ччч slapd[1245]: _sasl_plugin_load failed on
> sasl_auxprop_plug_init for plugin: ldapdb
> Apr 27 10:30:37 ччч kernel: Apr 27 10:30:37 ччч slapd[1245]: _sasl_plugin_load
>
> failed on sasl_auxprop_plug_init for plugin: ldapdb
>
> :(((((
> если я правильно понял ошибка не критична?! верно?
>

давай еще раз ;) если я правильно понимаю, то тебе хочется аутентификации
slapd посредством ldapdb, то бишь чтобы он брал пользователей и их пароли
из своей же базы. но slapd использует для аутентификации sasl (и насколько
я понимаю сборка без sasl-а если и возможна, то должна обламывать версию 3
протокола, для которой авторизация через sasl, afaik, есть требование
обязательное. поэтому собирать без sasl, опять же imho, не есть правильно).
sasl имеет модуль ldapdb, который вроде как должен быть решением, но у него
написано...

-----------------------------------------------------------------------
Note: this plugin is not for use with slapd itself. When OpenLDAP is
built with SASL support, slapd uses its own internal auxprop module.
By default, without configuring anything else, slapd will fail to load
the ldapdb module when it's present. This is as it should be. If you


don't like the "auxpropfunc: error -7" message that is sent to syslog

by slapd, you can stop it by creating /usr/lib/sasl2/slapd.conf with:

auxprop_plugin: slapd

which will force the SASL library to ignore all other auxprop modules.

-----------------------------------------------------------------------

итого
1. этот плагин не для использования самим slapd.
2. slapd имеет свою собственную внутреннюю реализацию метода auxprop,
которая не может грузить ldapdb.
3. обрати внимание на последнее предложение.


If you
don't like the "auxpropfunc: error -7" message that is sent to syslog
by slapd, you can stop it by creating /usr/lib/sasl2/slapd.conf with:

(если не правится ругань sasl-а, то вы можете прекратить это написав так)

auxprop_plugin: slapd

which will force the SASL library to ignore all other auxprop modules.

(что будет принуждать sasl игнорирывать все ДРУГИЕ auxprop модули)

openldap-2.2.30/servers/slapd
# grep sasl *.c | grep slapd
...
sasl.c: sasl_auxprop_add_plugin( "slapd", slap_auxprop_init );
...

можно попробовать сделать вывод, что внутри slapd есть (помимо
реализации auxprop) еще и sasl auxprop plugin с именем slapd.

ps
у меня пароли {CRYPT}, что делает механизмы auxprop бесполезными.

/swp

Sergei Romanov

unread,
Apr 28, 2006, 8:59:41 AM4/28/06
to
Andrey Voitenkov пишет:
AV> ну вот скорее всего потому, что она не знает куда лезть (см. выше).
sasl_ldapdb_uri: ldapi://чччч.ru
теперь знает, ошибка исчезла! :)))
AV>> /var/imap: cyrusdb error
AV> и вот этот финальный блок -- полная фигня. цирруса тошнит.
AV> /var/imap и /var/spool/imap созданы mkimap'ом по доке?
:)) нет, не по доки исправил эту ошибку!
думал всё помошь не понадобиться, ан нет, вот кусок логи не примите за флуд
решил весь показать
после всех исправлений, в том числе времено решил заставить ldap работать по
2-му протоколу.
проверяем
root[/usr/local/etc]#>imtest -a admin@чччч.ru
WARNING: no hostname supplied, assuming localhost

S: * OK чччч.ru Cyrus IMAP4 v2.2.13 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE

UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT
THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLE AUTH=NTLM
AUTH=GSSAPI
AUTH=DIGEST-MD5 AUTH=CRAM-MD5 SASL-IR
S: C01 OK Completed
C: A01 AUTHENTICATE DIGEST-MD5
S: +
ююююююююююююююю
S1zZXNz
Please enter your password:
C:
юююююююююююююююююююююююююююююю
S: A01 NO user not found
Authentication failed. generic failure
Security strength factor: 128
смотрим что в логах

Apr 28 15:38:44 utyos master[11725]: about to exec /usr/local/cyrus/bin/imapd
Apr 28 15:38:44 utyos kernel: Apr 28 15:38:44 utyos master[11725]: about to
exec /usr/local/cyrus/bin/imapd
Apr 28 15:38:44 utyos imap[11725]: DBERROR: reading /var/imap/db/skipstamp,
assuming the worst: No such file or directory
Apr 28 15:38:44 utyos kernel: Apr 28 15:38:44 utyos imap[11725]: DBERROR:
reading /var/imap/db/skipstamp, assuming the worst: No such file or directory
Apr 28 15:38:44 utyos imap[11725]: executed
Apr 28 15:38:44 utyos kernel: Apr 28 15:38:44 utyos imap[11725]: executed
Apr 28 15:38:44 utyos imap[11725]: skiplist: recovered /var/imap/mailboxes.db
(0 records, 144 bytes) in 0 seconds
Apr 28 15:38:44 utyos kernel: Apr 28 15:38:44 utyos imap[11725]: skiplist:
recovered /var/imap/mailboxes.db (0 records, 144 bytes) in 0 seconds
Apr 28 15:38:44 utyos imap[11725]: skiplist: recovered /var/imap/annotations.
db (0 records, 144 bytes) in 0 seconds
Apr 28 15:38:44 utyos kernel: Apr 28 15:38:44 utyos imap[11725]: skiplist:
recovered /var/imap/annotations.db (0 records, 144 bytes) in 0 seconds
Apr 28 15:38:44 utyos imap[11725]: accepted connection
Apr 28 15:38:44 utyos kernel: Apr 28 15:38:44 utyos imap[11725]: accepted
connection
Apr 28 15:38:44 utyos imap[11725]: OTP unavailable because can't read/write
key database /etc/opiekeys: Permission denied
Apr 28 15:38:44 utyos kernel: Apr 28 15:38:44 utyos imap[11725]: OTP
unavailable because can't read/write key database /etc/opiekeys: Permission
denied
Apr 28 15:38:44 utyos imap[11725]: DIGEST-MD5 server step 1
Apr 28 15:38:44 utyos kernel: Apr 28 15:38:44 utyos imap[11725]: DIGEST-MD5
server step 1
Apr 28 15:38:44 utyos imtest: DIGEST-MD5 client step 2
Apr 28 15:38:44 utyos kernel: Apr 28 15:38:44 utyos imtest: DIGEST-MD5 client
step 2
Apr 28 15:38:46 utyos imtest: DIGEST-MD5 client step 2
Apr 28 15:38:46 utyos imap[11725]: DIGEST-MD5 server step 2
Apr 28 15:38:46 utyos kernel: Apr 28 15:38:46 utyos imtest: DIGEST-MD5 client
step 2
Apr 28 15:38:46 utyos kernel: Apr 28 15:38:46 utyos imap[11725]: DIGEST-MD5
server step 2
Apr 28 15:38:46 utyos imap[11725]: no secret in database
Apr 28 15:38:46 utyos kernel: Apr 28 15:38:46 utyos imap[11725]: no secret in
database
Apr 28 15:38:46 utyos imap[11725]: badlogin: localhost [127.0.0.1] DIGEST-MD5
[SASL(-13): user not found: no secret in database]
Apr 28 15:38:46 utyos kernel: Apr 28 15:38:46 utyos imap[11725]: badlogin:
localhost [127.0.0.1] DIGEST-MD5 [SASL(-13): user not found: no secret in
database]

т.е. он хочет создать одноразовые пароли, но ему нет досту /etc/opiekeys
обьясните пожалуйста как тут должен работать механизм аунтефикации??(как он
использует одноразовые пароли)
напмню настройки imapd
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: ldapdb
sasl_ldapdb_uri: ldapi://ччч.чч.ru
sasl_ldapdb_mech: EXTERNAL


password-hash {CLEARTEXT}
sasl-authz-policy to
sasl-regexp uidNumber=(.*)\\+gidNumber=(.*),cn=peercred,cn=external,cn=auth

ldap:///dc=чччч,dc=чч,dc=ru??sub?(&(uidNumber=$1)(gidNumber=$2))
sasl-regexp uid=(.*@.*),cn=external,cn=auth
ldap:///dc=чччч,dc=чч,dc=ru??sub?(&(mailBox=$1)(status=enabled))
sasl-regexp uid=(.*),cn=external,cn=auth
ldap:///dc=ччч,dc=чч,dc=ru??sub?(|(cn=$1)(&(mailBox=$1@ччч.ru)
(status=enabled)))

---
c уважением s.romanov
bm9uY2U9IlZoNWZHc2Y3M0QyUTNSeG1nRis4K3Z4RlB5UDE5MmZaekdSNEgrQ1JUbkk9IixyZWFsbT
0
dXNlcm5hbWU9ImFkbWluQHV0eW9zLnVsLnJ1IixyZWFsbT0idXR5b3MudWwucnUiLG5vbmNlPSJWaD
V

--

Andrey Voitenkov

unread,
Apr 28, 2006, 11:04:05 AM4/28/06
to
On 2006-04-28, Sergei Romanov wrote:
[...]
> т.е. он хочет создать одноразовые пароли, но ему нет досту /etc/opiekeys
> обьясните пожалуйста как тут должен работать механизм аунтефикации??(как он
> использует одноразовые пароли)
никак не использует. неплохо бы его выкинуть на стадии компиляции, чтоб
не путался под ногами и логи не засорял.

> напмню настройки imapd
> sasl_pwcheck_method: auxprop
> sasl_auxprop_plugin: ldapdb
> sasl_ldapdb_uri: ldapi://ччч.чч.ru
> sasl_ldapdb_mech: EXTERNAL
>
>
> password-hash {CLEARTEXT}
> sasl-authz-policy to
> sasl-regexp uidNumber=(.*)\\+gidNumber=(.*),cn=peercred,cn=external,cn=auth
> ldap:///dc=чччч,dc=чч,dc=ru??sub?(&(uidNumber=$1)(gidNumber=$2))
> sasl-regexp uid=(.*@.*),cn=external,cn=auth
> ldap:///dc=чччч,dc=чч,dc=ru??sub?(&(mailBox=$1)(status=enabled))
> sasl-regexp uid=(.*),cn=external,cn=auth
> ldap:///dc=ччч,dc=чч,dc=ru??sub?(|(cn=$1)(&(mailBox=$1@ччч.ru)
> (status=enabled)))

насчет этого -- я не знаю что тут должно быть. не пользую я ldapdb.

вообще, если всё корректно, то saslpasswd2 -c username должен создавать
юзера, а sasldblistusers2 должен потом его показать. если это работает,
можно переходить к cyrus-imap и тестировать с ним.


--
mccloud@

Sergei Romanov

unread,
Apr 29, 2006, 3:22:15 AM4/29/06
to
Andrey Voitenkov пишет:
AV> On 2006-04-28, Sergei Romanov wrote:
AV> [...]
AV>> т.е. он хочет создать одноразовые пароли, но ему нет досту /etc/opiekeys
AV>> обьясните пожалуйста как тут должен работать механизм аунтефикации??(как
AV>> использует одноразовые пароли)
AV> никак не использует. неплохо бы его выкинуть на стадии компиляции, чтоб
AV> не путался под ногами и логи не засорял.
времено дал ему прова rw-rw-rw что б не гавкал
AV>> напмню настройки imapd

AV>> sasl_pwcheck_method: auxprop
AV>> sasl_auxprop_plugin: ldapdb
AV>> sasl_ldapdb_uri: ldapi://ччч.чч.ru
AV>> sasl_ldapdb_mech: EXTERNAL
AV>>
AV>>
AV>> password-hash {CLEARTEXT}
AV>> sasl-authz-policy to
AV>> sasl-regexp uidNumber=(.*)\\+gidNumber=(.*),cn=peercred,cn=external,
cn=auth
AV>> ldap:///dc=чччч,dc=чч,dc=ru??sub?(&(uidNumber=$1)(gidNumber=$2))
AV>> sasl-regexp uid=(.*@.*),cn=external,cn=auth
AV>> ldap:///dc=чччч,dc=чч,dc=ru??sub?(&(mailBox=$1)(status=enabled))
AV>> sasl-regexp uid=(.*),cn=external,cn=auth
AV>> ldap:///dc=ччч,dc=чч,dc=ru??sub?(|(cn=$1)(&(mailBox=$1@ччч.ru)
AV>> (status=enabled)))
AV> насчет этого -- я не знаю что тут должно быть. не пользую я ldapdb.
AV> вообще, если всё корректно, то saslpasswd2 -c username должен создавать
AV> юзера, а sasldblistusers2 должен потом его показать. если это работает,
AV> можно переходить к cyrus-imap и тестировать с ним.
это при работе с sasldb так или при двойной проверки сначала в sasldb, а потом

в ldap-e (я так не хочу усложнять)
mitrohin a.s.


"у меня пароли {CRYPT}, что делает механизмы auxprop бесполезными. "

можете вот тут сказать как у вас построено!? у меня вот этот кусок не работает
root[/usr/local/etc]#>cat openldap/slapd.conf|grep password-hash
password-hash {CLEARTEXT}
т.е пароли должны лежать в открытом виде:
"Для применения способа идентификации CRAM-MD5 необходимо, чтобы у сервера был

доступ к паролю в текстовом виде (т.е. должна быть установлена опция защиты
пароля none, что означает хранение пароля в незашифрованном виде и возможность

его получения в текстовом формате с помощью операции поиска), и чтобы значение

QRETSVRSEC (сохранение данных защиты сервера) было равным 1 (Сохранять данные
). Клиент отправляет серверу значение DN. Сервер извлекает значение атрибута
userPassword для записи и генерирует случайную строку. Затем эта случайная
строка передается клиенту. После этого и клиент и сервер хэшируют эту
случайную строку, используя пароль в качестве ключа, а затем клиент передает
полученный результат серверу. Если хэшированные строки совпадают, то запрос на

подключение считается успешным, причем пароль серверу не передается."
т.е root[/usr/local/etc]#>ldapsearch -x -D "cn=admin,dc=ччч,dc=чч,dc=ru" -W
должен нам показать пароль в открытом виде, а он
# admin@ччч.чч.ru, ччч.чч.ru
dn: mailBox=admin@ччч.чч.ru,dc=ччч,dc=чч,dc=ru
mailBox: admin@ччч.чч.ru
status: enabled
objectClass: mailAccount
userPassword:: MTIzNDU2
а он этого шифрует!!!!(должно быть 123456)
я что-то не понимаю?!

---
c уважением s.romanov

mitrohin a.s.

unread,
Apr 29, 2006, 7:35:19 AM4/29/06
to
On Sat, Apr 29, 2006 at 07:22:15AM +0000, Sergei Romanov wrote:
>> "у меня пароли {CRYPT}, что делает механизмы auxprop бесполезными. "
>
> можете вот тут сказать как у вас построено!? у меня вот этот кусок
> не работает
> root[/usr/local/etc]#>cat openldap/slapd.conf|grep password-hash
> password-hash {CLEARTEXT}
> т.е пароли должны лежать в открытом виде:
> "Для применения способа идентификации CRAM-MD5 необходимо, чтобы у
> сервера был паролю в текстовом виде
...

>
> т.е root[/usr/local/etc]#>ldapsearch -x -D "cn=admin,dc=ччч,dc=чч,dc=ru" -W
> должен нам показать пароль в открытом виде, а он
> # admin@ччч.чч.ru, ччч.чч.ru
> dn: mailBox=admin@ччч.чч.ru,dc=ччч,dc=чч,dc=ru
> mailBox: admin@ччч.чч.ru
> status: enabled
> objectClass: mailAccount
> userPassword:: MTIzNDU2
> а он этого шифрует!!!!(должно быть 123456)
> я что-то не понимаю?!

если внимательно присмотреться, то после userPassword стоит '::' а не ':'.
это признак того, что данные завернуты в base64. вытащить в нормальный вид
такие поля можно так.

echo -n "MTIzNDU2" | mmencode -u | iconv -f utf-8

в общем случае смотреть надо описание формата ldif.

/swp

Dmitriy Kirhlarov

unread,
Apr 29, 2006, 11:39:59 AM4/29/06
to
Hi!

On Sat, Apr 29, 2006 at 07:22:15AM +0000, Sergei Romanov wrote:

> т.е пароли должны лежать в открытом виде:
> "Для применения способа идентификации CRAM-MD5 необходимо, чтобы у сервера был

sasl, не поддерживает shared-secret, afair.

> userPassword:: MTIzNDU2

echo "MTIzNDU2" | b64decore -r

> а он этого шифрует!!!!(должно быть 123456)

нет.

> я что-то не понимаю?!

userPassword_::_ -- указание на то, что данные в base64.

By.
Dmitriy

Sergei Romanov

unread,
Apr 29, 2006, 12:24:44 PM4/29/06
to
Dmitriy Kirhlarov пишет:
DK> Hi!
DK> sasl, не поддерживает shared-secret, afair.
т.е пароли в базе надо хранить как-то по другому например DIGEST-MD5??

Sergei Romanov

unread,
Apr 29, 2006, 12:46:22 PM4/29/06
to
Dmitriy Kirhlarov пишет:
DK>> Hi!
DK>> sasl, не поддерживает shared-secret, afair.
SR> т.е пароли в базе надо хранить как-то по другому например DIGEST-MD5??
напомню настройки:
v /usr/local/sasl/slapd.conf
auxprop_plugin: slapd #как по доки :)

v imapd.conf
sasl_auxprop_plugin: ldapdb
sasl_ldapdb_uri: ldap://xxx.xx.ru
#sasl_ldapdb_id: mta
#sasl_ldapdb_pw: MTIzNDUwOTg3Ng==
sasl_ldapdb_mech: external
sasl_ldap_search_base: dc=xxx,dc=xx,dc=ru # though not listed, seem
sasl_ldap_filter: uid=%U

v slapd.conf
....
password-hash {CLEARTEXT}

sasl-authz-policy to

sasl-regexp uidNumber=(.*)\\+gidNumber=(.*),cn=peercred,cn=external,
cn=auth
ldap:///dc=xxx,dc=xx,dc=ru??sub?(&(uidNumber=$1)
(gidNumber=$2))

sasl-regexp uid=(.*@.*),cn=external,cn=auth
ldap:///dc=xxx,dc=xx,dc=ru??sub?(&(mailBox=$1)
(status=enabled))

sasl-regexp uid=(.*),cn=external,cn=auth
ldap:///dc=xxx,dc=xx,dc=ru??sub?(|(cn=$1)
(&(mailBox=$1...@xxx.xx.ru)(status=enabled)))

ну и запись в ldap
dn: cn=cyrus,dc=xxxx,dc=xx,dc=ru
cn: cyrus
sn: cyrus
uid: cyrus
homeDirectory: /usr/local/cyrus
objectClass: person
objectClass: posixAccount
saslAuthzTo: dn.regex:mailbox=.*
saslAuthzTo: dn.regex:cn=.*,dc=xxxx,dc=xx,dc=ru
saslAuthzTo: dn.regex:uid=.*,cn=external,cn=auth
uidNumber: 60
gidNumber: 60

dn: cn=mta,dc=xxxx,dc=xx,dc=ru
cn: mta
sn: mta
uid: mailnull
userPassword: 1234509876
homeDirectory: /var/spool/mqueue
objectClass: person
objectClass: posixAccount
saslAuthzTo: dn.regex:mailbox=.*
saslAuthzTo: dn.regex:cn=.*,dc=xxxx,dc=xx,dc=ru
saslAuthzTo: dn.regex:uid=.*,cn=external,cn=auth
uidNumber: 26
gidNumber: 6

при проверки начинает рыскать в базе
imtest -a koc@чччч.чч.ru
но грит
Apr 29 20:47:27 ччч kernel: Apr 29 20:47:27 ччч imapd/imap[58290]: badlogin:
localhost [127.0.0.1] NTLM [SASL(-13): user not found: no secret in database]

я понимаю что истина где-то близко, но где??

Sergei Romanov

unread,
Apr 29, 2006, 12:53:54 PM4/29/06
to
вот она правда жизни! :)
sasl_ldapdb_uri: ldapi://
итог
root[/usr/local/etc]#>imtest -a admin@чччч.чч.ru -m DIGEST-MD5
WARNING: no hostname supplied, assuming localhost

S: * OK utyos.ul.ru Cyrus IMAP4 v2.3.3 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL RIGHTS=kxte QUOTA LITERAL+ MAILBOX-


REFERRALS NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND

BINARY SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE CATENATE IDLE

STARTTLS AUTH=NTLM AUTH=GSSAPI AUTH=OTP AUTH=DIGEST-MD5 AUTH=CRAM-MD5 SASL-IR
URLAUTH


S: C01 OK Completed
C: A01 AUTHENTICATE DIGEST-MD5
S: +

S1zZXNz
Please enter your password:
C:

b25zZT1mMjJhNDliYmNhYzZjMTBhZjFhOGRjY2I4NTRhYTFjYQ==
S: + cnNwYXV0aD1jZmZmZDI5MjJiYjU4OTQ0YmRkYTExMmFjNWM0NDY3NQ==
C:
S: A01 OK Success (privacy protection)
Authenticated.
Security strength factor: 128

УРА!!!!!!!!
ВСЕМ ОГРОМНОЕ СПАСИБО!!!
кстати вот кому надо:
http://docs.biostat.wustl.edu/openldap-servers/guide.html

Dmitriy Kirhlarov

unread,
May 2, 2006, 6:13:41 AM5/2/06
to
Hi!

On Sat, Apr 29, 2006 at 04:24:44PM +0000, Sergei Romanov wrote:
> DK> sasl, не поддерживает shared-secret, afair.
> т.е пароли в базе надо хранить как-то по другому например DIGEST-MD5??

Упс. Это я про saslauthd.

By.
Dmitriy

0 new messages