enchufado
   RSS
#
Postfix con autenticación SASL + usuarios de sistema (GNU/Linux) 2013-10-07 21:39:03

En el anterior post vimos cómo configurar un sistema de correo postfix con cierta complejidad, así que en éste veremos la otra cara de la moneda: configurar un postfix (casi) lo más simple/rápido posible con autenticación de usuarios de sistema. Lo único más simple que esto es dejar el servidor de correo tal cual tras la instalación configurándolo como "Internet site" o enviando a través de otro "Smart host", según sea el caso.

Primero vamos a configurar la autenticación básica con Postfix (SASL), y qué mejor aliado que la página Wiki de Debian al respecto. Los pasos "concentrados" son los que siguen (la explicación está en el enlace):

$ apt-get install libsasl2-modules postfix sasl2-bin

$ vi /etc/postfix/sasl/smtpd.conf
   pwcheck_method: saslauthd
   mech_list: PLAIN LOGIN

$ vi /etc/default/saslauthd
   START=yes

$ /etc/init.d/saslauthd start
$ vi /etc/postfix/main.cf
   smtpd_sasl_local_domain = $myhostname
   smtpd_sasl_auth_enable = yes
   broken_sasl_auth_clients = yes
   smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

$ adduser postfix sasl
$ vi /etc/fstab
   /var/run/saslauthd /var/spool/postfix/var/run/saslauthd bind noauto,bind 0 0

$ cd /var/spool/postfix
$ mkdir -p var/run/saslauthd
$ mount /var/spool/postfix/var/run/saslauthd
$ /etc/init.d/postfix restart

Después de ésto, añadimos un usuario de sistema:

$ adduser test
$ <Le asignamos un password>

Antes de probarlo, convertimos éste usuario y password a formato AUTH PLAIN para poder hacer una posterior comprobación por consola + telnet. El siguiente comando nos devolverá una combinación (en forma de una ristra de caracteres) de usuario + password en éste formato para poder suministrarlo en el siguiente paso durante la autenticación. Nótese que usamos el usuario 'test' y el password '123Test', sin el entrecomillado:

$ perl -MMIME::Base64 -e 'print encode_base64("\000test\000123Test");'
AHRlc3QAMTIzVGVzdA==

Ahora ya sí, cabe probar la autenticación:

$ telnet el_servidor 25
ehlo test
250-el_servidor
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN AHRlc3QAMTIzVGVzdA==
235 2.7.0 Authentication successful
MAIL FROM: test@dominio.net
250 2.1.0 Ok
RCPT TO: enjuto.mojamuto@muchachada.nui
250 2.1.5 Ok
DATA
354 End data with .
This is a test.
.
250 2.0.0 Ok: queued as 2777822ABD
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Ni qué decir tiene que hecho ésto y con la intención de securizar el envío de correos incluso desde el propio host, podemos quitar el parámetro permit_mynetworks de smtpd_recipient_restrictions y hacer que cualquier intento de envío (incluyendo los locales) requiera autenticación. Misión cumplida.


Comentarios (0)


Volver al indice

login, admin, form, register