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

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-15 6:04:27

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

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

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
estade
мл. сержант
Сообщения: 92
Зарегистрирован: 2008-06-18 11:16:41
Откуда: Челябинск
Контактная информация:

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

Непрочитанное сообщение estade » 2009-05-15 6:25:16

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 

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-15 6:51:28

на внешнем и на внутреннем разные, пример: 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

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2009-05-15 7:32:19

В переменной local_domains что у тебя?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-15 7:40:01

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

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   |
+-----------------+-----------+

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-15 11:34:41

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

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2009-05-15 14:22:36

читай про транспорты и роутеры http://www.lissyara.su/?id=1200
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

yolkov
рядовой
Сообщения: 37
Зарегистрирован: 2007-04-11 8:52:08

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

Непрочитанное сообщение yolkov » 2009-05-15 15:36:59

господа профессионалы, у меня подобная проблема:
Хочу чтобы все пользователи из 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

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

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2009-05-15 19:03:49

правила форума в шапке прочесть, для начала
Убей их всех! Бог потом рассортирует...

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

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

Непрочитанное сообщение neyro » 2009-05-17 22:45:53

Днс лукап вообще не трогай...сделай доп. роутер сразу после него(и не забудь почитать про опции роутеров в мануале...).

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-18 7:56:19

princeps писал(а):читай про транспорты и роутеры http://www.lissyara.su/?id=1200
спасибо конечно за ссылку, но я надеялся уже конкретной помощи с примером

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2009-05-18 8:14:03

в кассу тоже за вас подходят зарплату получать?
Убей их всех! Бог потом рассортирует...

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2009-05-18 8:18:08

frya_foreva писал(а):но я надеялся уже конкретной помощи с примером
Я лично не сталкивался с конкретно такой проблемой, поэтому кусок конфига тебе скопировать не могу. А изобретать именно сейчас времени нет, так что извиняй, помогаю чем могу.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-18 9:46:30

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

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-19 8:27:42

Как сделать чтобы запретить отправку в мир с локального домена?

luky
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-04-30 15:07:27

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

Непрочитанное сообщение luky » 2009-05-19 8:57:52

пользователи не в базе 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

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-19 9:01:13

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 - это локальные домены?

yolkov
рядовой
Сообщения: 37
Зарегистрирован: 2007-04-11 8:52:08

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

Непрочитанное сообщение yolkov » 2009-05-19 9:48:08

нашел описание как делать закрытые списки рассылки
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) ?????
Последний раз редактировалось yolkov 2009-05-19 10:01:46, всего редактировалось 1 раз.

luky
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-04-30 15:07:27

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

Непрочитанное сообщение luky » 2009-05-19 9:50:42

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

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-19 9:58:56

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

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

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

yolkov
рядовой
Сообщения: 37
Зарегистрирован: 2007-04-11 8:52:08

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

Непрочитанное сообщение yolkov » 2009-05-19 10:39:10

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

luky
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-04-30 15:07:27

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

Непрочитанное сообщение luky » 2009-05-19 12:46:24


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

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

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-19 13:24:57

luky писал(а):

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

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

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

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

Непрочитанное сообщение Laa » 2009-05-20 9:50:21

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

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

frya_foreva
рядовой
Сообщения: 41
Зарегистрирован: 2009-03-19 13:49:56

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

Непрочитанное сообщение frya_foreva » 2009-05-20 10:26:18

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

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