Verteilter Druck
Drucken im Netz
Client-Konfiguration
Wenn der Server Broadcasts aussendet, müssen Sie abschließend nur noch dafür sorgen, dass der Client diese auch auswertet. Am einfachsten haben es hier Anwender von Fedora Core 5: Auf der Desktop-Distribution von Red Hat ist dies ohne weitere Anpassungen der Fall. Unter Ubuntu aktivieren Sie unter System | Administration | Drucker den Eintrag Globale Einstellungen | LAN-Drucker erkennen.
Suse fragt bei der Installation nach, ob Cups auf Warteschlangen im Netz lauschen soll (Abbildung 3). Nachträglich lässt sich dieses Feature über das Drucker-Modul von YaST aktivieren
Netzwerkdrucker mit YaST einrichten
Das Drucker-Modul in YaST ist zwar nicht besonders übersichtlich, bietet jedoch Zugriff auf alle Cups-Funktionen: Es konfiguriert Cups als Client und Server.
Client-Konfiguration
Fügen Sie im Wizard Druckerkonfiguration eine neue Druckerwarteschlange vom Typ Netzwerkdrucker (Einstellung im nächster Dialog) hinzu. Auf die nächste Frage antworten Sie Drucken über CUPS-Netzwerkserver und schließlich CUPS -- Broadcasting verwenden. Weiter bringt Sie zum letzten Screen des Wizards. Aktivieren Sie hier IPP-Broadcast-Pakete überwachen (Abbildung 4). Das Kontrollkästchen Firewallport öffnen sorgt dafür, dass die Firewall den Port 631 freigibt. Auf anderen Distributionen stellen Sie wenn nötig per Hand sicher, dass die Firewall Anfragen an Port 631 passieren lässt.
Möchten Sie alle Cups-Server im Netz einbeziehen, klicken Sie nun auf OK. Im Regelfall ist dies das richtige Vorgehen. Möchten Sie jedoch den Empfang von Cups-Broadcasts einschränken, klicken Sie zunächst auf Adressen auswählen. Über Hinzufügen lassen sich Adressen, Adressbereiche oder Interfaces angeben, die Sie explizit einschließen (Option Erlauben von im Dialog IP-Adresse) oder ausschließen möchten (Option Verweigern von).
Wichtig ist außerdem noch die Einstellung Erlauben, Verweigern oder Verweigern, Erlauben im übergeordneten Fenster: Hiermit legen Sie fest, ob ohne explizite Angabe erst einmal alles erlaubt ist (Erlauben, Verweigern) oder ohne ausdrückliche Erlaubnis alle Adressen gesperrt bleiben (Verweigern, Erlauben). Klicken Sie auf OK und beenden Sie auch den übergeordneten Dialog.
Im Fenster Druckerkonfiguration findet sich nun eine neue Warteschlange mit dem Namen unkown und dem Druckermodell unknown, die die unter Umständen wechselnden Drucker im Netzwerk repräsentiert. Beenden wendet die Einstellungen endgültig an.
Öffnen Sie das Druckerkonfigurationsmodul erneut, zeigt sich ein Bug von YaST: Die Warteschlange unknown ist verschwunden und muss erneut eingerichtet werden. So lange Sie das YaST-Modul nicht öffnen, funktioniert das Browsing jedoch. Wenn Sie nach der Einrichtung mit YaST die Konfigurationsdateien per Hand anpassen, beachten Sie, dass YaST die Werte für den Cups-Client nicht in /etc/cups/client.conf einträgt, wie der Name andeutet, sondern am Dateiende der von /etc/cups/cupsd.conf.
Server-Konfiguration
Starten Sie zum Einrichten des Lauschens auf entfernte Drucker das Modul Hardware | Drucker und wählen Sie im Listenfeld rechts unten im Dialog den Eintrag Cups-Einstellungen für Experten und schließlich CUPS-Servereinstellungen.
Stellen Sie sicher, das unter Browsen oben im Fenster Ein gewählt ist und fügen Sie über den Button Hinzufügen der Liste Adressen durchsuchen einen neuen Eintrag hinzu, wenn Sie das Broadcasting auf bestimmte Adressen oder Netzwerkkarten beschränken möchten.
Die Bezeichnung IP-Adressen im sich öffnenden Dialogfeld ist irreführend: Wie im Abschnitt zur manuellen Anpassung von cupsd.conf beschrieben, sind hier IP-Adressen, Adressbereiche und Netzwerkschnittstellen erlaubt.
Cups und Sicherheit
Cups kennt drei Sicherheitsstufen: Anonymer Zugriff ohne Authentifizierung, Authentifizierung über Linux-Accounts und Passwörter sowie ein Cups-eigenes, MD5-verschlüsseltes Authentifizierungsystem.
In einer sicheren, mit einer Firewall geschützten Umgebung, zu der nur vertrauenswürdige Benutzer Zutritt haben, ist der Verzicht auf Authentifizierung für das Drucken (Standardeinstellung) durchaus sinnvoll – zumal ein unerwünschter Zugang auf einen Drucker immer noch weniger schlimm ist, als ein Einbruch auf dem Server selbst.
Die Authentifizierung über Linux-Accounts, Cups' Standardeinstellung für Verwaltungsaufgaben, befriedigt Sicherheitfanatiker vor allem deswegen nicht, weil Benutzername und Passwörter unverschlüsselt über das Netz übertragen werden. Lediglich die Authentifizierungsmethode digest kann auch in nicht vertrauenswürdigen Umgebungen als sicher gelten: Sie verschlüsselt Passwörter bei der Übertragung. Sollte eines der Passwörter einem Angreifer in die Hand fallen, so bleibt der Schaden begrenzt, weil es sich nur um ein Cups-Passwort und nicht gleichzeitig um ein Login für das Serversystem handelt.
Suse schützt den administrativen Zugriff auf den Cups-Server (also das Einrichten oder Entfernen von Druckern) mit der Digest-Methode. Das Webinterface zu Cups (http://localhost:631) funktioniert daher für Administrationsaufgaben erst nach dem Einrichten eines Cups-Accounts mit dem Befehl lppasswd -a -g sys root. Dieser Account hat nichts mit Linux-Accounts zu tun, beim Passwort muss es sich also auch nicht um das Linux-Root-Passwort handeln.
In cupsd.conf lässt sich der Zugriffschutz für verschiedene Arten von Zugriff getrennt festlegen: Was zwischen den Schlüsselwörtern <Location /> und </Location> steht, betrifft jeden Zugriff auf Cups. Fügen Sie hier die Zeile AuthType Digest ein, so ist der Zugriff nur noch mit einem Login-Passwort-Paar, das Sie zuvor mit lppasswd festgelegt haben, erlaubt. Der Block zwischen <Location /admin> und /Location regelt die Erlaubnis, Drucker einzurichten oder zu entfernen. Der <Location /jobs>-Block gibt an, wer Druckaufträge löschen darf. Auch hier regelt bei Bedarf die Zeile AuthType Digest oder AuthType Basic den Zugriff.
Stiller Cups-Server
Aus Sicherheitsgründen ist es oft unerwünscht, dass ein Cups-Server von sich aus im Netz den Zugriff auf die dem System zur Verfügung stehenden Druckern anbietet. Die Zeile BrowsePoll IP-Adresse
in cupsd.conf weist den lokalen Cups-Server an, auf IP-Adresse
nach Druckern zu suchen. Auch wenn das dort liegende System keine Informationen zu bereitstehenden Druckern versendet, antwortet der Cups-Server auf explizite Anfragen.
Glossar
Postscript
Eine so genannte Seitenbeschreibungssprache, also eine Sprache, mit der sich ein komplettes Seitenlayout aus Text, Vektorelementen und Bitmaps detailgetreu beschreiben lässt. Postscript wurde 1984 von Adobe entwickelt.
Ghostscript
Postscript-Befehlsinterpreter, der unter anderem zum Einsatz kommt, um die Postscript-Dateien, die Linux-Anwendungen beim Drucken an das System übergeben, zu rastern und so für nicht-postscriptfähige Tintenstrahldrucker verständlich machen.
Infos
[1] Infos zu Linux-kompatiblen Druckermodellen: http://linuxprinting.org/printer_list.cgi
[2] Drucker unter Cups einrichten: Tim Schürmann, "Einer für alle!", LinuxUser 11/2005, S. 58, http://www.linux-user.de/ausgabe/2005/11/058-cups/



