Exim + Exchange

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
tech_nik
проходил мимо
Сообщения: 4
Зарегистрирован: 2008-04-16 9:35:08

Exim + Exchange

Непрочитанное сообщение tech_nik » 2008-05-05 15:55:40

Может боян, но в поиске ничего подходящего не нашел. Настраиваю связку Exim + Exchange по этой статье http://www.lissyara.su/?id=1453
Долго боролся с проверкой пользователей в Exchange, но перерыв статьи в конфиге вместо
LDAP_AD_BASE_DN = DC=long-domain,DC=local
поставил

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

LDAP_AD_BASE_DN = "${quote_ldap:DC=long-domain,DC=local}" 
и проверка заработала.
Но в процессе эксперементов перестало работать перезапись локального домена на внешний, то есть

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

*@MS_EXCHANGE_DOMAIN	"${if eq{$interface_address}{INTERNAL_IP}{$1@long-domain.ru}fail}"
- не работает

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

*@MS_EXCHANGE_DOMAIN	$1@long-domain.ru
- так работает
запускал в режиме - exim -bh получается, что exim в первом случае игнорирует правило перезаписи. Конфиги переписывал, синтаксис вроде правильный куда и смотреть - не знаю :(
Последний раз редактировалось Alex Keda 2008-05-05 21:46:41, всего редактировалось 1 раз.
Причина: [code][/code] - для кого?

Хостинговая компания 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/

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

Re: Exim + Exchange

Непрочитанное сообщение princeps » 2008-05-05 16:03:42

tech_nik писал(а):LDAP_AD_BASE_DN = "${quote_ldap:DC=long-domain,DC=local}" и проверка заработала.
Опа, я две недели назад бился над этим, в итоге плюнул, сделал прием писем без проверки. Спасибо тебе, добрый человек :)
tech_nik писал(а):запускал в режиме - exim -bh получается, что exim в первом случае игнорирует правило перезаписи. Конфиги переписывал, синтаксис вроде правильный куда и смотреть - не знаю :(
А в логи что пишет?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

tech_nik
проходил мимо
Сообщения: 4
Зарегистрирован: 2008-04-16 9:35:08

Re: Exim + Exchange

Непрочитанное сообщение tech_nik » 2008-05-05 16:14:59

А в логи ничего не пишет :) Просто отправляет письмо от домена @long-domain.local, соответственно получаем отлуп от получателя. Письмо отправляется, но домен на внешний не перезаписывается. Там где после записи

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

user@long-domain.local in "*@long-domain.local"? yes (matched "*@long-domain.local")
должна идти перезапись домена

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

LOG: [3099] 1Jt2bE-0000nz-Re "user@long-domain.local" from env-from rewritten as "user@long-domain.ua" by rule 1
(так пишет когда конфиг по второму варианту сделан)
Exim просто пропускает этот шаг и идет проверка дальше
Последний раз редактировалось Alex Keda 2008-05-05 21:47:01, всего редактировалось 1 раз.
Причина: [code][/code] - для кого?

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

Re: Exim + Exchange

Непрочитанное сообщение Alex Keda » 2008-05-05 21:47:21

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

tech_nik
проходил мимо
Сообщения: 4
Зарегистрирован: 2008-04-16 9:35:08

Re: Exim + Exchange

Непрочитанное сообщение tech_nik » 2008-05-06 12:16:19

сорри, буду стараться

а по существу кто-нибудь что-нибудь скажет?

tech_nik
проходил мимо
Сообщения: 4
Зарегистрирован: 2008-04-16 9:35:08

Re: Exim + Exchange

Непрочитанное сообщение tech_nik » 2008-05-08 17:03:35

Ладно, раз никто не знает ответа отвечу сам (Как оказалось я просто перехитрил сам себя) :D
В Rewrite оставил код

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

*@MS_EXCHANGE_DOMAIN   "${if eq{$interface_address}{INTERNAL_IP}{$1@long-domain.ru}fail}"
а в Exchange в свойстве SMTP коннектора поставил маскарадинг long-domain.ru
В тестовом режиме все работает, поставим на рабочую машинку, там посмотрим

Fedor
ефрейтор
Сообщения: 67
Зарегистрирован: 2007-12-19 18:17:30
Откуда: Москва

Re: Exim + Exchange

Непрочитанное сообщение Fedor » 2008-06-30 12:17:37

Подскажите, чем можно погенерить ldap запросы для написания другого правила проверки пользователей. А то чего-то не выходит правильно создать другой запрос.
Примерно вот такой запрос:

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

LDAP_AD_MAIL_RCPT = \
user=LDAP_AD_BINDDN \
pass=LDAP_AD_PASS \
ldap:///LDAP_AD_BASE_DN\
(&(|(objectClass=user))\
(|(userPrincipalName=${quote_ldap:${local_part}@MS_EXCHANGE_DOMAIN})
Всего хорошего, Федор

Cluster
проходил мимо

Re: Exim + Exchange

Непрочитанное сообщение Cluster » 2008-07-04 12:20:51

Хочу настроить данную связку, но пока ничего не получается:
локальный домен у меня имеет вид: domain
домен во внешнем мире: domain.ru
на этом почтовике ещё немного посторонних юзверей сидят, которые у меня в MySQL
вот собственно конфиг:

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

hide mysql_servers = localhost/postfix/Exim/password
primary_hostname = www.domain.ru

MS_EXCHANGE_DOMAIN = domain

ldap_default_servers = <; 192.168.10.15:3268

LDAP_AD_BINDDN = user
LDAP_AD_PASS = password
LDAP_AD_BASE_DN = DC=domain

LDAP_AD_MAIL_RCPT = \
user=LDAP_AD_BINDDN \
pass=LDAP_AD_PASS \
ldap:///LDAP_AD_BASE_DN?mail?sub?\
(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))\
(|(proxyAddresses=${quote_ldap:${local_part}@MS_EXCHANGE_DOMAIN})\
(proxyAddresses=smtp:${quote_ldap:${local_part}@MS_EXCHANGE_DOMAIN}))\
(!(userAccountControl:1.2.840.113556.1.4.803:=2)))

domainlist local_domains = domain.ru
domainlist relay_to_domains = domain.ru
hostlist   relay_from_hosts = localhost:127.0.0.0/8 
acl_smtp_connect = acl_check_connect
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mime = acl_check_mime
acl_smtp_data = acl_check_data
spamd_address = 127.0.0.1 783
qualify_domain = domain.ru
exim_user = mailnull
exim_group = mail
never_users = root
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 30m
timeout_frozen_after = 7d
freeze_tell = postmaster@domain.ru
#helo_accept_junk_hosts = 192.168.1.0/24
auto_thaw = 1h
smtp_banner = "$primary_hostname, ESMTP"
message_size_limit = 10M
helo_allow_chars = _
smtp_enforce_sync = true
log_selector = \
    +all_parents \
    +connection_reject \
    +incoming_interface \
    +lost_incoming_connection \
    +received_sender \
    +received_recipients \
    +smtp_confirmation \
    +smtp_syntax_error \
    +smtp_protocol_error \
    -queue_run

# ACL
begin acl

acl_check_connect:
accept  hosts   =  127.0.0.1
        control =  no_enforce_sync
accept
 
acl_check_rcpt:
accept  hosts = :
deny    message       = Restricted characters in address
        domains       = +local_domains
        local_parts   = ^[.] : ^.*[@%!/|]

deny    message       = Restricted characters in address
        domains       = !+local_domains
        local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

deny    message       = "HELO/EHLO must be by SMTP RFC!"
        condition     = ${if eq{$sender_helo_name}{}{yes}{no}}

accept  authenticated = *

deny    message       = "Not insert your IP in HELO!"
        hosts         =  *:!+relay_from_hosts
        condition     = ${if eq{$sender_helo_name}\
                        {$sender_host_address}{true}{false}}

deny    condition     = ${if eq{$sender_helo_name}\
                        {$interface_address}{yes}{no}}
        hosts         = !127.0.0.1 : !localhost : *
        message       = "It's my IP! Go home!"

deny    condition     = ${if match{$sender_helo_name}\
                        {\N^\d+$\N}{yes}{no}}
        hosts         = !127.0.0.1:!localhost:*
        message       = "In HELO can't be only numbers!"

deny    message       = "host in blacklist - $dnslist_domain \n $dnslist_text"
        dnslists      = cbl.abuseat.org : \

warn
        set acl_m0 = 20s
warn
        hosts = +relay_from_hosts
        set acl_m0 = 0s
warn
        logwrite = Delay $acl_m0 for $sender_host_name \
	   [$sender_host_address] with HELO=$sender_helo_name. Mail \
	   from $sender_address to $local_part@$domain.
        delay = $acl_m0

accept  domains       = +local_domains
        endpass
        verify        = recipient

accept  domains       = +relay_to_domains
        endpass
        verify        = recipient

accept  hosts         = +relay_from_hosts

deny    message       = relay not permitted

acl_check_mime:

  warn decode = default

  deny message = Blacklisted file extension detected ($mime_filename)
       condition = ${if match \
                    {${lc:$mime_filename}} \
                    {\N(\.exe|\.pif|\.bat|\.scr|\.lnk|\.com|\.vbs|\.cpl)$\N} \
                    {1}{0}}

  deny message = Sorry, noone speaks chinese here
       condition = ${if eq{$mime_charset}{gb2312}{1}{0}}

accept

acl_check_data:
#deny  message = Virus found ($malware_name)
#      malware = *


deny message = This message was classified as SPAM
     condition = ${if < {$message_size}{20K}}
     spam = nobody

warn  message = X-Spam-Score: $spam_score ($spam_bar)
      hosts   = !+relay_from_hosts
      spam    = nobody:true

warn  message = X-Spam-Report: $spam_report
      hosts   = !+relay_from_hosts
      spam    = nobody:true

warn  message = Subject: ***SPAM*** $h_Subject:
      hosts   = !+relay_from_hosts
      spam    = nobody

deny  message = This message scored $spam_score spam points.
      hosts   = !+relay_from_hosts
      spam    = nobody:true
      condition = ${if >{$spam_score_int}{120}{1}{0}}

accept

# ROUTERS
begin routers
conversion_router:
	driver		=	redirect
	data		=	${lookup ldap {LDAP_AD_MAIL_RCPT}}
	user		=	mailnull
	group		=	mail
	domains	=	+relay_to_domains

exchange_router:
	driver		=	"manualroute"
	domains	=	MS_EXCHANGE_DOMAIN
	transport	=	remote_smtp
	route_list	=	* 192.168.10.15
	no_more

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

system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup mysql{SELECT goto FROM alias WHERE address='${local_part}@${domain}'}}

mysqluser:
  driver = accept
  condition = ${if eq{} {${lookup mysql{SELECT maildir FROM mailbox WHERE username='${local_part}@${domain}'}}}{no}{yes}} 
  transport = mysql_delivery

# TRANSPORT
begin transports
remote_smtp:
  driver = smtp

mysql_delivery:
  driver = appendfile
  check_string = ""
  create_directory
  delivery_date_add
  directory = ${lookup mysql{SELECT CONCAT("/var/mail/exim/", maildir) FROM mailbox WHERE username='${local_part}@${domain}'}}
  directory_mode = 770
  envelope_to_add
  maildir_use_size_file
  group = mail
  maildir_format
  maildir_tag = ,S=$message_size
  message_prefix = ""
  message_suffix = ""
  mode = 0600

  quota = ${lookup mysql{SELECT quota FROM mailbox WHERE username='${local_part}@${domain}'}{${value}M}}
  quota_warn_message = "\
  To: $local_part@$domain\n\
  From: postmaster@$domain\n\
  Subject: Your maildir is going full\n\
  This message is automaticaly gnerated by your mail server.\n\
  This means, that your mailbox is 80% full. If you would \n\
  override this limit new mail would not be delivered to you!\n\n\
  Please, clean your mailbox."
  quota_warn_threshold = 80%
  return_path_add

address_file:
    driver = appendfile
    delivery_date_add
    envelope_to_add
    return_path_add

address_pipe:
  driver = pipe
  return_output

address_reply:
  driver = autoreply
# RETRY
begin retry
# Address or Domain    Error       Retries
*                      quota
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h

# REWRITE
begin rewrite

# AUTH
#begin authenticators
#auth_plain:
#  driver = plaintext
#  public_name = PLAIN
#  server_condition = ${lookup mysql{SELECT password FROM mailbox WHERE username='${local_part}@${domain}'}{yes}{no}}
#  server_prompts = :
#  server_set_id = $2

begin authenticators

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT username FROM mailbox \
                        WHERE username = '${quote_mysql:${local_part:$2}}@${quote_mysql:${domain:$2}}' \
                        AND domain = '${quote_mysql:${domain:$2}}' \
                        AND password = '${quote_mysql:$3}'}{yes}{no}}
  server_prompts = :
server_set_id = $2

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT username FROM mailbox \
                        WHERE username = '${quote_mysql:${local_part:$1}}@${quote_mysql:${domain:$1}}' \
                        AND domain = '${quote_mysql:${domain:$1}}' \
                        AND password = '${quote_mysql:$2}'}{yes}{no}}
  server_prompts = Username:: : Password::
server_set_id = $1

auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT password FROM mailbox \
                        WHERE username = '${quote_mysql:${local_part:$2}}@${quote_mysql:${domain:$2}}' \
                        AND domain = '${quote_mysql:${domain:$1}}'}{$value}fail}
server_set_id = $1
В логе:

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

2008-07-04 13:05:04 1KEhE0-0004M4-M0 == test@domain.ru R=conversion_router defer (-1): failed to expand "${lookup ldap {user=user pass=xxxxxx ldap:///DC=domain?mail?sub?(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))(|(proxyAddresses=${quote_ldap:${local_part}@domain})(proxyAddresses=smtp:${quote_ldap:${local_part}@domain}))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))}}": lookup of "user=test pass=Sz2vBu ldap:///DC=domain?mail?sub?(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))(|(proxyAddresses=user0%40domain)(proxyAddresses=smtp:user%40domain))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))" gave DEFER: failed to bind the LDAP connection to server 192.168.10.15:3268 - LDAP error 49: Invalid credentials
отправляю с test@domain.ru на user@domain.ru, test@domain.ru в MYSQL, user@domain.ru алиас с user@domain в Exchange
Я вообще слабо понимаю в LDAP и MS Exchange, народ может кто подскажет минимальный конфиг для проверки пользователей в AD и пересылке на Exchange сервер. Например что за "userAccountControl:1.2.840.113556.1.4.803:=2" я вообще без понятия и для чего его lissyara включил.

Vel
проходил мимо

Re: Exim + Exchange

Непрочитанное сообщение Vel » 2008-07-04 13:25:23

Всё, понял. Я сначало не въезжал, проверка пользователей в AD организована на роутере, больше в Exim относительно AD можно ничего не изобретать. И Да действительно господа, чем пофиксить LDAP-запросы к AD можно?

Cluster
проходил мимо

Re: Exim + Exchange

Непрочитанное сообщение Cluster » 2008-07-04 17:26:25

Перекрутил всё, а в mainlog одно:
gave DEFER: failed to bind the LDAP connection to server 192.168.10.15:3268 - LDAP error 49: Invalid credentials
Я не понимаю, это ошибка возникает при вводе некорректного логина - пароля, или же при проблемном соединении, или же при неправильном запросе?

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

Re: Exim + Exchange

Непрочитанное сообщение Alex Keda » 2008-07-04 22:34:07

некорректна пара - логин-пароль
Убей их всех! Бог потом рассортирует...

Cluster
проходил мимо

Re: Exim + Exchange

Непрочитанное сообщение Cluster » 2008-07-07 12:09:30

У меня ситуация классная: почтовый сервер на Exim, который будет выступать по схеме lissyara в качестве фронтенда будет ещё не только фронтендом для Exchange бэкенда, но и почтовым сервером для совершенно чужого домена. Я не такой ас в Exim, это действительно очень сложный MTA и поэтому не могу разобраться в конфиге при такой ситуации, схема то мне понятна. Если я например в таком конфиге: http://www.lissyara.su/?id=1175 добавлю в роутере перед mysql_delivery строки:

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

conversion_router:
	driver		=	redirect
#	data		=	$local_part@MS_EXCHANGE_DOMAIN
#	data		=	$local_part
	data		=	${lookup ldap {LDAP_AD_MAIL_RCPT}}
	user		=	mailnull
	group		=	mail
	domains		=	+relay_to_domains

exchange_router:
	driver		=	"manualroute"
	domains		=	MS_EXCHANGE_DOMAIN
#	domains		=	+relay_to_domains
#	data		=	$local_part
	transport	=	remote_smtp
	route_list	=	* 192.168.205.2
	no_more
Предварительно создав естественно макро LDAP_AD_MAIL_RCPT с LDAP-запросом в AD, то у меня должно всё работать?

Cluster
проходил мимо

Re: Exim + Exchange

Непрочитанное сообщение Cluster » 2008-07-07 17:00:09

Ну вообщем у меня траблы с LDAP, скорее всего база кривая на AD под управлением Win 2k. lissyara наверное на AD под win2k3 делал.
Я немного не понимаю запрос:

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

ldap:///LDAP_AD_BASE_DN?mail?sub?\
(&(|(objectClass=user)(objectClass=publicFolder)(objectClass=group))\
(|(proxyAddresses=${quote_ldap:${local_part}@MS_EXCHANGE_DOMAIN})\
(proxyAddresses=smtp:${quote_ldap:${local_part}@MS_EXCHANGE_DOMAIN}))
в ldapsearch это:

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

ldapsearch -D user@localdomain -w password -h LDAP_server -p PORT_LDAP_server -b "dc=localdomain" "(objectClass=publicFolder)" "(objectClass=group)" "(objectClass=group)" "(proxyAddresses=username@localdomain)" "(proxyAddresses=smtp:username@localdomain)"
?
В логах у меня:

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

.................gave DEFER: ldap_search failed: -7, Bad search filter
кривой запрос

Cluster
проходил мимо

Re: Exim + Exchange

Непрочитанное сообщение Cluster » 2008-07-08 9:49:43

Тут по ходжу вымерли все. Народ кто мне скажет, что этот запрос должен выводить, который lissyara накатал.

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

Re: Exim + Exchange

Непрочитанное сообщение Alex Keda » 2008-07-08 21:15:43

ну извини - кроме форумов работать ещё и надо.
а ещё объяснять вещщи из документации, вместо того чтобы с ребёнком посидеть =)
=========
по сабжу - ты много вопросов задал.
заадавай по одному.
про роутеры - наверно да, но конфиг я тот не помню уже наизусть.
про запрос - синтаксис лдапа простой до безобразия, хоть и убогий. в документации находиться за 5 минут, вкуривается за стока же времени.
======
а выведет он значение поля 'mail'
Убей их всех! Бог потом рассортирует...

ObServer
проходил мимо
Сообщения: 2
Зарегистрирован: 2008-07-10 18:32:00

Re: Exim + Exchange

Непрочитанное сообщение ObServer » 2008-07-10 18:37:36

Такой вопрос. Делал по статье, всё, вроде, работает )

Но!

При запуске Экзима в логе появляются строчки:

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

2008-07-10 19:12:54 [29427] 1KGpIk-000LW5-0S Error in system filter: malformed numerical string "0s"
и периодически проскакивают во время работы:

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

2008-07-10 19:13:36 [29457] 1KGxpw-0007ev-3D list matching forced to fail: malformed IPv4 address or address mask
Какие-то условия в system-filter.. Не могу понять, какие и что это означает для работы - что-то происходит при этом? Или можно забить?
Последний раз редактировалось Alex Keda 2008-07-10 19:06:43, всего редактировалось 1 раз.
Причина: [code][/code] - для кого?

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

Re: Exim + Exchange

Непрочитанное сообщение Alex Keda » 2008-07-10 19:07:36

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

яДяД Хведор
проходил мимо

Re: Exim + Exchange

Непрочитанное сообщение яДяД Хведор » 2008-09-29 14:14:55

Если бы я был такой же умный, я бы тоже сюда чего нибудь написал бы. Обязательно.
А так остаётся только читать и удивлятцо
:st:

swlad69
проходил мимо
Сообщения: 1
Зарегистрирован: 2008-10-23 14:26:59

Re: Exim + Exchange

Непрочитанное сообщение swlad69 » 2008-10-23 14:35:56

Вопрос как сделать чтоб Exim принимал почту для Exchange и для пользователей на Фряхе кто нибудь делал такое поделитесь опытом или конфигом

ObServer
проходил мимо
Сообщения: 2
Зарегистрирован: 2008-07-10 18:32:00

Re: Exim + Exchange

Непрочитанное сообщение ObServer » 2008-10-24 11:45:44

swlad69 писал(а):Вопрос как сделать чтоб Exim принимал почту для Exchange и для пользователей на Фряхе кто нибудь делал такое поделитесь опытом или конфигом

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

begin routers

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

# в DBMail'овские ящики падает почта для локальных юзеров (root и т.д.) и тех, кто не на Эксчейндже
# и получает почту по POP3

dbmailuser:
        driver = accept
	domains = localhost:somedomain.com:host.domain.local
        transport = dbmail_delivery

# для всех остальных делается попытка найти адрес в таблице (создаётся скриптом, который периодически лазает в АД и
# обновляет таблицу адресов), если найден, мыло роутится на Эксчейндж, если нет - отлуп :)

exchange_router:
	driver	= manualroute
	domains 	= +local_domains
	condition 	= ${lookup mysql{SELECT `internal` FROM `exch_ab` WHERE `external`='${quote_mysql:$local_part@$domain}'}{yes}{no}}
	transport	= exch_smtp
	route_list	= * 192.168.0.2
	cannot_route_message = ERR Unroutable address!
	no_more

system_aliases:
	driver		=	redirect
	data		=	${lookup{$local_part}lsearch{/etc/aliases}}
	user		=	mailnull
	group		=	mail
	file_transport	=	address_file
	pipe_transport	=	address_pipe
	allow_fail
	allow_defer

localuser:
	driver = accept
	check_local_user
	transport = local_delivery
	cannot_route_message = Unknown local user 
Вроде, всё работает окейно :)

OS/2
проходил мимо

Re: Exim + Exchange

Непрочитанное сообщение OS/2 » 2008-11-26 21:47:08

Такой вопрос. Делал по статье.
Конфиг нетрогал уже месяца два и вот недавно пользователи начали жаловаться на спам от самих себя.
В логах:

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

2008-11-25 08:58:16 Resetting acl_m0 40 --> 0, host in whitelist (link@mydomain.com ==> link@mydomain.com)
2008-11-25 08:58:16 Resetting acl_m0 40 --> 0, host in whitelist (lisnyk@mydomain.com ==> lisnyk@mydomain.com)
2008-11-25 08:58:16 Resetting acl_m0 40 --> 0, host in whitelist (liquidity07@mydomain.com ==> liquidity07@mydomain.com)
2008-11-25 08:58:16 Resetting acl_m0 0 --> 0, host in whitelist (lisnykvadimlisnyk@mydomain.com ==> lisnykvadimlisnyk@mydomain.com)
2008-11-25 08:58:17 1L4rsG-000FM5-H1 <= link@mydomain.com H=fw-2.phoenix.cz [212.71.178.178] I=[мой внешний ип]:25 P=smtp S=1828 T="not sissy, but real man" from <link@mydomain.com> for link@mydomain.com
2008-11-25 08:58:17 1L4rsG-000FM3-H7 <= lisnykvadimlisnyk@mydomain.com H=fw-2.phoenix.cz [212.71.178.178] I=[мой внешний ип]:25 P=smtp S=1881 T="she will ask for mercy" from <lisnykvadimlisnyk@mydomain.com> for lisnykvadimlisnyk@mydomain.com
2008-11-25 08:58:17 1L4rsG-000FM2-H8 <= lisnyk@mydomain.com H=fw-2.phoenix.cz [212.71.178.178] I=[мой внешний ип]:25 P=smtp S=1833 T="good head by celeb" from <lisnyk@mydomain.com> for lisnyk@mydomain.com
2008-11-25 08:58:17 1L4rsG-000FM4-H6 <= liquidity07@mydomain.com H=fw-2.phoenix.cz [212.71.178.178] I=[мой внешний ип]:25 P=smtp S=1846 T="hard attack" from <liquidity07@mydomain.com> for liquidity07@mydomain.com
2008-11-25 08:58:17 cwd=/var/spool/exim 3 args: /usr/local/sbin/exim -Mc 1L4rsG-000FM3-H7
2008-11-25 08:58:17 cwd=/var/spool/exim 3 args: /usr/local/sbin/exim -Mc 1L4rsG-000FM2-H8
2008-11-25 08:58:17 cwd=/var/spool/exim 3 args: /usr/local/sbin/exim -Mc 1L4rsG-000FM5-H1
2008-11-25 08:58:17 cwd=/var/spool/exim 3 args: /usr/local/sbin/exim -Mc 1L4rsG-000FM4-H6
2008-11-25 08:58:17 1L4rsG-000FM3-H7 => lisnykvadimlisnyk@mydomain.com R=exchange_router T=special_smtp H=192.168.2.1 [192.168.2.1] X=TLSv1:AES128-SHA:128 C="250 2.6.0 <51529ce7-efcd-44f3-8c3b-1c316b9bd713@MAIL.mydomain.com> Queued mail for delivery"
2008-11-25 08:58:17 1L4rsG-000FM3-H7 Completed
2008-11-25 08:58:17 1L4rsG-000FM5-H1 => link@mydomain.com R=exchange_router T=special_smtp H=192.168.2.1 [192.168.2.1] X=TLSv1:AES128-SHA:128 C="250 2.6.0 <14f0a0cf-4254-4c26-9216-7d6053c92ded@MAIL.mydomain.com> Queued mail for delivery"
2008-11-25 08:58:17 1L4rsG-000FM5-H1 Completed
2008-11-25 08:58:17 1L4rsG-000FM2-H8 => lisnyk@mydomain.com R=exchange_router T=special_smtp H=192.168.2.1 [192.168.2.1] X=TLSv1:AES128-SHA:128 C="250 2.6.0 <b2e5f37c-65c1-4a48-b189-89d227023d1d@MAIL.mydomain.com> Queued mail for delivery"
2008-11-25 08:58:17 1L4rsG-000FM2-H8 Completed
2008-11-25 08:58:17 1L4rsG-000FM4-H6 => liquidity07@mydomain.com R=exchange_router T=special_smtp H=192.168.2.1 [192.168.2.1] X=TLSv1:AES128-SHA:128 C="250 2.6.0 <cfcae84d-f65f-4789-9a2b-b9e8e25cd6ee@MAIL.mydomain.com> Queued mail for delivery"
2008-11-25 08:58:17 1L4rsG-000FM4-H6 Completed
2008-11-25 08:58:17 Resetting acl_m0 100 --> 0, host in whitelist (trykorol@mydomain.com ==> trykorol@mydomain.com)
2008-11-25 08:58:18 1L4rsG-000FL2-SN <= mch@mydomain.com H=220-129-80-210.dynamic.hinet.net [220.129.80.210] I=[мой внешний ип]:25 P=smtp S=1835 T="powering attack" from <mch@mydomain.com> for mch@mydomain.com
2008-11-25 08:58:18 cwd=/var/spool/exim 3 args: /usr/local/sbin/exim -Mc 1L4rsG-000FL2-SN
2008-11-25 08:58:18 1L4rsG-000FL2-SN => mch@mydomain.com R=exchange_router T=special_smtp H=192.168.2.1 [192.168.2.1] X=TLSv1:AES128-SHA:128 C="250 2.6.0 <a7151b83-76aa-401f-b6d7-1f9f84b401ba@MAIL.mydomain.com> Queued mail for delivery"
2008-11-25 08:58:18 1L4rsG-000FL2-SN Completed
....
2008-11-25 08:58:48 1L4rsl-000FNh-GV <= rnq@mydomain.com H=(am.dynonobel.com) [124.28.12.81] I=[мой внешний ип]:25 P=smtp S=1830 T="drive her hot and crazy" from <rnq@mydomain.com> for rnq@mydomain.com
2008-11-25 08:58:48 cwd=/var/spool/exim 3 args: /usr/local/sbin/exim -Mc 1L4rsl-000FNh-GV
2008-11-25 08:58:48 1L4rsl-000FNh-GV => rnq@mydomain.com R=exchange_router T=special_smtp H=192.168.2.1 [192.168.2.1] X=TLSv1:AES128-SHA:128 C="250 2.6.0 <a371f849-7e55-41d3-9504-cbb575a6f48d@MAIL.mydomain.com> Queued mail for delivery"
2008-11-25 08:58:48 1L4rsl-000FNh-GV Completed
Подскажите в какую сторону копать?

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Exim + Exchange

Непрочитанное сообщение lerryc » 2008-11-27 6:41:16

OS/2 писал(а):Такой вопрос. Делал по статье.
Конфиг нетрогал уже месяца два и вот недавно пользователи начали жаловаться на спам от самих себя.
Подскажите в какую сторону копать?
в сторону политик антиспама
видно пришла пора подправить конфиг ;)
машина думать не может, машина должна ехать

pango
проходил мимо
Сообщения: 7
Зарегистрирован: 2008-09-23 20:29:14

Re: Exim + Exchange

Непрочитанное сообщение pango » 2008-11-27 9:13:07

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

accept	hosts		= +relay_from_hosts
		control	= submission/sender_retain

drop message	= Invalid hostname 
		sender_domains = +local_domains

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

Re: Exim + Exchange

Непрочитанное сообщение Alex Keda » 2008-11-27 9:30:56

таже самая хня.
правда, я иначе реализовал =)

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

# added by lissyara 2008-11-26 in 12:13
# don't send from @domain.ru from external servers
        deny    message         = We don't accept mail from internal users trough external servers
                hosts           = !+relay_from_hosts:*
                condition       = ${if eq{$sender_address_domain}{$domain}{yes}{no}}
в конце двухсотого файла.
однако. ваше решение красивей =)
Впрочем - я известный извращенец =)))
Убей их всех! Бог потом рассортирует...

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Exim + Exchange

Непрочитанное сообщение lerryc » 2008-11-27 9:37:34

pango писал(а):

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

accept	hosts		= +relay_from_hosts
		control	= submission/sender_retain

drop message	= Invalid hostname 
		sender_domains = +local_domains
трюк хороший, но не спасет, имхо
вернее -> спасает не всегда
интересно будет узнать - поможет в данной конкретной ситуации?
(судя по айпишнику - делаю ставку, что нет ;) )
машина думать не может, машина должна ехать