Postfix - Existe uma maneira de rejeitar a autenticação inválida (mesmo para mynetworks)?

1

Eu tenho uma configuração de postfix / dovecot em funcionamento com a seguinte regra para rejeição de destinatários:

smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject

Funciona como pretendido (autoriza usuários autenticados ou usuários de mynetworks, rejeita outros). No entanto, se um usuário proveniente de mynetworks não conseguir autenticar, ele não será rejeitado.

Existe alguma regra como reject_invalid_sasl_auth ? Algo que rejeitaria o usuário somente se ele entrasse em uma autenticação inválida, mas permitiria aos usuários sem autenticação.

Caso contrário, existe outra maneira além das regras de restrição para obter esse tipo de comportamento (opção SASL, política customizada)?

    
por Julien 05.12.2011 / 12:09

2 respostas

3

Como você só permite explicitamente usuários autenticados pelo SASL, se o usuário não for autenticado, a próxima restrição em linha será verificada - que é mynetworks, o que acontece para corresponder.

Portanto, totalmente devido à sua regra, é permitido que clientes não-auth sejam autorizados de suas redes confiáveis.

Em vez disso, considere configurá-lo assim:

smtpd_client_restrictions = permit_sasl_authenticated, reject
smtpd_recipient_restrictions = permit_mynetworks, reject

OBSERVE que quando você aplica isto à sua porta externa 25 smtpd listener, isto fará com que você não receba emails da internet, nunca.

    
por 05.12.2011 / 14:56
1

Acho que a idéia poderia ser executar o seu MTA, onde você recebe mensagens de outros colegas (outros servidores de email) na porta 25. Você executa outro processo smtpd na porta 587 para receber de usuários autenticados.

Dessa forma, você pode ter regras padrão como:

smtpd_recipient_restrictions =
  permit_mynetworks
  reject_unauth_destination

no seu main.cf

OTOH você configura sua porta 587 da seguinte maneira em master.cf como:

submission inet  n       -       -       -       -       smtpd
    -o smtpd_enforce_tls=yes
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

UPDATE

Para responder ao comentário. Isso faz duas coisas.

Primeiro, se ele receber conexão na porta 25, só aceitará da mynetworks que ele nunca aceitará mensagens, exceto o que pode ser entregue localmente.

Segundo, se ele receber conexão na porta 587, ele aceitará o correio somente de clientes autenticados.

    
por 05.12.2011 / 22:51