Bereits seit einigen Jahren bin ich wieder mehr oder weniger aktiv in diversen FTN Netzen unterwegs. Allen voran nat├╝rlich im FidoNet. (Meine aka: 2:240/5853)
Ja, das gibt es noch, ja da ist sogar ordentlich Traffic. ­čśë

Vor Kurzem habe ich nun mein komplettes Setup ├╝berarbeitet und setze nun all die Standards ein, die sich bereits seit den 90ern bew├Ąhrt haben:

Da es vor Allem bei der Husky-Suite und GoldEd an aktueller englischer oder gar deutscher Dokumentation mangelt versuche ich hier mal zusammenzuschreiben was ich bei meiner Reise m├╝hsam zusammensuchen, erfragen und ausprobieren musste.

Da ich selbst erst relativ neu zur├╝ck in dem Thema bin ist auch diese Dokumentation sicher nicht optimal. Sie enth├Ąlt bestimmt sogar Fehler. Aber sie funktioniert bei mir und kann sicher dem Einen oder Anderen den (Wieder-)Einstieg erleichtern...

Alle Beispiele sind auf einem Debian Jessie System entstanden, sollten gr├Â├čtenteils aber auch auf andere Linux-Systeme anwendbar sein.

Achtung!
Diese Anleitung ist noch nicht vollst├Ąndig! Sie wird noch aktiv erweitert und korrigiert.

 

BinkD

BinkD ist der Mailer. Er pollt Mails bei Eurem Uplink und Eure Points pollen ihre Mails bei ihm. BinkD verwendet das Protokoll BinkP, welches seit den 90ern in Benutzung ist um FTN-Mails, die urspr├╝nglich ├╝ber Modem und Telefonleitung verteilt wurden, ueber das Internet Protocol auszutauschen.

 

Installation

sudo apt-get install binkd

 

Konfiguration

# Binkd sample configuration file
# Copyright (C) 1996-1997 Dima Maloff, 2:5047/13
# Copyright (C) 1998-2009 Binkd Development Team
# $Id: binkd.cfg,v 2.13.2.9 2011/08/17 15:44:48 stas Exp $

# Dump configuration (and not exit). Use for debugging only,
#debugcfg

#
# Deine FTN Domains
#
# Format: domain <domainname> [</path/to/outbound>] [<default zone>] # oder: domain <aliasname> alias-for <domainname> # domain fidonet /var/spool/ftn/outb 2 domain fidonet.org alias-for fidonet domain fidonet.net alias-for fidonet domain fidonet.rus alias-for fidonet domain fido alias-for fidonet domain fidorus alias-for fidonet domain fido7 alias-for fidonet domain ger-bbs /var/spool/ftn/outb 2 domain gerbbs alias-for ger-bbs domain ger.bbs alias-for ger-bbs # # Deine Adressen / AKAs (4D oder 5D)
# # Format: address <aka1@domain> <aka2@domain> ... # address 2:240/5853@fidonet 75:18/6@ger-bbs # # Systemname, Ort und Dein Name # sysname "Kuehlbox" location "Ranstadt, Germany" sysop "Philipp Giebel" # # System Faehigkeiten
#
# Format: nodeinfo <Geschwindigkeit>,<Transportprotokoll>,<Anwendungsprotokoll> # nodeinfo 115200,TCP,BINKP # # TCP Einstellungen. Nichts ├Ąndern wenn Du nicht sicher bist # #iport binkp #oport binkp #oblksize 4096 #timeout 300 #connect-timeout 300 #bindaddr 192.168.0.3 # # HTTPS oder SOCKS Einstellungen.
#
# Format: proxy <ip>:<port> # #proxy 192.168.0.3:3128

# # Binkd haelt alle Nachrichten fuer 5 Sekunden,
# die vom Node uebersprungen wurden.
#
# Format: hold-skipped 3600 # #hold-skipped 3600 # # Keine Nachrichten senden, wenn eingehende Session nicht
# Passwortgeschuetzt ist.
#
# Format: send-if-pwd # send-if-pwd # # Pfad und Name des LogfilesPath, Loglevel.
#
# Format: LogfilesPath </path/to/your/log.file
# LogLevel [0-10] # log /var/log/binkd/binkd loglevel 4 # # BinkD auf die Konsole loggen lassen.
# (Nicht bei Start ├╝ber init-script)
#
# Format: ConLog [0-10] # conlog 4 # # Aktiviere die folgenden Zeilen, wenn Du T-Mail (FrontDoor)-Style
# Binaer-Logs moechtest # Tzoff korrigiert die UTC Zeit von time() in DOS-Nachfahren # #binlog binkd.sts #fdinhist in.his #fdouthist out.his #tzoff 10800 # # Nach Syslog loggen
#
# Format: syslog <facility> # #syslog local0 # # Bei Uebertragungen Prozente anzeigen
#
# Format: percents # percents # # Nach Rescans Queue anzeigen. Produziert extra Informationen auf der Konsole
#
# Format: printq # printq # # In Logfiles IPs in Hostnamen umwandeln
#
# Format: backresolv # backresolv # # PID:
#
# Format: pid-file </path/to/binkd.pid> # pid-file /var/run/ftn/binkd.pid # # Pfade in FLO-Files umschreiben.
# Praktisch wenn Mailer und Tosser auf unterschiedlichen
# Systemen laufen.
# Achtung: "\" als Verzeichnistrenner m├╝ssen mit einem weiteren
# "\" escaped werden: "\\"
# Es koennen so viele ftrans Angaben gemacht werden, wie Du willst.
#
# Format: ftrans <suche> <ersetze> # #ftrans "D:\\fido\\outbound" "/var/spool/fido/outb" #ftrans "\\" "/" # this replaces all slashes in a path # # Eingangsverzeichnis fuer sichere und unsichere Verbindungen #
# Format: inbound </pfad/zum/inbound/verzeichnis>
# inbound-nonsecure </pfad/zum/unsecure/inbound/verzeichnis>
# inbound /var/spool/ftn/inb inbound-nonsecure /var/spool/ftn/inb/unsecure # # Verzeichnis fuer unvollstaendig empfangene Dateien (.hr und .dt), # Standard: Inbound des Nodes
#
# Format: temp-inbound </pfad/zum/incomplete/inbound/verzeichnis> # #temp-inbound /var/spool/ftn/inb/incomplete # # Mindestens freier Plattenplatz (in KB) fuer sicher und unsicher eingehende Dateien. # groesse_der_naechsten_datei + minfree < freier_plath_in_inbound
#
# Format: minfree <KB>
# minfree-nonsecure <KB> # minfree 2048 minfree-nonsecure 2048 # # Loesche vorhandene unvollstaendige Dateien aus dem inbound, wenn
# eine neue mit gleichem Namen aber anderer Groesse oder Zeit ankommt.
# Wenn auskommentiert bleiben unvollstaendige Dateien als .dt und .hr
# im inbound Verzeichnis.
#
# Format: kill-dup-partial-files
# kill-dup-partial-files # # Unvollstaendige Dateien nach N Sekunden loeschen. (AUS, wenn auskommentiert)
#
# Format: kill-old-partial-files <Sekunden> # kill-old-partial-files 86400 # # Zeit in Sekunden, nach der alte .bsy/.csy Dateien geloescht werden,
# die nach einem Crash zurueckgeblieben sind.
# Ein guter Wert fuer die meisten Systeme ist: 43200 (12 Stunden) # Achtung: BinkD aktualisiert .bsy und .csy Dateien fuer aktive Verbindungen
# AUS, wenn auskommentiert.
#
# Format: kill-old-bsy <Sekunden> # kill-old-bsy 43200 # # Flag-Dateien (Semaphoren) erstellen beim Erhalt bestimmter Dateien
# Wildcards * und ? funktionieren.
#
# Format: flag <Semaphore> <Bedingung 1> <Bedingung 2> <Bedingung 3> ... # #flag toss!.now *.pkt #flag toss!.now *.su? *.mo? *.tu? *.we? *.th? *.fr? *.sa?

flag /var/spool/ftn/flags/tick *.tic *.TIC
# # Externes Programm starten beim Erhalt bestimmter Dateien # Das "*S" Makro wird durch S.R.I.F. ersetzt. Siehe !SRIF.TXT # Ein "!" vor dem Programmpfad bedingt sofortige Ausfuehrung nach Erhalt der Datei
# # *** win32 only: # Ein "@" vor dem Programmpfad fuehrt das Programm in einer separaten Konsole aus # Zwei "@@" vor dem Programmpfad fuehrt das Programm in einer versteckten Konsole aus # *** # Makros: *F - Vollstaendiger Name der empfangenen Datei # *A0..*A9 - Erste 10 AKAs des entfernten Systems # *A*, *A@ - Liste aller AKAs des entfernten Systems, Leerzeichengetrennt # *P - Passwortgeschuetzt [0|1], # *L - Bekanntes System [0|1] # *H - Entfernter hostname oder IP # *N - kurzer Dateiname (win32 only). #
# Format: exec "<Externes Programm inkl. Parameter>" <Bedingung 1> <Bedingung 2> ...
# #exec "my-freq-processor.exe /options *S" *.req #exec "my-pkt-unpacker.exe /options *S" *.pkt exec "/usr/local/sbin/toss.sh" *.su? *.mo? *.tu? *.we? *.th? *.fr? *.sa? *.pkt exec "/usr/local/sbin/bashreq.sh *S" *.req # # Dateien einbinden #
# Format: include </pfad/zum/include/file>
#
#include /etc/binkd.inc

# # Ueberschreibt Domainname aus DNS Lookups
# (siehe "node" unten)
#
# Format: root-domain <domainname> # root-domain bbs.kennmer.net # # T-Mail Boxen scannen (kurz und lang) #
# Format: filebox </pfad/zur/tmailbox>
# #filebox /var/spool/ftn/boxes/tmail
#filebox C:\\FTN\\TMAIL\\BOX # # theBrake! Boxen scannen (lang) # #brakebox /var/spool/ftn/boxes/brake
#brakebox C:\\FTN\\BRAKE\\BOX # # Soll BinkD leere Boxen loeschen?
# AUS, wenn auskommentiert #
# Format: deletebox # #deletebox # # Postausgang beim Verbinden scannen und Groesse an Remote senden
#
# Format: prescan # prescan # # t-mail, ifcico oder qico Passwort Datei # Format der Passwort Datei: # [password] # wobei: # [password] optionales token "password" # Adresse eines Links in der Form 1:2/3.4@domain # oder 1:2/3@domain oder 1:2/3 oder 1:2/3.4 # Geheimes Passwort (ein Word, keine Leerzeichen oder Tabs) # # Anmerkung: Ich verstehe auch kein einziges Wort...
#
# Format: passwords </pfad/zur/password.lst> # #passwords c:\\fido\\t-mail\\password.lst #passwords /etc/binkd/password.lst
# # Diese Dateien ueberspringen (zerstoerend)
# Wildcards erlaubt.
#
# Format: skipmask <Bedingung 1> <Bedingung 2> <Bedingung 3> ... # #skipmask pm2*.* *.mp3 # # Folgende Dateien immer ueberschreiben, wenn neuere empfangen werden
# Nicht mit geaenderter Erweiterung speichern
#
# Format: overwrite <Bedingung 1> <Bedingung 2> <Bedingung 3> ... # #overwrite net_*.* # # Gross-/Kleinschreibung im Posteingang # # 'save' Gross-/Kleinschreibung nicht aendern (default) # 'upper' In Grossbuchstaben umwandeln (FILE-NAME.EXT) # 'lower' In Kleinbuchstaben umwandeln (file-name.ext) # 'mixed' huebsch machen (File-Name.Ext) # # * nur mit englischen Dateinamen getestet!
#
# Format: inboundcase [save(default)|upper|lower|mixed] # #inboundcase save # # Soll BinkD leere Point-Verzeichnisse im BSO loeschen? # AUS wenn auskommentiert
#
# Format: deletedirs # #deletedirs # # Amiga Style Outbound (ASO) verwenden. Benoetigt build mit --with-aso
# In Debian nicht verfuegbar. #
# Format: aso
# #aso # # Default node flags.
# Achtung: BinkD verbindet auch zu unbekannten nodes, wenn diese
# Option gesetzt ist.
#
# Format: defnode <default parameter> # #defnode -nr * # # Wenn Du eine Nodelist im BinkD-Format hast kannst Du sie hier einbinden #
include /etc/binkd/bt_ibn.inc

#
# Die Link-Konfiguration in einer separaten Datei
#
include /etc/binkd/binkd.inc
# Einen Link definieren:
# node [[z:]n/]n[.p][@domain] [-nr|-nd] [-md] [-ip|-sip] [{hosts|-} [{pwd|-} [flavour [{obox|-} [{ibox|-}]]]]]
#
# * Alle Felder ohne "-" ueberschreiben frueher definierte Parameter
# * Flavour ist i, c, d, - oder h; und ist die Art des Outbound-Verzeichnisses obox
# * BinkD sended alle Dateien aus obox die nicht ".*" heissen.
# ACHTE IMMER DARAUF, DASS DATEIEN, DIE DU IN OBOX LEGST VON BINKD
# GELOESCHT WERDEN KOENNEN!
# Sonst endet die Verbindung niemals...
# * Standard ibox ist das globale inbound, bzw. inbound-nonsecure.
# * Standard port ist der globale oport.
# * '-nr' steht fuer 'Not Reliable'. Funktioniert nur bei ausgehenden Verbindungen
# mit einem anderen binkp/1.1 Mailer. Diese Option loest das einzige
# Problem, dass BinkD nicht genug Zeit hat vor einem Timeout mit dem
# Fortsetzen einer angefangenen Uebertragung zu beginnen.
# Benutze diese Option nicht, wenn Du dieses Problem nicht hast
# Wirklich nicht effektiv
# * '-nd' steht fuer 'No Dupe Mode'. Funktioniert nur bei ausgehenden Verbindungen
# mit einem anderen BinkD 0.9.3 oder hoeher.
# Diese Option loest das Problem mit sich vervielfaeltigenden Dateien wenn
# die Verbindung vorzeitig abgebrochen wurde.
# Etwas langsamer, als mit '-nr'.
# * '-md' steht fuer "Must have CRAM-MD5". Funktioniert nur bei Nodes BinkD oder
# Argus, die diese Methode unterstuetzen.
# Nicht verwenden wenn der Link eine alte Version von BinkD verwenden
# koennte.
# * '-nomd' Kein CRAM-MD5 fuer diesen Node verwenden
# (Passwort unverschluesselt senden)
# * '-ip' steht fuer "Remote IP check". Verbindungen werden abgelehnt, wenn sie
# nicht von der eingetragenen IP des Nodes kommen
# * '-sip' steht fuer "Strict remote IP check". Wie "-ip", aber Nodes werden auch
# abgelehnt, wenn keine IP hinterlegt ist.
# * Hosts ist eine Liste in der Form
# host1[:port1][;host2[:port2]] ...
# * Ein Stern ('*') in der Hostliste laesst BinkD die IP eines Nodes
# online nachschlagen:
# 1:2/3.4 --> p4.f3.n2.z1.binkp.net translation for a node's
# Fido-address and lookup IP for the resulting FQDN in DNS.
# Root domain part ("binkp.net") can be changed with root-domain
# keyword.
#
#node 5047/888 - password
#node 5047/999 hostname;* password i c:\\fido\\boxes\\to999 c:\\fido\\boxes\\from999

# UPLINKS:
node 2:24/0@fidonet domain.name;alternativ.domain.name geheim1 i
node 2:240/5700@fidonet domain.name;alternativ.domain.name geheim1 i
node 2:240/5832@fidonet domain.name;alternativ.domain.name geheim1 i
node 2:240/5833@fidonet domain.name;alternativ.domain.name geheim1 i
node 2:240/5834@fidonet domain.name;alternativ.domain.name geheim1 i
node 75:18/0@ger-bbs domain.name geheim2 i

# POINTS:
node 2:240/5853.1 - geheim3
node 75:18/6.1@ger-bbs - geheim4

 

Verwendung

BinkD wird ├╝ber ein initscript bei Systemstart gestartet und l├Ąuft, wie jeder Daemon, im Hintegrund und verrichtet seine Arbeit weitestgehend automatisch.

Dabei zusehen kann man ihm in seinem Logfile:

tail -f /var/log/binkd/binkd

Muss man doch mal manuell pollen geht das so:

binkd -c -p -q -P "<link>" /etc/binkd/binkd.cfg

Also zum Beispiel:

binkd -c -p -q -P "2:240/5832" /etc/binkd/binkd.cfg

 

 

Husky

Husky ist eine Software-Suite bestehend aus allem, was man nach dem Mailer so benoetigt. Allen Voran ein Tosser (hpt), ein Ticker (htick) und ein Reader (msged).

 

Installation

Vor vielen Jahren gab es auch hiervon mal Pakete im offiziellen Debian Repository, doch das ist lange her. Die debian build-dirs, die immernoch in den Quelltexten enthalten sind, sind teilweise ueber 10 Jahre alt und funktionieren entsprechend erstmal nicht mehr.

Ich habe mir jedoch ein Herz genommen, die debuild-Dateien aktualisiert und korrigiert, neue Debian-Pakete compiliert und ein kleines, privates Repo daraus gebaut.

Dieses koennt Ihr f├╝r Debian Jessie 64bit und 32bit, sowie fuer Raspbian verwenden, wie folgt:

sudo wget -O /etc/apt/sources.list.d/kuehlbox.list https://kuehlbox.wtf/<repo>/kuehlbox.list
sudo bash -c 'wget -O - https://kuehlbox.wtf/raspbian/gpg.key |apt-key add -'
sudo apt-get update

Wobei <repo> entweder durch "debian" oder "raspbian" ersetzt werden muss.

Zum Beispiel:

sudo wget -O /etc/apt/sources.list.d/kuehlbox.list https://kuehlbox.wtf/debian/kuehlbox.list

Hiernach kannst Du Dir alle verf├╝gbaren Pakete ansehen:

grep ^Package: /var/lib/apt/lists/www.kuehlbox.wtf_raspbian_packages_dists_jessie_*_Packages

Und den Tosser HPT mit allen seinen Abh├Ąngigkeiten installieren:

sudo apt-get install hpt

 

Konfiguration

Die Konfiguration von Husky findet in dem Verzeichnis /etc/husky/ statt, wo die einzelnen Tools auch nach ihr suchen.

# main fidoconfig file

#
# Systemname, Sysopname, Ort
#
# Format: name <Systemname>
# sysop <Sysopname>
# location <Ort, Land>
# name Kuehlbox sysop Philipp Giebel location Ranstadt, Germany
#
# Alle ftn Adressen
#
# Format: address <1:2/3>
# address <1:2/3.4>
# address 2:240/5853 address 75:18/6
# -----------------------------
# Diverse Pfade und Dateien
# -----------------------------

# unsecure inbound Verzeichnis
# Hier legt BinkD eingehende Pakete unbekannter Quellen ab.
inbound /var/spool/ftn/inb/unsecure

# secure inbound Verzeichnis
# Hier legt BinkD eingehende Pakete bekannter Quellen ab.
protinbound /var/spool/ftn/inb

# outbound Verzeichnis
# Hier holt BinkD ausgehende Pakete zum Versenden ab.
outbound /var/spool/ftn/outb

# temp inbound Verzeichnis
# Hier werden eingehende Pakete weiterverarbeitet
tempinbound /var/spool/ftn/tmp/inb

# temp outbound Verzeichnis
# Hier werden ausgehende Pakete vorbereitet
tempoutbound /var/spool/ftn/tmp/outb

# logfile Verzeichnis
# Hier werden alle Logfiles gespeichert
logfiledir /var/log/husky

# dupehistory Verzeichnis
# Hier werden die dupe history dateien gespeichert
dupehistorydir /var/spool/ftn/dupebase

# nodelist Verzeichnis
# Hier werden Nodelists gespeichert und gesucht
nodelistdir /var/spool/ftn/nodelist

# messagebase Verzeichnis
# Hier liegt die eigentliche Messagebase
msgbasedir /var/spool/ftn/msgbase

# tosser Logfile
# Datei in der zu scannende Echos hinterlegt werden, nachdem mit einem
# Mailreader oder "hpt post" oder aehnlichem eine Nachricht geschrieben wurde,
# um den Scan-Prozess zu beschleunigen.
echotosslog /var/spool/ftn/flags/echoscan.log

# import Logfile
# Datei in der hpt echos eintraegt, in die es neue Nachrichten
# getosst hat.
importlog /var/log/husky/import.log

# fileboxes Verzeichnis
# ???
fileboxesdir /var/spool/ftn/fileboxes

# fileecho Verzeichnis
# Hier liegen die Fileechos
fileareabasedir /var/spool/ftn/filebase

# passfilearea Verzeichnis
# ???
passfileareadir /var/spool/ftn/transit
# -----------------------------
# Nodelisten
# -----------------------------

# FIDO
# Name der Nodelist Files fuer fido nodelist NODELIST

# Nodelist Diff-Updates fuer fido beziehen aus.. DiffUpdate /var/spool/ftn/filebase/fido/nodedifz

# Fido Userlist file fidoUserList fidouser.lst

# GERBBS

# Name der Nodelist Files fuer gerbbs nodelist ger-bbs

# Komplettes Nodelistupdate fuer gerbbs beziehen aus... FullUpdate /var/spool/ftn/filebase/ger-bbs/ger_node
# -----------------------------
# Linker (Exportieren)
# -----------------------------

# Linken mit Hilfe des importlog
#
# Format: linkwithimportlog [yes|no|kill]
# kill = ja und danach importlog leeren
linkwithimportlog kill

# Echomail fuer verschiedene Links in jeweils eigenen
# Unterverzeichnissen speichern separatebundles yes

# Keine PID-Line in generierte Nachrichten einfuegen disablepid yes

# keine TID-Line in gescannte Nachrichten einfuegen disabletid yes

# Programm und Parameter zum Packen ausgehender Pakete
#
# Format: pack [zip|tgz|rar|arc|...] <Programm> <Parameter>
# $a = Archivdatei
# $j = Zu archivierende Datei
# pack zip zip -9 -j -q $a $f

# -----------------------------
# Tosser (Importieren)
# -----------------------------

# Programm(e) und Parameter zum Entpacken eingehender Pakete
#
# Format: unpack "<Programm> <Parameter>" <offset> <match>
# offset = Position im Archiv, an der nach dem Erkennungsmerkmal
# (match) gesucht werden soll
# match = Erkennungsmerkmal (Bytewert(e))
# $a = Archivdatei
# $p = Zielpfad fuer entpackte Dateien
# $t = Beschreibungsdateiname (htick, FileDescName Parameter)
# unpack "unzip -j -Loqq $a $f -d $p" 0 504b0304 unpack "arc eno $a $p'*.*'" 0 1a
# Kopien von Mails an "carbonkonto" in "carboncopy" Echo ablegen. carbonto Philipp Giebel carboncopy PERSONAL.MAIL
# Area in der nach Mails an AreaFix und FileFix gesucht werden soll robotsarea NETMAIL
# -----------------------------
# Robots
# -----------------------------

# 1. Robot Name (default = fuer alle gueltig) robot default

# Nachrichten an Robots nach der Verarbeitung loeschen killrequests yes

# Standardattribute fuer Nachrichten von Robots reportsattr loc pvt k/s npd

# 2. Robot Name (Areafix) robot areafix

# Absendername fuer Mails dieses Robots fromname Areafix robot

# Origin Line fuer Mails dieses Robots robotorigin Areafix robot

# Nachrichten direkt bearbeiten und nicht speichern areafixFromPkt on

# Datei mit der Antwort auf ein %HELP an AreaFix helpfile /etc/husky/areafix.hlp

# 3. Robot Name (Filefix) robot filefix
fromname Filefix robot robotorigin Filefix robot reportsattr loc pvt k/s npd dir helpfile /etc/husky/filefix.hlp
# Standardeinstellungen fuer alle Links linkdefaults begin

# Pakete ohne Passwort akzeptieren, aber im Logfile warnen allowemptypktpwd secure

# Packer fuer ausgehende Dateien packer zip

# Neue Echos automatisch erstellen areafixautocreate on

# Standardparameter fuer automatisch erstellte Echos areafixautocreatedefaults -b Jam -dupecheck del -dupehistory 14

# Datei in der neue Echos erstellt werden sollen areafixautocreatefile /etc/husky/areas

# Neue Fileechos automatisch erstellen filefixautocreate on

# Standardparameter fuer automatisch erstellte Fileechos filefixautocreatedefaults -p 90

# Datei in der neue Fileechos erstellt werden sollen filefixautocreatefile /etc/husky/fileareas

# Standardflavor fuer Echomails
# Format: echomailflavor [hold|normal|crash|direct|immediate]
echomailflavour hold

# Requests an Robots nicht standardmaessig weiterleiten forwardrequests off
linkdefaults end
# Extrene Datei mit der Link-Konfiguration einbinden include /etc/husky/links

# Externe Datei mit der Routing-Konfiguration einbinden include /etc/husky/route

# Externe Datei mit den Mailechos einbinden include /etc/husky/areas

# Externe Datei mit den Fileechos einbinden include /etc/husky/fileareas
# 1. Link Name
Link Fido

# AKA des Links
Aka 2:240/5832

# Unsere AKA bei diesem Link
ourAka 2:240/5853

# PKT-Passwort
Password geheim1

# EchomailFlavour
# Format:   echomailflavour [hold|normal|crash|direct|immediate]
#                           crash  = Sofortiges Zustellen
#                           direct = Direkt beim Empfaenger abliefern
#                           hold   = Nicht aktiv zustellen, warten bis abgeholt wird.
EchoMailFlavour Crash

# Standardparameter fuer neue Echos dieses Links
#   -a               = Eigene AKA
#   -b <Jam|Squish>  = MsgBase-Format
#   -p               = Aufbewahrungsdauer in Tagen
#   -dupeCheck move  = Duplikate verschieben
#   -dupeHistory     = Anzahl Tage, die Informationen zu 
#                      Duplikaten aufbewahrt werden sollen
#   -d ""            = Beschreibungstext
#   -g               = Echo nur sichtbar fuer Links mit dieser LinkGrp und AccessGrp
#
areafixAutoCreateDefaults -a 2:240/5853 -b Jam -p 3650 -dupeCheck move -dupeHistory 14 -d "(FidoNet) " -g fido

# Verzeichnis der Messagebase dieses Links
linkMsgBaseDir /var/spool/ftn/msgbase/fido

# Verzeichnis der Filebase dieses Links
LinkFileBaseDir /var/spool/ftn/filebase/fido

# Verzeichnis zur Filebox dieses Links
filebox /var/spool/ftn/fileboxes/fido

# AreaFix und FileFix Mails an diesen Link weiterleiten
forwardRequests on

# Packer fuer ausgehende Pakete
Packer zip

# Neue Echos dieses Links gehoeren der Gruppe fido an.
LinkGrp fido

# Kann Echos aus der Gruppe fido sehen.
AccessGrp fido


# 2. Link Name
Link gerBBS
Aka 75:18/0
ourAka 75:18/6
Password geheim2
EchoMailFlavour Crash
areafixAutoCreateDefaults -a 75:18/6 -b Jam -p 3650 -dupeCheck move -dupeHistory 14 -d "(gerBBS) " -g gerbbs
linkMsgBaseDir /var/spool/ftn/msgbase/gerbbs
LinkFileBaseDir /var/spool/ftn/filebase/gerbbs
filebox /var/spool/ftn/fileboxes/gerbbs
forwardRequests on
Packer zip
LinkGrp gerbbs
AccessGrp gerbbs

# 1. Point Name
Link FidoNet Point 1
Aka 2:240/5853.1
ourAka 2:240/5853
Password geheim3
EchoMailFlavour Hold
linkMsgBaseDir /var/spool/ftn/msgbase/fido
filebox /var/spool/ftn/fileboxes/fido
Packer zip
AccessGrp fido

# 2. Point Name
Link gerBBS Point 1
Aka 75:18/6.1
ourAka 75:18/6
Password geheim4
EchoMailFlavour Hold
linkMsgBaseDir /var/spool/ftn/msgbase/gerbbs
filebox /var/spool/ftn/fileboxes/gerbbs
Packer zip
AccessGrp gerbbs
# Mails an Points auf "hold" setzen
route hold noroute 2:240/5853.*
route hold noroute 75:18/6.*

# Mails an 1:*, 2:*, 3:*, 4:* und 5:* sofort an
# 2:240/5832 (Fido Uplink) zustellen
route crash 2:240/5832 1:* 2:* 3:* 4:* 5:*
# Mails an 75:* sofort an 75:18/0 (gerBBS Uplink) zustellen
route crash 75:18/0 75:*
# Interne Areas muessen manuell erstellt werden.
netmailarea NETMAIL /var/spool/ftn/msgbase/internal/netmail -b Jam badarea BAD /var/spool/ftn/msgbase/internal/bad -b Jam dupearea DUPE /var/spool/ftn/msgbase/internal/dupe -b Jam localarea PERSONAL.MAIL /var/spool/ftn/msgbase/internal/personal.mail -b Jam # Neue Echos werden automatisch an diese Datei angehaengt und koennen hier
# bearbeitet werden. # Format: # EchoArea <Echo.Name> </pfad/zur/msgbase/echo> <Parameter> <Links> # Zum Beispiel: # EchoArea nodes.024 /var/spool/ftn/msgbase/fido/nodes.024 -a 2:240/5853 -b Jam -p 3650 -dupeCheck move -dupeHistory 14 -d "(FidoNet) " -g fido 2:240/5832 2:240/5853.2 2:240/5853.1
# Diese Datei wird automatisch gefuellt. Sie muss nur schreibbar fuer den 
# hpt-user sein. # Hier koennen spaeter ebenfalls die Parameter der Fileareas bearbeitet werden,
# aehnlich wie bei den Mailareas...

 

Verwendung

Das meistgenutzte Programm heisst "hpt" (highly portable tosser / high performance tosser). Es muss immer mit dem Benutzer "ftn" gestartet werden, damit die Rechte-Magie funktioniert. Also entweder mit "sudo -u ftn" starten oder bei Cronjobs den entsprechenden Benutzer mit angeben.

Tossen (Eingehende Mail importieren):
hpt toss
Scannen (Ausgehende Mail Exportieren):
hpt scan
Netmail packen (Ausgehende Netmail exportieren)
hpt pack
Ticken (Eingehende Dateien in Filebase einsortieren)
htick toss
Nodelist(s) aktualisieren:
nlupd

 

All diese Tools greifen auf die Konfiguration in /etc/husky zu. Wurden sie ueber mein Repository installiert finden sie diese automatisch. Wurden andere Quellen verwendet muss die Konfigurationsdatei evtl. mit dem Kommandozeilenparameter "-c" angegeben werden. Zum Beispiel:

hpt -c /etc/husky/config toss

 

Mit Hilfe der Semaphore- / Flag-Files, die sowohl BinkD, als auch Husky erstellen, kann der komplette Ablauf automatisiert werden. Hierzu habe ich mir ein kleines Script geschrieben, welches per Cronjob alle 10 Minuten als Root ausgefuehrt wird. Als Root, damit es immer mal wieder mit chmod und chown Besitzer und Rechte aufraeumen kann.
Es gibt auch eine L├Âsung mit "setfacl" bei der auch dieses Script als Benutzer "ftn" ausgef├╝hrt werden kann, die muss ich mir aber selber erstmal genauer ansehen, bevor ich da was zu sagen kann. Meine bisherige L├Âsung sieht so aus:

#!/bin/bash

FLAGSDIR=/var/spool/ftn/flags
MSGBASE=/var/spool/ftn/msgbase
FILEBASE=/var/spool/ftn/filebase
BINKDCFG=/etc/binkd/binkd.cfg
UPLINK="2:240/5853"
USER="ftn"
GROUP="ftn"

HPT=/usr/bin/hpt
HTICK=/usr/bin/htick
BINKD=/usr/sbin/binkd
SUDO=/usr/bin/sudo

if [ -e ${FLAGSDIR}/netscan ]
then
  ${SUDO} -u ${USER} ${HPT} pack
  touch ${FLAGSDIR}/poll
  rm -f ${FLAGSDIR}/netscan
fi

if [ -e ${FLAGSDIR}/echoscan ]
then
  ${SUDO} -u ${USER} ${HPT} scan
  touch ${FLAGSDIR}/poll
  rm -f ${FLAGSDIR}/echoscan
fi

if [ -e ${FLAGSDIR}/toss ]
then
  if [ ! -e ${FLAGSDIR}/tossing ]
  then
    touch ${FLAGSDIR}/tossing
    rm -f ${FLAGSDIR}/toss
    ${SUDO} -u ${USER} ${HPT} toss
    chown -R ${USER}:${GROUP} ${MSGBASE}/*
    chmod 770 ${MSGBASE}/*
    chmod 660 ${MSGBASE}/*.j*
    chmod 660 ${MSGBASE}/*/*
    ${SUDO} -u ${USER} ${HTICK} toss
    chown -R ${USER}:${GROUP} ${FILEBASE}/*
    chmod 770 ${FILEBASE}/*
    chmod 660 ${FILEBASE}/*/*
    rm -f ${FLAGSDIR}/tossing
  fi
fi

if [ -e ${FLAGSDIR}/tick ]
then
  ${SUDO} -u ${USER} ${HTICK} toss
  chown -R ${USER}:${GROUP} ${FILEBASE}/*
  chmod 770 ${FILEBASE}/*
  chmod 660 ${FILEBASE}/*/*
  rm -f ${FLAGSDIR}/tick
fi

if [ -e ${FLAGSDIR}/poll ]
then
  if [ ! -e ${FLAGSDIR}/polling ]
  then
    touch ${FLAGSDIR}/polling
    rm -f ${FLAGSDIR}/poll
    ${SUDO} -u ${USER} ${BINKD} -c -p -q -P "${UPLINK}" ${BINKDCFG}
    rm -f ${FLAGSDIR}/polling
  fi
fi

 

 

GoldEd+

Nun fehlt nur noch ein Programm um die Mails auch zu lesen. Die HuskySuite kommt mit "msged", welches per apt-get nachinstalliert werden kann. Ich verwende jedoch lieber GoldEd+ auch, weil GoldEd schon 1993 mein Editor der Wahl wahr...

Auch GoldEd+ l├Ąsst sich per apt-get aus meinem Repository installieren:

sudo apt-get install goldedplus

 

Konfiguration

GoldEd+ sucht seine Konfiguration unter ~/.golded/

Damit GoldEd mit dem Standardbenutzer verwendet werden kann muss dieser der Gruppe "ftn" angeh├Âren und die komplette msgbase muss f├╝r diese Gruppe schreibbar sein. Mein "semacheck.sh" script achtet darauf, dass die immer der Fall ist. Verwendest Du eine eigene L├Âsung musst Du selber darauf auchten...

Dieses Verzeichnis muss zun├Ąchst erstellt und dann bef├╝llt werden. Hier meine Dateien, die ich aufgrund der Beispiele unter /usr/share/doc/goldedplus/examples/ und ganz wenig Wissen erstellt habe:

// Benutzername
USERNAME Philipp Giebel

// Hauptadresse
ADDRESS 2:240/5853.2            ; Fidonet

// Weitere AKA(s)
AKA     75:18/6.1               ; gerBBS

// Origin(s) (Wiederholung moeglich)
ORIGIN " ----> kuehlbox.wtf "

// Pfad zu den Nodelists
NODEPATH /var/spool/ftn/nodelist/

// Name der Fidonet Nodelist
NODELIST NODELIST.*

// Name der gerBBS Nodelist
NODELIST gerbbs.*

// Semaphore / Flag-File, welches erstellt werden soll, wenn eine
// Netmail geschrieben wurde (um "hpt pack" zu starten)
SEMAPHORE NETSCAN    /var/spool/ftn/flags/netscan

// Semaphore / Flag-File, welches erstellt werden soll, wenn eine
// Echo geschrieben wurde (um "hpt scan" zu starten)
SEMAPHORE ECHOSCAN   /var/spool/ftn/flags/echoscan

// List-File fuer Echos mit neuen Nachrichten
// Analog zu "echotosslog" in der Husky Config
SEMAPHORE EXPORTLIST /var/spool/ftn/flags/echoscan.log

// Charset-Einstellungen fuer import, export und
// lokale Einstellung. Latin-1 ist im 2:240er-Netz erwuenscht.
XLATIMPORT LATIN-1
XLATEXPORT LATIN-1
XLATLOCALSET LATIN-1
XLATPATH /usr/share/goldedplus/charset/
// Diese Datei muss aus /usr/share/doc/goldedplus/examples/config/charsets.cfg.gz 
// nach ~/.golded/ kopiert und entpackt werden.
include charsets.cfg

// Auf neue Nachrichten zu scannende Areas (Wildcards okay)
AREASCAN *

// Area-Konfiguration (von husky)
AREAFILE Fidoconfig   /etc/husky/areas        ; HPT
----------------------------------------------------------------------

 

Nodelist(s) compilieren
gnlnx -C ~/.golded/golded.cfg

 

Verwendung

golded
Hotkeys:
F1 Kontextsensitive Hilfe 
ESC Zur├╝ck / Beenden 

Bei ge├Âffneter Nachricht:
r Antworten
q Antworten und zitieren
k Kludges anzeigen
l Listenansicht des Echos

Beim Schreiben einer Nachricht:
ALT+s Speichern und beenden
CTRL+y Komplette Zeile l├Âschen
ALT+b Zeile neu umbrechen

 

Troubleshooting

Egal wie man golded startet, out-of-the-box hat man meistens Probleme mit Zeichen oder Tasten-Kodierungen. Hotkeys funktionieren nicht oder falsch oder es gibt Darstellungsprobleme (Von den Charset-Wars in den Echos ganz abgesehen.. ­čśë)

Hier ein paar Tipps, wie man dem begegnen kann:

Linux

Startet man GoldEd direkt auf dem Linux-System soll es helfen, dies in einem "screen" zu tun... (apt-get install screen)

Windows (Putty)

Folgende Einstellungen k├Ânnen an der Session vorgenommen werden:

Terminal -> Keyboard -> The Backspace key:
Control-? (127)

Terminal -> Keyboard ->The Function keys and keypad:
Xterm R6

Window -> Appearance -> Font:
PxPlus IBM VGA9, 10-point

Window -> Translation -> Remote character set:
ISO-8859-1: 1998 (Latin-1, West Europe)

MacOS (iTerm 2)

Am Besten erstellt man sich ein eigenes Profil f├╝r GoldEd, da die notwendigen Einstellungen jede "normale" SSH-Session unbenutzbar machen: Profiles -> Open Profiles -> Edit Profiles...

Hier koennen dann folgende Einstellungen vorgenommen werden:

Text -> Font:
PxPlus IBM VGA9, 10-point

Window -> Settings for new windows -> Columns / Rows:
80x25

Terminal -> Terminal Emulation -> Character Encoding:
Western (ISO Latin 1)

Terminal -> Terminal Emulation -> Report Terminal Type:
linux

Keys -> Left / Right option key acts as:
+ESC

Mit diesen Einstellungen sind die Rahmenzeichen kaputt, aber der Rest funktioniert leidlich. Stellt man den Terminal Type aus ansi funktionieren die Rahmenzeichen, aber der Rest nicht richtig...

 

5000 Characters left