Mystic BBS mit BinkD unter Linux

Aus FidoPedia
Version vom 17. Juni 2019, 14:30 Uhr von P Giebel (Diskussion | Beiträge) (Kategorie(n) geaendert (test))
Wechseln zu: Navigation, Suche


Einleitung

MysticBBS kommt zwar schon von Haus aus mit einer eigenen BinkP-Implementation, die hat jedoch in ihrer aktuellen Version (v1.10 beim Schreiben dieses Artikels) noch einige Probleme, weshalb ich schnell auf BinkD umgestiegen bin. Hier versuche ich in kurzen Worten zu erklären, wie ich BinkD zusammen mit MysticBBS und dem MysticBBS Tosser eingerichtet habe. Da ich selbst erst wenige Wochen wieder im Thema bin, sind Irrtümer und Fehler verbehalten und zu erwarten. Bitte nutzt die Diskussions-Seite um Korrekturen zu besprechen.

Verwendete Software

Ich gehe nicht weiter auf die Installation der Software ein - binkd gibt es im Repository so gut wie jeder Linux Distribution und MysticBBS kommt mit einem proprietären Installationsprogramm.

Zum Schreiben dieses HOWTO habe ich Debian Wheezy verwendet - bei anderen Distributionen und/oder Versionen können einzelne Dateipfade abweichen - die eigentliche Konfiguration funktioniert jedoch in allen Distributionen gleich.

Konfiguration

BinkD

Nach der Installation bearbeiten wir zuerst die Datei /etc/binkd/binkd.cfg mit einem Text-Editor unserer Wahl. Fehlt diese Datei, liegt sie evtl. unter /usr/share/doc/binkd. Eine leicht angepasste Version der originalen Beispiel-Konfiguration des Debian-Paketes gibt es auch hier im Wiki.

Die Datei ist sehr ausführlich kommentiert, weshalb ich hier nur auf die notwendigen Änderungen eingehe:

domain

Hier werden die einzelnen FTN-Netze mit Standard-Konfigurationen hinterlegt. Für FidoNet sind folgende Einträge nötig:

domain domainname     </pfad/zu/mysticbbs/echomail/outbound/verzeichnis> <zone-id>
domain domainalias    alias-for domainname
domain domainname.org alias-for domainname

Für FidoNet in Europa z.B:

domain fidonet     /opt/mystic/echomail/out/fidonet 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

Weitere Netze werden entsprechend angelegt. Zu beachten ist hierbei, dass bei allen weiteren Netzen die gleiche Zone-ID anzugeben ist, auch wenn das gar nicht stimmt. Hierdurch werden fuer ein- und ausgehende Nachrichten Unterverzeichnisse mit der echten zone-id angelegt, genau so, wie MysticBBS es erwartet und ebenfalls tut.

address

Hier werden die verschiedenen Adressen mitsamt Domain angegeben. Mehrere Adressen einfach mit Leerzeichen getrennt in einer Zeile angeben:

Zum Beispiel:

address 2:240/1234@fidonet 75:18/1234@ger-bbs

sysname, location, sysop

Sollte klar sein.. Diese Informationen werden bei Verbindungen per BinkP gesendet.

Zum Beispiel:

sysname  "Mailboxname"
location "Ort, Land"
sysop    "Max Mustermann"

inbound

Das Verzeichnis, in dem ankommende Dateien bekannter Nodes (und/oder Points) abgelegt werden sollen, um dort vom Tosser (MysticBBS, s.u.) gefunden und weiterverarbeitet zu werden. Zum Beispiel:

inbound /opt/mystic/echomail/in

inbound-nonsecure

Das Verzeichnis, in dem ankommende Dateien über unverschlüsselte Verbindungen abgelegt werden sollen. Zum Beispiel:

inbound-nonsecure /opt/mystic/echomail/in/unsecure

flag

Zu erstellende Semaphore-Dateien, um die Weiterverarbeitung ankommender Dateien (z.B. von MysticBBS) auszulösen:

flag /pfade/zum/semaphore/file <filename> <filename> <...>

Zum Beispiel:

flag /opt/mystic/semaphore/echomail.in *.su? *.mo? *.tu? *.we? *.th? *.fr? *.sa? *.pkt *.TIC
flag /opt/mystic/semaphore/echomail.out *.su? *.mo? *.tu? *.we? *.th? *.fr? *.sa? *.pkt

include

Externe Dateien inkludieren. z.B. um eine Nodelist im BinkD-Format einzubinden und so Netmails direkt versenden zu können. Eine solche Nodelist kann man entweder selbst erstellen (Artikel folgt), oder man kann seinen Uplink fragen - viele stellen diese per FileFix zur Verfügung.

Beispiel:

include /etc/binkd/bt_ibn.inc
include /etc/binkd/binkd.inc

root-domain

Der Domain-Name, unter dem BinkD erreichbar ist.

Beispiel:

root-domain bbs.kennmer.net

node

Hier werden alle Nodes eingetragen, die gepollt werden sollen und die pollen dürfen. Also Eure Uplinks, sowie Downlinks (also z.B. Points):

node <ftn-adresse>@<domain> <ip oder hostname>[;<weitere ip oder hostname>] <kennwort> <mail-typ>

Für FidoNet also zum Beispiel (Die Adressen sind natürlich frei erfunden und müssen durch die richtigen ersetzt werden, die Ihr von Eurem Uplink genannt bekommt.):

node 2:240/9999@fidonet example.com seCrEt i

Um weitere Netze einzutragen, einfach die Zeile wiederholen und die Parameter anpassen:

node 75:18/9999@ger-bbs example.org SeCREt i

Einen Point tragt Ihr ähnlich ein:

node 2:240/1234.1 - SeCReT

Beispiel binkd.cfg

BinkD lässt sich natürlich noch wesentlich feiner konfigurieren. Das ist fuer den Betrieb jedoch zunächst nicht nötig. Alle anderen Parameter übernehmen wir mit ihren Standardwerten aus der Beispiel-Konfiguration.

MysticBBS

Ich werde hier selbstverständlich nur auf die Konfiguration der FTN-Netze unter MysticBBS eingehen. Der Rest sollte bereits konfiguriert sein und funktionieren. In meinen Beispielen verwende ich den Basis-Pfad /opt/mystic/ statt des Standard-Pfades /mystic/. Dies muss ggf. beim Übertragen in die eigene Konfiguration angepasst werden.

Zur Konfiguration dient das Programm "mystic":

~# ./mystic -CFG

Eigene Adressen

Zunächst tragen wir unsere eigenen FTN-Adressen ein. Dies geschieht im Menü (C)onfiguration -> (E)chomail Addresses Der erste Eintrag muss bestehen bleiben, wie er ist. Wir wählen den nächsten "freien" (0:0/0) aus und bestätigen mit der Eingabetaste. Dort können wir nun unsere eigene Adresse eintragen. Siehe hierzu auch das Beispiel-Bild #3, hierunter. Die FidoNet Adresse wird als "Primary" eingestellt - weitere Netze nicht.

Nodes (Up- & Downlink)

Bild 5: Beispiel-Konfiguration eines UpLink Nodes
Bild 6: Beispiel Session-Daten eines UpLink Nodes

Unter (C)onfiguration -> EchoMail (N)odes werden nun die Up- und Downlinks eingetragen. Dazu öffnen wir das Menue und drücken dort / i, um einen neuen Node zu erstellen und öffnen diesen dann mit der Eingabetaste, um ihn zu konfigurieren, wie auf Beispiel-Bild #5 und #6:

(D)escription: Freitext Beschreibung des Nodes.
(A)ctive: Soll für diesen Node getosst werden?
A(r)chive Type: Dateiformat für empfangene und versendete Dateien. Normalerweise ist das ZIP.
Export T(y)pe: Normal
All(F)ix PW: AreaFix, FileFix, *Fix Kennwort, welches Ihr von Eurem Uplink mitgeteilt bekommen habt. (Bei Point-Konfigurationen müsst Ihr dieses Kennwort Eurem Point mitteilen..)
P(K)T Password: Kennwort, mit dem die PKT-Files gesichtert werden sollen. (Bekommt Ihr ebenfalls entweder von Eurem Uplink, oder Ihr müsst es Eurem Downlink mitteilen..)
Session (T)ype: Da wir BinkD als Mailer verwenden, stellen wir hier Directory ein und nicht BinkP, wie voreingestellt.
Ro(u)te Info: Routing-Info, welche Mails über diesen Node versandt werden sollen. Wildcards sind erlaubt, Regeln werden mit Leerzeichen getrennt und frühere Regeln haben höhere Priorität. Die Beispiel-Konfiguration 1:* 2:* 3:* 4:* 5:* passt für einen einzelnen Fido Uplink, da so einfach alle Mails aus allen Zonen über diesen Node versendet werden.
(M)ax PKT Size: 0 für unbegrenzt
Max AR(C) Size: 0 für unbegrenzt
Us(e) FileBox: FileBox verwenden?
TIC Pass(w)ord: Kennword für TIC-Files (fdn), welches Euch Euer Node mitgeteilt hat, oder Ihr Eurem Point mitteilen müsst.
(Z)one: Zone des Up- oder Downlinks (nicht Eure eigene)
(N)et: Net-Adresse des Up- oder Downlinks (nicht Eure eigene)
N(o)de: Node-Adresse des Up- oder Downlinks (nicht Eure eigene)
Doma(i)n: Gleiche, wie in der Konfiguration der eigenen Adresse und in der binkd.cfg
(S)ession Options: Zuletzt öffnen wir die (S)ession Options, um dort noch die beiden Pfade fuer in- und outbound einzutragen:
(O)utbound Dir: Verzeichnis, in dem ausgehende Dateien erstellt werden sollen. Für einen FidoNet Uplink einfach aus Bild #5 übernehmen.
(I)nbound Dir: Verzeichnis, in dem eingehende Dateien gesucht werden sollen. Für einen FidoNet Uplink einfach aus Bild #5 übernehmen.


Message Group erstellen

Nun erstellen wir eine Gruppe für alle Areas dieses Netzes. Dies ist optional und dient nur der besseren Übersicht in der BBS. Hierzu gehen wir in das Menü (E)ditors -> Message (G)roup Editor, erstellen dort mit / I eine neue Gruppe und öffnen sie mit der Eingabetaste zum Bearbeiten:

(N)ame: Freitext Bezeichnung für die Gruppe.
(A)ccess: Zugangsbedingungen für die Gruppe. Keine Sorge - wir verfeinern diese Einstellung später noch. s10 ist okay, als Einstellung.
(H)idden: Ob die Gruppe in der Gruppen-Liste angezeigt werden soll, oder nicht.

Netmail Area erstellen

Bild 10: Beispiel-Konfiguration der Netmail Area

Nun muss noch eine Area für die Netmails von Hand erstellt werden. Die weiteren Areas werden später automatisch erstellt:

(N)ame: Freitext Name der Area, wie er in der BBS angezeigt wird.
Ne(w)sgroup: Freitext Name der Newsgroup, falls Ihr den internen NNTP Server von MysticBBS verwendet (tut das nicht!)
(Q)WK Name: Name der Area in QWK-Paketen. (Optional)
Echo Tag: Echo Tag der Area. (Optional)
(F)ile Name: Dateiname der Message-Base-Datei in Eurem Dateisystem.
(P)ath: Pfad zu der Message-Base-Datei in Eurem Dateisystem.
(L)ist ACS: Zugriffsbeschränkungen um diese Area in Listen sehen zu können. Beispiel: s20g2 um sie nur registrierte Benutzern anzuzeigen, die gerade Gruppe 2 ausgewählt haben.
(R)ead ACS: Zugriffsbeschränkungen zum Lesen von Mails in dieser Area. Hier keine Gruppen-Beschränkungen anhängen, da sonst der "New-Mail-Scan" nicht mehr funktioniert.
Post A(C)S: Zugriffsbeschränkungen für das Schreiben von Mails. Achtet darauf, dass im FidoNet RealName-Pflicht herrscht und Ihr im Zweifelsfalle für Eure User geradestehen müsst. Gebt also nicht jedem Zugriff! Ich habe hierfür eine extra Gruppe s30 angelegt, die User nur bekommen, nachdem ich die eingewiesen habe.
S(y)sop ACS: Zugriffsbeschränkungen für Sysop-Funktionen. Üblicherweise s255.
Net A(d)dress: Hier wählen wir das passende Netz (z.B. FidoNet) mit unserer eigenen Node-Adresse aus, die wir zuvor in Schritt "4.2.1 Eigene Adressen" erstellt haben.
Export To: Hier wählen wir mindestens den Uplink Node aus, den wir zuvor in Schritt "4.2.2 Nodes (Up- & Downlink)" erstellt haben. Optional auch weitere Nodes und/oder Points, die wir mit Mails versorgen.
Or(i)gin: Origin-Line, die allen Mails angehängt wird, die aus der BBS versendet werden. (Werbung für die BBS)
(S)ponsor: Keine Ahnung...
R (T)emplate: Ansi-Template zum Lesen der von Mails
L Te(m)plate: Ansi-Template für die Mail-Listen
QWK Network: QWK-Netzwerk dieser Area (folgt)
QWK Base ID: QWK-Base-ID dieser Area (folgt)
Div. Colors: Könnt Ihr Euch denken...
(M)ax Msgs: Maximale Anzahl von möglichen Nachrichten in dieser Area.
Max Msg Age: Maximales Alter von Nachrichten in dieser Area.
New Scan: Soll diese Area in den "New-Mail-Scan" einbezogen werden?
QWK Scan: Soll diese Area in den "QWK-Scan" einbezogen werden?
B(a)se Type: Lokal, Echomail oder Netmail? In diesem Fall: Netmail
(B)ase Format: Dateiformat für die Message-Base-Datei. JAM ist moderner, Squish ist kompatibler.
(H)eader: Keine Ahnung...
Real Names: Herrscht Real-Name-Pflicht?
Autosigs: Sollen automatische Signaturen der User angehängt werden?
Pri(v)ate: Sind Mails in dieser Area privat oder öffentlich? Für Netmails: Yes
Pvt Reply: Sind Antworten privat?
All(o)w ANSI: Ansi in Nachrichten erlauben? (Vielerorts nicht erwünscht)

Semaphore Events

In unserer Beispiel-Konfiguration für BinkD haben lassen wir bereits bei eingehenden Dateien Semaphore-Files erstellen. Damit diese auch abgegriffen werden, müssen wir in MysticBBS passende Events erstellen. Dazu gehen wir in das Menü (E)ditors -> (E)vent Editor und suchen uns entweder einen passenden Event aus der Liste aus, um ihn zu bearbeiten oder erstellen einen neuen, indem wir / I drücken.

Outbound Mail

Bild 13: Beispiel-Konfiguration Semaphore Event für ausgehende Nachrichten
Active: Yes
Description: Freitext - Beschreibung des Events
Exec Hour: 0 - da es ein Semaphore-Event ist und nicht regelmässig ausgeführt wird.
Exec Min: 0 - s.o...
Shell: /opt/mystic/mutil /opt/mystic/export.ini - Auszuführendes Programm (Konfiguration s.u.)
Semaphore: echomail.out|netmail.out - Auslösende(s) Semaphore-File(s) (im Semaphore-Verzeichnis)
Node: 0 - Gar kein Node - lokale Ausführung.
Warning: 0 - Keine Warnung.
SUN-SAT: No - Keine regelmäßige Ausführung.

Incoming Mail

Bild 14: Beispiel-Konfiguration Semaphore Event für eingehende Nachrichten
Active: Yes
Description: Freitext - Beschreibung des Events
Exec Hour: 0 - da es ein Semaphore-Event ist und nicht regelmässig ausgeführt wird.
Exec Min: 0 - s.o...
Shell: /opt/mystic/mutil /opt/mystic/import.ini - Auszuführendes Programm (Konfiguration s.u.)
Semaphore: echomail.in|netmail.in - Auslösende(s) Semaphore-File(s) (im Semaphore-Verzeichnis)
Node: 0 - Gar kein Node - lokale Ausführung.
Warning: 0 - Keine Warnung.
SUN-SAT: No - Keine regelmäßige Ausführung.

mutil

In den Events haben wir ein Tool namens mutil gestartet. Dieses befindet sich, zusammen mit einer Beispiel-Konfiguration mutil.ini im Stammverzeichnis der MysticBBS Installation.

Um zu funktionieren benötigt mutil eine .ini-Datei, mit der konfiguriert wird, was es tun soll. Was das Tool alles kann seht Ihr in der Beispiel-Konfiguration mutil.ini. Wir interessieren uns jetzt aber nur für das Tossen eingehender und ausgehender Mails. Hierfür zwei Beispiel-Konfigurationen: import.ini und export.ini

Nodeliste(n) importieren

Auch das kann mutil. Auch hierzu eine Beispiel-Konfiguration: nlmerge.ini

Das ganze sollte am Besten bei Empfang neuer Nodelists über Semaphore-Files automatisiert werden, aber das habe ich auch noch vor mir. Ich werde dieses HOWTO entsprechend erweitern, wenn ich so weit bin.

Bis dahin bleibt der manuelle Start:

~# /opt/mystic/mutil /opt/mystic/nlmerge.ini

Die aktuelle FidoNet Nodelist als Web Download gibt es u.A. bei der Ambrosia BBS

System

Benutzer, Gruppen & Rechte

Mit den Standard-Einstellungen laufen BinkD und MysticBBS mit unterschiedlichen Benutzern, so dass BinkD nicht auf die in- und out-bound Verzeichnisse zugreifen kann und/oder MysticBBS nicht auf die Dateien. Um dieses Problem zu lösen können wir entweder den BinkD-Benutzer ftn der MysticBBS-Gruppe hinzufügen und andersherum und die Rechte des MysticBBS-Verzeichnisses entsprechend anpassen.

Zum Beispiel:

~# useradd -G mystic ftn
~# useradd -G ftn mystic
~# chown -R mystic:mystic /opt/mystic
~# chmod -R 770 /opt/mystic/echomail
~# chmod -R 770 /opt/mystic/semaphore
~# find /opt/mystic/echomail -type f -exec chmod 660 "{}" \;
~# find /opt/mystic/semaphore -type f -exec chmod 660 "{}" \;

(In diesem Beispiel läuft MysticBBS mit dem Benutzer und der Gruppe mystic und MysticBBS ist unter /opt/mystic/ installiert. Beides muss ggf. den lokalen Gegebenheiten angepasst werden.)

...oder man lässt BinkD einfach mit dem gleichen Benutzer laufen, wie MysticBBS.

Hierzu bearbeiten wir das Init-Script von BinkD und ersetzen in Zeile 26 & 28 Benutzer und Gruppe hinter dem Parameter --chuid durch die, mit denen auch MysticBBS läuft:

  start)
    log_daemon_msg 'Starting FTN mailer' $NAME
    [ -d /var/run/ftn/ ] || \
    install -d -o mystic -g mystic -m 0750 /var/run/ftn/
    start-stop-daemon --start --quiet --background --pidfile $PIDFILE \
  --chuid mystic:mystic --exec $DAEMON -- $OPTS
    log_end_msg $?
    ;;

Hiernach müssen noch die Rechte für /etc/binkd/* und /var/run/ftn dem neuen Benutzer angepasst werden:

~# chown root:mystic /etc/binkd/binkd.cfg
~# chown root:mystic /etc/binkd/binkd.inc
~# chown root:mystic /etc/binkd/bt_ibn.inc
~# chmod 640 /etc/binkd/binkd.cfg
~# chmod 640 /etc/binkd/binkd.inc
~# chmod 640 /etc/binkd/bt_ibn.inc
~# chown -R mystic:mystic /var/run/ftn

Nach einem Neustart von BinkD sollte dieser nun mit dem MysticBBS-Benutzer laufen und auch bereits seinen Dienst verrichten.

MailEchos Bestellen

Nun ist eigentlich alles fertig konfiguriert. Es fehlen nur noch die MailEchos. Um diese zu bestellen schreiben wir unsere(n) erste(n) Netmail(s) in unserer BBS an AreaFix mit der Adresse unseres Uplinks und als Subject das AreaFix-Kennwort, welches uns unser Uplink mitgeteilt hat. Als Inhalt erstmal nur %HELP.

Nach dem Speichern der Mail sollte relativ schnell eine Antwort vom AreaFix des Uplinks kommen (wenige Minuten) - wir koennen den Verlauf auch in den Logfiles verfolgen: /var/log/binkd/binkd und /opt/mystic/logs/fido.log

In der Antwort erklärt uns AreaFix, wie es bedient werden möchte. Hier gibt es kleine Unterschiede, je nach verwendeter Software. Wahrscheinlich versteht er jedoch folgende Kommandos:

%LIST Eine Liste aller abonnierbaren Echos
+<ECHONAME> Ein Echo bestellen
-<ECHONAME> Ein Echo abbestellen.

Bestellen wir zunächst einmal die Echos NODES.024 und NODES.240:

To: AreaFix (2:240/1234)
Subject: PaSSwOrD
+NODES.024
+NODES.240
%RESCAN NODES.024
%RESCAN NODES.240

Mit dem %RESCAN sorgen wir dafuer, dass wir auch gleich alle alten Mails geliefert bekommen. Wenig später sollten die Mails dann automatisch bei Euch ankommen, und die Echos mit den Standard-Werten aus der Datei import.ini erstellt werden.

Das war's: Ihr habt FidoNet in Eurer MysticBBS! Jetzt ran an die Tasten und kräftig Mails schreiben! :)