Die Node-Software wurde von Tomi Manninen
(tomi.manninen@hut.fi
) entwickelt und basiert auf dem
Original-PMS-Programm. Es stellt eine vollständige und flexible
Node-Funktion zur Verfügung, die man einfach einrichten kann.
In den aktuellen AX.25-Utilities ist das Programm nicht mehr
enthalten, es liegt vielmehr als separates Paket auf
ftp.hes.iki.fi
. Dieses Paket ist nur mit einem
Kernel 2.2.x lauffähig. Das Programm erlaubt den verbundenen
Nutzern, Telnet-, NetROM-, ROSE- und AX.25-Verbindungen
aufzubauen und bestimmte Informationen zu erhalten, wie
Finger, Nodes und Heard-Listen usw.
Der Node kann sehr einfach so eingestellt werden, daß er jedes
gewünschte Linux-Kommando ausführen kann. Das Programm node
wird normalerweise vom ax25d
aufgerufen, kann aber auch
vom inetd
gestartet werden, um Nutzern Zugriff via
Telnet zu ermöglichen. Auch ein Aufruf von der Kommandozeile
ist möglich.
In dieser Datei wird die hauptsächliche Konfiguration des
Programms node
vorgenommen. Sie ist eine einfache Textdatei
mit folgendem Format:
#/etc/ax25/node.conf
# Konfigurationsdatei für das Programm node.
#
# Zeilen, die mit einem '#' beginnen, sind Kommentare und werden vom
# Programm ignoriert.
# Hostname
# Gibt den Rechnernamen der Node-Maschine an
hostname radio.gw.vk2ktj.ampr.org
# Local Network
# hier kann man einstellen, was als 'Lokal' gilt, wichtig für
# Zugriffsrechte in node.perms
localnet 44.136.8.96/29
# Hidden Ports
# Die hier angegebenen Ports sind für Nutzer unsichtbar. Sie werden
# vom Befehl (P)orts nicht ausgegeben.
hiddenports rose netrom
# Callserver
# Wenn eingestellt, wird ein Callserver zur Verfügung gestellt
callserver zone.oh7rba.ampr.org
# Node-Identifikation.
# Dieser Text erscheint im Node-Prompt
NodeId LINUX:VK2KTJ-9
# NetRom port
# Name des für vom Node ausgehende
NetROM-Verbindungen verwendeten
# NetROM-Ports
NrPort netrom
# Node Idle Timeout
# Gibt an, nach welcher Zeit der Inaktivität eine Verbindung vom Node
# beendet wird (in Sekunden)
idletimout 1800
# Connection Idle Timeout
# Gibt an, nach welcher Zeit der Inaktivität eine Verbindung, die über
# den Node läuft, beendet wird (in Sekunden)
conntimeout 1800
# Reconnect
# Gibt an, ob die Nutzer zum Node zurückverbunden werden sollen, wenn
# die abgehende Verbindung getrennt wurde (reconnect) oder ob sie
# vollständig vom Node getrennt werden sollen
reconnect on
# Command Aliases
# Eine Möglichkeit, komplexe Befehle einfacher zu gestalten
alias CONV "telnet vk1xwt.ampr.org 3600"
alias BBS "connect radio vk2xsb"
# External Command Aliases
# Möglichkeit, externe Befehle unter node ausführen zu können
# extcmd
# Nur Flag == 1 ist implementiert
# hat das gleiche Format wie in der Datei /etc/ax25/ax25d.conf
extcmd PMS 1 root /usr/sbin/pms pms -u %U -o VK2KTJ
# Logging
# Mitschriften ins System-Log.
# 3 - ausführlichste Form, 0 - ausgeschaltet
loglevel 3
Das Programm node
erlaubt, einzelnen Nutzern Zugriffsrechte
zuzuteilen. Diese erlauben festzulegen, welche Nutzer
beispielsweise Befehle wie (T)elnet oder (C)onnect ausführen dürfen
und welche nicht.
Diese Information wird in der Datei /etc/ax25/node.perms
abgelegt, welche fünf Felder enthält. In allen Feldern ist der
Stern »*« das Zeichen dafür, daß alle möglichen Optionen für das
jeweilige Feld gelten sollen. Das ist nützlich, wenn
man Standard-Festlegungen treffen will. Die einzelnen Felder:
Das Rufzeichen des Nutzers, für den die folgenden Regelungen gelten sollen. SSID-Werte werden ignoriert, man sollte also nur das Rufzeichen angeben.
Für jedes Protokoll oder Zugriffsmethode gibt es auch Zugriffsrechte. Beispielsweise kann man Nutzern, die über AX.25 oder NetROM verbunden sind, erlauben, die (C)onnect-Option zu verwenden, diese aber anderen, die z.B. über telnet eingeloggt sind, verwehren.
Man kann hier also festlegen, für welches Protokoll die Zugriffsrechte gelten sollen:
Nutzer ist über eine AMPR-Adresse via Telnet verbunden
Nutzer ist über AX.25 verbunden
Node wurde von der Kommandozeile gestartet
Nutzer ist von einer nicht-lokalen, nicht- AMPR-Adresse aus verbunden
Nutzer ist von einem »lokalen« Rechner aus verbunden
Nutzer ist über NetROM verbunden
Nutzer ist über ROSE verbunden
Alle möglichen Verbindungsarten
Für AX.25-Nutzer lassen sich Zugriffsrechte auch auf der Basis des verwendeten Ports festlegen. Damit kann man definieren, was AX.25-Nutzer in Abhängigkeit von dem Port, über den sie verbunden sind, tun dürfen. Im dritten Feld steht bei dieser Möglichkeit dann der Portname. Das Ganze ist nur für AX.25-Verbindungen sinnvoll.
Optional kann man den Node so einstellen, daß er die Nutzer nach einem Paßwort fragt. Das kann sinnvoll sein, um Nutzer mit vielen Zugriffsrechten zu schützen. Das Paßwort steht dann im vierten Feld der Datei.
Zugriffsrechte. Dieses Feld ist das letzte bei jedem
Eintrag in /etc/ax25/node.perms.
Es ist als Bit-Feld codiert, wobei jede Option einem
Bit entspricht, das diese einschaltet, wenn es gesetzt
ist, und ausschaltet, wenn es nicht gesetzt ist.
Hier eine Liste der steuerbaren Optionen und ihrer Bitwerte:
Wert Beschreibung
------------------------------------------------------------
1 Login erlaubt
2 AX.25-(C)onnects erlaubt
4 NetROM-(C)onnects erlaubt
8 (T)elnet zu lokalen Rechnern erlaubt
16 (T)elnet zu AMPR-Net-Rechnern (44.0.0.0)
erlaubt
32 (T)elnet zu nicht-lokalen, nicht-AMPR-Net-
Rechnern erlaubt
64 Versteckte Ports für AX.25-(C)onnects erlaubt
128 ROSE-(C)onnects erlaubt
Um die Zugriffsrechte festzulegen, rechnet man die Werte für alle Rechte des Users zusammen und schreibt die Summe in das fünfte Feld.
Die Datei node.perms
könnte also etwa so aussehen:
# etc/ax25/node.perms
#
# Der Nodebetreiber ist VK2KTJ, sein Paßort ist "secret"
# und er hat alle Zugriffsrechte bei allen Verbindungsarten
vk2ktj * * secret 255
# Folgende Nutzer dürfen keine Verbindungen aufbauen
NOCALL * * 0
PK232 * * 0
PMS * * 0
# INET-Nutzer dürfen keine Verbindungen aufbauen
* inet * 0
# AX.25-, NetROM, lokale, Host- und AMPR-Nutzer können (C)onnects
# und (T)elnet-Verbindungen zu anderen lokalen und AMPR-Rechnern,
# jedoch nicht zu anderen IP-Adressen aufbauen
* ax25 * * 159
* netrom * * 159
* local * * 159
* host * * 159
* ampr * * 159
Das Programm node
wird normalerweise vom ax25d
aus
gestartet. Dazu müssen entsprechende Einträge in der Datei
/etc/ax25/ax25d.conf
vorgenommen
werden. In der Beispielkonfiguration haben die Nutzer die Wahl, ob sie eine
Verbindung zum Node oder zu anderen Diensten aufbauen wollen.
Bei ax25d
gibt es zu diesem Zweck sogenannte
Port-Aliases. Beispiel:
Bei der weiter oben angegebenen Konfiguration für ax25d
soll unter dem Rufzeichen VK2KTJ-1 der Node erreichbar sein.
Dazu wird folgendes in der Datei /etc/ax25/ax25d.conf
hinzugefügt:
[vk2ktj-1 via radio] default * * * * * 0 root /usr/sbin/node node
Damit wird festgelegt, daß der Linux-Kernel-Code alle
Verbindungsanforderungen für das Rufzeichen VK2KTJ-1, die er auf
dem AX.25-Port radio hört, beantwortet und das Programm
node
startet.
Es ist leicht möglich, den Node auch von einer Telnet-Verbindung aus zu nutzen. Zunächst ist festzulegen, zu welchem Port die die Nutzer ihre Verbindung aufbauen sollen.
Im Beispiel wurde willkürlich Port 3694 gewählt, Informationen
darüber, wie man den Telnet-Daemon durch node
ersetzen kann,
finden sich in Tomis Dokumentation.
Zwei Dateien sind anzupassen. Der Datei /etc/services
fügt man hinzu:
node 3694/tcp # OH2BNS's Node-Programm
und in /etc/inetd.conf
kommt zusätzlich:
node stream tcp nowait root /usr/sbin/node node
Nach einem Neustart des inetd
(vorher ein kill -HUP 1
)
bekommen alle Nutzer, die eine Telnet-Verbindung zum Port 3694
aufgebaut haben, eine Abfrage nach Loginname und Paßwort
(wenn eingerichtet) und werden dann an node
weitergegeben.