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. |
Ahora es un buen momento para decidir qué formato de buzón desea usar. De forma predeterminada, Postfix usará mbox como formato de buzón. En lugar de editar directamente el archivo de configuración, puede usar el comando postconf para configurar todos los parámetros de postfix. Los parámetros de configuración se guardarán en el archivo /etc/postfix/main.cf
. Más tarde, si desea volver a configurar un parámetro en concreto, puede, o bien ejecutar el comando, o bien cambiar dicho parámetro manualmente en el archivo.
Para configurar el formato del buzón para Maildir:
sudo postconf -e 'home_mailbox = Maildir/'
![]() |
|
Esto guardará el correo nuevo en «/home/usuario/Maildir», por lo que tendrá que configurar su Agente de Entrega de Correo para que use la misma ruta. |
Los siguientes pasos sirven para configurar postfix para que use SASL en la autentificación SMTP.
Configurar Postfix para hacer SMTP AUTH usando SASL (saslauthd):
sudo postconf -e 'smtpd_sasl_local_domain =' sudo postconf -e 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_sasl_security_options = noanonymous' sudo postconf -e 'broken_sasl_auth_clients = yes' sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' sudo 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
A continuación configure el certificado digital para TLS. Siga las instrucciones que le indiquen y conteste a las preguntas que se le planteen.
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/
![]() |
|
Puede obtener el certificado digital mediante una entidad certificativa. También puede crear el certificado usted mismo. Consulte la sub-sección Creación de un certificado autofirmado para más detalles. |
Configurar Postfix para hacer cifrado TLS en el correo entrante y el saliente:
sudo postconf -e 'smtpd_tls_auth_only = no' sudo postconf -e 'smtp_use_tls = yes' sudo postconf -e 'smtpd_use_tls = yes' sudo postconf -e 'smtp_tls_note_starttls_offer = yes' sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key' sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt' sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem' sudo postconf -e 'smtpd_tls_loglevel = 1' sudo postconf -e 'smtpd_tls_received_header = yes' sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s' sudo postconf -e 'tls_random_source = dev:/dev/urandom' sudo postconf -e 'myhostname = mail.ejemplo.com'
Desactive la operación chroot en el servidor SMTP. Localice la siguiente línea en el archivo /etc/postfix/master.cf
:
smtp inet n - - - - smtpd
y modifíquelo de esta forma:
smtp inet n - n - - smtpd
![]() |
|
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.
libsasl2-2, sasl2-bin y libsasl2-modules son necesarias para habilitar SMTP AUTH usando SASL. Puede instalar estas aplicaciones si no las ha instalado aún.
sudo apt-get install libsasl2-2 sasl2-bin
Se necesitan unos cuantos cambios para hacer que funcione correctamente. Como Postfix se ejecuta como chroot en /var/spool/postfix
, hay que configurar SASL para que se ejecute en el directorio raíz falso (/var/run/saslauthd
se convierte en /var/spool/postfix/var/run/saslauthd
):
sudo mkdir -p /var/spool/postfix/var/run/saslauthd sudo 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 inicio de saslauthd usa esas opciones para crear el directorio que falta con los permisos y propietario adecuados:
sudo 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