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

запретить отправку с локального домена во внешку

Добавлено: 2009-05-15 6:04:27
frya_foreva
Доброе время суток всем, поднял связку (Exim 4-68, dovecot 1.0.10), работает на ура.
создал внешний домен для отправки мыла на внешние (интернет) адреса и создал внутренний локальный домен для обмена сообщениями внутри конторы. Протестировав с внутреннего домена отправив на внешние ящики (mail.ru, yandex.ru), все нормально, отправка не возможна, но выяснился такой факт случайно отправили с внутреннего домена на один внешний (интернет) и сообщение отправилось.

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

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-15 6:25:16
estade
frya_foreva писал(а):Доброе время суток всем, поднял связку (Exim 4-68, dovecot 1.0.10), работает на ура.
создал внешний домен для отправки мыла на внешние (интернет) адреса и создал внутренний локальный домен для обмена сообщениями внутри конторы. Протестировав с внутреннего домена отправив на внешние ящики (mail.ru, yandex.ru), все нормально, отправка не возможна, но выяснился такой факт случайно отправили с внутреннего домена на один внешний (интернет) и сообщение отправилось.

Подскажите где копать чтобы закрыть такую дыру, отправки с внутреннего на внешний (интернет), но чтобы отправлялись на внешний моего домена.
у тебя юзеры на внешнем внутреннем совпадают?, или авторизовать совсем от одного юзера надо.
как я понял тебе только отправлять нужно, тогда можно обойтись только еxim'ом, что то типо этого
внутренняя через ip внутренного, остальная через dnslookup, или через четам у тебя прописано

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

мroute:
    driver = мroute
    transport = v_smtp
    route_list = mydomain.ru 01.02.03.04
v_smtp:
  driver = smtp
  port = типо внут порт
  command_timeout = 30s 

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-15 6:51:28
frya_foreva
на внешнем и на внутреннем разные, пример: user1@localdomain.net - внутренний, user2@domain.ru - внешний, каждый юзер проходит аутентификацию. Нада с внутреннеего домена отправлять и принимать на внутренний и на внешний domain.ru (не в мир)

вот что у меня

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

dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more

remote_smtp:
  driver = smtp

dovecot_delivery:
    driver = pipe
    command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
    message_prefix =
    message_suffix =
    delivery_date_add
    envelope_to_add
    return_path_add
    log_output
    user = mailnull

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-15 7:32:19
princeps
В переменной local_domains что у тебя?

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-15 7:40:01
frya_foreva

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

domainlist local_domains = ${lookup mysql{SELECT `domain` \
FROM `domain` WHERE \
`domain`='${domain}' AND \
`active`='1'}}

mysql> select domain,transport from domain;
+-----------------+-----------+
| domain          | transport |
+-----------------+-----------+
| ALL             | NULL      |
| domain.ru  |           |
| localdomain.net | virtual   |
+-----------------+-----------+

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-15 11:34:41
frya_foreva
может я немного не так выразился, попытаюсь по проще и по короче объяснить проблему:
есть домен кот.дал провайдер (пусть будет: domain.ru), с адресов типа user@domain.ru отправляется в мир хорошо.
я создал еще один домен с помошью postfixadmin, для внутренней переписки внутри организации (пусть будет: domain.local), дак вот с адресов типа lamer@domain.local, тоже отправляется в мир. Как сделать чтобы запретить отправку в мир с виртуального домена? и обмениваться письмами только внутри конторы *@domain.local. Помогите плиз оч нада.

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-15 14:22:36
princeps
читай про транспорты и роутеры http://www.lissyara.su/?id=1200

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-15 15:36:59
yolkov
господа профессионалы, у меня подобная проблема:
Хочу чтобы все пользователи из domain.ru могли отправлять почту только локальным домену(domain.ru), а определенным пользователям(например находящиеся в определенной лдап группе) разрешено отправлять и наружу. И соответственно принимать из локального домена могут принимать все, а из инета только те кто находятся в лдап группе.

Вот список роутеров.
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
Как я понимаю этот роутер нужен для исходящих, если получатель не принадлежит локальному домену, пытался повесить сюда проверку:
senders = ${lookup ldap{LDAP_AUTH ldap:///dc=domain,dc=ru?mail?sub?(&(objectClass=dbmailUser)(accountStatus=active)(mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}}
при отправлении письма я добился своего, но при этом не одно входящее письмо не проходит, хотя я не понимаю почему, т.к. этот роутер должен пропускаться, если отправитель из др. доменов(или даже из локального) идет на локальный домен, соответственно получатель не принадлежит локальному домену он должен пропускаться. но нет, на нем проверка затыкается.

dbmailaliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup ldap{ LDAP_AUTH \
ldap:///dc=domain,dc=ru?mail?sub?(&(objectClass=dbmailUser)\
(mailAlternateAddress=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}}

dbmailuser:
driver = accept
condition = ${if eq{}{${lookup ldapdn{LDAP_AUTH \
ldap:///dc=domain,dc=ru?mail?sub?(&(objectClass=dbmailUser)\
(mail=${quote_ldap:$local_part}${quote_ldap:@}$\
{quote_ldap:$domain}))}}}{no}{yes}}
transport = dbmail_delivery

хотя бы идеи как можно это реализовать?

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-15 19:03:49
Alex Keda
правила форума в шапке прочесть, для начала

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-17 22:45:53
neyro
Днс лукап вообще не трогай...сделай доп. роутер сразу после него(и не забудь почитать про опции роутеров в мануале...).

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-18 7:56:19
frya_foreva
princeps писал(а):читай про транспорты и роутеры http://www.lissyara.su/?id=1200
спасибо конечно за ссылку, но я надеялся уже конкретной помощи с примером

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-18 8:14:03
Alex Keda
в кассу тоже за вас подходят зарплату получать?

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-18 8:18:08
princeps
frya_foreva писал(а):но я надеялся уже конкретной помощи с примером
Я лично не сталкивался с конкретно такой проблемой, поэтому кусок конфига тебе скопировать не могу. А изобретать именно сейчас времени нет, так что извиняй, помогаю чем могу.

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-18 9:46:30
frya_foreva
princeps писал(а):
frya_foreva писал(а):но я надеялся уже конкретной помощи с примером
Я лично не сталкивался с конкретно такой проблемой, поэтому кусок конфига тебе скопировать не могу. А изобретать именно сейчас времени нет, так что извиняй, помогаю чем могу.
ок, и на этом спасибо

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-19 8:27:42
frya_foreva
Как сделать чтобы запретить отправку в мир с локального домена?

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-19 8:57:52
luky
пользователи не в базе postfixadmin
но если нужно вот пример:

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

    deny message = VNUTRENYA POCHTA ~
condition    = ${if eq {${lookup mysql{select users.gro from users where login='$sender_address_local_part'}}} {local } {yes} {no}}
       !recipients = domain.1 : domain.2


    deny message = VNUTRENYA POCHTA  
        condition    = ${if eq {${lookup mysql{select users.gro from users where login='$local_part'}}} {local} {yes} {no}}
        !senders =  domain.1 : domain.2
в таблице users есть поле gro где нужным локальным пользователям ставятся записи local

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-19 9:01:13
frya_foreva
luky писал(а):пользователи не в базе postfixadmin
но если нужно вот пример:

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

    deny message = VNUTRENYA POCHTA ~
condition    = ${if eq {${lookup mysql{select users.gro from users where login='$sender_address_local_part'}}} {local } {yes} {no}}
       !recipients = domain.1 : domain.2


    deny message = VNUTRENYA POCHTA  
        condition    = ${if eq {${lookup mysql{select users.gro from users where login='$local_part'}}} {local} {yes} {no}}
        !senders =  domain.1 : domain.2
в таблице users есть поле gro где нужным локальным пользователям ставятся записи local
а где это вставить?
domain.1 : domain.2 - это локальные домены?

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-19 9:48:08
yolkov
нашел описание как делать закрытые списки рассылки
http://www.lissyara.su/?id=1246#46.5

изменил немного под себя
lists_post:
driver = redirect
domains = +local_domains
senders = !(${lookup ldap{LDAP_AUTH ldap:///dc=domain,dc=ru?mail?sub?\
(&(objectClass=dbmailUser)(accountStatus=active)(deliveryMode=normal)\
(mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain})\
)}})
data = ${lookup ldap{LDAP_AUTH ldap:///dc=domain,dc=ru?mail?sub?\
(&(objectClass=dbmailUser)(accountStatus=active)(deliveryMode=normal)\
(mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}}
forbid_pipe
forbid_file
errors_to = $local_part@$domain
no_more

lists_closed:
driver = redirect
domains = +local_domains
allow_fail
data = :fail: $local_part@$domain is a closed mailing !!!list!!!

запускаю exim в отладочном режиме, и пробую послать письмо

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

..............
10:28:08 80491 check verify = sender
10:28:08 80491 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10:28:08 80491 Verifying user@domain.ru
10:28:08 80491 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10:28:08 80491 Considering user@domain.ru
10:28:08 80491 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10:28:08 80491 routing user@domain.ru
10:28:08 80491 --------> lists_post router <--------
10:28:08 80491 local_part=user domain=domain.ru
10:28:08 80491 checking domains
10:28:08 80491 domain.ru in "domain1.ru : domain.ru"? yes (matched "domain.ru")
10:28:08 80491 domain.ru in "+local_domains"? yes (matched "+local_domains")
10:28:08 80491 checking senders
10:28:08 80491 expanding: $local_part
10:28:08 80491    result: user
10:28:08 80491 expanding: @
10:28:08 80491    result: @
10:28:08 80491 expanding: $domain
10:28:08 80491    result: domain.ru
............................
10:37:17 80566 Start search
10:37:17 80566 ldap_result loop
10:37:17 80566 LDAP entry loop
10:37:17 80566 LDAP attr loop mail:user@domain.ru
10:37:17 80566 search ended by ldap_result yielding 101
10:37:17 80566 ldap_parse_result: 0
10:37:17 80566 ldap_parse_result yielded 0: Success
10:37:17 80566 LDAP search: returning: user@domain.ru
10:37:17 80566 lookup yielded: user@domain.ru
.........................
10:37:17 80566    result: user@domain.ru
[b]
10:37:17 80566 address match: subject= pattern=user@domain.ru
10:37:17 80566  in "user@domain.ru"? no (end of list)
10:37:17 80566 lists_post router skipped: senders mismatch
[/b]
......................
т.е. проверка не проходит. в выделеном жирным шрифтом видно pattern=user@domain.ru совпадает с in "user@domain.ru" но почему тогда no (end of list) ?????

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-19 9:50:42
luky
domain.1 : domain.2 - это локальные домены?
у тебя mysql запрос и condition будут скорее всего другие, domain.1 и domain.2 в исключениях, чтобы пользователи могли писать на эти домены и получать от них (домены внутренней почты и внешней), если условие верно

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-19 9:58:56
frya_foreva
luky писал(а):
domain.1 : domain.2 - это локальные домены?
у тебя mysql запрос и condition будут скорее всего другие, domain.1 и domain.2 в исключениях, чтобы пользователи могли писать на эти домены и получать от них (домены внутренней почты и внешней), если условие верно

спасибо начал немнога понимать примерно как реализовать.
подскажи еще пжалста что в ентих директивах:$sender_address_local_part,$local_part

я ящики создаю postfixadmin'ом, в какой таблице проверять where login=

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-19 10:39:10
yolkov
!recipients = domain.1 : domain.2
!senders = domain.1 : domain.2
разве в этих списках не должны быть списки адресов?
для доменов ведь другие дерективы “domains” = “<domain list>”, “sender_domains” = “<domain list>”
????

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-19 12:46:24
luky

!recipients = domain.1 : domain.2
!senders = domain.1 : domain.2

разве в этих списках не должны быть списки адресов?
для доменов ведь другие дерективы “domains” = “<domain list>”, “sender_domains” = “<domain list>”
????
это и есть списки адресов, справа шаблон (pattern)

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-19 13:24:57
frya_foreva
luky писал(а):

!recipients = domain.1 : domain.2
!senders = domain.1 : domain.2

разве в этих списках не должны быть списки адресов?
для доменов ведь другие дерективы “domains” = “<domain list>”, “sender_domains” = “<domain list>”
????
это и есть списки адресов, справа шаблон (pattern)
а как же мои вопросы? подскажи плиз. (см. выше)

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-20 9:50:21
Laa
frya_foreva писал(а):Доброе время суток всем, поднял связку (Exim 4-68, dovecot 1.0.10), работает на ура.
создал внешний домен для отправки мыла на внешние (интернет) адреса и создал внутренний локальный домен для обмена сообщениями внутри конторы. Протестировав с внутреннего домена отправив на внешние ящики (mail.ru, yandex.ru), все нормально, отправка не возможна, но выяснился такой факт случайно отправили с внутреннего домена на один внешний (интернет) и сообщение отправилось.

Подскажите где копать чтобы закрыть такую дыру, отправки с внутреннего на внешний (интернет), но чтобы отправлялись на внешний моего домена.
Можно вопрос не по теме, можете не отвечать. ;-)
А ЗАЧЕМ такой изврат? Чем плохо, что пользователи с "внешним" доменом будут в рамках одного почтового сервера обмениваться внутренней почтой? Какую такую прелесть дает использование "внутреннего" домена??? :Search: :???:

Re: запретить отправку с локального домена во внешку

Добавлено: 2009-05-20 10:26:18
frya_foreva
Laa писал(а):
frya_foreva писал(а):Доброе время суток всем, поднял связку (Exim 4-68, dovecot 1.0.10), работает на ура.
создал внешний домен для отправки мыла на внешние (интернет) адреса и создал внутренний локальный домен для обмена сообщениями внутри конторы. Протестировав с внутреннего домена отправив на внешние ящики (mail.ru, yandex.ru), все нормально, отправка не возможна, но выяснился такой факт случайно отправили с внутреннего домена на один внешний (интернет) и сообщение отправилось.

Подскажите где копать чтобы закрыть такую дыру, отправки с внутреннего на внешний (интернет), но чтобы отправлялись на внешний моего домена.
Можно вопрос не по теме, можете не отвечать. ;-)
А ЗАЧЕМ такой изврат? Чем плохо, что пользователи с "внешним" доменом будут в рамках одного почтового сервера обмениваться внутренней почтой? Какую такую прелесть дает использование "внутреннего" домена??? :Search: :???:
а такую, что колличество внешних ящиков органичено, только дать внешку тем кто реально ведет деловую переписку и ведется журнал входящих и исходящих писем в мир, а внутрення для электронного обмена между отделами, без выхода в мир (политика безопасности организации). Если знаеш как сделать то помоги.