Postfix

Postfix es el Agente de Transferencia de Correo (Mail Transfer Agent, MTA) predeterminado en Ubuntu. Su objetivo es ser rápido, seguro y fácil de administrar. Es compatible con el MTA sendmail. Esta sección explica cómo instalar y configurar postfix. También explica cómo configurar un servidor SMTP usando una conexión segura (para enviar correos electrónicos de forma segura).

Instalación

Para instalar postfix con SMTP-AUTH y Transport Layer Security (TLS), ejecute la siguiente orden:

sudo apt-get install postfix

Cuando el proceso de instalación le haga preguntas, simplemente pulse Intro; la configuración se hará con más detalle en la siguiente etapa.

Configuración Básica

Para configurar postfix, ejecute la siguiente orden:

sudo dpkg-reconfigure postfix

Se mostrará la interfaz de usuario. En cada pantalla, seleccione los siguientes valores:

  • Ok

  • Sitio de Internet

  • NINGUNO

  • mail.example.com

  • mail.example.com, localhost.localdomain, localhost

  • No

  • 127.0.0.0/8

  • 0

  • +

  • todo

[Nota]

Reemplace mail.example.com con el nombre de máquina de su servidor de correo.

Autentificación SMTP

El siguiente paso es configurar postfix para que use SASL con SMTP AUTH. En lugar de editar directamente el archivo de configuración, puede usar la orden postconf para configurar todos los parámetros de postfix. Los parámetros de configuración se almacenarán en el archivo /etc/postfix/main.cf. Posteriormente, si desea reconfigurar un parámetro en particular, podrá ejecutar la misma orden o cambiar el parámetro manualmente en el archivo.

  1. Configurar Postfix para hacer SMTP AUTH usando SASL (saslauthd):

    postconf -e 'smtpd_sasl_local_domain ='
    postconf -e 'smtpd_sasl_auth_enable = yes'
    postconf -e 'smtpd_sasl_security_options = noanonymous'
    postconf -e 'broken_sasl_auth_clients = yes'
    postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
    postconf -e 'inet_interfaces = all'
    

    Abra el archivo /etc/postfix/sasl/smtpd.conf y añada las siguientes líneas al final del mismo:

    pwcheck_method: saslauthd
    mech_list: plain login
    
  2. Next, configure the digital certificate for TLS. When asked questions, follow the instructions and answer appropriately.

    openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
    chmod 600 smtpd.key
    openssl req -new -key smtpd.key -out smtpd.csr
    openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
    openssl rsa -in smtpd.key -out smtpd.key.unencrypted
    mv -f smtpd.key.unencrypted smtpd.key
    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
    sudo mv smtpd.key /etc/ssl/private/
    sudo mv smtpd.crt /etc/ssl/certs/
    sudo mv cakey.pem /etc/ssl/private/
    sudo mv cacert.pem /etc/ssl/certs/
    

    [Nota]

    You can get the digital certificate from a certificate authority. Alternatively, you can create the certificate yourself. Refer to Creating a self Signed Certification sub-section for more details.

  3. Configurar Postfix para hacer cifrado TLS con el correo entrante y saliente:

    postconf -e 'smtpd_tls_auth_only = no'
    postconf -e 'smtp_use_tls = yes'
    postconf -e 'smtpd_use_tls = yes'
    postconf -e 'smtp_tls_note_starttls_offer = yes'
    postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
    postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
    postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
    postconf -e 'smtpd_tls_loglevel = 1'
    postconf -e 'smtpd_tls_received_header = yes'
    postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    postconf -e 'tls_random_source = dev:/dev/urandom'
    postconf -e 'myhostname = mail.ejemplo.com'
    
[Nota]

Una vez que haya ejecutado todas las órdenes, tendrá configurado el SMTP AUTH en postfix. El certificado auto-firmado se crea para el TLS y se configura con postfix.

Ahora,·el archivo·/etc/postfix/main.cf·debería parecerse a

La configuración inicial de postfix se ha completado. Ejecute la siguiente orden para arrancar el demonio de postfix:

          
            sudo /etc/init.d/postfix start
          
        

Ahora, el demonio postfix está instalado y configurado, y se está ejecutando con éxito. Postfix soporta SMTP AUTH como se define en RFC2554. Está basado en SASL. Sin embargo, todavía es necesario configurar la autenticación SASL para poder usar SMTP.

Configuración de SASL

The libsasl2, sasl2-bin and libsasl2-modules are necessary to enable SMTP AUTH using SASL. You can install these applications if you have not installed them already.

sudo apt-get install libsasl2 sasl2-bin

Se necesitan unos pocos cambios para hacer que funcione apropiadamente. Como Postfix se ejecuta «enjaulado» con chroot en /var/spool/postfix, es necesario configurar SASL para ejecutarlo en un raíz falso (/var/run/saslauthd se convierte en /var/spool/postfix/var/run/saslauthd):

mkdir -p /var/spool/postfix/var/run/saslauthd
rm -rf /var/run/saslauthd

Para activar saslauthd, edite el archivo /etc/default/saslauthd y cambie o añada la variable START. Con idea de configurar saslauthd para que se pueda ejecutar en un falso raíz, añada las variables PWDIR, PIDFILE y PARAMS. Finalmente, configure la variable MECHANISMS a su gusto. El archivo debe tener el siguiente aspecto:

# This needs to be uncommented before saslauthd will be run

# automatically
START=yes

PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"

# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"

MECHANISMS="pam"
[Nota]

Si lo prefiere, puede usar shadow en lugar de pam. De esta forma, se transferirán contraseñas cifradas con MD5, lo que resultará más seguro. El nombre de usuario y la contraseña que haya que autenticar serán los de los usuarios del sistema que esté usando en el servidor.

A continuación, actualice el «estado» de dpkg de /var/spool/portfix/var/run/saslauthd. El script de inicialización de saslauthd usa esta opción para crear el directorio que falta con los permisos y propietario adecuados:

dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

Comprobando

La configuración del SMTP AUTH está ya completa. Ahora es el momento de iniciar y probar la configuración. Puede ejecutar la siguiente orden para arrancar el demonio SASL:

          
            sudo /etc/init.d/saslauthd start
          
        

Para ver si el SMTP-AUTH y el TLS funcionan correctamente, ejecute la siguiente orden:

          
            telnet mail.example.com 25
          
        

Una vez que haya establecido la conexión con el servidor de correo postfix, teclee:

ehlo mail.ejemplo.com

Si ve aparecer las siguientes líneas (entre otras), es que todo funciona correctamente. Teclee quit para salir.

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME