AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 480000
Accepted
Hack Saw
Hack Saw
Asked: 2018-11-06 14:43:05 +0800 CST2018-11-06 14:43:05 +0800 CST 2018-11-06 14:43:05 +0800 CST

Como o log de autenticação SMTP do sendmail é controlado?

  • 772

Recebo uma tonelada de tentativas de login SMTP com falha. Eu realmente gostaria de me defender disso, mas o registro dessas tentativas é ruim.

Estou usando o sendmail 8.15, cyrus-sasl 2.1.26. A configuração do SASL é a maneira mais simples, padronizada, autenticando com pam_unix.

Recebo muitas mensagens de log como esta:

saslauthd[8292]: pam_unix(smtp:auth): check pass; user unknown
saslauthd[8292]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
saslauthd[8292]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
saslauthd[8292]: do_auth         : auth failure: [user=colby] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]

Isso significa que, embora eu saiba que tentativas falsas de login estão acontecendo, não posso fazer nada a respeito, como fazer com que o fail2ban as aprisione.

Eu realmente não posso dizer se o problema é que o Sendmail está dizendo coisas ao pam_unix, e está despejando-as, ou se o sendmail não está dizendo ao pam sobre onde a tentativa está sendo feita.

O que eu quero é que as tentativas de autenticação sejam registradas com o endereço IP de onde veio, então se houver muitas falhas, o fail2ban pode prender o IP.

pam sendmail
  • 3 3 respostas
  • 2529 Views

3 respostas

  • Voted
  1. Best Answer
    thrig
    2018-11-06T15:12:26+08:002018-11-06T15:12:26+08:00

    A sessão aqui é dividida entre o agente de transporte de correio e também saslauthd:

    testhost saslauthd[17177]: do_auth         : auth failure:
      [user=AzureDiamond] [service=smtp] [realm=] [mech=pam]
      [reason=PAM auth error]
    

    Um log completo do que você deseja pode não estar disponível por padrão ou exigirá reconstrução em algum serviço de agregação de log. (O log também é ruim no Postfix ao usar saslauthd; alguns dos logs acabam nos logs de correio e outros em outros lugares.) O Sendmail suporta regras de syslog personalizadas; no entanto, se um cliente emitir apenas EHLO nurse, AUTH LOGIN, QXp1cmVEaWFtb25k, SHVudGVyMg==e depois falhar (com um quitou simplesmente descartando a conexão), isso pode não dar a nenhum dos ganchos usuais de conjunto de regras a chance de ser executado.

    Com o LogLevel11 (ou superior) ativado, há uma falha de logon que inclui o endereço do relé:

    testhost sendmail[20684]: wA6KuRRJ020684: AUTH failure
      (LOGIN): authentication failure (-13) SASL(-13):
      authentication failure: checkpass failed,
      relay=localhost [127.0.0.1]
    

    Isso vem sendmail/srvrsmtp.ce acontece quando LogLevel > 9. Ou você pode corrigir esse arquivo para evitar aumentar o LogLevel, mas isso pode apresentar problemas diferentes.

    Seguem outros métodos para limitar o SMTP AUTH.

    limite de pam para um grupo específico

    Ajuste a configuração do PAM e não SMTP AUTHpermita a menos que o usuário pertença a um determinado grupo; isso impedirá a maioria dos ataques de adivinhação de senha, embora seja viável se apenas um subconjunto pequeno e previsível de seus usuários precisar usar SMTP AUTH:

    account     required      pam_access.so accessfile=/etc/security/smtp_access.conf
    

    e depois em/etc/security/smtp_access.conf

    + : ok-sasl : ALL
    - : ALL : ALL
    

    e, em seguida, coloque os usuários no ok-saslgrupo.

    ocultar o serviço SMTP AUTH

    Outra opção seria colocar uma VPN ou algo assim na frente do SMTP para que o serviço simplesmente não fique disponível para a Internet; isso deve reduzir o spray de ruído de log que um serviço voltado para o público recebe hoje em dia.

    pam_tally

    Eu também tentei, pam_tally2mas isso foi muito bom para bloquear contas, incluindo contas legítimas que fizeram login sem nenhum erro aparente... talvez funcione melhor para você?

    • 2
  2. Philip
    2019-04-12T13:13:43+08:002019-04-12T13:13:43+08:00

    Eu tenho uma solução que ajuda um pouco. As mensagens que você lista se parecem com as que vêm de /var/log/secure (pelo menos no RedHat/Centos).

    Como você notou, não há IP, então você não pode fazer muito com essas entradas.

    No entanto, dê uma olhada em /var/log/maillog e você encontrará entradas parecidas com:

    Apr 11 13:58:48 alpha sendmail[23712]: x3BKwjij023712: [118.24.45.165] did not issue MAIL/EXPN/VRFY/ETRN during connection to MSA
    

    Estas são conexões que tentam um AUTH (ou dois), falham e desconectam. Há quase 100% de correlação entre elas e as mensagens pam em /var/log/secure.

    Eu os uso como entrada para uma prisão fail2ban. Uma única ocorrência ganha um banimento, porque muitos dos sistemas automatizados de sondagem usam um espaço de endereço classe C completo (ou /24, se você preferir) e leva muito tempo até que você veja esse endereço novamente.

    Atualmente tenho alguém/coisa que parece estar usando uma botnet, com IPs espalhados por toda parte. Parece que só se repetem depois de dias, às vezes nunca. Você acaba com um monte de entradas fail2ban. Mas é melhor do que não fazer nada.

    • 2
  3. Hack Saw
    2018-11-13T12:11:10+08:002018-11-13T12:11:10+08:00

    Infelizmente, a resposta parece ser que com sendmail e cyrus-sasl, não há controle. Sendmail parece enviar a informação para sasl, e cyrus-sasl não faz nada com isso, e igualmente sendmail não faz nada depois que a autenticação falha.

    As respostas de Thrig acima podem ser úteis para outras pessoas, e talvez um dia alguém veja isso e forneça uma resposta melhor.

    • 0

relate perguntas

  • LDAP e PAM funcionando para login da GUI, mas não SSH

  • Como configurar o Simple Event Correlator (SEC) para enviar informações sobre falha na entrega de e-mail

  • PAM Kerberos e RStudio

  • Lidando com portas SMTP não padrão com sendmail -t

  • Enviar log específico com frase específica para meu e-mail

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve