Após quase um ano de desenvolvimento, foi lançado o novo release estável do servidor de e-mail Postfix — 3.10.0. Ao mesmo tempo, foi anunciada a descontinuação do suporte para a versão Postfix 3.6, lançada no início de 2021. O código do projeto é escrito em C e é distribuído sob as licenças EPL 2.0 (Eclipse Public License) e IPL 1.0 (IBM Public License).
O Postfix é um dos raros projetos que combinam alta segurança, confiabilidade e desempenho, o que foi alcançado graças à arquitetura multiprocessada, que isola manipuladores distintos, bem como a uma rigorosa política de formatação de código e auditoria de patches. Para proteger contra erros ao trabalhar com memória, o projeto utiliza variantes seguras de funções para alocação e liberação de memória, além de um conjunto de funções de abstração para trabalhar com buffers (verificando estouros de buffer e acessos à memória liberada), operações de arquivo, formatação de saída, entrada/saída buffered e manipulações de strings (incluindo recursos para trabalhar com strings de tamanho variável e redimensionamento automático de strings).
De acordo com uma pesquisa automatizada realizada em fevereiro, cerca de 550 mil servidores de e-mail servidores, o Postfix é utilizado em 37,64% (ante 36,81% no ano passado) dos servidores de e-mail, a participação do Exim é de 56,03% (ante 56,61% no ano anterior), Sendmail — 3,39% (3,60%), MailEnable — 1,80% (1,82%), MDaemon — 0,39% (0,40%), Microsoft Exchange — 0,19% (0,19%), OpenSMTPD — 0,10% (0,09%).

Principais novidades:
- Foi adicionada a possibilidade de utilizar algoritmos criptográficos resistentes à computação quântica no TLS. Para usar esses algoritmos, é necessário ter a versão da biblioteca OpenSSL 3.5, que ainda está em fase de desenvolvimento. Para escolher algoritmos pós-quânticos, o Postfix não introduziu uma nova sintaxe de grupos TLS, mas confiou nas configurações do OpenSSL, que serão utilizadas ao definir os parâmetros ‘tls_eecdh_auto_curves’ e ‘tls_ffdhe_auto_groups’ como valores vazios.
- Foi adicionada a suporte ao cabeçalho de mensagens ‘TLS-Required: no’ (RFC 8689), com o qual a entrega será realizada mesmo que não seja possível implementar a política de segurança TLS definida nas configurações. Com este cabeçalho presente, o cliente SMTP opera no modo ‘smtp_tls_security_level = may’, ou seja, não verifica o certificado. servidor e pode retroceder para uma conexão com transmissão de dados em texto claro. Na próxima versão significativa do Postfix, pretende-se implementar a extensão SMTP REQUIRETLS.
- Adicionada a поддержa do protocolo TLS-RPT (Transport Layer Security Reporting), que permite monitorar falhas na entrega de mensagens que ocorrem quando não é possível estabelecer uma conexão criptografada, conforme determinado pelo uso das extensões DANE (DNS-based Authentication of Named Entities) ou MTA-STS (MTA Strict Transport Security). O proprietário do domínio de e-mail define as configurações para TLS-RPT no DNS, após o que os servidores de e-mail enviarão relatórios com informações sobre conexões TLS bem-sucedidas e com falha aos servidores MX que atendem ao domínio. A implementação é baseada na biblioteca libtlsrpt.
- Adicionada a configuração 'smtpd_hide_client_session = yes', que desativa a inclusão de informações sobre a sessão do cliente ao inserir o cabeçalho 'Received:' pelo servidor SMTP. Exemplo de cabeçalho reduzido: 'Received: by mail.example.com (Postfix) id postfix-queue-id for <user@example.com>; Dia, dd Mês aaaa hh:mm:ss tz-offset (zona)'.
- Adicionada a possibilidade de codificação MIME (RFC 2047) de nomes nos cabeçalhos 'From:' gerados pelo Postfix, que incluem caracteres não ASCII. O esquema de codificação proposto permite contornar a necessidade de usar a extensão SMTPUTF8 (RFC 6531), que não é suportada por todos os aplicativos. O resultado da codificação MIME é parecido com '"=?charset?Q?gibberish?=:'. Para determinar a codificação original dos nomes, foi adicionado o parâmetro 'full_name_encoding_charset', que por padrão é definido como utf8.
- Alterada a lógica de tratamento de conexões falhadas ao especificar nas configurações 'mysql:' ou 'pgsql:' apenas um servidor. Esse servidor agora é tratado como um balanceador de carga e, em caso de falha, a solicitação é reenviada imediatamente, sem um atraso de 60 segundos.
- No Milter, foi implementado um registro no log da informação sobre o motivo de colocar a mensagem em quarentena.
- No servidor SMTP, foi garantido que o log imprima o identificador da fila ou o valor 'NOQUEUE' ao encerrar a conexão por timeout, interrupção ou superação do limite de número de erros. O processo de limpeza registra no log 'queueid: canceled' para mensagens com transação iniciada, mas não finalizada.
- No cliente Dovecot SASL, ao registrar a mensagem 'Invalid authentication mechanism', agora é indicado o mecanismo de autenticação que não pôde ser utilizado. O servidor SMTP agora exibe os valores das configurações sasl_method, sasl_username e sasl_sender ao registrar entradas 'reject'.
- Devido à alteração do protocolo interno utilizado no agente de entrega, após a atualização da versão do Postfix, é necessário reiniciar com o comando 'postfix reload' ou com os comandos 'postfix stop' e 'postfix start'. Caso contrário, um aviso 'unexpected attribute smtputf8 from xxx socket (expecting: sendopts)' será registrado no log.
Fonte: opennet.ru
