Instalación y configuración de Proxmox Mail Gateway

Proxmox Mail Gateway (en lo adelante PMG) es; citando desde su web:

La solución de seguridad de correo electrónico de código abierto líder que lo ayuda a proteger su servidor de correo contra todas las amenazas de correo electrónico en el momento en que surgen. La arquitectura flexible combinada con la interfaz de administración basada en la web y fácil de usar permite a los profesionales de TI y las empresas controlar todos los correos electrónicos entrantes y salientes con facilidad y proteger a sus usuarios del correo no deseado, virus, phishing y troyanos.

En otras palabras, no es más que un relay de correo el cual se encargará de gestionar todo el tráfico de E-Mails, siendo éste el que esté de cara al mundo y no el propio servidor de correo.

Hay varias maneras de instalar PMG:
– En un CT usando sus repositorios.
– Con un ISO (proceso idem a instalar Proxmox).
– O descargándose la plantilla que nos brinda el propio sitio de Proxmox.

Hoy nos atañe la pimera opción, en un CT/LXC, de esa manera ahorramos recursos.

Requisitos:

  • CT con 2 cores (o más) y 2 GB de RAM mínimo
  • Debian 9 o 10.
  • Conexión a internet.

Notas:
– PMG    = 192.168.0.4
– Correo = 192.168.0.5

Comencemos:

  • Crea un CT con Debian 9 o 10 y agregale el repositorio de PMG correspondiente a la versión que usaste al «sources.list«:
    nano /etc/apt/sources.list
    
    Agrega:
    Para Debian 9
    deb http://download.proxmox.com/debian/pmg stretch pmg-no-subscription
    
    Para Debian 10
    deb http://download.proxmox.com/debian/pmg buster pmg-no-subscription
  • Agrega las GPG:
    Para Proxmox 5.x:
    wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
    
    Para Proxmox 6.x:
    wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
  • Actualizalo:
    apt update ; apt full-upgrade -y
  • Instala PMG:
    apt install -y proxmox-mailgateway

Para su configuración les traigo 2 versiones: una pensando en la persona que tiene IP Real, y la otra en una VPN.

Primero acondicionaremos el terreno:

  • En tu DNS Externo crear un registro directo e inverso para el PMG con un IP aparte al resto que tengas (no es recomendado tener varios servicios en un mismo IP). Puedes llamarlo «mail» o «mx», como prefieras.
  • Crea la regla de acceso NAT al puerto 25 que tenga como destino «WAN NET» (el rango completo de tus IPs Reales), y que sea nateado al IP LAN/DMZ de tu PMG por dicho puerto.
    También puedes optar por crear un IP Virtual con el registro que creaste en el DNS para ese servicio, entonces en el destino pondrías dicho IP Virtual.
  • Darle salida a internet al PMG para que pueda enviar correos, actualizar el ClamAV, etc.
    Puedes darle salida total por todos los puertos, o cerrar y que use solo los necesarios. Según su sitio (2.3. Firewall settings) estos son los que usa:
    Salida: 25 (SMTP), 123 (NTP), 2703 (RAZOR), 80 (HTTP)
  • En tu servidor de correo modificar el Postfix:
    En la línea «relayhost =» agregarle el IP del servidor PMG con el puerto 26 que es por el cual recibirá del servidor de correo.
    relayhost = [192.168.0.4]:26

    En la línea «mynetworks =» agregarle el IP del servidor PMG para que sepa que es de confianza.

    mynetworks = 127.0.0.1/8 192.168.0.4

    Reiniciar el Postfix

    systemctl restart postfix.service

Los que estén en VPN: Si no tienes DNS y usas los de tu proveedor de servicios sáltate ese paso, el resto es obligatorio.

Entonces ya puedes eliminar la regla de entrada en el firewall directo a tu servidor de correo pues ahora quien estará de cara al mundo será el servidor PMG.

Una vez que tengamos instalado PMG y los 4 pasos anteriores vamos a pasar a configurarlo.

Conectamos con él por https y por el puerto 8006 (https://IP:8006). La configuración la haré en Ingles, por tanto, déjenlo en Ingles:

  • Vamos a «Configuration > Mail Proxy > Relaying».
    Edita las opciones que hay para que te quede así:

    En «Default Relay» pondrías tu dominio. El resto como viene por defecto.
    Los que estén en VPN: En  el apartado «Smarthhost» poner ahí el IP (o el DNS) del MX de tu proveedor de servicios.
  • Vamos a «Configuration > Mail Proxy > Relay Domains»
    Aquí agregarías tu dominio, es decir, que el único que pude enviar correo usando PMG es tu dominio y nadie más. Por tanto, te quedaría:
  • Vamos a «Configuration > Mail Proxy > Options»
    Yo la dejé de la siguiente manera:

    El «Message Size» por defecto viene para 10MB, chequea cuanto tiene puesto tu servidor de correo y pones la misma cantidad aquí para que haya concordancia entre uno y otro.
    Activa a «Yes» las 3 opciones posteriores para evitar que nadie se conecte a tu PMG sin un registro PTR, que bloquee cualquier dominio que no sea el tuyo al enviar, y para que chequee el HELO de las conexiones.
    Agrega en «DNSBL Sites» el sitio de barracuda para denegar automáticamente todo DNS que esté en BlackList y activa el «DNSBL Threshold» a 1.
    El resto de opciones las dejé como vienen por defecto.
    El campo «SMTPD Banner» lo puedes modificar y poner lo que quieras.
  • Vamos a «Configuration > Mail Proxy > Transports»
    Creas la configuración para que te quede de la siguiente manera:

    En «Relay Domain» tu dominio.
    En «Host» el IP del servidor de correo.
    En caso de tener varios servidores de correo debajo (estilo nodo nacional con UEBs), agregar aquí el resto de dominios e IPs correspondientes a esos servidores.
    Los que estén en VPN: En  el apartado «Use MX» poner ahí el IP (o del DNS) del MX de tu proveedor de servicios.

Y listo! Ahí tiene usted su flamante y nuevo PMG. Ahora solo depende de usted configurarlo y agregarle lo que necesite.

Los lugares que más frecuentarás son:

«Administration > Syslog» = Logs del sistema.

«Administation > Queues» = Cola de salida de correo.

«Administration > Spam Quarantine» = Correos que PMG clasificará como Spam

Ahora bien, en «Administration > Spam Quarantine» pondrás el rango de días que quieres analizar, y debajo te mostrará los usuarios para los cuales hay correos en la bandeja de Spam.
– Seleccionas uno de ellos y debajo verás el(los) correo(s) y a la derecha su contenido.
– En la parte derecha verás botones en la parte superior, a la izquierda tendrás lo referente a la info del mensaje y a la derecha las acciones a tomar con el mensaje.
– En el caso que el correo provenga de una dirección válida y lo haya calificado como Spam, por diferencia de hora, SPF, DKIM, DMARC u otro motivo, se lo puedes entregar al usuario. Yo lo agrego a la lista blanca del usuario y luego se lo entrego. Pincho en «Whitelist» y luego en «Deliver» (tendrás 2 carteles de acción satisfactoria). «Whitelist» porque la próxima vez que llegue un correo de esa misma dirección PMG lo revisará y seguramente lo clasificará como Spam, estando en la lista blanca del usuario todo lo que venga hacia él de esa dirección lo revisará pero se lo entregará al usuario en cuestión y no tendrás usted que hacer nada.
– Así con cada uno de los usuarios que tengas en la lista.

PMG desconfía de todo y de todos y revisa el E-Mail integro, por una basurita que se encuentre y no le guste lo envía a Spam. En un inicio lo harás frecuentemente pero luego ya no tanto. Habrá días que ni sabrás de su existencia porque todo fluye como tiene que ser y él se encarga de ello.

  • Actualización / Restauración

Importante:
PMG guarda por defecto sus plantillas en «/var/lib/pmg/templates«. Si quisieras editar el main.cf del Postfix, o el freshclam.conf de ClamAV debes ir a ese directorio y editar allí, ya que en el próximo reinicio volverá a aplicar los valores de dichas plantillas y se perderán los cambios que realizaste en «/etc/servicio_editado«.
El problema no culmina ahí, ya que al upgradear nuestro servidor estas plantillas también son sobrescritas. Entonces qué hacemos? Sencillo:
Copia el directorio «/var/lib/pmg/templates» hacia «/etc/pmg/templates» y realiza ahí tus cambios y no correrás el riesgo de perder tus modificaciones.

cp /var/lib/pmg/templates /etc/pmg

En el caso que tengas una versión vieja (dígase un SO inferior) y quieras instalar la nueva sin perder toda la configuración solamente sigue estos pasos:
– Entra a tu PMG, crea el backup de la configuración y descárgalo.
– Instala la nueva versión.
– Conéctate por SSH y copia en «/var/lib/pmg/backup» el fichero de configuración que guardamos anteriormente.
– Conectate a la web, selecciona la configuración y restaurala.

Ya entonces, para ponerle la tapa al pomo, ponle DKIM para firmar tus correos. Con el post de Adonis verás que fácil.

Saludos.

Agradecimientos a:
Adonis Carrillo (@carrillopedroso)
Alexander Rivas (@Alexminator)
Hugo Florentino (@geekmidget)
Adalberto Fajardo (@semofajardo)
Mario (Mario)

¿De cuánta utilidad te ha parecido este contenido?

Raysel Gonzalez Delgado

Ver comentarios

  • Buen post, a mi me funcionó a la perfección con Iredmail. Incluso tuve problemas con los spam y gracias a el también pude solucionar el problema rápido. Tiene 5 estrellas.

  • saludos tengo mdaemon detras del prox y necesito conectarlo al proxmox gateway que tengo listo y recibiendo mensajeria, como podria ser la configuracion en el servidor de correo

  • Hola, buen post, agradecido por esta guia, por casualidad alguien usa ISPCONFIG3, deseo integrarlo con PMG.

    Saludos.

  • Pues yo tambien tengo problemas al usar pmg con zimbra, como le sucede a otros, me da el error "Relay access denied (in reply to RCPT TO command)" para los correos que salen fuera de mi dominio
    Alguien sabe como solucionar este problema?

  • Despues de tener tiempo usandolo sin prolemas ahora el en Traiking Center no me sale nada , la fecha y la hora estan bien y en lo demas funciona bien , pero no puedo ver los corereos que entran y salen me dice que no hay datos en la base datos y si han entradi y han salido correos.

    • Nunca me he detenido a usar el tracking center. Solo una vez que me daba error de conexion era debido a los ADSblocks de mi navegador. Revisa el tuyo. Cuando pruebe esa funcion si veo alguna solucion le aviso
      alex out

  • Saludos, tengo un dominio alojado ya con un proveedor, y quiero instalar un SERVIDOR en mi empresa que filtre el SPAM/VIRUS.. que llega a los correos de mi dominio, PROXMOX Mail Gateway me sirve para eso.

  • Y cómo se hacen las reglas de filtrado para las diferentes categorias de correo (nacional, internacional, local)

  • Hola, en mi caso tengo mi servidor de correo en MDaemon, como tendria que configurarlo para que pueda recibir los correos

  • Hola, interesante post y de paso agradecer a los que hicieron posible el mismo. Seria bueno hacer un post para integrar el PMG con ZIMBRA como tambien otras soluciones como Scrolout F1. Saludos

  • Buenas tardes, tengo una dificultad, estuve haciendo unas pruebas con un zimbra y utilizando como relay el PMG, pero no está funcionando el relay, me da error de acceso denegado y el zimbra creo que no está cogiendo el cambio al puerto 26 para el envio de correos
    necesito asistencia.

Compartir
Publicado por
Raysel Gonzalez Delgado

Entradas recientes

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

7 meses hace

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

12 meses hace

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

12 meses hace

Home automation (Parte 1)

Desde hace varios meses vengo con la idea de automatizar la casa donde vivo. Poco…

12 meses hace

Cocinando una imagen personalizada de OpenWRT

El artículo describe el uso para un caso particular de OpenWRT y la creación de…

1 año hace