SAFT/sendfile

Aus wiki.archlinux.de

SAFT - Simple Asynchronous File Transfer ermöglicht es auf einfachste Weise, Daten und Nachrichten zu verschicken.

Vor/Nachteile

Vorteile:

  • Betriebsystemsunabhängigkeit: Wenn z.B. User A der Linux nutzt, User B der ein anderes Betriebsystem nutzt Daten schicken möchte, geht das ohne Probleme.
  • Der SAFT-Server läuft auf dem eigenen PC:
  • Einfachheit: "keep it simple": ein überschaubares Protokoll auf ASCII-Basis, so dass es leicht zu debuggen ist.

Nachteile:

  • Sicherheit: Dieses bezieht sich nur auf DynDNS. Wer also eine DynDNS nutzt sollte ein bischen aufpassen, wem er diese mitteilt.
  • Wie auch bei anderen Protokollen braucht auch die Gegenstelle SAFT/sendfile

benötigte Packete

Die Unix Implementation zu SAFT heißt "sendfile". Das Paket welches bei Arch in den Repositories zu finden ist, enthält,

  • sendfiled: Den Server
  • sendfile: Den Client um Daten zu verschicken
  • sendmsg: Den Client um Nachrichten zu verschicken
  • receive: Den Client um die empfangenen Daten abzuholen.

Des weiteren wird

  • xinetd

benötigt, da sendfile einen internen offenen Port braucht und diesen über die xinet sucht.

Installation

pacman -Sy sendfile xinetd

Konfiguration

sendfile: Sendfile selbst braucht keine Konfiguration. Mit den Standard Einstellungen die in

/usr/etc/sendfile.cf

zu finden sind, läuft es ohne Probleme.

xinetd: Die xinetd muss nun für den SAFT-Service angepasst werden. Die Konfigurations Datei findet ihr unter

/etc/xinetd.conf

Diese mit einen Editor öffnen und folgendes hinzufügen

service saft
{       
       socket_type = stream
       protocol = tcp
       wait = no
       user = root
       server = /usr/sbin/sendfiled
       port = 487
       disable = no
}

und speichern. Der Port 487 ist bei sendfile von Haus aus reserviert.

Nun wird xinetd in die

/etc/rc.conf

unter Daemons eingetragen, damit er beim booten mitgeladen wird.

Als nächstes muss in

/etc/hosts.allow

einmal xinetd und sendfiled eingetragen werden.

#
# /etc/hosts.allow
#
xinetd: ALL
sendfiled: ALL
# End of file