Не работают ACL в Exim

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Midnight-cat
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-01-15 11:38:48
Откуда: Украина

Не работают ACL в Exim

Непрочитанное сообщение Midnight-cat » 2008-01-21 13:48:11

У меня не работают все ниже написанные acl, ошибок в логах никаких нет, просто молча не работает и все тут. Задержек нет, письма моментально доходят, на цифры в HELO тоже ни разу не ругался.
Проверяла на рабочей связке Exim+KAV+Spamassasin. Потом специально поставила с нуля тестовый exim 4.69 без довесков, на нем тоже не работает. OS Slackware 10.0
acl следующие:

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

 deny    message       = "Не надо пихать свой IP в качестве HELO!"
          hosts         =  *:!+relay_from_hosts
          condition     = ${if eq{$sender_helo_name}\
                          {$sender_host_address}{true}{false}}

deny    condition     = ${if match{$sender_helo_name}\
                          {\N^\d+$\N}{yes}{no}}
          hosts         = !127.0.0.1:!localhost:*
          message       = "В HELO не могут быть тока цифры!"

 warn
        # ставим дефолтовую задержку в 20 секунд
        set acl_m0 = 20s
Последний раз редактировалось Alex Keda 2008-01-21 13:57:43, всего редактировалось 1 раз.
Причина: Та заипали слепые, кнопки кода не видящие =)

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Не работают ACL в Exim

Непрочитанное сообщение dikens3 » 2008-01-21 14:57:12

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

#!/bin/sh

# Тестирование от mail.ru
#(echo "EHLO mxs.mail.ru"; echo "MAIL FROM:user@mail.ru"; echo "RCPT TO: postmaster@ТВОЙ_ДОМЕН.ru"; echo "DATA"; echo "Subject: test"; echo "."; echo "QUIT";) \
#| exim -d -bhc 194.67.23.20 > testlog 2>&1
И смотри что там в логах по твоей теме.

Должно быть примерно следующее.

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

processing "deny"
check !senders = :
address match: subject=user@mail.ru pattern=
mail.ru in ""? no (end of list)
user@mail.ru in ":"? no (end of list)
check condition = ${if eq{$sender_helo_name}{}{yes}{no}}
                = no
deny: condition test failed
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Midnight-cat
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-01-15 11:38:48
Откуда: Украина

Re: Не работают ACL в Exim

Непрочитанное сообщение Midnight-cat » 2008-01-21 15:35:57

Вот что в выводе:

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

require: condition test succeeded
processing "warn"
check set acl_m0 = 40s
warn: condition test succeeded
processing "deny"
deny: condition test succeeded
SMTP>> 550 "Free"
LOG: MAIN REJECT
  H=mxs.mail.ru [194.67.23.20] F=<user@mail.ru> rejected RCPT admin@domen.ua: "Free"
SMTP<< DATA
SMTP>> 503-All RCPT commands were rejected with this error:
SMTP>> 503-"Free"
SMTP>> 503 Valid RCPT command must precede DATA
SMTP<< Subject: test
LOG: smtp_syntax_error MAIN
  SMTP syntax error in "Subject: test" H=mxs.mail.ru [194.67.23.20] unrecognized command
SMTP>> 500 unrecognized command
SMTP<< .
LOG: smtp_syntax_error MAIN
  SMTP syntax error in "." H=mxs.mail.ru [194.67.23.20] unrecognized command
SMTP>> 500 unrecognized command
SMTP<< QUIT
SMTP>> 221 domen.ua closing connection
LOG: smtp_connection MAIN
  SMTP connection from mxs.mail.ru [194.67.23.20] closed by QUIT
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=24196 terminating with rc=0 >>>>>>>>>>>>>>>>
250-domen.ua Hello mxs.mail.ru [194.67.23.20]
250-SIZE 17825792
250-PIPELINING
250 HELP
250 OK
550 "Free"
503-All RCPT commands were rejected with this error:
503-"Free"
503 Valid RCPT command must precede DATA
500 unrecognized command
500 unrecognized command
221 domen.ua closing connection

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Не работают ACL в Exim

Непрочитанное сообщение dikens3 » 2008-01-21 16:16:56

H=mxs.mail.ru [194.67.23.20] F=<user@mail.ru> rejected RCPT admin@domen.ua: "Free"
Это что за фильтр, который выдаёт это сообщение?

И это самое, что за фильтр такой из одной команды deny?
processing "deny"
deny: condition test succeeded
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Midnight-cat
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-01-15 11:38:48
Откуда: Украина

Re: Не работают ACL в Exim

Непрочитанное сообщение Midnight-cat » 2008-01-21 16:46:43

Ошибочка вышла, забыла убрать всякие тестовые фильтры, но суть это не меняет, асл все равно не ходит, хотя логи поменялись:

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

using ACL "acl_check_rcpt"
processing "accept"
check hosts = :
host in ":"? no (end of list)
accept: condition test failed
processing "deny"
check domains = +local_domains
domen.ua in "domen.ua"? yes (matched "domen.ua")
domen.ua in "+local_domains"? yes (matched "+local_domains")
check local_parts = ^[.] : ^.*[@%!/|]
admin in "^[.] : ^.*[@%!/|]"? no (end of list)
deny: condition test failed
processing "deny"
check domains = !+local_domains
cached yes match for +local_domains
cached lookup data = NULL
domen.ua in "!+local_domains"? no (matched "!+local_domains" - cached)
deny: condition test failed
processing "accept"
check local_parts = postmaster
admin in "postmaster"? no (end of list)
accept: condition test failed
processing "deny"
check hosts = *:!+relay_from_hosts
host in "*:!+relay_from_hosts"? yes (matched "*")
check condition = ${if eq{$sender_helo_name}{$sender_host_address}{true}{false}}
                = false
deny: condition test failed
processing "warn"
check set acl_m0 = 140s
warn: condition test succeeded
processing "require"
check verify = sender


Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Не работают ACL в Exim

Непрочитанное сообщение dikens3 » 2008-01-21 17:40:12

check condition = ${if eq{$sender_helo_name}{$sender_host_address}{true}{false}}
= false
Ну 2-е переменные не совпадают, что тут не так?

К примеру можно записать эти переменные в читабельном виде используя logwrite (К примеру в panic).
deny message = "Не надо пихать свой IP в качестве HELO!"
hosts = *:!+relay_from_hosts
logwrite = :panic:"HELO=$sender_helo_name, HOST=$sender_host_address"
condition = ${if eq{$sender_helo_name}\
{$sender_host_address}{true}{false}}
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Midnight-cat
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-01-15 11:38:48
Откуда: Украина

Re: Не работают ACL в Exim

Непрочитанное сообщение Midnight-cat » 2008-01-21 18:02:09

dikens3 писал(а):
check condition = ${if eq{$sender_helo_name}{$sender_host_address}{true}{false}}
= false
Ну 2-е переменные не совпадают, что тут не так?
Так после несовпадения должна быть реакция в виде отбрасывания таких писем, или для этого еще что-то надо дописать?

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

deny: condition test failed
Вот это значит, что тест провален и дальше пропускает письмо.

И почему задержка по времени не работает, непонятно.

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

check set acl_m0 = 140s
warn: condition test succeeded
Т.е. все прекрасно, тест пройден, а задержка по времени где?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Не работают ACL в Exim

Непрочитанное сообщение dikens3 » 2008-01-22 0:34:22

Так после несовпадения должна быть реакция в виде отбрасывания таких писем, или для этого еще что-то надо дописать?
deny: condition test failed
Непонимание работы ACL. (*читать тут )

accept, deny, warn и т.п. - действие при выполнении всех перечисленных условий!!!

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

deny
      Чё-то там
      Чё-то там
      check condition = ${if eq{$sender_helo_name}{$sender_host_address}{true}{false}}
      = false
Как думаешь все условия выполнены или же последнее НЕвыполнено?
check set acl_m0 = 140s
warn: condition test succeeded

Т.е. все прекрасно, тест пройден, а задержка по времени где?
Во время тестирования задержка не работает.
И пишется правильно так:

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

warn   delay = 30s
А в твоём случае переменной m0 присвоено значение 140s - и всё. :-)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Midnight-cat
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-01-15 11:38:48
Откуда: Украина

Re: Не работают ACL в Exim

Непрочитанное сообщение Midnight-cat » 2008-01-22 11:38:36

Поняла, где ошибка с задержкой. Я эту строчку вообще забыла дописать.

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

warn   delay = 30s
Про acl уже читаю. Как всегда, проблема собственной невнимательности и криворукости :oops:
Спасибо большое за подсказки!

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

Re: Не работают ACL в Exim

Непрочитанное сообщение Alex Keda » 2008-01-22 11:55:40

Midnight-cat писал(а):Поняла, где ошибка с задержкой. Я эту строчку вообще забыла дописать.
ники нынче абстрактные...
тока по тексту и догадаешься кто какого пола =)
Убей их всех! Бог потом рассортирует...