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 / server / Perguntas / 688758
Accepted
Zulakis
Zulakis
Asked: 2015-05-06 06:14:26 +0800 CST2015-05-06 06:14:26 +0800 CST 2015-05-06 06:14:26 +0800 CST

Rejeitar e-mails recebidos que usam seu próprio domínio como remetente

  • 772

Seria bom rejeitar e-mails recebidos que usam um dos meus domínios virtuais como endereço de remetente, embora não seja um usuário legítimo meu.

Eu sei que posso rejeitar e-mails recebidos que usam um alias/nome de conta existente usando smtpd_sender_restrictions=reject_sender_login_mismatch, mas isso ainda permite que invasores usem um endereço de e-mail inexistente com um dos meus domínios virtuais. (Que é favorecido em relação à detecção de spam).

Qual é a melhor maneira de rejeitar e-mails recebidos que usam um dos meus domínios virtuais e não são autenticados para isso?

O SPF e o DKIM estão configurados, mas configurados para SoftFail, devido a problemas com listas de discussão e encaminhamentos. Não estou procurando SPF ou DKIM, mas uma solução para o servidor postfix que é o MX dos domínios mencionados.

email
  • 4 4 respostas
  • 17566 Views

4 respostas

  • Voted
  1. Best Answer
    Zulakis
    2015-05-07T00:58:01+08:002015-05-07T00:58:01+08:00

    Eu encontrei dois métodos possíveis, mas talvez haja uma maneira melhor.

    1º método:

    smtpd_sender_restrictions =
        reject_sender_login_mismatch,
        permit_sasl_authenticated,
        permit
    

    Agora eu modifiquei meu smtpd_sender_login_mapspara retornar uma entrada de adminse o domínio existe na tabela de domínios. Desta forma, um registro é retornado, mesmo quando o endereço de e-mail não existe como maibox/alias, mas não quando um domínio estrangeiro é o endereço de origem.

    table = domain
    query = SELECT username AS allowedUser FROM mailbox WHERE username="%s" AND deleted_at IS NULL \
    UNION SELECT goto FROM alias WHERE address="%s" AND active = 1 \
    UNION select 'admin' from domain where domain = '%d'
    

    2º método:

    Essa abordagem usa uma check_sender_accesspesquisa que retorna uma ação de rejeição se o domínio for virtual e o usuário não sasl_authenticated.

    smtpd_sender_restrictions =
        reject_sender_login_mismatch,
        permit_sasl_authenticated,
        check_sender_access proxy:mysql:$config_directory/mysql_reject_virtual_domains.cf,
        permit
    

    mysql_reject_virtual_domains.cf:

    table = domain
    query = select 'Reject 530 SMTP authentication is required' from domain where domain = '%d'
    

    3º método (graças a masegaloeh ):

    smtpd_sender_restrictions =
        reject_sender_login_mismatch,
        permit_sasl_authenticated
        reject_unlisted_sender,
        permit
    

    Não sei quantas cpu-load/SQL-queries rejeite_unlisted_sender gera, pois verifica muitas coisas:


    Solicite que o servidor Postfix SMTP rejeite e-mails de endereços de remetentes desconhecidos, mesmo quando nenhuma reject_unlisted_senderrestrição de acesso explícita for especificada. Isso pode retardar uma explosão de e-mails forjados de worms ou vírus.

    Um endereço é sempre considerado "conhecido" quando corresponde a um alias virtual(5) ou a um mapeamento canônico(5).

    • O domínio do remetente corresponde a $mydestination, $inet_interfaces ou $proxy_interfaces, mas o remetente não está listado em $local_recipient_maps e $local_recipient_maps não é nulo.
    • O domínio do remetente corresponde a $virtual_alias_domains, mas o remetente não está listado em $virtual_alias_maps.
    • O domínio do remetente corresponde a $virtual_mailbox_domains, mas o remetente não está listado em $virtual_mailbox_maps e $virtual_mailbox_maps não é nulo.
    • O domínio do remetente corresponde a $relay_domains, mas o remetente não está listado em $relay_recipient_maps e $relay_recipient_maps não é nulo.

    • 10
  2. Kondybas
    2015-05-06T06:49:12+08:002015-05-06T06:49:12+08:00

    A maneira certa é configurar o SPF para o seu domínio e habilitar o SPF no MTA. Assim, você obterá proteção não apenas para a falsificação de seu próprio domínio, mas também para todos os outros domínios com SPF ativado.

    • 1
  3. alexus
    2015-05-06T06:55:24+08:002015-05-06T06:55:24+08:00

    Você deve tentar implementar pelo menos um dos seguintes (ambos são melhores):

    • SPF: visão geral do projeto
    • Correio identificado por DomainKeys (DKIM)
    • 1
  4. Oleg Kr
    2015-11-16T10:48:31+08:002015-11-16T10:48:31+08:00

    Ainda outro 1º método com consulta separada sem uniões:

    virtual_sender_mailbox_maps.cf
    
    query = SELECT '%s' AS email FROM domains WHERE name='%d' AND active=TRUE
    
    main.cf
    
    smtpd_sender_login_maps = ${proxysql}virtual_sender_mailbox_maps.cf
    smtpd_sender_restrictions =
        reject_sender_login_mismatch,
        permit_sasl_authenticated,
        permit
    
    • 1

relate perguntas

Sidebar

Stats

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

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 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