Gostaria de registrar o ID da mensagem, o endereço IP do cliente e o remetente autenticado com cada transação SMTP, conforme discutido aqui:
Registrando informações de autenticação no sendmail
Implementei a solução, porém ela registra todas as transações, não apenas aquelas que usaram autenticação. Eu preferiria registrar apenas entradas onde a autenticação fosse usada.
Meu objetivo é detectar contas de e-mail phishing por meio de análise de log.
As entradas que gostaria de manter ficam assim:
Sep 23 06:31:40 mail sm-mta[20443]: r8NDVdM3020443: Authenticated-by:LOGIN,username,0,,[192.168.1.10]
As entradas que desejo pular não possuem o mecanismo e o nome de usuário (,,,,):
Sep 23 06:31:44 mail sm-mta[20475]: r8NDVh3m020475: Authenticated-by:,,,,messagent.computerdealernews.com.
O que procuro principalmente é o ID da mensagem, o nome de usuário de autenticação e o endereço IP do remetente, em uma linha. Não parece ter o endereço IP correto.
Se você pudesse me indicar alguma informação de referência sobre isso, isso ajudaria.
Configuração de trabalho
Esta configuração imprime o que eu quero.
Scheck_data
R$* $: <$&{auth_authen}> $1
R<$+> $* $: <$1> $2 $(log Authenticated-by: $&{auth_type}, $&{auth_authen}, $&{client_addr}, $&{f} $)
R<$*> $* $: $2
Encontrei client_addr e outras macros em umSite sendmail da IBM.
Obrigado.
Responder1
O código abaixo deve gerar entradas de log somente quando ${auth_authen} não estiver vazio.
AVISO:Coloque tabulações (\t) antes de $: [não consegui]
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