Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » FAQ по Exim MTA #2

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

Открыть новую тему     Написать ответ в эту тему

ShriEkeR



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FAQ по Exim MTA #1

Текущая версия Exim 4.80

   Home page Автор Philip Hazel, University of Cambridge.
Exim - чертовски быстр, отличный выбор для загруженных систем. Свободно распространяемый Mail Transport Agent (MTA, лицензия GPL), обладающий возможностью очень гибкой и тонкой настройки, включая поиск конфигурационной информации в базах данных - mySQL, PostgresQL, Oracle, SQLite.., а также LDAP.  В Exim встроена поддержка Maildir (quota), SMTP-аутентификация, TLS/SSL, SpamAssassin, сканирование на лету антивирусом(ами), ACL, системные фильтры... Сомневающимся.
На многие вопросы помогут найти ответы рассылки: На русском + На английском
Документация на русском по Exim + много полезной инфы на www.lissyara.su

Установка почтового сервера на базе Exim с поддержкой виртуальный аккаунтов (MySQL).
Подробное руководство состоит из двух связанных частей:
   1. Установка и настройка Exim 4.20.
   2. Установка  и настройка Tpop3d с поддержкой виртуальных аккаунтов.
Внимательно читаем здесь © ginger
-=-=-=-
Улучшенный вариант части 1: Exim-4.50 + MySQL © ginger
-=-=-=-
Так как Tpop3d не совместим с MS Outlook Express 6, а также не поддерживает IMAP, автор рекомендует его заменить на Dovecot. Изменения, которые нужно сделать cмотрим здесь © ginger
-=-=-=-
Еще один вариант установки © Wombat
-=-=-=-
Exim+Courier-Imap+MySQL+ClamAV+DSPAM+SquirrelMail © Павел Семенец Искать по ctrl+F=Павел Семенец
-=-=-=-
Опции для сборки exim из портов (FreeBSD) © tankistua
 
Уважаемые коллеги!
 
Нам очень дороги ваши конфиги и логи на несколько страниц, но, поверьте, их гораздо приятнее читать когда они заключены в тэг more.

Всего записей: 6382 | Зарегистр. 27-09-2004 | Отправлено: 18:49 16-05-2011 | Исправлено: AkeHayc, 21:09 21-04-2013
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batonser
Цитата:
вот так пробовал, но письма все равно принимаются
Так у тебя же правило закомментировано И при чем здесь acl_check_mime: ?

Цитата:
Нада чтоб почту из вне принимали только определенные почтовые адреса.
Элементарно, Ватсон! Если таких юзеров мало, просто определяешь их в конфиге.

Код:
localpartlist powerusers = vasya : petya : masha
acl_smtp_rcpt = acl_check_rcpt
..........
acl_check_rcpt:
   accept  hosts  =  : +local_hosts : +relay_from_hosts
  deny    message       =   "In my mailserver not stored this user"  
  domains       = +local_domains
  !local_parts   = powerusers
 
А если юзеров много, тогда определяешь powerusers через lookup базы или lsearch файла

----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 12:05 27-08-2014 | Исправлено: vlary, 12:07 27-08-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Так у тебя же правило закомментировано И при чем здесь acl_check_mime: ?  
 
На счет закомментировано, улыбнулся )) это я его специально закоментрировал, потому что временно пытался запретить прием почты для локальных почтовых адресов роутером...  
 
безуспешно )  
 
насчет acl_check_mime: я пытался забрить прием писем для пользователей на стадии проверки тела письма...  
 
Юзеров мало которым можно принимать из вне, а так их много,  
 
ПОльзователи хранятся в БД mysql ..  
 
 
такс по поводу что вы ниже написали получается так ?  
 
localpartlist powerusers = lsearch;/usr/local/etc/exim/deny.mails
 
acl_smtp_rcpt = acl_check_rcpt
..........
acl_check_rcpt:
   accept  hosts  =  : +local_hosts : +relay_from_hosts
  deny    message       =   "In my mailserver not stored this user"  
  domains       = +local_domains
  !local_parts   = powerusers  
 
 
 
Добавлено:
localpartlist powerusers = $lsearch;/usr/local/etc/exim/deny.mails
 
acl_smtp_rcpt = acl_check_rcpt
.......
 
acl_check_rcpt:
 
deny    message = "You are not allowed to send mail out office"
        hosts = +relay_from_hosts
        domains = !+local_domains
        senders = ${lookup mysql{SELECT username FROM mailbox \
                        WHERE `username`='${quote_mysql:$sender_address}' \
                        and `inactive`='1'}}
 
accept  hosts = :
deny    message = "In my mailserver not stored this user"
#       hosts = +relay_from_hosts
        domains = +local_domains
        !local_parts   = powerusers
 
Вот так вот у меня все отрабатывает отлично, но на почту которую я в списке указал deny.mails вообще перестало все приходить и по локалке и со внешки )))  
 
Сижу ковыряю...  
 
Добавлено:
В ОБщем кому нужно будет, разобрался  
 
 
Ацлка в итоге такая получилась  
 
accept  hosts = :
deny    message = "In my mailserver not stored this user"
        hosts = !+relay_from_hosts
        domains = +local_domains
        !local_parts = powerusers
 
СПС огромное... vlary
 
Добавлено:
Извеняюсь, но вроде как все и работает, но из вне теперь все почтовые ящиуи не получают письма )))  
все под правило попадают (

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 15:43 27-08-2014 | Исправлено: batonser, 16:51 27-08-2014
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batonser
Цитата:
все под правило попадают (
Видимо, неправильный формат файла со списками powerusers  
И ни один local_parts под них не подпадает.
Запусти отладку (  /path/to/exim -bh проблемный_айпи )
и проверь отработку acl_check_rcpt:

----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 18:28 27-08-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
hostlist   relay_from_hosts = localhost : 10.10.0.0/16
 
#localpartlist powerusers = ${lookup mysql{SELECT username FROM mailbox \
#                               WHERE `username`='${quote_mysql:$sender_address}' \
#                               and `inactive`='0'}}
 
#localpartlist powerusers = $lsearch;/usr/local/etc/exim/denyM
 
acl_smtp_rcpt = acl_check_rcpt
.......
 
acl_check_rcpt:
 
accept  hosts = :
 
deny    message = "You are not allowed to send mail out office"
        hosts = +relay_from_hosts
        domains = !+local_domains
        senders = ${lookup mysql{SELECT username FROM mailbox \
                        WHERE `username`='${quote_mysql:$sender_address}' \
                        and `inactive`='1'}}
 
 
 
#accept  hosts = :
#deny    message = "In my mailserver not stored this user"
#        hosts = !+relay_from_hosts
#        domains = +local_domains
#       !local_parts = powerusers
 
формат файла таков:  
Пробовал в файлик писать jabber и jabber@domen.ru  
 
не проходит
в файле я указываю учетки на которые должны приходить письма из вне...  
 
не обращай внимания на то что комментировано, это на данный момент закомментировал, пока правило не будет правильно отрабатывать.  
 
 
 
Добавлено:
Модернизировал я правила до такого вида:  
 
 
localpartlist powerusers = ${lookup mysql{SELECT adress FROM whitelist}}
 
 
в БД exim я создал таблицу whitelist а в ней столбец adress  
 
в него я занес данные jabber@domen.ru  
 
в ACL я ничего не менял
deny    message = "In my mailserver not stored this user"
        hosts = !+relay_from_hosts
        domains = +local_domains
       !local_parts = powerusers  
 
а в логах я вот что наблюдаю  
 
2014-08-28 14:15:05 [7979] SMTP connection from [94.100.178.90]:35729 I=[**.**.**.**]:25 (TCP/IP connection count = 1)
2014-08-28 14:15:06 [8045] H=(f171.i.mail.ru) [94.100.178.90]:35729 I=[**.**.**.**]:25 F=<ba@mail.ru> rejected RCPT <jabber@domen.ru>: "In my mailserver not stored this user"
2014-08-28 14:15:06 [8045] H=(f171.i.mail.ru) [94.100.178.90]:35729 I=[**.**.**.**]:25 incomplete transaction (QUIT) from <ba@mail.ru>
2014-08-28 14:15:06 [8045] SMTP connection from (f171.i.mail.ru) [94.100.178.90]:35729 I=[**.**.**.**]:25 closed by QUIT
 
 
 

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 09:07 28-08-2014
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batonser А, понятно, так ты еще хочешь, чтобы они и наружу отправлять не могли?
Тогда тебе надо 2 правила прописать в acl_check_rcpt: и проверку в acl_check_from:

Код:
acl_check_from:
warn
    set acl_m5  = ${lookup mysql{SELECT inactive FROM mailbox \  
                        WHERE `username`='${quote_mysql:$sender_address}' }}  
      hosts = +relay_from_hosts  
..........
accept
...........
acl_check_rcpt:  
 warn
    set acl_m6  = ${lookup mysql{SELECT inactive FROM mailbox \  
                        WHERE `username`='${quote_mysql:$sender_address}' }}  
       domains       = +local_domains
deny    message       =   "In my mailserver not stored this user"  
  domains       = +local_domains  
   condition   = ${if eq {$acl_m6}{1}}
 deny    message = "You are not allowed to send mail out office"  
        hosts = +relay_from_hosts  
        domains = !+local_domains  
        condition   = ${if eq {$acl_m5}{1}}
...............
 accept      
 


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 13:54 28-08-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
эм... чета не пашет так все отправляют и все получают.. давай ка я напишу как я прописал у себя в конциге, мож чего упустил  
 
 
acl_smtp_mail = acl_check_from
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mime = acl_check_mime
#acl_smtp_mail = acl_check_sender
 
......
begin acl
 
acl_check_rcpt:
 
accept  hosts = :
 
 
warn
        set acl_m6  = ${lookup mysql{SELECT inactive FROM mailbox \
                        WHERE `username`='${quote_mysql:$sender_address}'}}
        domains = +local_domains
 
 
 
deny    message = "In my mailserver not stored this user"
        domains = +local_domains
        condition = ${if eq {$acl_m6}{1}}
 
deny    message = "You are not allowed to send mail out office"
        hosts = +relay_from_hosts
        domains = !+local_domains
        condition = ${if eq {$acl_m5}{1}}
 
 
 
#deny    message = "In my mailserver not stored this user"
#        hosts = !+relay_from_hosts
#        domains = !+local_domains
#        !local_parts = +powerusers
 
........
 
 
accept  hosts = +relay_from_hosts
 
acl_check_mime:
 
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   = This type of archive is blocked!
        condition = ${if match {${lc:$mime_filename}}{\N(\.part01.rar|\.part01.zip)$\N}{1}{0}}
        hosts     = !+relay_from_hosts
        accept
 
........
 
#acl_check_sender:
acl_check_from:
 
warn
        set acl_m5  = ${lookup mysql{SELECT username FROM mailbox \
                          WHERE `username`='${quote_mysql:$sender_address}'}}
        hosts = +relay_from_hosts
 
 
accept
 
 
begin routers
 
 
Добавлено:

Цитата:
batonser А, понятно, так ты еще хочешь, чтобы они и наружу отправлять не могли?
Тогда тебе надо 2 правила прописать в acl_check_rcpt: и проверку в acl_check_from:

 
я хочу чтоб пользователи которые имели в таблице inactive = 1  
не могли отправлять почту на внешку и так же не могли принимать с внешки...  
 
неделю уже ковыряюсь )

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 18:32 28-08-2014
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batonser Вроде все нормально. Непонятно только, почему  
acl_check_rcpt: идет раньше acl_check_from: , но может оно и без разницы, не проверял.
Еще раз предлагаю провести дебаг сессии, и посмотреть, какие значения
принимают переменные acl_m5 и acl_m6, как срабатывают условия,
какой ответ от сервера.
Проверить можно и отправку наружу, и прием из вне.
Сразу станет понятно, в каком месте сбой.
Очень удобный инструмент, намного лучше чем танцы с бубном.

----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 23:24 28-08-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
я просто не совсем понял этот метод exim -bh айпи адрес
 
чей адрес айпи указывать ?  
я могу указать свой локальный. щяс результат покажу:  
 
batonser Вроде все нормально. Непонятно только, почему
acl_check_rcpt: идет раньше acl_check_from: , но может оно и без разницы, не проверял.  
 
я уже поставил запись последней, тоже вчера подумал что мало ли может порядок не тот  
 
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mime = acl_check_mime
#acl_smtp_mail = acl_check_sender
acl_smtp_mail = acl_check_from
 
 
mail# exim -bh 10.10.112.112
 
**** SMTP testing session as if from host 10.10.***.***
**** but without any ident (RFC 1413) callback.
**** This is not for real!
 
>>> host in hosts_connection_nolog? no (option unset)
LOG: [50492] SMTP connection from [10.10.***.***]
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> gethostbyname looked up these IP addresses:
>>>   name=localhost address=127.0.0.1
>>> host in "localhost : 10.10.0.0/16"? yes (matched "10.10.0.0/16")
>>> host in recipient_unqualified_hosts? yes (matched "+relay_from_hosts")
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> gethostbyname looked up these IP addresses:
>>>   name=localhost address=127.0.0.1
>>> host in helo_accept_junk_hosts? no (end of list)
220 kfm.kz, ESMTP EXIM 4.72
 

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 05:57 29-08-2014
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batonser
Цитата:
я могу указать свой локальный. щяс результат покажу
В этом случае ты будешь дебажить отправку наружу.
После того, как получил ответ 220 kfm.kz, ESMTP EXIM 4.72, вводи SMTP команды (HELO, MAIL FROM: RCPT TO
и наблюдай за ответами сервера, значениями переменных, выполнение условий.
Обратный адрес в MAIL FROM: активного юзера должен вызвать положительный ответ на  RCPT TO:,  
адрес неактивного - отлуп. в RCPT TO: указываешь внешнего получателя.
Потом по логам найди следы письма, которое прошло снаружи неактивному юзеру.
Запиши, с какого айпи и с каким обратным адресом отправлялось.
Этот айпи испольуй в команде, адрес - в MAIL FROM:, в RCPT TO: адрес внутренних юзеров.
На адрес активного должна быть положительная реакция, на адрес неактивного - отлуп.


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 12:14 29-08-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Извеняюсь, работы было очень много, щяс я все сделаю как Вы выше просили!  
 
 
Добавлено:
mail# exim -bh 10.10.***.***
 
**** SMTP testing session as if from host 10.10.***.***
**** but without any ident (RFC 1413) callback.
**** This is not for real!
 
>>> host in hosts_connection_nolog? no (option unset)
LOG: [98146] SMTP connection from [10.10.***.***]
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> gethostbyname looked up these IP addresses:
>>>   name=localhost address=127.0.0.1
>>> host in "localhost : 10.10.0.0/16"? yes (matched "10.10.0.0/16")
>>> host in recipient_unqualified_hosts? yes (matched "+relay_from_hosts")
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> gethostbyname looked up these IP addresses:
>>>   name=localhost address=127.0.0.1
>>> host in helo_accept_junk_hosts? no (end of list)
220 domen.ru, ESMTP EXIM 4.72
mail from:jabber@domen.ru
>>> using ACL "acl_check_from"
>>> processing "warn"
>>> check set acl_m5 = ${lookup mysql{SELECT username FROM mailbox WHERE `username`='${quote_mysql:$sender_address}'}}
>>>                  = jabber@domen.ru
>>> check hosts = +relay_from_hosts
>>> host in "+relay_from_hosts"? yes (matched "+relay_from_hosts" - cached)
>>> warn: condition test succeeded
>>> processing "accept"
>>> accept: condition test succeeded
250 OK
rcpt to:batonser@mail.ru
>>> using ACL "acl_check_rcpt"
>>> processing "accept"
>>> check hosts = :
>>> host in ":"? no (end of list)
>>> accept: condition test failed
>>> processing "warn"
>>> check set acl_m6 = ${lookup mysql{SELECT inactive FROM mailbox WHERE `username`='${quote_mysql:$sender_address}'}}
>>>                  = 1
>>> check domains = +local_domains
>>> mail.ru in ""? no (end of list)
>>> mail.ru in "+local_domains"? no (end of list)
>>> warn: condition test failed
>>> processing "deny"
>>> check domains = +local_domains
>>> mail.ru in ""? no (end of list)
>>> mail.ru in "+local_domains"? no (end of list)
>>> deny: condition test failed
>>> processing "deny"
>>> check hosts = +relay_from_hosts
>>> host in "+relay_from_hosts"? yes (matched "+relay_from_hosts" - cached)
>>> check domains = !+local_domains
>>> mail.ru in ""? no (end of list)
>>> mail.ru in "!+local_domains"? yes (end of list)
>>> check condition = ${if eq {$acl_m5}{1}}
>>>                 =
>>> deny: condition test failed
>>> processing "deny"
>>> check domains = +local_domains
>>> mail.ru in ""? no (end of list)
>>> mail.ru in "+local_domains"? no (end of list)
>>> deny: condition test failed
>>> processing "deny"
>>> check domains = !+local_domains
>>> mail.ru in ""? no (end of list)
>>> mail.ru in "!+local_domains"? yes (end of list)
>>> check local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
>>> batonser in "^[./|] : ^.*[@%!] : ^.*/\.\./"? no (end of list)
>>> deny: condition test failed
>>> processing "accept"
>>> check local_parts = postmaster
>>> batonser in "postmaster"? no (end of list)
>>> accept: condition test failed
>>> processing "accept"
>>> check hosts = wildlsearch;/usr/local/etc/exim/whitelist_host_names
>>> sender host name required, to match against wildlsearch;/usr/local/etc/exim/whitelist_host_names
>>> looking up host name for 10.10.***.***
>>> IP address lookup using gethostbyaddr()
>>> IP address lookup failed: h_errno=1
LOG: [98146] no host name found for IP address 10.10.***.***
>>> host in "wildlsearch;/usr/local/etc/exim/whitelist_host_names"? no (failed to find host name for 10.10.***.***)
LOG: [98146] list matching forced to fail: failed to find host name for 10.10.***.***
>>> accept: condition test failed
>>> processing "accept"
>>> check domains = +local_domains
>>> mail.ru in ""? no (end of list)
>>> mail.ru in "+local_domains"? no (end of list)
>>> accept: condition test failed
>>> processing "accept"
>>> check domains = +relay_to_domains
>>> mail.ru in ""? no (end of list)
>>> mail.ru in "+relay_to_domains"? no (end of list)
>>> accept: condition test failed
>>> processing "deny"
>>> check condition = ${if eq{$sender_helo_name}{}{yes}{no}}
>>>                 = yes
>>> deny: condition test succeeded
550 "HELO/EHLO - require by SMTP RFC"
LOG: [98146] H=[10.10.***.***] F=<jabber@domen.ru> rejected RCPT batonser@mail.ru: "HELO/EHLO - require by SMTP RFC"
 
 
Вот такая вот ситуация вышла!
 
Добавлено:
При этом такая ситуация наблюдается, локальная отправка приемка работает только для тех у кого в бд в поле inactive стоит значение 0, они и на внешку могут отправлять и локально, те у кого 1 вообще не могу отправлять.

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 08:07 04-09-2014 | Исправлено: batonser, 08:21 04-09-2014
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batonser
Цитата:
 щяс я все сделаю как Вы выше просили!
Я ничего не просил, ибо мне ничего из этого не надо. Я советовал.
Цитата:
 те у кого 1 вообще не могу отправлять.
Не удивительно, ибо все сделано не так, как у меня написано.
Я писал:  
  set acl_m5  = ${lookup mysql{SELECT inactive FROM mailbox \  
                        WHERE `username`='${quote_mysql:$sender_address}' }}  
А что вижу:
  set acl_m5 = ${lookup mysql{SELECT username FROM mailbox WHERE `username`='${quote_mysql:$sender_address}'}}  
Исправь и проверяй дальше.

----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 12:37 04-09-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
исправил, но ситуация аналогична, правила запрещают отправлять и на внешку и по локалке тем пользователям у кого значение = 1
 
Добавлено:
Чуть подправив то что я имею в конфиге, у меня теперь все работает так как нада, но со внешки письма так и приходят на любые адреса  
 

Код:
 
begin acl
 
acl_check_from:
 
warn    set acl_m5  = ${lookup mysql{SELECT inactive FROM mailbox \
                          WHERE `username`='${quote_mysql:$sender_address}'}}
        hosts = +relay_from_hosts
 
 
accept
 
 
acl_check_rcpt:
 
accept  hosts = :
 
 
warn    set acl_m6  = ${lookup mysql{SELECT inactive FROM mailbox \
                        WHERE `username`='${quote_mysql:$sender_address}'}}
        domains = +local_domains
 
 
 
deny    message = "In my mailserver not stored this user"
        hosts = !+relay_from_hosts
        domains = +local_domains
        condition = ${if eq {$acl_m6}{1}}
 
deny    message = "You are not allowed to send mail out office"
        hosts = +relay_from_hosts
        domains = !+local_domains
        condition = ${if eq {$acl_m5}{1}}
 
 
 
 

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 13:24 04-09-2014
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
правила запрещают отправлять и на внешку и по локалке тем пользователям у кого значение = 1
 Давай определимся, что значит inactive.
1 - это разрешено отправлять или запрещено?
Потом, у тебя не правило запрещающее сработало, а ты не сделал HELO/EHLO и получил
 550 "HELO/EHLO - require by SMTP RFC"  
В данном примере тест отработал правильно, отправитель - inactive = 1,
получатель - внешний, готовился отлуп, но произошел раньше, поскольку нарушен протокол.
Рекомендую пока идет настройка, оставить конфиг такой, при котором почта хоть как-то работает.
А тестовый кофиг запиши куда-нибудь в /tmp/exim.conf
И проводи тестирование командой /path/to/exim -C /tmp/exim.conf -h x.x.x.x
можешь добавить в acl_check_from:  
 warn  
        set acl_m5  = 2
        hosts = !+relay_from_hosts  
И В acl_check_rcpt:  
 warn  
    set acl_m6  = 2
       domains       = !+local_domains  
 
и дальше имеешь стройную логику

Код:
   если  acl_m5  = 0 и  acl_m6  = 2 - accept (активный внешнему)
   если  acl_m5  = 2 и  acl_m6  = 0 - accept (внешний активному)
   если  acl_m5  = 0 и  acl_m6  = 0 - accept (внутренняя почта)
   если  acl_m5  = 1 и  acl_m6  = 0 - accept (внутренняя почта)
   если  acl_m5  = 0 и  acl_m6  = 1 - accept (внутренняя почта)
   если  acl_m5  = 1 и  acl_m6  = 1 - accept (внутренняя почта)
   если  acl_m5  = 1 и  acl_m6  = 2 - deny (наружу от неактивного)
   если  acl_m5  = 2 и  acl_m6  = 1 - deny (внутрь неактивному)
   если  acl_m5  = 2 и  acl_m6  = 2 - deny (попытка релея)
   если  acl_m5  = 2 и  acl_m6  =  пусто - deny (нет такого ящика)

Можешь объединить несколько правил в одно с помощью логических операторов

----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 14:56 04-09-2014 | Исправлено: vlary, 14:58 04-09-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Давай определимся, что значит inactive.
1 - это разрешено отправлять или запрещено?  

 
1 это кому запрещено отправлять на внешку и принимать с внешки.  
 
еще момент этот столбец inactive  я добавил в основную таблицу exim  
 
т.е  
+------------------------+--------------+------------------------+-------------------------+-------+-----------------+-----------+---------------------+---------------------+--------+----------+
| username               | password     | name                   | maildir                 | quota | local_part      | domain    | created             | modified            | active | inactive |
+------------------------+--------------+------------------------+-------------------------+-------+-----------------+-----------+---------------------+---------------------+--------+----------+
 
с этой таблицы в принципе  берутся пользователи .... (это мало важный момент, но все же его озвучу дабы не было не допониманий)
 
Конфиг у меня забэкапаный есть, могу в живую с ним играться так как почтой щяс мало кто пользуется, в общем терпимо!  
 
Можно ли как то через транспорт забрить прием писем для пользователей почты?  
 
 

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 15:29 04-09-2014
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batonser
Цитата:
Можно ли как то через транспорт забрить прием писем для пользователей почты
А какой смысл? Через акцесс-листы все прекрасно должно бриться.
А чтобы гнать через разные транспорты, тоже какие-то критерии сочинять нужно.
 


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 17:56 04-09-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В Общем при таком раскладе в конфиге, почта по локалке ходит на внешку письма уходят только с тех у кого в БД  стоит 0,  
но принимают все почтовые адреса со внешки.
 
что самое интересное  
 
deny    message = "In my mailserver not stored this user"
       !hosts = +relay_from_hosts                                 если закоментить эту строчку, письма по локалке не ходят вообще. Это правило не правельно отрабатывает.
        domains = +local_domains
        condition = ${if eq {$acl_m6}{1}}
 
 

Код:
 
acl_check_from:
 
warn    set acl_m5  = ${lookup mysql{SELECT inactive FROM mailbox \
                          WHERE `username`='${quote_mysql:$sender_address}'}}
        hosts = +relay_from_hosts
 
accept
 
 
acl_check_rcpt:
 
#accept  hosts = :
 
 
warn    set acl_m6  = ${lookup mysql{SELECT inactive FROM mailbox \
                        WHERE `username`='${quote_mysql:$sender_address}'}}
        domains = +local_domains
 
deny    message = "In my mailserver not stored this user"
        !hosts = +relay_from_hosts
        domains = +local_domains
        condition = ${if eq {$acl_m6}{1}}
 
deny    message = "You are not allowed to send mail out office"
        hosts = +relay_from_hosts
        domains = !+local_domains
        condition = ${if eq {$acl_m5}{1}}
 
 

 
Добавлено:
куда рыть не знаю, может лучше в бд exim создать отдельно таблицу и поместить туда тех кому можно приминать почту из вне ? а остальных поидее должно атвоматом рубить.

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 13:16 05-09-2014
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batonser
Цитата:
 если закоментить эту строчку, письма по локалке не ходят вообще
Правильно, и не будут. Попробуй провести дебаг сессии с параметрами
 /path/to/exim  -h 94.100.177.108 с параметрами  
 HELO smtp48.i.mail.ru
 MAIL FROM: <test@mail.ru>
 RCPT TO: сначала неактивный, потом активный юзер
И покажи как отрабатывается


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 14:01 05-09-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Попробуй провести дебаг сессии с параметрами
 /path/to/exim  -h 94.100.177.108 с параметрами  
 HELO smtp48.i.mail.ru
 MAIL FROM: <test@mail.ru>
 RCPT TO: сначала неактивный, потом активный юзер
И покажи как отрабатывается  

 
почитав ман нашел  
 
 -h <number>
                 This  option is accepted for compatibility with Sendmail, but
                 has no effect. (In Sendmail  it  overrides  the  "hop  count"
                 obtained by counting Received: headers.)
 
но я так думаю меня интересует  
 
-d<debug options>
 

Код:
 
mail# exim -d 94.100.177.108
Exim version 4.72 (FreeBSD 7.2) uid=0 gid=0 pid=72292 D=fbb95cfd
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
OpenSSL compile-time version: OpenSSL 0.9.8e 23 Feb 2007
OpenSSL runtime version: OpenSSL 0.9.8e 23 Feb 2007
changed uid/gid: forcing real = effective
  uid=0 gid=0 pid=72292
  auxiliary group list: 0
seeking password data for user "mailnull": using cached result
getpwnam() succeeded uid=26 gid=26
seeking password data for user "root": cache not available
getpwnam() succeeded uid=0 gid=0
configuration file is /usr/local/etc/exim/configure
log selectors = ffffffff 7fffffff
LOG: MAIN
  cwd=/root 3 args: exim -d 94.100.177.108
trusted user
admin user
changed uid/gid: privilege not needed
  uid=26 gid=6 pid=72292
  auxiliary group list: 6 6
seeking password data for user "mailnull": cache not available
getpwnam() succeeded uid=26 gid=26
originator: uid=0 gid=0 login=root name=Charlie Root
sender address = root@domen.ru
set_process_info: 72292 accepting a local non-SMTP message from <root@domen.ru>
Sender: root@domen.ru
Recipients:
  94.100.177.108
search_tidyup called
HELO smtp48.i.mail.ru
MAIL FROM: batonser@mail.ru
>>Headers received:
 
address match: subject=94.100.177.108@domen.ru pattern=*@domen.ru
domen.ru in "domen.ru"? yes (matched "domen.ru")
94.100.177.108@domen.ru in "*@domen.ru"? yes (matched "*@domen.ru")
LOG: address_rewrite MAIN
  "94.100.177.108@domen.ru" from env-to rewritten as "94.100.177.108@domen.ru" by rule 1
address match: subject=root@domen.ru pattern=*@domen.ru
domen.ru in "domen.ru"? yes (matched "domen.ru")
root@domen.ru in "*@domen.ru"? yes (matched "*@domen.ru")
LOG: address_rewrite MAIN
  "root@domen.ru" from env-from rewritten as "root@domen.ru" by rule 1
rewritten sender = root@domen.ru
rewrite_one_header: type=F:
  From: Charlie Root <root@domen.ru>
address match: subject=root@domen.ru pattern=*@domen.ru
domen.ru in "domen.ru"? yes (matched "domen.ru")
root@domen.ru in "*@domen.ru"? yes (matched "*@domen.ru")
LOG: address_rewrite MAIN
  "root@domen.ru" from from: rewritten as "root@domen.ru" by rule 1
newlen=33 newtype=F newtext:
From: Charlie Root <root@domen.ru>
remainder:
search_tidyup called
>>Headers after rewriting and local additions:
  Date: Fri, 05 Sep 2014 16:09:45 +0600
I Message-Id: <E1XPqSO-000Ip2-Qx@domen.ru>
* X-rewrote-original-recipient: 94.100.177.108@domen.ru
* From: Charlie Root <root@domen.ru>
F From: Charlie Root <root@domen.ru>
* X-rewrote-sender: root@domen.ru
...
.
.
.
.
.
 
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
OpenSSL compile-time version: OpenSSL 0.9.8e 23 Feb 2007
OpenSSL runtime version: OpenSSL 0.9.8e 23 Feb 2007
changed uid/gid: forcing real = effective
  uid=0 gid=6 pid=72684
  auxiliary group list: 6
seeking password data for user "mailnull": using cached result
getpwnam() succeeded uid=26 gid=26
configuration file is /usr/local/etc/exim/configure
log selectors = ffffffff 7fffffff
LOG: MAIN
  cwd=/var/spool/exim 8 args: /usr/local/sbin/exim -d=0xfbb95cfd -t -oem -oi -f <> -E1XPqX9-000Isk-Ub
trusted user
admin user
changed uid/gid: privilege not needed
  uid=26 gid=6 pid=72684
  auxiliary group list: 6 6
seeking password data for user "mailnull": using cached result
getpwnam() succeeded uid=26 gid=26
originator: uid=26 gid=6 login=mailnull name=
sender address =
set_process_info: 72684 accepting a local non-SMTP message from <>
Sender:
search_tidyup called
>>Headers received:
X-Failed-Recipients: 94.100.177.108@domen.ru
Auto-Submitted: auto-replied
From: Mail Delivery System <Mailer-Daemon@domen.ru>
To: root@domen.ru
Subject: Mail delivery failed: returning message to sender
 
address match: subject=root@domen.ru pattern=*@domen.ru
domen.ru in "domen.ru"? yes (matched "domen.ru")
root@domen.ru in "*@domen.ru"? yes (matched "*@domen.ru")
LOG: address_rewrite MAIN
  "root@domen.ru" from env-to rewritten as "root@domen.ru" by rule 1
rewrite_one_header: type=F:
  From: Mail Delivery System <Mailer-Daemon@domen.ru>
address match: subject=Mailer-Daemon@domen.ru pattern=*@domen.ru
domen.ru in "domen.ru"? yes (matched "domen.ru")
Mailer-Daemon@domen.ru in "*@domen.ru"? yes (matched "*@domen.ru")
LOG: address_rewrite MAIN
  "Mailer-Daemon@domen.ru" from from: rewritten as "Mailer-Daemon@domen.ru" by rule 1
newlen=50 newtype=F newtext:
From: Mail Delivery System <Mailer-Daemon@domen.ru>
remainder:
rewrite_one_header: type=T:
  To: root@domen.ru
address match: subject=root@domen.ru pattern=*@domen.ru
domen.ru in "domen.ru"? yes (matched "domen.ru")
root@domen.ru in "*@domen.ru"? yes (matched "*@domen.ru")
LOG: address_rewrite MAIN
  "root@domen.ru" from to: rewritten as "root@domen.ru" by rule 1
newlen=16 newtype=T newtext:
To: root@domen.ru
remainder:
search_tidyup called
>>Headers after rewriting and local additions:
  Date: Fri, 05 Sep 2014 16:15:49 +0600
I Message-Id: <E1XPqYX-000IuK-2G@domen.ru>
  X-Failed-Recipients: 94.100.177.108@domen.ru
  Auto-Submitted: auto-replied
* From: Mail Delivery System <Mailer-Daemon@domen.ru>
F From: Mail Delivery System <Mailer-Daemon@domen.ru>
* To: root@domen.ru
T To: root@domen.ru
  Subject: Mail delivery failed: returning message to sender
* X-rewrote-original-recipient: root@domen.ru
 
Data file written for message 1XPqYX-000IuK-2G
>>Generated Received: header line
P Received: from mailnull by domen.ru with local (Exim 4.72 (FreeBSD))
        id 1XPqYX-000IuK-2G
        for root@domen.ru; Fri, 05 Sep 2014 16:15:49 +0600
calling local_scan(); timeout=300
local_scan() returned 0 NULL
Writing spool header file
Size of headers = 412
LOG: MAIN
  <= <> R=1XPqX9-000Isk-Ub U=mailnull P=local S=1193 T="Mail delivery failed: returning message to sender"
search_tidyup called
search_tidyup called
exec /usr/local/sbin/exim -d=0xfbb95cfd -Mc 1XPqYX-000IuK-2G
>>>>>>>>>>>>>>>> Exim pid=72684 terminating with rc=0 >>>>>>>>>>>>>>>>
Exim version 4.72 (FreeBSD 7.2) uid=26 gid=6 pid=72685 D=fbb95cfd
Writing spool header file
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
OpenSSL compile-time version: OpenSSL 0.9.8e 23 Feb 2007
OpenSSL runtime version: OpenSSL 0.9.8e 23 Feb 2007
changed uid/gid: forcing real = effective
  uid=0 gid=6 pid=72685
  auxiliary group list: 6
seeking password data for user "mailnull": using cached result
getpwnam() succeeded uid=26 gid=26
configuration file is /usr/local/etc/exim/configure
log selectors = ffffffff 7fffffff
LOG: MAIN
  cwd=/var/spool/exim 4 args: /usr/local/sbin/exim -d=0xfbb95cfd -Mc 1XPqYX-000IuK-2G
trusted user
admin user
skipping ACL configuration - not needed
seeking password data for user "mailnull": using cached result
getpwnam() succeeded uid=26 gid=26
set_process_info: 72685 delivering specified messages
set_process_info: 72685 delivering 1XPqYX-000IuK-2G
reading spool file 1XPqYX-000IuK-2G-H
user=mailnull uid=26 gid=6 sender=
sender_local=0 ident=mailnull
Non-recipients:
Empty Tree
---- End of tree ----
recipients_count=1
body_linecount=33 message_linecount=10
Delivery address list:
  root@domen.ru
locking /var/spool/exim/db/retry.lockfile
locked /var/spool/exim/db/retry.lockfile
EXIM_DBOPEN(/var/spool/exim/db/retry)
returned from EXIM_DBOPEN
opened hints database /var/spool/exim/db/retry: flags=O_RDONLY
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering: root@domen.ru
unique = root@domen.ru
dbfn_read: key=R:domen.ru
dbfn_read: key=R:root@domen.ru
dbfn_read: key=R:root@domen.ru:<>
no domain retry record
no address retry record
root@domen.ru: queued for routing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing root@domen.ru
--------> kas30router router <--------
local_part=root domain=domen.ru
checking local_parts
search_open: passwd "NULL"
search_find: file="NULL"
  key="root" partial=-1 affix=NULL starflags=0
LRU list:
internal_search_find: file="NULL"
  type=passwd key="root"
database lookup required for root
seeking password data for user "root": cache not available
getpwnam() succeeded uid=0 gid=0
lookup yielded: *:0:0:Charlie &:/root:/bin/csh
root in "passwd;root : lsearch"? yes (matched "passwd;root")
checking "condition"
calling kas30router router
kas30router router called for root@domen.ru
  domain = domen.ru
set transport kas30transport
queued for kas30transport transport: local_part = root
domain = domen.ru
  errors_to=NULL
  domain_data=NULL localpart_data=*:0:0:Charlie &:/root:/bin/csh
routed by kas30router router
  envelope to: root@domen.ru
  transport: kas30transport
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
After routing:
  Local deliveries:
    root@domen.ru
  Remote deliveries:
  Failed addresses:
  Deferred addresses:
search_tidyup called
>>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>>
--------> root@domen.ru <--------
locking /var/spool/exim/db/retry.lockfile
locked /var/spool/exim/db/retry.lockfile
EXIM_DBOPEN(/var/spool/exim/db/retry)
returned from EXIM_DBOPEN
opened hints database /var/spool/exim/db/retry: flags=O_RDONLY
dbfn_read: key=T:root@domen.ru
no retry record exists
search_tidyup called
changed uid/gid: local delivery to root <root@domen.ru> transport=kas30transport
  uid=26 gid=6 pid=72686
  auxiliary group list: 6
  home=NULL current=/
set_process_info: 72686 delivering 1XPqYX-000IuK-2G to root using kas30transport
kas30transport transport entered
using command /usr/local/ap-mailfilter3/bin/kas-pipe
direct command:
  argv[0] = /usr/local/ap-mailfilter3/bin/kas-pipe
direct command after expansion:
  argv[0] = /usr/local/ap-mailfilter3/bin/kas-pipe
  LMTP<< 220 kas30pipe.localhost LMTP Service ready
  LMTP>> LHLO domen.ru
  LMTP<< 250-kas30pipe.localhost Pleased to meet you
  LMTP<< 250-ENHANCEDSTATUSCODES
  LMTP<< 250-8BITMIME
  LMTP<< 250 PIPELINING
  LMTP>> MAIL FROM:<>
Size of headers = 285
LOG: MAIN
  Completed QT=1m26s
end delivery of 1XPqX9-000Isk-Ub
search_tidyup called
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=72683 terminating with rc=0 >>>>>>>>>>>>>>>>
  LMTP<< 250 2.1.0 Sender Ok
  LMTP>> RCPT TO:<root@domen.ru>
  LMTP<< 250 2.1.5 Recipient Ok
  LMTP>> DATA
  LMTP<< 354 3.3.0 Enter mail, end with <CRLF>.<CRLF>
  LMTP>> writing message and terminating "."
writing data block fd=9 size=1240 timeout=300
  LMTP<< 550 5.7.1 Message rejected (There was no valid recipients)
  LMTP>> QUIT
  LMTP<< 221 2.0.0 Good bye
kas30transport transport yields 1
search_tidyup called
kas30transport transport returned FAIL for root@domen.ru
post-process root@domen.ru (2)
LOG: MAIN
  ** root@domen.ru F=<> P=<> R=kas30router T=kas30transport: LMTP error after end of data: 550 5.7.1 Message rejected (There was no valid recipients)
>>>>>>>>>>>>>>>> deliveries are done >>>>>>>>>>>>>>>>
changed uid/gid: post-delivery tidying
  uid=26 gid=6 pid=72685
  auxiliary group list: 6
set_process_info: 72685 tidying up after delivering 1XPqYX-000IuK-2G
Processing retry items
Succeeded addresses:
Failed addresses:
Deferred addresses:
root@domen.ru: no retry items
end of retry processing
LOG: MAIN
  Frozen (delivery error message)
delivery deferred: update_spool=1 header_rewritten=0
Writing spool header file
Size of headers = 412
end delivery of 1XPqYX-000IuK-2G
search_tidyup called
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=72685 terminating with rc=0 >>>>>>>>>>>>>>>>
 
 
 

 
Добавлено:
чета я по моему не то делаю.

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 14:24 05-09-2014 | Исправлено: batonser, 14:36 05-09-2014
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batonser
Цитата:
чета я по моему не то делаю.
Небольшая ошибочка, нужно
 /path/to/exim -bh 94.100.177.108

----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 15:19 05-09-2014
batonser



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Небольшая ошибочка, нужно
 /path/to/exim -bh 94.100.177.108

 
 
Вот для не активного
 

Код:
 
mail# exim -bh 94.100.177.108
 
**** SMTP testing session as if from host 94.100.177.108
**** but without any ident (RFC 1413) callback.
**** This is not for real!
 
>>> host in hosts_connection_nolog? no (option unset)
LOG: [75835] SMTP connection from [94.100.177.108]
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> gethostbyname looked up these IP addresses:
>>>   name=localhost address=127.0.0.1
>>> host in "localhost : 10.10.0.0/16"? no (end of list)
>>> host in recipient_unqualified_hosts? no (end of list)
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> gethostbyname looked up these IP addresses:
>>>   name=localhost address=127.0.0.1
>>> host in helo_accept_junk_hosts? no (end of list)
220 kfm.kz, ESMTP EXIM 4.72
HELO smtp48.i.mail.ru
>>> smtp48.i.mail.ru in helo_lookup_domains? no (end of list)
250 kfm.kz Hello smtp48.i.mail.ru [94.100.177.108]
MAIL FROM: batonser@mail.ru
>>> using ACL "acl_check_from"
>>> processing "warn"
>>> check set acl_m5 = ${lookup mysql{SELECT inactive FROM mailbox WHERE `username`='${quote_mysql:$sender_address}'}}
>>>                  =
>>> check hosts = +relay_from_hosts
>>> host in "+relay_from_hosts"? no (end of list)
>>> warn: condition test failed
>>> processing "accept"
>>> accept: condition test succeeded
250 OK
RCPT TO: jabber@kfm.kz
>>> using ACL "acl_check_rcpt"
>>> processing "warn"
>>> check set acl_m6 = ${lookup mysql{SELECT inactive FROM mailbox WHERE `username`='${quote_mysql:$sender_address}'}}
>>>                  =
>>> check domains = +local_domains
>>> kfm.kz in "kfm.kz"? yes (matched "kfm.kz")
>>> kfm.kz in "+local_domains"? yes (matched "+local_domains")
>>> warn: condition test succeeded
>>> processing "deny"
>>> check !hosts = +relay_from_hosts
>>> host in "+relay_from_hosts"? no (end of list)
>>> check domains = +local_domains
>>> kfm.kz in "kfm.kz"? yes (matched "kfm.kz")
>>> kfm.kz in "+local_domains"? yes (matched "+local_domains")
>>> check condition = ${if eq {$acl_m6}{1}}
>>>                 =
>>> deny: condition test failed
>>> processing "deny"
>>> check hosts = +relay_from_hosts
>>> host in "+relay_from_hosts"? no (end of list)
>>> deny: condition test failed
>>> processing "deny"
>>> check domains = +local_domains
>>> kfm.kz in "kfm.kz"? yes (matched "kfm.kz")
>>> kfm.kz in "+local_domains"? yes (matched "+local_domains")
>>> check local_parts = ^[.] : ^.*[@%!/|]
>>> jabber in "^[.] : ^.*[@%!/|]"? no (end of list)
>>> deny: condition test failed
>>> processing "deny"
>>> check domains = !+local_domains
>>> kfm.kz in "kfm.kz"? yes (matched "kfm.kz")
>>> kfm.kz in "!+local_domains"? no (matched "!+local_domains")
>>> deny: condition test failed
>>> processing "accept"
>>> check local_parts = postmaster
>>> jabber in "postmaster"? no (end of list)
>>> accept: condition test failed
>>> processing "accept"
>>> check hosts = wildlsearch;/usr/local/etc/exim/whitelist_host_names
>>> sender host name required, to match against wildlsearch;/usr/local/etc/exim/whitelist_host_names
>>> looking up host name for 94.100.177.108
>>> IP address lookup yielded smtp48.i.mail.ru
>>> gethostbyname looked up these IP addresses:
>>>   name=smtp48.i.mail.ru address=94.100.177.108
>>> checking addresses for smtp48.i.mail.ru
>>>   94.100.177.108 OK
>>> smtp48.i.mail.ru in "*.astv.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.htel.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.yahoo.com"? no (end of list)
>>> smtp48.i.mail.ru in "*.pravstat.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.ivc.lan"? no (end of list)
>>> smtp48.i.mail.ru in "*.statbase.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.nsa.lan"? no (end of list)
>>> smtp48.i.mail.ru in "*.minfin.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.ukimet.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.mgd.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.parlam.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.enbek.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.minagri.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.azkrk.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.kysmet.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.kostanay.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.edu.gov.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.q0100.customs.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.halykbank.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.nationalbank.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.kds.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.abekp.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.zhambyl.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.mail.ru"? yes (matched "*.mail.ru")
>>> host in "wildlsearch;/usr/local/etc/exim/whitelist_host_names"? yes (matched "wildlsearch;/usr/local/etc/exim/whitelist_host_names")
>>> accept: condition test succeeded
250 Accepted
 

 
 
Вот для активного  

Код:
 
mail# exim -bh 94.100.177.108
 
**** SMTP testing session as if from host 94.100.177.108
**** but without any ident (RFC 1413) callback.
**** This is not for real!
 
>>> host in hosts_connection_nolog? no (option unset)
LOG: [75939] SMTP connection from [94.100.177.108]
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> gethostbyname looked up these IP addresses:
>>>   name=localhost address=127.0.0.1
>>> host in "localhost : 10.10.0.0/16"? no (end of list)
>>> host in recipient_unqualified_hosts? no (end of list)
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> gethostbyname looked up these IP addresses:
>>>   name=localhost address=127.0.0.1
>>> host in helo_accept_junk_hosts? no (end of list)
220 domen.ru, ESMTP EXIM 4.72
HELO smtp48.i.mail.ru
>>> smtp48.i.mail.ru in helo_lookup_domains? no (end of list)
250 domen.ru Hello smtp48.i.mail.ru [94.100.177.108]
MAIL FROM: batonser@mail.ru
>>> using ACL "acl_check_from"
>>> processing "warn"
>>> check set acl_m5 = ${lookup mysql{SELECT inactive FROM mailbox WHERE `username`='${quote_mysql:$sender_address}'}}
>>>                  =
>>> check hosts = +relay_from_hosts
>>> host in "+relay_from_hosts"? no (end of list)
>>> warn: condition test failed
>>> processing "accept"
>>> accept: condition test succeeded
250 OK
RCPT TO: itdep@domen.ru
>>> using ACL "acl_check_rcpt"
>>> processing "warn"
>>> check set acl_m6 = ${lookup mysql{SELECT inactive FROM mailbox WHERE `username`='${quote_mysql:$sender_address}'}}
>>>                  =
>>> check domains = +local_domains
>>> domen.ru in "domen.ru"? yes (matched "domen.ru")
>>> domen.ru in "+local_domains"? yes (matched "+local_domains")
>>> warn: condition test succeeded
>>> processing "deny"
>>> check !hosts = +relay_from_hosts
>>> host in "+relay_from_hosts"? no (end of list)
>>> check domains = +local_domains
>>> domen.ru in "domen.ru"? yes (matched "domen.ru")
>>> domen.ru in "+local_domains"? yes (matched "+local_domains")
>>> check condition = ${if eq {$acl_m6}{1}}
>>>                 =
>>> deny: condition test failed
>>> processing "deny"
>>> check hosts = +relay_from_hosts
>>> host in "+relay_from_hosts"? no (end of list)
>>> deny: condition test failed
>>> processing "deny"
>>> check domains = +local_domains
>>> domen.ru in "domen.ru"? yes (matched "domen.ru")
>>> domen.ru in "+local_domains"? yes (matched "+local_domains")
>>> check local_parts = ^[.] : ^.*[@%!/|]
>>> itdep in "^[.] : ^.*[@%!/|]"? no (end of list)
>>> deny: condition test failed
>>> processing "deny"
>>> check domains = !+local_domains
>>> domen.ru in "domen.ru"? yes (matched "domen.ru")
>>> domen.ru in "!+local_domains"? no (matched "!+local_domains")
>>> deny: condition test failed
>>> processing "accept"
>>> check local_parts = postmaster
>>> itdep in "postmaster"? no (end of list)
>>> accept: condition test failed
>>> processing "accept"
>>> check hosts = wildlsearch;/usr/local/etc/exim/whitelist_host_names
>>> sender host name required, to match against wildlsearch;/usr/local/etc/exim/whitelist_host_names
>>> looking up host name for 94.100.177.108
>>> IP address lookup yielded smtp48.i.mail.ru
>>> gethostbyname looked up these IP addresses:
>>>   name=smtp48.i.mail.ru address=94.100.177.108
>>> checking addresses for smtp48.i.mail.ru
>>>   94.100.177.108 OK
>>> smtp48.i.mail.ru in "*.astv.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.htel.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.yahoo.com"? no (end of list)
>>> smtp48.i.mail.ru in "*.pravstat.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.ivc.lan"? no (end of list)
>>> smtp48.i.mail.ru in "*.statbase.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.nsa.lan"? no (end of list)
>>> smtp48.i.mail.ru in "*.minfin.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.ukimet.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.mgd.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.parlam.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.enbek.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.minagri.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.azkrk.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.kysmet.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.kostanay.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.edu.gov.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.q0100.customs.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.halykbank.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.nationalbank.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.kds.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.abekp.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.zhambyl.kz"? no (end of list)
>>> smtp48.i.mail.ru in "*.mail.ru"? yes (matched "*.mail.ru")
>>> host in "wildlsearch;/usr/local/etc/exim/whitelist_host_names"? yes (matched "wildlsearch;/usr/local/etc/exim/whitelist_host_names")
>>> accept: condition test succeeded
250 Accepted
 
 

 
 
Судя по этим логам, у меня правила не отрабатывают вообще.

Всего записей: 27 | Зарегистр. 13-12-2010 | Отправлено: 15:48 05-09-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » FAQ по Exim MTA #2


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru