Búsqueda de sitios web

Configuración de servicios de correo electrónico (SMTP, Imap e Imaps) y restricción del acceso a SMTP - Parte 7


Un LFCE (Ingeniero certificado de la Fundación Linux) es un profesional capacitado que tiene las habilidades para instalar, administrar y solucionar problemas de servicios de red en sistemas Linux, y está a cargo de diseño, implementación y mantenimiento continuo de la arquitectura del sistema y administración de usuarios.

Presentamos el programa de certificación de la Fundación Linux.

En un tutorial anterior discutimos cómo instalar los componentes necesarios de un servicio de correo. Si aún no ha instalado Postfix y Dovecot, consulte la Parte 1 de esta serie para obtener instrucciones sobre cómo hacerlo antes de continuar.

Requisito

  1. Instalar el servidor de correo Postfix y Dovecot – Parte 1

En esta publicación, le mostraré cómo configurar su servidor de correo y cómo realizar las siguientes tareas:

  1. Configurar alias de correo electrónico
  2. Configurar un servicio IMAP e IMAPS
  3. Configurar un servicio smtp
  4. Restringir el acceso a un servidor smtp

Nota: Nuestra configuración solo cubrirá un servidor de correo para una red de área local donde las máquinas pertenecen al mismo dominio. El envío de mensajes de correo electrónico a otros dominios requiere una configuración más compleja, incluidas capacidades de resolución de nombres de dominio, que está fuera del alcance de la certificación LFCE.

Pero antes que nada, comencemos con algunas definiciones.

Componentes de un proceso de envío, transporte y entrega de correo

La siguiente imagen ilustra el proceso de transporte de correo electrónico desde el remitente hasta que el mensaje llega a la bandeja de entrada del destinatario:

Para que esto sea posible, suceden varias cosas detrás de escena. Para que un mensaje de correo electrónico se entregue desde una aplicación cliente (como Thunderbird, Outlook o servicios de correo web como Gmail o Yahoo! Mail) a su servidor de correo y desde allí al servidor de destino y finalmente al destinatario previsto. , debe haber un servicio SMTP (Protocolo simple de transferencia de correo) en cada servidor.

Cuando se habla de servicios de correo electrónico, se mencionan muy a menudo los siguientes términos:

Agente de transporte de mensajes – MTA

MTA (abreviatura de Mail o Agente de transporte de mensajes), también conocido como retransmisión de correo, es un software que se encarga de transferir mensajes de correo electrónico desde un servidor. a un cliente (y al revés también). En esta serie, Postfix actúa como nuestro MTA.

Agente de usuario de correo – MUA

MUA, o Mail User Agent, es un programa informático que se utiliza para acceder y administrar las bandejas de entrada de correo electrónico del usuario. Los ejemplos de MUA incluyen, entre otros, Thunderbird, Outlook e interfaces de correo web como Gmail, Outlook.com, por nombrar algunos. En esta serie, usaremos Thunderbird en nuestros ejemplos.

Agente de entrega de correo

MDA (abreviatura de Mensaje o Agente de entrega de correo) es la parte del software que realmente entrega mensajes de correo electrónico a las bandejas de entrada de los usuarios. En este tutorial, usaremos Dovecot como nuestro MDA. Dovecot también se encargará de la autenticación del usuario.

Protocolo simple de transferencia de correo: SMTP

Para que estos componentes puedan “hablar” entre sí, deben “hablar” el mismo “idioma” (o protocolo). ), concretamente SMTP (Protocolo simple de transferencia de correo) tal como se define en el RFC 2821. Lo más probable es que tengas que consultar ese RFC al configurar tu entorno de servidor de correo.

Otros protocolos que debemos tener en cuenta son IMAP4 (Protocolo de acceso a mensajes de Internet), que permite gestionar los mensajes de correo electrónico directamente en el servidor sin descargarlos en el disco duro de nuestro cliente. , y POP3 (Protocolo de oficina postal), que permite descargar los mensajes y carpetas al ordenador del usuario.

Nuestro entorno de pruebas

Nuestro entorno de pruebas es el siguiente:

Configuración del servidor de correo
Mail Server OS	: 	Debian Wheezy 7.5 
IP Address	:	192.168.0.15
Local Domain	:	example.com.ar
User Aliases	:	[email  is aliased to [email  and [email 
Configuración de la máquina cliente
Mail Client OS	: 	Ubuntu 12.04
IP Address	:	192.168.0.103

En nuestro cliente, hemos configurado una resolución DNS elemental agregando la siguiente línea al archivo /etc/hosts.

192.168.0.15 example.com.ar mailserver

Agregar alias de correo electrónico

De forma predeterminada, un mensaje enviado a un usuario específico debe entregarse únicamente a ese usuario. Sin embargo, si también desea enviarlo a un grupo de usuarios, o a un usuario diferente, puede crear un alias de correo o usar uno de los existentes en /etc/postfix/aliases , siguiendo esta sintaxis:

user1: user1, user2

Por lo tanto, los correos electrónicos enviados al usuario1 también se entregarán al usuario2. Tenga en cuenta que si omite la palabra usuario1 después de los dos puntos, como en

user1: user2

los mensajes enviados a usuario1 solo se enviarán a usuario2, y no a usuario1.

En el ejemplo anterior, usuario1 y usuario2 ya deberían existir en el sistema. Es posible que desee consultar la Parte 8 de la serie LFCS si necesita actualizar su memoria antes de agregar nuevos usuarios.

  1. Cómo agregar y administrar usuarios/grupos en Linux
  2. 15 comandos para agregar usuarios en Linux

En nuestro caso específico, usaremos el siguiente alias como se explicó anteriormente (agregue la siguiente línea en /etc/aliases).

sysadmin: gacanepa, jdoe

Y ejecute el siguiente comando para crear o actualizar la tabla de búsqueda de alias.

postalias /etc/postfix/aliases

De modo que los mensajes enviados a [email  se entregarán en la bandeja de entrada de los usuarios enumerados anteriormente.

Configuración de Postfix: el servicio SMTP

El archivo de configuración principal para Postfix es /etc/postfix/main.cf. Sólo necesitas configurar algunos parámetros antes de poder utilizar el servicio de correo. Sin embargo, debe familiarizarse con los parámetros de configuración completos (que se pueden enumerar con man 5 postconf) para poder configurar un servidor de correo seguro y totalmente personalizado.

Nota: Este tutorial solo pretende ayudarlo a comenzar en ese proceso y no representa una guía completa sobre servicios de correo electrónico con Linux.

Abra el archivo /etc/postfix/main.cf con el editor que elija y realice los siguientes cambios como se explica.

vi /etc/postfix/main.cf

1. myorigin especifica el dominio que aparece en los mensajes enviados desde el servidor. Es posible que vea el archivo /etc/mailname utilizado con este parámetro. Siéntase libre de editarlo si es necesario.

myorigin = /etc/mailname

Si se utiliza el valor anterior, los correos electrónicos se enviarán como [correo electrónico protegido], donde usuario es el usuario que envía el mensaje.

2. mydestination enumera qué dominios esta máquina entregará mensajes de correo electrónico localmente, en lugar de reenviarlos a otra máquina (actuando como un sistema de retransmisión). La configuración predeterminada será suficiente en nuestro caso (asegúrese de editar el archivo para adaptarlo a su entorno).

Donde el archivo /etc/postfix/transport define la relación entre los dominios y el siguiente servidor al que se deben reenviar los mensajes de correo. En nuestro caso, dado que enviaremos mensajes únicamente a nuestra red de área local (evitando así cualquier resolución DNS externa), la siguiente configuración será suficiente.

example.com.ar    local:
.example.com.ar    local:

A continuación, necesitamos convertir este archivo de texto plano al formato .db, lo que crea la tabla de búsqueda que Postfix realmente utilizará para saber qué hacer con el correo entrante y saliente.

postmap /etc/postfix/transport

Deberá recordar recrear esta tabla si agrega más entradas al archivo de texto correspondiente.

3. misredes define las redes autorizadas desde las que Postfix reenviará mensajes. El valor predeterminado, subred, le dice a Postfix que reenvíe correo desde clientes SMTP en las mismas subredes IP que la máquina local únicamente.

mynetworks = subnet

4. relay_domains especifica los destinos a los que se deben enviar los correos electrónicos. Dejaremos intacto el valor predeterminado, que apunta a mi destino. Recuerde que estamos configurando un servidor de correo para nuestra LAN.

relay_domains = $mydestination

Tenga en cuenta que puede utilizar $mydestination en lugar de enumerar el contenido real.

5. inet_interfaces define en qué interfaces de red debe escuchar el servicio de correo. El valor predeterminado, todos, le dice a Postfix que use todas las interfaces de red.

inet_interfaces = all

6. Finalmente, mailbox_size_limit y message_size_limit se utilizarán para establecer el tamaño del buzón de cada usuario y el tamaño máximo permitido de mensajes individuales, respectivamente, en bytes.

mailbox_size_limit = 51200000
message_size_limit = 5120000

Restringir el acceso al servidor SMTP

El servidor Postfix SMTP puede aplicar ciertas restricciones a cada solicitud de conexión del cliente. No a todos los clientes se les debe permitir identificarse en el servidor de correo usando el comando smtp HELO, y ciertamente no a todos se les debe otorgar acceso para enviar o recibir mensajes.

Para implementar estas restricciones, usaremos las siguientes directivas en el archivo main.cf. Aunque se explican por sí solos, se han agregado comentarios con fines de aclaración.

Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.
smtpd_helo_required = yes

Permit the request when the client IP address matches any network or network address listed in $mynetworks
Reject the request when the client HELO and EHLO command has a bad hostname syntax
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname

Reject the request when Postfix does not represent the final destination for the sender address
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain

Reject the request unless 1) Postfix is acting as mail forwarder or 2) is the final destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

La página postconf de parámetros de configuración de Postfix puede resultar útil para explorar más a fondo las opciones disponibles.

Configurando Dovecot

Inmediatamente después de instalar dovecot, admite de forma inmediata los protocolos POP3 e IMAP, junto con sus versiones seguras, POP3S y IMAPS, respectivamente.

Agregue las siguientes líneas en el archivo /etc/dovecot/conf.d/10-mail.conf.

%u represents the user account that logs in
Mailboxes are in mbox format
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Directory owned by the mail group and the directory set to group-writable (mode=0770, group=mail)
You may need to change this setting if postfix is running a different user / group on your system
mail_privileged_group = mail

Si revisa su directorio personal, notará que hay un subdirectorio de correo con el siguiente contenido.

Además, tenga en cuenta que el archivo /var/mail/%u es donde se almacenan los correos electrónicos del usuario en la mayoría de los sistemas.

Agregue la siguiente directiva a /etc/dovecot/dovecot.conf (tenga en cuenta que imap y pop3 implican imaps y pop3s también).

protocols = imap pop3

Y asegúrese de que /etc/conf.d/10-ssl.conf incluya las siguientes líneas (de lo contrario, agréguelas).

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

Ahora reiniciemos Dovecot y verifiquemos que escuche en los puertos relacionados con imap, imaps, pop3 y pop3s.

netstat -npltu | grep dovecot

Configurar un cliente de correo y enviar/recibir correos

En nuestro ordenador cliente, abriremos Thunderbird y haremos clic en ArchivoNuevoCuenta de correo existente. Se nos pedirá que introduzcamos el nombre de la cuenta y la dirección de correo electrónico asociada, junto con su contraseña. Cuando hacemos clic en Continuar, Thunderbird intentará conectarse al servidor de correo para verificar la configuración.

Repita el proceso anterior para la siguiente cuenta ([email ) y las siguientes dos bandejas de entrada deberían aparecer en el panel izquierdo de Thunderbird.

En nuestro servidor, escribiremos un mensaje de correo electrónico a sysadmin, que tiene el alias de jdoe y gacanepa.

El registro de correo (/var/log/mail.log) parece indicar que el correo electrónico que se envió a sysadmin se retransmitió a [email  y [email , como se puede ver en la siguiente imagen.

Podemos verificar si el correo realmente fue entregado a nuestro cliente, donde se configuraron las cuentas IMAP en Thunderbird.

Finalmente, intentemos enviar un mensaje de [correo electrónico protegido] a [correo electrónico protegido].

En el examen se le pedirá que trabaje exclusivamente con utilidades de línea de comandos. Esto significa que no podrá instalar una aplicación cliente de escritorio como Thunderbird, sino que deberá utilizar el correo en su lugar. Hemos utilizado Thunderbird en este capítulo sólo con fines ilustrativos.

Conclusión

En este post hemos explicado cómo configurar un servidor de correo IMAP para su red de área local y cómo restringir el acceso al servidor SMTP. Si tiene un problema al implementar una configuración similar en su entorno de prueba, querrá consultar la documentación en línea de Postfix y Dovecot (especialmente las páginas sobre los archivos de configuración principales, /etc/postfix/main.cf y/etc/dovecot/dovecot.conf, respectivamente), pero en cualquier caso no dude en ponerse en contacto conmigo mediante el formulario de comentarios a continuación. Estaré más que feliz de ayudarte.