Postfix Header_Check Problema Regex 'não corresponde'

1

Estou tentando configurar o Postfix para NÃO aceitar mensagens de saída com endereços FROM além dos meus próprios domínios.

O seguinte regex rejeita com sucesso apenas 3 domínios:

/etc/postfix/header_checks:
/(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS!

Eu gostaria de basicamente reverter isso e bloquear TUDO MAS aqueles 3.

Então, de acordo com o manual:

!/pattern/flags result When pattern does not match the input string, use the corre- sponding result value.

No entanto, isso apenas bloqueia tudo:

/etc/postfix/header_checks:
!/(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS!
    
por JustAGuy 02.06.2016 / 10:17

1 resposta

2

O problema é o uso de postfix header_checks para a linha de cabeçalho every . Então, se houver uma linha de cabeçalho como

Subject: I love you :p

e o postfix aplicará esse regex nessa linha. O resultado é que o postfix rejeitará este email.

A solução está adicionando if endif em seu padrão de expressão regular

if /^From:/
!/(^From:.*domain\.com|^From:.*domain\.net|^From:.*domain\.co\.il)/ REJECT SEND FROM THE RIGHT DOMAINS FFS!
endif

Basicamente, você diz ao postfix para aplicar o padrão somente no cabeçalho De . Isso evitará que o postfix avalie a regex em outra linha de cabeçalho e cause um email rejeitado.

Veja o manual do postfix para mais informações

    
por 02.06.2016 / 21:36

Tags