SMTP-Import

Aus Amateurfunk Wiki

Wechseln zu: Navigation, Suche

Um eine standardisierte Importschnittstelle zu externen Programmen zu bieten, die auf einem definiertem Kommunikationsprotokoll basiert, ist ein SMTP-Server im FunkrufMaster implementiert. Über diesen Server können Nachrichten empfangen werden, die dann als Funkruf ausgestrahlt werden.

Die Funktionalität und Konfiguration dieses Servers wird im folgenden Beschrieben.

Inhaltsverzeichnis

Die Zugriffskontrolle

Um zu verhinden, dass Unbefugte Nachrichten ins Funkrufnetz einspeisen findet eine Zugriffskontrolle statt. Dazu gibt es in der Hauptkonfigurationsdatei frmaster.conf den Parameter SMTP_ACCESS<n>, wobei n eine fortlaufende Zahl beginnend mit 0 ist. Dieser Parameter enthält jeweils einen IP-Nummernbereich, aus dem Zugriffe erlaubt sind. Der IP-Nummernbereich wird durch eine IP-Nummer und eine Maske angegeben. Hier einige Beispiele:

SMTP_ACCESS0=127.0.0.1,255.255.255.255
SMTP_ACCESS1=44.0.0.0,255.0.0.0
SMTP_ACCESS2=0.0.0.0,0.0.0.0

SMTP_ACCESS0 erlaubt nur Zugriffe, die vom lokalen Rechner über as Loopback-Interface kommen. SMTP_ACCESS1 erlaubt darüber hinaus auch Zugriffe, die aus dem Amateurfunk-IP-Netz kommen. Schliefllich erlaubt SMTP_ACCESS2 Zugriffe von jeder beliebigen IP-Nummer. In unserem Beispiel macht SMTP_ACCESS2 natürlich alle vorherigen Konfigurationen obsolet.

Statt IP-Nummernblöcke kann man mit SMTP_ACCESS_HOST<n> auch den Zugriff von einem Rechner mit einem bestimmten Hostnamen erlauben. Damit ist es auch möglich, Zugriffe von Rechnern mit wechselnden IP-Nummern zu erlauben, die aber einen Auflösbaren Hostnamen, z.B. über dyndns.org, haben.

SMTP_ACCESS_HOST0=dh4dai.dyndns.org

Anmerkung: Die letztgenannte Konfigurationsmöglichkeit über Hostnamen ist zwar vorgesehen aber noch nicht implementiert.

Absenderadresse

Damit dem Funkruf ein Funkamateur als Absender zugeordnet werden kann, muss die Absenderadresse ein gültiges Amateurfunkrufzeichen enthalten. Dabei muss entweder der lokale Teil oder eine Komponente des globalen Teils einem Rufzeichen entsprechen. Findet sich sowohl im lokalen als auch im globalen Teil ein Rufzeichen, hat das Rufzeichen im loakeln Teil priorität. Gültige Absender wären somit: dh4dai@qsl.net, root@db0xy.ampr.org oder dk1xz@db0abc.dyndns.org. Keine Gültige Adresse wäre dagegen admin@db0abc-netz.de.

Empfängeradresse

Damit die Nachricht ins Funkrufnetz eingespeist wird, muss aus der Empfängeradresse hervorgehen, an welchen Empfänger oder in welche Rubrik die Nachricht gesendet werden soll. Der globale Teil der Empfängeradresse muss stets der Hostname sein, der mit dem Parameter SMTP_SERVER_ADRESSE festgelegt wurde. Für den lokalen Teil gibt es vier Möglichkeiten.

  • Ein Rufzeichen
    Entspricht der lokale Teil der Empfängeradresse einem gültigen Rufzeichen, wird überprüft, ob sich dieses Rufzeichen in der Benutzerdatenbank befindet. Sofern dort eine Pager-ID eingetragen ist, werden die ersten 80 Zeichen aus dem Textteil der Mail als persönlicher Funkruf an dieses Rufzeichen ausgesendet.
  • Ein Gruppenname
    Entspricht der lokale Teil dem Namen einer bei diesem FunkrufMaster eingerichteten Gruppe, werden die ersten 80 Zeichen aus dem Textteil der Mail an alle Mitglieder dieser Gruppe gesendet.
  • Ein Rubrikenname
    Entspricht der lokale Teil schliefllich dem Namen einer bei diesem FunkrufMaster eingerichteten Rubrik, werden die ersten 80 Zeichen aus dem Textteil dieser Mail als Broadcast-Nachricht in diese Rubrik geschrieben.
  • shell
    Lautet der lokale Teil der Empfängeradresse shell, so wird ein Benutzerinterface geöffnet und sämtliche Zeilen aus dem Textteil der Mail als Konsolenkommandos von FunkrufMaster ausgeführt. Diese Funktionalität wird später näher erläutert.


Betreffzeile

Die Betreffzeile wird benutzt, um zusätzliche Optionen angeben zu können. Dies können z.B. Zielgebiete, Slots oder die Ausführung mit Sysop-Status sein. Jede Zusatzoption besteht aus einem Schlüsselwort und ggf. einem Parameter. Schlüsselwort und Parameter sind durch ein Leerzeichen getrennt. Mehrere Optionen werden durch Kommata getrennt. Die Möglichen Zusatzoptionen sind:


  • DEST
    Mit DEST kann ein Zielgebiet angegeben werden, in das der Funkruf gesendet wird.
  • SLOT
    Diese Option ist nur bei Nachrichten sinnvoll, die in Skyperrubriken geschrieben werden. Hierbei wird mit SLOT wird ein Slot der Skyperrubrik festgelegt, in der die Nachricht geschrieben wird.
  • LFTM
    Diese Option gibt die Lebensdauer der Nachricht in Tagen an. Sie ist ebenfalls nur bei Nachrichten in Skyperrubriken sinnvoll.
  • PASS
    Soll z.B. ein Konsolenkommando mit Sysopstatus ausgeführt werden, kann dies mit der PASS-Option erreicht werden. Als Parameter muss ein Passwort folgen. Stimmt dieses Passwort mit dem überein, was mit dem Konfigurationsparameter SMTP_SYSOP_PASSWORT definiert wurde, wird in den Sysopstatus umgeschaltet. Dies betrifft sowohl die Ausführung von Konsolenkommandos als auch die Zugriffsrechte bei schreiben in Skyperrubriken.
  • Da das hierbei verwendete Passwort sowohl als Parameter der PASS Option bei der SMTP-Verbindung offen übertragen wird als auch unverschlüsselt in der Konfigurationsdatei frmaster.conf vorliegt, bietet dieser Mechanismus hohe Risiken. Er sollte daher nur verwendet werden, wenn dies unbedingt notwendig ist.
  • NOAN
    Bei der Ausführung von Konsolenkommandos werden die Ausgaben ebenfalls wieder als EMail an den Absender zurück geschickt. Dies kann mit der Option NOAN unterbunden werden. NOAN benötigt keinen Parameter.


Der Textteil

Abgesehen von der Betreffzeile werden sämtliche Headerzeilen der EMail ignoriert. Im Fall der Konsolenkommandos wird der Textteil nach den Headerzeilen zeilenweise an ein Benutzerinteface als Eingabe gegeben. Andernfalls werden die ersten 80 Zeichen des Textteils als Funkruf verschickt. Eine Formatierung findet nicht statt.

Konsolenkommandos

Ist die EMail an die Adresse shell@<SMTP_SERVER_NAME> gerichtet, wird eine Instanz der Benutzerschnittstelle geöffnet und der Inhalt der EMail Zeilenweise an diese Instanz als Eingaben übergeben.

Persönliche Werkzeuge