Atualmente, estou implantando outro MTA Postfix e, desta vez, gostaria de reduzir master.cf
e desabilitar serviços desnecessários para reduzir a superfície de ataque potencial e obter uma melhor compreensão disso no processo.
O MTA deve receber emails de usuários virtuais, entregá-los ao maildir apropriado e, finalmente, retransmitir emails de usuários autenticados.
Mudar para OpenSMTPd (com o qual toda a minha configuração pode ser expressa em um único arquivo de 15 linhas) não é possível no momento (sem suporte a milter), então estou preso ao Postfix.
O horror em questão:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (no) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
#submission inet n - n - - smtpd
pickup unix n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
Não existe nenhuma página de manual que descreva uma configuração mínima, e as páginas de manual de cada serviço não dizem realmente se um módulo é necessário ou não (para alguns é fácil de descobrir, para outros é quase impossível sem tentativa e erro sem fim).
Minha tentativa atual com falha é a seguinte (porta de envio omitida, por enquanto estou apenas tentando fazer a entrega de correio funcionar):
smtp inet n - - - - smtpd
cleanup unix n - - - 0 cleanup
qmgr unix - - - 300 1 qmgr
rewrite unix - - - - - trivial-rewrite
proxymap unix - - - - - proxymap
virtual unix - n - - - virtual
anvil unix - - - - 1 anvil
local unix - n - - - local
Isso meio que funciona, exceto que todos os e-mails recebidos são entregues apenas (para o maildir) ao reiniciar o Postfix, e tenho certeza de que estão incompletos e não podem lidar com devoluções, então ainda estou procurando uma resposta.
Responder1
Eu não recomendo que você remova o serviço dopadrão mestre.cf. Você foi mordido por isso quando tentou uma configuração minimalista.
Uma razão pela qual o postfix tem muitos serviços ésegurança. Uma das vantagens é o postfix executado por um daemon/serviço separado para realizar tarefas específicas. Portanto, o postfix master
pode ajustar permissões e privilégios por serviço postfix. Por exemplodaemon qmgr(8)não se comunica com o mundo exterior e pode ser executado com privilégios fixos e baixos em um ambiente chroot.
De qualquer forma, não tenho tempo para fazer tentativas e erros intermináveis para saber qual é o serviço postfix que pode ser desativado. Então dou algumas informações sobre algum serviço e agrupá-lo por vários grupos.
# INPUT SERVICE
smtp inet n - n - - smtpd
#submission inet n - n - - smtpd
pickup unix n - n 60 1 pickup
# PROCESSING SERVICE
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
rewrite unix - - n - - trivial-rewrite
# OUTPUT SERVICE
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
smtp unix - - n - - smtp
relay unix - - n - - smtp
# HELPER
# Generate bounce
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
# For postfix recipient/sender verification See www.postfix.org/ADDRESS_VERIFICATION_README.html
verify unix - - n - 1 verify
# Outgoing Connection manager
scache unix - - n - 1 scache
# TLS Cache Manager
tlsmgr unix - - n 1000? 1 tlsmgr
# maintains statistics about client connection counts or client request rates
anvil unix - - n - 1 anvil
# Needed by mailq command
showq unix n - n - - showq
# Needed by postqueue -f
flush unix n - n 1000? 0 flush
# Proxymap
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap