Servidor de correos

Queremos que los integrantes del instituto (alumnos,profesores..) puedan comunicarse mediante correo electrónico a través de un servidor de correos local creado y configurado por nosotros. Los protocolos que usaremos son los siguientes protocolos:

  • POP: Se utiliza para recuperar mensajes de correo electrónico de un servidor de correo a un cliente de correo.
  • IMAP: Permite agrupar los mensajes y guardarlos en carpetas dependiendo de la función realizada en el mensaje.
  • SMTP: Es el encargado de enviar los correos.

¿Qué es un servidor de correo?

Un servidor de correo es el encargado de enviar y recibir mensajes de correo electrónico entre hosts, usuarios o servidores.

Los principales servidores de correo para Linux son los siguientes:

  • Exim
  • Postfix
  • Sendmail
  • Zimbra
  • Qmail

Nosotros utilizaremos Postmail, así que explicado todo esto, pasaremos a la instalación y configuración de el servidor.

Instalación y configuración

Postfix

Lo que vamos a hacer ahora es configurar un SMTP con Postfix, así que primero lo instalaremos con el siguiente comando:

apt-get install postfix

Nos aparecerá una ventana durante la instalación con distintos tipos de servidor de correo, tenemos escoger «Sitio de internet»:

Nos pedirá el nombre de sistema de correo, donde tendremos que poner nuestro dominio:

Si todo ha ido bien, se instalará correctamente y no habrá ningún problema. Para verificarlo nos dirigimos a el fichero /etc/mailname:

Efectivamente todo ha sido configurado correctamente. Pero ahora tenemos que ver si funciona, para ello enviaremos un mensaje de un usuario a otro y comprobaremos ue todo ha ido bien mirando el log /var/log/mail.log:

1- Miramos el log sin haber enviado ningún mensaje:

2- Enviaremos un mensaje desde pepe a maría:

Para enviar el mensaje debemos instalar un paquete que nos permita hacerlo ya que no viene por defecto instalado así que tendremos que instalar el paquete bsd-mailx:

apt-get install bsd-mailx

Una vez instalado iniciamos sesión con «pepe» para enviar el mensaje a «maría»:

mailx maria

Tendremos que añadir un «Asunto» y algo de contenido, una vez hecho eso,pulsamos CTRL + D para salir del modo de edición de el mensaje y enviarlo:

Comprobamos el log para ver lo que ha pasado:

Como puedes ver, queda reflejado que Pepe le ha enviado un mensaje a María. Nos dirigimos a el usuario de María a ver que ocurre:

Nada más iniciar sesión nos aparece una línea diciéndonos que tenemos un «mail», es decir, un mensaje nuevo, así que ejecutaremos el siguiente comando para verificar los mensajes que nos han mandado:

mail

Hemos entrado a «mail» y nos aparece el mensaje que le ha enviado Pepe, para leerlo lo seleccionamos (su número es el 1):

El mensaje coincide con el que hemos enviado con Pepe, así que todo ha funcionado correctamente.

Ahora haremos lo mismo pero de María a Pepe, para comprobar que funciona:

Hemos enviado el mensaje, ahora comprobaremos en el log que realmente ha sido así:

Como puedes ver, en el log queda reflejado que se ha enviado el mensaje de forma correcta, así que ahora nos dirigimos a el usuario Pepe para ver si ha recibido el mensaje:

Nos aparece que tenemos un mail, abrimos el mail para comprobar que ha llegado completo:

Podríamos decir que Postfix funciona correctamente.

POP

Para instalar POP3, tenemos que ejecutar el siguiente comando:

apt-get install dovecot-pop3d

Ahora tenemos que modificar un fichero perteneciente a Postfix llamado «main.cf» que está alojado en «etc/postfix/main.cf» y añadir lo siguiente:

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24

Lo que hemos hecho es añadir nuestra IP de red junto a su máscara de red a la línea «mynetworks«.

No solo tenemos que modificar eso,ahora tenemos que configurar Postfix para que almacene los correos en el buzón de tipo «Maildir», para ello añadimos lo siguiente en «main.cf«:

home_mailbox = Maildir/
mailbox_command =

Una vez realizado los cambios recargamos el servicio:

systemctl reload postfix

Ahora debemos cambiar una línea en el fichero /etc/dovecot/conf.d/10-auth.conf:

disable_plaintext_auth = yes -> disable_plaintext_auth = no

Esto es para que esté habilitado la autentificación con contraseña en claro.

Lo siguiente será cambiar el fichero donde se encuentra el buzón «/etc/dovecot/conf.d/10-mail.conf» y añadir lo siguiente:

#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:~/Maildir

Cuando hayamos realizamos los cambios reiniciamos el servicio:

systemctl restart dovecot

DNS

Ahora necesitaremos añadir los 2 registros necesarios en el servidor DNS para que funcione la resolución de nombre tanto en el SMTP como en el POP:

Los registros serían así:

  • smtp.harvard.com (SMTP)
  • mail.harvard.com (POP)

Reiniciamos el servicio de Bind para que los cambios se produzcan correctamente:

systemctl restart bind9

Y ahora pasaremos a las pruebas de funcionamiento de una máquina cliente a otra máquina cliente.

Pruebas de funcionamiento (SMTP y POP)

Utilizaremos una máquina Linux en la cual utilizaremos Evolution como cliente de correo, y en la máquina Windows utilizaré Opera Mail.

Linux

Abrimos el Evolution y añadimos una cuenta de correo:

  1. Utilizaremos el usuario Pepe:

Es importante que el usuario esté creado en la máquina servidora.

Ahora tendremos que especificar la dirección del servidor POP, el usuario con el que vamos a iniciar sesión y el método de cifrado:

Pondremos que cada 1 minuto revise la bandeja de entrada:

Ahora configuraremos el SMTP, que es igual que el POP, solo que cambiando la dirección:

Y por último nos muestra un resumen de todo lo configurado anteriormente:

Aplicamos los cambios y ya estaría la cuenta configurada en Linux.

Windows

Abrimos el OperaMail y añadimos la cuenta de maría:

Introducimos la dirección de correo y pulsamos en «Siguiente«:

Pulsamos en «Siguiente«:

Introducimos la dirección del servidor POP (la detecta automáticamente).

Y tendremos la cuenta perfectamente configurada:

Probaremos a enviar un mensaje desde Pepe (Evolution) a María (Opera Mail):

Enviamos y nos dirigimos a la bandeja de entrada de María para ver si ha llegado el mensaje:

El mensaje ha llegado correctamente, ahora enviaremos un mensaje a Pepe a ver que ocurre:

Y comprobamos que el mensaje ha llegado correctamente:

Efectivamente ha funcionado correctamente y nuestro servicio POP cumple su función.

IMAP

Como dije antes, IMAP sirve para acceder a los mensajes en un servidor remoto sin necesidad de descargarlos, a diferencia del POP que lo descargar en local. Vamos a utilizar IMAP con RoundCube, un cliente webmail gratuito.

Lo primero que tenemos que hacer es instalar IMAP:

apt-get install dovecot-imapd

Ahora instalaremos roundcube:

apt-get install roundcube

Configuramos base de datos:

Creamos el Virtual Host de RoundCube en Apache:

cp /etc/apache2/sites-available/000-default.conf  /etc/apache2/sites-available/round.conf

Editamos el fichero y lo configuramos tal que así:

Habilitamos el Virtual Host:

a2ensite round.conf

Reiniciamos apache2:

systemctl restart apache2

Añadimos el registro a el servidor DNS para que nos resuelva la dirección:

Reiniciamos Bind9:

systemctl restart bind9

Prueba de funcionamiento (IMAP)

Primero comprobaremos que podemos acceder a el sitio web desde los clientes, y nos loguearemos en Linux (Pepe) y en Windows (María):

Linux

Nos logueamos con Pepe:

Y nos iniciará correctamente:

Windows

Accedemos a «correo.harvard.com»:

Iniciamos sesión con María:

Y nos aparecerá la pantalla de sesión de María:

Prueba de mensajes

Enviaremos un mensaje de Pepe a María para comprobar que funciona, pero antes tenemos que modificar el fichero /etc/roundcube/config.inc.php y editar la siguiente línea:

$config['smtp_user'] = '%u';  ->  config['smtp_user'] = '';

Esto lo hacemos para que no nos de problemas a autentificación del SMTP.

Seguidamente nos dirigimos a enviar un mensaje en la sesión de «Pepe» y editamos la entidad:

Editamos la dirección:

Nos dirigimos al otro cliente y hacemos lo mismo:

Enviamos el mensaje de Pepe a María:

Nos dirigimos al otro cliente para ver si ha llegado el mensaje:

El mensaje ha llegado correctamente. Ahora lo haremos de María a Pepe:

Comprobamos la bandeja de entrada de Pepe:

Como puedes observar, funciona correctamente nuestro servidor IMAP en un Webmail.

Deja un comentario