Cómo configurar un mailserver con Raspberry Pi

Raspberry Pi ofrece una plataforma para realizar numerosos proyectos que, además de ser útiles, constituyen una importante fuente de aprendizaje. Además de poder aplicarlo en domótica o de usarlo como un mediacenter doméstico, también permite la instalación de un servidor de correo privado. Configurando un mailserver con Raspberry Pi no solo tienes la oportunidad de conocer de cerca la construcción y las funcionalidades de los programas involucrados, sino que también incrementas el control sobre tus mensajes.

Donde hay luz, sin embargo, también hay sombras, y este caso no es ninguna excepción. Entre los aspectos de un servidor de correo en Raspberry Pi que pueden resultar en desventajas se cuentan los problemas en el envío de mensajes. A continuación, aclaramos las diferentes opciones existentes a la hora de utilizar un Raspberry Pi como mailserver, así como sus pros y contras, y te mostramos cómo configurarlo en nuestro tutorial.

Problemas con la dirección IP de un servidor de correo privado

Antes de configurar un mailserver en Raspberry Pi deberías ser consciente de algo. Un servidor de correo privado no es, por lo general, un simple reemplazo de un servidor de correo tal como lo encuentras en un proveedor comercial. Esto se debe, sobre todo, a que la mayoría de accesos a Internet no usan direcciones IP estáticas. Un servidor de correo ha de estar permanentemente conectado a Internet para que pueda funcionar y, para ello, los servidores profesionales recurren a una conexión que posea como mínimo una dirección estática (fija), que es la que garantiza, al no variar, que el servidor estará siempre disponible para recibir peticiones.

La mayoría de conexiones a Internet disponen únicamente de una dirección IP dinámica, lo que significa que varía constantemente, normalmente en tramos de 24 horas como máximo. Esta circunstancia limita enormemente el envío de mensajes con un servidor propio, porque el servidor de correo del receptor suele considerar a los correos enviados a través de una conexión con dirección dinámica como correo “basura”. Esto debido, entre a otras cosas, a que los creadores de correo spam suelen enviarlo desde direcciones dinámicas para evitar su localización. Estos correos, enviados desde un ordenador con su dirección IP dinámica, a menudo no han sido siquiera enviados por su propietario, sino que son consecuencia de un malware que ha hallado el camino para colarse en él. En consecuencia, muchos filtros de spam de servidores de correo suelen desconfiar de direcciones no estables, de ahí que una conexión con dirección IP dinámica no esté del todo indicada para conectar un servidor de correo.

En este sentido, el mailserver de Raspberry Pi que te presentamos en nuestro tutorial no representa un servidor de correo al uso, pero con algunas reestructuraciones y, en según qué circunstancias, un coste adicional, es posible convertirlo en un servidor de correo convencional.

Pros y contras: ¿cuándo es rentable un mailserver privado?

Las mencionadas dificultades con la dirección IP dinámica constituyen el mayor déficit de un servidor privado, lo que lleva a no considerarlo apto como servidor de correo habitual, puesto que la mayor parte de los correos entrantes irían a parar a la carpeta de spam. Sin embargo, y siempre que no sustituya al servicio de correo convencional, puede merecer la pena configurar uno propio.

En el caso de tener un gran interés en estudiar la configuración y la administración de un servidor de correo, implementar uno propio es, desde luego, la mejor manera de aprender, puesto que apenas existe un entorno de aprendizaje mejor y más económico que la Raspberry Pi. Contar con un servidor privado podría tener sentido si se quiere poseer el control absoluto sobre los correos que se envían en una red interna (en una empresa o una organización). Un servidor de correo en una red local garantiza que la información que se intercambia se almacene exclusivamente en los discos duros del emisor, del receptor y en tu servidor de correo.

Precisamente hoy, cuando la protección de datos constituye una de las mayores preocupaciones, un servidor de correo interno constituye una buena opción para almacenar tus mensajes, ya que solo los administradores de la red, y no un proveedor comercial a través de cuyo servidor se desarrolla el intercambio de mensajes, tienen acceso al archivo de correo completo. A continuación hemos resumido las ventajas y los inconvenientes de configurar un mailserver con Raspberry Pi.

Consejo

Configura tu servidor de correo electrónico profesional en un abrir y cerrar de ojos con IONOS. Disfruta de numerosas ventajas, como un espacio de almacenamiento extenso y ampliable, un dominio de correo propio, encriptación automática, solución de calendario y escritorio o archivado de correo electrónico. Además, el servicio que proporciona IONOS ofrece los más altos estándares de seguridad con certificado ISO.

Ventajas

  • Dentro de una red interna, solo tú tienes acceso al archivo de correo completo, al residir  este exclusivamente en tu servidor. Si otras personas quieren acceder a él, necesitan que autorices su derecho a leer tus correos.
  • Fuera de una red interna también es posible impedir el acceso de terceros a tus correos. Para ello, tanto el emisor como el receptor han de disponer de un servidor de correo privado. Si se da esta circunstancia, todos los datos intercambiados se mantienen exclusivamente en los dos servidores privados.
  • La aplicación de técnicas de encriptación también es un método muy recomendable para proteger tus datos, también en el intercambio entre dos servidores de correo privados. Esta es otra de las ventajas que ofrece un mailserver privado en cuanto a la seguridad de los datos. Cuando se intercambian mensajes en el servidor de uno o varios proveedores comerciales de correo, este, aun cuando tanto el emisor como el receptor utilicen una encriptación PGP, puede leer los datos del encabezado de los correos, porque en PGP estos datos están siempre abiertos. El uso de un servidor propio de correo en ambos sentidos permite esquivar esta vulnerabilidad, de tal forma que el envío y la recepción de mensajes siguen siendo privados y nadie no autorizado puede leerlos.
  • El control del sistema de correo está, sin excepción, en tus manos, por lo que tienes total libertad a la hora de ajustar el software. Apenas tienes limitaciones en lo que hace al tamaño de los archivos adjuntos o al volumen general de almacenamiento de tus cuentas de correo, por lo menos si dispones de la capacidad suficiente para conectarla al ordenador del servidor de correo.
  • Puedes sincronizar tus datos (los correos con IMAP, los contactos con CardDAV o el calendario con CalDAV), de forma que todos los dispositivos que acceden al servidor de correo dispongan de los mismos archivos.
  • Para el dominio vinculado con el servidor de correo puedes crear tantas direcciones de correo diferentes como sean necesarias.
  • Por último, no recibes correos promocionales de tu proveedor de correo.

Desventajas

  • servidor propio siempre conlleva una inversión mayor de trabajo a propósito de la seguridad y un servidor de correo no es ninguna excepción, pues también este está permanentemente online y accesible a ataques. En consecuencia, para impedir a los hackers el acceso a tu sistema y que lo conviertan, por ejemplo, en punto de difusión de correo spam, deberías supervisar y actualizar regularmente el software y, en especial, los programas de seguridad. Cuando se administra un servidor de correo accesible públicamente hay que estar al corriente de los estándares de seguridad y formarse constantemente a este respecto.
  • Ya hemos mencionado que los correos salientes, cuando se cuenta con una conexión basada en una dirección dinámica, son considerados con mucha probabilidad como correo basura por el servidor de correo del receptor, aterrizando en la carpeta de spam. Puedes evitar esto de dos maneras:
    1. Recurriendo a un servidor externo de correo (comercial), en el cual ya dispongas de una dirección, para el envío de mensajes. Una vez tienes un servidor de correo propio, puedes ajustar, mediante un programa de correo conectado, que el envío no se realice a través de tu servidor, sino a través del de tu proveedor.

      Inconveniente: Este procedimiento reduce tu control sobre los mensajes, puesto que, al incluir en el intercambio a un proveedor externo, también estás autorizando que los correos salientes se almacenen en su servidor y puedan ser vistos allí.

    2. Solicitando una dirección IP estática para tu acceso a Internet. Con esta, tu servidor privado se asemeja a un servidor profesional, aun cuando no es improbable que tu dirección estática tenga que labrarse una cierta reputación ante los demás servidores. Muchos servidores de correo son al principio suspicaces ante otros de los cuales reciben mensajes. Antes han de asegurarse que no se está usando para enviar correo basura.

      Para poder administrar un servidor de correo completamente funcional también necesitas, junto a una dirección estática como mínimo para la conexión a Internet, lo siguiente:

      • Un Mail Exchange Resource Record (MX Record) para el dominio utilizado. Se trata de un registro en el sistema de nombres de dominios (DNS), que identifica a tu servidor de correo como el responsable de la recepción de correos en un determinado dominio.
      • Un PTR Resource Record (PTR Record), donde, mediante una búsqueda inversa en el DNS se resuelve una dirección IP para el nombre que le pertenece.

      Sin embargo, una dirección IP estática no siempre es fácil de conseguir y, en cualquier caso, siempre va ligada a un aumento de costes para la conexión a Internet.
  • Los filtros de spam de servidores privados de correo son menos efectivos que aquellos de los que disponen los proveedores ya establecidos, cuyos filtros de software ya son veteranos en el reconocimiento y la selección de correo basura por la gran cantidad de correos que ya han procesado. Sin embargo, es posible mejorar la protección contra spam de tu servidor de correo con los programas correspondientes.

Requisitos para un servidor de correo privado

Requisito principal es contar naturalmente con una dirección de correo electrónico de la que puedas disponer libremente. Para ello, has de registrar un dominio. Partiendo del hecho, como es lo más habitual, de que tu dirección IP es dinámica, te explicamos a continuación cómo se instala y configura un mailserver en una Raspberry Pi con una dirección de este tipo.

Para instalar un servidor de correo en una Raspberry Pi necesitas, además del dispositivo en sí, lo siguiente:

  • un sistema operativo Raspbian,
  • una tarjeta de almacenamiento SD micro (a partir de 4GB, mejor si es un poco más),
  • una conexión permanente a Internet, idealmente por cable,
  • suministro constante de electricidad para el Raspberry Pi con un conector micro USB,
  • un ordenador con un software cliente SSH (PuTTY o OpenSSH) conectado al Raspberry Pi para poder acceder a él de forma externa. Para ello, solo hay que introducir la dirección IP del Raspberry Pi en el cliente SSH. Otra alternativa es, si se prefiere prescindir de un cliente SSH, una pantalla y un dispositivo de entrada.

Si se quisiera aumentar la capacidad del servidor de correo es igualmente posible usar otro medio de almacenamiento, como una memoria portátil USB o un disco duro externo.

La continua disponibilidad de un servidor de correo en Internet hace que este tenga que ser accesible siempre bajo la misma dirección. También por este motivo una dirección IP estática para la conexión a Internet es la solución óptima, aunque no siempre disponible. Una alternativa es recurrir a servicios que ofrecen, a menudo de forma gratuita, un DNS dinámico, el denominado DDNS, que asigna un nombre de dominio a tu servidor de correo. Mediante un programa, este nombre de dominio se acopla a la dirección IP actual de tu conexión a Internet, de forma que actúa de dirección permanente del servidor.

Tutorial para configurar un mailserver en un Raspberry Pi

Antes de iniciar la configuración propiamente dicha, debes fijar una dirección IP estática privada dentro de tu red para Raspberry Pi, ya que un servidor de correo, exactamente igual que una página web, funciona bajo una dirección IP en la red y, para estar disponible permanentemente para todos los demás servidores, necesita que la dirección sea siempre la misma. No confundas esta dirección IP fija dentro de una red local con la anteriormente mencionada dirección IP estática de una conexión a Internet.

Fijar la dirección IP estática privada

El servidor de correo Raspberry Pi necesita una dirección IP estática privada en tu red local para poder gestionar todos los correos entrantes y salientes en todo momento. Generalmente, debido a que el dispositivo en la red local recibe asignada una dirección dinámica, hay que proporcionarle una dirección estática.

Lo primero que hay que hacer, para poder cambiar la dirección local del dispositivo, es conocer cuál es la dirección dinámica momentánea. Para hacerlo, pasa el puntero del ratón por el símbolo de Internet en el escritorio de Raspbian y apunta la dirección que se muestra. En este tutorial usaremos la dirección 192.168.0.3 como ejemplo de dirección IP dinámica de origen del Raspberry Pi.

Haciendo clic con el botón derecho del ratón en el símbolo de Internet selecciona “Configuración de WIFI”, tras lo cual aparece una ventana. En el menú desplegable haz clic en “eth0”. En el campo previsto para ello introduce las tres primeras secuencias (separadas por puntos) de la dirección IP. En nuestro ejemplo sería 192.168.0. En el campo restante completa la secuencia con una cifra que aún no haya sido asignada a ningún dispositivo en tu red (en general, todas las cifras a partir de 100 se reservan para direcciones IP estáticas). En nuestro tutorial usamos la dirección 192.168.0.101. Una vez hecho esto, reinicia el dispositivo.

Instalar Citadel/UX como mailserver en el Raspberry Pi

En este paso se trata de configurar el servidor en el Raspberry Pi. Para ello utilizamos la suite para trabajo colaborativo o groupware Citadel/UX, que soporta SMTP como servidor mail y contiene un servidor IMAP y POP3. Además de una interfaz de usuario de correo web, Citadel ofrece también un calendario, una agenda de direcciones y funciones de tareas.

La configuración se lleva a cabo en el dispositivo y es aquí donde puedes actualizar todos los paquetes preinstalados con las siguientes líneas de comando:

sudo apt-get update
sudo apt-get upgrade

De forma predeterminada, Citadel está configurado para que en la instalación se usen IPv4 e IPv6 como protocolos de transferencia. Tan pronto como el programa detecta que IPv6 no está activo, se interrumpe el proceso de instalación. Por eso, actívalo con este comando:

sudo modprobe ipv6

 e instala Citadel con el siguiente comando:

sudo apt-get install citadel-suite

En la siguiente pantalla, se especifica que el servidor está a la espera de las peticiones desde todas las direcciones aceptando la dirección predeterminada 0.0.0.0. A continuación, podrás establecer que utilizas una base de datos interna para la gestión de las contraseñas de Citadel, así como fijar el nombre de usuario del administrador, para el cual se puede aceptar el “admin” propuesto por el sistema y su correspondiente contraseña.

En este punto has de decidir si quieres utilizar Citadel con el servidor web interno Webcit, incluido en el groupware, o si lo quieres conectar a un servidor web Apache ya instalado. Antes de decantarte por la segunda opción, sería recomendable haber leído el tutorial sobre la instalación de un servidor web Apache en un Raspberry Pi.

Seguidamente, presentamos la creación de un servidor web interno, dando por sentado que utilizas los puertos generalmente propuestos para un servidor mail (crear una redirección de puertos para el puerto 80 de HTTP y para el 443 de HTTPS). Por último, selecciona el idioma que ha de regir el servidor web Webcit.

Instalar un servidor de correo Citadel

Inicia Citadel en el terminal con este comando:

sudo service citadel start

Introduce seguidamente en tu navegador web la dirección IP privada estática de tu Raspberry Pi (en nuestro ejemplo, 192.168.0.101), tras lo cual se abre el servidor de correo Citadel, aunque no puedes aún darte de alta en el programa, al tener que configurar primero que Citadel ha de usar IPv4 en lugar de IPv6. Para ello volvemos al terminal y usamos el comando:

sudo /usr/lib/citadel-server/setup

para acceder al setup de citadel de nuevo y entrar como Admin. Mantenemos el nombre de usuario “citadel” y volvemos a introducir como dirección 0.0.0.0. El resto de ajustes pueden ser aceptados tal como están determinados. Citadel se reiniciará para guardar los cambios

Conectar un servidor de correo Citadel con el Raspberry Pi

Al abrir Citadel en el navegador con la dirección IP del dispositivo, deberías poder entrar con el nombre de usuario de administrador y con la contraseña que le pertenece. En el menú de la columna izquierda selecciona “Administration” y en el recuadro “Global configuration” haz clic en el punto “Edit site-wide configuration”. En este tutorial instalamos únicamente el protocolo simple de transmisión de correo o SMTP, necesario para el envío. Para la recepción y la petición de correos se configura IMAP y POP3 de forma similar.

Selecciona el punto del menú “SMTP”. Aquí se ven los tres puertos que utiliza el servidor Citadel. Para poder usarlos hay que asegurar que están abiertos también en el router, así que lo que debemos hacer es recordar o apuntar las tres cifras y configurarlas en el router.

En el caso de desconocer su dirección, en el cuadro de entrada de Windows introduce el comando “ipconfig” y abre la dirección que aparece bajo “Standardgateway”, que, en general, suele ser 192.168.0.1 o 192.168.178.1.  Ahora, con los datos de usuario entra en la página de configuración del router. Si anteriormente no has determinado ningún nombre de usuario individual ni ninguna contraseña, bajo RouterPasswords.com tienes a tu disposición muchos modelos y sus ajustes estándar. Tan pronto como te encuentras en los ajustes de configuración del router, dirígete al menú para la redirección de puertos (“Port forwarding”). Allí debes introducir la dirección IP del Raspberry Pi, incluidas las cifras de los tres puertos. Para la interfaz del correo web instala el puerto 80. Cuando ya se han configurado los ajustes básicos de Citadel, ya está listo para usarlo como servidor de correo. 

Conectar el nombre de dominio con la dirección IP del servidor de correo

Para permitir que un Raspberry Pi mailserver esté disponible de forma permanente debes darte de alta en un servicio de DDNS, registrar allí el nombre de dominio y conectarlo con Citadel. Has de registrar el nombre de dominio como “DNS Host (A)” junto a la dirección IP momentánea que recibes de tu proveedor. Esta dirección la puedes averiguar por ejemplo en la página Whats My IP o en servicios online similares.

Al introducir el nombre de dominio registrado en el navegador se abre la página del servidor de correo Citadel. En “Administration” selecciona el punto “Domain names and Internet mail configuration” e introduce el nombre del dominio en el cual deseamos recibir los correos en “Local host aliases”. Por último vuelve a “Administration” y en “Edit site-wide configuration” introduce el nombre del dominio como “Full qualified domain name”. Con todos estos ajustes guardados, vuelve al menú de administración y selecciona el reinicio de Citadel.

Ahora sí, tu servidor mail propio está preparado para funcionar y puede ser operado mediante el correo web instalado simultáneamente. También admite otros programas de correo como Thunderbird u Outlook, así como la ampliación con funciones adicionales.

¿A quién conviene un Raspberry Pi mailserver?

Para que un mail server en un Raspberry Pi se acerque  a un servidor de correo profesional ha de funcionar en combinación con una dirección IP estática con la que conectarse a Internet. En este caso, es recomendable establecer, no solo los registros obligatorios PTR Record y MX Record, sino también un SPF Resource Record (SPF Record) y las DKIM (DomainKeys). Esto reduce la probabilidad de que los correos que son enviados por tu Raspberry Pi sean clasificados por los demás servidores como correo basura, puesto que, como se ha comentado, los servidores de correo han de construir una buena reputación para que sus mensajes sean considerados spam solo en contadas ocasiones, algo difícil de lograr para servidores privados con una actividad bastante más reducida.

Cuando tu acceso a Internet solo dispone de una dirección dinámica, es posible configurar un servidor de correo en un Raspberry Pi al menos en sus funciones básicas, aun cuando puede que los correos vayan a parar con frecuencia a la carpeta de spam. En este sentido es recomendable que el grupo primario de receptores sepan que han de ajustar el filtro de spam para aceptar tus mensajes. Este esfuerzo vale la pena cuando este grupo no es muy extenso, como dentro de una oficina o un grupo de trabajo. En otras palabras, si todos los involucrados están conectados a la misma red local, un servidor privado es especialmente rentable.

Una de las mayores ventajas que trae consigo un servidor de correo privado radica en el control absoluto sobre los datos. Si esta cuestión no constituye una prioridad, entonces el esfuerzo que conlleva la instalación y la configuración de un servidor privado no es apenas rentable. En este caso, la mejor opción es, sin duda, utilizar los servicios de un proveedor de correo profesional. Los que más se benefician, en cambio, de un mailserver en un Raspberry Pi son aquellos amantes de la técnica y del conocimiento, que pueden aprender de primera mano cómo funciona un servidor de correo.