saned(8)

BEZEICHNUNG
saned - SANE-Netzwerkdaemon

ÜBERSICHT
saned [ -a [ Benutzername ] ] [ -u Benutzername ] [ -b Adresse ] [ -p Port ] [ -l ] [ -D ] [ -o ] [ -d n ] [ -e ] [ -h ]

BESCHREIBUNG
saned ist der SANE- (Scanner Access Now Easy) Daemon, der fernen Clients den Zugriff auf die auf dem lokalen Rechner verfügbaren bildgebenden Geräte ermöglicht.

OPTIONEN

saned akzeptiert die folgenden Optionen:

-a [Benutzername], --alone[=Benutzername]
    ist gleichbedeutend mit der Kombination der Optionen -l -D -u Benutzername. Jedoch ist der Benutzername optional und der ausführende Benutzer wird nur gesetzt, wenn dieser angegeben ist.

-u Benutzer, --user=Benutzer
    bewirkt, dass saned die Root-Rechte abgibt und als der angegebene Benutzer (und dessen Gruppe) ausgeführt wird.

-b Adresse, --bind=Adresse
    weist saned an, an die angegebene Adresse zu binden.

-p Port, --port=Port
    weist saned an, an dem angegebenen Port zu warten. Bei einem Wert von 0 wählt saned einen ansonsten unbenutzten Port. Die Vorgabe ist sane-port (6566).

-l, --listen
    führt saned in einem eigenständigen Daemon-Modus aus. In diesem Modus wartet saned auf eingehende Client-Verbindungen. Für Vorgänge in diesem Modus ist inetd(8) nicht erforderlich.

-D, --daemonize
    koppelt saned von der Konsole ab und führt es im Hintergrund aus.

-o, --once
    fordert, dass saned sich beendet, nachdem der erste Client sich beendet. Dies ist für das Debugging hilfreich.

-d n, --debug=n
    setzt die Debug-Ausgabe-Stufe von saned auf n. Erfolgte die Kompilierung mit aktiviertem Debugging, dann kann diesem Schalter eine Zahl folgen, die mehr oder weniger Debug-Informationen anfordert. Je größer die Zahl, desto ausführlicher die Debug-Ausgabe. Z.B. wird -d128 sämtliche Debug-Informationen erbitten. Die Stufe 0 erzeugt überhaupt keine Ausgabe. Der Vorgabewert ist 2.

-e, --stderr
    leitet die Debug-Ausgabe von saned in die Standardfehlerausgabe, statt in die Vorgabe Syslog.

-h, --help
    zeigt eine kurze Hilfemeldung.

Falls saned von anderen Programmen wie inetd(8), xinetd(8) und systemd(1) ausgeführt wird, dann lesen Sie bitte die Dokumentation der jeweiligen Programme, wie Befehlszeilenoptionen übergeben werden.

KONFIGURATION
Als aller erstes: saned ist nicht dazu gedacht, ans Internet oder andere, nicht vertrauenswürdige Netzwerke angebunden zu werden. Stellen Sie sicher, dass der Zugriff durch tcpwrappers und/oder eine installierte Firewall begrenzt ist. Verlassen Sie sich nicht auf die Authentifizierung von saned selbst. Führen Sie saned nicht als root aus, außer es ist unbedingt notwendig. Und installieren Sie saned nicht setuid root.

Die Konfigurationsdatei saned.conf enthält sowohl Optionen für den Daemon als auch die Zugriffsliste.

data_portrange = min_Port - max_Port
    gibt den für die Daten-Verbindung zu verwendenden Port-Bereich an. Wählen Sie einen Port-Bereich zwischen 1024 und 65535. Wählen Sie keinen zu großen Port-Bereich, da das zu Performance-Problemen führen kann. Verwenden Sie diese Option, falls Ihr saned-Server hinter einer Firewall steht. Falls diese Firewall eine Linux-Maschine ist, empfehlen wir nachdrücklich stattdessen das Netfilter-Modul nf_conntrack_sane.

data_connect_timeout = Zeitüberschreitung
    gibt die Zeit in Millisekunden an, die saned auf eine Datenverbindung warten wird. Ohne diese Option wird der Scanner über das Ende hinaus scannen und könnte, abhängig vom Backend, den Scanner beschädigen, falls die Datenverbindung noch nicht aufgebaut ist, bevor der Scanner das Ende des Scans erreicht hat. Geben Sie Null an, um das alte Verhalten zu erreichen. Die Vorgabe ist 4000ms.

Die Zugriffsliste besteht aus Rechnernamen, IP-Adressen oder IP-Subnetzen (CIDR-Notation), denen erlaubt wird, lokale SANE-Geräte zu verwenden. IPv6-Adressen müssen in Klammern eingeschlossen und sollten immer in ihrer komprimierten Form angegeben werden. Verbindungen von localhost sind immer erlaubt. Leere Zeilen und Zeilen, die mit einer Raute (»#«) beginnen, werden ignoriert. Eine Zeile, die als einziges Zeichen ein »+« enthält, wird so interpretiert, dass sie auf jeden Rechnernamen passt. Dies erlaubt es jeder fernen Maschine, Ihren Scanner zu benutzen und kann ein Sicherheitsrisiko darstellen. Daher sollten Sie das nicht verwenden, außer Sie wissen, was Sie tun.

Nachfolgend sehen Sie ein Beispiel für eine Konfigurationsdatei:

    # Daemon-Optionen
    data_portrange = 10000 - 10100
    # Zugriffsliste
    scan-client.somedomain.firm
    # Dies ist ein Kommentar
    192.168.0.1
    192.168.2.12/29
    [::1]
    [2001:db8:185e::42:12]/64

Die Groß- oder Kleinschreibung spielt bei Rechnernamen keine Rolle, daher ist EinRechner.com identisch zu einrechner.com.

KONFIGURATION DES SERVER-DAEMONS
Damit saned in seinem Standardbetriebsmodus korrekt funktioniert, ist es auch notwendig, die geeignete Konfiguration zu xinetd(8), inetd(8) oder systemd(1) hinzuzufügen (siehe unten). Beachten Sie, dass Ihr inetd(8) IPv6 unterstützen muss, falls Sie saned über IPv6 anbinden wollen. xinetd(8), openbsd-inetd(8) und systemd(1) unterstützen bekanntermaßen IPv6, prüfen Sie die Dokumentation Ihres inetd(8)-Daemons.

In den nachfolgenden Abschnitten wird die Konfiguration für inetd(8), xinetd(8) und systemd(1) detaillierter beschrieben.

Für die nachfolgenden Konfigurationen ist es nötig, eine Zeile der folgenden Form zu /etc/services hinzuzufügen:

    sane-port 6566/tcp # SANE-Netzwerkscanner-Daemon

Der offizielle IANA-Kurzname für Port 6566 ist »sane-port«. Der ältere Name »sane« gilt als veraltet.

INETD-KONFIGURATION
Es ist notwendig, eine einzelne Zeile zu der Konfigurationsdatei (/etc/inetd.conf) von inetd(8) hinzuzufügen.

Die Konfigurationszeile sieht normalerweise folgendermaßen aus:

    sane-port stream tcp nowait saned.saned /usr/sbin/saned saned

Falls Ihr System allerdings tcpd(8) für zusätzliche Sicherheitsüberwachung verwendet, können Sie die Zugriffssteuerung von saned deaktivieren, indem Sie ein »+« in saned.conf packen und stattdessen eine Zeile der folgenden Form in /etc/inetd.conf verwenden:

    sane-port stream tcp nowait saned.saned /usr/sbin/tcpd /usr/sbin/saned

Beachten Sie, dass beide Beispiele davon ausgehen, dass es sowohl eine Gruppe als auch einen Benutzer namens saned gibt. Wenn Sie diesem Beispiel folgen, stellen Sie bitte sicher, dass die Zugriffsrechte auf das Spezialgerät so gesetzt sind, dass saned auf den Scanner zugreifen kann (das Programm benötigt generell lesenden und schreibenden Zugriff auf Scanner-Geräte).

XINETD-KONFIGURATION
Falls xinetd(8) statt inetd(8) auf Ihrem System installiert ist, kann das nachfolgende Beispiel für /etc/xinetd.conf hilfreich sein:

    # default: off
    # description: Der Sane-Server akzeptiert Anfragen
    # auf Netzwerkzugriff auf einen lokalen Scanner mittels des
    # Netzwerks.
    service sane-port
    {
       port        = 6566
       socket_type = stream
       wait        = no
       user        = saned
       group       = saned
       server      = /usr/sbin/saned
    }

SYSTEMD-KONFIGURATION
saned kann mit expliziter Unterstützung für systemd(1) kompiliert werden. Dies ermöglicht die Protokollierung von Debugging-Informationen und deren Speicherung im Journal von systemd(1). Die systemd(1)-Unterstützung erfordert die Kompilierung mit auf dem System installiertem systemd-devel-Paket. Dies ist die bevorzugte Option.

saned kann mit systemd(1) verwendet werden, ohne dass die systemd(1)-Unterstützung einkompiliert ist, allerdings wird dann die Protokollierung von Debug-Informationen nicht unterstützt.

Die systemd(1)-Konfiguration ist für die beiden Optionen verschieden, daher werden beide nachfolgend beschrieben.

Systemd-Konfiguration für saned mit einkompiliertem Systemd
Für die systemd(1)-Konfiguration müssen zwei Konfigurationsdateien in /etc/systemd/system hinzugefügt werden.

Die erste Datei, die wir hier hinzufügen müssen, heißt saned.socket. Sie muss den folgenden Inhalt haben:

    [Unit]
    Description=Saned eingehendes Socket

    [Socket]
    ListenStream=6566
    Accept=yes
    MaxConnections=1

    [Install]
    WantedBy=sockets.target

Die zweite Datei, die hier hinzugefügt werden muss, ist saned@.service mit den folgenden Inhalten:

    [Unit]
    Description=Scanner Service
    Requires=saned.socket

    [Service]
    ExecStart=/usr/sbin/saned
    User=saned
    Group=saned
    StandardInput=null
    StandardOutput=syslog
    StandardError=syslog
    Environment=SANE_CONFIG_DIR=/etc/sane.d
    # Falls Sie in Ihrer Konfiguration nach Fehlern suchen müssen, entfernen
    # Sie das Kommentarzeichen vor der nächsten Zeile und passen Sie sie mit
    # den gewünschten Debug-Optionen an
    # Environment=SANE_DEBUG_DLL=255 SANE_DEBUG_BJNP=5

    [Install]
    Also=saned.socket

Sie müssen eine Umgebungsvariable für SANE_CONFIG_DIR setzen, die auf das Verzeichnis zeigt, in dem saned seine Konfigurationsdateien finden kann. Sie werden das »#« auf der letzten Zeile entfernen müssen und die Variablen für die gewünschten Debugging-Informationen setzen müssen, falls benötigt. Sie können mehrere Variablen setzen, indem Sie die Zuweisungen durch Leerzeichen trennen, wie das im obigen Beispiel gezeigt ist.

Anders als bei xinetd(8) und inetd(8) erlaubt systemd(1) das Mitschneiden der Fehlersuchausgabe von Backends, die mittels SANE_DEBUG_XXX gesetzt wurde. Lesen Sie die Handbuchseite für Ihr Backend, um zu sehen, welche Optionen unterstützt werden. Mit der oben dargestellten Dienste-Unit wird die Debugging-Ausgabe an das Systemprotokoll weitergeleitet.

Systemd-Konfiguration, wenn saned ohne Unterstützung für Systemd kompiliert wurde
Diese Konfigurationsdatei funktioniert auch, wenn saned MIT systemd(1)-Integrationsunterstützung kompiliert wurde, aber sie erlaubt nicht das Protokollieren der Debugging-Informationen.

Für die systemd(1)-Konfiguration für saned müssen zwei Konfigurationsdateien in /etc/systemd/system hinzugefügt werden.

Die erste Datei, die hier hinzugefügt werden muss, heißt saned.socket. Sie ist identisch zu der Version für systemd(1) mit einkompilierter Unterstützung. Sie muss den folgenden Inhalt haben:

    [Unit]
    Description=Saned eingehendes Socket

    [Socket]
    ListenStream=6566
    Accept=yes
    MaxConnections=1

    [Install]
    WantedBy=sockets.target

Die zweite Datei, die hinzugefügt werden muss, ist saned@.service. Diese unterscheidet sich von der Version mit einkompilierter systemd(1)-Unterstützung.

    [Unit]
    Description=Scanner Service
    Requires=saned.socket

    [Service]
    ExecStart=/usr/sbin/saned
    User=saned
    Group=saned
    StandardInput=socket

    Environment=SANE_CONFIG_DIR=/etc/sane.d

    [Install]
    Also=saned.socket

DATEIEN

/etc/hosts.equiv
    Den in dieser Datei aufgeführten Rechnern wird der Zugriff auf alle lokalen SANE-Geräte erlaubt. Warnung: Diese Datei führt zu erheblichen Sicherheitsrisiken und ihr Einsatz wird nicht empfohlen.

/etc/sane.d/saned.conf
    Enthält eine Liste von Rechnern, denen der Zugriff auf lokale SANE-Geräte erlaubt wird (siehe auch die obige Beschreibung von SANE_CONFIG_DIR).

/etc/sane.d/saned.users
    Falls diese Datei Zeilen der Form

    Benutzer:Passwort:Backend

    enthält, ist der Zugriff auf die aufgelisteten Backends eingeschränkt. Ein Backend kann mit verschiedenen Benutzer/Passwort-Kombinationen mehrfach aufgelistet werden. Der Server verwendet MD5-Hashes, sofern dies vom Client unterstützt wird.

UMGEBUNGSVARIABLEN

SANE_CONFIG_DIR
    Diese Umgebungsvariable gibt eine Liste von Verzeichnissen an, die die Konfigurationsdatei enthalten können. Auf *NIX-Systemen sind die Verzeichnisse durch Doppelpunkte (:) getrennt, unter OS/2 durch Semikola (;). Falls diese Variable nicht gesetzt ist, wird in zwei Standardverzeichnissen nach der Konfigurationsdatei gesucht: zuerst im aktuellen Arbeitsverzeichnis (.) und dann in /etc/sane.d. Falls der Wert der Umgebungsvariable mit dem Verzeichnis-Trennzeichen endet, dann werden die Standardverzeichnisse nach den explizit angegebenen Verzeichnissen durchsucht. Wenn Sie beispielsweise SANE_CONFIG_DIR auf »/tmp/config:« setzen, wird in den Verzeichnissen »tmp/config«, ».« und »/etc/sane.d« gesucht (in dieser Reihenfolge).

SIEHE AUCH
sane(7), scanimage(1), xscanimage(1), xcam(1), sane-dll(5), sane-net(5), sane-»Backendname«(5), inetd(8), xinetd(8), systemd(1)
http://www.penguin-breeder.org/?page=sane-net

AUTOR
David Mosberger

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer (debian-l10n-german@lists.debian.org).