La versión 2.11.3 de Postfix ha funcionado perfectamente durante los últimos años. Después de actualizarlo a la versión 3.4.14, el servidor ya no puede enviar correos electrónicos externos.
En el mail.err
archivo, encontré la siguiente línea:
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
Después de eso, configuré ambos parámetros en master.cf
el
-o smtpd_recipient_restrictions=reject_unauth_destination
-o smtpd_relay_restrictions=reject_unauth_destination
En la versión 2.11 de Postfix, ambos parámetros estaban comentados.
Después de esa configuración, el mensaje mail.err
desapareció pero encontré otro error en mail.log
el archivo.
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]>
Dado que estoy usando, ¿ sender_dependent_relayhost_maps = hash:/etc/postfix/transport_sender
cuál sería la configuración correcta de esos dos parámetros (en caso de que ese sea el problema)?
Aquí está mi main.cf
archivo:
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
archivo:
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}
Respuesta1
Debe especificar quién puede transmitir a través de su servidor Postfix.antesel reject_unauth_destination
.
por ejemplo, para permitir que sus propias redes se transmitan a través de su servidor:
smtpd_relay_restrictions = permit_mynetworks, reject_unauth_destination
o si estás usando sasl_authentication:
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_unauth_destination
Recuerde que estas reglas se especifican en el orden indicado... por lo que lo anterior permite a los clientes en sus redes transmitir correo sin tener que autenticarse. Los clientes externos a su red deben autenticarse. Los intentos de retransmisión de todos los demás se rechazan.
Por cierto, para una configuración postfix simple como la suya, es mejor poner estas opciones en el main.cf
archivo, no en el archivo master.cf
.