XMAIL

TÍTULO:		XMAIL
VERSIÓN LFS:	3.3 hasta  CVS20020606
AUTOR:		Richard Downing <richard.downing@bcs.org.uk>
TRADUCTOR:	Proyecto LFS-ES

SINOPSIS:	Cómo instalar xmail-1.8 en lugar de sendmail, postfix, qmail 
		y demás.


RECETA:
Esta receta explica cómo crear e instalar xmail en tu LFS.  Xmail, de Davide
Libenzi, es un único servidor que sustituye, por ejemplo, a sendmail+qpopper+
fetchmail, o como ocurría en mi último sistema LFS, a postfix+procmail+
fetchmail+qpopper.

En dos palabras: ¿Porqué instalar tres o cuatro paquetes cuando uno sólo hace 
todo el trabajo?

El gran problema con xmail-1.8 consiste en que Davide no ha terminado de 
escribir un guión (script) de configuración o de instalación. Eso nos
proporciona unas cuantas oportunidades interesantes de meter la pata, sobre
todo si, como es mi caso, aún no acabas de sentirte demasiado cómodo en este
mundo de unix y sus derivados. Sin embargo, una vez que el paquete se ha 
instalado, parece funcionar bien y hace todo lo que se dice que debe hacer.
Existe una lista de correo bastante activa, pero con un tráfico algo 
excesivo.


Obtener y desempaquetar el paquete.
-----------------------------------

Descarga el paquete desde: http://www.xmailer.org

Es un fichero .tar.gz, así que tendrás que desempaquetarlo con el
procedimiento habitual y hacer a continuación cd xmail-1.8.

Lee el fichero readme.txt file, pues es todo lo que tienes disponible
como manual...


Crear los ejecutables.
---------------------
Elige tu Makefile en función de la arquitectura de tu sistema LFS:

	make -f Makefile.lnx  - para i86
	make -f Makefile.slx  - para SPARC
	make -f Makefile.plx  - para PPC

(Ten en cuenta que yo sólo tengo experiencia con el i86)

Puedes eliminar en este momento los ejecutables si tienes problemas de
espacio.

Esto creará Xmail y sus herramientas, que incluyen un guión (script) de
arranque para sistemas SysV que funciona en un LFS, pero volveremos sobre
ello más adelante. 


Instalar Xmail.
--------------

Ahora empieza lo bueno.  Haz su a root si aún no lo eres.

	cp -R MailRoot /var
	chmod 700 /var/MailRoot

La mayor parte de los ficheros de XMail se encuentran en /var/MailRoot, al
que sólo root tiene acceso.

	cp XMail XMCrypt MkUsers sendmail /var/MailRoot/bin

Sin embargo, el binario CtrlClnt necesita ser accesible para todo aquel que
vaya a administrar el sistema xmail:

	cp CtrlClnt /usr/bin

Copia el guión (script) de arranque para SysV y el Manual a algún lugar 
adecuado: 

	cp xmail /etc/rc.d/init.d
	cp -p readme.txt /usr/share/xmail/Manual


Reemplazar o crear un guión (script) sendmail
---------------------------------------------

Si tus interfaces MUA (Kmail, por ejemplo, cuando envías correo) con el MTA
utilizan SMTP puedes obviar este paso por completo, pero algunos MUA necesitan 
un guión de sendmail que puedes crear de la siguiente manera.

El ejecutable de sendmail necesita que el bit SETGUID esté habilitado para
ejecutarse como root, lo que puede constituir un problema de seguridad.

Si ya tienes un guión de sendmail o un programa, quítalo del medio (el tuyo 
podría estar en /usr/bin o en algún otro lado):

	mv /usr/sbin/sendmail /usr/sbin/sendmail.orig
	
Copia el ejecutable snedmail de Xmail a un lugar adecuado y activa su bit SETUID
de modo que se ejecute como root.

	cp sendmail /usr/sbin/sendmail.xmail
	chmod +s /usr/sbin/sendmail.xmail

Crea ahora el guión de sendmail para inicializar el entorno y llamar al 
ejecutable:

	cat > /usr/sbin/sendmail << "EOF"
	#!/bin/bash
	# Este guión inicializa el entorno para el sendmail XMail y lo lanza
	# a continuación. Hace falta para que aquellos programas que esperan
	# comunicarse con sendmail puedan utilizar XMail.

	if [ -z $MAIL_ROOT ]; then
        export MAIL_ROOT=/var/MailRoot
	fi
	/usr/sbin/sendmail.xmail $*
	# End /usr/sbin/sendmail
	EOF

	chmod +x /usr/sbin/sendmail


Configurar server.tab de Xmail.
-------------------------------

Es importante dejar claro que todos los ficheros de configuración de xmail
utilizan el caracter de tabulación (tab) como separador. No emplees espacios 
o tabuladores adicionales, y cada línea de un fichero, INCLUSO LA ÚLTIMA, deben 
finalizar con un retorno de carro (return). Es por eso, aparte de por lo que
se indica a continuación, por lo que no modifico los ficheros tab directamente
y prefiero el interfaz de control, como indicaré después.

Emplea tu editor de textos favorito para modificar /var/MailRoot/server.tab 
declarando tu nombre de dominio, e indicar los nombres de los usuarios que 
deben recibir los mensajes de error y los dirigidos al administrador de correo 
(postmaster).
  
Tal como se distribuyen, los ficheros constituyen un punto de partida razonable
con un dominio llamado 'xmailserver.test' que puedes emplear para hacer pruebas
si lo deseas.

La configuración de las variables del servidor está bien descrita en la parte
12 del Manual (¡ que guardaste en /usr/share/xmail/Manual !) - o sea que mira
a ver qué necesitas en tu caso. Mi server.tab es:

"RootDomain"	"109bean.org.uk"
"POP3Domain"	"109bean.org.uk"
"PostMaster"	"root@109bean.org.uk"
"ErrorsAdmin"	"root@109bean.org.uk"
"DefaultSMTPGateways"	"smtp.your-isp.com"
"RemoveSpoolErrors"	"0"
"MaxMTAOps"	"16"
"ReceivedHdrType"	"0"
"FetchHdrTags"	"+X-Deliver-To,+Received,To,Cc"
"Pop3SyncErrorAccount"	"root@109bean.org.uk"
"DefaultSmtpPerms"	"MRVZ"

(nota: No he registrado 109bean.org.uk, ya que nunca aparece fuera de mi red
local)

Configura el fichero domain.tab de modo que contenga el nombre de tu dominio:
	"109bean.org.uk"

Crea a continuación una cuenta de 'control'. Yo llamé a la mía 'root'.  Elige
una contraseña aparente y lo bastante complicada y busca su forma encriptada
con XMCrypt. Usaré 'ciao' como ejemplo:

	/var/MailRoot/bin/XMCrypt ciao

Edita a continuación var/MailRoot/ctrlaccounts.tab para que tenga más o menos
este aspecto, en el que el segundo elemento es la cadena resultado de XMCrypt:

	"root"	"060c040a"
	
Ten en cuenta que las comillas están de verdad en el fichero, que el
separador ES un único tabulador, y que la línea termina con un retorno de 
carro. Siempre que un fichero en formato 'tab' hace referencia a una 
contrseña, se requiere una encriptada con XMCrypt. ¡Esto me dió un montón 
de problemas! 

Te hará falta al menos un usuario en /var/MailRoot/mailusers.tab, y mientras
lo modificas, aprovecha para borrar la cuenta que se usa como ejemplo denominada
'xmailuser'. Recuerda emplear XMCrypt para encontrar tu contraseña encriptada.

y con eso ya tenemos bastante para hacer que funcione XMail.

Lanzar XMail por primera vez.
-----------------------------

Lanza XMail en modo de depuración con la órden siguiente:

	export MAIL_ROOT=/var/MailRoot
	/var/MailRoot/bin/XMail -Md -Pl -Sl -Fl -Cl -Ll ...

donde ... indica cualquier otra opción que puedas elegir o necesitar - ver la 
parte 19 del Manual. (Ya que estamos, las opciones anteriores acaban con una L
minúscula, ¡algo que no se aprecia demasiado bien con determinados tipos de 
letra!).

Verás arrancar las distintas series de procesos (threads) de XMail y, si todo
parece estable, tendrás un XMail en funcionamiento. Si puedes lanzar otra
sesión en un terminal, un segundo xterm o hacer un login en otro tty, podrás
comunicarte con XMail (mira la próxima sesión) y observar la salida de los
mensajes de depuración. Cuando estés satisfecho, pulsa Ctrl-C y detén la
ejecución, contemplando cómo XMail va cerrando sus procesos con elegancia.

Instalar el guión (script) para sistemas SysV.
----------------------------------------------

Copiamos anteriormente el guión de arranque SysV a /etc/rc.d/init.d/xmail.  
Modifícalo ahora para indicar los parámetros de la órden que quieras usar 
o necesites.
La línea a modificar es la #13, y los parámetros:

	XMAIL_CMD_LINE="-Qn 4 -Pl -Sl -Fl -Cl -Ll"

la próxima versión de esta receta tendrá una versión adaptada a LFS usando
las 'funciones'.

Enlaza el guión como te parezca oportuno en el sistema de rc.d. Yo hice:

	cd /etc/rc.d
	ln -s init.d/xmail rc0.d/K27xmail
	ln -s init.d/xmail rc1.d/K27xmail
	ln -s init.d/xmail rc2.d/K27xmail
	ln -s init.d/xmail rc6.d/K27xmail
	ln -s init.d/xmail rc3.d/S43xmail
	ln -s init.d/xmail rc4.d/S43xmail
	ln -s init.d/xmail rc5.d/S43xmail

si bien en realidad lo llevé a cabo con el editor de SysV-Init de KDE3.

El propósito es cerrar xmail antes que la red, pero después de cualquier 
actividad que pueda generar tráfico en el correo, y lanzar xmail después 
de poner en marcha la red pero antes de cualquier otra cosa que pueda 
generar correo. 

Ahora puedes ejecutar el demonio xmail como Dios manda mediante:

/etc/rc.d/init.d/xmail start

lo que te devolverá el pid asignado al demonio.  A continuación puedes 
instalar el resto de tus cuentas de correo y los enlaces a los servidores
de correo de tu proveedor de acceso a Internet, y ya que le estás pidiendo 
a XMail que lo haga por tí, puedes contar con que la configuración sea
coherente.

Configurar otras cuentas de correo
----------------------------------
Teclea lo siguiente, no hace falta que seas 'root':

	/usr/bin/CtrlClnt -s 109bean.org.uk -u root -p ciao \
	useradd 109bean.org.uk newuser newpassword U
	
Por descontado, tendrás que emplear tu nombre de dominio, cuenta de 
control y contraseña en lugar de las que aparecen en el ejemplo.

En estas órdenes con CtrlClnt (Cliente de Control) NO debes usar
contraseñas encriptadas MKCrypt.

Una vez se hayan creado las cuentas de correo de los usuarios, puedes
probar a enviar correo entre ellas de forma local. Configura tu MUA, 
pongamos Mutt o Kmail, para que envíe el correo mediante smtp 
localhost:110, y lo descargue con POP3 desde '109bean.org.uk' o como
sea que se llame tu dominio, con el nombre de usuario y la contraseña 
apropiada.

Configurar la descarga de correo desde tu proveedor de acceso a Internet
------------------------------------------------------------------------
Suponiendo que tu proveedor de acceso a Internet (ISP) utiliza un servicio
POP3 a la antigua, sin encriptar, necesitas conocer tu nombre de usuario 
para entrar en el sistema (login), que será de la forma (tu-en-tu-isp) y
la contraseña (tu-contraseña-en-tu-isp) junto con la dirección del servidor
POP3.

	/usr/bin/CtrlClnt -s 109bean.org.uk -u root -p ciao \
	poplnkadd 109bean.org.uk richard \
	pop3.isp.com you-at-isp your-isp-pop-password CLR

Esto hará que se sincronicen automáticamente XMail y tu cuenta pop3
en pop3.isp.com, cada 2 minutos (120 segundos).

Para cambiar la frecuencia de sincronización a, digamos, cada 5 minutos,
tendrías que indicar el parámetro -Yi 300 (300 segundos) en  
/etc/rc.d/init.d/xmail.

Si tu ISP soporta el uso de autorización APOP, pon APOP en lugar de CLR 
en el ejemplo anterior.

Esto es todo lo que yo tuve que hacer, y me funciona. Buena suerte.