Após um ano de desenvolvimento, foi lançado o novo ramo estável do servidor de email Postfix — 3.6.0. Ao mesmo tempo, foi anunciada a descontinuação do suporte para o ramo Postfix 3.2, lançado no início de 2017. O Postfix é um dos raros projetos que combina alta segurança, confiabilidade e desempenho, conseguido através de uma arquitetura cuidadosamente pensada e uma política rigorosa de formatação de código e auditoria de patches. O código do projeto é distribuído sob as licenças EPL 2.0 (Eclipse Public License) e IPL 1.0 (IBM Public License).
De acordo com uma pesquisa automática realizada em abril com cerca de 600 mil servidores de email, servidoreso Postfix é utilizado em 33,66% (há um ano era 34,29%) dos servidores de email, a participação do Exim é de 59,14% (57,77%), Sendmail — 3,6% (3,83%), MailEnable — 2,02% (2,12%), MDaemon — 0,60% (0,77%), Microsoft Exchange — 0,32% (0,47%).
Principais novidades:
- Devido à mudança nos protocolos internos usados para a interação entre os componentes do Postfix, é obrigatório interromper o servidor de email antes da atualização, servidor com o comando “postfix stop”. Caso contrário, podem ocorrer falhas na interação com os processos pickup, qmgr, verify, tlsproxy e postscreen, o que pode causar atrasos no envio de emails até o reinício do Postfix.
- Foi realizada uma limpeza das menções às palavras “white” e “black”, percebidas por alguns membros da comunidade como discriminação racial. Em vez de “whitelist” e “blacklist”, deve-se agora usar “allowlist” e “denylist” (por exemplo, os parâmetros postscreen_allowlist_interfaces, postscreen_denylist_action e postscreen_dnsbl_allowlist_threshold). As mudanças afetam a documentação, as configurações do processo postscreen (firewall embutido) e a informação nos logs. postfix/postscreen[pid]: ALLOWLIST VETO [address]:port postfix/postscreen[pid]: ALLOWLISTED [address]:port postfix/postscreen[pid]: DENYLISTED [address]:port
Para manter os antigos termos nos logs, existe o parâmetro “respectful_logging = no”, que deve ser especificado em main.cf antes de “compatibility_level = 3.6”. O suporte aos antigos nomes de configurações do postscreen foi mantido para garantir a retrocompatibilidade. O arquivo de configuração “master.cf” também permanece inalterado.
- No modo «compatibility_level = 3.6», foi feita a transição padrão para o uso da função hash SHA256 em vez de MD5. Ao definir uma versão anterior no parâmetro compatibility_level, MD5 continua a ser utilizado, mas para as configurações relacionadas ao uso de hashes, nas quais o algoritmo não está explicitamente definido, será exibido um aviso no log. O suporte à variante de exportação do protocolo de troca de chaves Diffie-Hellman foi encerrado (o valor do parâmetro tlsproxy_tls_dh512_param_file agora é ignorado).
- O diagnóstico de problemas relacionados à especificação de um programa manipulador incorreto em master.cf foi simplificado. Para identificar tais erros, cada serviço interno, incluindo postdrop, agora anuncia o nome do protocolo antes do início da troca de dados, e cada processo cliente, incluindo sendmail, verifica se o nome do protocolo declarado corresponde à versão suportada.
- Um novo tipo de mapeamentos «local_login_sender_maps» foi adicionado para o gerenciamento flexível do endereço envelope do remetente (fornecido no comando «MAIL FROM» durante a sessão SMTP) nos processos sendmail e postdrop. Por exemplo, para permitir que usuários locais, exceto root e postfix, especifiquem apenas seus logins no sendmail, utilizando o vínculo UID ao nome, podem ser usadas as seguintes configurações: /etc/postfix/main.cf: local_login_sender_maps = inline:{ { root = *}, { postfix = * } }, pcre:/etc/postfix/login_senders /etc/postfix/login_senders: # É permitido especificar tanto logins quanto a forma login@domínio. /(.+)/ $1 $1…@example.com
- Foi adicionada e ativada por padrão a configuração «smtpd_relay_before_recipient_restrictions=yes», na qual o servidor SMTP verificará as restrições smtpd_relay_restrictions antes das smtpd_recipient_restrictions, e não o contrário, como era anteriormente.
- Foi adicionado o parâmetro «smtpd_sasl_mechanism_list», definido por padrão com o valor «!external, static:rest» para evitar erros confusos, no caso em que o backend SASL declara suporte ao modo «EXTERNAL», que não é suportado no Postfix.
- Ao definir nomes no DNS, um novo API que suporta multithreading (threadsafe) é usado por padrão. Para compilar com a API antiga, deve-se especificar na construção «make makefiles CCARGS=»-DNO_RES_NCALLS…».
- Modo «enable_threaded_bounces = yes» adicionado para inserir notificações sobre problemas de entrega, entrega atrasada ou confirmação de entrega com o mesmo identificador de discussão (a notificação será exibida pelo cliente de email na mesma thread, junto com as demais mensagens da conversa).
- Por padrão, o uso do banco de dados do sistema /etc/services para definir os números das portas TCP para SMTP e LMTP foi descontinuado. Em vez disso, os números das portas são configurados através do parâmetro known_tcp_ports (por padrão lmtp=24, smtp=25, smtps=submissions=465, submission=587). Caso algum serviço esteja ausente em known_tcp_ports, continuará a ser utilizado /etc/services.
- O nível de compatibilidade («compatibility_level») foi elevado para «3.6» (anteriormente, o parâmetro foi alterado duas vezes; além de 3.6, são suportados os valores 0 (padrão), 1 e 2). A partir de agora, o «compatibility_level» será alterado para o número da versão em que forem feitas mudanças que quebram a compatibilidade. Para verificar os níveis de compatibilidade em main.cf e master.cf, foram adicionados operadores de comparação separados, como «<=level» e «< level» (os operadores de comparação padrão não são adequados, pois considerariam 3.10 menor que 3.9).
Fonte: opennet.ru
