Envío de correos desde una aplicación web

Índice

En un servidor web Rocky Linux 9 con una aplicación WordPress se configura la aplicación para que envíe correos a través del servidor de correos “oficial” de la red. Este servidor de correo está en otra máquina de la red.

Para enviar correos desde WordPress se instala en la aplicación un plugin que permita enviar correos desde la aplicación, en este caso se usa WP Mail SMTP.

La configuración del plugin es sencilla e interactiva. En el correo del remitente se indica el correo de un usuario del servidor de correos, como, en este caso, usuario@javi.gonzalonazareno.org. Como servicio de envío se elige la opción otro SMTP y en el campo del servidor SMTP se indica el nombre del servidor de correos de la red, en este caso, sanji.javi.gonzalonazareno.org y se configura el envío de correos por el puerto 25.

Con estos ajustes, el servidor ya puede enviar correos desde la aplicación. Sin embargo, el servidor Rocky cuenta con el sistema de seguridad SELinux habilitado por defecto. Para mantener esta configuración de seguridad reforzada en el servidor pero poder enviar correos hay que configurar SELinux.

Esto se puede hacer con la herramienta sealert.

sealert -a /var/log/audit/audit.log

Esta herramienta analiza los logs de SELinux y recomienda diferentes medidas que se pueden tomar para permitir el tráfico que este sistema de seguridad está bloqueando. En este caso, las acciones recomendadas consisten en permitir al servidor web enviar correos y activar el módulo de SELinux para el servidor de aplicaciones PHP php-fpm.

sudo setsebool -P httpd_can_network_connect 1
sudo setsebool -P httpd_can_sendmail 1
sudo setsebool -P nis_enabled 1
sudo ausearch -c 'php-fpm' --raw | audit2allow -M my-phpfpm
sudo semodule -i my-phpfpm.pp

Tras configurar correctamente SELinux, la aplicación ya puede enviar correos electrónicos a través del servidor configurado en la red.

comments powered by Disqus

Relacionados

Firmas y autenticación con GPG

En esta entrada se explica cómo firmar claves públicas usando GPG.

Leer

Despliegue de una aplicación con contenido persistente en Kubernetes

Para hacer persistente el contenido de una aplicación a los cambios de versiones en despliegues en Kubernetes hay que tener en cuenta dónde la aplicación almacena los datos. En este sentido, una aplicación puede almacenar los datos en el propio sistema donde se ejecuta o en una base de datos externa. Según esta configuración de la propia aplicación, el despliegue se hará de una de las formas que se recogen en este post.

Leer

Configuración de Apache2 con fpm-php

En este post se documenta el proceso de configuración de un servidor Apache2 para servir aplicaciones web dinámicas escritas en PHP usando el servidor de aplicaciones fpm-php.

Leer