Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
ar:guia_binkd_crashmail_golded [2024/11/17 21:01] – ragnarok | ar:guia_binkd_crashmail_golded [2024/11/18 23:50] (actual) – fix crashexport ragnarok | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Guía para punto con binkd + crashmail + golded en GNU/Linux ====== | ====== Guía para punto con binkd + crashmail + golded en GNU/Linux ====== | ||
- | La intensión de esta guía es tener un sistema de un punto para Fido (También | + | La intensión de esta guía, es ayudar a tener un sistema de un punto para Fido (también |
- | Este sistema en conjunto, debería poder enviar/ | + | Este sistema en conjunto, debería poder enviar/ |
- | El escenario de ejemplo que voy a mostrar es creado en GNU/Linux (para otros OS's seguramente se deben considerar usar los paths y los programas correspondientes) | + | Este es un esquema de como seria el funcionamiento: |
+ | |||
+ | {{: | ||
+ | |||
+ | No es la idea ver opción por opción en detalle de los programas, para ello se debe recurrir a la documentación de cada uno de ellos respectivamente. | ||
+ | |||
+ | El escenario de ejemplo que voy a mostrar es creado en Debian | ||
Vamos a usar esas configuraciones como ejemplo: | Vamos a usar esas configuraciones como ejemplo: | ||
- | ^ Configración | + | ^ Configuración |
|Nuestra dirección FTN del punto | 4:902/26.10 | | |Nuestra dirección FTN del punto | 4:902/26.10 | | ||
|Dirección de nuestro uplink/boss donde conectaremos | 4:902/26 | | |Dirección de nuestro uplink/boss donde conectaremos | 4:902/26 | | ||
Línea 21: | Línea 27: | ||
Pero no creo que sea necesario. | Pero no creo que sea necesario. | ||
- | Por defecto binkd busca las configuraciones en **/ | + | Por defecto binkd busca las configuraciones en **/ |
Porque nosotros vamos a crear el archivo de config y vamos a poner todos dentro de un directorio en nuestro home así no tenemos problemas de permisos y esas cosas al ejecutar como root o un usuario de servicio. | Porque nosotros vamos a crear el archivo de config y vamos a poner todos dentro de un directorio en nuestro home así no tenemos problemas de permisos y esas cosas al ejecutar como root o un usuario de servicio. | ||
- | Así se facilita para quienes no están muy experimentados con GNU/Linux | + | Así se facilita para quienes no están muy experimentados con GNU/Linux. |
<alert notice> | <alert notice> | ||
Línea 80: | Línea 86: | ||
inbound-nonsecure / | inbound-nonsecure / | ||
- | # Programa que se ejecuta al recibir archivos .tic (en este caso tinytic) va a procerar | + | # Programa que se ejecuta al recibir archivos .tic (en este caso tinytic) va a procesar |
# va a moverlos a algun directorio que le indicamos | # va a moverlos a algun directorio que le indicamos | ||
exec "/ | exec "/ | ||
Línea 89: | Línea 95: | ||
# Dirección del nodo de nuestro uplink/boss para enviar y recibir los paquetes | # Dirección del nodo de nuestro uplink/boss para enviar y recibir los paquetes | ||
# El formato es: | # El formato es: | ||
- | # node <direccion | + | # node <dirección |
# | # | ||
- | # Los fileboxes | + | # Los fileboxes |
- | # Es util para cuando se tienen varios nodos, aunque este no seria nuestro caso | + | # Es útil para cuando se tienen varios nodos, aunque este no seria nuestro caso |
node 4: | node 4: | ||
filebox / | filebox / | ||
Línea 158: | Línea 164: | ||
===== Configuración de Crashmail ===== | ===== Configuración de Crashmail ===== | ||
- | Crashmail es el Tosser, es el programa que se encarga de procesar los archivos de paquetes que llegaron a la entrada del binkd y guardar los mensajes en las dirferentes areas, echomail y netmail | + | Crashmail es el Tosser, es el programa que se encarga de procesar los archivos de paquetes que llegaron a la entrada del binkd y guardar los mensajes en las diferentes áreas, echomail y netmail. |
- | Es importante tener en cuenta que al guardar las areas se debe elegir el formato de base de datos de las mismas, en la versión que tengo soporta MSG y JAM. | + | Es importante tener en cuenta que al guardar las áreas |
El formato Standard MSG (FTS-1) genera un archivo por mensaje en el filesystem, 1.msg, 2.msg etc.. | El formato Standard MSG (FTS-1) genera un archivo por mensaje en el filesystem, 1.msg, 2.msg etc.. | ||
Línea 168: | Línea 174: | ||
Elegir uno u otro es a gusto, semejante a usar MailDir o Mbox para los clientes de correo de internet, cada uno tiene sus pro y contras. | Elegir uno u otro es a gusto, semejante a usar MailDir o Mbox para los clientes de correo de internet, cada uno tiene sus pro y contras. | ||
- | El JAM seria mas " | + | El JAM seria mas " |
En cambio, el MSG es mas costoso porque se tiene que abrir y cerrar cada archivo para cada mensajes, pero la buenas es que si se rompe 1 archivo a lo sumo se pierde un mensaje. | En cambio, el MSG es mas costoso porque se tiene que abrir y cerrar cada archivo para cada mensajes, pero la buenas es que si se rompe 1 archivo a lo sumo se pierde un mensaje. | ||
Línea 201: | Línea 207: | ||
**TOSS**: Procesa los paquetes que entraron al binkd y los guarda en sus respectivas áreas como comentaba anteriormente. | **TOSS**: Procesa los paquetes que entraron al binkd y los guarda en sus respectivas áreas como comentaba anteriormente. | ||
- | **EXPORT**: | + | **EXPORT**: |
- | El archivo de configuración de crashmail lo vamos a guardar también dentro de / | + | El archivo de configuración de crashmail lo vamos a guardar también dentro de / |
Igualmente voy a poner algunos comentarios de las opciones que son necesarias: | Igualmente voy a poner algunos comentarios de las opciones que son necesarias: | ||
Línea 216: | Línea 222: | ||
; Base de duplicados, crashmail detecta duplicados | ; Base de duplicados, crashmail detecta duplicados | ||
- | ; y los elimina antes de cargarlos en las bases de las areas | + | ; y los elimina antes de cargarlos en las bases de las áreas |
DUPEFILE "/ | DUPEFILE "/ | ||
DUPEMODE KILL | DUPEMODE KILL | ||
Línea 224: | Línea 230: | ||
OUTBOUND "/ | OUTBOUND "/ | ||
- | ; Directorios temporales, | + | ; Directorios temporales, |
TEMPDIR "/ | TEMPDIR "/ | ||
CREATEPKTDIR "/ | CREATEPKTDIR "/ | ||
Línea 251: | Línea 257: | ||
JAM_MAXOPEN 5 | JAM_MAXOPEN 5 | ||
- | ; Grupos de areas. Uno puede agrupar las areas, por ejemplo | + | ; Grupos de áreas. Uno puede agrupar las áreas, por ejemplo |
; si se usaran varias redes en el mismo sistema, se podría | ; si se usaran varias redes en el mismo sistema, se podría | ||
; crear un grupo para cada una de ellas | ; crear un grupo para cada una de ellas | ||
Línea 371: | Línea 377: | ||
< | < | ||
- | crashmail.prefs areas.golded golded | + | crashexport |
</ | </ | ||
- | Tener en cuenta que el comando es // | + | Tener en cuenta que el comando es // |
Pero podemos ver el archivo generado: | Pero podemos ver el archivo generado: | ||
Línea 425: | Línea 431: | ||
En primer lugar, lo mas probable es que se tenga que bajar el source desde [[https:// | En primer lugar, lo mas probable es que se tenga que bajar el source desde [[https:// | ||
- | Si bien se escapa un poco de esta guía, los pasos a seguir son los siguientes | + | Si bien se escapa un poco de esta guía, los pasos a seguir son los siguientes: |
- | + | ||
Clonar el repo desde github: | Clonar el repo desde github: | ||
Línea 434: | Línea 439: | ||
</ | </ | ||
- | Entrar al directorio golded3 dentro del clonado | + | Entrar al directorio golded3 dentro del clonado: |
< | < | ||
Línea 441: | Línea 446: | ||
</ | </ | ||
- | Generar el archivo mygolded.h a partir del que viene de ejemplo | + | Generar el archivo mygolded.h a partir del que viene de ejemplo: |
< | < | ||
Línea 470: | Línea 475: | ||
</ | </ | ||
- | volver | + | Volver |
< | < | ||
cd .. | cd .. | ||
</ | </ | ||
- | Crear un dictorio build para cmake | + | Crear un dictorio build para cmake: |
< | < | ||
Línea 481: | Línea 487: | ||
</ | </ | ||
- | Generar el build y compilar | + | Generar el build y compilar: |
< | < | ||
Línea 575: | Línea 581: | ||
</ | </ | ||
- | Si compilo | + | Si compiló |
< | < | ||
Línea 631: | Línea 637: | ||
==== Configuración inicial ==== | ==== Configuración inicial ==== | ||
- | Una vez compilado e instalado, generamos el archivo / | + | Una vez compilado e instalado, generamos el archivo / |
- | <file ini / | + | <file ini / |
// Datos de nuestro punto | // Datos de nuestro punto | ||
username Fernando Toledo | username Fernando Toledo | ||
Línea 680: | Línea 686: | ||
; opciones para ver agrupadas las areas segun la letra de grupo | ; opciones para ver agrupadas las areas segun la letra de grupo | ||
- | ; qu enos exporta el crashmail al archivo areas.golded | + | ; que nos exporta el crashmail al archivo areas.golded |
AREALISTSORT G | AREALISTSORT G | ||
AREASEP !N "Grupo Netmails" | AREASEP !N "Grupo Netmails" | ||
AREASEP !D "Grupo de Echomails" | AREASEP !D "Grupo de Echomails" | ||
</ | </ | ||
+ | |||
+ | Si todo está ok deberíamos poder ejecutar el comando **golded** (siempre parados sobre nuestro directorio raiz de fido, según el ejemplo en / | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ====== Operación y Uso ====== | ||
+ | |||
+ | Bien, se supone que hasta este momento tendríamos el sistema funcional. | ||
+ | |||
+ | Es muy importante verificar las rutas y las configuraciones, | ||
+ | |||
+ | También es preciso entender como interactuan cada uno y en que momento trabaja. Porque entender el flujo de paquetes y procesos nos va a facilitar al momento de solucionar el problema y poder aislarlo donde ocurre. | ||
+ | |||
+ | El orden de los pasos serian: | ||
+ | |||
+ | - Ejecutar **binkd** para que llame a nuestros uplink/boss y nos traiga paquetes | ||
+ | - Ejecutar **crashmail toss** para procesar los paquetes recibidos y enviarlas a las bases de datos de las áreas | ||
+ | - Usar **crashexport** para generar el archivo de áreas de golded | ||
+ | - Abrir **golded** para leer o escribir mensajes algunos mensajes | ||
+ | - Ejecutar **crashmail scan** para generar paquetes con mensajes para enviar | ||
+ | - Ejecutar **binkd** nuevamente para enviar los paquetes generados | ||
+ | |||
+ | Los comandos a modo de ejemplo son: | ||
+ | |||
+ | < | ||
+ | / | ||
+ | crashmail settings crashmail.prefs toss | ||
+ | crashexport crashmail.prefs areas.golded golded | ||
+ | golded | ||
+ | crashmail settings crashmail.prefs scan | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | <alert info> | ||
+ | |||
+ | Al ejecutar //golded//, de acuerdo a nuestra configuración, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Para crear un nuevo mensaje se usa la tecla **E** (enter message) | ||
+ | |||
+ | Acá nos van a aparecer los campos para que ingresemos para quien va dirigido el mensaje (To:) y el asunto (Subj: | ||
+ | Así como también atributos que podamos asignarle al mensaje (Privado, Crash, Direct..etc ver docu de Golded para detalles de cada uno). | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Luego de ingresas esos datos, damos de nuevo //Enter// y nos abre el popup donde seleccionamos **Internal Editor** para escribir el cuerpo del mensaje: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Ahora podemos escribir el cuerpo de nuestro mensaje: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Una vez que terminamos tocamos **F2** para que abra el popup y confirmar el envío seleccionando " | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Saliendo ahora de golded, vamos a enviar los mensajes, haciendo el scan y luego llamando a binkd: | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | CrashMail II 1.7 started successfully! | ||
+ | Scanning all areas for messages to export | ||
+ | Found area DEFAULT_D | ||
+ | Skipping area because it has no messagebase or area type is not echomail or netmail.. | ||
+ | Found area Netmail-fido | ||
+ | Scanning area Netmail-fido | ||
+ | Found area Bad-fido | ||
+ | Scanning area Bad-fido | ||
+ | Found area ZONA4.GENERAL | ||
+ | Scanning area ZONA4.GENERAL | ||
+ | Found area REGION90 | ||
+ | Scanning area REGION90 | ||
+ | Found area ESP.PRUEBAS | ||
+ | Scanning area ESP.PRUEBAS | ||
+ | Inspecting message 802 | ||
+ | Exporting message #802 from " | ||
+ | Is in HandleMessage() | ||
+ | |||
+ | 1 message exported | ||
+ | Scanning for orphan files | ||
+ | Scanning for old packets | ||
+ | Scanning for new files to pack | ||
+ | Packing 3aa1aa00.pkt for 4:902/26.0 with ZIP | ||
+ | adding: home/ | ||
+ | Updating hwm for area ESP.PRUEBAS, | ||
+ | CrashMail end | ||
+ | </ | ||
+ | |||
+ | Ahí pudimos ver que hay un mensaje en cola y que se genero el paquete. Este quedará el el directorio de salida de binkd. Entonces ahora lo ejecutamos: | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | 23:13 [51544] BEGIN, binkd/ | ||
+ | 23:13 [51544] creating a poll for 4: | ||
+ | 23:13 [51544] clientmgr started | ||
+ | $ -d 4: | ||
+ | + 23:13 [51545] call to 4: | ||
+ | 23:13 [51545] trying bbs.docksud.com.ar [186.123.101.23]... | ||
+ | 23:13 [51545] connected | ||
+ | + 23:13 [51545] outgoing session with bbs.docksud.com.ar: | ||
+ | - 23:13 [51545] OPT CRAM-MD5-341234123412312312341234 CRYPT | ||
+ | + 23:13 [51545] Remote requests MD mode | ||
+ | + 23:13 [51545] Remote requests CRYPT mode | ||
+ | - 23:13 [51545] SYS Dock Sud BBS | ||
+ | - 23:13 [51545] ZYZ Ragnarok | ||
+ | - 23:13 [51545] LOC Dock Sud, Bs As, Argentina | ||
+ | - 23:13 [51545] NDL 115200, | ||
+ | - 23:13 [51545] TIME Sun Nov 17 2024 23:13:12 GMT-0300 | ||
+ | - 23:13 [51545] VER BinkIT/ | ||
+ | + 23:13 [51545] addr: 4: | ||
+ | + 23:13 [51545] addr: 666: | ||
+ | + 23:13 [51545] addr: 21: | ||
+ | + 23:13 [51545] addr: 618: | ||
+ | + 23:13 [51545] addr: 46: | ||
+ | + 23:13 [51545] addr: 39: | ||
+ | + 23:13 [51545] addr: 39: | ||
+ | + 23:13 [51545] addr: 954: | ||
+ | + 23:13 [51545] addr: 15: | ||
+ | + 23:13 [51545] addr: 15: | ||
+ | + 23:13 [51545] addr: 15: | ||
+ | + 23:13 [51545] addr: 4: | ||
+ | + 23:13 [51545] addr: 4: | ||
+ | + 23:13 [51545] addr: 4: | ||
+ | + 23:13 [51545] addr: 4: | ||
+ | + 23:13 [51545] pwd protected session (MD5) | ||
+ | - 23:13 [51545] session in CRYPT mode | ||
+ | + 23:13 [51545] sending / | ||
+ | + 23:13 [51545] sent: / | ||
+ | + 23:13 [51545] done (to 4: | ||
+ | - 23:13 [51545] rc=0 | ||
+ | 23:13 [51545] session closed, quitting... | ||
+ | 23:13 [51544] rc(51545)=0 | ||
+ | 23:13 [51544] the queue is empty, quitting... | ||
+ | </ | ||
+ | |||
+ | De esa manera, el menaje ha sido enviado. | ||
+ | |||
+ | ====== Tips y problemas comunes ====== | ||
+ | |||
+ | ===== Proceso de los paquetes ===== | ||
+ | |||
+ | Hay algo que no supe ajustar correctamente aun. Es que desde el binkd.cfg uno pone las lineas de //exec// para directamente se haga el //toss// ni bien llegan los paquetes. | ||
+ | |||
+ | Eso nos ahorraría de ejecutar //crashmail toss// luego del binkd. | ||
+ | |||
+ | Por ejemplo: | ||
+ | |||
+ | < | ||
+ | exec " | ||
+ | </ | ||
+ | |||
+ | Esto se dispara si vienen archivos .pkt. Pero el tema es que también nos llegan bundles (que son comprimidos de paquetes) | ||
+ | como por ejemplo ftg12hg2.M01. | ||
+ | |||
+ | En este caso el toss a eso no se hace, porque primero se deberían " | ||
+ | |||
+ | Posiblemente tengo que investigar mejor de como hacer una linea de //exec// que sirva para todo (o quizás tengan que ser varias, ya lo veré). | ||
+ | |||
+ | Así que mientras tanto, lo solucioné con un script de bash que luego del binkd, recorre los archivos de su inbound y por cada uno hace un //crashmail tossfile//. | ||
+ | |||
+ | Para la opción de // | ||
+ | |||
+ | <file bash poll.sh> | ||
+ | cd / | ||
+ | while [ 1 ] | ||
+ | do | ||
+ | crashmail settings crashmail.prefs scan toss | ||
+ | crashexport crashmail.prefs areas.golded golded | ||
+ | / | ||
+ | |||
+ | for b in `find " | ||
+ | do | ||
+ | crashmail settings crashmail.prefs tossfile $b | ||
+ | done | ||
+ | for a in `seq 1 5` | ||
+ | do | ||
+ | echo "Sleep $a de 5" | ||
+ | sleep 1m | ||
+ | done | ||
+ | done | ||
+ | |||
+ | </ | ||
+ | |||
+ | Lo que hago es, abro una terminal y ejecuto poll.sh, esto queda en un loop infinito (hasta que lo corte con CTRL+c) que cada 5 minutos que básicamente " | ||
+ | Luego abro otra terminal con el golded y ahí leo o escribo mensajes normalmente. Y en definitiva, cuando termino, corto el proceso del poll.sh. Ese seria mi " | ||
+ | |||
+ | Se que es un poco redundante y que posiblemente no sea la opción más óptima, pero es la que me sirve por ahora. | ||
+ | |||
+ | ===== El golded no hace nada / no abre ===== | ||
+ | |||
+ | A golded le falta, que si tiene algún error en su config, envíe un buen mensaje con error de salida a la consola (ideal seria al stderr), para uno saber problema hay. | ||
+ | |||
+ | Un ejemplo es que si no están incluídas las opciones de caracteres, xlats y demas, cuando ejecutan el comando golded no hace nada de nada. | ||
+ | |||
+ | Por lo tanto, asegúrense de tener estas lineas configuradas en su golded.cfg | ||
+ | |||
+ | < | ||
+ | include / | ||
+ | xlatpath / | ||
+ | include | ||
+ | </ | ||
+ | |||
+ | Calculo que esto dependera del build o versión de golded, pero al menos el que compilo desde el git " | ||
+ |