Buscar:

Búsqueda personalizada

May 15, 2009

Configurar Postfix usando GMAIL (Funciona!!!!)


Características del montaje

  • Sistema: Debian GNU/Linux (lenny)
  • postfix 2.5.5
  • DNS correctamente configurado en dyndns.org, supongamos que fuese mimaquina.dyndns.org
  • ddclient instalado y configurado para actualizar el registro DNS en dyndns
  • Cuenta abierta en gmail, supongamos que fuese micuenta@gmail.com

Si instalamos postfix en un equipo con dirección IP dinámica y envíamos un mensaje de correo a determinados dominios (por ejemplo hotmail), nos rebotarán los mensajes y nos aparecerán líneas en el fichero /var/log/mail.log como éstas:

postfix/pickup[6804]: 09B0634680: uid=1000 from=
postfix/cleanup[6810]: 09B0634680:message-id=<20081231154700.09b0634680@mimaquina>
postfix/qmgr[6802]: 09B0634680: from=, size=307, nrcpt=1 (queue active)
postfix/smtp[6812]: 09B0634680: to=,relay=mx2.hotmail.com[65.54.244.40]:25, delay=1.3, delays=0.03/0.04/0.92/0.3, dsn=5.0.0, status=bounced (host mx2.hotmail.com[65.54.244.40] said: 550 DY-001 Mail rejected by Windows Live Hotmail for policy reasons. We generally do not accept email from dynamic IP's as they are not typically used to deliver unauthenticated SMTP e-mail to an Internet mail server. http://www.spamhaus.org maintains lists of dynamic and residential IP addresses. If you are not an email/network admin please contact your E-mail/Internet Service Provider for help. Email/network admins, please visit http://postmaster.live.com for email delivery information and 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

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 a continuación los pasos que hay que dar para hacer eso con el servidor de correo de GMail
(smtp.gmail.com).

Características de la conexión

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

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:

[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

Prueba de funcionamiento

La prueba de funcioanmiento se realiza con los siguientes pasos: Tipear:

telnet mail.example.net 25

Tipear lo escrito en negrita y presionar Enter

SERVER:220 local ESMTP Sendmail 8.13.5/8.13.5; Wed, 15 Mar 2006 01:51:21 -0800 (PST)
USER:HELO host.example.com
SERVER:250 mail.example.net Hello host.example.com [192.0.2.1], pleased to meet you
USER:MAIL FROM:
SERVER:250 2.1.0 ... Sender ok
USER:RCPT TO:
SERVER:250 2.1.5 ... Recipient ok
USER:DATA
SERVER:354 Enter mail, end with "." on a line by itself
USER:This is a test message
USER:.
SERVER:250 2.0.0 k2FApLlB020139 Message accepted for delivery
USER:QUIT
SERVER:221 2.0.0 mail.example.net closing connection

Si anda, tenemos que obtener algo como lo que sigue en /var/log/mail.log:

postfix/pickup[6703]: 6AFF534680: uid=1000 from=
postfix/cleanup[6786]: 6AFF534680: message-id=<20081231154524.6aff534680@mimaquina>
postfix/qmgr[5935]: 6AFF534680: from=, size=310, nrcpt=1 (queue active)
postfix/smtp[6788]: 6AFF534680:to=,relay=smtp.gmail.com[66.249.93.111]:587, delay=2.8, delays=0.04/0.02/1.2/1.6,
dsn=2.0.0, status=sent (250 2.0.0 OK 1230738538 34sm19633915ugh.10)
postfix/qmgr[5935]: 6AFF534680: removed

Probando en Debian Lenny/Sid

Fuente:

http://albertomolina.wordpress.com/2009/01/04/configurar-postfix-a-traves-de-un-relay-host-autenticado-gmail/
http://www.elandsys.com/resources/sendmail/

No comments: