Página siguiente Página anterior Índice general

4. Áreas públicas (ECHO)

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.

4.1 Retocar ifmail

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

4.2 Activar las áreas en el INN

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.

4.3 Otros ficheros de configuración de INN

En /etc/news habrá que preparar algunos ficheros:

  1. 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:
    

  2. 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).
  3. 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.
  4. 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:::*
    

    Si queréis podéis cambiar la palabra 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. :-)
  5. 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.

4.4 Intentemos empaquetar y desempaquetar los mensajes

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):

  1. Que salgan errores más o menos graves. Puede deberse a una configuración incorrecta.
  2. Que se entreguen al grupo junk de news. Eso significa que INN no reconoce los grupos, y se debe a que hay algún problema con la definición de los grupos activos, o los nombres que figuran en el fichero de áreas. También, con un paquete procedente del Boss, puede deberse a algún mensaje que proceda de un área que no está activa en las News, porque sea nueva o nos hayamos suscrito pero no hayamos actualizado la configuración de las News.
  3. Que aparezca en los logs que han sido rechazados por INN. Esto es lo normal: INN controla si un mensaje ha pasado por él ya y en este caso es normal que lo rechace, puesto que es un mensaje que tú mismo escribiste en el mismo servidor.

4.5 Y probemos a llamar al Boss

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á:

  1. Empaquetar todo el ECHO pendiente y el NETmail.
  2. Llamar al Boss
  3. Enviar los ficheros
  4. Recibir los ficheros del Boss
  5. Desempaquetar, entregando los NETs como E-mail y los ECHO al sistema de News

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...

4.6 Cómo añadir áreas nuevas

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.

4.7 Algunas ideas sobre 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!

4.8 Un lector de noticias para Fido

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 :-)

Slrn

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.


Página siguiente Página anterior Índice general