Configurar Postfix con cuentas Exchange Online de Office 365 de Microsoft
Office365 es la última apuesta de Microsoft para competir en soluciones de comunicación y colaboración en la nube. Integrada por productos como Office Professional Plus, que incluye Excel, Word, o Exchange Online, producto al cual estamos interesados en ésta entrada, ya que integraremos una cuenta de correo de ésta plataforma en un servidor GNU/Linux con Postfix para usarlo como relay.
Exchange Online, se trata de una plataforma de correo empresarial, que como características principales permite compartir calendarios, correos de voz o correo electrónico móvil. Además permite tener una capacidad por cuenta de 25GB. Office365 incluye mucho más servicios que no trataré en este artículo.
El correo Exchange Online exige cifrado TLS para la transmisión del correo, característica que tendremos que tener en cuenta cuando configuremos dicho servidor.
Bien, ya vimos en su día como configurar una máquina GNU/Linux con Postfix. Así que hay detalles que omitiré.
Primero de todo, tenemos que tener activa una cuenta de Exchange Online, a la cual accederemos desde la url: http://login.microsoftonline.com, como vemos en la siguiente imagen:
Una vez dentro, y para saber que configuración debemos utilizar para configurar nuestro relay tenemos que seguir la ruta: Outlook – Opciones – Ver todas las opciones, una vez llegado aquí deberemos ver la siguiente ventana:
Ahora seleccionamos “Configuración para acceso POP, IMAP y SMTP….”
Tomaremos nota de la configuración SMTP, es decir, del nombre del servidor, el puerto y el método de cifrado, que como vemos es puerto 587 y cifrado TLS. Cuando tenemos esta información ya nos podemos ir a nuestro servidor GNU/Linux para configurarlo. ´
Yo he usado un servidor con Debian Squeeze, y he introducido los comandos siempre como root.
Para que funciona correctamente el servicio POSTFIX con cuentas de Office 365 tienen que ser versiones a partir de la 2.9.0 por tema de compatibilidad.
Por defecto en Debian Squeeze no vienen las últimas versiones de POSTFIX, así que tenemos que usar los repositiros BACKPORTS para poder actualizar. Para ello debemos modificar el archivo /etc/apt/sources.list y añadir la siguiente línea:
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
Una vez añadida debemos actualizar el sistema con el comando:
apt-get update
Ahora nos toca instalar la última versión usando backports.
aptitude -t squeeze-backports install postfix
Básicamente la configuración que tenemos que usar para que funcione correctamente nuestro servidor de relay, es la siguiente.
En el archivo main.cf.
# Para que utilice todas nuestras interfaces de red
inet_interfaces = all
# Indicamos nuestro servidor, información que hemos recogido de la web de Exchange Online
relayhost = [podxxxxx.outlook.com]:587
# En los siguientes parámetros decimos que el servidor necesita autentificación y la ubicación del archivo con las credenciales de seguridad
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd
# Decimos que no aceptamos conexiones anónimas
smtp_sasl_security_options = noanonymous
# Al usar cifrado TLS necesitamos indicar donde tenemos ubicado nuestro certificado
smtp_tls_CAfile = /etc/postfix/cacert.pem
# Indicamos que efectivamente vamos a usar TLS como sistema de cifrado
smtp_use_tls = yes
# Hacemos saber cual es nuestro dominio
relay_domain = dominio.com
# También decimos que cuando se conecte al servidor siempre envíe un ehlo
smtp_always_send_ehlo = yes
# Aquí viene una parte importante, tenemos que usar un archivo generic, donde indicaremos los alias que vamos a usar para el envío
smtp_generics_maps = hash:/etc/postfix/generic
Y con esto ya tendríamos listo el archivo main.cf
Ahora generaremos el certificado de seguridad, usaremos el comando cat, que enviará la salida de un archivo de texto a otro, de la siguiente manera:
cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem > /etc/postfix/cacert.pem
Hay otras maneras de hacerlo, pero esta es la que me gusta a mi, para gustos colores.
Ahora crearemos el archivo donde guardaremos las credenciales (esto lo hicimos también en la otra entrada sobre Postfix)
Yo tengo el arhivo en un directorio a parte llamado sasl, lo puedes ubicar donde más rabia te de, siempre que indiques la ruta en main.cf, como hemos dicho antes.
Sería así:
nano /etc/postfix/sasl/passwd
Una vez dentro del archivo escribimos:
[podxxxxx.outlook.com]:587 Nuestro correo:Password
Salimos del editor nano, habiendo grabado antes con la combinación CTRL+O para grabar y CTRL+X para salir.
Indicamos permisos al archivo para que sólo el usuario root pueda verlo:
chmod 600 /etc/postfix/sasl/passwd
Ahora usamos el comando postmap, para que el archivo sea legible por el sistema Postfix:
postmap /etc/postfix/sasl/passwd
Bien, ahora viene una parte muy importante. Es la creación del archivo generic.
Antes de nada, indicamos al sistema que queremos crear nuevos alias:
newaliases
Ahora creamos el archivo:
nano /etc/postfix/generic
Y lo editamos:
[Superusuario del sistema] [Nuestra cuenta de Office365]
Por ejemplo:
oot@debian.localdomain fulanitodelospalotes@midominio.com
Eso hará que cuando enviemos la información al servidor de Microsoft, le digamos nuestra cuenta de correo, y no nuestra credencial de superusuario.
Salimos del editor y generemos un archivo legible:
postmap /etc/postfix/generic
Ahora que tenemos todos los archivo generados, podemos reiniciar el servidor:
/etc/init.d/postfix restart
Y probar un envío:
mail correo@dominio.com
Recordad que con CTRL+D tenéis que enviar el correo, una vez introducido el texto y los destinatarios.
Notas: Las imágenes, ventanas y logos de Office 365 son propiedad de Microsoft. Para la edición y capturas de las imágenes he utilizado el programa GIMP 2.8