Postfix Autenticado

Hoy en día, gracias a la creciente integración de los procesos informáticos y de las telecomunicaciones dentro de los procesos de negocio de las empresas, es muy común encontrar que muchas de éstas poseen sus propios servidores de correo dentro de su red corporativa.

Uno de los inconvenientes de utilizar MTA’s propios es que, si no se encuentran correctamente configurados y administrados, pueden (entre otras cosas) ser utilizados por spammers para enviar correos masivos (lo que se denomina relay abierto). Por éste motivo muchos ISP utilizan servidores SMTP autenticados.

En caso de que un servidor interno haga relay en el SMTP de su ISP será necesario que éste último se acredite antes de realizar los envíos.

Éste tutorial indica cómo configurar Postfix para realizar dicha autenticación. Me he basado en Postfix debido a que es uno de los MTA mas utilizados debido a su gran flexibilidad y exelente potencial.


2- Requerimientos

La idea de éste documento mostrar los pasos para configurar la autenticación en un servidor Postfix ya configurado y operativo, sin hacer referencia a la instalación y configuración misma de dicho software.
Éste trabajo lo he realizado sobre plataforma Linux (Debian Sarge) utilizando Postfix 2.1.5.
Para más info te recomiendo que visites el sitio oficial del proyecto: www.postfix.org.

3- Instalar los paquetes necesarios:

Vamos a necesitar instalar los módulos de autenticación y encriptación SASL como también el soporte para TLS (Transport Security Layer, que es una estandarización de SSL para la capa de transporte del modelo de referencia OSI)

apt-get install postfix-tls libsasl2-modules

4- Creación de los archivos de autenticación

Una vez instalado el soporte para TSL y SASL para Postfix será necesario crea el archivo donde se guardará la contraseña:

mkdir /etc/postfix/sasl
cd /etc/postfix/sasl
vim sasl_passwd

E insertar esta sinstaxis:

URL-o-IP-del-servidor-SMTP usuario:password

Es necesario crear la tabla de lookup para Postfix. Ésto se realiza con el comando ‘postmap‘ pasándole como parámetro el archivo que hemos creado recién.
Para más información sobre las tablas de lookup puedes ingresar AQUÍ .
Dentro de la carpeta /etc/postfix/sasl ejecutamos:

postmap sasl_passwd

5- Configuración de postfix

Ahora trabajaremos sobre el archivo de configuración general de Postfix (/etc/postfix/main.cf).
A continuación se detallan las líneas necesarias para hacer relay autenticado:

relayhost = smtp.servidor.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd

6- Finalización y prueba

En éste momento podemos r einiciar Postfix verificar en los logs que todo es´te corriendo adecuadamente.

7- Resolución de problemas

7.1 Si el servidor requiere autenticacion en texto plano agregar la siguiente linea en /etc/postfix/main.cf :

smtp_sasl_security_options =

7.2 Si obtenemos un mensaje del tipo «envelope domain must exist» revisar el archivo /etc/mailname de manera que quede solo el dominio de correo interno.

23 respuestas a “Postfix Autenticado”

  1. Joel dice:

    Mey, quería felicitarte por subir éste tipo de cosas a tu blog… porque ayudan mucho y realmente están bien redactado.
    Saludos desde Sante Fe!!!!!

  2. Damián dice:

    Hola, tengo un problema y no se si puede ser de mi postfix o de la empresa de Internet (Adinet) de Uruguay. resulta que en uno de las ADSL (Tengo 3 en distintos puntos de un complejo) cuando quiero enviar correos me aparece el siguiente error
    «El mensaje no se pudo enviar, uno de los destinatarios fue rechazado por el servidor. Su dirección de correo electrónico es
    «virginia.albistur@cracgc.com.uy». Asunto ‘PREGUNTA’, Cuenta: ‘Waldemar’, Servidor: ‘world.solanasvacation.com.ar’, Protocolo: SMTP, Respuesta del servidor: ‘554 : Relay access denied’, Puerto: 25, Seguridad (SSL): No, Error de servidor: 554, Número de error: 0x800CCC79″
    Mi servidor de Postfix no requiere autenticacion, le estoy dando vueltas y no encuentro una solucion, puede ser que la IP que me asigne el ISP este en una black listo o puede ser problema de si Postfix??
    TE agradeceria si pudieras darme alguna ayuda con esto.
    Muchas gracias.
    Damian

  3. Mey dice:

    Damián:
    Fijate que en el error te dice “Relay Acces Deny”, o sea que el servidor SMTP de tu proveedor no aceptó reenviar tus emails.
    Generalmente, si el SMTP del ISP no es autenticado, acepta mails solo desde las redes de sus suscriptores. Estas seguro que el gateway smtp está apuntando al SMTP correcto?.
    Otra cosa que se me ocurre es que Adinet no permita hacer relay salvo que actives el servicio.
    Saludos!!!

  4. Damián dice:

    Hola, primero muchas gracias por tu pronta respuesta, mi consulta es la siguiente, el problema por donde puede venir? del servidor postfix o del proveedor de internet?
    Otra consulta mas, me informas que puede ser que Adinet no permita el reley, salvo que active el servicio. ¿desde donde se activaria? Muchas gracias nuevamente
    Saludos !!

  5. Damián dice:

    Hey !! lo solucione agregando el sitio de Adinet al archivo de RELAY del Postfix !! Gracias por tus comentarios!

  6. atila2006 dice:

    Estimado Mey, estoy haciendo un servidor de correo (postfix) con Cyrus21….tengo las siguientes dudas:

    1.- Como lo configuro para que envie correos tanto dentro de la empresa como para cuentas que no esten dentro de ella( gmail, hotmail, yahoo, etc).

    2,- La empresa cuenta con un correo del tipo juanperez@laempresa.com…..como los servidores externos de correo “saben” que cuando se envia un correo por ejemplo de yahoo hacia la empresa debe dirigirlo a xxxxxxxxx@laempresa.com????

    Se que deberia ser basico…pero quiero ayuda…please….gracias

  7. Mey dice:

    Hola Atila!!!!

    Antes que nada sería mejor saber si el servidor que tiene los mailboxes es uno interno (por ejemplo, el debian que estas instalando) o externo (el servidor de correo del proveedor de hosting, por ejemplo).

    Cuando alguien envía un mail a *@laempresa.com su cliente de coreo lo pasa al servidor SMTP que tiene configurado, éste o bien hace relay en otro SMTP (le entrega el mail a otro servidor que no es el de destino) o lo hace el delivery por su cuenta al servidor de destino.
    Para saber cual es el servidor de destino un MTA hace una consulta MX y obtiene la IP del MTA que contiene los mailboxes.

    En este link hay un ejemplo de una configuración simple para que Postfix haga entrega de los correos utlizando como smarthost un SMTP conocido.

    Las opciones de Transport omitilas ya que en tu caso los mailboxes están en el mismo equipo.

    En caso de que los mailboxes existan en un servidor externo podrías instalar fetchmail para que baje mediante POP3 los correos de cada cuenta y los deje en los mailboxes locales.

    Saludos!!!

  8. […] En éste artículo voy a explicar como configurar Postfix para que requiera autenticación.Cuidado! No es lo mismo que configurarlo para que se autentique para enviar un correo (eso lo describo en éste otro artículo). […]

  9. gonzalo dice:

    loco, andubo todo 10 puntos, segui todo al pie de la letra, muchas gracias
    mi sistema es un ubuntu 7.04 con postfix 2.4.5
    eternamente agradecido

  10. Mey dice:

    SUUUPER!!!
    Que bueno que te haya servido.
    Cualquier comentario y/o critica siempre es bienvenida.
    Saludos!

  11. Hola.
    Recientemente mi ISP bloqueo el puerto 25, por lo que he tenido problemas con postfix.
    He buscado y buscado alguna manera de redireccionar a otro puerto, pero no he dado realmente con algo que me ayude. Me dijeron que haciendo uso de «smarthost» podria solucionarlo, buscando di con tu blog (muy bueno por cierto)
    Mi duda es, que me recomiendas hacer en mi caso especifico?, ya que me tiene loco el tema desde dicho bloqueo.
    Saludos y gracias.

  12. Mey dice:

    Hola Ranmaru.
    Si tu ISP bloqueó el puerto 25 para conexiones salientes desde tu red no vas a poder conectarte a ningun server de correo, así que para enviar mails tendrias que pedir que vuelvan a abrirlo o en caso de que ellos hagan como hacen algunos IPS, que bloquean el trafico SMTP para todos menos para sus mailservers, utilizas éste como smarthost (o sea que haces relay en el mailserver de tu ISP.
    Si te bloquearon el puerto 25 para conexiones entrantes hay que denunciarlos 🙂

  13. Luis Alberto dice:

    Hola Mey. Tengo un pequeño problemilla.

    Tengo que realizar una actividad que consiste en montar un servidor de correo electronico.

    El problema es que el servidor no me envia correos a las cuentas de yahoo, gmail, hotmail.

    Sin embargo, a otras cuentas si me deja enviarlas, como son a los servidoresde mis compañeros.

    He hecho todo lo que has puesto arriba mencionado pero en fedora. Tengo bien configurado el servidor, puesto que no me da error, salvo el mencionado por Damian. He puesto lo siguiente y sigue dando error. A continuación te pongo lo que he puesto en los ficheros:

    Fichero sas1_passwd

    rouco.no-ip.org clave:casn-t0
    #rouco.no-ip.org es el nombre de mi servidor.

    Fichero main.cf

    mynetworks = rouco.no-ip.org
    mynetworks = www.hotmail.com
    mynetworks = www.gmail.com
    mynetworks = www.yahoo.es
    relayhost = smtp.hotmail.com
    smtp_sas1_auth_enable = yes
    smtp_sas1_password_maps = hash:/etc/postfix/sas1/sas1_passwd
    relayhost = smtp.gmail.com
    smtp_sas1_auth_enable = yes
    smtp_sas1_password_maps = hash:/etc/postfix/sas1/sas1_passwd
    relayhost = smtp.yahoo.es
    smtp_sas1_auth_enable = yes
    smtp_sas1_password_maps = hash:/etc/postfix/sas1/sas1_passwd

    Ya no se me ocurre nada, a ver si por favor me puedes ayudar. Muchas Gracias de Antemano.

    PD: Si quieres te envio el fichero de configuración del postfix.

  14. Mey dice:

    Hola Luis!
    El problema aca es otro.
    Estas configurando postfix para que utilice de smarthost a los servers de Hotmail, Yahoo y Gmail y no es necesario que lo hagas!
    Utilizar un smarthost en tu caso sirve para que, si los MTA destino utilizan algun tipo de chequeo DNS inverso, no rechacen tus emails.
    El unico smarthost que deberias configurar es el de tu ISP, luego éste se encargará de enviar los emails a sus destinos (sean yahoo, hotmail, gmail, mey-online o lo que fuera.
    Saludos!

  15. Harold Crow dice:

    Saludos.
    Tengo una duda, es posible poder bloquear ciertos tipos de archivos en el trafico de los emails pero para un dominio especifico, por ejemplo, el dominio midomain1.com no acepte que se envien o reciban archivos pps, ppt. En el dominio domain2.com no acepte archivos .zip .rar
    Al final nose si tiene que ser en postfix pero nada pierdo haciendo la consulta. muchas gracias

  16. José dice:

    Tengo la siguiente duda:
    Gracias si me puede ayudar tengo un servidor de linux Gnu/Linux y me sirve para administrar mi correo dentro de la empresa todo funciona bien pero desde mi casa he configurado el correo con el pop3 y smtp del outlook recibo todos los mensajes pero no puedo enviar mensajes sale el siguiente mensaje: your message did not reach some or al of the intende recipients como puedo habilitar en el servidor para poder enviar mensajes el problema es que desde mi portatil entro con ip automatico y en iptables no se, que hago
    gracia por la ayuda.

    Atte.

    José W. Zurita P.

  17. Mey dice:

    Jose:

    Cuando utilizas tu portatil fuera de la empresa no puedes apuntar a la IP interna del servidor. Deberias cambiar la conf. para acceder a la IP publica (siempre y cuando este abierto POP3.
    Otra opcion es conectarte por VPN y ahi si vas a poder acceder al servidor de correo con su IP privada.
    Saludos!!!

  18. Kimberly dice:

    Hola!!

    Tengo un problema instale el servidor postfix en un amquina virtual de ubuntu y como cliente estoy utilizando el evolution. El problema es que puedo enviar mensajes por la consola pero no por evolution. Se que es problema del SMTP pero ya no se qeu mas hacer. Creo que no esta bien configurado el postfix ya uqe tambien lo intente con el thunderbird y nada.

    main:

    # 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

    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

    # 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:${queue_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

    # Habilitamos la autenticación SASL para el cliente SMTP
    smtp_sasl_auth_enable = yes

    # Especificamos los metodos de seguridad para la autenticación
    # del cliente SMTP
    smtp_sasl_security_options = noanonymous

    # Especificamos el archivo de mapas donde se encuentra la información
    # para autenticarse al servidor mail.dominioexterno.com.
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

    # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.

    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    mydestination = kimberly.localdominio.net,localdominio.net
    mynetworks = 127.0.0.0/8 10.0.2.0/8
    mailbox_size_limit = 0
    recipient_delimiter = +
    myorigin = localdominio.net

  19. Mey dice:

    Hola Kimberly!!!
    Las pruebas desde consola que haces, las efectuas desde la maquina virtual o desde el qeuipo que corre el cliente de correo???
    Quizas el problema esta en la configuracion de red del equipo virtual. No deberia estar ocnfigurado con NAT sino en la misma red el host y el guest.
    Saludos!!!!

  20. gonza dice:

    otra vez recurri a tu tutorial, estos capos de datamarkets me cambiaron user y pass del smtp asi que volvi a recurrir a tu ayuda
    gracias otra vez, un abrazo

  21. chuenga.net dice:

    Como hacer para tener el Postfix autenticado…

    Gracias a este tutorial le pude dar los toques finales a mi servidor web, aca se explica como hacer para poder mandar mails desde un cliente de correo tipo Outlook o Thunderbird (obviamente usando tu servidor propio de mail), sin que te rebote el mail …

  22. sac dice:

    Hola a todos permitenme participar en este tremendo tutorial y realizar algunas preguntas que micho sabréagradecer
    El caso es qu tengo una red con servidor debian con servicios de proxy dns dhcp funcionando, todo funciona
    Instalamos Postfix en el servidor y evolution en los clientes direccionandolo al servidor de correo Postfix, pero nada, por cierto tampoco funciona con los usuarios del sistema original, es decir, ni con los de Debian, ni con los generados por Postfix.
    Habra algun sitio que explique paso a paso para detallar los posibles errores.
    Porque hasta ahora he notado que existe excesiva documentación en este caso de Linux y cada quien propone algo distinto e inclusive contradictorio, Si queremos que esta tarea continue habria que formalizar los contenidos
    gracias
    SAC

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *