Servidor de correo con Postfix+Dovecot+RainLoop+Mailman2 y auth LDAP para usuarios del AD DC [Debian 10] – PART VIII

ÍNDICE

La documentación abarcará lo siguiente:

1.Implementación de un servidor de correo con buzones.

1.1.Datos de interés.

1.2.Sincronización de tiempo.

1.3. Implementación y configuración de ESMTP Postfix.

1.3.1. Selección de cifrados.

1.3.2. Configurando Postfix.

1.3.3. Creando los archivos de controles para Postfix-LDAP.

1.3.4. Comprobando la integración con LDAP y mapeos de aliases.

1.4.Implementación y configuración de Dovecot.

1.4.1.Configurando Dovecot

1.4.2.Creando archivo de control para Dovecot-LDAP

1.4.3.Script “quota-warnings.sh”

2. Implementación del cliente de correo web

2.1. Instalación de RainLoop

2.2. Fortaleciendo la seguridad del cliente de correo web

2.3. Configuraciones desde la WebGUI de RainLoop

3. Clientes de correo externo

3.1. Outlook 2016

3.2. Outlook 2019

3.3. Thunderbird 78.8.0

4. Filtrado de correos

4.1. Filtrado de correos por categorías

4.2. Filtrado para el remitente y destinatario

4.3. Filtrado para encabezado, adjuntos y cuerpo del correo

5. Copias de Carbón Ocultas

6. Listas de distribución con Mailman 2

6.1. Configuración de Nginx para Mailman 2

6.2. Instalación y configuración de Mailman 2

6.3. Integración de Mailman 2 a Postfix

6.4. Creando otras listas en Mailman 2

7. Rotación de logs y envío de reportes

8. Comprobando la encriptación TLS

9. Iptables

 

7. Rotación de logs y envío de reportes

En esta sección se modificará la programación de la rotación de los logs de los servicios que conforman el correo. Se crearán un script que permitirá el envío de reportes de Postfix, con ayuda del plugin “pflogsumm”.

La idea será la siguiente:

  • Rotar los logs relacionados con el correo, siempre antes de finalizar el día 23:59.
  • Enviar el reporte de Postfix creado por “pflogsumm” con los logs antes de ser rotados (implicaría los logs del día finalizado).

Editamos la hora de rotación de los logs, mediante la edición de la hora de ejecución de las tareas del “cron.daily”:

Modificamos la siguiente línea, dejándola como se muestra:

Instalamos el plugin “pflogsumm”, para el envío de reportes de estadísticas de Postfix:

Instalamos las utilidades de correo para poder usar el comando “mail”, que será usado para el envío del reporte generado por “pflogsumm”:

Editamos el fichero «/etc/logrotate/rsyslog», no sin antes hacerle una salva:

Comentamos las siguientes opciones:

Creamos un nuevo fichero de configuración de logrotate para el correo:

Agregamos lo siguiente:

#============================
NOTA:

  • rotate 7: Guardar 7 copias del archivo log.
  • daily: Rotar todos los días.
  • dateext: Agregar la fecha por cada rotación al antiguo log.
  • dateformat: Formato que debe usar la fecha.
  • notifempty: No rotar si el log está vacío.
  • missingok: Ignorar si no se encuentra el log.
  • compress: Comprimir las copias con gzip.
  • delaycompress: No comprimir la última rotación, en este caso “mail.*_YYYY-MM-DD”.
  • sharedscripts: Indica que los scripts añadidos se ejecutarán solamente una vez por ejecución y no una vez por archivo. En este caso, tenemos varios logs para “mail”, por lo que con esta opción imponemos que los scripts de “postrotate” se ejecuten solamente una vez por rotación, y no una vez para cada archivo de log. En caso de no indicar esta directiva, los scripts indicados en “postrotate” se ejecutarían tantas veces como tantos archivos log sean.
  • prerotate: Abre la posibilidad de que se permita la ejecución de scripts o comandos antes de la rotación del log.
  • postrotate: Abre la posibilidad de que se permita la ejecución de scripts o comandos después de la rotación del log.
  • endscript: Cierra la posibilidad de que se ejecute algun script o comando, abierta por un “prerotate” o “postrotate”.

#============================

Editamos la tarea programada diaria para «logrotate»:

Modificamos la siguiente línea y la dejamos como sigue:

Eliminamos posibles rotaciones anteriores a la nueva configuración:

Probamos manualmente la rotación de los logs:

#===============================
NOTA:
Lo anterior debera haber forzado la rotación de los logs. Si los mismos fueron rotados, pero el nuevo fichero creado para los logs no recibe ninguna información y se mantiene en 0 Bytes, entonces recomendamos la siguiente configuración de logrotate para «/etc/logrotate.d/mail»:

Si, aun así, sigue sin crecer el nuevo fichero creado, pues truncaremos el fichero original en lugar de crearlo:

#===============================

La rotación manual y forzada de los logs, de haber sido satisfactoria, debió haber enviado el correo de reporte de Postfix:

Borramos los posibles logs rotados, para que sean rotados a su debida hora programada:

Reiniciar el demonio rsyslog:

8. Comprobando la encriptación TLS

Se utilizará el script “testssl.sh” para conocer las vulnerabilidades de los mecanismos de encriptación usados en el servicio de correo, asi como para verificar que estuvieran siendo seleccionados los cifrados esperados.

Lo primero será descargar la herramienta “testssl”:

Descompactamos el programa y accedemos a su directorio:

Creamos un enlace simbólico con el directorio «/bin», para que pueda ejecutarse como comando del sistema:

Damos permiso de ejecucion al script:

Ejecutamos las pruebas de seguridad, para “submisssion” (TLS mandatorio):

Ejecutamos las pruebas de seguridad, brindadas por el script para SSL/TLS implícito en POP3:

Ejecutamos las pruebas de seguridad, brindadas por el script para STARTTLS en POP3:

Ejecutamos las pruebas de seguridad, brindadas por el script para SSL/TLS implícito en IMAP:

Ejecutamos las pruebas de seguridad, brindadas por el script para STARTTLS en IMAP:

Ejecutamos las pruebas de seguridad, brindadas por el script para HTTPS:

En todos los casos, los resultados arrojados deberán tener en común, lo siguiente:

Comprobamos el cifrado por TLS oportunista:

Entre los resultados, debe devolver los cifrados anónimos especificados por el servidor:

Otra forma de comprobarlo es accediendo desde un cliente SMTP remoto, como pudiera ser el relayhost, que tiene permitido iniciar una conexión anónima encriptada con el servidor. Desde el relayhost, ejecutamos lo siguiente:

Debe anunciarnos STARTTLS disponible, ya que hicimos una conexión exitosa al servidor y este tiene configurado TLS oportunista por el puerto 25:

Ahora probamos conectarnos por STARTTLS:

Nos debe devolver lo siguiente:

Vemos como no se pudo hacer login en el servidor, y si le hechamos una mirada a las trazas en el MTA, veremos que se negocio un intercambio de llaves y una conexión exitosa sin autenticación, usando un cifrado anónimo:

9. Iptables

El filtrado de paquetes es un componente fundamental dentro del concepto de seguridad de todo sistema informático en red. Por defecto, el núcleo de Linux incluye un filtro de paquetes de este tipo, que es proporcionado por los módulos del paquete de software Netfilter y es conocido por iptables.

Para facilitar el almacenamiento y recuperación de las reglas, instalamos el siguiente paquete:

Modificamos el fichero que contendrá las reglas para IPv4:

Agregamos lo siguiente adaptando a su red:

Aplicamos las reglas:

Puede verificar las reglas anteriores, con el siguiente comando:

Para lograr bitacorizar iptables en un fichero log independiente, debemos seguir una serie de pasos que se describen a continuación.

Debemos crear el archivo “iptables.log” dentro de la carpeta “/var/log/firewall” que debemos crearla, y configurar los permisos:

Rsyslog, el demonio de logueo de Debian, lee la configuración desde «/etc/rsyslog.d», por lo que debemos crear un archivo que yo llamaré «firewall.conf» desde el cual rsyslog, pueda interpretar lo que queremos hacer:

Y dentro le dejamos caer suavemente el siguiente contenido:

La primera línea chequea los datos logueados buscando la cadena «fw: » y lo añade al archivo «/var/log/firewall/iptables.log».

La segunda, detiene el procesamiento de la información logueada con el patrón anterior para que no siga siendo enviada a «/var/log/messages».

Debemos crear el archivo «/etc/logrotate.d/iptables.log» para la rotación del fichero de logs:

Agregamos lo siguiente:

Reiniciar el demonio rsyslog:

Esto es todo amigos. Espero les haya servido de mucha utilidad este tutorial. Cualquier feedback será bien recibido.

Saludos y hasta un próximo tuto 😉

 

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

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Franco Diaz Hurtado 27 artículos
Ing. Telecomunicaciones y Electrónica; 1er Especialista en Redes de ECASA Nivel Central

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*