Parece que a atualização mais recente do mail-receiver (Self-hosted mail-receiver update following Let's Encrypt root certificate change) não resolve mais endereços IP para nomes de host. Isso causa problemas com as restrições de acesso de clientes do Postfix que funcionavam anteriormente, ativadas ao adicionar a seguinte linha ao arquivo mail-receiver.yml:
POSTCONF_smtpd_client_restrictions: 'regexp:/etc/postfix/shared/client_access_regex'
Abaixo está um trecho do log do mail-receiver, mostrando uma conexão de entrada:
Oct 01 17:38:11 discourse-mail-receiver postfix/master[1]: reload -- version 3.5.6, configuration /etc/postfix
Oct 01 17:41:58 discourse-mail-receiver postfix/smtpd[151]: connect from unknown[167.71.160.115]
Oct 01 17:41:59 discourse-mail-receiver postfix/smtpd[151]: disconnect from unknown[167.71.160.115] ehlo=2 starttls=1 mail=1 quit=1 commands=5
O que antes era resolvido para o nome de host do cliente de origem www11-do.checktls.com[167.71.160.115] agora permanece sem resolução e é marcado como unknown[167.71.160.115].
Isso gera conflito com as entradas de regex no arquivo client_access_regex, que foi projetado para rejeitar todos os hosts sem um registro PTR válido (essencialmente todos os relés de spam), bem como todos os hosts de faixas de IP dinâmico (principalmente hosts virtuais e, basicamente, todos os relés de spam também).
Como nenhum IP é resolvido para um nome de host, nenhuma das regras funciona mais. Pior ainda, a linha /unknown/ REJECT agora bloqueia todas as e-mails de entrada. Tive que desativar temporariamente a regra para permitir conexões de entrada, e todas as outras regras ficaram inativas devido ao problema de resolução. Isso expõe o servidor ao spam novamente (meu fórum foi inundado por spam antes de implementar essas regras, e depois que elas foram implementadas, não me lembro de ter recebido nenhum).
Não posso voltar para a versão antiga como solução alternativa (devido aos problemas com o Let’s Encrypt), e a nova versão reabre as comportas do spam novamente. Portanto, ficaria muito grato por uma correção (tentei descobrir como ativar manualmente a resolução DNS dentro da imagem Docker, mas sem sucesso).
Abaixo está um arquivo client_access_regex para referência, caso alguém esteja enfrentando os mesmos problemas recorrentes de spam e queira testá-lo (use Customize direct-delivery Postfix configuration para configurar /etc/postfix/shared e mail-receiver.yml):
# regex dns: ([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}
# regex ip: ((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
#
# dyn-ip-dns:
/((\\.|-|x)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){2}((\\.|-)[a-zA-Z0-9]+)+\\.[a-zA-Z]{2,}/ REJECT
/unknown/ REJECT
/sample-spam\\.domain\\.com/ REJECT