Cómo montar tu propio servidor de correo

Cómo montar tu propio servidor de correo
17 comentarios Facebook Twitter Flipboard E-mail

Cuando hablamos de correo electrónico, lo primero que se nos viene a la cabeza es Gmail, Outlook, Yahoo! o cualquier otro proveedor de correo. Si queremos más privacidad, podemos mudarnos a otros servicios que cifran y protegen nuestro correo. Pero hay otra alternativa: montar tu propio servidor de correo electrónico.

¿Por qué querría alguien hacer esto cuando hay gente que te lo gestiona todo de forma gratuita? Puede haber varias razones. Quizás quieras tener todo el control de tu correo y ejecutar algunos filtros personalizados, te apetezca saber cómo se gestionan los servidores de correo o no quieres que nadie más que tú tenga acceso a tu correo.

Sea como sea, en Genbeta vamos a revisar hoy cómo empezar a montar tu servidor de correo, y aprovecharemos el proceso para explicar cómo funcionan los sistemas de correo electrónico.

Recalcamos el empezar: montar un servidor de correo es complejo, hay muchas opciones y no acabaríamos nunca. Al acabar esta guía tendremos un servidor desde el que mandar y enviar correos, y mencionaremos cuáles serían los siguientes pasos si queréis avanzar.

También hay que tener en cuenta las desventajas de montar vuestro propio servidor, especialmente si pretendéis usarlo para vuestra cuenta de correo principal. El mantenimiento corre totalmente a vuestro cargo. Si se cae y deja de funcionar, es muy probable que os dejen de llegar los correos que os hayan enviado durante ese tiempo. También es muy posible que los proveedores más conocidos (Gmail, Outlook) marquen vuestros correos como spam por venir de un servidor desconocido.

Y por último, quiero recalcar el tema de la seguridad. Si de verdad queréis usar un servidor propio para vuestro correo principal, tenéis que preocuparos por la seguridad del sistema: control de los usuarios, contraseñas seguras, ningún servidor sin autenticación, actualizaciones... Si no, podéis encontraros un día con una desagradable sorpresa.

Pasos previos: un servidor y un nombre de dominio

AWS Console

Enhorabuena, veo que sois valientes y no os han asustado los posibles problemas que he comentado. Empezemos a montar el servidor: lo primero que necesitamos es, obviamente, un servidor.

Con servidor me refiero a un ordenador que esté siempre encendido (si no no os llegarán correos cuando esté apagado), ya sea el ordenador de vuestra casa, una máquina virtual en Amazon o en Azure, una Raspberry Pi o lo que sea. Si no tenéis nada de eso, podéis crearos una cuenta en Amazon Web Services y crear en un momento una máquina virtual gratuita.

En esta guía suponemos que el servidor está ejecutando Linux. Concretamente, yo he montado el servidor en un Ubuntu 12.04.3 LTS en Azure, aunque las instrucciones no deberían cambiar en otras distribuciones o proveedores. Como mucho, algún archivo de configuración que esté en otro lado o paquetes con otro nombre.

Con el servidor listo, necesitaréis un nombre de dominio si queréis recibir correo. Vale cualquier registrador, como GoDaddy, NameCheap o Hover. Cuando tengáis el dominio, teneís que apuntar los registros MX a vuestro servidor. Por ejemplo, si al crear el servidor en Amazon os ha dado la dirección ec2-aaa.compute.amazonaws.com, hay que cambiar el registro MX del dominio (en el panel de control del registrador) para que su valor sea esa dirección ec2-aaa.compute.amazonaws.com.

¿Para qué sirve ese cambio del registro MX? Pongamos que eres Gmail y te dice un usuario que hagas el favor de enviar un correo a pepe@pepe.com. Perfecto, pero hay un problema: ¿qué servidor es pepe.com? Porque recordad que los ordenadores sólo entienden direcciones IP, no nombres. Para resolver ese nombre hay que preguntar a los servidores DNS, igual que cuando navegas por Internet y el navegador resuelve el nombre de genbeta.com. La diferencia es que Gmail buscará en los registros MX, es decir, los que se refieran a servidores de correo. Por eso tienes que asegurarte de que el registro MX es correcto: si no, cuando te intenten mandar un correo no encontrarán tu servidor y no podrás recibirlo.

Instalando el servidor: Courier

Courier

Asistente de instalación de Courier

Hay varios servidores de correo, cada uno con sus opciones y ventajas. En este artículo vamos a usar Courier, que es bastante fácil de configurar, funciona bien y no me ha dado problemas.

Para instalarlo, ejecutamos el siguiente comando (suponiendo que estemos en Debian/Ubuntu/similares):

sudo apt-get install courier-mta courier-imap

que instalará la base del servidor y la interfaz IMAP para poder configurar clientes de correo. Un asistente nos preguntará si queremos preparar los directorios para la interfaz web: diremos que sí, aunque de momento no vayamos a instalar ninguna interfaz web.

Una vez instalado, ya tenemos nuestro servidor funcionando. Sólo tenemos que cambiar dos cosas: la primera es configurar nuestro nombre. Para ello ejecutamos los siguientes comandos como superusuario (root):

echo minombrededomino >> /etc/courier/locals
makealiases

Con ellos le diremos a Courier que reciba correos destinados a minombrededominio. Así, cuando otro proveedor de correo (Gmail, por seguir con el ejemplo de antes) llegue a nuestro servidor diciendo "tengo un correo para ti", Courier no lo rechazará y se guardará el mensaje.

También cambiaremos un archivo de configuración para poner autenticación en el servidor SMTP y así evitar que cualquiera pueda usarlo para enviar correos. Tenemos que abrir el archivo /etc/courier/esmtpd (con permisos de superusuario) y cambiar dos variables: AUTH_REQUIRED para que valga 1 y en la lista ESMTP_AUTH tenemos que añadir el valor "LOGIN". En el archivo quedará esto (en las líneas que corresponda).

AUTH_REQUIRED=1
ESMTP_AUTH="LOGIN"

Reiniciamos el servidor con sudo courier restart para que cargue los nuevos ajustes y ya podremos pasar al siguiente paso.

Configuración del cliente de correo

Ahora sólo falta configurar nuestro cliente de correo. Si os fijáis, no hemos configurado cuentas de correo, y es que de momento Courier sólo recibe correos para las cuentas de usuario que haya en el servidor. Por ejemplo, si vuestra cuenta en el servidor es pedro (para ver el nombre de vuestra cuenta ejecutad whoami), sólo podréis recibir correos en la dirección pedro@minombrededominio.

Los parámetros de conexión son los siguientes:

  • IMAP: puerto 143, sin SSL, con contraseña sin cifrar.

  • SMTP: puerto 25, sin SSL, con contraseña sin cifrar.

En ambos casos, el usuario y contraseña son las de la cuenta del servidor.

A partir de ahora, podréis enviar y recibir correo en vuestra cuenta con ese servidor propio. Vuestro cliente de correo se conectará al puerto 143 (IMAP) para descargarse el correo, y cuando necesite enviar mensajes lo hará a través de vuestro SMTP.

Tareas por hacer

Como decía al principio, hemos empezado a montar nuestro servidor de correo. Todavía faltan muchas cosas para hacer si queréis este servidor para algo más que trastear. No estaría mal mejorar la seguridad de los mensajes con un filtro antispam, y conexiones SSL para los puertos SMTP e IMAP para evitar que vuestras contraseñas y correos viajen en texto plano por Internet. Podéis usar certificados autofirmados si queréis, que son mucho más fáciles de obtener, pero no son muy seguros que digamos.

También imagino que querréis tener varias direcciones de correo, o gestionar diferentes dominios desde el mismo servidor, así que tendréis que ajustar usuarios virtuales en Courier.

Si queréis seguir trasteando, en el manual de Courier vienen todas las tareas "básicas" de administración que podéis hacer con el servidor. Y si algo falla, tenéis los registros en /var/log/mail.log para ver qué ha pasado.

En Genbeta | Cinco alternativas web para cifrar o proteger nuestros correos electrónicos

Comentarios cerrados
Inicio