jjamor@ls.fi.upm.es
(fido 2:341/12.19)
Me gusta el riesgo. Eso me animó hace tres años a hacerme punto de Fidonet por la vía difícil (FrontDoor + FastEcho + GoldED). Luego me dio por los sistemas operativos de línea de comandos (Unix sin ventanas, ya me entendéis ;-) ). Me envicié con el Linux, y claro, llegó la hora de gestionar el correo de Fido desde Linux, y no me iba a quedar con el método fácil ...
Pero configurar el sistema de correo bajo Unix es como mil veces más difícil que hacerlo en DOS. Uno tiene que aprender a configurar, no dos, sino hasta cinco programas que no tienen nada que ver el uno del otro. Hay que lidiar con la escasa documentación que cada aplicación trae, juntarlo todo armoniosamente y finalmente lograr que funcione. Confieso que eso me hizo echarme atrás en varias ocasiones... hasta que vino la ayuda del cielo.
Ramón Gutiérrez, antiguo moderador de la (mejor) área de Fidonet, R34.LINUX, me pasó todos sus ficheros de su configuración, que a él le funcionaba a medias. Con ellos me puse y aquí estamos.
Tengo que decir que este documento va dirigido a los puntos interesados en gestionar todo el tema desde Unix. Por lo tanto, asumo que ya se es punto y se conoce de qué va el tema de Fidonet. Hace tiempo que escribí un documento sobre cómo hacerse punto bajo MS-DOS, que igual le interesa a alguien que aun no lo haya hecho ... lo tenéis en http://lml.ls.fi.upm.es/~jjamor/intropnt.txt.
Antes de entrar a ver qué programas hay que configurar, intentaremos deducirlo siguiendo el camino que recorren los mensajes desde que son escritos.
Empecemos con los NETs, los mensajes privados. En Unix, los NETs
se van a convertir en correo de Internet, es decir, va a quedar
almacenado en el buzón del usuario, /var/spool/mail/usuario
. Y
para escribir un NET se usan los programas de correo habituales, eligiendo
una dirección de Fido en formato Internet (por ejemplo,
Juan.Jose.Amor@p19.f12.n341.z2.fidonet.org ).
Cuando escribimos un mensaje, éste es enviado al
sendmail
, quien debe estar configurado para enviar a Fido solo
los mensajes de Fido (es decir, los mensajes para el dominio fidonet.org).
Los demás irán a Internet. Lo que sendmail hace es enviar el mensaje al
conversor Internet <-> FidoNet, ifmail.
Cuando recibimos un paquete con NETs, ifmail se encarga de convertirlos a mensajes de Internet y entregárselos a sendmail.
Vamos ahora con las áreas de ECHO. En Internet, el equivalente es
USENET (las news). Por lo tanto, necesitamos un lector de News, que puede
ser, el pine, el tin o incluso el Netscape. Cuando escribamos un artículo,
éste es enviado a un servidor de news que habrá que configurar (INN).
Luego, a la hora de empaquetar los mensajes, se llamará a un script que,
ejecutando ifnews
, dejará los paquetes listos para su envío al
nodo de Fido.
Vamos a tener que aprender a tocar la configuración de unos cuantos programas. De la sección anterior se deducen los siguientes:
pine
) y tal vez un lector de noticias
(el propio pine
te vale, aunque igual os gusta más el
tin
).
O sea, además de entender de qué va esto de hacerse punto (que no es poco) habrá que entendérselas con el críptico sendmail.cf y con los ficheros de INN. Si además se quieren tener News de Internet, habrá que pelearse con otro programa (¡otro!), el SUCK.
Casi nada. En fin, vayamos por partes.
Ante todo, mucha calma. Mientras no consigáis enviar y recibir NETs, mejor que no paséis la página. Bien, sigamos.
Antes de entrar en los ficheros de configuración, tengo que haceros ver cómo una dirección de Fidonet se expresa en Internet. Es importante para las siguientes secciones, así como para saber escribir un NET.
Bien, empecemos. Como sabéis, una dirección de Fidonet contiene información de zona, región, net, nodo y opcionalmente punto. Esto se nota así: ZONA:REGIÓN+NET/NODO o ZONA:REGIÓN+NET/NODO.PUNTO.
Por ejemplo, mi dirección de punto es 2:341/12.19 y la del nodo de mi BBS, 2:341/12 (nodo que llamamos Boss).
En Internet, una dirección de nodo se notará como:
fNODO.nREGION+NET.zZONA.fidonet.org
o bien:
pPUNTO.fNODO.nREGION+NET.zZONA.fidonet.org
Así, mi máquina será conocida en Fidonet como:
p19.f12.n341.z2.fidonet.org
Y yo, como usuario de mi máquina seré conocido como:
Juan.Jose.Amor@p19.f12.n341.z2.fidonet.org
Un mensaje dirigido al usuario anterior quedará convertido en un mensaje dirigido al usuario "Juan Jose Amor" del punto 2:341/12.19
Sobre sendmail podía tirarme varias horas escribiendo, pero para eso ya hay un buen tocho escrito (de O'Reilly, creo). Así que creo que lo mejor es proporcionar aquí mismo un fichero sendmail.cf, que sirve para una configuración típica, con conexión a Internet y Fidonet, e incluso una pequeña Intranet local.
Supongamos que vuestra máquina se llama DRAGON, y vuestro dominio ficticio (de Intranet) lo habéis llamado, MICASA.ES. Aquí tenéis un fichero sendmail.cf que te servirá para mandar correo de la siguiente forma:
Algunas observaciones sobre este fichero: en principio, no necesita que exista un servidor de nombres (DNS) disponible. No obstante, yo tengo uno local así que igual os da algún problema...
Por otra parte, si recibís este documento en un formato distinto al original (SGML) puede que los caracteres de tabulación que existen en sendmail.cf se hayan convertido en espacios. Por desgracia, así no os funcionará el fichero, de modo que tendréis que convertir a mano, los separadores de las reglas a tabuladores.
En la línea referente al nodo del proveedor (donde aparece la IP del mío, 194.224.28.2) debéis poner la IP del vuestro, claro :-). En la línea referente a Fidonet, debéis codificar el nombre del nodo al que llamáis. En mi caso, 2:341/12 se traduce a f12.n341.z2 (observad la línea del fichero sendmail.cf. Como véis, esto hace la función del fichero route.fe en FastEcho u otro procesador de correo de Fido bajo DOS: esta línea determina entregar todos los NETs vía el nodo elegido). Además, si no tenéis Internet o red local propia, podéis comentar las líneas correspondientes de la regla 0.
Una vez instalado el nuevo /etc/sendmail.cf, debéis reiniciar el
demonio. Lo mejor es que lo matéis y lo relancéis de nuevo (enviarle la
señal SIGHUP no funciona en todas las versiones). Hasta que no hagáis
esto, tu nuevo sendmail.cf no será reconocido. Podéis comprobar que lo
habéis logrado lanzando el demonio y a continuación ejecutar
telnet
al puerto 25. Debéis ver una referencia a la versión del
sendmail.cf
, BS-3.1 en la línea de bienvenida. Luego,
escribid quit
para salir:
$ telnet dragon.micasa.es 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 dragon.micasa.es ESMTP Sendmail 8.7.6/BS-3.1 ready at Tue, 22 Apr 1997 11:56:31 +0200 quit 221 dragon.micasa.es closing connection Connection closed by foreign host. $
Si tenéis algún problema con el comando telnet
(en
particular, os responde con un Connection refused
) es porque el
demonio no ha podido mantenerse tras el cambio en el sendmail.cf. El
motivo es un error en dicho fichero, así que será el momento de repasarlo
para luego volver a lanzar el sendmail
. Los logs que este
programa habrá dejado os darán una pista acerca de la causa del problema.
################################################################################ ##### ##### ##### Fichero de Configuracion de SENDMAIL ##### ##### ##### ##### Realizado por: Juan Jose Amor, 2:341/12.19 ##### ##### a partir del fichero FI-4.1 del Centro de Calculo de la ##### ##### Facultad de Informatica de Madrid, U.P.M. ##### ##### ##### ##### 04-08-97 ##### ##### ##### ################################################################################ # RCS: $Id: sendmail.cf,v 1.3 1997/04/08 11:34:02 jjamor Exp jjamor $ # Version de Sendmail DVBS-3.1 ################################################################################ # Definicion del Dominio # ################################################################################ # Dominio Local DOdragon DQmicasa DRes # Nombre del Dominio Oficial de la Maquina Dj$O.$Q.$R # Sinonimos Cw $w ################################################################################ # Macros Especiales # ################################################################################ # Mi nombre DnMAILER-DAEMON # Cabecera en formato UNIX DlFrom $g $d # Caracteres para delimitacion (operadores) Do.:%@!^=/[] # Formato del nombre completo Dq$g$?x ($x)$. # Mensaje de SMTP De$j Sendmail $v/$V ready at $b ################################################################################ # Opciones # ################################################################################ # Fichero de Alias OA/etc/aliases # Fichero de Ayuda OH/usr/lib/sendmail.hf # Fichero de estado OS/etc/sendmail.st # Nivel de log OL9 # Copia al Postmaster en caso de error OPPostmaster # Directorio de colas de mensajes OQ/var/spool/mqueue # Intervalo de "timeout" en la cola OT8d # No conectar en caso de mucho trafico OX12 # Modo de funcionamiento Odb # Modo de gestion de errores Oep # GID por defecto Og1 # Enviamelo tambien en caso de utilizacion de alias Om # Por defecto, los mensajes en estilo tradicional Oo # No admite EXPN ni VRFY Opnoexpn,novrfy # "Timeout" de lectura Or5m # Arranca la cola antes de enviar un mensaje, Os # UID por defecto Ou1 # Encolar en caso de mucho trafico Ox8 # Numero maximo de vueltas antes de decidir que estamos en un bucle de correo Oh17 ################################################################################ # Precedencia de Mensajes # ################################################################################ Pfirst-class=0 Pspecial-delivery=100 Pjunk=-100 ################################################################################ # Usuarios Validados # ################################################################################ #Troot #Tdaemon #Tuucp #Tnetwork ################################################################################ # Formato de las Cabeceras # ################################################################################ H?P?Return-Path: <$g> HReceived: $?sfrom $s $.by $j ($v/$V) $b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> ################################################################################ ##### ##### ##### REGLAS DE REESCRITURA DE DIRECCIONES ##### ##### ##### ################################################################################ ################################################################################ ##### ##### ##### REGLA CERO ##### ##### ##### ################################################################################ S0 # Gestiona casos especiales R@ $#local $:$n # Filtra casos miscelaneos R$*<$*.> $1<$2> R$+<@> $@$>0$1 # Maquina local: entregar a buzon local de usuario R$+<@$j> $#local $:$1 # Desactivar si no queremos que esta maquina sea "maestra de dominio" R$+<@$Q.$R> $#local $:$1 # Maquina local: entregar a buzon local de usuario R$+<@$*$O.$Q.$R> $#local $:$1 # Maquina del dominio local: entregar directamente (por la Ethernet) R$+<@$*$Q.$R> $#tcp $@$2$Q.$R $:$1<@$2$Q.$R> # Dominio fidonet.org: entregar a ifmail (Mfido) R$*<@$+.fidonet.org>$* $#fido $@f12.n341.z2 $:$1<@$2.fidonet.org>$3 # Cualquier otra direccion, al nodo del proveedor (relevo) para su tramitacion R$+ $#tcp $@[194.224.28.2] $:$1 ################################################################################ ##### ##### ##### REGLA 1 - Reescritura del Campo Origen ##### ##### ##### ################################################################################ S1 ################################################################################ ##### ##### ##### REGLA 2 - Reescritura del Campo Destino ##### ##### ##### ################################################################################ S2 ################################################################################ ##### ##### ##### REGLA 3 - Paso de la Direccion a Forma Canonica ##### ##### ##### ################################################################################ S3 # Gestion del caso especial "from:<>" R<> $@@ # Canonizacion basica R$*<$+>$* $2 # Encaminamiento norma RFC 822 R@$+:$+@$+ $:$1,@$3!$2 R$+,@$+ $1!$2 # El delimitador @ indica precedencia R$+@$+ $:$1<@$2> R$+<$+@$+> $1$2<@$3> R$+<@$+> $@$>5$1<@$2> # Trata el delimitador ! R$+^$+ $1!$2 R$-!$+ $@$>5$2<@$1.uucp> R$+!$+ $@$>5$2<@$1> # % es una precedencia inferior a @ R$+%$+ $:$1@$2 R$+@$+%$+ $1%$2@$3 R$+@$+ $@$>5$1<@$2> # Correo local R$+ $@$>5$1<@$j> ################################################################################ ##### ##### ##### REGLA 4 - Reescritura salida final ##### ##### ##### ################################################################################ S4 # Extrae informacion relativa al dominio local R$*<$+>$* $1$2$3 ################################################################################ ##### ##### ##### REGLA 5 - Cualifica Completamente la Direccion ##### ##### ##### ################################################################################ S5 # Maquinas locales R$+<@$*$O> $@$>6$1<@$2$j> R$+ $@$>6$1 ################################################################################ ##### ##### ##### REGLA 6 - Resuelve sinonimos ##### ##### y elimina encaminamientos locales ##### ##### ##### ################################################################################ S6 # Elimina redundancias de nombres de maquinas locales R$+@$+<@$j> $@$>3$1@$2 R$+!$+<@$j> $@$>3$1!$2 R$+%$+<@$j> $@$>3$1%$2 ################################################################################ # Especificacion del programa local de gestion de correo # ################################################################################ Mlocal, P=/usr/local/sbin/deliver, F=lsDFMShP, S=10, R=20/40, A=deliver $u Mfido, P=/usr/lib/ifmail/ifmail, F=mSDFMuC, S=11, R=21, A=ifmail -l -1 -r $h $u # # NOTA: Si su sistema va a ser pasarela 'oficial' de mensajes entre Fido e # Internet, se recomienda eliminar la opcion '-l -1' donde pone: # A=ifmail -l -1 -r $h $u en la linea anterior # Mprog, P=/bin/sh, F=DFMPelsu, S=10, R=10, A=sh -c $u S10 R$*<@$j> $@$1 ################################################################################ # Especificacion del gestor de correo SMTP/IPC # ################################################################################ Mtcp, P=[IPC], F=CDFMXmsu, S=11, R=11, A=IPC $h S11
Vamos a tratar aquí qué partes de ifmail
hay que tocar
para hacer funcionar el NETmail. Luego nos meteremos con las áreas de
ECHO. Paciencia.
Personalmente, si usáis RedHat os aconsejo que empecéis por
instalaros el paquete rpm
de ifmail
(versiones
tx) que podréis encontrar en cualquier mirror de
sunsite.unc.edu
. Si no usáis RedHat, aun os debo recomendar el
ifmail
versión tx en formato tar
, ya que está
mucho mejor preparado para FidoNet que el ifmail
original. Una
vez instalado podréis configurar vuestros ficheros, que estarán en
/etc/ifmail.
Básicamente son dos los ficheros que hay que tocar:
El fichero config
es el primero que hay que tocar. Creo
que hay opciones obvias (logfile, debugfile) y no os las voy a explicar
por eso. Tenéis otras que son del estilo de las de FrontDoor (o incluso
más sencillas). Aquí os dejo un fichero ejemplo config
comentado
para que hagáis el vuestro.
# Fichero de configuracion de ifmail (ifmail+ifnews+ifcico) # En esta version para RedHat, debe estar en /etc/ifmail/config # Cualquier linea que empiece con un caracter '#' es un comentario # Fichero de log logfile /var/log/ifmail/iflog # Fichero para depuracion. debugfile /var/log/ifmail/ifdebug # Nivel de informacion de depuracion. 0 Para ninguno. En pruebas, poner 4. verbose 0 # Direccion principal de Fido address 2:341/12.19 # AKAs: address 93:341/12.19 # address 2:341/14.119 # Passwords de inicio de sesion EMSI y yoohoo. password 2:341/12.19 SI_HOMBRE_COMO_QUE_TE_LA_VOY_A_DECIR # Passwords para paquetes (no suelen usarse). #packetpasswd 2:5929/6 AZERTY # Alias del sistema. Para convertir nombres de usuario a nombres de Fido # Por ejemplo, saber que un mensaje de 'jpgarcia' procede de # Juan Perez Garcia. sysalias /etc/aliases # Nombre completo del sistema (FQDN) myfqdn dragon.micasa.es # Directorio para los paquetes y ficheros entrantes: inbound /var/spool/ifmail/inb # Directorios para sesiones "listed" y "protected" listinbound /var/spool/ifmail/inb protinbound /var/spool/ifmail/inb # Directorio para paquetes salientes. outbound /var/spool/ifmail/fidonet # Directorio con los ficheros de "file-request" (de interes solo para # quien gestione una BBS con este software). public /home/ftp/pub # Fichero que establece correspondencia entre nombres de ficheros cortos # y nombres con ruta completa. Opcion para sistemas que acepten "filereq" # reqmap /usr/local/lib/fnet/reqmap # Directorio para nombres "magicos" de ficheros. Para sistemas con "filereq" magic /usr/lib/ifmail/magic # Lista de nodos primaria. Se expande a extension de dia juliano (".NNN") # automaticamente si es necesario. nodelist /var/spool/ifmail/nl.d/REGION34 # Lista de nodos para otros dominios. Aqui podemos meter la lista de puntos. # Se incluye el nodo que genera dicha lista (2:341/14 en este momento). nodelist ptlstr34 2:341/14@fidonet # Traducciones de dominios. domtrans .fidonet .fidonet.org # Base de datos de alias para las lineas ocultas # ^aREPLYADDR y ^aREPLYTO database /var/spool/ifmail/ifdbm # Fichero con numero de secuencia (usado para generar IDs unicos) sequencer /var/spool/ifmail/seq # Fichero de areas de ECHO areas /etc/ifmail/Areas # Nombres de grupos cuyos mensajes no se entregaran a Fido. badgroup relcom.ads. badgroup relcom.commerce. # Limitacion en el numero de grupos que pueden aparecer en la cabecera # Newsgroups. Si se excede, el articulo no se mandara a Fido. Si se omite # la opcion, no supondra limite alguno. #maxgroups 10 # Directorio con las tablas de traduccion de caracteres. maptabdir /etc/ifmail/maptabs # Linea de comandos para entregar NETs con sendmail, y mensajes publicos # con news (INN). sendmail /usr/lib/sendmail -f $F $T rnews /usr/bin/rnews # Programa de desempaquetado iftoss /usr/lib/ifmail/iftoss # Descompresores. # $F se convierte en el nombre del fichero. unzip /usr/bin/unzip -Lojq $F unarj /usr/bin/unarj e $F unlzh /usr/bin/lha xiq $F unarc /usr/bin/unpack $F unzoo /usr/bin/zoo -extract $F # unrar /usr/bin/unrar e $F unrar /usr/local/bin/rar e $F # Compresor. Yo uso RAR, a lo mejor te interesa el ZIP. # $F es el nombre del fichero, $P es el nombre de los paquetes. #packer /usr/bin/zip -q9 $F $P packer /usr/local/bin/rar a $F $P # Tama~no maximo de un paquete comprimido de correo. ifpack lo partira # en varios si este tama~no es superado. maxfsize 500000 # Tama~no maximo de un paquete .pkt. Se partira en varios si se supera. maxpsize 30000 # Tama~no maximo de un mensaje cuando se permite auto-fragmentacion de # mensajes grandes. maxmsize 12300 # Casos en los que no se aplican los limites de tama~no de paquete. El caso # "m" se refiere a los Nets. nonpacked cm # Logs de News, y base de datos temporal para lineas "seen-by" newslog /var/log/news/ifmail/ msgidbm /tmp/ifmsgids # Base de datos de traduccion MSGID <-> Message-ID para crear cabeceras # References: correctas (util con lectores de news que manejen threads) refdbm /tmp/ref_db # OPCIONES PARA EL MODEM Y DEFINICION DEL SISTEMA DE PUNTO # Ver ejemplos incluidos con ifmail para mas detalle # # Aqui se incluye una configuracion basica para modems 14.4K # # Puerto del modem (nombre del dispositivo de /dev) y velocidad del puerto ModemPort modem:L38400 # Traduccion de telefonos desde las listas de nodos. Muy similar a la # que se utiliza en FrontDoor. Aqui aparece configurado para un usuario # de Madrid (prefijo 91). PhoneTrans 34-1 / PhoneTrans 34- / 9 # Secuencias de inicio del modem (adaptar a tus necesidades) ModemReset AT&F\r ModemDial ATDT\T\r # Si tienes acceso a otro nodo con alguna peculiaridad... (como yo :-) ) #ModemDial (address 2:341/41) ATX2B9M0S7=60S11=60DT\T ModemHangup ATZ\r ModemOK OK ModemConnect CONNECT ModemError BUSY ModemError NO\sCARRIER ModemError NO\sDIAL ModemError RING\r ModemError ERROR # Tiempos de expiracion, respectivamente de espera a mensajes OK y CONNECT TimeoutReset 3 TimeoutConnect 70 # Delay in seconds before every call in "automatic" mode. Ignored # if explicit list of addresses specified in the command string. DialDelay 0 # Datos EMSI para este nodo. Name Nombre del Punto Location Madrid - Spain SysOp Nombre del sysop Phone -Unpublished- Speed 14400 Flags V32,V42,V42B
Seguro que estáis deseando de ver que lo que habéis configurado sirve para algo. Yo también: si no os funciona, pasar al siguiente capítulo sería inútil...
Bien, en principio, enviar un NET es tan simple como coger vuestro programa de correo preferido y escribirlo. Ya sabéis, utilizando una dirección de Fido al estilo Internet.
Una prueba que podéis hacer es mandarte un NET a ti mismo, para que os hagáis la idea de cómo funciona. Así que suponed que sois el punto 2:341/12.89 (o sea, un punto del mejor Boss que conozco ;-) ). Y supongamos que vuestro nombre es Juan Pérez.
Para enviar el NET, dirigid el mensaje a
Juan.Perez@p89.f12.n341.z2.fidonet.org
. Podrán pasar varias
cosas:
/etc/sendmail.cf: line 166: replacement
$7 out of bounds
. Normalmente, esto significa un error grave
en el sendmail.cf. Revisad su contenido. Puede ocurrir que como separador
se estén usando espacios en lugar de tabuladores.
From: MAILER-DAEMON (Mail Delivery Subsystem) Subject: Returned mail: Service unavailable [...] ----- The following addresses have delivery notifications ----- Juan.Perez@p89.f12.n341.z2.fidonet.org (unrecoverable error) ----- Transcript of session follows ----- 451 Cannot exec /usr/lib/ifmail/ifmail: No such file or directory 554 Juan.Perez@p89.f12.n341.z2.fidonet.org... Service unavailable
Network unreachable
). En
este caso, revisad el fichero sendmail.cf, algo hay mal escrito, que evita
la entrega de los mensajes de Fido a ifmail. ¡Ah!, después de arreglarlo,
no os olvidéis de borrar la cola (ficheros de /var/spool/mqueue/) o de lo
contrario, el mensaje anterior se acabará encaminando por las pasarelas
Internet<->Fido que pululan por ahí (deberíais saber que su uso
indiscriminado no es recomendable...).
Apr 20 13:50:45 dragon sendmail[1723]: NAA01723: from=jperez, size=1912, class=0, pri=31912, nrcpts=1, msgid=<199704201150.NAA01723@dragon.micasa.es>, relay=f12.n341 Apr 20 13:50:46 dragon sendmail[1728]: NAA01723: to=Juan.Perez@p89.f12.n341.z2.fidonet.org, ctladdr=jperez (9/13), delay=00:00:02, xdelay=00:00:01, mailer=fido, stat=Sent
Si habéis conseguido que se entregue el correo a ifmail, podéis comprobar
que se ha creado un paquete mirando el directorio
/var/spool/ifmail/fidonet
. Allí deberíais encontrar un fichero
con un nombre parecido a 0155000c.out
. Si no aparece, puede que
ifmail no haya podido escribir ahí por problemas de permisos, o que el
fichero /etc/ifmail/config esté mal escrito. En este punto os será de
ayuda echar un vistazo a los logs disponibles en
/var/log/ifmail/
.
Ahora podéis ver cómo ese paquete se convierte de nuevo en correo de
Internet. Para ello, movedlo a /var/spool/ifmail/inb
y ejecutad
desde el usuario fnet
(propietario de todos estos ficheros) el
comando /usr/lib/ifmail/iftoss
. El mensaje deberá ser entregado
de nuevo a sendmail
. Y sendmail
lo entregará al usuario
cuyo nombre completo (el que aparece en el comando
finger
) coincida con el destinatario del mensaje Fido.
Una vez hechas estas pruebas, vamos a intentar llamar al Boss. Para ello,
mandadle un mensaje como hemos hecho antes. A continuación, os recomiendo
que copiéis el script ifpoll
que viene en la
documentación, en el directorio donde están los binarios de ifmail. Este
script está para empaquetar los mensajes y llamar cíclicamente a tu Boss
hasta conseguir una conexión.
Editad el fichero ifpoll, poniendo los datos de vuestro nodo. En particular, necesitaréis tocar las líneas siguientes (que he rellenado con los datos del sistema ficticio, punto de 2:341/12):
NODE="f12.n341.z2.fidonet.org"
(el nodo del Boss)IFCICO_SYSOP=jperez@dragon.micasa.es
(la direccion local)Antes de ejecutar, tenéis que compilar la lista de nodos. Coloca en
/var/spool/ifmail/nl.d
un par de ficheros de nodos y puntos
recientes (REGION34.XXX
y ptlstr34.YYY
). Ejecuta, desde
el usuario propietario de los ficheros de este directorio, el comando
/usr/lib/ifmail/ifindex
para compilarlos. Te generará un par de
ficheros, index.dir
e index.pag
.
Os recuerdo que REGION34.XXX
no es una nodelist
verdadera, con lo que para que funcione correctamente, muy probablemente
tendréis que poner al principio del fichero anterior, las siguientes
líneas, para luego compilarlo con ifindex
:
Zone,2,Europe_etc,Finland,Ron_Dwight,358-0-2983308,9600,CM,V32B,HST,V42B,XA ,999,I_Gate,Nobody,Nowhere,-Unpublished-,9600,CM ;
A continuación, ejecutad ifpoll
. Vigilad los logs del sistema.
Empezarán a aparecer mensajes. Os muestro aquí un log de conexión
correcta:
Apr 3 23:25:51 dragon ifcico[649]: calling 2:341/12@fidonet (Corben, phone 34-1-5702555) Apr 3 23:25:51 dragon ifcico[649]: chat got "OK", continue Apr 3 23:26:13 dragon ifcico[649]: chat got "CONNECT", continue Apr 3 23:26:15 dragon ifcico[649]: start outbound EMSI session Apr 3 23:26:16 dragon ifcico[649]: remote address: 2:341/12@Fidonet Apr 3 23:26:16 dragon ifcico[649]: remote address: 2:34/777@Fidonet Apr 3 23:26:16 dragon ifcico[649]: remote address: 37:1/5001@TrekNet Apr 3 23:26:16 dragon ifcico[649]: remote address: 93:341/102@Subnet Apr 3 23:26:16 dragon ifcico[649]: remote address: 9:3410/23@Virnet Apr 3 23:26:16 dragon ifcico[649]: remote address: 9:3410/24@Virnet Apr 3 23:26:16 dragon ifcico[649]: remote address: 2:341/41@Fidonet Apr 3 23:26:16 dragon ifcico[649]: remote address: 37:1/5000@TrekNet Apr 3 23:26:16 dragon ifcico[649]: remote password: SI_HOMBRE_COMO_QUE_TE_LA_VOY_A_DECIR Apr 3 23:26:16 dragon ifcico[649]: remote uses: FrontDoor [0c] version 2.20c.mL/BR000086 Apr 3 23:26:16 dragon ifcico[649]: remote system: TIPTOP Gate R34 - TrekNet Gate (R34) Apr 3 23:26:16 dragon ifcico[649]: remote location: Madrid !!!BASTA YA!!! Apr 3 23:26:16 dragon ifcico[649]: remote operator: Enrique Lopez Apr 3 23:26:16 dragon ifcico[649]: remote phone: +341 5702555 341 5712437 Apr 3 23:26:16 dragon ifcico[649]: remote baud: 28800 Apr 3 23:26:16 dragon ifcico[649]: remote flags: V32B,V42B,V34,ARQ,FAX,CM,XA,LO Apr 3 23:26:16 dragon ifcico[649]: remote tag: "FDREV" value: "[2MY4J]" Apr 3 23:26:16 dragon ifcico[649]: remote time: Apr 03 22:25:22 Apr 3 23:26:16 dragon ifcico[649]: start ZedZap send Apr 3 23:26:19 dragon ifcico[649]: zmodem send: "0000015c.out" 2259 bytes Apr 3 23:26:18 dragon ifcico[649]: zmodem send rc=0 Apr 3 23:26:18 dragon ifcico[649]: start ZedZap receive Apr 3 23:26:19 dragon ifcico[649]: zmodem receive: "01165d15.pkt" 2259 bytes dated Apr 04 00:25:26 mode 100400 Apr 3 23:26:20 dragon ifcico[649]: received 2259 bytes in 1 seconds (2259 cps) Apr 3 23:26:20 dragon ifcico[649]: zmodem receive: "49b0f5c0.mo0" 410408 bytes dated Apr 03 23:47:36 mode 100400 A [...] Apr 3 23:30:26 dragon ifcico[649]: zmodem receive rc=0 Apr 3 23:30:27 dragon ifcico[649]: got SIGHUP
Como véis, se parece mucho a un log de conexión de FrontDoor. Así que supongo que lo entenderéis.
Si todo va bien, en el log aparecerá, después de la llamada, la parte correspondiente al desempaquetado: vigilad el log, pues igual surge algún error. De momento, como no habéis configurado las news, todos los mensajes de ECHO se perderán, pero sí se entregarán los NETs. Todo esto lo veréis con claridad en los logs.
Mucho ojo: vuestro sistema es desde ahora mismo una pasarela entre Internet y FidoNet. O sea, si alguien envía un mensaje al usuario UUCP de vuestro sistema, ifmail entenderá que la primera línea del mensaje es un destinatario de Internet: como consecuencia, el mensaje lo mandará a sendmail para que lo encole para Internet.
Llegado a este punto, lo típico es contactar con el Boss para que compruebe si le ha llegado el NET, y si sus respuestas te llegan. Cuando lo consigas, será el momento de pasar al siguiente capítulo.
Una de las ventajas de gestionar el correo de Fido desde Unix es la posibilidad de que varios usuarios del sisteman usen la dirección Fidonet. Por ejemplo, en mi sistema me pueden interesar las direcciones de fido, Juan Jose Amor,2:341/12.19 y Jose Gomez Diez,2:341/12.19 (otro punto de CORBEN y que además tiene cuenta en mi sistema).
El problema es establecer la correspondencia entre nombres de usuario de Fido (Jose Gomez Diez) y del sistema Unix (jfg o jjamor).
Existe un truco evidente para quien conozca sendmail
:
editar el fichero /etc/aliases
para establecer la correspondencia
entre el nombre de Fidonet y el usuario de Unix. No os olvidéis de
ejecutar newaliases
cuando editéis el fichero anterior.
Supongo que habrá algún otro método más, sin embargo el que más me
gusta es el siguiente: ifmail
mantiene una base de datos
dbm
en /var/spool/ifmail/ifdbm.*
. Dicha base de datos
establece la relación existente entre los nombres Fido y las direcciones
de Internet. Cada vez que ifmail
recibe por Internet (desde
sendmail
) un mensaje para Fido, obtiene del campo From:
el nombre completo, si existe, y guarda la relación en la base de datos.
Cuando se recibe un mensaje desde Fido a este nodo, se busca en la base de
datos el nombre y si se encuentra, se entrega el mensaje al usuario
correspondiente a través de sendmail
.
Por lo tanto, la forma de establecer relaciones entre cuentas de Unix y usuarios del nodo de Fido es simple: enviar un mensaje a otro usuario de Fido desde esa cuenta. De este modo la base de datos recordará para siempre el nombre del remitente del mensaje y la cuenta Unix asociada.
Como sabéis, en sistemas Unix se utiliza la tabla de códigos ISO-8859-1 para extender el ASCII a caracteres especiales del idioma, como acentos y eñes. En cambio, en sistemas basados en MS-DOS se suele utilizar la tabla de la ROM del IBM-PC.
Posteriormente contaré cómo programar automáticamente la conversión para las áreas de ECHO. Ahora os diré cómo conseguir ésta en los Nets, un asunto que tenía pendiente en otras versiones del documento.
Se trata de algo simple: vuestros Nets deben incluir una nueva cabecera,
que diga: X-FTN-ORIGCHRS: IBMPC 2
(para añadir a vuestros
mensajes nuevas cabeceras, usad algún programa de correo avanzado como
Pine). Esta cabecerá hará que ifmail (versión tx) los
convierta automáticamente de códigos ISO a IBM-PC. En caso de recibir
mensajes de fuera, siempre que se incluya la cabecera de Fido CHRS:
IBMPC 2
se producirá automáticamente una conversión a vuestra tabla
ISO.
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.
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
.
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:::*
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).
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 debéis instalarlo en
/etc/news
.
Para probar el empaquetado, hay que ejecutar el 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
.
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.
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...
En Unix aun nadie había hecho un lector especializado para Fido y
suficientemente parecido al GoldED. Dejando a un lado el editor de FEddi
(fmbedit
) que usa base de mensajes propia en lugar de sistema de
noticias USENET estándar, lo único parecido para Fidonet que tenemos como
lector de noticias es el tin-1.3-unoff
.
Yo aun no lo he logrado poner en marcha, pero promete bastante:
reconoce las cabeceras X-Comment-To
usadas para indicar el
destinatario del mensaje público (algo que en Fido es usual pero no en
USENET), teniendo además estilos de quoting similares a los
usados por GoldED en lugar del usado en Usenet.
Aun le faltan cosas para parecerse al GoldED (por ejemplo, los colorines o el tratamiento de los Flags de los mensajes) pero no deja de ser recomendable.
Voy a dar aquí algunos enlaces de Internet donde podéis encontrar más información sobre el tema.
rpm
.
ifmail
:
ftp://svpop.com.dist.unige.it/pub/Linux/ILS/Ifmail-HOWTO.tar.gz.
Lo siento, aun nadie lo ha traducido al castellano... ¿quién se anima? ;-)
Si queréis instruiros sobre sendmail, he aquí su biblia:
Costales, Allman y Rickert `Sendmail' Ed: O'Reilly & Associates
No está todo acabado. Este COMO tiene que ser leído por vosotros y me tenéis que aportar vuestros comentarios, experiencia, críticas, etc.
Además, tengo previsto incluir próximamente la parte referente a la configuración de SUCK (¡¡estamos a Julio y todavía no he tenido tiempo!! perdonad... ;-) )
Hay mucha gente a la que agradecer desde aquí. Principalmente, a los siguientes:
sendmail
que más o menos parecía fácil de entender y modificar.