Встала проблема авторизации пользователей почты в Active Directory и вытягивании оттуда их почтовых ящиков. Как это реализовать? Пожалуйста киньте пример конфига :)
>Встала проблема авторизации пользователей почты в Active Directory и вытягивании оттуда их
>почтовых ящиков. Как это реализовать? Пожалуйста киньте пример конфига :)Почтовый сервер видит любой введенный адрес как валидный. Т.е. думает адреса "fuckoff@domain.org" и "null@domain.org" существуют когда в действительности их нет :(
Вот часть моего конфига:
ldap_default_servers = <; 10.10.0.1:3268
LDAP_AD_BINDDN = "CN=Dummy,CN=Users,DC=domain,DC=org"
LDAP_AD_PASS = "SecretPassowrd"
LDAP_AD_BASE_DN = "CN=Users,DC=domain,DC=org"LDAP_AD_MAIL_RCPT = \
user=LDAP_AD_BINDDN \
pass=LDAP_AD_PASS \
ldap:///LDAP_AD_BASE_DN\
?mail?sub?
<... skip ...>adsi_check:
driver = accept
condition = ${lookup ldap {LDAP_AD_MAIL_RCPT\
(sAMAccountName=${quote_ldap_dn:$1})}\
{${local_part}@${domain}}{fail}}
transport = local_delivery
cannot_route_message = Unknown user
И вот так вот всё работает? Или к экзиму прикручивать чего надо?
>И вот так вот всё работает? Или к экзиму прикручивать чего надо?
>
deny
!verify = recipient/callout=32s
>>И вот так вот всё работает? Или к экзиму прикручивать чего надо?
>>
>
>
>deny
>!verify = recipient/callout=32s
А можно поподробнее описать настройку? или ссылочку пожалуйста)) Интересно попробовать у себя реализацию такого...
>>>И вот так вот всё работает? Или к экзиму прикручивать чего надо?
>>>
>>
>>
>>deny
>>!verify = recipient/callout=32s
>
>
>А можно поподробнее описать настройку? или ссылочку пожалуйста)) Интересно попробовать у себя
>реализацию такого...
>>>>И вот так вот всё работает? Или к экзиму прикручивать чего надо?
>>>>
>>>
>>>
>>>deny
>>>!verify = recipient/callout=32s
>>
>>
>>А можно поподробнее описать настройку? или ссылочку пожалуйста)) Интересно попробовать у себя
>>реализацию такого...
>
>
>http://www.exim.org/eximwiki/Verification?highlight=%28...
Я конечно понимаю, что может быть кажусь недалёким стьюпом, но извините ссылку сами смотрели? И где там про EXIM и Актив Дайректори? Я просил поподробнее, а получилось как всегда.... ИМХО смысл этого форума в том чтобы развивать ОпенСорс движение, а не показывать как ты "Круто можешь рулить в" той или иной области.... Мог бы вообще не отвечать....
В EXIM я мало что соображаю и хотелось узнать про подобные методы настройки... вот и всё.
мне почему-то казалось, что форум на opennet.ru предназначен, для помощи людям -- у которых что-то где-то не получается и обменом опытом, а ни как портал, где кто-то за кого-то делает работу. хммм.
>мне почему-то казалось, что форум на opennet.ru предназначен, для помощи людям --
>у которых что-то где-то не получается и обменом опытом, а ни
>как портал, где кто-то за кого-то делает работу. хммм.
Смотрели ссылку уважаемый? Где там написано про то как прикрутить АД к ЭКЗИМу? Да и не надо за меня работу делаьт))) у меня всё работает)))...
замечательно, зачем только такое количество эмоций -- праздники не удались??
Грубо конечно -- но только вот зачем в форум писать, задавать вопросы -- а потом хвастаться "а у меня и так ВСЁ работает".
>замечательно, зачем только такое количество эмоций -- праздники не удались??
>Грубо конечно -- но только вот зачем в форум писать, задавать вопросы
>-- а потом хвастаться "а у меня и так ВСЁ работает".
>
Праздники удались, настроение отличное.. Просто не люблю когда необоснованно чего-то-там говорят... а то что всё работает это не хвастовство, а результат курения манов и хэндбуков, чтение статей и форумов. Кстати, СПАСИБО ВСЕМ ТЕМ КТО ПОМОГ МНЕ КОГДАТО начать ДУМАТЬ)))) А вот ссылочка на которую скинули просто непонятное что-то.
PS. Будучи эмоциональным человеком, выражаюсь как могу... Если кого-то обидел, то таких людей считаю ущербными, ибо неадекватны они в мыслях. А писать в форум и спрашивать о чем-то новом я считаю незазорно, тем более dawnshade мне не раз помогал свими советами, за что ему респект))))
>>>>>И вот так вот всё работает? Или к экзиму прикручивать чего надо?
>>>>>
>>>>
>>>>
>>>>deny
>>>>!verify = recipient/callout=32s
>>>
>>>
>>>А можно поподробнее описать настройку? или ссылочку пожалуйста)) Интересно попробовать у себя
>>>реализацию такого...
>>
>>
>>http://www.exim.org/eximwiki/Verification?highlight=%28...
>
>
>Я конечно понимаю, что может быть кажусь недалёким стьюпом, но извините ссылку
>сами смотрели? И где там про EXIM и Актив Дайректори? Я
>просил поподробнее, а получилось как всегда.... ИМХО смысл этого форума в
>том чтобы развивать ОпенСорс движение, а не показывать как ты "Круто
>можешь рулить в" той или иной области.... Мог бы вообще не
>отвечать....
>В EXIM я мало что соображаю и хотелось узнать про подобные методы
>настройки... вот и всё.разумееться смотрел :)
точнее там надо курить Recipient Verification.
+сделать вьюху в DNS чтобы для внутренней сетки MX запись указывала на exchange, тогда и ходить в лдап не надо. вкратце должно быть так:
- со внешки MX видится как exim, приходит на него почта
- дальше exim смотрит на MX домена и видит что для него является exchange
- на этапе приходящей почты rcpt to exim идет к exchange по smtp и спрашивает ровно тоже самое- а у тебя есть такой юзер?
- дальше поступает в зависимости от ответаопятьже альтернатива есть - http://www.exim.org/eximwiki/MsExchangeAddressVerification?h...
>>>>>>И вот так вот всё работает? Или к экзиму прикручивать чего надо?
>>>>>>
>>>>>
>>>>>
>>>>>deny
>>>>>!verify = recipient/callout=32s
>>>>
>>>>
>>>>А можно поподробнее описать настройку? или ссылочку пожалуйста)) Интересно попробовать у себя
>>>>реализацию такого...
>>>
>>>
>>>http://www.exim.org/eximwiki/Verification?highlight=%28...
>>
>>
>>Я конечно понимаю, что может быть кажусь недалёким стьюпом, но извините ссылку
>>сами смотрели? И где там про EXIM и Актив Дайректори? Я
>>просил поподробнее, а получилось как всегда.... ИМХО смысл этого форума в
>>том чтобы развивать ОпенСорс движение, а не показывать как ты "Круто
>>можешь рулить в" той или иной области.... Мог бы вообще не
>>отвечать....
>>В EXIM я мало что соображаю и хотелось узнать про подобные методы
>>настройки... вот и всё.
>
>разумееться смотрел :)
>точнее там надо курить Recipient Verification.
>+сделать вьюху в DNS чтобы для внутренней сетки MX запись указывала на
>exchange, тогда и ходить в лдап не надо. вкратце должно быть
>так:
>- со внешки MX видится как exim, приходит на него почта
>- дальше exim смотрит на MX домена и видит что для него
>является exchange
>- на этапе приходящей почты rcpt to exim идет к exchange по
>smtp и спрашивает ровно тоже самое- а у тебя есть такой
>юзер?
>- дальше поступает в зависимости от ответа
>
>опятьже альтернатива есть - http://www.exim.org/eximwiki/MsExchangeAddressVerification?h...Вот теперь понятно)))) Сенкс и респект)))
Вижу, что в мое отсутствие много чего понаписали :)Мне удалось подружить Exim с Active Directory. Конкретно: вытягивание почтовых адресов и SMTP-авторизация.
Exim скомпилировал с такими опциями (может неправильно - покопался в /usr/ports/mail/exim/Makefile):
WITH_CONTENT_SCAN = yes
WITH_SASLAUTHD = yes
WITH_MYSQL = yes
WITH_MYSQL_VER = 50
WITH_DEFAULT_CHARSET ?= KOI8-R
WITH_AUTH_SASL = yes/usr/local/etc/saslauthd.conf:
ldap_servers: ldap://192.168.0.254:3268/
ldap_bind_dn: CN=Sasl,CN=Users,DC=domain,DC=com
ldap_bind_pw: password
ldap_version: 3
ldap_search_base: CN=Users,DC=domain,DC=com
ldap_filter: (sAMAccountName=%u)
ldap_debug: -1/usr/local/etc/exim/configure:
( ... skip ... )
LDAP_AD_BINDDN = "CN=Exim,CN=Users,DC=domain,DC=com"
LDAP_AD_PASS = password
LDAP_AD_BASE_DN = "CN=Users,DC=domain,DC=com"LDAP_AD_MAIL_RCPT = \
user=LDAP_AD_BINDDN \
pass=LDAP_AD_PASS \
ldap:///DC=domain,DC=com\
?mail?sub?\
(&\
(|\
(objectClass=user)\
(objectClass=organizationalPerson)\
(objectClass=person)\
)\
(mail=${quote_ldap:${local_part}@${domain}})\
# (sAMAccountName=${quote_ldap:${local_part}})\
)( ... skip ... )
begin routers
adsi_check:
driver = redirect
domains = +local_domains
allow_fail
allow_defer
# forbid_file
# forbid_piperedirect_router = localuser
data = ${lookup ldap {LDAP_AD_MAIL_RCPT}\
{${local_part}@${domain}} {:fail: User unknown}}localuser:
driver = accept
# check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery
cannot_route_message = Unknown user( ... skip ... )
begin transports
local_delivery:
driver = appendfile
file = /var/mail/$local_part
delivery_date_add
envelope_to_add
return_path_add
group = mail
user = $local_part
mode = 0660
no_mode_fail_narrower( ... skip ... )
begin authenticators
plain:
driver = plaintext
public_name = PLAIN
server_condition = ${if saslauthd{{$2}{$3}}{1}{0}}
server_set_id = $2login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${if saslauthd{{$1}{$2}}{1}{0}}
server_set_id = $1Вот, у кого какие соображения будут? :)
вдогонку, /etc/rc.conf:
saslauthd_enable="YES"
saslauthd_flags="-a ldap"
Теперь другая проблема - почта отправляется так и сяк с/без SMTP-авторизации хотя авторизацию вроде настроил. Подскажите, в какую сторону копать?
>ldap_servers: ldap://192.168.0.254:3268/
>ldap_bind_dn: CN=Sasl,CN=Users,DC=domain,DC=com
>ldap_bind_pw: password
>ldap_version: 3
>ldap_search_base: CN=Users,DC=domain,DC=com
>ldap_filter: (sAMAccountName=%u)
>ldap_debug: -1
>
>/usr/local/etc/exim/configure:
>
>( ... skip ... )
>
>LDAP_AD_BINDDN = "CN=Exim,CN=Users,DC=domain,DC=com"
>LDAP_AD_PASS = password
>LDAP_AD_BASE_DN = "CN=Users,DC=domain,DC=com"
>
>LDAP_AD_MAIL_RCPT = \
> user=LDAP_AD_BINDDN \
> pass=LDAP_AD_PASS \
> ldap:///DC=domain,DC=com\
> ?mail?sub?\
> (&\
> (|\
>
>(objectClass=user)\
>
>(objectClass=organizationalPerson)\
>
>(objectClass=person)\
> )\
> (mail=${quote_ldap:${local_part}@${domain}})\
> # (sAMAccountName=${quote_ldap:${local_part}})\
>
> )
>
>( ... skip ... )
>
>begin routers
>
>adsi_check:
> driver = redirect
> domains = +local_domains
> allow_fail
> allow_defer
> # forbid_file
> # forbid_pipe
>
> redirect_router = localuser
> data = ${lookup ldap {LDAP_AD_MAIL_RCPT}\
> {${local_part}@${domain}} {:fail: User unknown}}
>
>
>localuser:
> driver = accept
># check_local_user
># local_part_suffix = +* : -*
># local_part_suffix_optional
> transport = local_delivery
> cannot_route_message = Unknown user
>
>( ... skip ... )
>
>begin transports
>
>local_delivery:
> driver = appendfile
> file = /var/mail/$local_part
> delivery_date_add
> envelope_to_add
> return_path_add
> group = mail
> user = $local_part
> mode = 0660
> no_mode_fail_narrower
>
Приветствую...
спасибо за пример..у меня давно уже стояла проблема проверки пользователей из АД при приёме Экзимом .
ещё давно года 3 назад эта проблема была решена.. но на Экзиме 3.22..
и там ОН несколько иначе выглядит..
и вот возникла проблема с переходом на 4ый экзим на основной тачке и на других тачках...на которых уже стоят 4ые экзимы.
вобщем у меня схема построения почтовой системы следующая..
на гейте стоит Экзим и выполняет роль антиспама днсБЛ и распасовщика почты... локальных ящиков на гейте нет...
ну а внутри стоит Эксчендж на который Экзим пересылает письма..
Эксчендж посылает почту наружу также через Экзим.
в чём состоит сейчас проблема...
проблема в том что гадские спамеры шлют адреса на ФЭЙК локал парты по моим доменам
тоесть приходит почта на адрес XREN@mydomain.ru и она проходит через экзим, попадает на Эксчендж, который даёт ответ о том что адреса нет... посылает реплай на подставной адрес через экзим.... этот отлуп успешно морозится в спуле Экзима и по стандартному таймауту заморозки 7 дней успешно дохнет...
всё бы ничего... да трафика жалко...стало.. возник проектик большой конторы..
где спам тоннами приходит и там в день по 200-300 мегов спама наваливает...
и хочется сделать всё по нормальному... плюс на всех остальных тачках поправить ситуацию..
я всё настроил как описано вышетолько выборку на мой взгляд грамотнее делать вот из этого объекта objectClass=proxyAddresses
так как там хранятся почтовые алиасы... =) ну это в моей ситуации =)и вроде работает..
но никак не могу оттралить почему роутеры вроде работают, но на левые адреса типа XREN@mydomain.ru отлуп отправителю Экзим не даёт и всё пропускает на Эксчендж..
чтото уже запутался совсем... в чём может быть затык???
прошу помощи бью челом..=))))
кстати могу помоч с СМТП авторизациет.. у меня это на одной из машин через САСЛ реализовано с использованием ТЛС..=)
>кстати могу помоч с СМТП авторизациет.. у меня это на одной из
>машин через САСЛ реализовано с использованием ТЛС..=)Проблему авторизации я решил вот так :)
require verify = csa
# И после него добавляем правило, запрещающее без авторизации отправлять
# письма от имени наших пользователей
deny !authenticated = *
condition = ${if eq{$sender_address_domain}{ourdomain.ru}{yes}{no}}
message = Sorry, authorization required
> только выборку на мой взгляд грамотнее делать вот из этого объекта objectClass=proxyAddresses
Возможно, но в ldap-схеме его не было (смотрел программой ldp.exe из support tools в win2ksrv).>кстати могу помоч с СМТП авторизациет.. у меня это на одной из
>машин через САСЛ реализовано с использованием ТЛС..=)Проблему авторизации я решил вот так :)
require verify = csa
# И после него добавляем правило, запрещающее без авторизации отправлять
# письма от имени наших пользователей
deny !authenticated = *
condition = ${if eq{$sender_address_domain}{ourdomain.ru}{yes}{no}}
message = Sorry, authorization required
>и вроде работает..
>
>но никак не могу оттралить почему роутеры вроде работают, но на левые
>адреса типа XREN@mydomain.ru отлуп отправителю Экзим не даёт и всё
>пропускает на Эксчендж..
>чтото уже запутался совсем... в чём может быть затык???
>прошу помощи бью челом..=))))а по моей проблеме есть мысли?
вот так выглядят у меня сейчас роутеры и транспорт------------------------------------------------------------
ldap_default_servers = <; 192.168.22.55:389LDAP_AD_BINDDN = "CN=exim_ldap_auth,CN=Users,DC=mydomain,DC=ru"
LDAP_AD_PASS = ldap_auth_password
LDAP_AD_BASE_DN = "CN=Users,DC=mydomain,DC=ru"LDAP_AD_MAIL_RCPT = \
user=exim_ldap_auth \
pass=ldap_auth_password \
ldap:///DC=smsmedia,DC=ru?mail?sub?\
(& (| (objectClass=proxyAddresses) )\
## (& (| (objectClass=proxyAddresses) (objectClass=user)\
##(objectClass=organizationalPerson) (objectClass=pe
(mail=${quote_ldap:${local_part}@${domain}})\
## (sAMAccountName=${quote_ldap:${local_part}})\
)( ... skip ... )
begin routers
adsi_check:
driver = redirect
#### domains = +local_domains
domains = "mydomain.com: mydomain.ru"
allow_fail
allow_defer
# forbid_file
# forbid_piperedirect_router = localuser_check
data = ${lookup ldap {LDAP_AD_MAIL_RCPT} {:fail: User unknown}}localuser_check:
driver = accept
# check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
# transport = local_delivery
transport = srv_exchange
cannot_route_message = Privet, priplyli... Unknown user
( ... skip ... )begin transports
srv_exchange:
driver = smtp
hosts = 192.168.22.555
envelope_to_add = true
-------------------------------------------------------------------------есть идеи??
вот пример нормально работающего Директора на Экзиме 3.22 со Лдап проверкой
my_director:
driver = smartuser
local_parts = *
domains = "mydomain.com:mydomain.ru"
condition = ${lookup ldap {user="anonymous" \
ldap://192.168.168.100:3268/dc=mydomain,dc=ru?sAMAccountName?sub? \
(proxyAddresses=SMTP:${quote_ldap:$local_part}@${quote_ldap:$domain})} {$value} {false} }
transport = my_exchange
verify_recipient = true( ... skip ... )
begin transports
my_exchange:
driver = smtp
hosts = 192.168.168.100
envelope_to_add = true
"exim -bh <ip-address>" чо кажет?
>"exim -bh <ip-address>" чо кажет?это тест Эксченджа
[root@mx ~]# exim -bh 192.168.100.50**** SMTP testing session as if from host 192.168.100.50
**** but without any ident (RFC 1413) callback.
**** This is not for real!>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? yes (matched "*")
>>> looking up host name for 192.168.100.50
>>> IP address lookup using gethostbyaddr()
>>> IP address lookup failed: h_errno=1
LOG: no host name found for IP address 192.168.100.50
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> host in recipient_unqualified_hosts? no (option unset)
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
220 mydomain.com secure smtp server
это самого экзима
[root@mx ~]# exim -bh 127.0.0.1**** SMTP testing session as if from host 127.0.0.1
**** but without any ident (RFC 1413) callback.
**** This is not for real!>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? yes (matched "*")
>>> looking up host name for 127.0.0.1
>>> IP address lookup yielded localhost
>>> gethostbyname2 looked up these IP addresses:
>>> name=mx.mydomain.com address=127.0.0.1
>>> checking addresses for localhost
>>> 127.0.0.1 OK
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> host in recipient_unqualified_hosts? no (option unset)
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
220 mydomain.com secure smtp server
Да я не про это. Посимулируй "диалог" с каким-нить сторонним почтовым сервером, например с 194.67.23.20 (mxs.mail.ru)
я решил это проще - проверкой поля mail в AD, т.к. мне не всем пользователям положены ящики они разрешены только тем у кого заполнено поле Эл. Почта, оно же является их мыломmailbox_user_ad:
driver = accept
hide condition = ${lookup ldap{user="user@domain.org" pass=Secret \
ldap://192.168.0.1/dc=domain,dc=org?mail?sub?(&(objectClass=user) \
(mail=${local_part}@${domain}))}{yes}{no}}transport = mailbox_delivery
>[оверквотинг удален]
>
>mailbox_user_ad:
> driver = accept
> hide condition = ${lookup ldap{user="user@domain.org" pass=Secret \
>
> ldap://192.168.0.1/dc=domain,dc=org?mail?sub?(&(objectClass=user) \
>
> (mail=${local_part}@${domain}))}{yes}{no}}
>
> transport = mailbox_deliveryТак у меня почти то же самое )