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 / 1149562
Accepted
TommyPeanuts
TommyPeanuts
Asked: 2023-12-11 22:55:01 +0800 CST2023-12-11 22:55:01 +0800 CST 2023-12-11 22:55:01 +0800 CST

Método de filtro de spam diferente para clientes sasl-auth?

  • 772

Usando uma configuração postfix padrão do Ubuntu (Ubuntu 22.04), gostaria de filtrar os e-mails da seguinte maneira:

  1. Envios recebidos e smtps (a grande maioria dos e-mails): verificações SPF e RBL (estou usando policyd.pl ) e depois verificados com spamassassin e clamav usando Amavis.
  2. Correio autenticado por Sasl de clientes em redes externas: taxa limitada/verificada (estou usando postfwdpara isso), depois verifica Amavis, mas não SPF e RBL (porque não queremos rejeitar com base nas redes de envio dos clientes).

Estou certo ao pensar que se eu fizer o Amavis verificar o último da cadeia e só tiver opções permissivas no ouvinte de "reentrada" master.cf, posso garantir que os e-mails de usuários autenticados por sasl não recebam o mesmos cheques que outras correspondências? Por exemplo:

smtpd_client_restrictions =
    permit_mynetworks,
    # Rate limiting with postfwd: 
    check_policy_service inet:127.0.0.1:10040,
    permit_sasl_authenticated,
    # RBLs, SPF with policyd.pl:
    check_policy_service unix:private/senderCheck

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    ...,
    [various reject_* lines here],
    ...,
    # Amavis checks last:
    content_filter = smtp-amavis:[127.0.0.1]:10024,
    permit

Em seguida, tenha a configuração de "reentrada" do Amavis em master.cf como:

127.0.0.1:10025 inet    n       -       -       -       -       smtpd
        -o syslog_name=amavis-reentry
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_delay_reject=no
        -o smtpd_client_restrictions=permit_mynetworks,reject
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=
        -o smtpd_data_restrictions=
        -o smtpd_end_of_data_restrictions=
        -o mynetworks=127.0.0.0/8
        -o smtpd_error_sleep_time=0
        -o smtpd_soft_error_limit=1001
        -o smtpd_hard_error_limit=1000
        -o smtpd_client_connection_count_limit=0
        -o smtpd_client_connection_rate_limit=0
        -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

Editar : Para referência, aqui está a configuração do smtpd em master.cf que tenho no momento:

smtp      inet  n       -       n       -       -       smtpd
  -o smtpd_sasl_auth_enable=no
  -o smtpd_discard_ehlo_keywords=silent-discard,dsn

submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_key_file=/etc/letsencrypt/live/smtp.xxx/privkey.pem
  -o smtpd_tls_cert_file=/etc/letsencrypt/live/smtp.xxx/fullchain.pem
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

smtps     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_security_level=may
  -o smtpd_tls_key_file=/etc/letsencrypt/live/smtp.xxx/privkey.pem
  -o smtpd_tls_cert_file=/etc/letsencrypt/live/smtp.xxx/fullchain.pem
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
postfix
  • 1 1 respostas
  • 81 Views

1 respostas

  • Voted
  1. Best Answer
    Esa Jokinen
    2023-12-12T01:32:04+08:002023-12-12T01:32:04+08:00

    É típico ter múltiplas instâncias do smptddaemon para finalidades diferentes, assim como você configurou a instância 127.0.0.1:10025para o Amavis. Nele master.cfé possível substituir as configurações main.cfda referida instância.

    content_filterNão se trata de uma restrição smtpd_recipient_restrictions, mas de um parâmetro de configuração separado.

    Aqui está um exemplo de tcp/465instância smtps() usando Dovecot para autenticação Postfix SASL :

    smtps     inet  n       -       -       -       -       smtpd
      -o syslog_name=postfix/smtps
      -o smtpd_tls_wrappermode=yes
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_sasl_type=dovecot
      -o smtpd_sasl_path=private/auth
      -o smtpd_sasl_security_options=noanonymous
      -o smtpd_sasl_local_domain=$myhostname
      -o { smtpd_client_restrictions = 
             check_policy_service inet:127.0.0.1:10040,
             permit_sasl_authenticated,
             reject
         }
      -o { smtpd_recipient_restrictions = 
             reject_non_fqdn_recipient, 
             reject_unknown_recipient_domain, 
             permit_sasl_authenticated,
             reject
         }
      -o content_filter=smtp-amavis:[127.0.0.1]:10024
    

    Aqui, as restrições substituem aquelas em main.cf:

    • Remove políticas baseadas smtpd_client_restrictions, policyd.plmas mantém a postfwdlimitação de taxa.
    • O smtpd_recipient_restrictionsúnico possui um pequeno conjunto de reject_restrições que são relevantes para correspondência de saída.
    • Eles permit_mynetworkssão removidos de ambos, pois isso é explicitamente para usuários autenticados.

    Eu acrescentaria algo assim para evitar que os usuários usem os endereços uns dos outros:

      -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
      -o smtpd_sender_restrictions=reject_sender_login_mismatch
    

    A documentação Postfix e Dovecot SASL tem um exemplo para o protocolo de envio , mas o RFC 8314 o tornou obsoleto, e TLS implícito ( 3.3 ), ou seja, envios na porta 465, devem ser usados.

    • 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