A versão 2.11.3 do Postfix funcionou perfeitamente nos últimos dois anos. Depois de atualizá-lo para a versão 3.4.14, o servidor não consegue mais enviar e-mails externos.
No mail.err
arquivo, encontrei a seguinte linha:
postfix/smtpd[1043]: fatal: in parameter smtpd_relay_restrictions or smtpd_recipient_restrictions, specify at least one working instance of: reject_unauth_destination, defer_unauth_destination, reject, defer, defer_if_permit or check_relay_domains
Depois disso, configurei os dois parâmetros master.cf
no
-o smtpd_recipient_restrictions=reject_unauth_destination
-o smtpd_relay_restrictions=reject_unauth_destination
No Postfix versão 2.11, ambos os parâmetros foram comentados.
Após essa configuração a mensagem desapareceu mail.err
mas encontrei outro erro no mail.log
arquivo
Jun 3 08:01:22 smtp-out postfix/smtpd[19915]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[127.0.0.1]>
Já que estou usando sender_dependent_relayhost_maps = hash:/etc/postfix/transport_sender
qual seria a configuração correta desses dois parâmetros (caso seja esse o problema)?
Aqui está meu main.cf
arquivo:
inet_protocols = ipv4
smtpd_banner = Company ESMTP NO UCE/UBE
biff = no
append_dot_mydomain = no
myhostname = smtp-out.company.com
mydomain = company.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = smtp-out.local, localhost.dmz.local.dmz.local, localhost, $mydomain, localhost.$mydomain
relayhost = [mail.external-relayserver.com]
relay_domains =
mynetworks = 192.168.10.0/24, 192.168.15.0/24, 127.0.0.0/8, [::1]/128
header_checks = regexp:/etc/postfix/regexp/header_checks
message_size_limit = 47185920
recipient_delimiter = +
transport_maps = hash:/etc/postfix/transport
undisclosed_recipients_header=
local_recipient_maps =
smtp_tls_security_level=may
smtp_tls_loglevel=1
# relay transport
sender_dependent_relayhost_maps = hash:/etc/postfix/transport_sender
smtp_sender_dependent_authentication = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
default_destination_concurrency_limit = 2
default_destination_rate_delay = 1s
master.cf
arquivo:
smtp inet n - - - - smtpd
-o smtpd_recipient_restrictions=reject_unauth_destination
-o smtpd_relay_restrictions=reject_unauth_destination
pickup unix n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
Responder1
Você precisa especificar quem tem permissão para retransmitir através do seu servidor postfixanteso reject_unauth_destination
.
por exemplo, para permitir que suas próprias redes retransmitam através do seu servidor:
smtpd_relay_restrictions = permit_mynetworks, reject_unauth_destination
ou se você estiver usando sasl_authentication:
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_unauth_destination
Lembre-se de que essas regras são especificadas na ordem listada... portanto, o procedimento acima permite que os clientes em suas redes retransmitam mensagens sem precisar se autenticar. Os clientes de fora da sua rede precisam se autenticar. As tentativas de retransmissão de todos os outros são rejeitadas.
Aliás, para uma configuração simples do postfix como a sua, é melhor colocar essas opções no main.cf
arquivo, não no master.cf
.