Проверка подлинности получателя в Sendmail + Exchange Server 2003 |
[исправить] |
Проверка подлинности получателя сообщений
Sendmail + LDAP_ROUTING + AD + Exchange 2000/2003
Исходные данные:
AD на базе Win 2003, Exchange Server 2003 расположенный в корпоративной сети.
Канал Internet и корпоративную сеть разделяет шлюз в DMZ которого располагается
почтовый релей - сервер на базе FreeBSD + Sendmail.
Задача:
При попытке отправки письма пользователями Internet пользователям Exchange сервера,
проверять подлинность адреса получателя, тем самым сократив почтовый трафик
и избавиться от ненужных NDR (Non-Delivery Report) сообщений.
Действия:
Завести в AD служебную учётную запись, от которой будут осуществляться запросы в LDAP каталог.
Пример:
Пользователь: CN=LDAP_Searcher,OU=Service Accounts,DC=mydomain,DC=com
Пароль: password
Собрать Sendmail с поддержкой LDAP
# cd /usr/ports/mail/sendmail-ldap/
# make
# make install
Проверить корректность фильтра, соединения с сервером LDAP каталога (контроллером домена)
Фильтр:
(&(|(objectclass=user)(objectclass=group))(proxyAddresses=smtp:[email protected]))
Пример запроса:
#ldapsearch -L -x -D "CN=LDAP_Searcher,OU=Service Accounts,
DC=mydomain,DC=com" -w "password" -h "192.168.0.1" -p 389 -s sub -b
"DC=MYDOMAIN,DC=COM" -d "0" "(&(|(objectclass=user)
(objectclass=group))(proxyAddresses=smtp: [email protected]))"
Где 192.168.0.1 - IP адрес сервера LDAP каталога (контроллера домена).
Результатом работы данной команды мы должны получить полный список всех атрибутов объекта каталога
и их значения, соответствующие пользователю или группе, среди smtp
адресов которого встречается [email protected].
Исходя из положительного результата, приступаем к конфигурации Sendmail.
Добавляем в файл sendmail.mc следующие 3 строки:
define(`confLDAP_DEFAULT_SPEC', `-h "192.168.0.1" -b "DC=MYDOMAIN,
DC=COM" -d "CN=LDAP_Searcher,OU=Service Accounts,DC=mydomain,
DC=com" -MLDAP_AUTH_SIMPLE -P/etc/mail/ldap_pass')dnl
LDAPROUTE_DOMAIN_FILE(`/etc/mail/ldap_route_domains')dnl
FEATURE(`ldap_routing', `null', `ldap -1 -T<TMPF> -v mail -k
(&(|(objectclass=user)(objectclass=group))(proxyAddresses=smtp:%0))',`bounce')dnl
Собираем sendmail.cf
/usr/bin/m4 /usr/share/sendmail/cf/m4/cf.m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Содаём файл /etc/mail/ldap_pass, содержимым которого является пароль служебной
учётной записи LDAP_Searcher в открытом виде. В нашем случае:
password
Создаём файл /etc/mail/ldap_route_domains, содержимым которого является:
mydomain.com
Запускаем Sendmail.cf
Внимательно проверяем результат.
|
|
|
|
Раздел: Корень / Администратору / Сетевые сервисы / Mail, почта / Отправка и пересылка сообщений на уровне пользователя |
|
2.3, Linus Torvalds (?), 18:36, 06/06/2007 [^] [^^] [^^^] [ответить]
| +/– |
>А как быть с альясами? Их же нет в АД)
RTFM.
Там записи вида
SMTP:main_addr
smtp:alias1
smtp:alias2
....
smtp:aliasN
| |
|
1.4, Сергей (??), 11:47, 09/06/2007 [ответить]
| +/– |
Есть мнение что выгрузка раз в несколько минут адресов из AD в /etc/mail/access работает быстрее и меньше загружает сервер sendmail и сервер AD
Возможно стоить еще добавить объекты publicfolder в них же тоже могут писать извне
| |
|
2.7, Dmitry (??), 10:59, 01/10/2008 [^] [^^] [^^^] [ответить]
| +/– |
Я чего-то недопонимаю, а как использовать адреса в access для проверки получателя?
| |
|
1.5, ALex_hha (??), 17:17, 11/06/2007 [ответить]
| +/– |
> Exchange Server 2003
а что sendmail не умеет делать колауты? | |
1.8, tohes (ok), 17:46, 16/03/2011 [ответить]
| +/– |
Рискну быть названым некропостером, но встала следующая задача:
Есть внешний сервер с Sendmail
Есть внутренний сервер с Exchange
Существует 2 домена в одном лесу (dc1.ru и dc2). Сервер с Exchange установлен в домене dc1.ru. При этом ящики пользователей созданы как в домене dc1.ru, так и в домене dc2. Отсюда возникает вопрос: есть ли возможность для Sendmail проверить существование пользователя в домене dc2.ru?
Как я понимаю, confLDAP_DEFAULT_SPEC может иметь только 1 значение.
FEATURE('ldap_routing', <mailHost>, <mailRoutingAddress>, <bounce>, <detail>) тут вроде тоже не поможет.
| |
|