Está en la página 1de 10

Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

DESDE LO ALTO DEL


CERRO
« Autenticación LDAP-SASL con Digest-MD5 NAT con iptables »

Configurar postfix a través de un relay


host autenticado (Gmail) SECCIONES
Manuales
Sobre esto
En principio sería posible instalar un servidor de correo en cualquier equipo conectado a
Internet con una dirección IP pública, pero debido al problema del spam, mucho de los FEED
servidores de correo de Internet bloquean el correo no autenticado que venga de
direcciones IP dinámicas, que son las habituales en conexiones domésticas.

ETIQUETAS
Una solución es instalar un servidor de correo que no envíe directamente el correo al
servidor destino, sino que utilice el equipo smtp.gmail.com para que retrasmita (relay) admin apt apt-cacher

sus mensajes.
avahi CA
dell dhcp
debian
educacion
dns-sd
etch ethernet ethtool file sharing
firefox fnmt gnome
Características del montaje iceweasel ies iptables ipv6
Sistema: Debian GNU/Linux (lenny)
kvm ldap lenny
lvm mapeo md5 mdns
linux
postfix 2.5.5
mplayer openldap openoffice
DNS correctamente configurado en dyndns.org, supongamos que fuese
mimaquina.dyndns.org osm postfix redes script

ddclient instalado y configurado para actualizar el registro DNS en dyndns shell squeeze tomcat ubuntu

Cuenta abierta en gmail, supongamos que fuese micuenta@gmail.com vcd virtualización xen
xen-tools xml

Si instalamos postfix en un equipo con dirección IP dinámica y envíamos un mensaje de


BLOGROLL
correo a determinados dominios (por ejemplo hotmail), nos rebotarán los mensajes y
gonzalonazareno
nos aparecerán líneas en el fichero /var/log/mail.log como éstas:
josedomingo
sw-libre
postfix/pickup[6804]: 09B0634680: uid=1000 from=<usuario>
postfix/cleanup[6810]: 09B0634680:message- VISITAS
id=<20081231154700.09B0634680@mimaquina> 128,212

postfix/qmgr[6802]: 09B0634680:
ENTRADAS RECIENTES
from=<usuario@mimaquina.dyndns.org>, size=307, nrcpt=1 (queue
Cortafuegos con iptables
active) Iceweasel 8 en Debian
postfix/smtp[6812]: 09B0634680: stable (squeeze)
¿Por qué no deberías
to=<una@hotmail.com>,relay=mx2.hotmail.com[65.54.244.40]:25,
contribuir a google map
delay=1.3, delays=0.03/0.04/0.92/0.3, dsn=5.0.0, status=bounced maker (y a otras muchas
cosas similares)?
(host mx2.hotmail.com[65.54.244.40] said: 550 DY-001 Mail
Verificar el dígito de control
rejected by Windows Live Hotmail for policy reasons. We (DC) de una cuenta corriente

1 de 10 13/12/2011 05:42 p.m.


Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

generally do not accept email from dynamic IP's as they are not en Python
Guardando una copia de mis
typically used to deliver unauthenticated SMTP e-mail to an
marcadores de del.icio.us
Internet mail server. http://www.spamhaus.org maintains lists of
dynamic and residential IP addresses. If you are not an LICENCIA
email/network admin please contact your E-mail/Internet Service Puedes copiar y modificar todos
los contenidos, pero siempre
Provider for help. Email/network admins, please visit respetando los términos de la
http://postmaster.live.com for email delivery information and licencia CC-BY-SA.

support (in reply to MAIL FROM command))


postfix/smtp[6812]: 09B0634680: lost connection with
mx2.hotmail.com[65.54.244.40] while sending RCPT TO
COMENTARIOS
Para evitar esto podemos utilizar otro MTA para que retransmita el correo de nuestro
servidor, para lo que debemos tener una cuenta de correo en dicho MTA. Explicaremos ED on NAT
con iptables
a continuación los pasos que hay que dar para hacer eso con el servidor de correo de
GMail (smtp.gmail.com). albertomolina on NAT
con iptables

Características de la conexión arturo on NAT


con iptables

Para enviar correo utilizando el servidor SMTP de Gmail la conexión tiene que estar
arturo on NAT
cifrada con TLS, para lo que debemos añadir la Autoridad Certificadora adecuada (en con iptables
este caso Thawte) y autenticada, para lo que utilizaremos un nombre de usuario
Jonatan Márquez on
(dirección de correo) y contraseña del servicio.
NAT con iptables

Configuración de main.cf

Tenemos que editar el fichero y añadir las siguientes líneas:

relayhost = [smtp.gmail.com]:587

Donde indicamos el nombre del equipo que retransmitirá nuestro mensajes (los
corchetes ([ ]) son para que no haga la resolución MX) y el puerto de la conexión es el
que se utiliza para la conexión entre un cliente y un servidor SMTP (587/TCP message
submission).

smtp_use_tls = yes
smtp_tls_CAfile = /etc/postfix/cacert.pem

Para que utilice TLS al enviar correo y confíe en las autoridades certificadoras que se
añadan al fichero cacert.pem

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd
smtp_sasl_security_options = noanonymous

donde le decimos a postfix que debe autenticarse mediante SASL y especificamos la


ubicación del fichero con la información del nombre de usuario y contraseña.

Datos de autenticación

Creamos el fichero /etc/postfix/sasl/passwd con el siguiente contenido:

2 de 10 13/12/2011 05:42 p.m.


Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

[smtp.gmail.com]:587 unacuenta@gmail.com:unacontraseña

Y lo protegemos adecuadamente con:

chmod 600 /etc/postfix/sasl/passwd

El fichero de configuración hay que transformarlo a un fichero indexado de tipo hash


mediante la instrucción:

postmap /etc/postfix/sasl/passwd

que creará el fichero /etc/postfix/sasl/passwd.db

Utilización del certificado adecuado

Para añadir la autoridad certificadora Thawte al fichero de certificados que utilizará


postfix, hacemos:

cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem >> /etc/postfix/cacert.pem

si no existiesen los ficheros de certificados SSL, debemos instalar el paquete


ca-certificates

Actualización (21/08/2009):Ayer al enviar mensajes aparecía la siguiente línea en el


registro de correo:

certificate verification failed for smtp.gmail.com[74.125.79.111]:587: untrusted iss

Por lo que parece que el servidor smtp.gmail.com ha cambiado de entidad certificadora


:-?, utilizando ahora Equifax en lugar de Thawte, para solucionar esto añadimos Equifax
al fichero de certificados que está utilizando postfix:

cat /etc/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pem

y reiniciamos el demonio de postfix (bastará hacer reload).

Configuración de la cuenta de gmail

Actualización (20/08/2009): Sección añadida para que los corrreos lleguen a destino
con el campo “From:” correcto, gracias a nihilanthlnxa y sylon por sus comentarios.

El campo “From:” de un mensaje de correo indica la dirección de correo electrónico del


remitente, pero no es obligatorio que sea la dirección de correo del usuario en el
servidor de correo que envía el mensaje, sino que es el cliente de correo el que se
encarga de rellenar este campo y puede poner el valor que desee. Cuando se utilizan
varias cuentas de correo esto permite enviar mensajes con distintos remitentes desde
el mismo servidor de correo, pero tiene la contrapartida de que se puede utilizar (y así
lo hacen los mensajes de spam) para poner una dirección de correo ilegítima. Gmail
sólo permite poner en el campo “From:” direcciones de correo verificadas o pone por
defecto la que se corresponde con la cuenta de gmail.

3 de 10 13/12/2011 05:42 p.m.


Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

Añadir un remitente nuevo en nuestra cuenta de gmail

Abrimos en el navegador la página de Gmail, vamos a Configuración > Cuentas e


importación > Enviar mensaje como y añadimos como nuevo remitente la dirección de
correo de nuestro servidor de correo (usuario@mimaquina.dyndns.org). Para verificar
que somos usuarios legítimos de la misma gmail nos enviará un mensaje con un código
de verificación, que nos llegará a nuestra cuenta local. Una vez verificada la cuenta,
gmail permitirá que se envíen mensajes con ese remitente y no lo modificará.

Prueba de funcionamiento

Para comprobar que todo está funcionando correctamente, enviamos un mensaje a una
cuenta cualquiera de correo y miramos de nuevo los registros:

postfix/pickup[6703]: 6AFF534680: uid=1000 from=<usuario>


postfix/cleanup[6786]: 6AFF534680: message-id=<20081231154524.6AFF534680@mimaquina>
postfix/qmgr[5935]: 6AFF534680: from=<usuario@mimaquina.dyndns.org>, size=310, nrcpt
postfix/smtp[6788]: 6AFF534680:to=<unacuenta@hotmail.com>,relay=smtp.gmail.com[66.24
dsn=2.0.0, status=sent (250 2.0.0 OK 1230738538 34sm19633915ugh.10)
postfix/qmgr[5935]: 6AFF534680: removed

Referencias

Los aspectos más importantes están cogidos de Relaying Postfix SMTP via
smtp.gmail.com : Ubuntu Tutorials, simplemente he añadido algunos comentarios que
me han parecido relevantes.

Be the first to like this post.

This entry was posted on 4-01-09, 8:16 pm and is filed under General. You can follow any responses to this entry
through RSS 2.0. Puedes dejar una respuesta, o trackback desde tu propio sitio.

COMENTARIOS ( 28 )

#1 by Dolser on 18-04-09 - 4:53 am

Hola, muy buen post, estoy tratando de configurar lo mismo, pero


en Zimbra 5 en Ubuntu Server 64, aca cambia alguna cosas, por
ser zimbra, tienes informacion al respecto, has usado alguna vez
esta suite opensource de correo?U.
Saludos y Gracias

#2 by Tairux on 19-04-09 - 12:28 am

Estimado, segui al pie de la letra su tutorial, pero al mandar un


correo a una cuenta de hotmail, me dice este error: Must issue a
STARTTLS command first

a que se deberá eso.


Utilizando debian 5 lenny, postfix, ip dinamica

4 de 10 13/12/2011 05:42 p.m.


Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

GraciasU..

#3 by Cara on 21-04-09 - 6:45 pm

Tairux, a mi me pasaba lo mismo hasta que cai en la cuenta que


para que tome la configuración hay que reiniciar el Postfix. Lo hice
y pronto, estaba funcionando tranquilamente.

Agradezco al autor del post estuve buscando algo asi durante


horas hasta que di con esto.

Saludos

#4 by Tairux on 21-04-09 - 7:02 pm

Cara, yo reinicio la maquina, y tambien postfix, y nada, que puede


ser, yo creo que debe ser que hay que instalar los certificados a
debian, no solamente openssl, ademas creo que van otros
paquetes, o configurar correctamente ssl.
que crees tu?, Saluda
Tairux

#5 by nihilanthlnxa on 25-04-09 - 5:34 pm

Saludos.

Muy buen post. Me gustaría saber cómo hacer esto mismo, pero
con 5 cuentas diferentes de GMail.

Gracias de antemano.

#6 by amperis on 12-05-09 - 7:03 pm

Muy buenoU mando este enlace a


http://groups.google.es/group/zimbragrupo

#7 by nihilanthlnxa on 17-08-09 - 6:41 pm

Saludos.

Una pregunta: Cuando lo mandaste (que se ve bien claro en el


log), ¿revisaste el correo de destino y viste el campo “From”?

Te pregunto porque yo hice eso y como quiera cambiaba la


direccion de emisión.

#8 by sylon on 18-08-09 - 11:12 am

Buenas, gracias por el manual.

Una pregunta, sabes como hacer para enmascarar la dirección de


gmail?

Es decir que cuando envies un mail salga el usuario y no la


dirección de gmail?

Si envio los mails desde consola:

echo “hola” | mail -s “prueba” mail@mail.com

como remitente sale el usuario del sistema

5 de 10 13/12/2011 05:42 p.m.


Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

En cambio si uso un cliente de correo sale la dirección de gmail


que uso para el smarthost

Gracias

#9 by albertomolina on 18-08-09 - 11:39 am

El problema que estáis teniendo #nihilanthlnxa y


#sylon es que gmail está cambiando la línea
From: de vuestros mensajes y poniendo como
remitente el usuario de gmail. Esto no tiene nada
que ver con la configuración de postfix, es
simplemente una precaución que tiene gmail ya
que sólo pone como remitentes direcciones
verificadas. Tenéis que entrar en la configuración
de vuestra cuenta de gmail y añadir una nueva
cuenta en “Enviar mensaje como” (verificará que
tenéis acceso a la misma mediante un mensaje
de correo).

Modificaré la entrada para explicar esto, gracias


por el comentario.

#10 by sylon on 13-01-10 - 3:15 pm

Ok, gracias, pero para esto


como debería tener configurado
mi postfix para que me lleguen
correos de fuera?, Obvieamente
no me llega el código d
everificación de gmail.

#11 by Zokeber on 29-08-09 - 11:49 am

Saludos,

Parece ser que que smtp.gmail.com volvió a regresa a su antigua


CA, dandome el siguiente error:

certificate verification failed for


smtp.gmail.com[74.125.93.111]:587] untrusted issuer /C=ZA/S
T=Western Cape/L=Cape Town/O=Thawte Consulting
cc/OU=Certification Services Division/CN=Thawte Premium Server
CA/emailAddress=premium-server@
thawte.com

Esto fue por que solo tenia la CA de Equifax Secure, así que tuve
que agregar la de Thawte Consulting, al archivo /etc/postfix
/CAcert.pem

#12 by J.J. Garcia on 12-09-09 - 11:59 am

Gracias!!!

Llevaba tiempo intentando cerrar este punto y no lo conseguia, yo


uso RHEL/CentOS y en mi caso los certificados se generan con
un script en /etc/pki/tls/certs, simplemente con invocar ‘make’ te
permite crear el que necesitas con ‘tus’ datos.
Siguiendo tu tutorial, gmail acepta ese certificado y empieza a
hacer relay.

Gracias

Saludos,

6 de 10 13/12/2011 05:42 p.m.


Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

JJ.

#13 by Daniel G Zylberberg on 29-11-09 - 2:48 pm

Muy bueno el post.

Como puedo con figurar postfix para enviar a travéz de varias


cuentas de gmail?

muchas gracias

#14 by Daniel G Zylberberg on 29-11-09 - 2:50 pm

mas que nada para no tener el limite molesto de 500 emails por
diaU

#15 by Alberto Guzman on 10-09-10 - 6:54 am

Que configuracion termina usando para el envio de correo


* dominio.org:25
* dominio.org:587
*stmp.gmail.com:587

me perdi en las configuraciones

#16 by J.B on 11-10-10 - 1:56 pm

Hola a todos he seguido este manual pero encuentro parado en el


punto de añadir la autoridad certificadora
ya que la ruta que aparece en el manual ( cat /etc/ssl/certs/ ) no la
tengo en mi sistema.

Un saludo

#17 by albertomolina on 11-10-10 - 4:13 pm

Hola J.B

Comprueba si tienes instalado el paquete


ca-certificates, que incluye los certificados de las
autoridades de certificación (CA)

#18 by J.B on 11-10-10 - 5:25 pm

Me parece que el problema es


que la distro es CentOS 5.5,
porque al intentar instalar ese
paquete me dice que no existe.

yum install ca-certificates


Loaded plugins: fastestmirror,
priorities
Loading mirror speeds from
cached hostfile
* addons: http://ftp.gui.uva.es
* base: http://ftp.udl.es
* extras: http://ftp.udl.es
* rpmforge: fr2.rpmfind.net
* updates: centos.crazyfrogs.org
Setting up Install Process

7 de 10 13/12/2011 05:42 p.m.


Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

No package ca-certificates
available.
Nothing to do

#19 by albertomolina on 11-10-10 -


7:09 pm

Puedes mirar el comentario de


J.J. García que explica como
hacerlo en CentOS, ¡suerte!

#20 by J.B on 13-10-10 - 1:06 pm

Si, lo he seguido y generado el


certificado sin problema he
reiniciado el servicio de postfix,
pero no llegan los correos, asi
que algo tengo que estar
haciendo mal.

#21 by J.B on 13-10-10 - 1:21 pm

Si ejecuto :

echo .hola. | mail -s .prueba.


micuenta@gmail.com

El correo llega a micuenta pero


no me llega a mi, entonces ya no
sé si está fallando, algo de
postfix , nagios o el reenvio de
gmail.

#22 by J.B on 13-10-10 - 1:56 pm

Si envio un mail desde hotmail


por ejemplo a
micuenta@gmail.com , me llega
el reenvio, pero si ejecuto desde
el ser servidor ” echo .hola. | mail
-s .prueba. micuenta@gmail.com
” llega a micuenta@gmail.com
pero no realiza el reenvio.

#23 by Daniel G Zylberberg on 13-10-10 - 7:19 pm

Revisa los logs de postfix (su cat /var/log/mail.log desde linux).


Ahi te dice si se entregó o no, si gmail lo está rechazando y por
que motivo, etc.

También si Centos , el router y todo lo que tengas que realmente


tengan los puertos abiertos.
Hay una web que te escanea los puertos. pero te recomiendo que
vayas a un cyber y pruebes si el server que tiene postfix levanta.
Si no podes conectar, probá todo por separado desde telnet.
chau

#24 by J.B on 14-10-10 - 1:14 pm

Hola si ejecuto un echo .hola. | mail -s .prueba.


micuenta@gmail.com en el maillog me parece lo
siguiente:

8 de 10 13/12/2011 05:42 p.m.


Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

Oct 14 13:05:12 nagios


sendmail[6043]: o9EB5B5H006043:
from=root, size=49, class=0,
nrcpts=1, msgid=,
relay=root@localhost
Oct 14 13:05:12 nagios
postfix/smtpd[6044]: connect from
nagios.miempresa.es[127.0.0.1]
Oct 14 13:05:12 nagios
postfix/smtpd[6044]: 31F4316DDD4:
client=nagios.miempresa.es[127.0.0.1]
Oct 14 13:05:12 nagios
postfix/cleanup[6047]: 31F4316DDD4:
message-id=
Oct 14 13:05:12 nagios
sendmail[6043]: o9EB5B5H006043:
to=micuentadegmail@gmail.com,
ctladdr=root (0/0), delay=00:00:01,
xdelay=00:00:00, mailer=relay,
pri=30049, relay=[127.0.0.1]
[127.0.0.1], dsn=2.0.0, stat=Sent
(Ok: queued as 31F4316DDD4)
Oct 14 13:05:12 nagios
postfix/qmgr[11795]: 31F4316DDD4:
from=, size=533, nrcpt=1 (queue
active)
Oct 14 13:05:12 nagios
postfix/smtpd[6044]: disconnect from
nagios.miempresa.es[127.0.0.1]
Oct 14 13:05:15 nagios
postfix/smtp[6048]: 31F4316DDD4:
to=,
relay=smtp.gmail.com[209.85.229.109]:587,
delay=3.5, delays=0.06/0.21/1.6/1.7,
dsn=2.0.0, status=sent (250 2.0.0 OK
1287054272 h29sm9300772wbc.15)
Oct 14 13:05:15 nagios
postfix/qmgr[11795]: 31F4316DDD4:
removed

Pero mi servidor no tiene la ip 127.0.0.1

#25 by Daniel G Zylberberg on 14-10-10 - 1:41 pm

127.0.0.1 es lo mismo que localhost, o sea tu maquina.

fijate que si haces ping localhost te sale:


silver@server:~$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64
time=0.050 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64
time=0.051 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64
time=0.051 ms

En tu log me llama la atencion 2 cosas, que dice 31F4316DDD4:


to=, o sea que el destinatario está vacio.
Lo mismo para el from= que tambien viene vacio, cuando ahi,
debería decir tu direccion.

Fijate si haciendo esto te sirve de algo:


apt-get install mailutils

echo testing | mail -s Bla tucuenta@tuempresa.com (en vez de

9 de 10 13/12/2011 05:42 p.m.


Configurar postfix a través de un relay host autenticado (Gmail) « Desde... http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-tr...

usar con el dominio de gmail).

#26 by J.B on 15-10-10 - 11:44 am

Si hago un ping al localhost me responde, no he


podido instalar mailutils ya que estoy con
CentOS, y despues de realizar echo testing, no
me hado nungun error al ejecutarlo pero no me
hallegado ningun mail.

#27 by Fernando on 14-11-11 - 2:20 am

hola muy buen manual, no lo he llevado a cabo, sin embargo


quería saber si es el motivo así como lo explica tu manual que no
se envíen correos a dominios externos, sin embargo si puedo
recibir de cualquier domino externo..

#28 by albertomolina on 14-11-11 - 6:49 pm

Exacto Fernando, es como tú dices. La recepción


de correo depende más de una configuración
adecuada del servidor DNS y quizás del
cortafuegos. El problema es el envío y aquí se
explica una forma de hacerlo desde una dirección
IP dinámica.

Deja un comentario

Recibir siguientes comentarios por correo. Publicar comentario

Blog de WordPress.com. Theme: Fusion by digitalnature.

10 de 10 13/12/2011 05:42 p.m.

También podría gustarte