Un servidor de correo es una aplicación de red de computadoras ubicada en un servidor de Internet, para prestar servicio de correo electrónico (correo-e o «e-mail»).

De forma predeterminada, el protocolo estándar para la transferencia de correos entre servidores es el Protocolo Simple de Transferencia de Correo (Simple Mail Transfer Protocol, SMTP).

 

 

 

Enviar correo desde local al exterior

Para poder enviar un correo desde nuestra maquina «barney» que es en la cual vamos a instalar el servidor de correo vamos a agregar a la zona dns el siguiente registro:

Reiniciamos el servicio systemctl restart bind9 y comprobamos que obtenemos respuesta de nuestro servidor DNS y asi comprobamos que todo esta funcionando:

Instalación postfix

Ahora vamos a instalar el paquete postfix apt install postfix, en la instalación nos solicitara el nombre del dominio (en mi caso subdominio), que en este caso sera jlramirez.gonzalonazareno.org y nos solicitara Postfix Configuration el cual debemos seleccionar Internet Site:

Y ya tendremos el paquete instalado, y si ejecutamos cat /etc/mailname nos debera mostrar el nombre de nuestro subdominio:

Fichero de configuración de postfix

Para poder enviar un correo desde nuestra maquina «barney» al exterior debemos editar el fichero /etc/postfix/main.cf y aparecerán las siguientes lineas:

  • mydestination: Observa que en la directiva mydestination se indican los dominios que serán propios del servidor de correo, es decir, el correo envíado a estos dominios está dirigirido a usuarios del propio servidor. Si el usuario existe, el mensaje será almacenado, sino el servidor devolverá un mensaje de error.
  • relay_domains: Con la directiva relay_domains indicamos los dominios que serán reenviados. Por lo tanto se permitirán el envío de correos a usuarios de estos dominios.
  • mynetworks: Con mynetworks se indican las IPs desde las que pueden enviarse mensajes.
  • myorigin: Por último, con myorigin se indica el dominio con el que el servidor enviará correo, el cual está configurado en /etc/mailname.
  • relayhost: Es el servidor que nos va a hacer de relay. Se entiende como open relay o (‘relé abierto’ en inglés) es un servidor SMTP configurado de tal manera que permite que cualquier usuario de Internet lo use para enviar correo electrónico a través de él, no solamente el correo destinado a, o procedente de usuarios conocidos.

Nosotros solo vamos a modificar la linea realyhost en la cual vamos a especificar el servidor de correo de babuino para poder enviar correos al exterior:

Y reiniciamos el servicio systemctl restart postfix.service

Info! En este caso tendremos que añadir dicha linea porque desde la red no podemos mandar correos sin pasar por babuino (Servidor de correo), si estuviéramos en la red, por ejemplo, la de casa no tendremos que añadir dicha linea.

Ahora desde la terminal ejecutamos mail [Correo] nos pedira un asunto y un mensaje, para terminar de escribir y mandarlo Ctrl + D:

Si comprobamos los logs, observamos que el correo se a enviado:

Envio correo desde el exterior a local

Ahora vamos a enviar un correo desde «gmail» a nuestro servidor de correo. Para ello accedemos a gmail y enviamos el correo de prueba

Una vez mandado el correo para poder leerlo en nuestra maquina, vamos a instalar apt install mailutils y nos logeamos con el usuario al que le mandamos el correo en este caso debian:

Si quisiéramos acceder a un correo en concreto basta con poner el numero del correo.

Observamos como hemos recibido el correo desde los logs:

Instalar servidor POP e IMAP

Para poder utilizar el servidor pop e imap, vamos a instalar los siguientes paquetes apt install dovecot-imapd dovecot-pop3d dovecot-core, añadimos y modificamos las siguientes lineas en el fichero /etc/postfix/main.cf:

Una vez añadidas esas dos lineas en el fichero, vamos a modificar en /etc/dovecot/conf.d/10-auth.conf la siguiente linea, la cual vamos a descomentar y cambiar para que quede asi:

Y modificamos la siguiente linea en el fichero /etc/dovecot/conf.d/10-mail.conf:

Y por ultimo añadimos a nuestro servidor DNS, las siguientes lineas tanto para pop , como IMAP:

Configurar POP en Evolution

Y configuramos un cliente de correos en este caso Evolution y añadimos nuestra cuenta:

Enviamos un correo a una cuenta de correo en nuestro dominio(También puede ser a un correo de gmail):

Y nos enviamos un correo desde «gmail»:

Podremos comprobar que hemos recibido el correo y por ultimo miramos en los logs del sistema, cuando al abrir el buzón utilizamos el protocolo POP3:

Configurar IMAP en Evolution

Realizamos los mismos pasos que en el apartado anterior pero en lugar de seleccionar POP, por, IMAP.

Y vemos en los logs como hemos recibido el correo:

Configuración sistema filtrado de virus y spam

Para filtrar virus y spam en nuestro servidor de correo vamos a utilizar apt install amavisd-new spamassassin clamav clamav-daemon

Configuraciones paquete instalados

Una vez instalados los correspondientes paquete, vamos a proceder a realizar la siguientes configuraciones:

Agregar usuarios a los grupos

Editar fichero configuración spam

Ahora procedemos a modificar las siguientes lineas en /etc/default/spamassassin para que las lineas queden asi:

E reiniciamos el servicio systemctl restart spamassassin

Editamos fichero configuración virus

Y modificamos /etc/amavis/conf.d/15-content_filter_mode para que quede asi:

Y reiniciamos el servicio systemctl restart amavis.service

Configuración postfix/main.cf

El siguiente paso es modificar /etc/postfix/main.cf en el cual vamos a añadir la siguiente linea, para ello ejecutamos lo siguiente:

Configuración postfix/master.cf

Y por ulitmo configuramos el fichero /etc/postfix/master.cf y añadimos esta serie de lineas al final:

Y reiniciamos postfix systemctl restart postfix

Actualización antivirus

Para comprobar cualquier virus al recibir un correo tenemos instalado clamav, por lo tanto actualizamos el antivirus freshclam y reiniciamos el servicio systemctl restart clamav-daemon

Comprobación correo SPAM

Una vez configurado spamassassin, vamos a enviar un correo con spam.
Podemos encontrar un ejemplo en spamassin

Una vez envidado el correo nuestro fichero log tailf /var/log/mail.log, sera el siguiente:

Por tanto como podemos observar se bloquea y la otra persona recibira el siguiente correo:

Comprobar correo con virus

Una vez configurado amavis, vamos a actualizar la base de datos freshclam, nos puede dar el siguiente error:

Eso significa que no tenemos memoria ram suficiente.

Es importante que el proceso no este ejecutandose ps -A |grep freshclam si estuviera ejecutandose lo paramos.

Actualizamos y mandamos un correo con un virus, observamos en el log de que nos lo han mandado pero se ha bloqueado:

Y el que ha realizado el envió del correo recibirá un mensaje de una alerta de virus: