CUPS
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
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.
- 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.
- 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.
- Die Detailseiten in der Druckerkonfiguration verweisen auf die IP-Adresse 127.0.0.1 (localhost). Diese sind aus der Ferne nicht erreichbar und entsprechend erscheint im Browserfenster "Verbindung fehlgeschlagen" (Firefox) bzw. "Die Webseite kann nicht angezeigt werden.". Dieses Problem konnte (noch) nicht gelöst, aber umgangen (siehe Workaround) werden.
- Es ist mir noch nicht bekannt, ob dies ein Bug, oder ein Konfigurationsproblem ist.
Workaround nur nötig, falls in der Weboberfläche oben (in der oten Box) genannte Fehler auftauchen!
Voraussetzung:
- OpenSSH ist installiert
- Putty oder sonstiger SSH-Client ist auf dem Client-PC installiert, der einen SSH-Tunnel aufbauen kann
Mittels Putty (Windows) und OpenSSH auf der NSLU ist es möglich, einen sog. SSH-Tunnel einzurichten. Damit wird der lokale Port 631 (Windows-PC) auf Port 631 auf der NSLU umgeleitet. Dadurch können dann auch diese Seiten im Webbrowser angesehen und bearbeitet werden.
Als einziger Nachteil ist zu nennen, dass parallel zum Webbrowser auch das Putty-Fenster mit dem Tunnel geöffnet sein muß.- Putty starten
- Putty einstellungen wie unter OpenSSH beschrieben eistellen, um eine Verbindung zur NSLU zu ermöglichen
- Zusätzlich: Connections/SSH/Tunnels anwählen und folgende Einstellungen vornehmen:
- Source Port = 631
- Destination = IP_der_NSLU:631
- Button add anklicken
- Wenn alle Einstellungen erfolgt sind, kann die Verbindung zur NSLU wie in OpenSSH beschrieben hergestellt werden.
Adresse https://127.0.0.1:631 im Webbrowser eingeben. Die CUPS Startseite wird im Webbrowser dargestellt.
Einrichtung des CUPS-Druckers
- 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
- 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. SIS-PM controlled Printer
- 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.
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
- 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