Cuando hago telnet a mi servidor que ejecuta postfix e intento enviar un correo electrónico:
MAIL FROM:<[email protected]>
#=> 250 2.1.0 Ok
RCPT TO:<[email protected]>
#=> 554 5.7.1 <[email protected]>: Relay access denied
Realmente no pude encontrar la respuesta en el sitio o mirando las preguntas/respuestas de otros usuarios, no estoy seguro de por dónde empezar. ¿Ideas?
Actualizar
Básicamente, mirando los documentos:http://www.postfix.org/SMTPD_ACCESS_README.html(sección:Ser selectivo con las listas de restricción de acceso SMTP), no parece tener ninguna de esas directivas enetc/postfix/main.cf
como smtpd_client_restrictions = permit_mynetworks, reject
o cualquiera de los otros, así que estoy bastante confundido.
Pero realmente voy a hacer que una aplicación Rails se conecte al servidor y envíe los correos electrónicos, así que no estoy seguro de cómo manejarlo.
Así es como se ve mi archivo de configuración:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = rerecipe-utils
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost, mail.rerecipe.com, rerecipe.com
relayhost =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
mynetworks = 127.0.0.0/8 204.232.207.0/24 10.177.64.0/19 [::1]/128 [fe80::%eth0]/64 [fe80::%eth1]/64
Algo a tener en cuenta es que relayhost
está en blanco, este es el archivo de configuración predeterminado que se creó cuando instalé Postfix, al probar para conectarme openssl
me sale esto:
~% openssl s_client -connect mail.myhostname.com:25 -starttls smtp
CONNECTED(00000003)
depth=0 /CN=myhostname
verify error:num=18:self signed certificate
verify return:1
depth=0 /CN=myhostname
verify return:1
---
Certificate chain
0 s:/CN=myhostname
i:/CN=myhostname
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIBqTCCARICCQDDxVr+420qvjANBgkqhkiG9w0BAQUFADAZMRcwFQYDVQQDEw5y
ZXJlY2lwZS11dGlsczAeFw0xMDEwMTMwNjU1MTVaFw0yMDEwMTAwNjU1MTVaMBkx
FzAVBgNVBAMTDnJlcmVjaXBlLXV0aWxzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQDODh2w4A1k0qiPNPhkrPj8sfkxpKPTk28AuZhgOEBYBLeHacTKNH0jXxPv
P3TyhINijvvdDPzyuPJoTTliR2EHR/nL4DLhr5FzhV+PB4PsIFUER7arx+1sMjz6
5l/Ubu1ppMzW9U0IFNbaPm2AiiGBQRCQN8L0bLUjzVzwoSRMOQIDAQABMA0GCSqG
SIb3DQEBBQUAA4GBALi2vvk9TGKJubXYJbU0PKmVmsfzFK35yLqr0keiDBhK2Leg
274sWxEH3ds8mUaRftuFlXb7RYAGNlVyTuMTY3CEcnqIsH7F2McCUTpjMzu/o1mZ
O/B21CelKetBd1u79Gkrv2vWyN7Csft6uTx5NIGG2+pGi3r0gX2r0Hbu2K94
-----END CERTIFICATE-----
subject=/CN=myhostname
issuer=/CN=myhostname
---
No client certificate CA names sent
---
SSL handshake has read 1203 bytes and written 360 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: 1AA4B8BFAAA85DA9ED4755194C50311670E57C35B8C51F9C2749936DA11918E4
Session-ID-ctx:
Master-Key: 9B432F1DE9F3580DCC6208C76F96631DC5A4BC517BDBADD5F514414DCF34AC526C30687B96C5C4742E9583555A118232
Key-Arg : None
Start Time: 1292985376
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
---
250 DSN
Por extraño que parezca, cuando intento enviar un correo electrónico desde la propia máquina,hacetrabajar:
echo test | mail -s "test subject" [email protected]
Respuesta1
Por lo general, cuando ve ese tipo de denegación, tiene algo que ver con lo que se proporciona para el acceso a la retransmisión, es decir, ¿qué se permite enviar/retransmitir? ¿Acabas de configurar este servidor? ¿Ya está instalado? ¿Desde dónde estás intentando enviar? Detalles, por favor.
Respuesta2
Realmente no pude encontrar la respuesta en el sitio o mirando las preguntas/respuestas de otros usuarios, no estoy seguro de por dónde empezar. ¿Ideas?
Busque en Google "retransmisión postfix" y haga clic en elprimer resultado. Si tiene preguntas específicas sobre la documentación, o si ha probado algo y no cree que funcione como se describe, háganoslo saber y estaremos encantados de ayudarle.
Respuesta3
Por lo general, de forma predeterminada con Postfix, para que transmita su mensaje, debe provenir de algún lugar dentro mynetworks
o su dirección de correo electrónico del remitente debe estar en mydestination
. Por supuesto, esto es predeterminado y se puede cambiar, generalmente a través de smtpd_client_restrictions
. En su ejemplo, el remitente es [email protected]
, que probablemente no sea su nombre de dominio. Su archivo de configuración no especifica midominio, $midominio se inicializaría desde el dominio de los nombres de host de los servidores. Entonces, dado que no vienes de mis redes y no estás en mi destino, tu correo no se inicia ni termina en ese servidor postfix, por lo tanto, hay una retransmisión, y eso está denegado.
En cambio, cuando vienes de la propia máquina, éste, 127.0.0.1, estás en mynetworks y por tanto te retransmiten sin problema.
Realmente, aunque, como señaló Larsks, la retransmisión de correo postfix implica mucho más que solo un par de directivas de configuración "mágicas". Deberías familiarizarte con la extensa documentación en línea de Postfix.