Тестирование acl
Опция командной строки “-bh” - предоставляет способ тестирования вашей конфигурации ACL локально, путём запуска поддельной сессии SMTP, с которой вы взаимодействуете. Хост “relay-test.mail-abuse.org” предоставляет сервис для проверки вашей релейной конфигурации (для получения дополнительных деталей, смотрите раздел 39.40).
Определение, когда используются acl
Для использования ACL, вы должны назвать их в одной из релевантных опций, в главной части конфигурации. Эти опции:
|
Например, если вы устанавливаете
acl_smtp_rcpt = small_acl |
то небольшой ACL, определённый выше, используется каждый раз когда exim получает команду RCPT в диалоге SMTP. Большинство тестов политик для входящих сообщений может быть сделано по прибытии команды RCPT. Отклонение RCPT должно вызвать ошибку адреса получателя содержащегося в команде RCPT, тогда как отклонение в другой момент времени может вызвать дальнейшие попытки MTA доставить сообщение. Поэтому, рекомендуется, чтобы вы делали как можно больше тестов во время RCPT.
Не-SMTP ACL
Не-SMTP ACL применяется ко всем входящим неинтерактивным сообщениям, т.е. к пакетному SMTP он применяется также как и к не-SMTP сообщениям. Эта ACL работает лишь до функции“local_scan()”. Любые виды отклонения сообщений рассматриваются как постоянные, поскольку нет способа послать код временнной ошибки для этих видов сообщений. Многие условия ACL (например, проверки хостов, и проверки состояния SMTP-соединения - типа шифрования и аутентификации) неуместны и запрещены в этой ACL.
Acl подключения
Проверка ACL заданная путём “acl_smtp_connect” происходит после теста заданного“host_reject_connection” (который, теперь, является аномалией) и любых сконфигурированных тестов TCP Wrappers.
ACL DATA
Две ACL ассоциированны с командой DATA, поскольку это - двухстадийная команда, с двумя ответами посылаемыми клиенту. Когда получена команда DATA, обрабатывается ACL заданная путём“acl_smtp_predata”. Это даёт вам контроль после всех команд RCPT, но до получения самого сообщения. Этим даётся возможность дать отрицательный ответ на команду DATA до того, как переданы даные. Строки заголовков добавляемые путём MAIL или RCPT ACL невидимы в это время, но любые, которые тут заданы, видимы при работе ACL “acl_smtp_data”. Вы не можете проверить содержимое сообщения, например, для проверки адресов в заголовках во время RCPT, или когда получена команда DATA. Такие тесты должны быть в ACL которая работает после получения сообщения, до посылки финального ответа на DATA. Для обоих этих ACL, невоозможно отклонить индивидуальных получателей. Ответ о ошибке отклоняет всё сообщение. К сожалению, известны MTA, которые некорректно обрабатывают жёсткий (5xx) ответ на команду DATA (до или после данных) - они пытаются оставить сообщение в своей очереди, и пробуют доставить его позже, но - это их проблема, хотя они впустую тратят ваши ресурсы.
ACL MIME
Опция “acl_smtp_mime” доступна лишь когда exim собран с расширением контентного сканирования. Для деталей, обратитесь к главе 40.
ACL QUIT
ACL для SMTP-команды QUIT, является аномальной, результат ACL не затрагивает код ответа на QUIT, который всегда 221. Таким образом, фактически, ACL не управляет каким-либо доступом. Поэтому, разрешены лишь имена команд “accept” и “warn”. Эта ACL может быть использована для задач типа специального логгинга конца SMTP-сессии. Например, вы можете использовать переменные ACL в другом ACL для подсчёта числа сообщений, получателей и т.п., и логгировать общее время QUIT используя один или более модификаторов“logwrite” в команде “warn”. Предупреждение: Для этого могут использоваться лишь переменные “$acl_cx”, поскольку переменные “$acl_mx” сбрасываются после каждого входящего сообщения. Вам не нужно ставить в конце “accept”, но если вы так поступаете, вы можете использовать модификатор “message”, для задания собственного текста, который посылается как часть 221 ответа на QUIT. Эта ACL запускается лишь для “нормального” QUIT. Для определённых случаев катастрофических ошибок (например, ошибки открытия лог-файла, или когда exim паадет в результате катастрофической ошибки), все SMTP команды от клиента получают ответ о временной ошибке, пока не будет передана команда QUIT, или соединение не закроется. В этих специальных случаях, ACL QUIT не запускается.
