Preparáos, porque viene lo peor :-) No obstante, si habéis llegado a enviar y recibir correctamente los NETs, os considero capaz de afrontar la siguiente fase.
Empezad por instalaros un sistema de noticias. Yo he instalado el más moderno, INN. La gente dice que C-News es más sencillo. Si elegí INN es porque viene como paquete estándar de la distribución RedHat de Linux.
Uno y otro, utilizan ficheros de configuración parecidos. INN es más potente pero más lioso cuando hay problemas. Intentaremos ver cómo configurarlo todo para recibir el correo de Fido en las news. Antes, os recomiendo que os iniciéis en el mundo de los servidores de News. Una lectura interesante es la guía de administración de redes, de Olaf Kirch, que también ha traducido el proyecto LuCAS.
Si instaláis el paquete de la distribución de RedHat, os meterá
archivos de configuración en /etc/news, ficheros de grupos
activos en /var/lib/news y os creará el directorio
/var/spool/news con algún contenido.
En el capítulo anterior nos olvidamos de las áreas de ECHO, con lo que teníamos el fichero de áreas vacío. Vamos a rellenarlo ahora.
Para ello, añadid líneas como esta:
AVISOS.R34 fido.r34.avisos fido
En cada línea, el primer campo es el nombre del área en Fido. El
segundo es el nombre del grupo de news donde vamos a guardar el
área. Y el tercero, es el tipo de distribución que le vamos a
dar (en general, se le da fido frente a world que se
le da a los grupos de USENET).
Si usáis la versión tx de ifmail, y escribís con acentos
y eñes, os recomiendo esta línea para cada área, en lugar de la anterior:
AVISOS.R34 fido.r34.avisos fido iso-8859-1 CP437
De esta forma vuestros mensajes de ECHO se exportarán con códigos del
IBM PC bajo
DOS, lo que facilitará su lectura a los usuarios de programas de correo bajo
este sistema operativo. Recordad que para los mensajes recibidos no
tenéis que tener en cuenta esto, ya que como os dije, la cabecera de
FIDO CHRS es interpretada automáticamente por vuestro
ifmail y prácticamente cualquier otro procesador de correo
Fido bajo Unix.
Nota: En versiones más recientes de ifmail-tx existen dos
parámetros del fichero /etc/ifmail/config que establecen
las traducciones de tabla de caracteres por defecto. Comprobad si en vuestra
versión original del fichero aparecen los parámetros:
defaultftnchar cp437 defaultrfcchar iso-8859-1
Para que las áreas sean aceptadas en el INN (o C-News) hay que
incluirlas en el fichero /var/lib/news/active. Para la
anterior, por ejemplo, la línea a añadir sería:
fido.r34.avisos 0000000001 0000000001 y
Además, si la añadimos al fichero /var/lib/news/newsgroups
como sigue:
fido.r34.avisos Avisos de R34
tendremos la descripción visible en programas lectores como
tin o xrn.
Ojo, no borréis de /var/lib/news/active o
/var/lib/news/newsgroups las áreas predefinidas (test, control,
junk, to y puede que alguna más) ya que posiblemente la versión que hayáis
instalado del inn las necesite y no funcione si desaparecen.
En /etc/news habrá que preparar algunos ficheros:
hosts.nntp : Son los nodos que pueden conectarse a nosotros
para entregarnos news. Lo normal es poner aquí las líneas:
localhost: dragon.micasa.es:
expire.ctl : Fichero para expiración automática de
artículos. Permite borrar los artículos más antiguos. No me voy a
extender aquí en cómo se maneja, pues creo que entre el manual
expire.ctl(5) y el propio ejemplo que viene ya es suficiente :-) (y no
es imprescindible para que recibáis los mensajes).
inn.conf: Aquí se pone el nombre de vuestro sistema
(el de vuestro punto, por ejemplo) y el de vuestro "servidor" de
news. En principio, el nombre que asignéis a la entrada
Organization: será el que se utilice como línea
Origin en Fidonet.
nnrp.access: Este fichero debe dar autorización total
de lectura y escritura de artículos, al menos a vuestra
máquina. Lógico, ¿no?. Valdrán unas líneas como:
localhost:Read Post:::* dragon.micasa.es:Read Post:::*
dragon por * y así
daréis acceso a todas las máquinas de vuestro dominio local. Será muy
interesante si tenéis varios sistemas en red local. :-)
newsfeeds: Este es el fichero más importante. Es con
el que se decide qué grupos se exportan, y a qué nodo. Es el que
permite, que podáis tener grupos locales, grupos de news en USENET
(que se exportarán al servidor de news de vuestro proveedor, mediante
SUCK) y áreas de Fido (que se exportarán a vuestro nodo). Os voy a dejar un
fichero de ejemplo que aglutina estas tres posibilidades. En él se
supone que el proveedor tiene un servidor de news llamado
news.proveedor.es y que vuestro Boss es 2:341/12 de nuevo.
## $Revision: 1.12 $
## newsfeeds - determine where Usenet articles get sent
## Format:
## site[/exclude,exclude...]\
## :pattern,pattern...[/distrib,distrib...]\
## :flag,flag...\
## :param
# Linea obligatoria
ME:*:::
# for NOV overview database, edit to put correct path to overchan
#OVERVIEW!:*:Tc,WO:/news/bin/overchan
OVERVIEW!:*:Tc,WO:/usr/lib/news/bin/overchan
# Grupos de Fidonet: Ninguno, excepto fido.*
f12.n341/f12.n341\
:!*,fido.*\
:Tf,Wfb\
:
# Grupos de Internet: Todos excepto locales (de micasa) y fido.
news.proveedor.es/news.proveedor.es\
:*,!fido.*,!micasa.*\
:Tf,Wfm\
:
Bien, con esto creo que podemos poner en marcha el servidor de
news. Seguid las instrucciones (en el INN de RedHat es tan simple como
ejecutar /etc/rc.d/init.d/inn start. No es necesario
rearrancar el equipo. Si estaba corriendo ya con la configuración
antigua, podéis empezar por llamar al script anterior pero con el parámetro
stop.)
Una vez hecho esto, escribid con un lector de News en algún grupo
existente. Si escribís a un grupo de Fido deberá generarse un fichero
f12.n341 (o con otro nombre, según sea vuestro Boss) en el
directorio /var/spool/news/out.going. Dicho fichero contiene
referencias al mensaje que acabáis de escribir. Si lo hacéis a un
grupo de USENET, aparecerá un fichero news.proveedor.es, y
si lo hacéis a un grupo local, no aparecerá ninguno. Todo esto depende
del contenido del fichero /etc/newsfeeds.
Vigilad los logs en estas operaciones, para identificar y corregir cualquier problema.
En los directorios de documentación de ifmail hay un script muy bueno
para empaquetar los mensajes para Fido y prepararlos para su
envío. Dicho script se llama send-ifmail y podéis instalarlo
en /etc/news. Según qué paquete de ifmail hayáis instalado, es
posible que el fichero anterior ya esté presente en /var/lib/news.
Para probar el empaquetado, hay que ejecutar el mencionado programa
send-ifmail
desde el usuario fnet. Os recomiendo que hagáis
que el usuario de ifmail (fnet) pertenezca también al grupo news, y
así os ahorraréis algunos problemas con los permisos.
La ejecución send-ifmail debe producir un fichero de nombre
parecido a 0155000c.tmp en un directorio similar a
/var/spool/ifmail/fidonet/0155000c.opk/. Si no aparece, es casi seguro
que se debe a problemas con los permisos.
Al ejecutar a continuación ifpack se producirá el fichero
definitivo, comprimido, de nombre 0155000c.XY0 siendo XY las
iniciales del día de la semana en Inglés. Este fichero quedará en el
directorio /var/spool/ifmail/fidonet/.
Finalmente, cuando se llame a ifcico (vía ifpoll) el
paquete comprimido se enviará al Boss.
Lo mejor es incluir la llamada a send-ifmail en una tarea de
cron o bien en el propio script ifpoll justo antes
de la llamada a ifpack. El parámetro a incluir es el nombre del
nodo: en mi caso f12.n341.
Cuando tengamos un fichero empaquetado de prueba, podemos probar a
ejecutar ifunpack con el fin de comprobar que los mensajes
que hemos exportado en pruebas se entregan al sistema de News. En este
caso solo puede pasar tres cosas (a la vista de los logs):
Si habéis completado los pasos anteriores, empaquetando y desempaquetando
correo de prueba, dirigid mensajes a las áreas locales de tu BBS y
algún NET. La llamada a ifpoll deberá:
Si algún paso falla, revisad los logs. En particular, ifmail a veces es algo silencioso con problemas de permisos: si no puede acceder a un paquete con correo pendiente, simplemente pasa de él y no lo envía, pero no genera ningún error.
Aquí ya no sé qué más decir. Si funciona, enhorabuena. Si no va, creo que los logs deberían daros suficiente información como para solucionarlo. Sé que es complicado (¡a mí me lo váis a decir!) y que hay muchos archivos de log para vigilar, pero poco más podemos hacer que trabajar cada uno por su cuenta...
Recordaréis que con FastEcho (bajo DOS) se podía tener creación automática de áreas cuando llegaba algún mensaje para áreas no definidas. Aquí aun no lo he conseguido, con lo que el proceso de suscripción al área conllevará algunas operaciones manuales:
Si el área es de USENET, en lugar de añadirla al fichero Areas de ifmail, hay que añadirla, por ejemplo, al de configuración de SUCK.
Suck es posiblemente el programa más sencillo de configurar de todos
los que vamos a ver aquí. Aunque su finalidad nada tiene que ver con Fido, lo
cuento para facilitaros la integración de Internet (news) con Fido (áreas de
ECHO). Así de paso soy coherente con haberos facilitado la conexión entre
el correo de Internet y el de Fido, con sendmail.
Por el momento, suck no se distribuye como paquete de mi distribución
(RedHat). Ignoro si se distribuye como parte de otras como Debian o Slackware,
pero voy a suponer que os habéis bajado el archivo con las fuentes, y
concretamente la versión que yo uso (suck-3.4.1.tar.gz). ¿Os parece antiguo
y no lo encontráis? Pues lo siento, este es uno de los programas que ya
ofrecen toda la funcionalidad de interés en una versión de principios de 1997,
así que en ningún momento me ha parecido necesario migrar a otra más reciente.
Lo primero que tenéis que hacer es descomprimirlo y en el directorio que os
va a generar, ejecutar el script de preparación con la orden
./configure. Una vez preparado, compilad con la orden make
CFLAGS=-O2. Los binarios resultantes, instaladlos donde os
parezca (os aconsejo /usr/local/bin).
Ahora viene ponerlo en marcha. Aunque os voy a dar unas ideas, los usuarios
más avispados habrán notado que hay en la distribución un directorio
llamado ``Spanish.docs''. ¡Sí!, en efecto, trae toda la documentación
(incluidas las páginas del manual) traducidas a nuestro idioma. De modo que no
deberá liaros mucho este programa ...
Básicamente, configurarlo es tan simple como crear un fichero con los grupos
que quieres bajarte (un grupo por línea, seguido de un número 0, que
suck alterará cada vez que contacte con el servidor de noticias de
vuestro proveedor). Por ejemplo, este fichero podría ser:
comp.os.linux.announce 0 es.comp.os.linux 0 esp.comp.so.linux 0
Este fichero deberíais guardarlo entre las librerías modificables del sistema
de noticias local. El mejor sitio es /var/lib/news. Y el mejor nombre,
sucknewsrc.vuestro.servidor.de.news. Por ejemplo, el mío se llama
/var/lib/news/sucknewsrc.noticias.ibernet.es.
Luego, hay que ejecutar los programas que trae con una serie de parámetros de
forma que, primero se conecte al servidor de noticias de vuestro proveedor
y recoja las noticias pendientes introduciéndolas en un directorio
temporal (tal como /var/spool/news/in.coming/tmp). A continuación
otro programa le dirá a vuestro inn que recoja las noticias de
ese directorio y las distribuya en los grupos correspondientes. Por último,
otro programa debería enviar los artículos que habéis escrito vosotros al
servidor de noticias de vuestro proveedor. Esto se hará correctamente si
se ha configurado bien el archivo /etc/news/newsfeed.
Lo más indicado es usar o adaptar un script como este:
#!/bin/bash
#
# SUCK: realiza un suck(1) del servidor de news pasado como primer argumento.
#
# set -x
if [ $# -ne 1 ] ; then
echo "USO: SUCK nombre.server.nntp" ;
exit 1
fi
NNTPHOST=$1
DIR_ACTIVE=/var/lib/news
DIR_INCOMING=/var/spool/news/in.coming/tmp
DIR_BATCH_IN=/var/spool/news/in.coming
DIR_BATCH_OUT=/var/spool/news/out.going
mv $DIR_BATCH_OUT/$NNTPHOST $DIR_BATCH_OUT/${NNTPHOST}.out
/usr/lib/news/bin/ctlinnd flush $NNTPHOST
echo "Recibiendo mensajes desde $NNTPHOST"
suck $NNTPHOST \
-c \
-dt $DIR_ACTIVE \
-dm $DIR_INCOMING \
-dd $DIR_ACTIVE \
-p .$NNTPHOST \
-bi $DIR_BATCH_IN/${NNTPHOST}
echo "Enviando mensajes a $NNTPHOST"
rpost $NNTPHOST \
-M -S /tmp/rpost$$ \
-b $DIR_BATCH_OUT/${NNTPHOST}.out \
-f /usr/lib/news/bin/filter.NNTP-Posting-Host $\$o=/tmp/FILTER_MSG \
$\$i /tmp/FILTER_MSG
echo "Descargando mensajes"
/usr/lib/news/bin/innxmit news.bsoft.org $DIR_BATCH_IN/$NNTPHOST
Lo mejor es que este script se instale en /usr/lib/news/bin.
Además, otro script, filter.NNTP-Posting-Host, deberá instalarse
en /usr/lib/news/bin. Este filtro evita que el servidor de noticias
del proveedor reciba vuestros mensajes como escritos desde vuestra máquina.
Cuando ésta no forma parte permanente de Internet, los artículos podrían
ser rechazados. Este script es una simple orden de sed que elimina
las líneas NNTP-Posting-Host y Xref de la cabecera,
y es el siguiente:
#!/bin/sh
# this is just a simple script to use sed to strip off the
# NNTP_Posting_Host and Xref headers that my ISP's newsfeed
# doesn't like. this could be written as a one liner
# sed -e SEDCMD1 $1 | sed SEDCMD2 > $2
# set -x
if [ $# -ne 2 ]; then
echo
echo "Usage `basename $0` infile outfile <RETURN>"
echo
exit -1
fi
SEDCMD="/^NNTP-Posting-Host/d"
SEDCMD2="/^Xref/d"
OUTFILE=$2
INFILE=$1
if [ -f ${INFILE} ]; then
sed -e ${SEDCMD} ${INFILE} | sed -e ${SEDCMD2} > ${OUTFILE}
if [ $? -ne 0 ]; then
echo "Error"
exit -1
fi
else
echo "$1 does not exist"
exit -1
fi
Ya solo queda ejecutar el script SUCK desde el usuario news
cuando estemos conectados a Internet y ... ¡que la fuerza os acompañe!
Ya os dije antes que para leer las áreas de ECHO valía cualquier lector de noticias. Entonces, ¿para qué seguir insistiendo? Bien, quien lleve tiempo leyendo áreas de Fido con un lector tipo GoldED sabrá que todos estos editores son más cómodos y adecuados para esta red... Es cierto que se anuncia desde hace tiempo un GoldED para Linux, pero muy probablemente manejará bases de mensajes clásicas de Fido (JAM por ejemplo) y no creo que implante el protocolo del servidor de noticias.
Otro editor especial para Fido en Unix es el fmbedit, que forma
parte del paquete Feddi, que tan perfectamente bien mantiene Manuel
Soriano. Sin embargo este programa sigue orientado a manejar bases de
mensajes propias.
Lo mejor que he encontrado hasta la fecha es el lector de noticias
tin-1.3-unoff. En resumen, presenta las ventajas tradicionales
del tin como sencillo pero funcional lector de noticias; pero
además se han añadido mejoras orientadas a Fido: coloración automática
de las acotaciones, respuestas personalizadas, líneas de cabecera
X-Comment-To que a ifmail le sirven para dirigir un mensaje
público a una persona, etc.
Instaláos esa versión y fijáos en los ficheros de configuración que trae de ejemplo para Fido. Acabará siendo vuestro lector preferido, ya veréis :-)
Además de tin, también existe slrn. Es un lector de news
bastante completo, que se puede adaptar para reconocer (y exportar) las
cabeceras X-Comment-To mencionadas antes. Para ello, hay que crear
un fichero de "score", de "puntuación", que marque con puntuación máxima los
mensajes dirigidos a ti. Estos mensajes aparecerán con un símbolo de
admiración ("!") a la izquierda.
Para esto, hace falta añadir unas líneas como éstas al fichero
.slrnrc:
% Para que los nuevos mensajes vayan dirigidos a "All": set custom_headers "X-Comment-To: All\n" % Para que los mensajes de respuesta vayan con la cabecera X-Comment-To: set followup_custom_headers "X-Comment-To: %r\n" set reply_custom_headers "X-Comment-To: %r\n" % Nombre del fichero de "score": scorefile ".slrn-score"
Y ahora crearíamos un fichero .slrn-score tal que así:
[fido.*] score: 9999 X-Comment-To: Perico\ Delos\ Palotes
La primera línea especifica el ámbito de la puntuación (es decir, en qué newsgroups se va a aplicar). Las barras invertidas ("\") en el campo "X-Comment-To" son para "escapar" los espacios.
Nota: Esta sección sobre slrn ha sido escrita por
Roberto Suárez Soto, a quien podéis localizar para lo que sea en
rss-trgn@usa.net.