АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

avenger - Интернет в облаке

Запустите avenger в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это командный мститель, который можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


мститель - Mail Avenger

ОПИСАНИЕ


Mail Avenger - это SMTP-протокол с широкими возможностями настройки, независимый от MTA (Simple Mail Transport).
Протокол), предназначенный для фильтрации и борьбы со спамом. до прием входящей почты
с клиентской машины. мститель сценарий запускается от имени каждого пользователя, чтобы решить,
принимать входящую почту.

Когда клиент пытается отправить почту пользователю в системе, SMTP-демон avenger,
asmtpd, запускает avenger для обработки файла .avenger / rcpt в домашнем каталоге пользователя. Тот
файл, сценарий оболочки с доступом к специальным функциям, определяет, как SMTP-сервер
должен продолжаться. Возможные результаты:

· Временно принять почту, вернувшись к системным правилам по умолчанию

· Примите почту немедленно, без дальнейших проверок

· Немедленно отклонить письмо

· Отложить почту, попросив клиента отправить ее позже

· Перенаправить обработку на другое локальное имя. Имя может быть другим адресом электронной почты
принадлежащий текущему пользователю, или адрес электронной почты, принадлежащий специальному
AvengerПользователь Пользователь. В последнем случае мститель будет повторно запущен с другим идентификатором пользователя,
и, следовательно, может, например, использовать утилиты, которые поддерживают состояние для нескольких пользователей
(при условии, что все они перенаправляют обработку одинаково).

· Выполните правило «бодитеста». При таком исходе транзакция SMTP продолжается до
получить все содержимое почтового сообщения, после чего программа запускается на
содержимое почтового сообщения. Эта программа может решить, основываясь на содержании,
принять, отклонить, отложить или отбросить сообщение без уведомления.

Mail Avenger обычно должен иметь Разделитель характер, позволяющий каждому
пользователю поддерживать несколько адресов электронной почты. С помощью sendmail Разделитель обычно "+",
в qmail это обычно "-". Если разделитель «+», то любое электронное письмо, отправленное на
пользователь +Ext@Ваш хозяин будут обрабатываться файлами в пользователь's .мститель каталог.

Avenger сначала проверяет файл с именем rcpt + ext в пользователе .мститель каталог, затем для
rcpt + по умолчанию. Если Ext сам содержит символ-разделитель, например
пользователь +ext1+ext2@Ваш хозяин, avenger сначала проверит rcpt + ext1 + ext2тогда для
rcpt + ext1 + по умолчаниютогда для rcpt + по умолчанию. Тот же алгоритм распространяется на произвольно
много символов-разделителей. (Если разделителем является «-», просто замените «+» на «-» во всем
приведенное выше описание, в том числе в именах файлов, таких как rcpt-по умолчанию.)

Если почта отклоняется получателем, проверяет, но адрес отправителя сообщения является локальным
и Пользовательская почта составляет 1 дюйма asmtpd.conf (что не по умолчанию), то, прежде чем отклонять почту,
avenger будет запущен от имени отправляющего пользователя. В этом случае адрес будет
анализируется, как указано выше, но avenger будет искать правила в файлах, начинающихся почта вместо RCPT.
Этот механизм может использоваться локальными пользователями, которые хотят ретранслировать почту через сервер из
ненадежный IP-адрес.

Посмотрите на график почта файлы конфигурации, каждый пользователь может, например, настроить почта + ... файл
принимать почту с IP-адреса, которому он доверяет, даже если этому адресу не доверяет
все пользователи. (В качестве альтернативы, используя такие инструменты, как macutil, пользователь может настроить ретрансляцию
письмо, в котором отправитель конверта содержит криптографический код, проверенный почта + ...
сценарий.)

Вывод ошибок сценария avenger rcpt + ext or почта + доб перенаправляется в файл с именем
журнал + доб в том же каталоге для использования при отладке.

Мститель СИНТАКСИС


Файлы конфигурации Avenger - это просто сценарии оболочки, использующие синтаксис, описанный в sh(1).
Каждая строка файла содержит назначение переменной, команду или функцию для запуска.
Скрипты могут дополнительно использовать ряд специфичных для Avenger функций и переменных.
В этом разделе описаны функции мстителя. В следующих двух разделах описываются переменные.

ошибка
Определенные условия ошибки приводят к тому, что Mail Avenger отклоняет почту по умолчанию, если только
сообщение явно принято через принимать или успешный боди-тест чек. Эти
условия обозначены MAIL_ERROR переменная окружения, описанная ниже. Если
ваш скрипт либо отклоняет почту, либо переходит к поведению по умолчанию, есть
часто нет причин запускать тесты для сообщения, которое в конечном итоге будет отклонено в любом случае.
ошибка немедленно выходит с ошибкой по умолчанию, если по умолчанию было бы отклонить или
отложить почту.

принимать [сообщение]
Немедленно принимает сообщение (без возврата к каким-либо правилам по умолчанию). Если
сообщение отправлено, оно будет возвращено клиенту SMTP. Сообщение по умолчанию
"в порядке".

отвергать [сообщение]
Отклонить письмо с помощью сообщение. (Сообщение по умолчанию - "команда отклонена для политики
причины »).

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

боди-тест команду [аргумент ...]
Примите текущую команду SMTP «RCPT». Однако, как только все почтовое сообщение было
полученный с помощью команды SMTP "DATA", запустите команду с сообщением в качестве стандарта
Вход. В зависимости от статуса выхода команду вернуться к команде клиента "ДАННЫЕ"
либо успех, либо временная, либо постоянная неудача. Код выхода 0 означает принятие почты,
100 означает отклонение, 111 означает отклонение с кодом временной ошибки (т. Е. Отложить отправку почты).
См. Описание боди-тест в описании интерфейса asmtpd / avenger для получения дополнительной информации
информация о боди-тест (поскольку эта функция напрямую вызывает боди-тест в asmtpd).

Вывод ошибок из команду будет перенаправлен в тот же файл журнала, что и вывод
rcpt + ... сценарий avenger, вызывающий боди-тест функция. Стандартный выход команду
будет включено как диагностическое сообщение о недоставке, если код выхода откладывается или отклоняется
Почта.

Обратите внимание, что команду и аргументы, переданные в боди-тест будет запущен оболочкой.
Таким образом, важно не передавать аргументы, которые могут содержать оболочку
метасимволы, такие как ">" и "$".

переориентировать локальным
Завершите обработку и повторно запустите avenger, как если бы почта отправлялась другому
username локальным (возможно, принадлежащие к особому AvengerПользователь Пользователь). Увидеть
описание переориентировать в описании интерфейса asmtpd / avenger для получения дополнительной информации
информация о переориентировать (поскольку эта функция напрямую вызывает переориентировать в asmtpd).

серый список [ключ отправителя]
Эта команда откладывает почту при первом получении почты от определенного отправителя в
конкретный IP-адрес. Однако через определенный промежуток времени greylist_delay, Если
клиент повторно отправит письмо, оно будет принято. Более того, с этого момента все
почта будет немедленно принята от этого отправителя и IP-адреса, если отправитель
прекращает отправку почты на период серый список_ttl2 или больше. Но если после отправки
первоначальное, отложенное письмо, клиент не пытается повторить попытку в течение
серый список_ttl1, то любая запись клиента будет удалена, и в следующий раз
пытается отправить почту, она будет отложена снова.

Параметры можно настроить, задав переменные в скрипте. Значения по умолчанию
составляют:

greylist_delay = 30m # Время подождать, прежде чем разрешить сообщение
greylist_ttl1 = 5h # Как долго запоминать отправителей впервые
greylist_ttl2 = 36D # Как долго запоминать отправителей ОК

m означает минуты, h часов, и D дней. Полный список разрешенных суффиксов см.
документация для dbutil(1) (в частности, для --истекает опция).

ключ отправителя, если указан, используется для идентификации отправителя. Значение по умолчанию -
"$ CLIENT_IP $ RECIPIENT $ SENDER". Если, например, вы хотите записать только первый
24 бита IP-адреса и не заботясь о получателе, вы можете использовать команду:

серый список "$ {CLIENT_IP%. *} $ SENDER "

сетвары
Все функции, которые устанавливают переменную с помощью внешнего запроса в asmtpd, являются
выполняется асинхронно. сетвары на самом деле ждет результатов и устанавливает значения
эти переменные. Таким образом, ряд потенциально медленных запросов (например, DNS
поиски) могут быть инициированы одновременно, и их задержки перекрываются. Однако один
не забудьте позвонить сетвары, или еще переменные, которые должны содержать результаты
операции останутся неустановленными.

DNS вар напишите доменное имя
Выполняет поиск в DNS доменное имя для записей типа напишите, и присваивает результат
изменять вар когда ты звонишь сетвары. напишите должен быть одним из a, mx, PTRили текст (ниже-
только чехол).

руб [-ипф] вар домен
Ищет текущего отправителя почты в черном списке в реальном времени (RBL). домен это
доменное имя RBL (например, «bl.spamcop.net»). Если отправитель указан, установите вар в
результат поиска DNS при следующем звонке сетвары. -i ищет IP отправителя
адрес (по умолчанию, если не указаны параметры). -p ищет домен отправителя
имя (подтвержденная запись DNS PTR). -f ищет доменное имя отправителя конверта в
руб.

спф0 вар [spf-механизм ...]
коэффициент пусковой мощности вар [spf-механизм ...]
Проверяет отправителя на произвольный запрос, сформулированный на языке SPF. Это
мощный способ занести в белый или черный список определенных отправителей. Например, предположим, что вы
хотите принимать любую почту с машин из списка, поддерживаемого trust-forwarder.org,
принимать почту с любого компьютера, имя которого оканчивается на yahoo.com, отклонять любую почту от пользователей в
spamcop RBL, а для других пользователей вернитесь к общесистемным правилам по умолчанию. Ты
может использовать следующие RCPT файл:

spf MYSPF + включает: spf.trusted-forwarder.org \
+ ptr: yahoo.com -exists:% {ir} .bl.spamcop.net? all
сетвары
case "$ MYSPF" в
проходить)
принять "ты мне нравишься"
;;
неудача)
отклонить "Ты мне не нравишься"
;;
ошибка)
# Обратите внимание, здесь может произойти сбой по умолчанию
отложить "Временная ошибка DNS"
;;
ESAC

Обратите внимание, что команды спф0 и коэффициент пусковой мощности являются синонимами, но коэффициент пусковой мощности устарел, потому что в
более поздний выпуск Mail Avenger коэффициент пусковой мощности станет синонимом спф1.

спф1 вар [spf-механизм ...]
Выполняет те же тесты, что и коэффициент пусковой мощности директива, но возвращает строки результата Ничто,
Нейтральные, Проходить, Провал, Софтфейл, ТемпОшибкаи Пермская ошибка вместо никто, нейтральный,
pass, неудача, софтфейл, ошибкаи неизвестный.

Мститель ПЕРЕМЕННЫЕ


Эти переменные устанавливаются сценарием avenger. Кроме того, asmtpd устанавливает ряд
переменные окружения перед запуском avenger. Они описаны в следующем разделе,
СРЕДА.

ФИЛЭКС
Расширение файла, который в данный момент обрабатывается. Например, если файл rcpt + ext is
в процессе обработки будет установлено значение «+ ext». Пусто при обработке просто RCPT (или почта).
Может также содержать по умолчанию когда запускается файл правил по умолчанию для некоторого суффикса.

ПРЕФИКС
СУФФИКС
Предполагая, что разделитель - "+", при обработке файла rcpt + base + по умолчанию or
почта + база + по умолчанию, ПРЕФИКС на Использование темпера с изогнутым основанием, В то время СУФФИКС устанавливается на часть
имя для которого по умолчанию был заменен. Когда файл не заканчивается на по умолчанию,
СУФФИКС пусто. Когда файл просто RCPT без расширения, оба ПРЕФИКС и СУФФИКС
пусты. Когда СУФФИКС сам содержит символ "+", СУФФИКС1 содержит в части
of СУФФИКС после первого символа "+", СУФФИКС2 содержит часть после второго
«+» и так далее для каждого символа «+» в суффиксе.

ОКРУЖАЮЩАЯ СРЕДА


AUTH_USER
Если Mail Avenger был скомпилирован с поддержкой SASL (что не по умолчанию, если вы не
поставил --enable-sasl аргумент "настроить"), и если клиент успешно
аутентифицируется на сервере с помощью SASL, затем AUTH_USER будет установлено имя
аутентифицированный пользователь.

AVENGER_MODE
Установите "rcpt" при проверке, должен ли получатель получать почту. Установить на "почту"
(возможно, после сбоя проверки "rcpt") при проверке, следует ли ретранслировать почту (возможно,
от имени локального пользователя).

АВУСЕР
Эффективное локальное имя пользователя, для которого запускается Avenger. Обычно это будет
такой же как:

$ USER $ {PREFIX + $ SEPARATOR} $ PREFIX \
$ {SUFFIX + $ SEPARATOR} $ SUFFIX

Однако для специальных файлов Avenger, таких как неизвестный и по умолчанию, он может содержать полезные
информации, потому что в отличие от RECIPIENT_LOCAL переменная окружения, АВУСЕР отражает
замены из Mail Avenger доменов и псевдонимы файлы.

КЛИЕНТ
Эта переменная содержит имя клиентской машины, как обычно сообщается в
Заголовки "Получено:". Его значение имеет вид:

[пользователь@]кашель

пользователь это имя пользователя для соединения, о котором сообщает клиент, если клиент
поддерживает протокол идентификации RFC 1413, в противном случае он опускается. кашель - это
проверенное имя хоста DNS для IP, если asmtpd может его найти. В противном случае это просто
числовой IP-адрес.

CLIENT_COLONSPACE
Установите значение 1, если клиент включил пробел между двоеточием в команде "MAIL FROM:"
или «RCPT TO:» и последующий «<», начинающийся с адреса электронной почты.

CLIENT_DNSFAIL
If РазрешитьDNSFail установлен на 1 в asmtpd.conf файл и преобразование IP клиента в
hostname возвращает временную ошибку, тогда этой переменной будет присвоено описание
Ошибка.

CLIENT_HELO
Установите аргумент, который клиент предоставил команде SMTP «HELO» или «EHLO».

CLIENT_IP
Установите IP-адрес клиента.

ИМЯ КЛИЕНТА
Установите проверенное DNS-имя клиента, если asmtpd может его найти.

CLIENT_NETHOPS
Установите количество сетевых переходов между сервером и клиентом, если asmtpd может получить
клиент или его брандмауэр, чтобы вернуть ICMP пункт назначения недоступен (пакет типа 3)
в ответ на зонд UDP. Установлено это или нет, будет зависеть от брандмауэра.
конфигурации.

CLIENT_NETPATH
Установите столько промежуточных сетевых переходов, сколько asmtpd может определить между сервером.
и клиент. Насколько близко к клиенту сможет проверить asmtpd, будет зависеть от брандмауэров.

КЛИЕНТ_ПИПЕЛИНИНГ
Устанавливается в 1, если клиент записывал данные после SMTP. HELO or ЭХЛО команда, прежде чем
получение его ответа. Правильный клиент SMTP не должен выполнять команды по конвейеру до тех пор, пока
после получения результата HELO команда и проверка того, что сервер принимает
конвейерные команды.

CLIENT_PORT
Номер TCP-порта клиента.

CLIENT_POST
Установите в 1, если клиент отправил команду «POST» в какой-то момент во время сеанса SMTP.
«POST» не является допустимой командой SMTP; это HTTP-команда. Однако один метод для
рассылка спама предполагает использование открытого веб-прокси для «отправки» сеанса SMTP на почту
сервер. Начальные заголовки HTTP (включая команду HTTP post) просто вызывают SMTP
синтаксические ошибки, а тело команды POST содержит команды SMTP. Проверяя
домен CLIENT_POST переменная окружения, вы должны отклонить почту, отправленную таким образом.

CLIENT_REVIP
Значение CLIENT_IP с обратным порядком байтов. Подходит для добавления
в ".in-addr.arpa" или в домен RBL для выполнения поиска DNS на основе IP-адреса.

CLIENT_SYNFP
Содержит отпечаток пальца, абстрагирующий содержимое исходного TCP SYN-пакета,
клиент отправлен для установления TCP-соединения. Точное содержимое SYN-пакетов
зависит от операционной системы и версии клиента и, следовательно, может показывать
интересная информация о типе клиента, подключающегося к вашему почтовому серверу. В
формат отпечатка пальца:

WWWW:ТТТ:D:ss:ООО

Где поля следующие:

WWWW
начальный размер окна TCP

ТТТ IP-адрес полученного пакета

D бит IP "не фрагментировать"

ss общий размер SYN-пакета (включая IP-заголовок)

ООО список параметров TCP, разделенных запятыми, как показано ниже:

N Вариант NOP

WNNN
опция масштабирования окна со значением NNN

MNNN
максимальное значение размера сегмента NNN

S Выборочный ACK OK

T опция отметки времени

T0 опция отметки времени с нулевым значением

CLIENT_SYNOS
Если asmtpd может угадать операционную систему клиента на основе CLIENT_SYNFP, он установит
CLIENT_SYNOS к значению этого предположения. Например, чтобы внести почту в серый список из Windows
машин, вы можете запускать:

match -q "* Windows *" "$ CLIENT_SYNOS" && серый список

ДАННЫЕ_БАЙТЫ
Эта переменная на самом деле не является переменной мстителя, так как она доступна только в боди-тест
команды. Он определяет количество байтов сообщения, переданного в ДАННЫХ SMTP.
команда, но после преобразования последовательностей CR NL в NL. Грубо говоря вот как
в сообщении много байтов, включая все заголовки после X-Avenger :, SPF-
Получено или Получено: заголовок.

ЕТЦДИР
Значение И т. д. каталог из файла конфигурации asmtpd (или / и т. д. / мститель по умолчанию).

EXT Когда мститель работает от имени пользователя EXT устанавливается в часть адреса, которая
определяет суффикс RCPT or почта файл. Например, предположим Разделитель является "-"
и получатель список-подписка @кашель, Где кашель это не виртуальный домен. Если
ПсевдонимФайл содержит:

список: user-mylist

Тогда мститель будет запущен от имени «пользователя» (поскольку расширение псевдонима дает Пользователь-
mylist-подписка). EXT будет установлен на mylist-подписка.

Обратите внимание, что EXT пусто, когда нет суффикса, и что он равен имени
системный файл, обрабатываемый при запуске avenger в системном файле. Нравится ПОЛУЧАТЕЛЬ,
эта переменная не установлена ​​для боди-тест команды.

ВЕДУЩИЙ
Установите имя локального хоста, как указано в Имя хоста директивы в
avenger.conf.

MAIL_ERROR
Эта переменная устанавливается, когда SPF-адрес отправителя неудача, или когда asmtpd
невозможно отправить сообщение о недоставке на адрес отправителя. В любом случае Mail Avenger
отклонит почту, если скрипт перестанет работать по умолчанию.

MSGID
Случайно сгенерированная строка для этого сообщения, которая может быть полезна для сопоставления вызовов.
для rcpt скриптов со скриптами bodytest. Обратите внимание, что это не связано с идентификатором сообщения.
заголовок сообщения, но отображается в заголовке Received, который Mail Avenger
вставки.

МАЙП
IP-адрес локального конца SMTP TCP-соединения.

МАЙПОРТ
Номер TCP-порта локального конца SMTP-TCP-соединения. Обычно это 25.

ПОЛУЧАТЕЛЬ
Получатель конверта сообщения. Обратите внимание, что эта переменная среды не
подарок для боди-тест программ, поскольку такие программы могут запускаться от имени нескольких
пользователей.

RECIPIENT_HOST
Доменная часть ПОЛУЧАТЕЛЬ, в нижнем регистре - т. е. кашель когда ПОЛУЧАТЕЛЬ is
локальным@кашель. Не присутствует для боди-тест программы, как указано в описании
ПОЛУЧАТЕЛЬ.

RECIPIENT_LOCAL
Местная часть ПОЛУЧАТЕЛЬ, в нижнем регистре - т. е. локальным когда ПОЛУЧАТЕЛЬ is
локальным@кашель. Не присутствует для боди-тест программы, как указано в описании
ПОЛУЧАТЕЛЬ.

ОТПРАВИТЕЛЬ
Отправитель envolope этого почтового сообщения (т. Е. Аргумент, предоставленный клиентом для
команда SMTP "ПОЧТА ОТ:".)

SENDER_HOST
Часть имени хоста ОТПРАВИТЕЛЬ, преобразованный в нижний регистр (т. е. кашель in пользователь@кашель).

SENDER_LOCAL
Местная часть ОТПРАВИТЕЛЬ, преобразованный в нижний регистр (т. е. пользователь in пользователь@кашель).

SENDER_MXES
Список MX-записей DNS для SENDER_HOST, если это имя хоста имеет записи MX.

SENDER_BOUNCERES
Для отправителей непустых конвертов asmtpd пытается проверить, возможно ли доставить
отказываться от сообщений для отправителя. Если не, SENDER_BOUNCERES установлен трехзначный SMTP
код ошибки. Если первая цифра 4, ошибка временная. Если первая цифра
5 ошибка была постоянной. Обратите внимание, что отказ принять сообщения о недоставке считается
a MAIL_ERROR как описано выше, и по умолчанию почта будет отклоняться.

РАЗДЕЛИТЕЛЬ
Значение Разделитель из файла конфигурации asmtpd. Нет дефолта
(РАЗДЕЛИТЕЛЬ не будет установлен, если нет Разделитель указано в конфигурационном файле).
Однако он должен быть настроен на «+» с sendmail и «-» с qmail.

SPF0
SPF Результат выполнения проверки SPF сообщения. Будет одним из: никто, нейтральный,
pass, неудача, софтфейл, ошибкаили неизвестный, Обратите внимание, что SPF0 и SPF являются синонимами, но
SPF устарела, поскольку будущий выпуск Mail Avenger сделает SPF синоним
SPF1.

SPF1
Также результат проверки SPF сообщения, но возвращает другие имена.
чтобы результаты были совместимы с более новыми версиями протокола SPF
Спецификация. Новые имена Ничто, Нейтральные, Проходить, Провал, Софтфейл, ТемпОшибкаи
Пермская ошибка.

SPF_EXPL
Строка объяснения, связанная с плохим статусом SPF.

SSL_CIPHER
Если Mail Avenger был скомпилирован с поддержкой команды STARTTLS (с использованием
--enable-ssl возможность «настроить»), и клиент обменивается данными через SSL / TLS,
эта переменная будет содержать текстовое описание алгоритма.

SSL_CIPHER_BITS
SSL_ALG_BITS
SSL_CIPHER_BITS содержит количество битов секретного ключа, используемых шифрами SSL / TLS.
SSL_ALG_BITS - количество битов, используемых алгоритмом. Например, если вы
с использованием 128-битного RC4 с 88 битами, отправленными в виде открытого текста, SSL_CIPHER_BITS будет всего 40,
так как это эффективная безопасность, а SSL_ALG_BITS будет 128.

SSL_ISSUER
SSL_ISSUER_DN
Если клиент успешно аутентифицировал себя с помощью сертификата SSL,
SSL_ISSUER будет установлено на общее имя лица, подписавшего сертификат, а SSL_ISSUER_DN
будет настроено на компактное представление полного отличительного имени подписавшего. В
полное отличительное имя находится в форме, выводимой командой:

openssl x509 -noout -эмитент -in cert.pem

Обратите внимание, что эта переменная в основном полезна, если SSLCAcert файл, который вы отправили на почту
Avenger содержит несколько центров сертификации или подписывает другие сертификаты CA.
Mail Avenger не примет клиентские сертификаты, если не узнает подписавшего
сертификата.

SSL_SUBJECT
SSL_SUBJECT_DN
Если клиент успешно аутентифицировал себя с помощью сертификата SSL,
SSL_SUBJECT будет установлено на общее имя клиента в сертификате, а
SSL_SUBJECT_DN будет настроено на компактное представление полной клиентской
выдающееся имя. Полное отличительное имя находится в форме, выводимой командой:

openssl x509 -noout -subject -in cert.pem

SSL_ВЕРСИЯ
Версия используемого протокола SSL / TLS.

УФЛАЙН
Строка "От" в mbox, подходящая для добавления к сообщению перед передачей сообщения.
в программу доставки. (Это в основном полезно для правил бодитеста.)

USER
Имя пользователя, под которым запущен avenger.

AVENGER / ASMTPD ИНТЕРФЕЙС


Avenger - это простой сценарий оболочки. Вы можете проверить файл, чтобы увидеть, что он делает.
Большинство интересных операций происходит либо в asmtpd, либо во внешних программах.
порожден мстителем. В этом разделе описывается интерфейс между asmtpd и avenger.

avenger наследует сокет домена unix, подключенный к asmtpd на его стандартном входе, и
вывод. Он отправляет команды asmtpd через этот сокет и аналогично считывает ответы от
Это. Чтобы избежать смешивания сообщений, отправляемых и отправляемых asmtpd, с выводом других
программы, которые вы запускаете, сценарий оболочки avenger реорганизует свои файловые дескрипторы, чтобы
что вся связь с asmtpd и от него происходит через файловый дескриптор номер 3.

Каждая команда состоит из одной строки, за которой следует новая строка (кроме возвращают команда,
который при желании может занимать несколько строк). Может быть, а может и не быть ответа, возможно
в зависимости от результата команды. Большинство ответов состоит из нуля или более строк
форма

ПЕРЕМЕННЫЕ=ценностное

ПЕРЕМЕННЫЕ обычно это имя переменной, которое было предоставлено как часть команды. В
Сценарий оболочки avenger записывает результаты, задавая переменную окружения ПЕРЕМЕННЫЕ в
ценностное , чтобы к нему могли получить доступ последующие строки скрипта.

Ответы отправляются в том порядке, в котором были получены соответствующие команды. Тем не мение,
asmtpd выполняет запросы асинхронно. Таким образом, можно выполнять несколько одновременных
операций (например, DNS-запросы или SPF-тесты) путем простого написания нескольких команд в
asmtpd до получения любого ответа.

Знак "." команда не работает, но asmtpd повторяет "." назад к мстителю в качестве ответа. Этот
позволяет синхронизировать состояние процесса мстителя после выполнения одной или нескольких команд.
Например, можно выполнить несколько запросов DNS для проверки различных RBL (в реальном времени
списки черных дыр), затем выдайте . команду, затем дождитесь ответов. Когда . возвращается,
все предыдущие команды также будут выполнены. Мститель сетвары команда просто отправляет
a ".", затем повторяется до тех пор, пока не будет считана ".", устанавливая переменные из любых предыдущих
команды, ответы на которые он читает в процессе.

Доступны следующие команды:

. Ассоциация . команда просто возвращается asmtpd.

боди-тест команду
Завершает текущий сценарий мстителя. Указывает, что asmtpd должен получить все тело
сообщения, затем запустите команду (под тем же идентификатором пользователя, что и текущий мститель
script) со всем почтовым сообщением в качестве стандартного ввода. asmtpd затем отвечает на
команда SMTP "DATA" на основе статуса выхода команду следующим образом:

0 Если команду выходит со статусом 0, asmtpd ответит на команду "DATA" с
успех (SMTP-код 250), и передаст сообщение в sendmail (или как вам угодно
сконфигурированы как Отправить письмо in asmtpd.conf) для доставки.

99 Если команду выходит со статусом 99, asmtpd все равно будет отвечать на команду "DATA"
с успешным кодом ответа 250, но не будет буферизовать данные. Либо команду
должно быть что-то сделал с данными, иначе сообщение будет потеряно.

100 (также 64, 65, 70, 76, 77, 78, 112)
If команду выходит со статусом 100 (или любым из вышеперечисленных статусов выхода), avenger будет
отклонить почту с жесткой ошибкой SMTP (код 554). Если команду написал вывод на свой
стандартный вывод, этот вывод будет возвращен почтовому клиенту. В противном случае,
asmtpd предоставит текст «содержимое сообщения отклонено».

111 (или любой другой статус выхода)
If команду завершается со статусом 111, результат такой же, как и со статусом выхода 100,
за исключением того, что asmtpd будет использовать временный код ошибки (451) вместо 554.

сигнал
If команду аварийно завершает работу из-за сигнала, asmtpd также будет использовать 451, но в
в этом случае выходные данные программы не будут передаваться клиенту. Вместо этого будет
верните описание проблемы.

Обратите внимание, что asmtpd может запускать только один боди-тест команда в сообщении. Если есть несколько
получатели сообщения, все должны работать одинаково боди-тест под тем же идентификатором пользователя. Если
два пользователя хотят запускать разные боди-тест команд, или даже запустить ту же команду под
разные идентификаторы пользователей, asmtpd отложит вторую команду SMTP "RCPT" с сообщением:

452 отправить отдельную копию сообщения этому пользователю

Это заставит почтовый клиент повторно отправить сообщение второму пользователю. К
избегайте принуждения клиентов к отправке нескольких копий сообщений, вы можете разместить боди-тест
команды в общесистемных файлах (например, по умолчанию файл правил) или используйте переориентировать
команда для перенаправления на AvengerПользователь, чтобы можно было запускать команды для нескольких пользователей
под AvengerПользователь ID пользователя.

Обратите внимание, что файловый дескриптор 0 унаследован команду открыт как для чтения, так и для
письмо. Таким образом, можно изменить сообщение до того, как оно будет помещено в очередь локальным
MTA. Команда Edinplace(1) полезно для пропускания сообщений через спам-фильтры.
которые аннотируют сообщения перед их буферизацией.

DNS-а ПЕРЕМЕННЫЕ доменное имя
Запрашивает, чтобы asmtpd выполнял поиск в DNS записей A (IPv4-адреса) на доменное имя.
Если такая запись A существует, ответ представляет собой список из одного или нескольких IP-адресов:

ПЕРЕМЕННЫЕ=айпи адрес ...

Если такой записи A не существует, ответ будет простым:

ПЕРЕМЕННЫЕ=

В стандартном сценарии мстителя это устанавливает ПЕРЕМЕННЫЕ в пустую строку. Если есть
временная ошибка в разрешении имен DNS, нет ответа, и, следовательно, с
сценарий мстителя по умолчанию ПЕРЕМЕННЫЕ останется неустановленным.

При проверке таких вещей, как RBL, рекомендуется не отклонять почту из-за
временная ошибка DNS. Вы можете использовать конструкцию оболочки $ {ПЕРЕМЕННЫЕ-по умолчанию} $ вернуть
$ПЕРЕМЕННЫЕ когда ПЕРЕМЕННЫЕ установлен, и по умолчанию когда ПЕРЕМЕННЫЕ не установлен. так же
${ПЕРЕМЕННЫЕ+набор} возвращается набор if ПЕРЕМЕННЫЕ устанавливается, а в противном случае - пустая строка.

Например, если bad-senders.org содержит список нежелательных хостов-отправителей:

echo dns-a BADSENDER "$ SENDER_HOST" .bad-senders.org> & 3
сетвары
test -n "$ BADSENDER" && reject "$ SENDER_HOST - плохой отправитель"
test -z "$ {BADSENDER + set}" \
&& defer "$ SENDER_HOST.bad-senders.org: ошибка DNS"

Обратите внимание, что при использовании сценария avenger уже есть функция руб проверить
RBL.

DNS-MX ПЕРЕМЕННЫЕ доменное имя
Похожий на что DNS-а, но ищет записи MX. Успешный ответ имеет форму:

ПЕРЕМЕННЫЕ=приоритет-1:хост-1 [приоритет-2:хост-2 ...]

где приоритет-1 является приоритетом MX для хост-1. Как и раньше, пустая строка указывает
записи MX не существуют, и отсутствие ответа указывает на ошибку.

DNS-указатель ПЕРЕМЕННЫЕ айпи адрес
Возвращает список проверенных имен хостов DNS для айпи адрес. Как и раньше, пустая строка
для ПЕРЕМЕННЫЕ указывает, что записи PTR не существуют, а отсутствие ответа указывает на ошибку.

DNS-текст ПЕРЕМЕННЫЕ доменное имя
Похож на другой DNS команд, но ищет запись типа TXT. Если несколько TXT
записи существуют, возвращает только один. Налагает некоторые ограничения на записи TXT, для
example не вернет тот, который содержит символ новой строки.

сетевой путь ПЕРЕМЕННЫЕ айпи адрес
Отображает сетевые переходы на айпи адрес (это похоже на систему трассировки
полезность, но более эффективная). Ответ имеет форму:

ПЕРЕМЕННЫЕ=# магазины hop1 hop2 ...

# магазины общее количество сетевых переходов до айпи адрес если asmtpd может это понять.
(Это не всегда будет возможно, если айпи адрес находится за брандмауэром.) Если asmtpd не может
выяснить это, значение -1. hop1 а остальные аргументы - это адреса
маршрутизаторов на пути к айпи адрес.

переориентировать локальным
Завершает текущий процесс мстителя и вместо этого обрабатывает почту, как если бы она
отправляется в локальным. Эта команда доступна только в режиме "rcpt", в отличие от
"почтовый" режим (в котором asmtpd запускает avenger, чтобы посмотреть, должен ли он ретранслировать почту для локального
пользователь на нелокальном клиентском компьютере).

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

Обратите внимание, что в то время как AvengerПользователь пользователь может перенаправлять другим пользователям, обычные пользователи могут
перенаправлять только на себя или AvengerПользователь.

возвращают код объяснение
or
возвращают код-объяснение
код-объяснение
код объяснение
Задает желаемый ответ SMTP. Также позволяет избежать дальнейшей обработки сообщения.
с общесистемными наборами правил по умолчанию (как обычно бывает, когда avenger просто выходит с
статус 0). код должно быть трехзначным числом, начинающимся 2, 4 или 5. (обычно 250 для
успех, 451, чтобы отложить почту, и 554, чтобы отклонить почту).

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

коэффициент пусковой мощности ПЕРЕМЕННЫЕ SPF-механизм ...
спф0 ПЕРЕМЕННЫЕ SPF-механизм ...
спф1 ПЕРЕМЕННЫЕ SPF-механизм ...
Оценивает почтовый клиент на основе механизмов SPF. Он вернет:

ПЕРЕМЕННЫЕ=расположение

где, для спф0, расположение один из: никто, нейтральный, pass, неудача, софтфейл, ошибка,
or неизвестный (хотя расположение никто на самом деле невозможно). За спф1,
эквивалент расположение имена Ничто, Нейтральные, Проходить, Провал, Софтфейл, ТемпОшибка,
Пермская ошибка. (В настоящее время коэффициент пусковой мощности это синоним спф0, но рекомендуется избегать
через коэффициент пусковой мощности так как в будущем выпуске он может стать псевдонимом для спф1.)

В качестве примера предположим, что ваше имя пользователя - «joe», Разделитель это "+", и у вас есть
подписался на ряд списков рассылки Yahoo, используя адрес электронной почты "joe + yahoo". Если
спамеры начали отправлять почту "joe + yahoo", вы бы хотели отклонять все письма на
этот адрес, за исключением того, что исходит от компьютеров Yahoo. Компьютеры Yahoo могут
соответствуют чему-либо, заканчивающемуся на ".yahoo.com" или имеющему префикс 24-битного IP-адреса с
любая из записей MX yahoo.com. Это можно сделать с помощью следующего скрипта в
$ HOME / .avenger / rcpt + Yahoo:

echo spf YAHOO ptr: yahoo.com mx: yahoo.com/24 -all> & 3
сетвары
чехол "$ YAHOO" в
неудача)
отклонить "Извините, этот личный псевдоним только для списков Yahoo"
;;
ошибка)
defer "Извините, временная ошибка DNS"
;;
ESAC

ПРИМЕРЫ


Если вы никогда не используете свой адрес электронной почты в качестве отправителя конверта, вы можете отклонить все сообщения о недоставке
адрес с этими командами в вашем RCPT файл:

test -z "$ SENDER" \
&& отклонить "<$ RECIPIENT> недействительный отправитель;" \
"не должен получать отказов"

Следующий скрипт запускает spamassassin (популярный спам-фильтр, доступный по адресу
<http://www.spamassassin.org/>) в теле сообщения, если только отправитель сообщения
имеет разрешение SPF или уже будет отклонено по умолчанию.

# Следующая строка сразу переходит к отклонению по умолчанию
# disposition, если SPF-адрес электронной почты не соответствует требованиям или
# отправитель не принимает сообщения о недоставке.
ошибка

test "$ SPF" = пройти \
|| bodytest edinplace -x 111 spamassassin -e 100

Следующий сценарий немедленно принимает любую почту с любого компьютера в Массачусетском технологическом институте или Нью-Йоркском университете (при условии, что
MAIL_ERROR не установлен), "серые списки" машин не в одном из этих доменов, и если
серый список проходит, не соответствует стандартным общесистемным правилам:

ошибка

spf ДОВЕРЕННЫЙ ptr: nyu.edu ptr: mit.edu? все
сетвары
test pass = "$ TRUSTED" && accept Trusted sender OK

greylist_delay = 5 м
серый список

Следующий сценарий отклоняет почту от клиентов, выполнивших команду SMTP «POST».
(которого не существует) или использовали агрессивную преждевременную конвейерную обработку команд. Если клиент
поместите пробел после двоеточия в SMTP-командах MAIL FROM: или RCPT TO:, он заносит в серый список
сообщение с использованием ключа, который включает отпечаток SYN и первые 24 бита IP-адреса.
Если сообщение SPF обработано ошибкой, сообщение откладывается. Если SPF
расположение сообщения - softfail или none, оно пропускает тело сообщения через
спамассасин.

ошибка

test -n "$ CLIENT_POST" -o -n "$ CLIENT_PIPELINING" \
&& отклонить "пожалуйста, без спама"

test -n "$ CLIENT_COLONSPACE" \
&& серый список "$ {CLIENT_IP%. *} $ CLIENT_SYNFP $ SENDER"

дело "$ SPF" в
ошибка)
defer "Временная ошибка при обработке записи SPF"
;;
softfail | нет)
bodytest edinplace -x 111 spamassassin -e 100
;;
ESAC

Если вы установите MACUTIL_SENDER переменная окружения должна быть "user+bounce+*@your.host.com"
и отправить почту с Macutil --Отправить письмо, вы можете создать следующие rcpt + bounce + по умолчанию в
принимать почту только на действительные адреса возврата.

macutil --check "$ SUFFIX"> / dev / null \
|| отклонить "<$ RECIPIENT> .. пользователь неизвестен"

В сочетании с этим скриптом вы можете отклонить сообщения о недоставке для обычного
адреса электронной почты с вашим RCPT скрипт, как описано в первом примере.

Этот пример немного сложнее и показывает, как использовать bodytest для отклонения почты.
на основе содержимого сообщения. Цель этой настройки - проверить каждое сообщение с помощью
Антивирусное программное обеспечение ClamAV (отhttp://www.clamav.net/>) и почту spamassassin
фильтр. Если сообщение содержит вирус или помечено как спам, его следует отклонить с помощью
объяснение проблемы. Строим сценарий оболочки, $ HOME / .avenger / body, бежать
эти тесты на телах сообщений. Скрипт можно вызвать со строкой

боди-тест $ HOME / .avenger / body

и на Вашем $ HOME / .avenger / rcpt файл. Или, в качестве альтернативы, сценарий может быть настроен для запуска
в общесистемной / и т. д. / мститель / по умолчанию файл (в этом случае вы хотите убедиться, что
AvengerПользователь может писать свой собственный домашний каталог для хранения файлов spamassassin). В
сценарий выглядит следующим образом:

#!/ Бен / ш
out = "` clamscan -i --no-summary --mbox - 2> & 1` "
если тест "$?" = 1; тогда
echo Это сообщение похоже заражено вирусом
printf "% s \ n" "$ out" \
| sed -e '/ Предупреждение: / d' -e 's / ^ [^:] *: //' | sort -u
выйти из 100
fi

out = "` edinplace -x 111 spamassassin -e 100` "
case "$?" в
0)
выйти из 0
;;
100)
echo Извините, spamassassin пометил ваше сообщение как спам
пока читал abc; делать
test "$ a $ b" = "Анализ содержания" && break
сделанный
читать
читать
читать
пока читал abc; делать
case "$ a" в
"")
перерыв
;;
- *)
;;
[0-9] *)
printf "% s \ n" "$ c"
;;
*)
printf "% s \ n" "$ a $ b $ c"
;;
ESAC
сделанный
выйти из 100
;;
*)
если test -n "$ out"; тогда
ошибка echo spamassassin:
printf "% s \ n" "$ out"
еще
ошибка эхо-системы в spamassassin
fi
выйти из 111
;;
ESAC

Первая половина этого скрипта запускает антивирусную программу clamscan, сохраняя вывод в
переменная выход. clamscan завершает работу с кодом 1 при обнаружении вируса, завершает работу с кодом 0 при успехе и
использует другие коды ошибок для обозначения различных системных ошибок. Мы хотим отклонять почту только в том случае, если
clamscan выходит с кодом 1. Когда это происходит, мы берем вывод clamscan, форматируем его.
более удобным способом (удаление предупреждений) и отправить его на стандартный вывод. An
пример SMTP-транзакции с использованием этого bodytest и обнаружения вируса будет выглядеть так:
это (проверено с помощью специальной тестовой строки EICAR, которая отмечает положительный результат с большинством вирусов
шашки):

ДАННЫЕ
354 введите почту, оканчиваясь на "." на отдельной линии
Тема: тест на эйкар

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
.
554-Похоже, это сообщение заражено вирусом.
554 Eicar-Test-Signature НАЙДЕН

Если проверка на вирусы не удалась, сценарий запускает сообщение через spamassassin, чтобы проверить наличие
спам. Обратите внимание, что spamassassin изменяет почтовое сообщение, поэтому мы должны запускать его с
edinplace. Также обратите внимание, что clamscan будет читать до конца входного файла, но это
хорошо, поскольку edinplace перематывает стандартный ввод. Мы используем -e флаг, чтобы сообщить spamassassin
чтобы выйти из 100 по спаму. Затем, если spamassassin выходит из 0, мы принимаем почту. Если он выходит с
все, кроме 100, что-то пошло не так, и мы временно откладываем почту. Обратите внимание, что это
на этом этапе также можно принять почту, но поскольку spamassassin редактирует
файл на месте, сообщение может быть обрезано, если spamassassin неожиданно завершает работу.

Если spamassassin выходит 100, мы отклоняем почту. Мы также сообщаем, почему spamassassin имеет
отклонил почту. Здесь мы снова пользуемся тем, что edinplace перематывает
стандартный ввод как до, так и после обработки сообщения. Поскольку файловый дескриптор
был перемотан, мы можем начать обработку сообщения по одной строке за раз с помощью оболочки
сценарий. Spamassassin по умолчанию (если вы не настроили его с помощью "report_safe 0")
содержит отчет о спаме, подобный этому:

Детали контент-анализа: (11.7 баллов, требуется 5.0)

pts название правила описание
---- --------------- ------------------------------- -------------------
1.0 RATWARE_RCVD_AT Обнаружен массовый отпечаток электронной почты (Получено @)
4.2 X_MESSAGE_INFO Обнаружен массовый отпечаток электронной почты (X-Message-Info)
0.0 MONEY_BACK BODY: гарантия возврата денег
0.5 BIZ_TLD URI: содержит URL-адрес в домене верхнего уровня BIZ
0.6 URIBL_SBL Содержит URL, указанный в черном списке SBL
[URI: crocpeptide.biz]
0.5 URIBL_WS_SURBL Содержит URL, указанный в черном списке WS SURBL
[URI: crocpeptide.biz]
...

Мы пропускаем заголовки и для каждого результата распечатываем его в сеансе SMTP.
Отрицательные результаты / результаты в белом списке (начинающиеся с -), мы не сообщаем и не комментируем строки (не
начиная с числа) печатаем с отступом. Типичный сеанс SMTP выглядит так (с использованием
специальная тестовая строка GTUBE, запускающая спам-фильтры):

ДАННЫЕ
354 введите почту, оканчиваясь на "." на отдельной линии
Тема: тест gtube

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
.
554-Извините, spamassassin пометил ваше сообщение как спам
554- Отсутствует Дата: заголовок
554 BODY: Общий тест на массовую рассылку незапрашиваемых писем

Вот пример использования клиентских сертификатов SSL для аутентификации. Если у тебя есть
частный ЦС с общим именем «Мой ЦС», который подписывает сертификаты всех ваших авторизованных
почтовых клиентов вы можете разместить в / и т. д. / мститель / реле позволить этим клиентам
реле:

test "My CA" = "$ SSL_ISSUER" \
&& accept "Ретрансляция разрешена для клиента $ SSL_SUBJECT"
отклонить "ретрансляция запрещена"

Используйте avenger онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    АстрОрзПлеер
    АстрОрзПлеер
    AstrOrz Player — бесплатный медиаплеер.
    программное обеспечение, частично основанное на WMP и VLC.
    плеер выполнен в минималистическом стиле, с
    более десяти цветов темы, а также может
    б ...
    Скачать AstrOrzPlayer
  • 2
    Movistartv
    Movistartv
    Kodi Movistar+ TV является дополнением для XBMC/
    Коди, разрешенный к использованию
    decodificador de los servicios IPTV де
    Movistar интегрирован в один город
    медиацентры ма...
    Скачать киностартв
  • 3
    Code :: Blocks
    Code :: Blocks
    Code::Blocks — это бесплатная программа с открытым исходным кодом,
    кроссплатформенная C, C++ и Fortran IDE
    построен для удовлетворения самых взыскательных потребностей
    своих пользователей. Он разработан, чтобы быть очень
    расширенный ...
    Код загрузки::Блоки
  • 4
    среди
    среди
    Среда или расширенный интерфейс Minecraft
    и отслеживание данных / структуры - это инструмент для
    отобразить обзор Minecraft
    мир, фактически не создавая его. Это
    жестяная банка ...
    Скачать Среди
  • 5
    МСИС2
    МСИС2
    MSYS2 - это набор инструментов и
    библиотеки, предоставляющие вам
    удобная среда для строительства,
    установка и запуск родной Windows
    программное обеспечение. Это кон ...
    Скачать MSYS2
  • 6
    libjpeg-турбо
    libjpeg-турбо
    libjpeg-turbo - это кодек изображений JPEG
    который использует инструкции SIMD (MMX, SSE2,
    NEON, AltiVec) для ускорения базового уровня
    Сжатие и распаковка JPEG на
    x86, x8 ...
    Скачать libjpeg-turbo
  • Больше »

Команды Linux

Ad