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).
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.
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
Sí
0
+
todo
![]() |
|
Reemplace mail.example.com con el nombre de máquina de su servidor de correo. |
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.
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
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/
![]() |
|
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. |
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'
![]() |
|
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.
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"
![]() |
|
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
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