Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "GiacomoFabris/Prova12"
Differenze tra le versioni 2 e 3
Versione 2 del 28/01/2012 12.29.01
Dimensione: 14749
Commento:
Versione 3 del 28/01/2012 15.29.45
Dimensione: 14862
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 29: Linea 29:
}}}

Per applicare immediatamente le modifiche, riavviare saned con il comando{{{
sudo service saned restart

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

SANE permette di configurare un server.scanner, in modo che questo possa essere accessibilee da tutti i computer in una rete. Il programma utilizzato in questo articolo è saned (sane daemon). La maggior parte dei pacchetti è già presente su Ubuntu, in quanto essi sono presenti già al momento dell'installazione.

Configurazione del server

Si ricorda che tutti i comandi relativi alla configurazione del server e del client devono essere eseguiti con permessi di amministrazione.

Prima di procedere installare il pacchetto sane-utils

Avviare saned al boot

Di default, saned non viene avviato al boot del sistema. Aprire perciò con un editor di testo e con permessi di amministrazione il file /etc/default/saned. Modificare quindi la riga

# Set to yes to start saned
RUN=no

in

# Set to yes to start saned
RUN=yes

Per applicare immediatamente le modifiche, riavviare saned con il comando

sudo service saned restart

saned beim Systemstart starten

Der Netzwerk-Daemon saned wird standardmäßig nicht beim Hochfahren des Rechners gestartet. Dazu muss in einem Editor[4] mit Root-Rechten in der Datei /etc/default/saned auf allen verwendeten Rechnern der Eintrag

# Set to yes to start saned
RUN=no

zu

# Set to yes to start saned
RUN=yes

geändert werden. Auch ein [#Neustart-saned Neustart] scheitert, wenn die Datei nicht abgeändert wird.

Rechte für USB-Scanner anpassen

Bei USB-Scannern müssen ggf. auf dem Server die Zugriffsrechte für USB-Geräte in der Datei /lib/udev/rules.d/50-udev-default.rules in einem Editor von

# libusb device nodes
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664"

in

# libusb device nodes
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666" 

geändert werden.

Netzwerkzugriff für Clients freigeben

Häufige Fehlerquelle - die Rechner, die den Scanner auf dem Server verwenden wollen, müssen explizit freigegeben werden. 

In der Datei /etc/sane.d/saned.conf werden mit einem Texteditor die Hostnamen eingetragen, die auf den Scanserver zugreifen dürfen.

Einträge können zum Beispiel sein

192.168.0.5          # IP-Adresse für einen einzelnen Rechner
rechner1.zuhause     # Alias Name für einen einzelnen Rechner
192.168.0.0/24       # Alle Rechner mit Adressen 192.168.0.1 bis 192.168.0.254

Man sollte in jedem Fall die Verwendung des Scandienstes auf bekannte Rechner/Netze einschränken und niemals, wie teilweise zu lesen mit "+" global freigeben.

Neustart saned

Nach Änderungen an der Konfiguration muss der saned-Daemon im Terminal [2] auf dem Server und dem Client mit folgendem Befehl neu gestartet werden:

sudo /etc/init.d/saned restart   # Lucid oder früher
sudo service saned restart       # ab Maverick

Konfiguration des Client

In der Datei /etc/sane.d/net.conf wird mit einem Texteditor die Netzwerkadresse desjenigen Rechners eingetragen, an dem der Scanner angeschlossen ist. Es können auch mehrere Scanserver angegeben werden.

192.168.0.5           # IP-Adresse für einen einzelnen Rechner
meinserver1.zuhause   # Aliasname
einzweitersever.firma # Aliasname

SANE sucht dann auf all diesen Rechnern nach Scannern, was jedoch zu Wartezeiten auf dem Clientrechner führen kann. Hier sollte man also keine Netzwerkadressen für ganze Netzwerke (z.B. 192.168.0.0/24) angeben, sondern nur einzelne Rechner. In der Regel erfolgt die Erkennung dann innerhalb weniger Sekunden.

Ist der Rechner - oder gar mehrere - nicht erreichbar, so kann dies zu sehr langen Wartezeiten führen. Mit dem folgenden Eintrag in die /etc/sane.d/net.conf kann die Wartezeit auf z.B. 10 Sekunden pro Server festgelegt werden:

connect_timeout = 10

Konfiguriert man die Clientdateien auch auf dem Scanserver selbst, so erhält man __zwei__ Scanner auf diesem Rechner. Einen, welcher direkt über das für den jeweiligen Scanner verwendete SANE-Backend (z.B. `epson`) auf den Scanner zugreift und einen, welcher über das lokale Netzwerk des Rechners zur Verfügung gestellt wird (SANE-Backend `net`). 

Testen

Im Terminal

Zum Testen in einem Terminal [2] verwendet man scanimage -L, hier ein Beispiel mit einem Epson-Scanner.

scanimage -L

ergibt am Scanserver folgende Ausgabe:

device `epson:/dev/sg2' is a Epson Perfection1200 flatbed scanner

und am Client:

device `net:server:epson:/dev/sg2' is a Epson Perfection1200 flatbed scanner

Um bei mehreren Geräten einen erkannten Scanner für den Test - oder auch für den Aufruf einer speziellen Anwendung wie scanimage - festzulegen, kann man global die [:Umgebungsvariable:] SANE_DEFAULT_DEVICE setzen oder einem Befehl voranstellen.

SANE_DEFAULT_DEVICE='net:server:epson:/dev/sg2'

In der grafischen Oberfläche

Zum Testen in der grafischen Oberfläche verwendet man ein beliebiges [:Scanner/Software:Scanprogramm].

Bei der Verwendung des [#Passwortschutz Passwortschutzes] des `saned` muss bekannt sein, ob das jeweilige Programm diese Funktion unterstützt (bei dem Programm [:XSane:] ist dies z.B. der Fall). 

Bild(./sanetwain-main.png, 200, right)

Zugriff über SaneTwain von Windows-Clients aus

Der Zugriff funktioniert auch über Windows-Rechner (getestet mit Windows 7 (64-bit) und XP (32-bit)); dazu kann das Programm [http://sanetwain.ozuzo.net/ SaneTwain] {en} verwendet werden. Auf dem Ubuntu-Server muss ggf. der eigene Benutzer in der Gruppe saned aufgenommen werden [5], damit der Zugriff dauerhaft erfolgen kann.

Im SaneTwain-Einstellungsdialog, der beim ersten Programmstart erscheint, muss die IP-Adresse des Servers angegeben werden, dann kann auf den/die angeschlossenen Scanner zurückgegriffen werden; ggf. auch der Benutzername des derzeit am Server angemeldeten Benutzers. Der Funktionsumfang der Software ist mit einfacheren SANE-Programmen vergleichbar, reicht aber nicht an [:XSane:] heran. Hier gilt außerdem, wie bei allen SANE-Programmen, dass der Funktionsumfang stark von Möglichkeiten der verwendeten Hardware abhängig ist. Nähere Einzelheiten zur Konfiguration und Benutzung findet man auf der Projektseite.

Für Mac-Clients sollte der Zugriff über das Programm [http://www.ellert.se/twain-sane/ Twain-Sane] {en} erfolgen können (nicht getestet!).

Problemlösungen

Wenn ein Scanprogramm vom Server oder einem der Clienten aus auf den Scanner zugreift, wird er normalerweise von anderen Rechnern solange nicht gefunden, bis das jeweilige Programm beendet ist!

Benutzer in saned-Gruppe aufnehmen

Ggf. ist es allgemein nötig, den aktuellen Benutzer auf dem Server mit in die Gruppe saned aufzunehmen, damit der Zugriff von den Clienten auf den Scanner möglich ist.

Portfreigabe im Netzwerk

Bei aktuellen Ubuntu-Versionen ist die Freigabe standardmäßig aktiviert, ggf. auf dem Server die Datei /etc/services überprüfen. Es muss folgender Eintrag vorhanden sein, ansonsten nachtragen:

sane-port       6566/tcp        sane saned      # SANE network scanner daemon

Wie viele andere Netzwerkdienste ist saned hier einer speziellen Netzwerk-Portnummer (6566) zugeordnet, wodurch er über das [wikipedia:TCP:]-Netzwerkprotokoll angesprochen werden kann. Aus Sicherheitsgründen ist der saned-Daemon über die saned-Gruppe abgesichert. Damit ist das Protokoll, welches SANE benutzt, auch im Netzwerk ansprechbar.

Neben dem Port `6566` verwendet der Scandaemon `saned` einen weiteren Datenport, welcher vom jeweiligen Betriebssystem festgelegt wird - nachzulesen in der [:man:Manpage] von `saned`. Deswegen müssen ggf. bei älteren Ubuntuversionen alle Ports auf dem Server größer 1024 für einkommende Datenverbindungen von Clients freigeschaltet werden. Bei der Verwendung z.B. von [http://www.simonzone.com/software/guarddog/ guarddog] {en} als Firewall für Ubuntu hat die benutzerdefinierte Freigabe des Port 6566 völlig zur einwandfreien Funktion ausgereicht; in einem [:FritzBox:]-Netzwerk ist keine Freigabe erforderlich.

SANE-Netzwerkbackend aktivieren

In aktuellen Ubuntu-Versionen ist der Netzwerktreiber schon aktiviert. Ggf. die Datei /etc/sane.d/dll.conf überprüfen, die bestimmt, welche SANE-Backends aktiv sind. Das für das Netzwerk zuständige Backend heißt net und bewirkt, dass nach Netzscannern gesucht wird. In der Datei /etc/sane.d/dll.conf muss also die Zeile

net

eingetragen und nicht mit einem "#" am Anfang auskommentiert sein.

Gelegentlich wird das Gerät nicht mehr unter der ursprünglichen Geräteadresse - z.B. '''/dev/sg2''' - gefunden. Dies kann passieren, wenn das Gerät z.B. vom SCSI- oder USB-Bus getrennt und neu angeschlossen wurde, und dann unter einer anderen Geräteadresse geführt wird, z.B. '''/dev/sg3'''. Kommt dies öfter vor, so empfiehlt es sich, eine [:udev:]-Regel anzulegen, welche auch beim "Reconnect" eine eindeutige Gerätedatei erzeugt (z.B. '''/dev/epson1250''' für einen Epson Scanner). Der Artikel [:udev:] erklärt die Vorgehensweise ausführlich. 

Wird der Scanner auch dann nicht gefunden, so geht man folgendermaßen vor:

  1. Prüfen, ob der Scanner am Scanserver funktioniert (siehe [#Testen Testen]). Es kann auch sinnvoll sein, verschiedene Benutzer zu testen, ob sie auf dem Scanserver auch den Scanner sehen können. So sollte man den Test zuerst mit root machen danach mit einem anderen Benutzer.

  2. Netzwerkverbindung prüfen.
    • Steckverbindungen o.k.?
    • Firewall aktiv und Port 6566 nicht freigegeben? Zum Beispiel in einem Terminal [2] den Server vom Client aus an pingen oder mit telnet die Verbindung zum Port 6566 prüfen

      ping IPdesScanServers
      telnet IPdesScanServers 6566
  3. Wurde nach dem Editieren der Konfigurationsdateien der saned gestartet bzw. neu gestartet?

  4. Anleitung von [#Voraussetzungen vorne] nochmal Punkt für Punkt durchgehen.

Weiterführende Hinweise findet man in den [#Links Links] auf der Seite über den "SANE Network Daemon".

Sicherheitsaspekte

Firewall

Zur generellen Empfehlung, wie beim Einsatz einer [:Personal_Firewalls:Firewall] vorzugehen ist, wurde schon [#Portfreigabe-im-Netzwerk weiter oben] hingewiesen. Es muss der Port 6566 geöffnet sein.

Die weiteren Punkte setzten profundes Wissen voraus oder zumindest eine eingehende Beschäftigung mit dem jeweiligen Thema. Sie sind für die als getestet angebenenen Ubuntu-Version [:Lucid:], [:Maverick:] und [:Natty:] nicht getestet!

TCP-Wrapper

Der Betrieb eines Rechners, welcher auch mit dem Internet verbunden ist birgt immer die Gefahr eines Angriffs in sich. Da der Internet-Superserver inetd viele Dienste zur Verfügung stellt, macht er das System dementsprechend anfällig für Attacken. Es sei deshalb auf die Möglichkeit der Verwendung eines [:inetd: TCP-Wrappers] verwiesen. saned lässt sich aber in aktuellen Ubuntuversionen ganz ohne Internet-Superserver betreiben.

Passwortschutz

Den Scandaemon saned auf dem Server kann man seit der SANE-Version 1.0.4 für einzelne Benutzer und Scanner passwortgeschützt betreiben. Dies gilt für Zugriffe mit dem Programmen scanimage und [:XSane:], andere [:Scanner/Software: Scanprogramme] sollten erst auf die Zusammenarbeit mit dieser Funktionalität hin getestet werden.

Dazu muss die Konfigurationsdatei /etc/sane.d/saned.users erstellt werden. In dieser kann zeilenweise einem Benutzer ein Passwort zugeordnet werden. Das Passwort kann 127 Zeichen lang sein (kein \r, \n, \000 erlaubt). Hier am Beispiel eines Epson-Scanners und des Benutzers joe.

# /etc/sane.d/saned.users
# benutzername:password:backend
joe:mein*sicheres+passwort:epson

Damit Benutzer das Passwort nicht immer wieder eintippen müssen, können sie in ihrem Heimatverzeichnis in einem versteckten Unterverzeichnis .sane in der Datei pass das Passwort speichern. Dazu muss sowohl der Benutzername, als auch die genaue Bezeichnung des zu verwendenden Scanners angegeben werden. Letzteres erfährt man über die Eingabe von scanimage -L in einem Terminal [2] auf dem Client.

# ~/.sane/pass
# benutzername:password:ressource
joe:mein*sicheres+passwort:net:server:epson:/dev/sg2

Wichtig: Damit diese Datei nicht von anderen gelesen werden kann, sollte man die Rechte[6] zum Lesen und Schreiben der Datei pass unbedingt auf den eigenen Benutzer beschränken, z.B. in einem Terminal [2]:

chmod 0600 ~/.sane/pass

Um serverseitige Attacken zu verhindern, sollte das Programm scanimage in Zusammenhang mit der Verwendung des Passwortschutz mit dem Parameter --accept-md5-only aufgerufen werden. Für andere Programme sind keine ähnlichen Vorgehensweisen bekannt. Ebenso ist es klug, für den Scannerzugriff ein anderes als das reguläre Benutzerpasswort zu verwenden!

Links