Cómo instalar y configurar Postfix

Las implementaciones de SMTP más utilizadas en la mayoría de las distribuciones de Linux son Sendmail y Postfix. Sufijo es un agente de transferencia de correo de código abierto que se desarrolló originalmente como una alternativa a Sendmail y generalmente se configura como el servidor de correo predeterminado.

Índice

    Instalación de Postfix

    Antes de comenzar la instalación, lo primero de todo. Un buen hábito es verificar y ver si el software ya está instalado en el servidor. Siempre vale la pena comprobar si hay algo antes de ponerse a trabajar.

    Para verificar las distribuciones basadas en RPM, use este comando:

    $ rpm -qa | grep postfix
    

    Si el comando anterior muestra que el RPM no está instalado, puede instalar Postfix RPM con lo siguiente (en yumdistribuciones basadas en -):

    $ yum install -y postfix
    

    Una vez que se instala Postfix, puede iniciar el servicio y habilitarlo para asegurarse de que se inicie después de reiniciar:

    $ systemctl start postfix
    $ systemctl enable postfix
    

    Configuración de postfijo

    Una vez instalado Postfix, puedes empezar a configurar el servicio a tu gusto. Todas las opciones que necesitas para el servicio las puedes encontrar en /etc/postfix. El archivo principal de configuración del servicio de Postfix se puede encontrar en /etc/postfix/main.cf. En el archivo de configuración puedes agregar muchas opciones, algunas más comunes que otras. Repasemos algunos de los que puede ver más al configurar el servicio y cuando necesite solucionarlo:

    • myhostname declara el nombre de host del servidor de correo. Los nombres de host normalmente contienen prefijos, como este:
    myhostname = mail.sinisterriot.com
    
    • mydomain declara el dominio que realmente maneja el correo, así:
    mydomain = sinisterriot.com
    
    • mail_spool_directory declara el directorio donde se colocan los archivos del buzón, de la siguiente manera:
    mail_spool_directory = /var/mail
    
    • mynetworks declara una lista de servidores SMTP remotos confiables que pueden retransmitir a través del servidor, así:
    mynetworks = 127.0.0.0/8, 168.100.189.0/28
    

    La lista proporcionada con mynetworks solo debe contener direcciones IP de red local o patrones de red/máscara de red separados por comas o espacios. Es importante usar solo direcciones de red local para evitar que usuarios no autorizados usen su servidor de correo para actividades maliciosas, lo que hará que su servidor y direcciones se incluyan en la lista negra.

    Sufijo de prueba

    Antes de poner algo en producción, probarlo en un entorno de desarrollo siempre es una buena idea. Este proceso tiene el mismo concepto: una vez que haya configurado el servidor de correo, pruébelo para asegurarse de que funciona.

    Primero, recomiendo probar si puede enviar un correo electrónico a un destinatario local. Si tiene éxito, puede cambiar a un destinatario remoto. Prefiero usar el comando telnet para probar mi servidor de correo:

    $ telnet mail.sinisterriot.com 25
    

    Añade el HELO Comando para decirle al servidor de qué dominio eres:

    HELO sinisterriot.com
    

    Luego viene el remitente. Este ID se puede agregar con el MAIL FROM pedido:

    MAIL FROM: [email protected]
    

    Esta entrada es seguida por el destinatario y puede agregar más de uno usando el RCPT TO Comando varias veces:

    RCPT TO: [email protected]
    

    Finalmente, podemos agregar el contenido del mensaje. Para acceder al modo de contenido, agregue el prefijo DATA en una línea separada, seguido de Subject línea y el cuerpo del mensaje. Aquí un ejemplo :

    DATA
    
    Subject: This is a test message  
    
    Hello,
    
    This is a test message
    
    .
    

    Para completar el cuerpo del mensaje y cerrarlo, debe agregar un solo punto (.) o un punto en una línea. Una vez que se complete este proceso, el servidor intentará enviar el correo electrónico con la información que proporcionó. La respuesta del código le dirá si el correo electrónico fue exitoso o no. Una vez hecho esto, utilice el quit Comando para cerrar la ventana de transmisión.

    De cualquier manera, verifique los registros de correo en busca de errores. están ubicados en /var/log/maillog por defecto, pero esta ubicación se puede cambiar a otra ubicación. Como administrador del sistema, comprobar los registros de errores es un buen hábito. Esta práctica es excelente para la resolución de problemas y nos permite identificar y resolver un problema más rápidamente. Descifrar los registros de correo también es una parte importante del trabajo administrativo, porque cada parte del registro nos permite saber qué es importante. En mis últimos años, conocer estas partes me ayudó a escribir guiones para solicitudes específicas mientras solo necesitaba escribir u omitir partes de los registros de correo.

    Postfijo seguro

    Asegurar sus servicios es tan importante como configurarlos. Es más seguro transferir datos a través de una conexión segura que a través de una conexión no protegida. A continuación, veremos cómo proteger nuestro servidor de correo recién configurado. Puede hacerlo generando una sesión SSL sobre Transport Layer Security (TLS) para el servidor SMTP.

    Primero, debe generar la clave privada y la Solicitud de firma de certificado (CSR). Puede hacerlo a través de la openssl pedido:

    $ openssl req -nodes -newkey rsa:2048 -keyout privatekey.key -out mail.csr
    

    A continuación, genere una solicitud de firma y cópiela en el /etc/postfix directorio telefónico:

    $ openssl x509 -req -days 365 -in mail.csr -signkey privatekey.key -out secure.crt
    $ cp {privatekey.key,secure.crt} /etc/postfix
    

    Esta secuencia entrega un certificado firmado al servidor de correo, también conocido como certificado de autoridad certificadora (CA). Esta práctica significa que la autoridad de certificación debe confiar en el firmante del certificado para asegurar la clave privada y transmitir los datos a través de Internet. En el otro tipo de certificado, un certificado autofirmado, la autoridad de certificación no confía en el firmante del certificado, lo que deja la información vulnerable al robo y susceptible de compromiso. Siempre es mejor ir con un certificado firmado.

    Una vez que se completa este proceso, puede agregar opciones de TLS al archivo de configuración de Postfix:

    smtpd_use_tls = yes
    smtpd_tls_cert_file = /etc/postfix/secure.crt
    smtpd_tls_key_file = /etc/postfix/privatekey.key
    smtp_tls_security_level = may
    

    Luego reinicie el servicio para aplicar las nuevas opciones:

    $ systemctl restart postfix
    

    Ahora tiene un servidor de correo seguro y funcional.

    Artículos de interés

    Subir