Nota:

Aprenderá a instalar y configurar Postfix con STARTTLS en Oracle Linux

Introducción

En este tutorial se muestra cómo instalar y configurar el software del servidor de correo electrónico Postfix en un sistema Oracle Linux para permitirle enviar mensajes dentro de la red con cifrado y verificación STARTTLS. Este tutorial está dirigido a usuarios de Oracle Linux 8 o posterior.

Postfix es un servidor de agente de transferencia de correo (MTA) que se ha desarrollado como sustituto de sendmail, que es el servidor MTA por defecto en muchos sistemas Linux más antiguos. Debido a su arquitectura modular basada en pipeline, Postfix es versátil e integra fácilmente con muchos otros servicios, como el procesamiento de spam y antivirus, así como con software de almacenamiento de mensajes, como el servidor IMAP y POP de Dovecot.

Como mínimo dedicado para proteger el servicio, debe configurar Postfix para admitir STARTTLS para realizar la verificación TLS/SSL y el cifrado mediante una conexión SMTP. El uso de STARTTLS ayuda a proteger la integridad de las comunicaciones.

En este tutorial se describe cómo configurar y configurar Postfix para que funcione principalmente como servidor de protocolo simple de transferencia de correo (SMTP).

Objetivos

Al finalizar este laboratorio, podrá:

Requisitos

Instalar Postfix

Nota: al utilizar el entorno de prácticas gratuitas, consulte Aspectos básicos del laboratorio de Oracle Linux para conocer la conexión y otras instrucciones de uso.

  1. Instale el paquete postfix en la instancia mediante el gestor de paquetes, de la siguiente manera:

    sudo dnf install -y postfix
    
  2. Permitir tráfico SMTP a través del firewall del servidor:

    sudo firewall-cmd --zone=public --add-service=smtp --permanent
    
    sudo firewall-cmd --reload
    
  3. Elimine el paquete sendmail, si está presente:

    sudo dnf remove -y sendmail
    
  4. Defina Postfix como agente de transferencia de correo por defecto:

    sudo alternatives --set mta /usr/sbin/sendmail.postfix
    
  5. Active e inicie el servicio Postfix:

    sudo systemctl enable --now postfix
    

Generar un certificado TLS

Para este ejercicio práctico, genere y utilice un certificado TLS autofirmado. En un entorno de producción, Oracle recomienda utilizar un certificado TLS/SSL firmado por una autoridad de certificación (CA) externa. Consulte https://docs.oracle.com/en/operating-systems/oracle-linux/certmanage/ para obtener más información.

  1. Instale el paquete openssl en la instancia mediante el gestor de paquetes, de la siguiente manera:

    sudo dnf install -y openssl
    
  2. Cree una clave privada RSA y un certificado de prueba X.509 autofirmado:

    hostname=$(hostname -f)
    
    sudo openssl req -new -x509 -days 1 -nodes -newkey rsa:2048 -keyout private.key \
    -out public.cert -subj "/C=US/ST=Ca/L=Sunnydale/CN=$hostname"
    
  3. Copie la clave privada RSA en el directorio /etc/pki/tls/private:

    sudo cp private.key /etc/pki/tls/private/
    
  4. Copie el certificado de prueba X.509 autofirmado en el directorio /etc/pki/tls/certs:

    sudo cp public.cert /etc/pki/tls/certs/
    

Configuración de Postfix con STARTTLS

  1. Cree una copia de seguridad para la configuración de Postfix por defecto:

    sudo mv /etc/postfix/main.cf /etc/postfix/main.cf.bak
    
  2. Edite el archivo de configuración, /etc/postfix/main.cf, para que contenga líneas similares a las siguientes:

    sudo tee -a /etc/postfix/main.cf > /dev/null <<EOF
    myhostname = $(hostname -f)
    myorigin = \$myhostname
    inet_interfaces = all
    inet_protocols = all
    mydestination = \$myhostname, localhost
    mynetworks = 192.168.1.0/24, 127.0.0.0/8, 10.0.0.0/24
    home_mailbox = mail/
    # Additional STARTTLS configuration settings
    tls_random_source=dev:/dev/urandom
    # SMTPD TLS configuration for incoming connections
    smtpd_use_tls = yes
    smtpd_tls_cert_file = /etc/pki/tls/certs/public.cert
    smtpd_tls_key_file = /etc/pki/tls/private/private.key
    smtpd_tls_security_level = may
    # SMTP TLS configuration for outgoing connections
    smtp_use_tls = yes
    smtp_tls_cert_file = /etc/pki/tls/certs/public.cert
    smtp_tls_key_file = /etc/pki/tls/private/private.key
    smtp_tls_security_level = may
    EOF
    

    Nota: el envío de correos electrónicos desde un único host es suficiente para esta práctica. En un entorno de producción, debe definir mydomain como el nombre de dominio registrado desde el que desea enviar el correo electrónico. Para obtener más información, lea las páginas del manual de Postfix.

  3. Reinicie el servicio Postfix:

    sudo systemctl restart postfix
    

Enviar correos electrónicos de prueba

  1. Instale el cliente de correo electrónico mailx:

    sudo dnf install -y mailx
    
  2. Envíe un correo electrónico de prueba a su propia dirección de correo electrónico externa. Actualice el nombre de host en el comando mailx para que coincida con la instancia desde la que envía el correo electrónico:

    hostname=$(hostname -f)
    
    echo "External email" | mailx -r root@$hostname -s "Test email subject" admin@example.com
    

    Nota: El uso de mailx para enviar correos electrónicos de prueba desde un único host es suficiente para este ejercicio práctico. En un entorno de producción, debe utilizar el dominio registrado que configuró en /etc/postfix/main.cf en la dirección de correo electrónico del remitente, por ejemplo, root@example.com.

  3. Compruebe su propia cuenta de correo electrónico para ver un nuevo mensaje. Puede que necesite comprobar la carpeta de correo no deseado.

  4. Si el correo electrónico no aparece, puede comprobar la cola de correo de Postfix:

    sudo mailq
    
  5. También puede consultar el log de Postfix. Pulse Ctrl + C para salir:

    sudo tail -f /var/log/maillog
    

Más recursos de aprendizaje

Explore otras prácticas en docs.oracle.com/learn o acceda a contenido de aprendizaje más gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de formación de Oracle.

Para obtener documentación sobre los productos, visite Oracle Help Center.