Configurar Postfix MTA e IMAP / POP3

Para enviar un correo electrónico desde nuestro servidor CentOS 7, necesitaremos la configuración para configurar un Agente de transferencia de correo (MTA) moderno. Mail Transfer Agent es el demonio responsable de enviar correo saliente para usuarios del sistema o dominios corporativos de Internet a través de SMTP.

Vale la pena señalar que este tutorial solo enseña el proceso de configuración del demonio para uso local. No entramos en detalles sobre la configuración avanzada para configurar un MTA para operaciones comerciales. Esta es una combinación de muchas habilidades que incluyen, entre otras: DNS, obtener una dirección IP enrutable estática que no esté en la lista negra y configurar ajustes avanzados de seguridad y servicio. En resumen, este tutorial está destinado a familiarizarlo con la configuración básica. No utilice este tutorial para la configuración de MTA de un host orientado a Internet.

Con su enfoque combinado tanto en la seguridad como en la facilidad de administración, hemos elegido Postfixcomo MTA para este tutorial. El MTA predeterminado instalado en las versiones anteriores de CentOS es Sendmail .Sendmailes un gran MTA. Sin embargo, según la humilde opinión del autor, Postfix llega a un punto óptimo al abordar las siguientes notas para un MTA. Con la versión más actual de CentOS, Postfix ha reemplazado a Sendmail como el MTA predeterminado.

Postfix es un MTA ampliamente utilizado y bien documentado. Se mantiene y desarrolla activamente. Requiere una configuración mínima en mente (esto es solo correo electrónico) y es eficiente con los recursos del sistema (nuevamente, esto es solo correo electrónico).

Step 1 - Instale Postfix desde YUM Package Manager.

[root@centos]# yum -y install postfix

Step 2 - Configure el archivo de configuración de Postfix.

El archivo de configuración de Postfix se encuentra en: /etc/postfix/main.cf

En una configuración simple de Postfix, se debe configurar lo siguiente para un host específico: nombre de host, dominio, origen, inet_interfaces y destino.

Configure the hostname- El nombre de host es un nombre de dominio completo del host de Postfix. En el capítulo de OpenLDAP, nombramos el cuadro CentOS: centos en el dominio vmnet.local . Sigamos con eso para este capítulo.

# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
myhostname = centos.vmnet.local

Configure the domain- Como se indicó anteriormente, el dominio que usaremos en este tutorial es vmnet.local

# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
mydomain = vmnet.local

Configure the origin - Para la configuración de un solo servidor y dominio, solo necesitamos descomentar las siguientes secciones y dejar las variables Postfix predeterminadas.

# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites.  If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# [email protected].
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part. 
#
myorigin = $myhostname
myorigin = $mydomain

Configure the network interfaces- Dejaremos a Postfix escuchando en nuestra interfaz de red única y todos los protocolos y direcciones IP asociados con esa interfaz. Esto se hace simplemente dejando la configuración predeterminada habilitada para Postfix.

# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on.  By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes. 
#
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
# Enable IPv4, and IPv6 if supported
inet_protocols = all

Step 3 - Configurar el soporte SASL para Postfix.

Sin el soporte de autenticación SASL, Postfix solo permitirá el envío de correo electrónico de usuarios locales. O dará un error de retransmisión denegada cuando los usuarios envíen correo electrónico fuera del dominio local.

Note - SASL o Simple Application Security Layer Frameworkes un marco diseñado para la autenticación que admite diferentes técnicas entre diferentes protocolos de capa de aplicación. En lugar de dejar los mecanismos de autenticación en manos del protocolo de la capa de aplicación, los desarrolladores (y consumidores) de SASL aprovechan los protocolos de autenticación actuales para protocolos de nivel superior que pueden no tener la conveniencia o una autenticación más segura (cuando se habla de acceso a servicios seguros) incorporada.

Instale el paquete "cyrus-sasl *

[root@centos]# yum -y install  cyrus-sasl 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
 * base: repos.forethought.net 
 * extras: repos.dfw.quadranet.com 
 * updates: mirrors.tummy.com 
Package cyrus-sasl-2.1.26-20.el7_2.x86_64 already installed and latest version
Nothing to do

Configurar /etc/postfix/main.cf para autenticación SASL

smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

Mis opciones SASL en main.conf

##Configure SASL Options Entries:
smtpd_sasl_auth_enable = yes
smptd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtp_sasl_type = dovecot
smtp_sasl_path = private/auth/etc

Step 4 - Configure FirewallD para permitir los servicios SMTP entrantes.

[root@centos]# firewall-cmd --permanent --add-service=smtp 
success

[root@centos]# firewall-cmd --reload 
success

[root@centos]#

Ahora verifiquemos que nuestro host CentOS esté permitiendo y respondiendo a las solicitudes en el puerto 25 (SMTP).

Nmap scan report for 172.16.223.132 
Host is up (0.00035s latency). 
Not shown: 993 filtered ports 
PORT    STATE  SERVICE 
   20/tcp  closed ftp-data 
   21/tcp  open   ftp 
   22/tcp  open   ssh 
   25/tcp  open   smtp 
   80/tcp  open   http 
   389/tcp open   ldap 
   443/tcp open   https 
MAC Address: 00:0C:29:BE:DF:5F (VMware)

Como puede ver, SMTP está escuchando y el demonio está respondiendo a las solicitudes de nuestra LAN interna.

Instale el servidor Dovecot IMAP y POP3

Dovecot es un servidor IMAP y POP3 seguro diseñado para manejar las necesidades de correo entrante de una organización más pequeña a más grande. Debido a su prolífico uso con CentOS, usaremos Dovecot como un ejemplo de instalación y configuración de un servidor de correo entrante para CentOS y MTA SASL Provider.

Como se señaló anteriormente, no configuraremos registros MX para DNS ni crearemos reglas seguras que permitan que nuestros servicios manejen el correo de un dominio. Por lo tanto, el simple hecho de configurar estos servicios en un host con conexión a Internet puede dejar un margen de maniobra para los agujeros de seguridad sin registros SPF.

Step 1 - Instale Dovecot.

[root@centos]# yum -y install dovecot

Step 2 - Configurar palomar.

El archivo de configuración principal de dovecot se encuentra en: /etc/dovecot.conf . Primero haremos una copia de seguridad del archivo de configuración principal. Es una buena práctica hacer siempre una copia de seguridad de los archivos de configuración antes de realizar ediciones. De esta manera, un editor de texto destruye los saltos de línea (por ejemplo), y se pierden años de cambios. Revertir es tan fácil como copiar la copia de seguridad actual en producción.

Habilitar protocolos y servicio demonio para dovecot

# Protocols we want to be serving. 
protocols = imap imaps pop3 pop3s

Ahora, necesitamos habilitar el demonio dovecot para que escuche al inicio:

[root@localhost]# systemctl start  dovecot 
[root@localhost]# systemctl enable dovecot

Asegurémonos de que Dovecot esté escuchando localmente en los puertos especificados para: imap, pop3, imap protected y pop3 protected.

[root@localhost]# netstat -antup | grep dovecot 
 tcp        0        0 0.0.0.0:110        0.0.0.0:*        LISTEN        4368/dovecot
 tcp        0        0 0.0.0.0:143        0.0.0.0:*        LISTEN        4368/dovecot
 tcp        0        0 0.0.0.0:993        0.0.0.0:*        LISTEN        4368/dovecot
 tcp        0        0 0.0.0.0:995        0.0.0.0:*        LISTEN        4368/dovecot
 tcp6       0        0 :::110                :::*          LISTEN        4368/dovecot
 tcp6       0        0 :::143                :::*          LISTEN        4368/dovecot
 tcp6       0        0 :::993                :::*          LISTEN        4368/dovecot
 tcp6       0        0 :::995                :::*          LISTEN        4368/dovecot

[root@localhost]#

Como se ve, dovecot está escuchando en los puertos especificados para IPv4 e IPv4.

POP3 110
POP3 995
IMAP 143
IMAP 993

Ahora, necesitamos crear algunas reglas de firewall.

[root@localhost]# firewall-cmd --permanent --add-port=110/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=143/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=995/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=993/tcp 
success
 
[root@localhost]# firewall-cmd --reload 
success
 
[root@localhost]#

Nuestro Sever correo entrante está aceptando solicitudes de POP3 , POP3s , IMAP , y IMAPs a los hosts en la LAN.

Port Scanning host: 192.168.1.143

   Open TCP Port:   21          ftp 
   Open TCP Port:   22          ssh 
   Open TCP Port:   25          smtp 
   Open TCP Port:   80          http 
   Open TCP Port:   110         pop3 
   Open TCP Port:   143         imap 
   Open TCP Port:   443         https 
   Open TCP Port:   993         imaps 
   Open TCP Port:   995         pop3s