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.
Si ricorda che dopo ogni modifica, per applicare le modifiche è necessario eseguire il comando
sudo service saned restart
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
Impostare i permessi per gli scanner USB
Potrebbe essere necessario modificare i permessi dello scanner se questo è collegato via USB. Aprire perciò con un editor di testo e con permessi di amministrazione il file /lib/udev/rules.d/50-udev-default.rules e modificare la riga:
# libusb device nodes SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664"
in
# libusb device nodes SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
Permettere l'accesso allo scanner dei client
I client che possono accedere allo scanner devono essere esplicitamente specificati. Aprire perciò con un editor di testo e con permessi di amministrazione il file /etc/sane.d/saned.conf, quindi scrivere:
- Per abilitare una specifica macchina indicandone l'ip:
192.168.0.5
- Per abilitare un range di indirizzi:
192.168.0.0/24
- Per abilitare una specifica macchina indicandone il nome:
computer_mario.laboratorio
Configurazione del client
Nel file /etc/sane.d/net.conf deve essere specificato il server, cui è connesso lo scanner. Nel file possono essere spcificati anche più server.
Aprire quindi con un editor di testo e con permessi di amministrazione il file /etc/sane.d/net.conf, quindi scrivere:
- L'ip del server:
192.168.0.5
- È anche possibile specificare un server indicandone il nome:
ilMioServer.casa
SANE cercherà quindi se, agli indirizzi specificati, sia collegato uno scanner. Se il server non è accessibile, ciò porta a dei lunghi tempi di attesa. Nel file /etc/sane.d/net.conf può essere specificato il timeout, scrivendo, nel caso di un timeout di 10 secondi:
connect_timeout = 10
Provare il corretto funzionamento
Per provare il corretto funzionamento dello scanner può essere eseguito, in un terminale, il comando
scanimage -L
Questo, eseguito su un server, restituirà un output simile a:
device `epson:/dev/sg2' is a Epson Perfection1200 flatbed scanner
Su un client, invece, potrà restituire:
device `net:server:epson:/dev/sg2' is a Epson Perfection1200 flatbed scanner
Nel caso in cui siano presenti più scanner, e si voglia specificarne uno predefinito per il test o per l'uso con le varie applicazioni, è possibile specificare la variabile d'ambiente eseguendo il comando:
SANE_DEFAULT_DEVICE='IL_NOME_DEL_MIO_SERVER'
dove il nome può essere ricavato eseguendo il comando scanimage -L. Nell'esempio precedente, quindi, una possibile variabile è:
SANE_DEFAULT_DEVICE='net:server:epson:/dev/sg2'
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:
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.
- 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
Wurde nach dem Editieren der Konfigurationsdateien der saned gestartet bzw. neu gestartet?
- 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!
= Ulteriori risorse=