Регистрация информации об аутентификации в sendmail — продолжение

Регистрация информации об аутентификации в sendmail — продолжение

Я хотел бы регистрировать идентификатор сообщения, IP-адрес клиента и аутентифицированного отправителя при каждой транзакции SMTP, примерно так, как описано здесь:

Регистрация информации об аутентификации в sendmail

Я реализовал решение, однако оно регистрирует все транзакции, а не только те, которые использовали аутентификацию. Я бы предпочел регистрировать только записи, где использовалась аутентификация.

Моя цель — научиться обнаруживать фишинговые аккаунты электронной почты с помощью анализа журналов.

Записи, которые я хотел бы сохранить, выглядят так:

Sep 23 06:31:40 mail sm-mta[20443]: r8NDVdM3020443: Authenticated-by:LOGIN,username,0,,[192.168.1.10]

В записях, которые я хочу пропустить, отсутствуют механизм и имя пользователя (,,,,):

Sep 23 06:31:44 mail sm-mta[20475]: r8NDVh3m020475: Authenticated-by:,,,,messagent.computerdealernews.com.

В основном я ищу идентификатор сообщения, имя пользователя аутентификации и IP-адрес отправителя в одной строке. Кажется, у него нет правильного IP-адреса.

Если бы вы могли указать мне на какую-либо справочную информацию по этому вопросу, это было бы полезно.

Рабочая конфигурация

Эта конфигурация выводит на печать то, что мне нужно.

Scheck_data
R$* $: <$&{auth_authen}> $1
R<$+> $*    $: <$1> $2 $(log Authenticated-by: $&{auth_type}, $&{auth_authen}, $&{client_addr}, $&{f} $)
R<$*> $*    $: $2

Я нашел client_addr и другие макросы наСайт IBM sendmail.

Спасибо.

решение1

Приведенный ниже код должен генерировать записи журнала только в том случае, если ${auth_authen} не пуст.
ПРЕДУПРЕЖДЕНИЕ:Поставьте табуляцию (\t) перед $: [У меня не получилось]

LOCAL_RULESETS
Scheck_data
R$*       $: <$&{auth_authen}> $1
R<$+> $*  $: <$1> $2 $(log Authenticated-by: $&{auth_type}, $&{auth_authen}, $&{auth_ssf}, $&{auth_author}, $&{mail_mailer}, $&{mail_host}, $&{mail_addr} $)
R<$*> $*  $: $2

Связанный контент