Страница 1 из 1

exim+dovecot&2k3domain - Группы рассылки

Добавлено: 2007-06-03 21:37:06
Tah
собственно exim + dovecot + kerberos аутонтификация в 2к3 домене,
нужны идеи как мне создавать группы рассылки ?
я тут потихоньку буду описывать свои дальнейшие шаги, ступор на данный момент какой-то наступил.

пока мысль лдап клиентом пытаться вытягивать списки юзеров из групп AD... может есть ещё какие идеи ?

Добавлено: 2007-06-03 22:26:47
Alex Keda
э..
щас пытаю подобное направление, но я ушёл в сторону winbindd/exim/dovecot
до рассылок не докопал, зато интересен керберос.
и насчёт кэширования там как ? (сеть филиальная, а DC тока в голове, не хотелось бы чтобы начали резко выть из-за пропаданий связи на пару секунд)

Добавлено: 2007-06-03 22:44:43
Tah
lissyara писал(а):э..
щас пытаю подобное направление, но я ушёл в сторону winbindd/exim/dovecot
до рассылок не докопал, зато интересен керберос.
и насчёт кэширования там как ? (сеть филиальная, а DC тока в голове, не хотелось бы чтобы начали резко выть из-за пропаданий связи на пару секунд)
кеширование не нужно.
очень упрощенно: у тебя есть сетевые сервисы(exim+dovecot), для них в АД-ке создаются соотв. пользователи. При аутонтификации пользователя домена на данных сервисах, они(сервисы в данном случае exim или dovecot) изначально проверяют, устарел у них билет или нет. Если устарел - то идет запрос к серверу кербероса(по умолчанию ДК). Время жизни билета для 2к3 по умолч 1 неделя.

Т.е. есть пользователь вася, который сидит на виндовой машине и авторизировался в домене, он обращается к экзиму и время на его машине и на сервере различается не более чем на 5-ть минут, то он автоматически проходит аутонтификацию на экзиме.

соответственно в твоем случае проблем быть не должно.
ЗЫ Неплохо описано насчет работы кербероса в журнале системный администратор 2005/06.

Добавлено: 2007-06-03 23:35:14
Alex Keda
а линк мона?
или куски про аутенификацию из конфига

Добавлено: 2007-06-04 14:39:39
Tah
собственно конфиги, внутри линки..

доки по принципам работы
http://www.samag.ru/cgi-bin/go.pl?q=art ... .2005;a=10
http://www.securitylab.ru/analytics/265153.php
http://www.google.com/search?hl=ru&q=Heimdal+kerberos

файло не аатачитса :-//

вот выложил на время kerb_163

Добавлено: 2007-06-04 16:48:04
Alex Keda
мдя...
тоже самое один-в-один я описал на winbindd сегодня :)
http://www.lissyara.su/?id=1455

Добавлено: 2007-06-08 19:18:56
Tah
lissyara писал(а):мдя...
тоже самое один-в-один я описал на winbindd сегодня :)
http://www.lissyara.su/?id=1455
ну собственно это можно было и без winbindd :) (а юзать "чистый" керберос)
вопрос в другом, как более красиво разрешать списки групп из АД-ки :)

седни/завтра вечерком посижу, надеюсь разрешится.

Добавлено: 2007-06-08 20:05:46
Alex Keda
у меня пока таймаут есть в пару-тройку недель - буду думать...
======
вообще - навскидку не вижу интегрированного решения, если тока фильтром.
посему, вероятно, придётся делать вызов внешнего скрипта...
=========
с учётом самой большой группы у меня, в 450 человек - будет неслабо...

Добавлено: 2007-06-22 13:57:35
Alex Keda
решил? если нет - вот решение:
роутер в экзиме.

Код: Выделить всё

mail_lists_router:
        driver          = "redirect"
        domains         = LOCAL_DOMAIN
        condition       = ${if eqi{${lookup ldap{LDAP_DATA \
                                ldap:///DISTRIBUTION_LISTS?name?sub?DISTRIBUTION_LISTS_FILTER}}}\
                                {$local_part}{yes}{no}}
        data            = ${perl{rcpt_generator}{${lookup ldap{LDAP_DATA \
                                ldap:///DISTRIBUTION_LISTS?member?sub?DISTRIBUTION_LISTS_FILTER}}}}
        user            = mailnull
        group           = mail
        file_transport  = address_file
        pipe_transport  = address_pipe
ну и к нему обвязка такова:

Код: Выделить всё

# perl for mailing lists
perl_startup = do '/usr/local/etc/exim/includes/mail_lists.pl'
# макросы 
LOCAL_DOMAIN = my.local.domain.name
LDAP_DATA = user=LDAP_AD_BINDDN pass=LDAP_AD_PASS
DISTRIBUTION_LISTS = OU=Users_mail,DC=MY,DC=LOCAL,DC=DOMAIN,DC=NAME
DISTRIBUTION_LISTS_FILTER       = (&(|(objectClass=group)\
(objectClass=publicFolder))\
(|(proxyAddresses=${quote_ldap:${local_part}@domain.in.mail.lists})\
(proxyAddresses=smtp:${quote_ldap:${local_part}@domain.in.mail.lists}))\
(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
сам скрипт:

Код: Выделить всё

#!/usr/bin/perl -w

sub rcpt_generator

{
        # exit string
        my $lists = "";
        #
        my ($array_of_ldap_search) = @_;
        #printf "all users = $array_of_ldap_search \n";
        # splitting space
        my (@array_of_users) = split(/ /,$array_of_ldap_search);
        for my $dn (@array_of_users) {
                #printf "user_dn = $dn \n";
                # split ','
                my (@dn_attr_full) = split(/,/,$dn);
                #printf "some attr = $dn_attr_full[0]; $dn_attr_full[1]; $dn_attr_full[2]; $dn_attr_full[3]; $dn_attr_full[4];\n";
                #printf "first element? = $dn_attr_full[$#dn_attr_full] \n";
                my ($unnecessary,$user_name) = split(/\=/,$dn_attr_full[0]);
                $user_address = $user_name . '@my-local-domain-name';
                $lists = $lists . "," . $user_address;
        }
        $lists = substr($lists,1);

        # return data
        #printf "$lists \n";
        return "$lists";
}

# для теста раскомментить и запустить
#rcpt_generator("CN=user1,OU=Novosibirsk,OU=my_specific_users_ou,DC=my-domain-name,DC=LOCAL, CN=user2,OU=Novosibirsk,OU=my_specific_users_ou,DC=my-domain-name,DC=LOCAL, CN=user3,OU=Novosibirsk,OU=my_specific_users_ou,DC=my-domain-name,DC=LOCAL, CN=user2,OU=Novosibirsk,OU=my_specific_users_ou,DC=my-domain-name,DC=LOCAL");
правил находу - имена доменов везде разные получились.

Re: exim+dovecot&2k3domain - Группы рассылки

Добавлено: 2011-01-08 22:33:56
kozlov_ao
Приветствую!
Вот еще одно решение:
http://ru.gentoo-wiki.com/wiki/%D0%9F%D ... 0%BE%D0%BB
Мне помогло более чем...