The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Postfix + LDAP"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Postfix + LDAP"  
Сообщение от Heretic (ok) on 19-Окт-07, 19:58 
Делаю связку postfix+ldap, завожу пользовтеля, и если uid и имя пользователя mail совпадают то почта и уходит и приходит,а если нет то почту можно только отправить, но на прием выдает следующие:

Oct 19 19:48:22 xx postfix/qmgr[19016]: F03AD2428: from=<xxx@example.ru>, size=1797, nrcpt=1 (queue active)
Oct 19 19:48:22 xx clamsmtpd: 1003E7: from=xxx@example.ru, to=user2@example.ru, status=CLEAN
Oct 19 19:48:22 xx postfix/smtp[19051]: D07D8897: to=<user2@example.ru>, relay=127.0.0.1[127.0.0.1], delay=1, status=sent (250 Ok: queued as F03AD2428)
Oct 19 19:48:22 xx postfix/smtpd[19056]: disconnect from localhost[127.0.0.1]
Oct 19 19:48:22 xx postfix/qmgr[19016]: D07D8897: removed
Oct 19 19:48:22 xx postfix/virtual[19188]: fatal: bad string length 0 < 1: virtual_mailbox_base =
Oct 19 19:48:23 xx postfix/master[18996]: warning: process /usr/lib/postfix/virtual pid 19188 exit status 1
Oct 19 19:48:23 xx postfix/master[18996]: warning: /usr/lib/postfix/virtual: bad command startup -- throttling
Как я понимаю он просто не может доставить т.к. cyrus проводи аутентификацию по uid.
Ну и соответсвенно письмо никуда не приходит, но должно упать в cyrus-imapd
Пример пользователя
dn: uid=user1,ou=people,dc=example,dc=ru
homeDirectory: /dev/null
loginShell: /bin/bash
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: person
objectClass: organizationalPerson
objectClass: shadowAccount
uidNumber: 1001
gidnumber: 1000
uid: user1
givenName: familia
sn: name
userpassword: {md5}+1AbdCachXqyT54l2yUGQQ==
mail: user2@example.ru
cn: familia name

Постфикс

Все достаточно стандартно
mailbox_transport = lmtp:unix:/var/spool/postfix/public/lmtp

virtual_mailbox_domains = example.ru example1.ru example2.ru
virtual_mailbox_maps = ldap:ldapvirtual
virtual_alias_maps = ldap:ldapalternate

ldapvirtual_server_host = localhost
ldapvirtual_server_port = 389
ldapvirtual_bind = yes
ldapvirtual_version = 3
ldapvirtual_search_base = ou=people,dc=example,dc=local
ldapvirtual_query_filter = (mail=%s)
ldapvirtual_result_attribute = mail

ldapalternate_server_host = localhost
ldapalternate_server_port = 389
ldapalternate_bind = yes
ldapalternate_version = 3
ldapalternate_search_base = ou=people,dc=example,dc=local
ldapalternate_query_filter = (mailAlternateAddress=%s)
ldapalternate_result_attribute = mailAlternateAddress

Вопрос стоит в том, как получить пользователю почту если его UID не совпадает с именем в почте (ну соответсвенно все в LDAP)?

Спасибо за ответ.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

  • Postfix + LDAP, geekkoo, 08:49 , 20-Окт-07, (1)  
    • Postfix + LDAP, Heretic, 11:46 , 20-Окт-07, (2)  
      • Postfix + LDAP, Anatoliy, 14:13 , 20-Окт-07, (3)  
        • Postfix + LDAP, Heretic, 19:42 , 20-Окт-07, (4)  
          • Postfix + LDAP, Solo_Wolf, 15:26 , 21-Окт-07, (5)  
            • Postfix + LDAP, Heretic, 15:47 , 21-Окт-07, (6)  
      • Postfix + LDAP, geekkoo, 11:09 , 22-Окт-07, (7)  
        • Postfix + LDAP, Heretic, 12:55 , 22-Окт-07, (8)  

Сообщения по теме [Сортировка по времени | RSS]


1. "Postfix + LDAP"  
Сообщение от geekkoo email(??) on 20-Окт-07, 08:49 
>[оверквотинг удален]
>virtual_mailbox_domains = example.ru example1.ru example2.ru
>virtual_mailbox_maps = ldap:ldapvirtual
>virtual_alias_maps = ldap:ldapalternate
>
>ldapvirtual_server_host = localhost
>ldapvirtual_server_port = 389
>ldapvirtual_bind = yes
>ldapvirtual_version = 3
>ldapvirtual_search_base = ou=people,dc=example,dc=local
>ldapvirtual_query_filter = (mail=%s)

Ну, я думаю в этом месте поменять на (uid=%u)
>[оверквотинг удален]
>ldapalternate_bind = yes
>ldapalternate_version = 3
>ldapalternate_search_base = ou=people,dc=example,dc=local
>ldapalternate_query_filter = (mailAlternateAddress=%s)
>ldapalternate_result_attribute = mailAlternateAddress
>
>Вопрос стоит в том, как получить пользователю почту если его UID не
>совпадает с именем в почте (ну соответсвенно все в LDAP)?
>
>Спасибо за ответ.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Postfix + LDAP"  
Сообщение от Heretic (ok) on 20-Окт-07, 11:46 
>[оверквотинг удален]
>>ldapalternate_bind = yes
>>ldapalternate_version = 3
>>ldapalternate_search_base = ou=people,dc=example,dc=local
>>ldapalternate_query_filter = (mailAlternateAddress=%s)
>>ldapalternate_result_attribute = mailAlternateAddress
>>
>>Вопрос стоит в том, как получить пользователю почту если его UID не
>>совпадает с именем в почте (ну соответсвенно все в LDAP)?
>>
>>Спасибо за ответ.

К сожалению не получилось. При отправки письма постфикс пишет
Sender address rejected: User unknown in virtual mailbox table;

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Postfix + LDAP"  
Сообщение от Anatoliy email(??) on 20-Окт-07, 14:13 
>[оверквотинг удален]
>>>ldapalternate_query_filter = (mailAlternateAddress=%s)
>>>ldapalternate_result_attribute = mailAlternateAddress
>>>
>>>Вопрос стоит в том, как получить пользователю почту если его UID не
>>>совпадает с именем в почте (ну соответсвенно все в LDAP)?
>>>
>>>Спасибо за ответ.
>
>К сожалению не получилось. При отправки письма постфикс пишет
>Sender address rejected: User unknown in virtual mailbox table;

Тогда так :)
ldapvirtual_query_filter = (|(mail=%s)(uid=%u))

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Postfix + LDAP"  
Сообщение от Heretic (ok) on 20-Окт-07, 19:42 
>[оверквотинг удален]
>>>>Вопрос стоит в том, как получить пользователю почту если его UID не
>>>>совпадает с именем в почте (ну соответсвенно все в LDAP)?
>>>>
>>>>Спасибо за ответ.
>>
>>К сожалению не получилось. При отправки письма постфикс пишет
>>Sender address rejected: User unknown in virtual mailbox table;
>
>Тогда так :)
>ldapvirtual_query_filter = (|(mail=%s)(uid=%u))

что то я не совсем понимаю, что означают ӕти строки
>ldapalternate_query_filter = (mailAlternateAddress=%s)
>ldapalternate_result_attribute = mailAlternateAddress

Первая как я понимаю фильтруем по какому полю
Вторая что мы хоти получить после фильтра то бишь ӕто может быть mail, uid, itc
Откуда берутся ӕти параметры и что они значат (|(mail=%s)(uid=%u))
mail,uid ӕто поле в ldap а %s, %u откуда берутся?
Запутался просто уже во всем ӕтом =(
Может есть для разбора у кого-нибудь работающий конфиг Postfix + LDAP с поддержкой альтернативных адресов, то бишь чтобы почта приходила на один ящик, а пользователь мог отправить с нескольких.

Например:
mail: user@example.ru
mailAlternateAddress: user2@example.ru
mailAlternateAddress: user@test.ru
mailAlternateAddress: user2@qwerty.ru

Почта приходит user@exampler.ru
а отправлять может со всех 4ех.

Извините если туплю ибо на работе уже 6ой день и не могу понять что делать и куда дальше копать.
Спасибо.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Postfix + LDAP"  
Сообщение от Solo_Wolf (??) on 21-Окт-07, 15:26 
Вы изначально обсуждаете не ту проблему. У вас тривиально не настроен Postfix. Он же ясно пишет:
Oct 19 19:48:22 xx postfix/virtual[19188]: fatal: bad string length 0 < 1: virtual_mailbox_base =
Oct 19 19:48:23 xx postfix/master[18996]: warning: process /usr/lib/postfix/virtual pid 19188 exit status 1
Oct 19 19:48:23 xx postfix/master[18996]: warning: /usr/lib/postfix/virtual: bad command startup -- throttling

Решите эту проблему сначала.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Postfix + LDAP"  
Сообщение от Heretic (ok) on 21-Окт-07, 15:47 
>Вы изначально обсуждаете не ту проблему. У вас тривиально не настроен Postfix.
>Он же ясно пишет:
>Oct 19 19:48:22 xx postfix/virtual[19188]: fatal: bad string length 0 < 1:
>virtual_mailbox_base =
>Oct 19 19:48:23 xx postfix/master[18996]: warning: process /usr/lib/postfix/virtual pid 19188 exit status
>1
>Oct 19 19:48:23 xx postfix/master[18996]: warning: /usr/lib/postfix/virtual: bad command startup -- throttling
>
>
>Решите эту проблему сначала.

Да я понимаю, просто запутался эта проблема решается достаточно просто
virtual_transport = lmtp:unix:/var/spool/postfix/public/lmtp
Но тогда в cyrus-imap создается папка альтернативного почтового ящика, а мне этого не нужно, мне нужно что-бы у пользователь имел один ящик и почта с альтернативных почтовых ящиков приходил в одну его папку в cyrus-imapd. При написания письма пользователем из egroupware он мог бы выбрать с какого почтового ящика ему отправлять письмо (собственно это сделано), но как то до мне слабовато доходит как сделать чтобы Postfix принимал почту для альтернативных почтовых ящиков и для обычных, притом имеется ряд виртуальных доменов.
Решил данную проблему кухонным способом, но он меня не устраивает:
1. Сменил имя uid пользователя на имя в почте
2.
mydestination = $myhostname, localhost.$mydomain, localhost, example.ru, example1.ru, example2.ru, example3.ru
virtual_mailbox_domains = example.ru, example1.ru, example2.ru, example3.ru
В данном случае почта приходит и уходит на утра, но сыпятся в лог ошибки что example.ru, example1.ru, example2.ru, example3.ru присутствуют и в mydestination и в virtual_mailbox_domains.

LDAP описал так:
virtual_mailbox_maps = ldap:ldapvirtual
virtual_alias_maps = ldap:ldapalternate

ldapvirtual_server_host = localhost
ldapvirtual_server_port = 389
ldapvirtual_bind = yes
ldapvirtual_version = 3
ldapvirtual_search_base = ou=people,dc=example,dc=local
ldapvirtual_query_filter = (mail=%s)
ldapvirtual_result_attribute = mail

ldapalternate_server_host = localhost
ldapalternate_server_port = 389
ldapalternate_bind = yes
ldapalternate_version = 3
ldapalternate_search_base = ou=people,dc=example,dc=local
ldapalternate_query_filter = (mailAlternateAddress=%s)
ldapalternate_result_attribute = mailAlternateAddress

PS: С постфиксом более серьезно начал общаться только недавно поэтому запутался
PSS: Спасибо за ответы

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Postfix + LDAP"  
Сообщение от geekkoo email(??) on 22-Окт-07, 11:09 
>[оверквотинг удален]
>>>ldapalternate_query_filter = (mailAlternateAddress=%s)
>>>ldapalternate_result_attribute = mailAlternateAddress
>>>
>>>Вопрос стоит в том, как получить пользователю почту если его UID не
>>>совпадает с именем в почте (ну соответсвенно все в LDAP)?
>>>
>>>Спасибо за ответ.
>
>К сожалению не получилось. При отправки письма постфикс пишет
>Sender address rejected: User unknown in virtual mailbox table;

Так вы про прием или отправку спрашиваете? Давайте для начала задачи разделим.
Поймите одну вещь - в форуме вам никогда ничего не ответит (может быть в самых простых случаях) - вам могут дать подсказки (hint/clue), но решение вам предстоит искать самому. Вам за это деньги платят.

По вашим вопросам. %s,%u - это подстановки. Вместо них постфикс подставляет строки. Для каждого транспорта они могут означть разные вещи. В случае ldap см. man ldap_table.
ldap_query_filter / ldap_result_attribute - это ldap фильтр (условно говоря, glob для поиска по ldap - каталогу/директории) и возвращаемый ldap атрибут. Это то же самое, что и последние два параметра в man ldapsearch.

Если вы не рубите в ldap, то нафига было его использовать? Есть же хэши - они и быстрее и проще. Или SQL, если он вам понятнее.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Postfix + LDAP"  
Сообщение от Heretic (??) on 22-Окт-07, 12:55 
>Так вы про прием или отправку спрашиваете? Давайте для начала задачи разделим.
>
>Поймите одну вещь - в форуме вам никогда ничего не ответит (может
>быть в самых простых случаях) - вам могут дать подсказки (hint/clue),
>но решение вам предстоит искать самому. Вам за это деньги платят.

Понимаю и ищу решения, а не жду готовых ответов. Просто мозг уже плавиться =(

>По вашим вопросам. %s,%u - это подстановки. Вместо них постфикс подставляет строки.
>Для каждого транспорта они могут означть разные вещи. В случае ldap
>см. man ldap_table.
>ldap_query_filter / ldap_result_attribute - это ldap фильтр (условно говоря, glob для поиска
>по ldap - каталогу/директории) и возвращаемый ldap атрибут. Это то же
>самое, что и последние два параметра в man ldapsearch.

Спасибо, собственно я, так и думал собственно.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру