Instalar los paquetes necesarios. En Debian todo es muy fácil.
aptitude install postfix-tls libsasl2-modules sasl2-bin
Ahora editamos el fichero de configuración:
editor /etc/default/saslauthd
# arranque autamatico START=yes # "shadow" or "sasldb", like this: MECHANISMS="shadow" PARAMS="-m /var/spool/postfix/var/run/saslauthd/" PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"
Ahora le decimos a smptd que funcione de una forma diferente. En /etc/postfix/sasl/smtpd.conf
ponemos esto otro:
saslauthd_path: /var/run/saslauthd/mux pwcheck_method: saslauthd mech_list: plain login
Si te pones de suerte a lo mejor puedes quitar plain, yo tuve esa suerte pero se de gente que no. Ahora toca decirle a postfix que pida nombre de usuario y contraseña.
#sasl smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = smtp_sasl_auth_enable = no broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
Ojo, no tiene que remplazar el contenido de su smtpd_recipient_restrictions, la cuestión es que estas dos deben estar de últimas, póngale encima todo lo que se le ocurra. Ya que estamos asegurando, pongamos a postfix a funcionar como chroot. Dicen que eso se hace así. En /etc/postfix/master.cnf
debemos tener algo como esto:
smtp inet n - - - - smtpd
Cámbielo por esto:
smtp inet n - y - - smtpd
Note una “y” en lugar del segundo “-”
Ahora creamos el directorio para saslauthd. Mucho ojo, hay que hacer un paso raro con los permisos.
mkdir -p /var/spool/postfix/var/run/saslauthd chown root.sasl -R /var/spool/postfix/var/ dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
Para que postfix y sasl se entiendan, postfix debe pertencer al grupo sasl
adduser postfix sasl
Bueno solo faltaría reiniciar postfix.
/etc/init.d/postfix restart
Si eres usaurio de Debian te salvaste.
aptitude install postfix-pcre
Con eso tendremos la extensión de perl para postfix, ahora podemos crear ficheros con expresiones regulares de perl. Ahora le agregamos esto al main.cf
smtpd_sender_login_maps = pcre:${config_directory}/sender_login.pcre
…y conjuramos este hechizo. En el pertinente archivo /etc/postfix/sender_login.pcre
le ponemos esto:
/^(.*)@tudominio\.tld$/ $1
Entonces es cuando viene a jugar la sentencia que ya habiamos visto.
smtpd_recipient_restrictions = [...] reject_sender_login_mismatch, permit_sasl_authenticated
OJO, debe ir antes de permit. Ya solo faltaría reinicar postfix.