Servidor de Correo: Exim4 + Courier + Roundcube en KUbuntu 14.04 Mail Server: Exim4 + Courier + Roundcube on KUbuntu 14.04
Cabrera, Hugo; Mujica, Milko Facultad de Ciencias y Tecnologías Universidad Nacional del Caaguazú
Coronel Oviedo – Paraguay Resumen
Un servidor de correo está compuesto por tres componentes: MUA (Agente Usuario de Correo), MTA (Agente de Transporte de Correo) y MDA (Agente de Entrega de Correo), en este trabajo serán configurados a base del video tutorial (Darmawan, 2014) con Exim4 como el MTA, Courier el MDA y Roundcube el MUA en un sistema operativo de KUbuntu 14.04.
El protocolo SMTP (Protocolo Simple de Transferencia de Correo), estándar para la transferencia de correo entre servidores, será utilizado por Exim4 (MTA) y el protocolo para recuperar el correo electrónico de Courier (MDA) será IMAP (Protocolo de Acceso a Mensajes de Internet). El método de autenticación de usuarios y para el almacenamiento de los mensajes, será con la utilización de una base de datos en MySQL y los usuarios del sistema.
Palabras Claves: Servidor de correo, autenticación, MTA, MDA, MUA.
Abstract
An email server is composed by three things: MUA (Mail User Agent), MTA (Mail Transport Agent) and MDA (Mail Delivery Agent), in this paper will be configured based on a video tutorial from (Darmawan, 2014) with Exim4 as the MTA, Courier as the MDA and Roundcube will be the MUA on a KUbuntu 14.04. The SMTP (Simple Mail Transfer Protocol), standard for mail transport between servers, it will be used by Exim4 (MTA) and to recovering the received email will be IMAP (Internet Message Access Protocol). The method of user authentication and for the storage of messages, it will be used a database on MySQL and the system users.
Keywords: Mail Server, authentication, MTA, MDA, MUA.
1. Introducción
Cuando se envía un correo electrónico, el mensaje se encamina de servidor a servidor hasta llegar al servidor de correo electrónico del receptor. Más precisamente, el mensaje se envía al servidor del correo electrónico (llamado MTA, del inglés Mail Transport Agent [Agente de Transporte de Correo] ) que tiene la tarea de transportarlos hacia el
MTA del destinatario. En Internet, los MTA se comunican entre sí usando el protocolo SMTP, y por lo tanto se los llama servidores SMTP (o a veces servidores de correo saliente).
Luego el MTA del destinatario entrega el correo electrónico al servidor del correo entrante (llamado MDA, del inglés Mail Delivery Agent [Agente de Entrega de Correo]), el cual almacena el
correo electrónico mientras espera que el usuario lo acepte. Existen dos protocolos principales utilizados para recuperar un correo electrónico de un MDA:
POP3 (Post Office Protocol [Protocolo de Oficina de Correo]), el más antiguo de los dos, que se usa para recuperar el correo electrónico y, en algunos casos, dejar una copia en el servidor.
IMAP (Internet Message Access Protocol [Protocolo de Acceso a Mensajes de Internet]), el cual se usa para coordinar el estado de los correos electrónicos (leído, eliminado, movido) a través de múltiples clientes de correo electrónico. Con IMAP, se guarda una copia de cada mensaje en el servidor, de manera que esta tarea de sincronización se pueda completar.
Por esta razón, los servidores de correo entrante se llaman servidores POP o servidores IMAP, según el protocolo usado.
Usando una analogía del mundo real, los MTA actúan como la oficina de correo (el área de clasificación y de transmisión, que se encarga del transporte del mensaje), mientras que los MDA actúan como casillas de correo, que almacenan mensajes (tanto como les
permita su volumen), hasta que los destinatarios controlan su casilla. Esto significa que no es necesario que los destinatarios estén conectados para poder enviarles un correo electrónico.
Para evitar que cualquiera lea los correos electrónicos de otros usuarios, el MDA está protegido por un nombre de usuario llamado registro y una contraseña.
La recuperación del correo se logra a través de un programa de software llamado MUA (Mail User Agent [Agente Usuario de Correo]).
Cuando el MUA es un programa instalado en el sistema del usuario, se llama cliente de correo electrónico (tales como Mozilla Thunderbird, Microsoft Outlook, Eudora Mail, Incredimail o Lotus Notes).
Cuando se usa una interfaz de web para interactuar con el servidor de correo entrante, se llama correo electrónico (Jeff, 2008).
2. Ajustes previos
Antes de comenzar a instalar los paquetes necesarios para configurar el servidor de correo se ejecuta el siguiente comando para obtener los paquetes actualizados:
sudo apt-get update
Es necesario establecer una IP estática al equipo que cumplirá el papel de servidor.
Instalación y configuración del servidor DNS (Domain Name System)
Instalar un servidor DNS en una red permite reemplazar direcciones IP de
Imagen 1: Componentes de un Servidor de Correo
máquinas individuales por un nombre.
Como resultado, incluso es posible asociar varios nombres a la misma máquina para indicar los diferentes servicios disponibles (Debian Wiki, 2016).
Así, www.chesitio.com será utilizado para un servidor web, y mail.chesitio.com para un servidor de correo.
El paquete bind9 será instalado para este fin, para ello se hace uso de los siguientes comandos:
sudo apt-get install bind9
Para configurar bind9 pasamos al directorio /etc/bind y copiamos db.local y db.127:
cd /etc/bind ls
sudo cp db.local f sudo cp db.127 r
Se debe de modificar el siguiente archivo como muestra la Imagen 2. Para ello, se utiliza el siguiente comando:
sudo nano named.conf.local
También se modifican los archivos copiados anteriormente con los siguientes comandos:
sudo nano f
Con el contenido como se indica en la Imagen 3, y;
sudo nano r
Con el contenido como se indica en la Imagen 4.
Para finalizar se debe reiniciar el servicio de bind9 ejecutando lo siguiente:
sudo /etc/init.d/bind9 restart
Abrimos y editamos el archivo de hosts con:
sudo nano /etc/hosts Agregamos la línea:
192.168.43.88 mail.chesitio.com Se comprueba si funciona
instalando dnsutils si no se tiene instalado y ejecutamos nslookup a
www.chesitio.com :
sudo apt-get install dnsutils nslookup www.chesitio.com
Imagen 2: En este archivo se declaran las zonas asociadas al servidor de dominio
El resultado correcto debe ser:
Server: 127.0.0.1 Address: 127.0.0.1#53 Name: www.chesitio.com Address: 192.168.43.88
3. Instalación y configuración
a. Apache2, MySQL yPHPmyadmin
Se instala con el siguiente comando:
sudo apt-get install apache2 mysql-server phpmyadmin
Mientras se instala muestra unos mensajes para configurar MySQL donde se procede con lo siguiente:
New password for the MySQL “root” user: 123 Repeat password for the MySQL “root” user: 123 Web server to reconfigure automatically: apache2
También, se muestra unos mensajes para configurar PHPmyadmin donde se procede con lo siguiente:
Configure dabase for phpmyadmin with dbconfig- common:Yes
Password of the database´s administrative MySQL applicaction password for phpmyadmin: user: 123 MySQL applicaction password for phpmyadmin: 123 Password confirmation: 123
b. Exim4 y Courier
Para instalar Exim4 y Courier:sudo apt-get install exim4 courier- pop courier-imap
En la instalación Courier pregunta lo siguiente y se elige YES:
Create directories for web-based administrations?
Yes
Esto es para que cree directorios para administraciones basadas en la web,
configurada más adelante con Roundcube.
Se crea directorio de correo:
sudo maildirmake /etc/skel/Maildir Se configura el Exim4 con el siguiente comando:
sudo dpkg-reconfigure exim4- config
Y con las siguientes configuraciones:
General type of mail configuration: local delivery only: not on a network
System mail name: chesitio.com
IP-address to listen on for inconing SMTP connections:
127.0.0.1 ; ::1 ; 192.168.43.88
Imagen 3: Contenido para el archivo r Imagen 4: Contenido para el archivo f
Other destinations for which mail is accepted: ubuntu ; chesitio.com ; mail.chesitio.com ; localhost
Keep number of DNS-queries minimal (Dial-on-Domand)?
NO
Delivery method for local mail: Maildir format in home directory
Split configuration into small files? Yes
c. Prueba del servidor de correo electrónico
Se agregan usuarios para la prueba de envío y recepción correcta de los mensajes a través de telnet.Agregamos con los siguientes comandos:
sudo adduser user1 sudo adduser user2
Nota: pedirá una contraseña que serán “111” y “222” para “user1” y
“user2”, el resto se deja en blanco y al final se acepta.
Para instalar telnet en caso de que no esté instalado.
sudo apt-get install telnet
Primero, se inicia la conexión por el puerto 25 a mail.chesitio.com con:
telnet mail.chesitio.com 25 Se especifica el remitente:
mail from:[email protected] , el destinatario:
rcpt to:[email protected]
, indica donde empieza el mensaje:
data
, se escribe el mensaje:
hola este es el mensaje !!!
, indica que termina el mensaje:
.
y se termina la conexión:
quit
Se inicia otra conexión a mail.chesitio.com, esta vez el 110:
telnet mail.chesitio.com 110 , se indica el usuario:
user user2
, se ingresa la contraseña:
pass 222
, se consulta el estado:
stat
, se muestra el contenido del mensaje recibido:
retr 1
y se cierra conexión:
quit
En la Imagen 5 se puede observar paso a paso los resultados. El puerto 25 y 110 son los utilizados por IMAP para el envío y recepción de mensajes de correo.
d. Roundcube
Imagen 5: Prueba con telnet
1. Descarga Se descarga de:
https://roundcube.net/download/
En este trabajo se descargó la versión
“stable dependent”.
Se crea una carpeta llamada “mail” en el directorio “/var/www” donde se copia el archivo descargado “roundcubemail- (versión).tar.gz” y se descomprime el archivo.
cd /var/www sudo mkdir mail sudo cp
/home/hugo/Dowloads/roundcube mail-1.2.5.tar.gz /var/www/mail/
cd mail ls
sudo tar xzvf roundcubemail- 1.2.5.tar.gz
Al descomprimirse por completo se copia todo el contenido de la carpeta descomprimida al directorio anterior
“/var/www/mail/” y cambiamos el acceso a ese directorio.
cd roundcubemail-1.2.5.tar.gz sudo mv * ..
cd ..
ls
sudo chmod 777 ../mail/ -R
Se crea la base de datos “mail” en MySQL:
mysql -u root -p
CREATE DATABASE mail;
quit
Se edita el archivo default.conf en Apache:
sudo nano /etc/apache2/sites- enabled/000/default.conf
Se agregan dos líneas las cuales indican el nombre del dominio y el directorio donde se encuentran los archivos necesarios:
ServerName mail.chesitio.com DocumentRoot /var/www/mail Imagen 7: Requisitos para Roundcube
Imagen 6: Pear no instalado
Se especifica globalmente el nombre de dominio (Stack Exchange, s.f.):
sudo nano
/etc/apache2/apache2.conf
Agregando la siguiente línea:
ServerName: mail.chesitio.com
Se reinicia el servicio de apache2 para aplicar los cambios:
sudo /etc/init.d/apache2 restart En el navegador ingrese la
dirección “mail.chesitio.com/installer”. Si aparece un mensaje igual a la Imagen 6,
continúe sino pase a la Instalación de Roundcube.
Para solucionar se debe instalar lo siguiente:
sudo apt-get install php-pear php- auth
2. Instalación
Recargamos la página en el navegador para empezar la instalación. Si aparecen algunos mensajes “NO OK”
como se muestra en la Imagen 7, se deben instalar esos faltantes.
Una forma muy fácil es con Pear Installer (Pear PHP, s.f.).
cd ~/Downloads/
wget http://pear.php.net/go- pear.phar
sudo php go-pear.phar
Se procede a instalar los faltantes con el commando “sudo pear install nombre_del_paquete”. Ej: “sudo pear install Net_IDNA2-0.2.0”. Una vez que
Imagen 6: Todo está bien para la instalación de Roundcube
Imagen 7: Configuración de Roundcube
Imagen 8: Initialize database, Send test mail y Check Login son las pruebas a realizer.
todo está bien se hace click en “Next”
como en la Imagen 8.
Se establece de acuerdo a la Imagen 9 y luego siguiente nuevamente al paso 3 donde se hacen las pruebas como se ve en la Imagen 10.
Para finalizar se mueve el directorio directorio “installer/”.
cd /var/www/mail sudo mv installer/
installer_backup
En el navegador nuevamente se pone “mail.chesitio.com” que nos lleva al inicio de sesión de Roundcube.
Ingresamos nuestro usuario del sistema creados anteriormente para acceder como en la Imagen 11. Una vez ingresado se puede ver en la Imagen 12 el aspecto de nuestro cliente web de correo donde se podrá enviar y leer todos los mensajes de correo de acuerdo al usuario con el cual se haya iniciado la sesión.
4. Conclusiones
Un correo de servidor contiene componentes que se encargan del envío de los mensajes en la red por SMTP, otro que administra los usuarios y mensajes recibidos o a enviar de cada uno por IMAP o POP3, y el último componente que ofrece una interfaz gráfica para el usuario para que así pueda realizar todas las funciones de los componentes anteriores.
Existen otros componentes más que ofrecen funciones como la seguridad con antivirus, antispam, etc.
Imagen 10: Inicio de sesión
Imagen 9: Correo del usuario
Bibliografía
Darmawan, E. (19 de Noviembre de 2014). YouTube. Obtenido de https://www.youtube.com/watch?v=frhbhPhaaoc
Debian Wiki. (30 de Agosto de 2016). Obtenido de https://wiki.debian.org/Bind9 Jeff. (16 de Octubre de 2008). CCM. Obtenido de http://es.ccm.net/contents/115-como-
funciona-el-correo-electronico-mta-mda-mua
Pear PHP. (s.f.). Obtenido de http://pear.php.net/manual/en/installation.getting.php Stack Exchange. (s.f.). Obtenido de
https://unix.stackexchange.com/questions/155150/where-in-apache-2-do-you-set- the-servername-directive-globally