Uno de los principales objetivos que tenemos como administradores de sistemas o como personal de soporte es velar por la correcta comunicación entre los usuarios de la organización y una de las formas más fundamentales como logramos este objetivo es gracias al servidor de correo que tengamos configurado para que a través de él todos los mensajes, tanto entrantes como salientes, lleguen al destinatario correcto de forma segura e íntegra.
De una correcta comunicación en la organización dependen muchas tareas y metas propuestas para cada día escalar y mejorar los procesos corporativos.
En este tutorial veremos cómo podemos configurar un servidor de correo en la plataforma CentOS 7. La imagen ISO de CentOS 7 puede ser descargada de forma gratuita en el siguiente enlace.
Un servidor de correo es básicamente una aplicación que nos brinda la posibilidad de enviar mensajes, en forma de correos, entre los distintos usuarios de la organización o fuera de ella independiente de la red a la cual estén conectados.
Los términos básicos que usaremos en un servidor de correo son:
Dovecot es un servidor de correo entrante el cual soporta los protocolos mencionados anteriormente.
Con estos conceptos en mente procederemos a la configuración de nuestro servidor de correo en CentOS 7.
1. Instalar repositorios EPEL
En primer lugar, debemos instalar los repositorios de EPEL para posteriormente instalar el MTA a usar para el servicio de correo, recordemos que EPEL son los paquetes adicionales para Enterprise Linux que nos brinda complementos para los paquetes de software en las ediciones CentOS, RHEL y Fedora.
Para instalar dichos repositorios usaremos el comando:
sudo yum -y install epel-release
2. Instalar Apache para gestión de servidor de correo
El siguiente paso consiste en instalar Apache usando el parámetro – -disablerepo=epel* el cual nos permite realizar la instalación directamente de los repositorios oficiales. Usaremos el siguiente comando.
sudo yum -y install --disablerepo=epel*
3. Instalación de aplicaciones necesarias
Una vez realizado el proceso anterior instalaremos las siguientes aplicaciones:
- Sendmail (El cual será usado para el envío de los correos)
- Dovecot
- Squirrelmail (Será nuestro cliente web de correos)
Para ello usaremos el siguiente comando
sudo yum -y install sendmail sendmail-cf dovecot squirrelmail
Ahora validaremos el servicio Postfix. Este servicio por defecto viene instalado en CentOS 7, procedemos a buscarlo y en caso de encontrarlo procedemos a detenerlo, para ello usaremos los siguientes comandos.
rpm -qa | grep postfix
systemctl stop postfix
A continuación, modificaremos el nombre del equipo por un nombre de dominio válido, en este caso usaremos el nombre solvetic.com e ingresaremos lo siguiente en CentOS 7:
sudo hostname solvetic.com
4. Configuración de Dovecot
Para configurar los parámetros de Dovecot debemos ingresar en la siguiente ruta /etc/dovecot/dovecot.conf, podemos usar el editor preferido, en este caso usaremos nano.
sudo nano /etc/dovecot/dovecot.confVeremos que se despliega lo siguiente.
En esta configuración debemos ubicar la línea siguiente
Protocols we want to be serving
Allí descomentamos la línea Protocols = imap pop3 lmtp (Quitando el símbolo #) y dejamos los protocolos que usaremos, en este caso IMAP y pop3.
Guardamos los cambios usando la combinación de teclas:
Ctrl + O
y salimos del editor usando la combinación
Ctrl + X
Ahora ingresaremos en la ruta /etc/dovecot/conf.d/10-mail.conf para su edición, ingresamos:
sudo nano /etc/dovecot/conf.d/10-mail.conf
Allí debemos copiar la línea mail_location = mbox: ~/mail:INBOX=/var/mail/%u y pegarla en el campo mail_location debajo de la línea <doc/wiki/MailLocation.txt> y teniendo en cuenta quitar el símbolo #.
Finalmente accedemos al archivo ubicado en la ruta /etc/dovecot/conf.d/10-auth.conf, ingresaremos:
sudo nano /etc/dovecot/conf.d/10-auth.conf
Allí simplemente debemos descomentar (quitar símbolo #) de la línea
disable_plaintext_auth = yes
Guardamos los cambios usando la combinación de teclas:
Ctrl + O
y salimos del editor usando la combinación:
Ctrl + X
5. Configuración de Sendmail
Ahora debemos acceder a la siguiente ruta /etc/mail/sendmail.mc para efectuar los cambios en la configuración de Sendmail, usaremos nano para acceder a la edición.
sudo nano /etc/mail/sendmail.mc
Allí ubicaremos la línea
DAEMON_OPTIONS (“port=smtp,Addr=127.0.0.1, Name=MTA”)dn1
En esta línea removemos el apartado asociado a Addr quedando de esta manera la línea.
Guardamos los cambios. Una vez ejecutado este cambio usaremos el comando m4 para modificar el formato de Sendmail de .mc a .cf (Es una compilación), para ello usaremos el siguiente comando.
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
6. Configuración de Squirrelmail
El siguiente paso consiste en acceder a la ruta /etc/mail/local-host-names usando nano para realizar algunos ajustes, ingresaremos.
sudo nano /etc/mail/local-host-names
Allí ingresaremos el nombre del dominio, en este caso solvetic.com.
Guardamos los cambios.A continuación accederemos usando nano a la siguiente ruta:
/etc/mail/Access
Allí debemos añadir una línea con el nombre de nuestro dominio. Guardamos los cambios usando
Ctrl + O
Una vez efectuados estos cambios procedemos a reiniciar los servicios usando los siguientes comandos:
systemctl start httpd systemctl start sendmail.service systemctl start dovecot.service
7. Acceder a la consola web
Para este análisis hemos creado dos usuarios usando el comando useradd llamados correosolvetic y solvetic1.
A continuación, debemos ir a un navegador e ingresar la siguiente sintaxis:
http://Dirección_IP/webmailEn nuestro caso ingresamos
http://192.168.0.11/webmail
Si no logras acceder a la web ya que te redirige a una conexión HTTPS, edita el archivo /etc/httpd/conf.d/squirrelmail.conf y déjalo de la siguiente manera:
#
# SquirrelMail is a webmail package written in PHP.
#
Alias /webmail /usr/share/squirrelmail
<Directory "/usr/share/squirrelmail/plugins/squirrelspell/modules">
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
***** allow,deny
Allow from all
</IfModule>
</Directory>
# this section makes squirrelmail use https connections only, for this you
# need to have mod_ssl installed. If you want to use unsecure http
# connections, just remove this section:
<Directory /usr/share/squirrelmail>
# RewriteEngine on
# RewriteCond %{HTTPS} !=on
# RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
***** allow,deny
Allow from all
</IfModule>
</Directory>
Luego reiniciar el servicio httpd (service httpd restart / systemctl restart httpd), con esto deberías poder acceder a la web.
Si tu problema persiste prueba deshabilitando el firewalld (systemctl stop firewalld) o el selinux (setenforce 0).
Ingresamos nuestras credenciales y veremos el siguiente error.
Este error de debe a que la carpeta que contendrá la información del servidor de correo no existe. Para solucionar esto debemos usar el siguiente comando para crear la respectiva carpeta en la raíz del usuario seleccionado, en este caso correosolvetic (y aplicarlo a cada uno de los usuarios creados)
touch /home/correosolvetic/mail/.imap/INBOX
Posteriormente debemos modificar el propietario de la carpeta usando los siguientes comandos:
sudo chown -R correosolvetic:correosolvetic /var/www/html/correosolvetic
Ahora de nuevo intentamos acceder y veremos lo siguiente.
Vemos que ya tenemos dos mensajes en nuestra bandeja de entrada, estos fueron enviados desde la consola usando la siguiente sintaxis:
- mail usuario
- Subject (Motivo)
- Cuerpo del mensaje
Para enviar el mensaje desde la terminal usamos la combinación.
Ctrl + D
8. Visualizar y enviar mensajes desde el cliente
Para ver los mensajes almacenados en nuestro buzón basta con seleccionarlo y obtendremos el motivo del correo.
Para enviar un mensaje a otro correo, por ejemplo, hemos iniciado sesión con el usuario solvetic1 y enviaremos un mensaje al usuario correosolvetic, debemos seleccionar la opción Compose ubicada en la parte superior y especificar el destinatario, motivo y mensaje.
Pulsamos Send y el usuario correosolvetic recibirá el mensaje enviado.
Usando este método podemos configurar un servidor de correo en nuestros sistemas Linux, en este caso CentOS 7 para permitir la intercomunicación entre los diversos usuarios de la organización de forma sencilla y práctica. Si además de un servidor de correo te gustaría tener un servidor de intercambio de archivos, no te pierdas cómo instalar un servidor FTP en CentOS 7.
Como para no dar un punto positivo a esto.