Instalar, asegurar, acceder y configurar Linux Mail Server (Postfix)

publicado en: Articles | 0

si desea enviar o recibir un correo electrónico, debe tener un servidor de correo. En esta publicación, discutiremos el servidor de correo Linux y cómo funciona el SMTP (Simple Mail Transfer Protocol), así como otros protocolos relacionados con el correo, como el Protocolo de oficina de correos (POP) y el Protocolo de acceso a mensajes de Internet (IMAP) y la relación entre ellos.,

tabla de contenidos

Linux SMTP server

SMTP define cómo enviar correo de un host a otro; también es independiente del sistema, lo que significa que el remitente y el receptor pueden tener diferentes sistemas operativos.

SMTP solo requiere que un servidor pueda enviar texto ASCII directo a otro servidor, puede hacerlo conectándose al servidor en el puerto 25, que es el puerto SMTP estándar.

la mayoría de las distribuciones de Linux hoy en día vienen con dos de las implementaciones más comunes de SMTP, que son sendmail y Postfix.,

Sendmail es un servidor de correo famoso y gratuito, pero tiene un diseño un poco complejo y menos seguro.

Postfix llevó la implementación del servidor de correo un paso más allá; lo desarrollaron pensando en la seguridad.

componentes del servicio de correo

el servicio de correo en cualquier servidor de correo tiene tres componentes:

agente de usuario de correo (MUA): este componente que el usuario ve e interactúa con como Thunderbird y Microsoft Outlook, estos agentes de usuario son responsables de leer el correo y,

agente de transporte de correo (MTA) : este componente es responsable de obtener el correo de un sitio a otro como Sendmail y Postfix.

agente de entrega de correo (MDA): este componente es responsable de distribuir los mensajes recibidos en la máquina local al buzón de usuario apropiado como postfix-maildrop y Procmail.

Configurar servidor de correo electrónico

elegimos el servidor de correo Postfix, que es muy popular y común entre los administradores de sistemas hoy en día.

Postfix es el servidor de correo predeterminado en la mayoría de las distribuciones de Linux modernas.,

primero, verifique si está instalado en su sistema o no:

$ rpm -qa | grep postfix

Si no está instalado, puede instalar Postfix mail server en distribuciones basadas en Red Hat como esta:

$ dnf -y install postfix

luego inicie el servicio postfix y habilítelo al iniciar el sistema:

$ systemctl start postfix$ systemctl enable postfix

en distribuciones basadas en Debian como Ubuntu, puede instalarlo de la siguiente manera:

$ apt-get -y install postfix

le pedirá que seleccione el tipo de configuración del servidor de correo postfix durante el proceso de instalación.,

entre las cuatro opciones sin configuración, sitio de Internet, Internet con smarthost, Sistema Satelital y solo Local, elegiremos la opción sin configuración.

Configure Linux mail server

después de instalar el servidor de correo Postfix, tendrá que configurarlo; puede encontrar la mayoría de sus archivos de configuración en el directorio /etc/postfix/.

Puede encontrar la configuración principal del servidor de correo Postfix en el archivo/etc / postfix / main. cf.,

Este archivo contiene muchas opciones como:

myhostname

puede usar esta opción para especificar el nombre de host del servidor de correo. Este es el nombre de host de Internet, que Postfix recibirá correos electrónicos en él.

Los nombres de host podría ser como mail.example.com, smtp.example.com.

myhostname = mail.example.com

midominio

Esta opción es el dominio de correo que se le va a atender, como example.com

La sintaxis es similar a esto:

mydomain = example.com

myorigin

Todos los correos electrónicos enviados desde este servidor de correo va a mirar como si viniera desde esta opción., Puede establecer este valor en My mydomain.

myorigin = $mydomain

puede usar cualquier valor de opción, simplemente precederlo con un like like my mydomain.

mydestination

Esta opción enumera los dominios que el servidor Postfix utiliza para los correos electrónicos entrantes.

Puede tomar valores como este:

mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain, www.$mydomain

mail_spool_directory

hay dos modos de entrega que Postfix mail server puede usar:

  • directamente al buzón de correo de un usuario.
  • a un directorio spool central, de esta manera, el correo estará en /var/spool/mail con un archivo para cada usuario.,
mail_spool_directory = /var/spool/mail

mynetworks

Esta opción le permite configurar los servidores pueden retransmitir a través de su servidor Postfix.

esta opción debe tomar direcciones locales como scripts de correo local solo en su servidor.

de lo contrario, los spammers pueden utilizar su servidor de correo para transmitir sus mensajes y su servidor de correo en la lista negra y, como resultado, no podrá recibir muchos correos electrónicos.,

esta opción tiene la siguiente sintaxis:

mynetworks = 127.0.0.0/8, 192.168.1.0/24

smtpd_banner

Esta variable establece el mensaje que el servidor enviará cuando el cliente después de una conexión exitosa.

Es mejor cambiar el banner a algo que no da ninguna pista del servidor que está utilizando.

inet_protocols

Esta opción especifica la versión del protocolo IP utilizada para las conexiones de servidor.,

inet_protocols = ipv4

Si cambia los archivos de configuración para el servidor de correo Postfix, debe volver a cargar el servicio:

$ systemctl reload postfix

Cuando escriba cualquier configuración, puede cometer un error, puede verificar los errores utilizando el siguiente comando:

$ postfix check

esta herramienta le ayudará a encontrar exactamente la línea y el error para que pueda solucionarlo.

comprobar la cola de correo

a veces las colas de correo se llenan con mensajes. Esto sucede debido a muchas razones, como un fallo de red o cualquier razón que pueda retrasar la entrega del correo.,

para comprobar la cola de correo en su servidor de correo Linux, utilice el siguiente comando:

$ mailq

Este comando muestra la cola de correo Postfix.

si su cola está llena y el mensaje tarda varias horas en procesarse, entonces debe vaciar la cola de correo.

$ postfix flush

ahora, si revisa su cola de correo, debería encontrarla vacía.

Test Linux mail server

después de configurar correctamente el servidor de correo Postfix, debe probar su servidor de correo.,

el primer paso es usar un agente de usuario de correo local como mailx o mail, que es un enlace simbólico a mailx.

intente enviar un correo a otra persona en el mismo servidor, si esto funciona, envíe a un sitio remoto.

luego intente recibir un correo desde un sitio remoto.

Si tiene algún problema, compruebe los registros. El archivo de registro de las distribuciones basadas en Red Hat en el archivo/var/log /maillog y de las distribuciones basadas en Debian en/var/log / mail.archivo de registro o como se define en la configuración de rsyslogd.,

le recomiendo que revise el servidor Linux Syslog para obtener una explicación detallada sobre los registros y cómo configurar el rsyslogd.

Si aún tiene problemas, intente comprobar la configuración de DNS y comprobar los registros MX mediante comandos de red de Linux.

Proteja los buzones del spam usando SpamAssassin

una de las formas de combatir el spam es escanear los buzones por alguna herramienta, buscando ciertos patrones asociados con el spam.

Una de las mejores soluciones es SpamAssassin, que es de código abierto.,

se puede instalar como esto:

$ dnf -y install spamassassin

a Continuación, inicie el servicio y permitir al inicio:

$ systemctl start spamassassin$ systemctl enable spamassassin

una Vez que lo hayas instalado, usted puede comprobar la configuración en

/etc/mail/spamassassin/local.cf

de archivo.

SpamAssassin determina si un correo electrónico es spam o no en función del resultado de las diferentes puntuaciones de scripts.

si el mensaje tiene una puntuación más alta, eso significa una mayor posibilidad de que el correo sea spam.,

en el archivo de configuración, el parámetro required_hits 5 indica que SpamAssassin marcará un correo electrónico como spam si su puntuación es de cinco o más.

la opción report_safe toma los valores 0, 1 o 2. Si se establece en 0, significa que el correo electrónico marcado como spam se envía tal cual, solo modificando los encabezados para mostrar que es spam.

si toma el valor 1 o 2, SpamAssassin genera un nuevo mensaje de informe y envía el mensaje al destinatario.,

el valor 1 significa que el mensaje de spam está codificado como content message / rfc822, mientras que si el valor es 2, significa que el mensaje está codificado como text/plain content.

El text / plain es más seguro ya que algunos clientes de correo ejecutan message / rfc822 y podrían infectar el equipo cliente.

Ahora necesitamos integrarlo en Postfix. La forma más sencilla de hacerlo es probablemente usando procmail.

tendremos que crear un archivo, llamado

/etc/procmailrc

, y agregar el siguiente contenido:

:0 hbfw| /usr/bin/spamc

luego editamos el archivo de configuración Postfix/etc/postfix / main.,cf y change

mailbox_command
mailbox_command = /usr/bin/procmail

finalmente, reinicie los servicios Postfix y SpamAssassin:

$ systemctl restart postfix$ systemctl restart spamassassin

Sin embargo, SpamAssassin a veces no reconoce los mensajes de spam que llevaron a buzones llenos de mensajes de spam.

afortunadamente, puede filtrar los mensajes antes de que entren en el servidor Postfix utilizando listas negras en tiempo real (Rbls). Eso disminuirá la carga en su servidor de correo y mantendrá su servidor de correo limpio.

abra el archivo de configuración del servidor Postfix/etc/postfix / main.,cf y cambie la opción smtpd_recipient_restrictions y agregue las siguientes opciones como esta:

luego reinicie su servidor postfix:

$ systemctl restart postfix

Los RBLs anteriores son los Comunes; puede encontrar más listas en la web y probarlas.

asegurar la conexión SMTP

es mejor transferir su tráfico SMTP a través de TLS para protegerlo del ataque Man In the Middle (MITM).

primero, necesitamos generar el certificado y la clave usando el comando openssl:

luego agregue la siguiente opción al archivo de configuración Postfix/etc/postfix / main.,cf:

finalmente, reinicie su servicio postfix:

$ systemctl restart postfix

ahora, debe elegir el TLS en su cliente al conectarse al servidor.

recibirá una advertencia cuando envíe un correo la primera vez después de cambiar la configuración porque el certificado no está firmado.

uso de certificados Let’s Encrypt

Let’s Encrypt es un proveedor gratuito de certificados SSL que le permite cifrar su tráfico.

en lugar de usar certificados autofirmados que molestan a sus usuarios por confiar en ellos, puede usar esta buena solución.,

primero, instale letsencrypt:

$ yum install letsencrypt

o si está utilizando una distribución basada en Debian, puede usar el siguiente comando:

$ apt-get install letsencrypt

luego ejecute letsencrypt de la siguiente manera:

$ letsencrypt certonly --standalone -d yourdomain.com

debe reemplazar yourdomain.com con tu dominio real.

después de responder a las preguntas sobre el correo electrónico de contacto, el dominio del servidor de correo electrónico y la licencia, todo debería estar bien ahora.,

los certificados estarán en:

/etc/letsencrypt/live/yourdomain.com/

Una última cosa que tiene que hacer, que es hacer que postfix use esos certificados, puede usar los siguientes comandos:

no olvide reemplazar yourdomain.com con tu dominio real.

finalmente, reinicie su servidor postfix:

$ systemctl restart postfix

conceptos básicos del protocolo POP3 e IMAP

hasta ahora hemos visto cómo el servidor de correo SMTP envía y recibe correos electrónicos sin problemas, pero considere las siguientes situaciones:

  • Los usuarios necesitan copias locales de correo electrónico para ver sin conexión.,
  • El formato de archivo mbox no es compatible. El formato mbox es utilizado por muchos agentes de usuario de correo como mailx y mutt.
  • Los usuarios no pueden permanecer conectados a una red rápida para tomar una copia local y leerla sin conexión.
  • Algunos servidores de correo no dan acceso a los directorios de cola de correo compartidos por razones de seguridad.

para manejar estos casos, debe usar los protocolos de acceso al correo.

los dos protocolos de acceso al correo más comunes son el Protocolo de oficina de correos (POP) y el Protocolo de acceso a mensajes de Internet (IMAP).,

la idea detrás de POP es muy simple: un servidor de correo Linux central permanece en línea todo el tiempo y recibe y almacena correos electrónicos para todos los usuarios. Todos los correos electrónicos recibidos se ponen en cola en el servidor hasta que un usuario los agarra.

Cuando un usuario desea enviar un correo electrónico, el cliente de correo electrónico lo transmite a través del servidor de correo Central de Linux a través de SMTP normalmente.

tenga en cuenta que el servidor SMTP y el servidor POP pueden estar en el mismo sistema sin ningún problema. La mayoría de los servidores hacen esto hoy.

características como mantener una copia maestra del correo electrónico de un usuario en el servidor faltaban, lo que llevó al desarrollo de IMAP.,

al usar IMAP, su servidor de correo Linux soportará tres modos de acceso:

  • El modo en línea es similar a tener acceso directo al sistema de archivos del servidor de correo Linux.
  • El modo sin conexión es similar a cómo funciona POP, donde el cliente se desconecta de la red, excepto cuando se agarra un correo electrónico. En este modo, el servidor normalmente no retiene una copia del correo electrónico.
  • El modo desconectado funciona permitiendo a los usuarios mantener copias en caché de sus correos electrónicos, y el servidor conserva una copia del correo electrónico.,

hay varias implementaciones para IMAP y POP; la más popular es el servidor Dovecot, que proporciona ambos protocolos.

Los POP3, POP3S, IMAP e IMAPS escuchan en los puertos 110, 995, 143 y 993 respectivamente.

instalar Dovecot

La mayoría de las distribuciones de Linux vienen con Dovecot preinstalado., Sin embargo, puede instalar Dovecot en distribuciones basadas en Red Hat de esta manera:

$ dnf -y install dovecot

las distribuciones basadas en Debian proporcionan la funcionalidad IMAP y POP3 en dos paquetes separados, puede instalarlos de esta manera:

$ apt-get -y install dovecot-imapd dovecot-pop3d

le pedirá que cree certificados autofirmados para usar IMAP y POP3 sobre SSL/TLS. Seleccione Sí e ingrese el nombre de host para su sistema cuando se le solicite.,

luego puede ejecutar el servicio y habilitarlo al inicio de la siguiente manera:

$ systemctl start dovecot$ systemctl enable dovecot

Configure Dovecot

el archivo de configuración principal para Dovecot es

/etc/dovecot/dovecot.conf

file.

algunas distribuciones de Linux ponen la configuración en el directorio

/etc/dovecot/conf.d/

y usan la directiva include para incluir la configuración en los archivos.

puede utilizar la siguiente lista de los parámetros para configurar Dovecot:

protocolos: los protocolos que desea apoyar.

protocols = imap pop3 lmtp

lmtp significa Protocolo de transferencia de correo local.,

listen: direcciones IP para escuchar.

listen = *, ::

el asterisco significa todas las interfaces ipv4 y:: significa todas las interfaces ipv6

userdb: base de datos de usuarios para autenticar usuarios.

userdb {driver = pam}

passdb: base de datos de contraseñas para autenticar usuarios.

passdb {driver = passwd}

mail_location: esta entrada en /etc/dovecot/conf.d 10-mail.conf file:

mail_location = mbox:~/mail:INBOX=/var/mail/%u

Secure Dovecot

Dovecot viene con certificados SSL genéricos y archivos de clave., Mire este archivo:

/etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/pki/dovecot/certs/dovecot.pemssl_key = </etc/pki/dovecot/private/dovecot.pem

Cuando un usuario intenta conectarse al servidor dovecot, mostrará una advertencia porque los certificados no están firmados, puede comprar un certificado de una Autoridad de certificación si lo desea.

o si va con Let’s Encrypt certificates, puede apuntar a ellos en su lugar:

ssl_cert = </etc/letsencrypt/live/yourdomain.com/fullchain.pemssl_key = </etc/letsencrypt/live/yourdomain.com/privkey.pem

no olvide abrir los puertos del servidor dovecot en su firewall iptables agregando reglas iptables para puertos 110, 995, 143, 993, 25.

luego guarda las reglas.,

o si está utilizando firewalld, puede hacer lo siguiente:

y de nuevo, para solucionar problemas, compruebe los archivos de registro/var/log /messages,/var/log /maillog y/var/log / mail.archivos de registro.

Linux mail server es uno de los servidores más fáciles de trabajar, especialmente el servidor de correo Postfix.

espero que encuentres el post útil e interesante. Sigue regresando.

Gracias.

Fundador de LikeGeeks. Estoy trabajando como administrador de sistemas Linux desde 2010., Soy responsable del mantenimiento, la seguridad y la solución de problemas de los servidores Linux para múltiples clientes en todo el mundo. Me encanta escribir scripts de shell y Python para automatizar mi trabajo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *