Introdução
Essa seção é exclusiva para explicar os principais parâmetros de configuração do Postfix. Todos os parâmetros são usados no arquivo de configuração main.cf
.
Opções do Postfix
Vou deixar essa seção apenas para descrever em certo nível as opções que podemos usar no arquivo de configuração principal do Postfix (main.cf
e master.cf
). Você não precisa decorar ou ler tudo, vamos começar vendo as configurações aos poucos, mas quando quiser entender uma configuração, volte aqui e leia qual a função dela para que consiga entender o que está acontecendo.
myhostname
É o nome do servidor de email na Internet, deve-se usar o FQDN. Quando o Postfix se comunica com outro MTA para entregar um e-mail, ele se identifica utilizando os comandos HELO ou EHLO. O valor de myhostname
é utilizado como o argumento nesses comandos. Por exemplo, se myhostname = mail.example.com
, o Postfix enviará algo como EHLO mail.example.com
.
Usar um FQDN garante que a identificação do servidor seja reconhecida corretamente pelos servidores remotos, o que pode influenciar a aceitação do e-mail e a reputação do servidor. Se a opção myhostname
não for explicitamente configurada, o Postfix tentará determinar o nome do host do sistema, utilizando o comando hostname
do sistema operacional, ou derivando do domínio configurado no parâmetro mydomain
.
O HELO é o comando mais básico usado para iniciar a comunicação entre dois servidores de e-mail (MTAs). Quando um servidor envia o comando HELO
, ele se identifica com o nome do host e inicia a sessão SMTP de forma simples. Já o EHLO, é uma extensão do HELO
e é usado para iniciar uma sessão de e-mail quando o servidor suporta as extensões do protocolo ESMTP (Extended SMTP). Ao enviar EHLO
, o servidor se identifica e, em resposta, o servidor remoto lista as funcionalidades adicionais que ele suporta, como autenticação, compressão, e, principalmente, a opção de iniciar uma sessão protegida por TLS usando a extensão STARTTLS
.
mydomain
Define o domínio principal do servidor de email, ou seja, o nome de domínio sem o nome do host. Ele representa o domínio ao qual o $myhostname
pertence. Se mydomain
não for configurado manualmente, o Postfix usa um valor padrão baseado em $myhostname
.
mydestination
O parâmetro mydestination
especifica quais domínios este servidor de email tratará como locais, ou seja, para os quais ele entregará os emails diretamente, em vez de encaminhá-los para outro servidor. Os emails serão entregues utilizando o método de entrega configurado em $local_transport
. Por padrão, o valor de mydestination
inclui o nome do host do servidor ($myhostname
), o domínio local (localhost.$mydomain
), e localhost
. Isso significa que, por padrão, o servidor tratará emails destinados a esses nomes como emails locais, entregando-os diretamente em vez de encaminhá-los para outro servidor.
Um exemplo de configuração que podemos aplicar aqui é:
mydestination = $myhostname, localhost.$mydomain, localhost
O agente de entrega padrão do Postfix é o local(8)
, que utiliza os arquivos /etc/passwd
e /etc/aliases
para resolver os destinatários dos emails. Se o destinatário não existir, o servidor SMTP do Postfix valida os endereços usando o parâmetro $local_recipient_maps
e rejeita emails para destinatários não listados.
Não inclua nomes de domínios virtuais no mydestination
. Esses domínios são configurados separadamente. Os Domínios Virtuais são domínios que não correspondem diretamente ao hostname ou ao domínio principal do servidor, mas que o servidor gerencia como se fossem seus próprios domínios. Esses domínios geralmente são usados para hospedar emails de múltiplos domínios em uma única instância de servidor.
O mydestination
define domínios que o Postfix tratará como locais, entregando emails diretamente no servidor. Se você incluir um domínio virtual aqui, o Postfix tentará entregar os emails localmente, o que pode causar problemas porque esses domínios geralmente precisam de um tratamento específico, configurado em outras seções, como virtual_mailbox_domains
ou virtual_alias_domains
. Essas seções dizem ao Postfix como tratar emails para esses domínios virtuais, que podem envolver entregas em caixas postais virtuais ou redirecionamento para outros destinos.
Não inclua nomes de domínios para os quais este servidor atua como host MX de backup. Para configurar um host MX de backup, consulte o STANDARD_CONFIGURATION_README
. Por padrão, o servidor SMTP do Postfix rejeita emails para destinatários que não estão listados em local_recipient_maps
. Para entender mais sobre os parâmetros local_recipient_maps
e unknown_local_recipient_reject_code
, consulte o manual postconf(5)
.
myorigin
O parâmetro myorigin
define qual domínio será anexado aos emails enviados a partir do servidor, ou seja, ele controla como o endereço de email do remetente será formatado para mensagens enviadas localmente. Se não for configurado, o valor padrão será o que estiver na variável myhostname
.
inet_interfaces
É a interface de rede pela qual o servidor vai receber os emails, o padrão localhost
só permite troca de emails com usuários conectados na mesma máquina. Podemos deixar como all
para que aceite de todas as interfaces ou colocar o IP da interface que deverá usar para receber os emails.
mynetworks
O parâmetro mynetworks
define quais endereços IP ou redes são considerados "confiáveis" pelo servidor de email. Esses endereços confiáveis têm privilégios especiais, como a permissão para encaminhar emails através do servidor (relay). Os endereços ou redes especificados em mynetworks
são autorizados a usar o servidor para relaying (encaminhamento) de emails, o que significa que podem enviar emails para outros domínios usando seu servidor SMTP. Isso é regulado pelo parâmetro smtpd_relay_restrictions
.
Se não especificado manualmente, o Postfix pode configurar a lista de redes confiáveis automaticamente. Isso é feito com base no parâmetro mynetworks_style
. Se você definir a lista manualmente, o mynetworks_style
será ignorado. A lista de IP/Rede pode incluir endereços IPv4 e IPv6, sendo necessário o IPv6 ser colocado entre colchetes []
.
mynetworks = 127.0.0.0/8 [::1]/128
Também podemos excluir uma rede ou endereço específico usando o prefixo !
.
mynetworks = !192.168.0.1, 192.168.0.0/28
Além de listar os dados diretamente, podemos usar arquivos ou tabelas para especificar as redes confiáveis.
mynetworks = hash:/etc/postfix/network_table
mynetworks = cidr:/etc/postfix/network_table.cidr
Tanto o parâmetro smtpd_relay_restrictions
ou smtpd_recipient_restrictions
devem especificar pelo menos uma das seguintes restrições abaixo. Caso contrário, o Postfix se recusará a receber e-mails:
reject, reject_unauth_destination
defer, defer_if_permit, defer_unauth_destination
recipient_delimiter
O parâmetro recipient_delimiter
no Postfix permite que você defina um caractere delimitador para endereços de email, facilitando o gerenciamento de aliases e a separação de sub-endereços. O valor padrão é +
, mas você pode configurá-lo para outro caractere se preferir. Permite que você adicione um caractere delimitador ao endereço de email para criar "sub-endereços" ou "endereços com variação" sem precisar criar aliases separados. Geralmente usado para criar variações de um endereço de email para categorizar ou filtrar emails.
Suponha que você tenha o endereço de email principal usuario@dominio.com
. Com o recipient_delimiter
configurado como +
, você pode criar endereços como:
usuario+news@dominio.com
usuario+shopping@dominio.com
Esses endereços são todos entregues na caixa de correio usuario@dominio.com
, mas você pode configurar filtros ou regras para tratar emails enviados para essas variações de forma diferente.
relayhost
O parâmetro relayhost
é usado para definir o próximo destino para o qual o servidor deve encaminhar emails que não são locais, ou seja, emails que não são para endereços geridos localmente pelo servidor. Isso é particularmente útil quando você deseja que todos os emails que saem do seu servidor sejam encaminhados através de um servidor de correio específico, como um servidor de relé ou um gateway de email.
Para mais detalhes leia a documentação oficial.
defer_transports
O parâmetro defer_transports
no Postfix configura quais métodos de entrega de mensagens devem ser adiados até que um comando específico seja executado. Isso significa que, para os transportes listados, as mensagens não serão entregues automaticamente. Em vez disso, elas ficarão na fila até que um comando manual seja emitido para forçar a entrega.
Quando um transporte é listado em defer_transports, o Postfix não tentará entregar mensagens usando esse transporte até que você execute um comando como sendmail -q
ou equivalente. O comando sendmail -q
força a entrega de todas as mensagens pendentes na fila.
relay_domains
Define quais domínios de destino o Postfix aceita fazer retransmissão (relay). O Postfix precisa fazer relay quando não é o destino final do e-mail, ou seja, quando o destinatário não pertence a um domínio local. Por exemplo:
Seu servidor é zion.com.br
e recebe um e-mail para fulano@gmail.com
. Como gmail.com
não está em mydestination
, virtual_mailbox_domains
, etc., o Postfix precisa reencaminhar esse e-mail para o servidor do Gmail. Isso acontece em cenários como:
Servidor MX de backup
Se o domínioexample.com
configurarzion.com.br
como MX secundário (com prioridade 10, 20...), seu servidor pode receber e-mails quando o MX primário estiver fora do ar. Assim que o primário voltar, o Postfix precisa fazer relay para ele.Uso como Smarthost ou Relayhost
Clientes autenticados (ou IPs confiáveis emmynetworks
) usam seu servidor para enviar e-mails para fora. Uma pessoa usa seu servidor de email que está corretamente configurado para enviar emails.Reencaminhamento (Forwarding)
Um e-mail chega parafulano@zion.com.br
, e existe uma regra que redireciona parafulano@gmail.com
. O Postfix entrega localmente e, em seguida, reencaminha para o Gmail.
Por padrão, relay_domains
é vazio, o que significa que, se mynetworks
ou autenticação estiverem corretamente configurados, o Postfix permite relay para qualquer domínio. Por outro lado, se você definir um ou mais domínios em relay_domains
, o Postfix só fará relay para os domínios listados, mesmo para clientes autenticados ou IPs confiáveis.
Quando um e-mail é aceito para relay, o Postfix usa o transporte definido em relay_transport
para encaminhá-lo. Se configurado, o Postfix também valida os destinatários com relay_recipient_maps
e rejeita os que não existirem.
smtpd_sender_login_maps
Define uma tabela de pesquisa opcional que mapeia endereços de remetentes (MAIL FROM) para nomes de login SASL que são autorizados a enviar emails usando esses endereços. Isso é útil para garantir que apenas usuários autenticados com o login SASL apropriado possam usar um determinado endereço de remetente.
smtpd_error_sleep_time
Define o intervalo de tempo que o servidor Postfix deve esperar após encontrar um erro de comunicação com um cliente SMTP. Esse intervalo é aplicado quando há erros repetidos na comunicação, ajudando a reduzir a carga sobre o servidor e a evitar sobrecarga em situações de problemas de conexão. O valor é especificado em segundos.
smtpd_soft_error_limit
Define o número máximo de erros soft que o servidor Postfix aceitará antes de começar a rejeitar novas conexões do cliente SMTP. Erros soft são geralmente erros temporários que não indicam uma falha crítica. Ajuda a proteger o servidor contra clientes que estão gerando muitos erros temporários, prevenindo que eles sobrecarreguem o servidor. O padrão é 10.
smtpd_hard_error_limit
Define o número máximo de erros hard que o servidor Postfix aceitará antes de começar a rejeitar novas conexões do cliente SMTP. Erros hard são erros permanentes que indicam problemas mais graves, como falhas na comunicação. O padrão é normal: 20 e overload: 1.
message_size_limit
Define o tamanho máximo total de uma mensagem, incluindo o corpo da mensagem, todos os anexos e cabeçalhos. Infelizmente, o Postfix não possui uma configuração nativa para limitar o tamanho de anexos individualmente. No entanto, podemos implementar essa funcionalidade através dessa opção ou até mesmo outros métodos. O valor definido é em bytes.
virtual_alias_maps
O parâmetro virtual_alias_maps
no Postfix é utilizado para mapear endereços de e-mail virtuais para outros endereços. Este recurso é particularmente útil quando você deseja redirecionar e-mails enviados para um endereço específico para outro endereço de e-mail, seja ele local, virtual ou remoto. Diferente de alias_maps
, que apenas funciona com o localpart (a parte do endereço de e-mail antes do @
) e é aplicável apenas a destinatários locais, virtual_alias_maps
trabalha com o endereço completo e pode ser aplicado a destinatários locais, virtuais ou remotos.
Exemplo:
info@exemplo.com support@exemplo.com
sales@exemplo.com manager@exemplo.com, support@exemplo.com
external@exemplo.com bob@info.com
Para compilar execute:
$ sudo postmap /etc/postfix/virtual
virtual_mailbox_maps
O parâmetro virtual_mailbox_maps
é usado para definir as caixas de correio válidas em domínios que correspondem ao valor especificado em virtual_mailbox_domains
. Quando configurado, o Postfix usa essa tabela para determinar onde entregar os e-mails para destinatários de domínios virtuais.
Note que essa configuração é para usuários que não tem uma conta local, ou seja, que não estão no /etc/passwd
. Isso acontece porque o Virtual Delivery Agent não consegue acessar informações do usuário no sistema local (/etc/passwd
), como acontece com o Local Agent. O Virtual Delivery Agent (VDA) não conhece ou não acessa o arquivo .forward
localizado no diretório HOME dos usuários, uma vez que ele não trabalha com contas de usuário locais no sistema. Para ter o mesmo efeito configure redirecionamentos de e-mail diretamente nas tabelas de mapeamento, como virtual_alias_maps
, para garantir que e-mails destinados a endereços virtuais sejam redirecionados para outros endereços conforme necessário.
Para usar esse Agent, ele deve ter uma configuração explicita em master.cf
:
virtual unix - n n - - virtual
virtual_alias_domains
Usado quando o Postfix deve redirecionar e-mails destinados a um domínio hospedado para um ou mais endereços de e-mail reais. Por exemplo, se você receber um e-mail para info@exemplo.com, o Postfix pode redirecionar esse e-mail para admin@exemplo.com. Isso é feito através de alias (apelidos) que mapeiam endereços virtuais para endereços reais.
Resumindo, é usado quando os endereços de e-mail em um domínio não precisam de caixas de correio separadas no servidor. Em vez disso, os e-mails são redirecionados para outros endereços, que podem ser locais ou remotos. É útil em cenários onde múltiplos endereços virtuais precisam ser mapeados para endereços de e-mail reais, facilitando a administração e mantendo a flexibilidade.
virtual_mailbox_domains
O parâmetro virtual_mailbox_domains
informa um ou mais domínios que o Postfix deve armazenar as mensagens em caixas de correio localmente, porém, os usuários desse domínio não são locais e sim virtuais.
Os emails são entregue por meio do transporte de entrega de correio $virtual_transport
. Por padrão, este é o agente de entrega virtual(8)
do Postfix.
alias_maps
Usado para mapear endereços de email para outros endereços de email ou listas de distribuição. Normalmente esse mapa é configurado da seguinte forma: alias_maps = hash:/etc/aliases
.
transport_maps
Usado para definir regras de roteamento personalizadas, especificando como e para onde os emails devem ser entregues com base no domínio do destinatário.
smtpd_access_maps
Usado para controlar o acesso ao servidor de email, permitindo ou bloqueando emails de determinados endereços IP, domínios ou endereços de email.
smtpd_data_restrictions
Define restrições aplicadas após o comando DATA, que precede o envio do corpo da mensagem.
Opções para se usar com smtpd_data_restrictions
:
reject_multi_recipient_bounce
Rejeita mensagens de erro de entrega (bounces) que têm mais de um destinatário. Esse parâmetro é útil para prevenir abusos, como ataques de backscatter, onde um grande número de mensagens de erro é enviado a partir de servidores mal configurados ou comprometidos.check_policy_service
Verifica uma política externa que pode aplicar regras adicionais antes de aceitar os dados.
smtpd_sender_restrictions
Aplica restrições ao endereço do remetente especificado no comando MAIL FROM.
Opções para se usar com smtpd_sender_restrictions
:
reject_unknown_sender_domain
Rejeita a solicitação quando o Postfix não é o destino final para o endereço do remetente e o domínio do remetente (MAIL FROM
) não possui registros DNS válidos, como registros MX ou A.DNS, ou um domínio do remetente tem um registro MX malformado, como um registro com um nome de host MX de comprimento zero.reject_non_fqdn_sender
Rejeita se o endereço do remetente não for um endereço de email válido (por exemplo, sem@
ou domínio).reject_unlisted_sender
Controla se o servidor deve aceitar ou rejeitar emails baseados no endereço do remetente fornecido no envelope (comandoMAIL FROM
) em comparação com a lista de endereços válidos configurados no servidor. Quando o Postfix recebe um email, ele verifica se o endereço do remetente (MAIL FROM) está listado como um remetente válido no servidor. Se o endereço do remetente não estiver listado, o Postfix rejeita a mensagem com um erro.reject_authenticated_sender_login_mismatch
Rejeita a solicitação quando o cliente está autenticado com SASL, mas o endereçoMAIL FROM
não está listado em$smtpd_sender_login_maps
ou o nome de login SASL não é proprietário desse endereço. Isso impede que um cliente autenticado use um endereçoMAIL FROM
que não seja explicitamente de sua propriedade. Portanto, se um usuário autenticado tentar alterar o campoFrom
para um endereço que não esteja autorizado a usar, o Postfix rejeitará a mensagem com base nessa restrição.reject_known_sender_login_mismatch
Quando o cliente está autenticado com SASL, rejeita a solicitação quando o endereçoMAIL FROM
está listado em$smtpd_sender_login_maps
, mas o nome de login SASL não é proprietário desse endereço. Quando o cliente não está autenticado com SASL, rejeita a solicitação quando o SASL está habilitado e o endereçoMAIL FROM
está listado em$smtpd_sender_login_maps
. Isso protege qualquer endereçoMAIL FROM
listado em$smtpd_sender_login_maps
, permitindo ainda que um cliente use qualquer endereçoMAIL FROM
não listado.
smtpd_recipient_restrictions
Aplica restrições ao endereço do destinatário especificado no comando RCPT TO. Durante uma sessão SMTP, depois que o servidor recebe o comando MAIL FROM (que especifica o remetente do e-mail), o cliente SMTP envia um ou mais comandos RCPT TO para identificar os destinatários do e-mail. Cada comando RCPT TO indica um endereço de e-mail para o qual a mensagem deve ser entregue.
O servidor SMTP valida o endereço de destino. Isso pode incluir verificar se o domínio do destinatário é válido, se o endereço de e-mail existe, e se o servidor está autorizado a entregar e-mails para aquele destinatário. Se o endereço for aceito, o servidor responde com um código de status 250 (OK). Se houver algum problema, o servidor pode responder com códigos de erro, como 550 (Mailbox unavailable) ou 451 (Requested action aborted).
Resumindo, aplica restrições que ajudam a filtrar e bloquear e-mails indesejados ou potencialmente maliciosos, impedindo que spam chegue ao servidor. Ao rejeitar e-mails inválidos ou suspeitos o mais cedo possível durante a transação SMTP, o servidor economiza recursos e melhora a eficiência geral.
Opções para se usar com smtpd_recipient_restrictions
:
reject_unauth_destination
Rejeita a entrega de emails para destinatários não autorizados. Se o Postfix está configurado como umforwarder
(reenviador) de emails, ele só aceitará emails para destinatários cujos domínios correspondam a$relay_domains
ou a um subdomínio desses. Se o Postfix é o destino final dos emails, ele só aceitará emails para destinatários cujos domínios correspondam a$mydestination
,$inet_interfaces
,$proxy_interfaces
,$virtual_alias_domains
ou$virtual_mailbox_domains
. Resumindo, rejeita emails para domínios que não estão listados emmydestination
,relay_domains
, evirtual_alias_domains
.check_recipient_access
Verifica um mapa de acesso personalizado para permitir ou rejeitar destinatários específicos.reject_non_fqdn_recipient
Rejeita e-mails enviados para destinatários cujo endereço de e-mail não esteja em um formato de domínio totalmente qualificado (FQDN). Este parâmetro ajuda a garantir que os e-mails sejam enviados para domínios corretamente formatados, reduzindo o risco de problemas de entrega ou configuração incorreta.reject_unknown_recipient_domain
Rejeita e-mails enviados para destinatários cujo domínio não pode ser resolvido via DNS. Esse parâmetro é útil para evitar a aceitação de e-mails destinados a domínios inválidos ou inexistentes, o que pode ajudar a reduzir o volume de spam e e-mails indesejados.reject_unverified_recipient
Rejeita e-mails enviados para destinatários que não puderam ser verificados durante a recepção do e-mail. A verificação normalmente envolve um teste de entrega simulado para confirmar se o endereço de e-mail do destinatário existe no sistema final.
smtpd_relay_restrictions
É usado para definir as condições sob as quais o Postfix permitirá ou recusará a retransmissão (relay) de emails. Retransmitir um email significa aceitar uma mensagem de um cliente e enviá-la para um servidor de email externo. Este é um ponto crítico de segurança, pois se o servidor de email for configurado para permitir retransmissão indiscriminada, ele pode ser usado por spammers para enviar emails de forma massiva.
smtpd_client_restrictions
Define restrições baseadas no cliente que está tentando se conectar ao servidor SMTP. Esta verificação é feita no início da conexão SMTP.
Opções para se usar com smtpd_client_restrictions
:
permit_mynetworks
Permite conexões de hosts definidos na listamynetworks
.reject_unknown_client_hostname
Rejeita conexões de clientes cujo hostname não pode ser resolvido via DNS. Requer não apenas a existência dos mapeamentos de endereço para nome e nome para endereço, mas também que os dois mapeamentos reproduzam o endereço IP do cliente.check_client_access
Verifica um mapa de acesso personalizado para permitir ou rejeitar clientes.permit_sasl_authenticated
Permite a aceitação de emails de clientes que tenham se autenticado com sucesso via RFC 4954 (AUTH). Quando configurado, qualquer cliente que se autenticar corretamente pode passar pelas outras restrições de envio. É útil para permitir que usuários legítimos enviem emails, mesmo que outros controles rígidos estejam em vigor.reject_unknown_reverse_client_hostname
Rejeita emails de clientes cujo nome de host inverso (PTR) não pode ser resolvido para um nome de domínio, ou cujo nome de domínio não corresponde ao endereço IP do cliente. Isso ajuda a prevenir emails de servidores mal configurados ou falsificados.reject_unauth_pipelining
Rejeita emails de clientes que tentam usar o comando SMTP pipelining sem estar autenticados. Pipelining é uma técnica que permite ao cliente enviar múltiplos comandos SMTP em sequência sem esperar por uma resposta para cada um. Este parâmetro impede que clientes não autenticados usem essa técnica. Pipelining não autenticado pode ser usado para ataques de spam ou abuso do servidor. Ao rejeitar pipelining de clientes não autenticados, o Postfix melhora a segurança do servidor.
smtpd_helo_restrictions
Controla as restrições baseadas no comando HELO/EHLO
, que é o primeiro comando que um cliente SMTP envia ao servidor para se identificar.
Opções para se usar com smtpd_helo_restrictions
:
reject_invalid_helo_hostname
Rejeita conexões se o hostname fornecido no comando HELO/EHLO não for válido. Deve-se especificarsmtpd_helo_required = yes
para aplicar totalmente essa restrição (semsmtpd_helo_required = yes
, um cliente pode simplesmente ignorarreject_invalid_helo_hostname
não enviando HELO ou EHLO).reject_non_fqdn_helo_hostname
Rejeita se o hostname no comando HELO/EHLO não for um nome de domínio totalmente qualificado (FQDN). Deve-se especificarsmtpd_helo_required = yes
para aplicar totalmente essa restrição (semsmtpd_helo_required = yes
, um cliente pode simplesmente ignorarreject_invalid_helo_hostname
não enviando HELO ou EHLO).
É sempre bom forçar o cliente a enviar o HELO/EHLO ao iniciar uma comunicação com o servidor de email.
smtpd_end_of_data_restrictions
Aplica restrições após o recebimento completo de uma mensagem, no final do comando DATA
.
smtpd_sasl_auth_enable
Habilita a autenticação SASL no servidor SMTP do Postfix, isso significa que clientes SMTP precisam se autenticar antes de enviar e-mails através do servidor. Por padrão, o servidor SMTP do Postfix não usa autenticação. Se um cliente SMTP remoto estiver autenticado, a restrição de acesso permit_sasl_authenticated
dever ser usada para permitir que clientes possam enviar e-mails através do servidor, como mostrado abaixo:
smtpd_relay_restrictions =
permit_mynetworks, permit_sasl_authenticated, ...
Para rejeitar todas as conexões SMTP de clientes não autenticados, especifique smtpd_delay_reject = yes
(que é o padrão). Esta configuração faz com que o Postfix espere até o comando RCPT TO
antes de aplicar as restrições. Isso é útil para garantir compatibilidade com clientes SMTP e também permite que o Postfix registre informações sobre o destinatário ao rejeitar e-mails. No contexto de rejeição de clientes não autenticados, isso assegura que o Postfix só aplicará a restrição após o cliente ter fornecido todas as informações necessárias.
smtpd_client_restrictions = permit_sasl_authenticated, reject
smtp_tls_CApath
Informa o diretório com certificados de Autoridade de Certificação (CA) em formato PEM que o cliente SMTP do Postfix usa para verificar um certificado de servidor SMTP remoto. Para usar esta opção no modo chroot, este diretório (ou uma cópia) deve estar dentro da prisão chroot. Especifique tls_append_default_CA = no
para impedir que o Postfix anexe as CAs padrão fornecidas pelo sistema e confie em certificados de terceiros.
smtp_tls_note_starttls_offer
Registra o nome do host de um servidor SMTP remoto que oferece STARTTLS
, quando o TLS ainda não estiver habilitado para esse servidor. O registro do arquivo de log se parece com: postfix/smtp[pid]: Host offered STARTTLS: [name.of.host]
.
smtpd_sasl_path
Especifica informações específicas da implementação que o servidor SMTP do Postfix passa para o plug-in SASL selecionado com smtpd_sasl_type
. Normalmente, isso define o nome de um arquivo de configuração ou ponto de encontro. O valor de smtpd_sasl_path
depende do tipo de implementação SASL que você está utilizando. Aqui estão algumas configurações comuns:
Para Dovecot SASL
Se você estiver usando Dovecot SASL, que é uma opção popular para autenticação SASL com Postfix, a configuração típica éprivate/auth
. Oprivate/auth
é o socket Unix que Dovecot usa para a comunicação com o Postfix.Para Cyrus SASL com
saslauthd
Se você estiver usando o Cyrus SASL comsaslauthd
, que é um daemon separado que lida com a autenticação, a configuração pode sersmtpd_sasl_path = smtpd
. Osmtpd
é o nome da configuração de socket no arquivo de configuração dosaslauthd
.
smtpd_sasl_type
Define o tipo de plug-in SASL que o servidor SMTP do Postfix deve usar para autenticação. Os tipos disponíveis são listados com o comando postconf -a
. Basicamente é cyrus
ou dovecot
.
smtpd_discard_ehlo_keyword_address_maps
Essa configuração no Postfix especifica tabelas de pesquisa que controlam quais palavras-chave EHLO (Extended HELO) serão omitidas nas respostas do servidor SMTP para determinados clientes. Palavras-chave EHLO são informações que o servidor SMTP envia para o cliente durante o início de uma sessão SMTP, indicando quais extensões e capacidades o servidor suporta.
Essa configuração é útil para esconder certas capacidades do servidor SMTP de clientes específicos. Por exemplo, você pode querer ocultar suporte para extensões como STARTTLS
ou AUTH
de determinados clientes SMTP por questões de segurança ou compatibilidade. Você configuraria o smtpd_discard_ehlo_keyword_address_maps
assim:
smtpd_discard_ehlo_keyword_address_maps = cidr:/etc/postfix/no-tls
Agora configure o arquivo de mapa:
## postmap /etc/postfix/no-tls
192.168.10.20/32 starttls
Essa configuração omite a palavra-chave
STARTTLS
da resposta EHLO para o cliente 192.168.10.20/32.
smtp_tls_security_level
Define o nível de segurança TLS SMTP padrão para o cliente SMTP do Postfix. Quando um valor não vazio é especificado, isso substitui os parâmetros obsoletos smtp_use_tls
, smtp_enforce_tls
e smtp_tls_enforce_peername
. Quando nenhum valor é especificado para smtp_tls_enforce_peername
ou para os parâmetros obsoletos, o nível de segurança padrão do TLS SMTP é none
.
Podemos usar um dos seguintes níveis de segurança:
- none: Sem TLS. O TLS não será utilizado, a menos que seja ativado para destinos específicos via
smtp_tls_policy_maps
. - may: TLS oportunista. Usa TLS se for suportado pelo servidor SMTP remoto; caso contrário, usa texto simples. Após uma falha na negociação ou sessão TLS, reverte para texto simples se a mensagem estiver na fila de e-mails por um tempo mínimo.
- encrypt: Criptografia TLS obrigatória. Um nível mínimo de segurança é especificado para os protocolos TLS e ciphers. Adequado para situações onde um nível de segurança mais alto é necessário.
- dane: TLS oportunista com DANE. A política TLS para o destino é obtida via DNSSEC. Os registros TLSA devem ser publicados e validados.
- dane-only: TLS DANE obrigatório. Exige autenticação TLSA com DANE. Não há fallback para "may" ou "encrypt" se os registros TLSA estiverem ausentes ou não utilizáveis.
- fingerprint: Verificação de impressão digital do certificado. Sem autoridades certificadoras confiáveis. A confiança é baseada na impressão digital do certificado ou chave pública.
- verify: Verificação obrigatória de TLS. A segurança é baseada em buscas DNS MX e no nome verificado no certificado do servidor.
- secure: TLS de canal seguro. A verificação do nome no certificado do servidor é baseada no domínio do próximo salto.
Abaixo seguem exemplos de configuração possíveis:
# Sem TLS.
smtp_tls_security_level = none
# TLS oportunista.
smtp_tls_security_level = may
smtp_tls_ciphers = medium
smtp_tls_protocols = >=TLSv1
# Criptografia TLS obrigatória (alta qualidade).
smtp_tls_security_level = encrypt
smtp_tls_mandatory_ciphers = high
# TLS autenticado 1.2 ou melhor.
smtp_tls_security_level = secure
smtp_tls_mandatory_ciphers = high
smtp_tls_mandatory_protocols = >=TLSv1.2
smtp_tls_secure_cert_match = nexthop, dot-nexthop
# Verificação de impressão digital (Postfix ≥ 2.5).
smtp_tls_security_level = fingerprint
smtp_tls_fingerprint_cert_match = 3D:95:34:51:...:40:99:C0:C1
smtp_sasl_tls_security_options
Opções de segurança de autenticação SASL que o cliente SMTP do Postfix usa para sessões SMTP criptografadas por TLS.
reject_unauth_pipelining
Este parâmetro é usado para rejeitar conexões SMTP de clientes que enviam comandos SMTP antecipadamente (antes de receber uma resposta do servidor), quando isso não é permitido ou quando o cliente não sabe se o Postfix realmente suporta o pipelining de comandos ESMTP. O pipelining de comandos ESMTP é uma técnica usada por alguns clientes SMTP para enviar múltiplos comandos antes de receber a resposta para o primeiro comando, o que pode acelerar a entrega de emails. No entanto, essa técnica pode ser abusada por software de envio em massa que tenta acelerar as entregas de forma inadequada.
Com o Postfix 2.6 e posteriores o servidor SMTP do Postfix define uma flag por sessão sempre que detecta pipelining ilegal, como comandos HELO ou EHLO pipelined. O reject_unauth_pipelining
verifica se essa flag foi definida em algum momento durante a sessão.
smtpd_tls_loglevel
O parâmetro smtpd_tls_loglevel
controla o nível de detalhes do log de atividades relacionadas ao TLS no servidor SMTP do Postfix. O objetivo é ajudar a diagnosticar problemas com a comunicação segura usando TLS. Os níveis de log são:
0 (Desativado):
Desativa completamente o log de atividades TLS. Usado quando você não precisa de informações detalhadas sobre TLS e quer minimizar a quantidade de log gerado.1 (Sumário)
Registra apenas uma mensagem resumida quando o handshake TLS é concluído. Não registra erros de verificação da cadeia de certificação do cliente, se a verificação do certificado do cliente não for necessária. Ideal para um nível básico de monitoramento sem inundar os logs com detalhes extensivos.2 (Detalhado)
Habilita o log detalhado na biblioteca TLS do Postfix, registra operações do cache de sessão e ativa o log do OpenSSL sobre o progresso do handshake SSL. Útil para diagnosticar problemas relacionados ao processo de handshake TLS e cache de sessões.3 (Negociação)
Registra o dump hexadecimal e ASCII do processo de negociação TLS. Fornece uma visão mais profunda sobre o processo de negociação TLS, útil para análises detalhadas de problemas.4 (Transmissão Completa)
Registra o dump hexadecimal e ASCII da transmissão completa após o início do TLS (STARTTLS). Extremamente detalhado e geralmente não recomendado, pois pode gerar grandes volumes de dados e revelar informações sensíveis.
Não use smtpd_tls_loglevel = 2
ou superior, exceto em caso de problemas. O uso de loglevel 4 é fortemente desencorajado.
smtpd_use_tls
Habilita o anuncio para o suporte a STARTTLS para clientes SMTP remotos, mas não exige que os clientes usem criptografia TLS, ou seja, habilita o TLS nas comunicações entre clientes e servidores remotos, mas não obriga que eles usem TLS, podem usar ou não.
smtpd_tls_auth_only
O parâmetro smtpd_tls_auth_only
controla se o Postfix deve permitir autenticação SASL (Simple Authentication and Security Layer) apenas através de conexões criptografadas por TLS (Transport Layer Security).
Possíveis opções:
no
O Postfix permite autenticação SASL tanto em conexões criptografadas quanto em conexões não criptografadas. Em outras palavras, se a conexão não estiver protegida por TLS, a autenticação SASL ainda poderá ser realizada.yes
O Postfix só anunciará e aceitará autenticação SASL se a conexão estiver protegida por TLS. Isso significa que, se um cliente tentar se autenticar sem uma conexão TLS, a autenticação será rejeitada.
proxy_write_maps
O parâmetro proxy_write_maps
define quais tabelas de busca o servidor proxymap(8)
está autorizado a acessar para serviços de leitura e escrita no Postfix. É relevante quando você utiliza o proxymap
para consultar mapas externos ou internos. O parâmetro proxy_write_maps
especifica quais dessas tabelas podem ser usadas para operações de leitura e escrita, garantindo que o proxymap
tenha permissão para manipular essas tabelas.
As referências de tabela que não começam com proxy:
são ignoradas, o que significa que apenas tabelas configuradas com o prefixo proxy:
são consideradas para acesso de leitura e escrita. A configuração padrão é:
proxy_write_maps = $smtp_sasl_auth_cache_name $lmtp_sasl_auth_cache_name $address_verify_map
Com base na configuração padrão fornecida para proxy_write_maps
, aqui está uma explicação detalhada:
$smtp_sasl_auth_cache_name
Este parâmetro refere-se ao nome do cache de autenticação SASL para SMTP. Oproxymap
é autorizado a acessar e manipular o cache de autenticação SASL que armazena credenciais de autenticação SMTP. Isso garante que o processoproxymap
possa acessar e atualizar o cache de autenticação SASL para SMTP, facilitando a autenticação de usuários e evitando a necessidade de verificações repetidas.$lmtp_sasl_auth_cache_name
Similar ao parâmetro acima, mas para autenticação SASL no contexto LMTP (Local Mail Transfer Protocol). Define o nome do cache de autenticação SASL para o serviço LMTP. Permite que oproxymap
gerencie o cache de autenticação SASL para conexões LMTP, ajudando na autenticação de clientes LMTP.$address_verify_map
Refere-se à tabela de verificação de endereços. Oproxymap
pode acessar e manipular esta tabela para validar e verificar endereços de e-mail. É utilizado para assegurar que os endereços de e-mail são verificados corretamente, facilitando a detecção de endereços inválidos ou malformados.
smtp_tls_key_file
O parâmetro smtp_tls_key_file
especifica o arquivo que contém a chave privada RSA usada pelo cliente SMTP do Postfix para estabelecer conexões TLS. A configuração correta desse arquivo é crucial para garantir que as comunicações do cliente SMTP estejam seguras. O valor padrão é $smtp_tls_cert_file
, que indica que o arquivo da chave privada é o mesmo arquivo usado para o certificado do cliente. No entanto, isso é apenas uma configuração padrão; em uma configuração real, o arquivo da chave privada geralmente é separado do arquivo do certificado.
Se você optar por usar um arquivo separado para a chave privada, a configuração seria algo como:
smtp_tls_key_file = /etc/postfix/ssl/private_key.pem
Neste exemplo, /etc/postfix/ssl/private_key.pem
é o caminho para o arquivo da chave privada. Se você está utilizando o mesmo arquivo para o certificado e a chave, o exemplo que você forneceu é adequado:
smtp_tls_key_file = $smtp_tls_cert_file
smtp_tls_cert_file
O parâmetro smtp_tls_cert_file
especifica o arquivo contendo o certificado RSA do cliente SMTP usado pelo Postfix. Este certificado é utilizado para autenticar o cliente SMTP perante servidores remotos durante o estabelecimento de conexões TLS. Se você precisar configurar um arquivo de certificado para o cliente SMTP, pode definir o parâmetro da seguinte forma:
smtp_tls_cert_file = /etc/postfix/chain.pem
smtp_enforce_tls
O parâmetro smtp_enforce_tls
controla a obrigatoriedade de criptografia TLS para conexões SMTP no Postfix. Quando ativado, ele garante que todas as mensagens sejam enviadas apenas por conexões seguras, e não em texto claro. Para mais detalhes consulte aqui.
smtpd_tls_auth_only
O parâmetro smtpd_tls_auth_only
controla a aceitação de autenticação SASL (Simple Authentication and Security Layer) apenas sobre conexões criptografadas TLS no servidor SMTP do Postfix.
Possíveis opções:
no
O servidor SMTP do Postfix aceitará autenticação SASL tanto em conexões criptografadas quanto não criptografadas.yes
O servidor SMTP do Postfix somente permitirá autenticação SASL em conexões que utilizam TLS. Se uma conexão não estiver criptografada, a autenticação SASL será recusada.
smtp_tls_mandatory_protocols
O parâmetro smtp_tls_mandatory_protocols
especifica os protocolos TLS que o cliente SMTP do Postfix deve usar quando TLS é obrigatório. Isso ajuda a garantir que apenas protocolos seguros e modernos sejam utilizados durante as comunicações TLS. Os nomes dos protocolos incluem "SSLv2", "SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2" e "TLSv1.3". A partir do Postfix 3.6, você pode usar uma sintaxe mais avançada para definir versões mínimas e máximas de protocolos.
Possíveis opções:
Versão Mínima
Defina o limite inferior com>=version
, ondeversion
pode ser um nome de protocolo ou um número hexadecimal (por exemplo,>=TLSv1.2
ou>=0x0303
para TLS 1.2).Versão Máxima
Defina o limite superior com<=version
(por exemplo,<=TLSv1.3
ou<=0x0305
para TLS 1.4, se suportado).
smtp_tls_mandatory_ciphers
O parâmetro smtp_tls_mandatory_ciphers
define o nível mínimo de criptografia (cipher grade) que o cliente SMTP do Postfix deve usar ao aplicar TLS obrigatório. Este parâmetro assegura que apenas algoritmos de criptografia seguros e adequados sejam utilizados durante a comunicação TLS, conforme definido pelas especificações de segurança.
Possíveis opções:
high
Permite apenas cifras de "HIGH" grade, que são consideradas altamente seguras. Ideal quando todos os destinos obrigatórios suportam cifras de alta segurança. A lista de cifras subjacente é configurada através do parâmetrotls_high_cipherlist
.medium
Permite cifras de "MEDIUM" grade ou superiores. É a configuração padrão e geralmente adequada para a maioria dos destinos. A lista de cifras subjacente é configurada através do parâmetrotls_medium_cipherlist
.null
Permite apenas cifras de "NULL", que fornecem autenticação sem criptografia. Isso é apropriado em casos raros onde todos os servidores estão preparados para usar cifras NULL, como servidores LMTP em sockets UNIX. A lista de cifras subjacente é configurada através do parâmetrotls_null_cipherlist
.low
Permite cifras de "LOW" grade ou mais fortes. Em versões do Postfix ≥ 3.8, este nível é idêntico a "medium" devido à ausência de cifras "LOW" em versões recentes do OpenSSL. A lista de cifras subjacente é configurada através do parâmetrotls_low_cipherlist
, mas este nível é obsoleto e não recomendado.export
Permite cifras de "EXPORT" grade ou mais fortes. Em Postfix ≥ 3.8, este nível também é idêntico a "medium". O suporte para cifras "EXPORT" foi removido em versões recentes do OpenSSL. A lista de cifras subjacente é configurada através do parâmetrotls_export_cipherlist
, mas este nível é obsoleto e não recomendado.
smtp_tls_security_level
O parâmetro smtp_tls_security_level
define o nível padrão de segurança TLS para o cliente SMTP do Postfix. Quando um valor é especificado, ele substitui os parâmetros obsoletos como smtp_use_tls
, smtp_enforce_tls
e smtp_tls_enforce_peername
. Se nenhum valor for especificado, o nível de segurança padrão é none
.
Possíveis opções:
none
Não usa TLS. O TLS só será utilizado se ativado para destinos específicos viasmtp_tls_policy_maps
.may
TLS oportunista. Usa TLS se suportado pelo servidor SMTP remoto; caso contrário, usa texto claro. Após uma falha na negociação TLS, o envio em texto claro é permitido se a mensagem ficou na fila de correio pelo tempo mínimo configurado (minimal_backoff_time
). As configurações desmtp_tls_ciphers
esmtp_tls_protocols
(Postfix ≥ 2.6) controlam os protocolos e o grau de cifra utilizados. Quando o TLS falha, a conexão é tentada novamente sem TLS.encrypt
Criptografia TLS obrigatória. Requer um nível mínimo de segurança, com protocolos e cifras seguras configuradas através dos parâmetrossmtp_tls_mandatory_protocols
esmtp_tls_mandatory_ciphers
. Não é recomendado como configuração padrão para sistemas que entregam e-mails para a Internet.dane
DANE TLS oportunista. A política TLS para o destino é obtida via DNSSEC. O domínio de destino deve estar assinado e o sistema operacional deve estar configurado para enviar consultas DNS para um servidor de nomes recursivo que pode validar os registros assinados. Quando registros TLSA não são encontrados, o nível de segurança efetivo émay
. Quando registros TLSA são encontrados, mas são todos inutilizáveis, o nível de segurança efetivo éencrypt
. As cifras e protocolos fracos são desativados neste nível.dane-only
DANE TLS obrigatório. Semelhante ao níveldane
, mas a autenticação DANE TLSA é obrigatória. Não há fallback paramay
ouencrypt
se os registros TLSA estiverem ausentes ou forem inutilizáveis.fingerprint
Verificação de impressão digital do certificado. Não há autoridades de certificação confiáveis. Em vez disso, o parâmetrosmtp_tls_fingerprint_cert_match
lista a impressão digital ou a chave pública do certificado do servidor válido. O algoritmo de digest usado para calcular a impressão digital é selecionado pelo parâmetrosmtp_tls_fingerprint_digest
.verify
Verificação TLS obrigatória. As pesquisas DNS MX são confiáveis o suficiente para verificar o nome do servidor certificado. O parâmetrosmtp_tls_verify_cert_match
controla como o nome do servidor é verificado.secure
TLS de canal seguro. As pesquisas DNS MX são usadas para determinar os endereços IP dos gateways próximos, mas não são confiáveis o suficiente para verificação do nome do peer TLS. O nome padrão verificado no certificado do servidor é obtido do domínio de próximo salto especificado no parâmetrosmtp_tls_secure_cert_match
.
smtpd_helo_required
Exije que um cliente SMTP remoto se apresente com o comando HELO
ou EHLO
antes de enviar o comando MAIL
ou outros comandos que exijam negociação EHLO
.
smtpd_delay_reject
Rejeitar todas as conexões SMTP de clientes não autenticados, o valor padrão é yes
.
smtpd_tls_security_level
O parâmetro smtpd_tls_security_level
define o nível padrão de segurança TLS para o servidor SMTP do Postfix. Quando um valor não vazio é especificado, ele substitui os parâmetros obsoletos smtpd_use_tls
e smtpd_enforce_tls
. Este parâmetro é ignorado quando smtpd_tls_wrappermode = yes
.
Possíveis opções:
none
O TLS não será usado. O servidor não anunciará suporte para STARTTLS.may
TLS Oportunista. O servidor anuncia suporte para STARTTLS para clientes SMTP remotos, mas não exige que os clientes usem criptografia TLS. O uso de TLS é opcional para os clientes SMTP. Isso permite a comunicação em texto claro se o cliente não suportar TLS.encrypt
Criptografia TLS Obrigatória. O servidor anuncia suporte para STARTTLS e rejeita todos os comandos em texto claro, exceto HELO, EHLO, XCLIENT, STARTTLS, NOOP, QUIT, e (Postfix ≥ 3.9) HELP. Este nível deve ser usado em servidores dedicados, como servidores desubmissão
(porta 587). Não é recomendado para servidores SMTP publicamente acessíveis, conforme RFC 2487.
smtpd_tls_protocols
O parâmetro smtpd_tls_protocols
define quais versões dos protocolos TLS são aceitas pelo servidor SMTP do Postfix quando o TLS é opcional (opportunistic). Se o valor estiver vazio, o servidor suportará todas as versões de protocolo TLS disponíveis. Um valor não vazio especifica uma lista de nomes de protocolos a serem incluídos ou excluídos, separados por espaços em branco, vírgulas ou dois-pontos.
A partir do Postfix 3.6, a maneira preferida de limitar o intervalo de protocolos aceitáveis é definir a versão mínima e/ou a versão máxima aceitável do protocolo TLS. Para definir o limite inferior, inclua um elemento da forma: >=version
, onde version
pode ser um dos nomes de protocolos TLS listados acima ou um número hexadecimal correspondente à versão do TLS desejado (0301 para TLS 1.0, 0302 para TLS 1.1, etc.). Para o limite superior, use <=version
. Não deve haver espaços em branco entre os símbolos >=
ou <=
e o nome ou número do protocolo.
smtpd_tls_mandatory_protocols
O parâmetro smtpd_tls_mandatory_protocols
define quais versões dos protocolos TLS são aceitas pelo servidor SMTP do Postfix quando o TLS é obrigatório. Se o valor estiver vazio, o servidor suportará todas as versões de protocolo TLS disponíveis. Um valor não vazio especifica uma lista de nomes de protocolos a serem incluídos ou excluídos, separados por espaços em branco, vírgulas ou dois-pontos.
A partir do Postfix 3.6, a maneira preferida de limitar o intervalo de protocolos aceitáveis é definir a versão mínima e/ou a versão máxima aceitável do protocolo TLS. Para definir o limite inferior, inclua um elemento da forma: >=version
, onde version
pode ser um dos nomes de protocolos TLS listados acima ou um número hexadecimal correspondente à versão do TLS desejado (0301 para TLS 1.0, 0302 para TLS 1.1, etc.). Para o limite superior, use <=version
. Não deve haver espaços em branco entre os símbolos >=
ou <=
e o nome ou número do protocolo.
smtpd_tls_exclude_ciphers
O parâmetro smtpd_tls_exclude_ciphers
permite excluir certos algoritmos de cifra da lista de cifras aceitas pelo servidor SMTP do Postfix em todos os níveis de segurança TLS. Excluir cifras válidas pode causar problemas de interoperabilidade, portanto, deve-se evitar a exclusão de cifras a menos que seja essencial.
tls_high_cipherlist
O parâmetro tls_high_cipherlist
define quais cifras (ou algoritmos de criptografia) são usadas para conexões TLS que são classificadas como de "alta" segurança. Esse parâmetro é importante para os seguintes tipos de configurações no Postfix:
smtpd_tls_ciphers
smtpd_tls_mandatory_ciphers
smtp_tls_ciphers
smtp_tls_mandatory_ciphers
lmtp_tls_ciphers
lmtp_tls_mandatory_ciphers
Quando você configura um parâmetro para usar cifras "high", está dizendo ao servidor de e-mail para usar algoritmos de criptografia considerados muito seguros. Se não tiver certeza, mantenha o valor padrão. Ele já é configurado para oferecer um bom nível de segurança.
smtpd_tls_mandatory_ciphers
Define o nível mínimo de segurança das cifras de TLS que o servidor SMTP do Postfix usará quando a criptografia TLS é obrigatória.
Possíveis opções:
high
Usa apenas cifras de "alta" segurança. A lista de cifras é especificada pelo parâmetrotls_high_cipherlist
. Não é recomendado alterar o valor padrão detls_high_cipherlist
.medium
Usa cifras de "média" segurança ou melhores. Essas cifras têm chaves de criptografia simétrica de 128 bits ou mais longas. A lista de cifras é especificada pelo parâmetrotls_medium_cipherlist
. Este é o valor padrão e é considerado suficientemente seguro para a maioria das situações.null
Usa cifras "NULL" que fornecem apenas autenticação, sem criptografia. A lista de cifras é especificada pelo parâmetrotls_null_cipherlist
. Esta configuração é rara e não é recomendada para a maioria dos ambientes.low
Usa cifras de "baixa" segurança. No Postfix 3.8 ou mais recente, este nível é igual ao "medium". Anteriormente, as cifras eram especificadas pelo parâmetrotls_low_cipherlist
, que agora é obsoleto. Esta configuração é obsoleta e não deve ser usada.export
Usa cifras "EXPORT" que têm um nível de segurança mais baixo, adequadas para exportações. Anteriormente, as cifras eram especificadas pelo parâmetrotls_export_cipherlist
, que agora é obsoleto. Esta configuração é obsoleta e não deve ser usada.
smtpd_tls_ciphers
Define o nível mínimo de segurança das cifras de TLS que o servidor SMTP do Postfix usará quando a criptografia TLS é opcional (ou seja, quando o servidor oferece suporte para STARTTLS mas não exige).
Possíveis opções:
high
Usa apenas cifras de "alta" segurança. A lista de cifras é especificada pelo parâmetrotls_high_cipherlist
. Não é recomendado alterar o valor padrão detls_high_cipherlist
.medium
Usa cifras de "média" segurança ou melhores. Estas cifras têm chaves de criptografia simétrica de 128 bits ou mais. A lista de cifras é especificada pelo parâmetrotls_medium_cipherlist
. Este é o valor padrão para Postfix versões lançadas após meados de 2015.export
Usa cifras de "exportação" com um nível de segurança mais baixo, apropriadas para exportação. Anteriormente, as cifras eram especificadas pelo parâmetrotls_export_cipherlist
. Esta configuração era o padrão para versões mais antigas do Postfix e agora é obsoleta.
smtpd_tls_dh1024_param_file
Especifica o arquivo contendo parâmetros DH (Diffie-Hellman) de 1024 bits que o servidor SMTP do Postfix deve usar com cifras EDH (Ephemeral Diffie-Hellman) não exportáveis. Esses parâmetros são usados durante o processo de negociação de chave para fornecer segurança adicional. O Diffie-Hellman é um algoritmo criptográfico fundamental utilizado para troca segura de chaves. Desenvolvido por Whitfield Diffie e Martin Hellman em 1976, ele permite que duas partes estabeleçam uma chave secreta compartilhada sobre um canal de comunicação inseguro, sem que tenham que trocar a chave diretamente.
Se o valor do parâmetro for vazio ou "auto", a seleção dos parâmetros DH é delegada à biblioteca OpenSSL. A OpenSSL seleciona os parâmetros apropriados com base na negociação TLS. Este é o método mais interoperável com diversos clientes SMTP, e parâmetros personalizados não são mais recomendados. Parâmetros de 2048 bits são recomendados por serem suficientemente seguros e não causarem problemas de desempenho significativos. Embora o nome do parâmetro faça referência a "1024", o ideal é usar 2048 bits para maior segurança. É seguro compartilhar o mesmo arquivo de parâmetros DH entre várias instâncias do Postfix. Se preferir, você pode gerar parâmetros separados para cada instância.
Configurar smtpd_tls_dh1024_param_file
para usar um arquivo específico com parâmetros DH não elimina a necessidade de garantir uma boa fonte de entropia para a geração de números aleatórios, por exemplo, tls_random_source = file:/dev/random
. Mesmo que você defina smtpd_tls_dh1024_param_file
, o sistema ainda precisa de uma boa fonte de entropia para operações criptográficas em geral. O tls_random_source
assegura que o sistema tenha uma fonte confiável de aleatoriedade, que é fundamental para outras operações além da troca de chaves DH.
tls_preempt_cipherlist
O parâmetro tls_preempt_cipherlist
controla a ordem de preferência dos cifradores (ciphers) em uma negociação TLS entre o servidor SMTP e o cliente. Vamos explorar como ele funciona e as implicações de sua configuração:
Possíveis opções:
no
O servidor SMTP segue a ordem de preferência dos cifradores fornecida pelo cliente. O servidor escolhe o cifrador mais forte da lista oferecida pelo cliente que também é suportado pelo servidor.yes
O servidor SMTP usa sua própria ordem de preferência de cifradores para escolher o cifrador mais adequado. O servidor pode optar por um cifrador que prefere, mesmo que o cliente tenha uma ordem diferente.
tls_ssl_options
O parâmetro tls_ssl_options
no Postfix permite configurar opções específicas do OpenSSL para ajustar o comportamento da criptografia TLS. As opções são configuradas como uma lista separada por espaços ou vírgulas, ou por meio de uma máscara hexadecimal.
Possíveis opções:
ENABLE_MIDDLEBOX_COMPAT
Habilita compatibilidade com middleboxes (dispositivos intermediários que podem alterar o tráfego TLS). Útil para resolver problemas de interoperabilidade com dispositivos de rede intermediários que manipulam conexões TLS. Disponível no Postfix ≥ 3.4.LEGACY_SERVER_CONNECT
Ajusta opções de compatibilidade para conexões com servidores mais antigos. Não é comum de ser usada, pois pode afetar a segurança.NO_TICKET
Desativa a retomada de sessão TLS usando tickets. Por padrão, é ativado para Postfix ≥ 2.7, mas não é necessário para Postfix ≥ 2.11, a menos que você não queira suportar retomada de sessão.NO_COMPRESSION
Desativa a compressão SSL, mesmo que suportada pela biblioteca OpenSSL. A compressão pode ser intensiva em CPU e não melhora a segurança, pois a compressão antes da criptografia pode ser vulnerável a ataques.NO_RENEGOTIATION
Impede renegociações TLS, que podem ser exploradas para ataques de exaustão de CPU. Disponível no Postfix ≥ 3.4.NO_SESSION_RESUMPTION_ON_RENEGOTIATION
Desativa a retomada de sessão se houver renegociação. Ajuda a prevenir alguns tipos de ataques relacionados a sessões TLS. Disponível no Postfix ≥ 3.4.PRIORITIZE_CHACHA
Prioriza o uso do cifrador ChaCha20, que pode ser mais eficiente em dispositivos móveis e CPUs com criptografia acelerada por hardware. Disponível no Postfix ≥ 3.4.
smtpd_tls_eecdh_grade
O parâmetro smtpd_tls_eecdh_grade
configura a força de segurança para a troca de chaves usando EECDH (Elliptic-Curve Diffie-Hellman efêmero) durante as conexões TLS. A partir do Postfix 3.6, esse parâmetro é sempre ignorado, e o comportamento padrão é como se o valor auto
fosse escolhido, o que proporciona a melhor curva suportada tanto pelo cliente quanto pelo servidor.
Possíveis opções:
auto
Seleciona automaticamente a curva elíptica mais preferida e suportada pelo cliente e servidor. Esse é o comportamento padrão para Postfix ≥ 3.2 quando compilado e vinculado ao OpenSSL ≥ 1.0.2, e a única opção usada no Postfix ≥ 3.6. Maximiza a compatibilidade e segurança sem intervenção manual.none
Desativa o uso de EECDH. Cifras baseadas na troca de chaves EECDH são desabilitadas. Essa era a configuração padrão nas versões 2.6 e 2.7 do Postfix. Pode diminuir a segurança, pois desativa ciphers que oferecem segredo perfeito (Forward Secrecy).strong
Usa EECDH com aproximadamente 128 bits de segurança, oferecendo um bom equilíbrio entre segurança e desempenho computacional. Essa era a configuração padrão nas versões 2.8 a 3.5 do Postfix. Oferece um nível de segurança robusto sem comprometer muito o desempenho.ultra
Usa EECDH com aproximadamente 192 bits de segurança, o que aumenta significativamente a segurança, mas ao custo de maior processamento. Maior custo computacional, o que pode impactar o desempenho.
Para o Postfix 3.6 ou superior não há necessidade de configurar este parâmetro manualmente, pois o Postfix usa automaticamente a curva mais adequada e suportada (auto
).
Para o Postfix 3.5 ou inferior a escolha do valor depende do equilíbrio desejado entre segurança e desempenho. strong
oferece uma boa combinação, enquanto ultra
deve ser usado somente se o foco for máxima segurança, e o impacto no desempenho for aceitável.
tls_eecdh_ultra_curve
O parâmetro tls_eecdh_ultra_curve
no Postfix define a curva elíptica usada para a troca de chaves ECDH efêmera (Ephemeral Elliptic-Curve Diffie-Hellman) de máxima força quando o smtpd_tls_eecdh_grade
está definido como ultra
. Essa configuração visa proporcionar aproximadamente 192 bits de segurança, que é uma das mais altas disponíveis, mas com um custo computacional significativo.
Possíveis opções:
Curva Padrão
A curva elíptica padrão usada para a configuraçãoultra
ésecp384r1
, que oferece uma segurança robusta equivalente a 192 bits.Recomendação
A maioria dos usuários não deve alterar essa configuração, pois a curva padrão é bem suportada e considerada segura para uso em comunicações classificadas até o nível de "TOP SECRET" pela NSA (National Security Agency) dos Estados Unidos, como parte do NSA Suite B.
postscreen_greet_action
O parâmetro postscreen_greet_action
no Postfix define a ação que o serviço postscreen(8)
deve tomar quando um cliente SMTP remoto fala antes de sua vez, ou seja, antes do tempo especificado no parâmetro postscreen_greet_wait
. Essa situação ocorre quando o cliente envia dados antes de receber uma saudação do servidor, o que pode indicar comportamento suspeito ou malicioso, como o de alguns bots de spam.
Possíveis opções:
ignore (padrão)
Opostscreen
ignora essa falha, permite que outros testes sejam realizados, e repete o teste na próxima vez que o cliente tentar se conectar. Esta opção é útil quando você deseja coletar estatísticas e monitorar o comportamento de clientes sem bloquear imediatamente o correio. É ideal para ambientes de teste.enforce
Opostscreen
permite que outros testes sejam realizados, mas rejeita tentativas de entrega de correio com uma resposta SMTP 550 (indica falha permanente), além de registrar informações como helo/sender/recipient. Esta opção é adequada quando você deseja começar a aplicar restrições, mas ainda quer que todos os testes sejam executados antes de rejeitar o correio.drop
Opostscreen
encerra a conexão imediatamente com uma resposta SMTP 521, sem executar outros testes.Esta opção é utilizada para bloquear agressivamente clientes que demonstram comportamento suspeito, cortando a comunicação de forma imediata.
Independentemente da ação escolhida (ignore
, enforce
ou drop
), o postscreen
repetirá este teste em futuras conexões do mesmo cliente, já que o endereço IP do cliente SMTP remoto não é colocado na lista de permissões (allowlist). Escolher entre enforce
e drop
depende do equilíbrio que você deseja alcançar entre segurança e usabilidade. drop
é mais seguro, mas pode resultar em falsos positivos e perda de correio legítimo, enquanto enforce
é menos rigoroso, mas ainda fornece um nível significativo de proteção.
disable_vrfy_command
O parâmetro disable_vrfy_command
controla se o comando SMTP VRFY
deve ser desabilitado ou não. O comando VRFY
é usado para verificar se um endereço de email é válido no servidor sem realmente enviar uma mensagem. Embora tenha sido útil no passado para depuração e diagnósticos, ele pode ser explorado por spammers ou atacantes para descobrir endereços de email válidos em um domínio, uma técnica conhecida como "email address harvesting".
Possíveis opções:
no (padrão)
O comandoVRFY
permanece habilitado. Isso permite que remetentes remotos enviem uma solicitação para verificar a validade de um endereço de email. Deixar o comando habilitado pode representar um risco de segurança, pois facilita a descoberta de endereços de email válidos no seu domínio.yes
O comandoVRFY
é desabilitado. Quando um remetente remoto tenta usar o comando, o servidor não responde com a confirmação da validade do endereço de email. Desabilitar o comando ajuda a proteger seu servidor contra a coleta automatizada de endereços de email, dificultando a vida dos spammers.
address_verify_map
O parâmetro address_verify_map
especifica a tabela de consulta usada para armazenar de forma persistente o status de verificação de endereços de email. Esse status é mantido pelo serviço verify(8)
, que lida com a verificação de endereços remetidos ao servidor SMTP, como quando a funcionalidade de verificação de endereços (address_verify
) está ativada. A principal função dessa tabela é lembrar o resultado das verificações de endereço para evitar a necessidade de verificar repetidamente os mesmos endereços, o que pode economizar tempo e recursos. Esses endereços de email correspondem a endereços de destinatários externos que estão sendo verificados pelo servidor SMTP antes de aceitar ou rejeitar emails destinados a eles.
Para configurar o address_verify_map
com um banco de dados de hash, a configuração poderia ser assim:
address_verify_map = proxy:btree:$data_directory/verify_cache
A configuração correta do address_verify_map
é fundamental para garantir a eficiência e a estabilidade do seu servidor de email, especialmente em ambientes de alto volume.
show_user_unknown_table_name
O parâmetro show_user_unknown_table_name
controla se o nome da tabela de destinatários será exibido nas respostas de erro quando um endereço de email não for encontrado.
Possíveis opções:
yes (Padrão)
Quando este valor está definido, o Postfix incluirá o nome da tabela de destinatários na resposta de erro "User unknown". Isso pode ser útil para administradores de email que precisam diagnosticar problemas rapidamente, já que a mensagem de erro fornecerá mais detalhes sobre onde o problema foi encontrado.no
Se você definir este parâmetro comono
, o Postfix omitirá o nome da tabela de destinatários na resposta de erro. Isso pode aumentar a segurança ao não expor detalhes da configuração interna do servidor de email, mas pode dificultar o diagnóstico de problemas.
local_recipient_maps
O parâmetro local_recipient_maps
no Postfix define as tabelas de consulta que contêm todos os nomes ou endereços de destinatários locais. Um destinatário é considerado local quando seu domínio corresponde a um dos seguintes parâmetros: $mydestination
, $inet_interfaces
, ou $proxy_interfaces
. O Postfix usa as tabelas definidas em local_recipient_maps
para determinar se um endereço de email local é válido. Quando um email é recebido, o servidor Postfix verifica se o destinatário existe em uma dessas tabelas. Se o endereço não for encontrado, o Postfix rejeita a mensagem com um erro de "destinatário desconhecido".
A configuração padrão é proxy:unix:passwd.byname
, que refere-se ao arquivo /etc/passwd
, que contém as contas de usuários do sistema. Já $alias_maps
refere-se às tabelas de alias configuradas, que podem redirecionar emails para outras contas. Você pode usar @domain
como um curinga para indicar que um domínio não tem uma lista válida de destinatários. Isso pode ser útil em situações onde você deseja rejeitar todos os emails para um domínio específico.
smtp_dns_support_level
O parâmetro smtp_dns_support_level
controla o nível de suporte ao DNS no cliente SMTP do Postfix. Esse parâmetro é crucial para definir como o Postfix interage com o DNS, especialmente quando se lida com a entrega de emails na Internet pública e quando se considera a segurança das consultas DNS, como com o DNSSEC.
Possíveis opções:
disabled
Desativa as consultas DNS. Neste modo, nenhuma pesquisa de registros MX é realizada, e a resolução de nomes de host para endereços IP é feita de forma "nativa". Isso não é recomendado para servidores que entregam emails na Internet pública.enabled
Ativa as consultas DNS. Neste modo, os domínios de destino que não estiverem entre colchetes ([]
) serão submetidos a consultas MX. Se o parâmetrosmtp_host_lookup
incluir "dns" e "native", as consultas DNS serão realizadas primeiro, seguidas por consultas nativas se nenhuma resposta for encontrada no DNS. Recomendado para a maioria das implementações do Postfix que interagem com a Internet pública.dnssec
Ativa as consultas DNS com suporte ao DNSSEC. Essa configuração realiza consultas DNSSEC para obter respostas validadas. Se a resposta for validada com DNSSEC, os nomes de host associados também são considerados validados. Em caso de falha temporária nas resoluções de nomes com DNSSEC, o Postfix não realizará consultas nativas, a menos que haja uma falha completa na resolução via DNSSEC. É recomendado apenas se você planeja usar os níveis de segurança TLS "dane" ou "dane-only". Caso contrário, habilitar o DNSSEC não oferece segurança adicional significativa.
milter_protocol
O parâmetro milter_protocol
define a versão do protocolo de filtro de email (Milter) usada para comunicação entre o Postfix e uma aplicação Milter. O valor desse parâmetro é enviado pelo Postfix durante a troca inicial de protocolo e deve corresponder à versão esperada pela aplicação Milter ou pela biblioteca Milter associada. Os Milters (Mail Filters) são módulos externos que se integram ao Postfix para realizar processamento adicional nas mensagens de email. O Rspamd é um excelente exemplo de um filtro de email que pode ser usado com o Postfix para melhorar a filtragem de spam e a segurança do email e se conecta no Postfix usando Milter.
Possíveis opções:
Versão 2
Utiliza a versão 2 do protocolo de filtro de email do Sendmail 8. Este era o padrão no Sendmail versão 8.11 a 8.13 e no Postfix versão 2.3 a 2.5.Versão 3
Utiliza a versão 3 do protocolo de filtro de email do Sendmail 8. Versão intermediária, usada em algumas versões do Sendmail.Versão 4
Utiliza a versão 4 do protocolo de filtro de email do Sendmail 8. Outra versão intermediária, usada em versões mais recentes do Sendmail antes da versão 8.14.Versão 6 (Padrão)
Utiliza a versão 6 do protocolo de filtro de email do Sendmail 8. Esta é a versão padrão no Sendmail versão 8.14 e no Postfix versão 2.6 e posteriores.no_header_reply
Especifica que a aplicação Milter não responderá a cada cabeçalho de mensagem individual. Use esta extensão quando a aplicação Milter for configurada para não enviar respostas para cada cabeçalho de mensagem.
milter_mail_macros
O parâmetro milter_mail_macros
define quais macros são enviadas para as aplicações Milter após o comando SMTP MAIL FROM
. Essas macros fornecem informações adicionais sobre a mensagem de email que pode ser usada pelas aplicações Milter para filtragem e processamento.
Possíveis opções:
{mail_addr}
O endereço de e-mail do remetente (MAIL FROM
). Esta macro fornece a identidade do remetente da mensagem.{client_addr}
O endereço IP do cliente que está se conectando ao servidor SMTP. Esta macro é útil para identificar a origem da conexão e pode ser usada para aplicar regras baseadas na localização do cliente.{client_name}
O nome do host do cliente que está se conectando ao servidor SMTP. Pode ser útil para verificar a correspondência entre o nome do host e o endereço IP do cliente, ajudando a identificar possíveis spoofing ou inconsistências.{auth_authen}
O nome de usuário de autenticação do cliente, se disponível. Esta macro fornece o identificador do usuário autenticado, se o cliente estiver usando autenticação SMTP.
milter_default_action
O parâmetro milter_default_action
define o comportamento do servidor quando o Milter (mail filter) não responde, por exemplo, devido a uma falha de configuração ou um problema com o Milter.
Possíveis opções:
accept
O e-mail é processado como se o Milter não estivesse presente. Útil quando você deseja garantir que a falha do Milter não afete o processamento do e-mail. Isso pode ser benéfico para garantir que e-mails sejam entregues mesmo se o Milter estiver temporariamente fora do ar, embora você perca as verificações e políticas do Milter.reject
Rejeita todas as mensagens com um código de status permanente se o Milter não responder. Adequado quando você deseja que o servidor de e-mail não aceite e-mails se o Milter não estiver disponível, o que pode ajudar a garantir que todos os e-mails sejam filtrados de acordo com as políticas definidas.tempfail
Rejeita todas as mensagens com um código de status temporário se o Milter não responder. Pode ser uma opção intermediária, onde o servidor de e-mail tenta novamente mais tarde. Isso é útil para garantir que o Milter tenha a oportunidade de processar a mensagem se a falha for temporária.quarantine
Semelhante aoaccept
, mas coloca a mensagem na fila de "hold" (congelada) em vez de entregá-la. Disponível a partir do Postfix 2.6. Ideal para quando você deseja garantir que o Milter tenha a oportunidade de processar a mensagem posteriormente. As mensagens são colocadas em quarentena para revisão manual ou processamento adicional antes da entrega final.
smtpd_milters
O parâmetro smtpd_milters
define quais aplicações Milter (mail filter) serão usadas para processar e-mails que chegam através do servidor SMTP smtpd
. Aqui está uma explicação detalhada sobre como usar e configurar este parâmetro:
Exemplo de Configuração:
smtpd_milters = unix:/var/run/milter/spamfilter.sock,inet:localhost:12345
unix:/var/run/milter/spamfilter.sock
: Um filtro Milter acessível via socket Unix.inet:localhost:12345
: Um filtro Milter acessível via TCP/IP na porta 12345.
non_smtpd_milters
O parâmetro non_smtpd_milters
define quais aplicações Milter (mail filter) serão usadas para processar e-mails que não chegam diretamente através do servidor SMTP smtpd
. Isso inclui e-mails enviados por meio de submissão local, o serviço qmqpd
(Postfix queue manager protocol), e-mails re-injetados na fila com o comando postsuper -r
, entre outros.
internal_mail_filter_classes
O parâmetro internal_mail_filter_classes
define quais categorias de e-mails gerados pelo Postfix são sujeitos a inspeção de conteúdo antes de serem processados por filtros Milter, header_checks
e body_checks
. Essa configuração é importante para garantir que apenas e-mails apropriados sejam inspecionados e processados, evitando problemas de desempenho e segurança.
Exemplo de Configuração:
bounce
Ativa a inspeção do conteúdo das notificações de falha de entrega (delivery status notifications). Se você deseja inspecionar o conteúdo das mensagens de falha de entrega para identificar ou filtrar problemas específicos, adicione esta categoria.notify
Ativa a inspeção do conteúdo das notificações de postmaster enviadas pelos processossmtp
esmtpd
. Se você quer verificar o conteúdo das notificações enviadas aos administradores do sistema (postmaster), adicione esta categoria.
Ativar a inspeção de conteúdo de e-mails gerados internamente pode não ser seguro e pode levar a problemas, como vazamento de informações sensíveis ou impacto no desempenho. Avalie cuidadosamente se a inspeção é realmente necessária e, se for o caso, tome medidas para mitigar riscos. A inspeção de e-mails gerados internamente pode afetar o desempenho do servidor, especialmente se a quantidade de e-mails ou o volume de inspeção for alto. Certifique-se de que o impacto no desempenho é aceitável para sua configuração. Em muitas configurações, é recomendável não ativar a inspeção para e-mails gerados internamente, a menos que haja uma necessidade específica. Em geral, é mais seguro e eficiente focar a inspeção em e-mails que entram na sua organização, em vez de e-mails gerados pelo próprio sistema.
smtpd_forbid_bare_newline
O parâmetro smtpd_forbid_bare_newline
define como o servidor de email lida com linhas de entrada de um cliente SMTP que terminam em <LF>
(Line Feed) em vez da sequência padrão <CR><LF>
(Carriage Return + Line Feed), como especificado no RFC 5321.
O CR e LF são abreviações para Carriage Return (CR) e Line Feed (LF), que são caracteres de controle usados para formatar texto, especialmente em contextos de comunicação como em sistemas de email e transferência de dados. O Enter do teclado (também conhecido como Return em alguns contextos) está associado ao envio de um comando de Carriage Return (CR) e Line Feed (LF), dependendo do sistema operacional e do contexto.
Quando você pressiona Enter em um editor de texto no Windows, ele normalmente insere a sequência <CR><LF>
(\r\n
), que significa tanto "voltar ao início da linha" quanto "avançar para a linha seguinte". Isso corresponde ao comportamento padrão de inserir uma nova linha no texto. Nos sistemas Unix, Linux e nas versões mais recentes do macOS, pressionar Enter geralmente insere apenas um <LF>
(\n
), que apenas avança para a linha seguinte.
O CR (Carriage Return) é representado pelo código ASCII 13, o CR originalmente vinha das máquinas de escrever e dos primeiros terminais de computador. Ele faz com que o cursor volte ao início da linha, mas não avança para a linha seguinte. Em código, é representado por \r
. Já o LF (Line Feed) é representado pelo código ASCII 10, o LF faz o cursor pular para a linha seguinte, mas sem voltar ao início da linha. Em código, é representado por \n
.
Esses caracteres desempenham um papel crucial na maneira como o texto é formatado e processado em diferentes sistemas e protocolos, e a sua combinação ou separação pode afetar a forma como os dados são interpretados. Esse parâmetro é crucial para prevenir ataques de SMTP smuggling, uma técnica que pode ser usada para manipular o processamento de emails em servidores de email.
Exemplo de Configuração:
normalize (padrão para Postfix ≥ 3.9)
Exige a sequência padrão de fim de dados<CR><LF>.<CR><LF>
. Se uma linha terminar com<LF>
em vez de<CR><LF>
, ela será processada como se tivesse o<CR><LF>
, mantendo a compatibilidade com muitos clientes SMTP legítimos, clientes que não seguem o padrão podem ser excluídos dessa verificação comsmtpd_forbid_bare_newline_exclusions
.note
Igual aonormalize
, mas também registra no log se o servidor SMTP do Postfix recebeu alguma linha com<LF>
isolado. Essa opção está disponível no Postfix 3.9 e posteriores.yes
Um alias de compatibilidade paranormalize
.reject
Exige a sequência padrão de fim de dados<CR><LF>.<CR><LF>
. Rejeita comandos ou conteúdo de mensagens quando uma linha contém<LF>
isolado, registra um erro de "bare<LF>
received" e responde com o código de status SMTP definido em$smtpd_forbid_bare_newline_reject_code
. Rejeitará emails de clientes SMTP que enviam qualquer terminação de linha não padrão, como aplicativos web,netcat
, ou verificações de integridade de balanceadores de carga. Serviços que usam BDAT para enviar texto MIME com uma nova linha isolada também serão rejeitados.no (padrão para Postfix < 3.9)
Não exige a sequência padrão de fim de dados<CR><LF>.<CR><LF>
. Sempre processa uma<LF>
isolada como se o cliente tivesse enviado<CR><LF>
. Essa opção é totalmente compatível com versões anteriores, mas não é recomendada para um servidor SMTP voltado para a Internet, pois é vulnerável ao SMTP smuggling.
A configurações recomendada para servidores voltados para a Internet é:
smtpd_forbid_bare_newline = normalize
smtpd_forbid_bare_newline_exclusions = $mynetworks