Postfix-3.9.0

Introdução ao Postfix

O pacote "Postfix" contém um "Mail Transport Agent" ("MTA"). Isso é útil para enviar mensagem eletrônica para outros(as) usuários(as) 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.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.2.

Informação do Pacote

Dependências do "Postfix"

Recomendadas

Opcionais

ICU-75.1 para suporte a Internacionalização de Endereços de Mensagens Eletrônicas (SMTPUTF8), MariaDB-10.11.8 ou MySQL, OpenLDAP-2.6.8, pcre2-10.44, PostgreSQL-16.4, SQLite-3.46.1, 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 Usuários(as) e Grupos

Antes de compilar o aplicativo, você precisa criar usuários(as) e grupos que serão esperados estarem no lugar durante a instalação. Adicione os(as) usuários(as) e grupos com os seguintes comandos emitidos pelo(a) usuário(a) "root":

groupadd -g 32 postfix &&
groupadd -g 33 postdrop &&
useradd -c "Usuário(a) 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="$AUXLIBS -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

Para usar o "MySQL" com o "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 CCARGS="$CCARGS" AUXLIBS="$AUXLIBS" makefiles &&
make

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

Agora, como o(a) usuário(a) "root":

sh postfix-install -non-interactive \
  daemon_directory=/usr/lib/postfix \
  manpage_directory=/usr/share/man \
  html_directory=/usr/share/doc/postfix-3.9.0/html \
  readme_directory=/usr/share/doc/postfix-3.9.0/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.

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 anexa 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 em vez de Berkeley DB para tabelas do Postfix. Adicione três linhas em /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

Conjunto de Comandos Sequenciais de Inicialização

Para automatizar a execução do "Postfix" na inicialização, instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/postfix" incluso no pacote "blfs-bootscripts-20240416" "":

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.9.0 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"