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.
[[email protected]]# 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 [email protected][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 *
[[email protected]]# 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.
[[email protected]]# firewall-cmd --permanent --add-service=smtp
success
[[email protected]]# firewall-cmd --reload
success
[[email protected]]#
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.
[[email protected]]# 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:
[[email protected]]# systemctl start dovecot
[[email protected]]# systemctl enable dovecot
Asegurémonos de que Dovecot esté escuchando localmente en los puertos especificados para: imap, pop3, imap protected y pop3 protected.
[[email protected]]# 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
[[email protected]]#
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.
[[email protected]]# firewall-cmd --permanent --add-port=110/tcp
success
[[email protected]]# firewall-cmd --permanent --add-port=143/tcp
success
[[email protected]]# firewall-cmd --permanent --add-port=995/tcp
success
[[email protected]]# firewall-cmd --permanent --add-port=993/tcp
success
[[email protected]]# firewall-cmd --reload
success
[[email protected]]#
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