CUPS

Aus Wiki
Zur Navigation springen Zur Suche springen

Allgemein

CUPS (Common Unix Printing System) ist der Stadard für Printserver in der Linux-Welt. CUPS wird relativ einfach mittels ipkg installiert. CUPS kommt mit einer Reihe von verschiedenen Druckertypen zurecht und verwaltet diese relativ komfortabel. Die Unterstützung reicht von Parallelport über USB bis hin zu Netzwerkdruckern. An der NSLU können lokal natürlich nur USB-Drucker angeschlossen werden, da kein Parallelport zur Verfügung steht. Es werden von der NSLU aber auch zahlreichte Parallel nach USB-Wandler ohne zusätzlichen Treiber unterstützt. Ich verwende selbst einen Parallel-Laserdrucker (Kyocera FS1200) und einen Parallel->USB-Wandler. Beides funktioniert absolut tadellos.

CUPS bietet eine Weboberfläche zur Administration z.B. Anlegen von Druckern an. Dieses ist unter http://IP_DER_NSLU:631 erreichbar. Einige Punkte sind nur durch vorhergehende Authorisierung mittels user: root und Passwort: ROOT_PWD erreichbar.


Voraussetzung:

OpenSSL ist installiert


Installation und Konfiguration

Installation der Pakte

ipkg update
ipkg install adduser
ipkg install cups
ipkg install cups-doc
ipkg install cups-locale-de


Kopieren des Startscripts

cp /opt/doc/cups/S88cups /opt/etc/init.d


Konfiguration

Bearbeiten der CUPS Konfigurationsdatei:

vi /opt/etc/cups/cupsd.conf

Server Identifikation Den Eintrag ServerName bearbeiten (Kommentarzeichen # entfernen und Namen vergeben): z.B.

ServerName NSLU

Verschlüsselungsoptionen Im Bereich Encryption Support die beiden Kommentarzeichen vor den folgenden Einträgen entfernen:

ServerCertificate /opt/etc/cups/ssl/server.crt
ServerKey /opt/etc/cups/ssl/server.key

Browsing Optionen Im Bereich Browsing Options bei folgenden Optionen die Kommentarzeichen entfernen bzw. Eintrag editieren:

Browsing On
BrowseAddress @LOCAL
BrowseAllow @LOCAL
BrowseOrder allow,deny

Sicherheitsoptionen Im Bereich Security Options die SystemGroup anpassen: Den Eintrag

SystemGroup sys

ändern in:

SystemGroup printadmin root

Vor dem Eintrag <Location /> folgende Zeilen einfügen:

DefaultEncryption Never
DefaultAuthType None

Damit sich (Windows)-Clients mit CUPS verbinden können, muß evtl. der IP-Adressbereich der erlaubten Clients geändert werden. Nach Installation sind alle Clients aus dem IP-Bereich 192.168.1.1 ... 192.168.1.254 (192.168.1.0/24) freigeschaltet. Falls sich die NSLU in einem anderen Bereich befindet, muß das IP-Subnet geändert werden. Z.B. falls sich die NSLU im Subnetz 192.168.177 (192.168.177.1...192.168.177.254) befindet: Den Eintrag

Allow From 192.168.1.0/24

In den beiden Abschnitten <Location /> und <Location /admin> ändern in z.B.

Allow From 192.168.177.0/24

bzw. abändern in @LOCAL, dann ist CUPS immer ansprechbar, egal in welchem Subnetz die NSLU hängt:

Allow From @LOCAL


Erzeugung der Zertifikate

Zum Zugriff auf die Weboberfläche von CUPS ist ein Zertifikat und ein Schlüssel nötig. Da kein Zugriff aus dem Internet möglich sein soll, werden die Zertifikate folgendermaßen erzeugt (Selfsigned, ohne CA):

openssl req -new -x509 -keyout /opt/etc/cups/ssl/server.key -out /opt/etc/cups/ssl/server.crt -days 3650 -nodes


User-Gruppe für CUPS anlegen

Gemäß Einstellungen unter SystemGroup printadmin root dürfen Benutzer aus den Gruppen root und printadmin Einstellungen an CUPS vornehmen. Dies gilt nicht nur für die Einstellungen in der Weboberfläche, sondern auch für die (Windows-) Clients. D.h. damit User am Client den Drucker anhalten und wieder starten können, Druckaufträge löschen usw. , müssen diese (Windows-) User angelegt und in die Gruppe printadmin aufgenommen werden.

ACHTUNG:
Usernamen sind unter Linux - im Gegensatz zu Windows - casesensitiv. D.h. die Groß/Kleinschreibung der Usernamen muß exakt gleich wie unter Windows sein. Der User Windoof ist unter linux ein anderer als windoof.
addgroup -g 8 printadmin
adduser -G printadmin -D -H CLIENT_USER1

Den adduser - Befehl für alle nötigen Client User widerholen.

Falls ein User bereits in der Userdatenbank von Linux existiert, wird der adduser - Befehl mit einer Fehlermeldung beendet.

Alle 'printadmin' User, die angelegt wurden bzw. bereits vorher bestanden, manuell im Groups-File nachtragen

vi /etc/group

In der Zeile

printadmin:x:8:

alle User durch Komma getrennt anhängen. Z.B.

printadmin:x:8:CLIENT_USER1,CLIENT_USER2


Freigabe in Firewall

Falls die Firewall eingerichtet wurde, muß der verwendete Port 631 freigegeben werden, damit CUPS erreichbar ist:

vi /opt/etc/init.d/S30iptables

Das Firewallscript enthält bereits eine (auskommentierte) Zeile für CUPS. Das Kommentarzeichen vor folgender Zeile entfernen:

# CUPS
$IPT -A tcp_inbound -p TCP -s 0/0 --destination-port 631 -j ACCEPT

Firewall und Fail2ban neustarten:

/opt/etc/init.d/S30iptables stop
/opt/etc/init.d/S31fail2ban stop
/opt/etc/init.d/S30iptables start
/opt/etc/init.d/S31fail2ban start


Start von CUPS

Zum Starten von CUPS:

/opt/etc/init.d/S88cups

ausführen


Start der Weboberfläche

Im Webbrowser die Adresse https://IP_der_NSLU:631 eingeben. Die Startseite von CUPS wird im Webbrowser dargestellt.

NSLU CUPS4.png


Achtung:
Aufgrund eines Bugs ist es nicht möglich, in der Weboberfläche eine Testseite zu drucken. Dies ist ein confirmter Bug. Es gibt zahlreiche Reports im Internet dazu. Eine Testseite immer vom Client aus drucken.


Einrichtung des CUPS-Druckers (Server)

  • Drucker anschließen und Einschalten
  • Weboberfläche von CUPS öffnen (siehe oben).
  • Button Drucker hinzufügen anwählen
  • evtl. Login mit ROOT und ROOT_PWD
NSLU CUPS5.png
  • Name: NAME_DES_DRUCKERS. Unter diesem Namen ist der Drucker später innerhalb von CUPS und auch von den Clients aus ansprechbar
  • Ort: Beliebig z.B. NSLU
  • Beschreibung: Beliebig z.B. Drucker an NSLU
  • Button Fortsetzen anwählen
  • Der Drucker sollte in der Dropdownliste enthalten sein, falls er korrekt erkannt wurde. Z.B. hier: Kyocera-FS1200 LPT#1 (kyocera1200). Den gewünschten Drucker auswählen
  • Button Fortsetzen anwählen
  • Aus der Liste Raw auswählen, da der Druckertreiber später auf dem Client-PC installiert wird. Wenn auch von der NSLU aus gedruckt werden soll, dann einen Druckertreiber (z.B. HP) auswählen.
  • Button Fortsetzen anwählen
  • Button Drucker hinzufügen anwählen
  • Seite mit "Drucker NAME_DES_DRUCKERS wurde erfolgreich konfiguriert".
  • Nach kurzer Wartezeit, oder durch klicken auf den Link NAME_DES_DRUCKERS wird die Einstellungsseite für den Drucker angezeigt. Hier sind normalerweise keinerlei Einstellungen nötig.
  • Durch klicken auf den Reiter Drucker werden alle konfigurierten Drucker angezeigt.
  • Hier kann:
    • Testseite gedruckt werden
    • Der Drucker angehalten bzw. gestartet werden
    • Die Druckaufträge verwaltet werden
    • Die Druckereinstellungen geändert werden
    • der Standarddrucker festgelegt werden, falls mehrere Drucker angelegt sind
    • usw.


Client-Drucker einrichten (WindowsXP)

Folgende Punkte sind zutreffend für WindowsXP. Diese sind in ähnlicher Form auch unter Win2000 bzw. Vista erforderlich.

  • Drucker und Faxgeräte öffnen
  • Drucker hinzufügen auswählen
  • Weiter anklicken
  • Option Netzwerkdrucker... auswählen und Weiter anklicken
NSLU CUPS6.png
  • Option Verbindung mit einem Drucker im Internet... auswählen
  • Als URL eingeben: http://IP_DER_NSLU:631/printers/NAME_DES_DRUCKERS
  • Weiter anklicken
  • Druckertreiber des Herstellers passend zum Drucker auswählen und mit OK bestätigen
  • Standarddrucker ja/nein je nach Bedarf auswählen und mit Weiter bestätigen
  • Mit Fertigstellen die Druckereinrichtung abschließen
  • Bei Bedarf eine Testseite drucken:
    • gewünschten Drucker mit der rechten Maustaste anklicken und Eigenschaften aus dem Pull-Down Menü wählen
    • Im Reiter Allgemein den Button Testseite drucken anwählen
    • Die Testseite sollte gedruckt werden
    • Dialoge wieder schließen
Hinweis: Falls ein Zugriff auf den Drucker nicht möglich sein sollte, kann folgendes versucht werden.
  • gewünschten Drucker mit der rechten Maustaste anklicken und Eigenschaften aus dem Pull-Down Menü wählen
  • Im Reiter Anschlüsse den Eintrag mit dem Haken markieren und auf den Button Konfigurieren klicken.
NSLU CUPS7.png
  • Angegebenes Benutzerkonto verwenden anwählen und Benutzername und Passwort eines Users, der im Schritt → hier angelegt wurde.
  • Sämtliche Dialoge mit Ok bestätigen und verlassen


Client-Drucker einrichten Linux (Ubuntu)

  • Menü System/Systemverwaltung/Drucken auswählen
  • Button Neu anwählen
  • Im erscheinenden Dialog folgendes auswählen:
NSLU CUPS1.png
Host: IP_Der_NSLU
  • Button Suche Warteschlange anklicken
  • Alle auf dem CUPS-Server definierten Drucker werden aufgelistet. Den Drucker auswählen, derverbunden werden soll. Anschließend Button Ok anklicken.
NSLU CUPS2.png
  • Button Vor anwählen
  • Im erscheinenden Fenster den Druckertreiber (Druckerhersteller und anschließend den Typ) auswählen. Am Ende mit Ok bestätigen.
  • Druckername, Beschreibung und Ort eingeben
NSLU CUPS3.png
  • Die Frage nach der Testseite sollte mit Ja beantwortet werden, um zu sehen, ob der Drucker korrekt funktioniert.
  • Evtl. wird nach einer Authorisierung gefragt. Hier Usernamen und Passwort eines berechtigten Users → siehe auch hier z.B. Client_User1
  • Testseite sollte nun gedruckt werden.