Cargando



Instalar y configurar servidor de correo en CentOS 7

Aprende a instalar y configurar un servidor de correo con este completo tutorial en tu equipo Linux con CentOS 7.


nov 15 2016 14:36
Avanzado
Total de Apartados : 8
sep 13 2021 13:45

configurar-servidor-centos-7.png

 

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.

 

 

 

Qué es un servidor de correo
Antes de analizar cómo implementar el servidor de correo en CentOS 7 debemos conocer algunos términos relacionados con el tema.

 

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:

 

POP3
POP (Post Office Protocol – Protocolo de Oficina de Correos) es el protocolo que permite que el mensaje sea recibido y este protocolo no requiere de una conexión permanente a internet para su funcionamiento.

 

IMAP
IMAP (Internet Message Access Protocol – Protocolo de Acceso de Mensajes de Internet) es un protocolo que permite que el cliente de correo electrónico se conecte a la cuenta de correo y despliegue los mensajes de correo almacenados.

 

SMTP
SMTP (Simple Mail Transfer Protocol – Protocolo Simple de Transferencia de Correo) es un protocolo basado en texto que es usado para el intercambio de mensajes de correo entre diferentes dispositivos.

 

MTA
MTA (Mail Transfer Agent – Agente de Transferencia de Correo) es un servidor cuya función es transferir correos y la gestión de los mismos en internet. Algunos MTAs conocidos son Sendmail, Postfix, etc.

 

POP3
DOVECOT
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-install-release.png

 

Nota
Recordemos que si se ejecutan estos comandos con un usuario diferente al root debemos anteponer el término sudo

 


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-paquete-mailcap.png

 

 


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)

 

Paso 1

Para ello usaremos el siguiente comando
sudo yum -y install sendmail sendmail-cf dovecot squirrelmail

4-dependencias-resueltas.png

 

Paso 2

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

5-grep-postfix.png

 

Paso 3

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


Paso 1

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.conf
Veremos que se despliega lo siguiente.

 

 

 

 

 

 

 

6-dovecot-configuration-file.png

 

Paso 2

En esta configuración debemos ubicar la línea siguiente
Protocols we want to be serving

7-dovecot-configuration.png

 

Paso 3

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.

 

8-dovecot-configuration.png

 

Paso 4

Guardamos los cambios usando la combinación de teclas:

 

 

Ctrl + O

 

 

y salimos del editor usando la combinación

 

Ctrl + X

 

 

Paso 5

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

9-root-mail-directory.png

 

Paso 6

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 #.

 

10-root-mail-directory.png

 

Paso 7

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

11-authentication-processes.png

 

Paso 8

Allí simplemente debemos descomentar (quitar símbolo #) de la línea
disable_plaintext_auth = yes

12-authentication-processes.png

 

Paso 9

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


Paso 1

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

13-sendmail.png

 

Paso 2

Allí ubicaremos la línea
DAEMON_OPTIONS (“port=smtp,Addr=127.0.0.1, Name=MTA”)dn1

14-sendmail.png

 

Paso 3

En esta línea removemos el apartado asociado a Addr quedando de esta manera la línea.

 

15-sendmail-configuration.png

 

Paso 4

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


Paso 1

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

16-local-host-names.png

 

Paso 2

Allí ingresaremos el nombre del dominio, en este caso solvetic.com.

 

17-local-host-names.png

 

Paso 3

Guardamos los cambios.A continuación accederemos usando nano a la siguiente ruta:
/etc/mail/Access

18-acceso-mail-centos.png

 

Paso 4

Allí debemos añadir una línea con el nombre de nuestro dominio. Guardamos los cambios usando

 

 

Ctrl + O

 

 

 

 

 

 

19-acceso-mail-centos.png

 

Paso 5

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

20-acceso-mail-centos.png

 

 


7. Acceder a la consola web


Para este análisis hemos creado dos usuarios usando el comando useradd llamados correosolvetic y solvetic1.

 

Paso 1

A continuación, debemos ir a un navegador e ingresar la siguiente sintaxis:
http://Dirección_IP/webmail
En nuestro caso ingresamos
http://192.168.0.11/webmail

21-squirrelmail.png

 

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).

 

Paso 2

Ingresamos nuestras credenciales y veremos el siguiente error.

 

22-error-conecction-dropped-by-imap-server.png

 

Paso 3

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
Paso 4

Posteriormente debemos modificar el propietario de la carpeta usando los siguientes comandos:
sudo chown -R correosolvetic:correosolvetic /var/www/html/correosolvetic
Paso 5

Ahora de nuevo intentamos acceder y veremos lo siguiente.

 

 

 

 

 

23-squirrelmail-enviar-email.png

 

Paso 6

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

24-probar-servidor-correo-centos.png

 

Paso 7

Para enviar el mensaje desde la terminal usamos la combinación.

 

 

Ctrl + D

 

 


8. Visualizar y enviar mensajes desde el cliente


Paso 1

Para ver los mensajes almacenados en nuestro buzón basta con seleccionarlo y obtendremos el motivo del correo.

 

25-mensaje-prueba-servidor-mail-centos.png

 

Paso 2

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.

 

26-current-folder-inbox.png

 

Paso 3

Pulsamos Send y el usuario correosolvetic recibirá el mensaje enviado.

 

27-enviar-correo-servidor-linux.png

 

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.

 


¿Te ayudó este Tutorial?


14 Comentarios


Ramon Godin
nov 17 2016 01:11

Como para no dar un punto positivo a esto.


Juan Diego Auquilla
jun 29 2017 18:34

Muy buen aporte, pero tuve un problema haciendo el servidor, en el navegador al querer digitar el 

  1. "http://Dirección_IP/webmail" me sale que no se puede conectar. talvez podrias ayudarme con
  2. esto te lo agradeceria mucho :)
  3. PS: T

Juan Diego Auquilla
jun 29 2017 18:35

PS: todos los procesos anteriores me salieron correctamente hasta ese punto


Alex Pereiro
jun 29 2017 19:04

PS: todos los procesos anteriores me salieron correctamente hasta ese punto

 

Ahí solo tienes que cambiar la "Dirección_IP" que sale en esa url por la dirección tuya local de donde estás instalando el servidor de correo en CentOS.

 

Un ejemplo sería:

 

http://192.168.1.34/webmail

 

cambia 192.168.1.34 por la dirección ip local que tengas configurada en tu equipo.

 

Otra opción sería que pulses en este enlace desde tu máquina donde estás instalando esto:

 

http://localhost/webmail

 

localhost = a tu dirección ip local de la máquina.

 

saludos amigo.


Juan Diego Auquilla
jun 30 2017 01:06

Ahí solo tienes que cambiar la "Dirección_IP" que sale en esa url por la dirección tuya local de donde estás instalando el servidor de correo en CentOS.

 

Un ejemplo sería:

 

http://192.168.1.34/webmail

 

cambia 192.168.1.34 por la dirección ip local que tengas configurada en tu equipo.

 

Otra opción sería que pulses en este enlace desde tu máquina donde estás instalando esto:

 

http://localhost/webmail

 

localhost = a tu dirección ip local de la máquina.

 

saludos amigo.

 

si esa parte de la ip si le cambie por la de mi equipo viendo con ifconfig pero igual no me accede y tambien probe con el localhost, sabes porque sera?

Cómo puedo hacer para que mi servidor de correo funcione enlazado a un dominio en especial. En otras palabras qué pasa si tengo varios dominios alojados en mi servidor y quisiera darle a cada uno una configuración de correo.

Lo siento ya revicé bien y durante la configuración aparece la parte en que se puede personalizar el dominio. Pero ahora tengo otro problema, ya que al poner http://midominio.com/webmail me redirecciona a https:// y no se por qué. Me pueden ayudar?

Buenas noche, he seguido los pasos correctamente y los he repasado dos veces y está todo bien, pero al llegar al paso touch /home/correosolvetic/mail/.imap/INBOX me dice que no puede hacer touch porque no existe el directorio o fichero, a que es debido? Como lo puedo solucionar? Gracias

Buenos días he conseguido solventar el error antes mencionado, pero ahora me ocurre otra cosa, intento recargar la webmail pero me sigue poniendo error y no me recarga a la webmail. a que puede ser debido? Gracias


Roberto Plaza
may 11 2018 13:39

Buenos días he conseguido solventar el error antes mencionado, pero ahora me ocurre otra cosa, intento recargar la webmail pero me sigue poniendo error y no me recarga a la webmail. a que puede ser debido? Gracias

 

Justo te lo iba a resolver el primer erro. Para este segundo error realizas entrada a través de IP local al webmail? es por saber como lo estas enfocando.

 

Seguramente tu problema sea por activación de SSL? o puertos, revisalos. Es que pueden ser muchos errores.


Andrés Henao
may 28 2018 18:49

Hola excelente el post, me ayudas con esta dudacomo puedo hacer para queotros cuentas dominios apunten a mi servidor como tipo mx y yo desde mi centos crearle la cuenta y que ellos puedan revisar su email sin necesidad de cambiar de hosting.

Gracias


Kevin Eduardo
nov 25 2019 19:39

Buenas noche, he seguido los pasos correctamente y los he repasado dos veces y está todo bien, pero al llegar al paso touch /home/correosolvetic/mail/.imap/INBOX me dice que no puede hacer touch porque no existe el directorio o fichero, a que es debido? Como lo puedo solucionar? Gracias

 

hola me sale ese error como lo solucionaste?


Juanpablo99
feb 20 2020 13:49

Hola que tal, funciona perfecto toda la guía, pero a la hora de poner el último comando 

sudo chown -R correosolvetic:correosolvetic /var/www/html/correosolvetic

Obviamente reemplazo correosolvetic por mi usuario pero me dice que no existe la carpeta, y por lo tanto, no me deja recibir mails. Como puedo resolver ésto ? Gracias.


Daniiel Olivarez
jun 23 2021 04:31

Hola, realice todos los pasos bien, pero cuando intengo entrar desde el navegador se queda cargando y me aparece que se agoto el tiempo de espera... obviamente utilizo mi ip, pero hasta aqui llego, como puedo avanzar... muchas gracias.

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X