Postfix-3.11.6

Introdução ao Postfix

O pacote Postfix contém um Mail Transport Agent (MTA). Isso é útil para enviar mensagem eletrônica para outros(as) usantes da tua máquina anfitriã. Ele também pode ser configurado para ser um servidor central de mensagens para o teu domínio, um agente de retransmissão de mensagens ou simplesmente um agente de entrega de mensagens para o teu Provedor local de Serviços de Internet.

[Nota]

Nota

Esse pacote é conhecido por construir e funcionar adequadamente usando-se uma plataforma LFS 13.1.

Informação do Pacote

Dependências do "Postfix"

Recomendadas

Opcionais

ICU-78.3 para suporte a Internacionalização de Endereços de Mensagens Eletrônicas (SMTPUTF8), MariaDB-12.3.3 ou MySQL, OpenLDAP-2.7.0, PostgreSQL-18.6, Berkeley DB (obsoleto), e CDB ou TinyCDB

Observe que "SQLite", "MySQL", "PostgreSQL" e "CDB" são úteis somente se existir uma necessidade conhecida deles.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/postfix

Instalação do Postfix

Adicionando Usantes e Grupos

Antes de compilar o programa, você precisa criar usantes e grupos que serão esperados estarem no lugar durante a instalação. Adicione os(as) usantes e grupos com os seguintes comandos emitidos pelo(a) usante root:

groupadd -g 32 postfix &&
groupadd -g 33 postdrop &&
useradd -c "Usante do Processo de Segundo Plano do Postfix" -d /var/spool/postfix -g postfix \
        -s /bin/false -u 32 postfix &&
chown -v postfix:postfix /var/mail

Configurando a Construção

Os arquivos README são formatados para serem lidos com um paginador como less ou more. Se você quiser usar um editor de texto, torne-os legíveis com o seguinte sed:

sed -i 's/.\x08//g' README_FILES/*

A árvore do fonte do "Postfix" não contém um conjunto de comandos sequenciais "configure", em vez disso, o "makefile" no diretório de nível superior contém um alvo "makefiles" que regenera todos os outros "makefiles" na árvore de construção. Se desejar usar software adicional, como uma estrutura de retaguarda de base de dados para usuários(as) virtuais ou autenticação "TLS"/"SSL", [então] você precisará regenerar os "makefiles" usando uma ou mais das configurações apropriadas "CCARGS" e "AUXLIBS" listadas abaixo.

[Nota]

Nota

Para todas as variantes do CCARGS, você deveria garantir que '-DNO_NIS' esteja especificado, de forma que a construção não tente acessar um cabeçalho de rpcsvc que não existe no BLFS. Se Berkeley DB (obsoleto) não estiver instalado, '-DNO_DB' também precisa ser especificado.

Para mais detalhes, leiam-se os arquivos "readme".

Inicialize a CCARGS e AUXLIBS de acordo com a observação acima:

CCARGS="-DNO_NIS -DNO_DB"
AUXLIBS=""

A seguir, as variáveis CCARGS e AUXLIBS são preenchidas com configurações dependendo da atual configuração do sistema. Se um pacote opcional estiver instalado, mas deveria não estar incluído na construção do Postfix, simplesmente ignore os correspondentes fragmentos de script if [ ... ]; then.

Cyrus-SASL

Para usar o "Cyrus-SASL" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libsasl2.so ]; then
  CCARGS="$CCARGS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl"
  AUXLIBS="$AUXLIBS -lsasl2"
fi
LMDB

Para usar o LMDB com o Postfix, use os seguintes argumentos:

if [ -r /usr/lib/liblmdb.so ]; then
  CCARGS="$CCARGS -DHAS_LMDB"
  AUXLIBS_LMDB="-llmdb"
fi
OpenLDAP

Para usar o "OpenLDAP" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libldap.so -a -r /usr/lib/liblber.so ]; then
  CCARGS="$CCARGS -DHAS_LDAP"
  AUXLIBS="$AUXLIBS -lldap -llber"
fi
Sqlite

Para usar o "Sqlite" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libsqlite3.so ]; then
  CCARGS="$CCARGS -DHAS_SQLITE"
  AUXLIBS="$AUXLIBS -lsqlite3 -lpthread"
fi
MySQL ou MariaDB

Para usar MySQL ou MariaDB com Postfix, use os seguintes argumentos:

if [ -r /usr/lib/libmysqlclient.so ]; then
  CCARGS="$CCARGS -DHAS_MYSQL -I/usr/include/mysql"
  AUXLIBS="$AUXLIBS -lmysqlclient -lz -lm"
fi
PostgreSQL

Para usar o "PostgreSQL" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libpq.so ]; then
  CCARGS="$CCARGS -DHAS_PGSQL -I/usr/include/postgresql"
  AUXLIBS="$AUXLIBS -lpq -lz -lm"
fi
CDB/TinyCDB

Para usar o "CDB" ou o "TinyCDB" com o "Postfix", use os seguintes argumentos:

if [ -r </path/to/CDB>/libcdb.a ]; then
  CCARGS="$CCARGS -DHAS_CDB"
  AUXLIBS="$AUXLIBS </path/to/CDB>/libcdb.a"
fi
Autenticação StartTLS

Para usar o "OpenSSL" com o "Postfix", use os seguintes argumentos:

if [ -r /usr/lib/libssl.so -a -r /usr/lib/libcrypto.so ]; then
  CCARGS="$CCARGS -DUSE_TLS -I/usr/include/openssl/"
  AUXLIBS="$AUXLIBS -lssl -lcrypto"
fi

OpenSSL é instalado pelo LFS, de forma que ele deveria estar sempre lá. O if ... then está aqui apenas para consistência.

Instalando o Postfix

Podem existir configurações duplicadas em AUXLIBS, como -lm, quando ambos, MariaDB e PostgreSQL são usados. Elas não danificam. Instale o Postfix executando os seguintes comandos:

make makefiles                    \
     CCARGS="$CCARGS"             \
     AUXLIBS="$AUXLIBS"           \
     AUXLIBS_LMDB="$AUXLIBS_LMDB" \
     default_database_type=lmdb   \
     default_cache_db_type=lmdb   &&
make

Esse pacote não vem com uma suíte de teste útil.

Agora, como o(a) usante root:

sh postfix-install -non-interactive  \
   daemon_directory=/usr/lib/postfix \
   manpage_directory=/usr/share/man  \
   html_directory=/usr/share/doc/postfix-3.11.6/html \
   readme_directory=/usr/share/doc/postfix-3.11.6/readme

Explicações do Comando

make makefiles: Esse comando reconstrói os "makefiles" em toda a árvore fonte para usar as opções contidas nas variáveis "CCARGS" e "AUXLIBS".

sh postfix-install -non-interactive: Isso evita que o conjunto de comandos sequenciais de instalação faça perguntas, aceitando assim os diretórios de destino padrão em todos os casos, exceto em uns poucos. Se as opções "html_directory" e "readme_directory" não estiverem configuradas, [então] a documentação não será instalada.

CCARGS="-DNO_EAI ...": Isso desligará o suporte a SMTPUTF8, por exemplo, se o restante da tua infraestrutura de endereço de correio eletrônico não puder lidar com endereços UTF-8 de correio eletrônico e valores de cabeçalho de mensagem.

default_database_type=lmdb: o Postfix não mais especifica um tipo padrão de base de dados. Precisa ser especificado ao criar os arquivos do make.

default_cache_db_type=lmdb: o Postfix não mais especifica um tipo padrão de cache. Precisa ser especificado ao criar os arquivos do make.

Configurando o Postfix

Arquivos de Configuração

/etc/aliases, /etc/postfix/main.cf e /etc/postfix/master.cf

Informação de Configuração

Crie (ou anexe a um existente) "/etc/aliases" com o seguinte comando. Mude "<LOGIN>" para a tua identidade de login não "root" de forma que as mensagens endereçadas para o(a) "root" possam ser encaminhadas para você. Como o(a) usuário(a) "root":

cat >> /etc/aliases << "EOF"
# Inicia /etc/aliases

MAILER-DAEMON:    postmaster
postmaster:       root

root:             <LOGIN>
# Termina /etc/aliases
EOF

Para proteger um arquivo /etc/aliases existente, o comando acima pospõe esses apelidos a ele se existir. Esse arquivo deveria ser verificado e os apelidos duplicados removidos se presentes.

Os(As) editores(as) do BLFS recomendam usar LMDB para tabelas do Postfix. Adicione três linhas no /etc/postfix/main.cf para fazer com que postmap codifique as tabelas de pesquisa no formato do LMDB por padrão e para mudar a configuração padrão de resumo das tabelas de apelidos:

echo 'default_database_type = lmdb'       >> /etc/postfix/main.cf &&
echo 'alias_database = lmdb:/etc/aliases' >> /etc/postfix/main.cf &&
echo 'alias_maps = lmdb:/etc/aliases'     >> /etc/postfix/main.cf

Para proteger teu servidor contra os recentes ataques de contrabando de SMTP, etapas adicionais são exigidas. Adicione duas linhas em /etc/postfix/main.cf para desconectar clientes SMTP remotos que enviem novas linhas simples na seção DATA, ao mesmo tempo que permite que clientes em tua rede de intercomunicação com implementações SMTP não padrão ainda enviem mensagens:

echo 'smtpd_forbid_bare_newline = normalize' >> /etc/postfix/main.cf &&
echo 'smtpd_forbid_bare_newline_exclusions = $mynetworks' >> /etc/postfix/main.cf

Observe que se você estiver seguindo um tutorial online para configurar o Postfix, o tutorial pode se referir a uma tabela de pesquisa com hash:/caminho/para/tabela_pesquisa. Você deveria substituir hash por lmdb para a finalidade de usar uma tabela de pesquisa codificada no formato do LMDB.

[Nota]

Nota

Os arquivos "/etc/postfix/main.cf" e "/etc/postfix/master.cf" precisam ser personalizados para o teu sistema. O arquivo "main.cf" precisa do teu nome de dispositivo totalmente qualificado. Você descobrirá que "main.cf" é auto documentado, de forma que carregue-o em teu editor para fazer as mudanças necessárias para a tua situação.

[Nota]

Nota

O "Postfix" também pode ser configurado para executar em uma jaula "chroot". Veja-se o arquivo no fonte "examples/chroot-setup/LINUX2" para detalhes.

Para garantir que todas as permissões sejam configuradas corretamente, o postfix fornece uma ferramenta que é para ser executada como o(a) usuário(a) root:

/usr/sbin/postfix -c /etc/postfix set-permissions

Se você tiver uma configuração existente, [então] poderá executar o utilitário "postfix" para adicionar quaisquer definições necessárias aos teus arquivos existentes. Como o(a) usuário(a) "root":

/usr/sbin/postfix upgrade-configuration

Antes de iniciar o "Postfix", você deveria verificar se a tua configuração e permissões de arquivo funcionarão adequadamente. Execute os seguintes comandos como o(a) usuário(a) "root" para verificar e iniciar o teu servidor "Postfix":

/usr/sbin/postfix check &&
/usr/sbin/postfix start

Unidade do systemd

Para automatizar a execução do Postfix na inicialização, instale a unidade postfix.service inclusa no pacote blfs-systemd-units-20251204:

make install-postfix

Conteúdo

Aplicativos Instalados: mailq (link simbólico), newaliases (link simbólico), postalias, postcat, postconf, postdrop, postfix, postkick, postlock, postlog, postmap, postmulti, postqueue, postsuper e sendmail
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /{etc,usr/lib}/postfix, /usr/share/doc/postfix-3.11.6 e /var/{lib,spool}/postfix

Descrições Curtas

mailq

Um link simbólico para "sendmail"

newaliases

Um link simbólico para "sendmail"

postalias

é um utilitário para manutenção de base de dados de apelidos do "Postfix"

postcat

Imprime o conteúdo dos arquivos originários da fila do "Postfix" em formato legível por humanos(as)

postconf

Exibe ou muda o valor dos parâmetros de configuração do "Postfix"

postdrop

Cria um arquivo no diretório "maildrop" e copia a entrada gerada padrão dele para o arquivo

postfix

é o aplicativo de controle do "Postfix"

postkick

Envia solicitações para o serviço especificado por intermédio de um canal local de transporte

postlock

Tranca uma pasta de mensagens para uso exclusivo e executa comandos passados para ela

postlog

Uma interface de registro compatível com o "Postfix" para uso, por exemplo, em conjuntos de comandos sequenciais de "shell"

postmap

Cria ou consulta uma ou mais tabelas de pesquisa do "Postfix" ou atualiza uma existente

postmulti

é o gerenciador de múltiplas instâncias do "Postfix". Ele permite que um(a) administrador(a) de sistema gerencie múltiplas instâncias do "Postfix" em um dispositivo

postqueue

A interface de usuário(a) do "Postfix" para gerenciamento de filas

postsuper

A interface de usuário(a) do "Postfix" para gerenciamento de filas de superusuário(a)

sendmail

é a interface de compatibilidade do "Postfix" com o "Sendmail"