Gentoo, sSMTP , Mutt y conexiones seguras con SASL y TLS

Bueno, mientras unos hacen guerras santas me parece más razonable aportar con algo por pequeño que sea.

Lo primero de todo voy a definir el problema que se plantea: Hoy en día es muy típico el tener que ofrecer relay de correo a usuarios con IP dinámica y estos usuarios pueden estar utilizando Mutt (si aún no sabes porqué es porque no lo has probado ;)) y sSMTP para enviar sus mensajes a un mailhub.

Mi distribución es Gentoo y hace unos días configuré el servidor de correo con SASL y TLS para permitir estos relays. En principio sSMTP permite SSL pero tanto el ebuild de Gentoo como los propios sources de sSMTP requieren un poquillo (casi nada) de hacking.

net.c.diff
--- net.c.old   2003-05-11 19:23:02.000000000 +0200
+++ net.c       2003-05-11 19:47:37.000000000 +0200
@@ -29,6 +29,9 @@

#ifdef HAVE_SSL
SSL *ssl;
+extern Bool UseTLS;
+extern Bool UseTLSCert;
+extern char *TLSCert;
#endif


Makefile.in.diff
--- Makefile.in.old     2003-05-11 20:19:13.000000000 +0200
+++ Makefile.in 2003-05-11 20:19:24.000000000 +0200
@@ -78,7 +78,7 @@

# Binaries:
ssmtp: $(OBJS)
-       $(CC) -o ssmtp $(OBJS) @LIBS@
+       $(CC) -o ssmtp $(OBJS) @LIBS@ -lssl

vpath %.c $(srcdir)


Al ebuild tenemos que hacerle unos cambios que constarán en añadir SSL a la variable IUSE, actualizar DEPEND y RDEPEND, y por último modificar la función src_compile. Aquí está el parche (os recomiendo que una vez parcheado lo renombreis a ssmtp-2.48-r1.ebuild para que no haya problemas con las versiones):

ssmtp-2.48-r1.ebuild.diff
--- /usr/portage/net-mail/ssmtp/ssmtp-2.48.ebuild       2003-04-18 22:33:13.000000000 +0200
+++ /usr/local/portage/net-mail/ssmtp/ssmtp-2.48-r1.ebuild      2003-05-11 20:30:36.000000000 +0200
@@ -10,15 +10,22 @@
SLOT="0"
KEYWORDS="x86 ppc sparc alpha ~hppa arm mips"
LICENSE="GPL-2"
-IUSE=""
+IUSE="ssl"

-DEPEND="virtual/glibc"
-RDEPEND="!virtual/mta net-mail/mailbase"
+DEPEND="virtual/glibc
+       ssl? ( dev-libs/openssl )"
+RDEPEND="!virtual/mta net-mail/mailbase
+       ssl? ( dev-libs/openssl )"
PROVIDE="virtual/mta"

S=${WORKDIR}/${P}

-src_compile() {                                                   
+src_compile() {
+       if [ "`use ssl`" ]; then
+               epatch ${FILESDIR}/net.c.diff || die "epatch failed"
+               epatch ${FILESDIR}/Makefile.in.diff || die "epatch failed"
+               econf --enable-ssl
+       fi
        make clean || die
        make ${MAKEOPTS} || die
}


Ahora hacemos:

# USE="ssl" emerge ssmtp


Y en el /etc/ssmtp/ssmtp.conf añadimos:
UseTLS=YES
mailhub=example.com:465


Donde example.com es vuestro mailhub.

Como último paso nos queda configurar el Mutt, así que editamos ~/.muttrc y ponemos algo como:
set sendmail = "/usr/sbin/ssmtp -au usuario -ap password"


Donde usuario es nuestro usuario de SASL y password nuestra contraseña. Nos cercioramos de que solo nosotros tengamos acceso de lectura al fichero y listo ;)

Lo mejor es que si alguien lo quiere probar se baje este .zip (el foro no me permitía el .tbz2) y lo descomprima en $PORTDIR_OVERLAY/net-mail. Si alguien no tiene ajustada la variable PORTDIR_OVERLAY le recomiendo que lo haga en /etc/make.conf y que utilice /usr/local/portage o /opt/portage para mantener el estándar de estructura de directorios.

Un Saludo.Ferdy

HTH

Adjuntos

Pues mira... la verdad que... poquito he entendido de lo que has explicado, por mi ignorancia en todo ese campo y de linux en general, pero... eso servirá para alguien que quiera intentar eso (yo mismo dentro de algún tiempo quiero montar un servidor de mail así que ya veremos :)), y es una aportación a la comunidad, así que MUCHAS GRACIAS.

Salu2!
Realmente esto sirve a los clientes. sSMTP es un concentrador de correo que simplemente le pasa todo el trabajo al mailhub (un servidor SMTP de verdad).

Si algún día quieres probar un cliente de correo de verdad (;)). Te recomiendo Mutt+sSMTP

Salu2.Ferdy
Pues ya somos dos, Gweenbou y yo, los que no pillamos ni papa. Hombre, entender si lo entiendo mas o menos, lo que no me ha quedado nada claro es eso del Mutt (Mozilla Mail powaaaa ;))

Curiosamente cambie de ISP hace 2 dias y al tratar de mandar un correo con la cuenta de mi ISP antiguo a traves de Mozilla Mail me dice que no soporta SMTP Relay. Desgraciadamente me ha pillado con la IP "teoricamente" dinamica (porque en la practica es fija ;)), y no se porque me da en la nariz que esa es una solucion a mi problema sin pasar por webmail.

Fuera como fuese, muchas gracias por el invento. Me alegro que hayas hecho lo que dices en la 1ª frase

Saludos! [bye]
mutt es un cliente de correo basado en consola. Yo nunca lo he probado, pero lo tengo por ahi por si algun dia me da por echarle un vistazo, tiene buena pinta, pero hay que cojerselo con tranquilidad (y un buen howto xD)

Imagen

Saludos
mutt es un cliente de correo basado en consola.


"All email clients sucks, but this sucks less" ;)

Pues nada, yo probé hace ya un tiempo mutt y ahora no lo cambio ni por el Evolution más bonito del mundo ;)

http://mutt.org -> es la mejor guía de mutt

Salu2.Ferdy
5 respuestas