Linux - Netzwerk und Serveradminstration Drucker Server: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(21 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Vorarbeiten=
 +
;Im Nameserver eintragen und testen
 +
cups.it2XX.int IN A 172.26.2XX.3
 +
 +
=Debian Template klonen=
 +
=== DATEN ===
 +
{| class="wikitable" style="background-color: #f2f2f2;"
 +
! Parameter !! Wert !! Erläuterung
 +
|-
 +
| '''Netzwerk (NIC)''' || LAN || Interface-Zuweisung in VirtualBox
 +
|-
 +
| '''IP''' || 172.26.2XX.3 || Statische IP
 +
|-
 +
| '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge
 +
|-
 +
| '''GW''' || 172.26.2XX.1 || GATEWAY
 +
|-
 +
| '''NS''' || 10.88.2XX.21 || Resolver
 +
|-
 +
| '''FQDN''' || cups.it2XX.int || Fully Qualified Domain Name
 +
|-
 +
| '''SHORT''' || cups || Short Name
 +
|-
 +
| '''DOM''' || it2XX.int|| Domain Name
 +
|}
 +
 +
 +
= Zertifikat holen =
 +
;Wir befinden uns auf dem CUPS-Server
 +
* wget https://web.samogo.de/certs/it2XX.int.tgz -O it.int.tgz
 +
* tar -C /tmp -xvzf it.int.tgz
 +
* mv /tmp/fullchain.pem /etc/ssl/own.crt
 +
* mv /tmp/privkey.pem /etc/ssl/own.key
 +
 
=Apache2=
 
=Apache2=
 
;Installation
 
;Installation
 
*apt install apache2
 
*apt install apache2
 +
;SSL Modul aktivieren
 +
*a2enmod ssl
 
;Konfiguration
 
;Konfiguration
 
*vi /etc/apache2/sites-enabled/000-default.conf
 
*vi /etc/apache2/sites-enabled/000-default.conf
Zeile 11: Zeile 47:
  
 
SSLEngine on
 
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
+
SSLCertificateFile /etc/ssl/own.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
+
SSLCertificateKeyFile /etc/ssl/own.key
 
</VirtualHost>
 
</VirtualHost>
 
</pre>
 
</pre>
Zeile 22: Zeile 58:
 
;Installation
 
;Installation
 
*sudo apt install cups printer-driver-cups-pdf libreoffice
 
*sudo apt install cups printer-driver-cups-pdf libreoffice
 +
;Queue mit cups-pdf-Backend anlegen
 +
Wichtig: die Device-URI muss explizit auf <code>cups-pdf:/</code> gesetzt werden. Ohne diesen Schritt bleiben Druckjobs im allgemeinen Spool <code>/var/spool/cups</code> hängen, statt vom cups-pdf-Backend verarbeitet zu werden.
 +
*sudo lpadmin -p PDF -v cups-pdf:/ -P /usr/share/ppd/cups-pdf/CUPS-PDF_opt.ppd -E
 +
;Kontrolle
 +
*lpstat -v PDF
 +
Erwartete Ausgabe:
 +
<pre>
 +
device for PDF: cups-pdf:/
 +
</pre>
 +
Steht hier etwas anderes, an dieser Stelle nicht weitermachen.
 
;Freigabe aktivieren
 
;Freigabe aktivieren
 +
*sudo lpadmin -p PDF -o printer-is-shared=true
 
*sudo cupsctl --share-printers --remote-any
 
*sudo cupsctl --share-printers --remote-any
*sudo lpadmin -p PDF -o printer-is-shared=true
 
 
;Ausgabeverzeichnis festlegen
 
;Ausgabeverzeichnis festlegen
 
Die PDFs sollen direkt nach <code>/var/www/html</code> geschrieben werden (später Basis für einen Apache-Webserver).
 
Die PDFs sollen direkt nach <code>/var/www/html</code> geschrieben werden (später Basis für einen Apache-Webserver).
Zeile 31: Zeile 77:
 
Out /var/www/html
 
Out /var/www/html
 
AnonDirName /var/www/html
 
AnonDirName /var/www/html
 +
UserUMask 0000
 +
Grp lpadmin
 +
DecodeHexStrings 1
 
</pre>
 
</pre>
 
;Berechtigungen setzen
 
;Berechtigungen setzen
*sudo rm /var/www/html/index.html
+
*sudo rm -f /var/www/html/index.html
*sudo chown root:root /var/www/html
+
*sudo chown root:lpadmin /var/www/html
 
*sudo chmod 1777 /var/www/html
 
*sudo chmod 1777 /var/www/html
;AppArmor freigeben
+
;AppArmor-Profil deaktivieren
AppArmor blockiert standardmäßig Schreibzugriff von cupsd außerhalb von <code>/var/spool/cups-pdf</code>. Folgende Zeile in <code>/etc/apparmor.d/usr.sbin.cupsd</code> innerhalb des <code>profile /usr/sbin/cupsd {...}</code>-Blocks ergänzen:
+
Der CUPS-Daemon ruft intern Ghostscript auf, das je nach Dokument diverse Systemdateien liest (Fonts, Papierformate, Temp-Verzeichnisse). Das AppArmor-Profil <code>usr.sbin.cupsd</code> blockiert diesen Zugriff standardmäßig. Statt einzelne Pfade freizugeben, wird das Profil komplett deaktiviert:
*sudo vi /etc/apparmor.d/usr.sbin.cupsd
+
*sudo ln -sf /etc/apparmor.d/usr.sbin.cupsd /etc/apparmor.d/disable/
<pre>
+
*sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.cupsd
/var/www/html/** rw,
 
</pre>
 
*sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.cupsd
 
 
;CUPS neu starten
 
;CUPS neu starten
 
*sudo systemctl restart cups
 
*sudo systemctl restart cups
Zeile 49: Zeile 95:
 
*echo "Testseite" > test.txt
 
*echo "Testseite" > test.txt
 
*lp -d PDF test.txt
 
*lp -d PDF test.txt
 +
*sleep 3
 
*ls -la /var/www/html
 
*ls -la /var/www/html
  
 
= Client =
 
= Client =
 
 
== Linux (grafisch) ==
 
== Linux (grafisch) ==
 +
;Vorab
 +
*[[Importieren der CA in Firefox ESR Manuell]]
 
;Installation
 
;Installation
 
*sudo apt install cups system-config-printer
 
*sudo apt install cups system-config-printer
Zeile 69: Zeile 117:
 
# Drucken
 
# Drucken
 
Die fertige PDF landet auf dem '''Server''' unter <code>/var/www/html</code>.
 
Die fertige PDF landet auf dem '''Server''' unter <code>/var/www/html</code>.
 +
;Wenn es grafisch zickt
 +
*sudo lpadmin -p PDF -E -v ipp://<server-ip>:631/printers/PDF -m everywhere
  
 
== Windows (grafisch) ==
 
== Windows (grafisch) ==
Zeile 79: Zeile 129:
 
http://<server-ip>:631/printers/PDF
 
http://<server-ip>:631/printers/PDF
 
</pre>
 
</pre>
# Als Treiber '''Generic → MS Publisher Color Printer''' oder '''Generic PostScript Printer''' auswählen (CUPS wandelt serverseitig sowieso über <code>cups-pdf</code> in PDF um)
+
# Als Treiber unter Hersteller '''Generic''' den Treiber '''MS Publisher Imagesetter''' auswählen (generischer PostScript-Treiber). '''MS Publisher Color Printer''' funktioniert alternativ ebenfalls.
 
;Drucken
 
;Drucken
 
# Beliebige Datei öffnen (z. B. Word)
 
# Beliebige Datei öffnen (z. B. Word)

Aktuelle Version vom 24. Juli 2026, 11:57 Uhr

Vorarbeiten

Im Nameserver eintragen und testen

cups.it2XX.int IN A 172.26.2XX.3

Debian Template klonen

DATEN

Parameter Wert Erläuterung
Netzwerk (NIC) LAN Interface-Zuweisung in VirtualBox
IP 172.26.2XX.3 Statische IP
CIDR 24 Classless Inter-Domain Routing Präfixlänge
GW 172.26.2XX.1 GATEWAY
NS 10.88.2XX.21 Resolver
FQDN cups.it2XX.int Fully Qualified Domain Name
SHORT cups Short Name
DOM it2XX.int Domain Name


Zertifikat holen

Wir befinden uns auf dem CUPS-Server

Apache2

Installation
  • apt install apache2
SSL Modul aktivieren
  • a2enmod ssl
Konfiguration
  • vi /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:443>
	DocumentRoot /var/www/html
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	SSLEngine on
	SSLCertificateFile /etc/ssl/own.crt
	SSLCertificateKeyFile /etc/ssl/own.key
</VirtualHost>
Restart und Kontrolle
  • systemctl restart apache2
  • ss -lntp | grep apache2

Server

Installation
  • sudo apt install cups printer-driver-cups-pdf libreoffice
Queue mit cups-pdf-Backend anlegen

Wichtig: die Device-URI muss explizit auf cups-pdf:/ gesetzt werden. Ohne diesen Schritt bleiben Druckjobs im allgemeinen Spool /var/spool/cups hängen, statt vom cups-pdf-Backend verarbeitet zu werden.

  • sudo lpadmin -p PDF -v cups-pdf:/ -P /usr/share/ppd/cups-pdf/CUPS-PDF_opt.ppd -E
Kontrolle
  • lpstat -v PDF

Erwartete Ausgabe:

device for PDF: cups-pdf:/

Steht hier etwas anderes, an dieser Stelle nicht weitermachen.

Freigabe aktivieren
  • sudo lpadmin -p PDF -o printer-is-shared=true
  • sudo cupsctl --share-printers --remote-any
Ausgabeverzeichnis festlegen

Die PDFs sollen direkt nach /var/www/html geschrieben werden (später Basis für einen Apache-Webserver).

  • sudo vi /etc/cups/cups-pdf.conf
Out /var/www/html
AnonDirName /var/www/html
UserUMask 0000
Grp lpadmin
DecodeHexStrings 1
Berechtigungen setzen
  • sudo rm -f /var/www/html/index.html
  • sudo chown root:lpadmin /var/www/html
  • sudo chmod 1777 /var/www/html
AppArmor-Profil deaktivieren

Der CUPS-Daemon ruft intern Ghostscript auf, das je nach Dokument diverse Systemdateien liest (Fonts, Papierformate, Temp-Verzeichnisse). Das AppArmor-Profil usr.sbin.cupsd blockiert diesen Zugriff standardmäßig. Statt einzelne Pfade freizugeben, wird das Profil komplett deaktiviert:

  • sudo ln -sf /etc/apparmor.d/usr.sbin.cupsd /etc/apparmor.d/disable/
  • sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.cupsd
CUPS neu starten
  • sudo systemctl restart cups
Test
  • lpstat -p PDF
  • echo "Testseite" > test.txt
  • lp -d PDF test.txt
  • sleep 3
  • ls -la /var/www/html

Client

Linux (grafisch)

Vorab
Installation
  • sudo apt install cups system-config-printer
Drucker hinzufügen
  1. GNOME Settings → Printers öffnen
  2. Add Printer... anklicken
  3. Falls der Drucker nicht automatisch per Netzwerk-Discovery erscheint: Adresse manuell eingeben
ipp://<server-ip>:631/printers/PDF
  1. Drucker PDF bestätigen und hinzufügen
Drucken
  1. Beliebige Datei öffnen (z. B. in LibreOffice)
  2. Drucken → Drucker PDF auswählen
  3. Drucken

Die fertige PDF landet auf dem Server unter /var/www/html.

Wenn es grafisch zickt
  • sudo lpadmin -p PDF -E -v ipp://<server-ip>:631/printers/PDF -m everywhere

Windows (grafisch)

Drucker hinzufügen
  1. EinstellungenBluetooth & GeräteDrucker & Scanner
  2. Gerät hinzufügenDer gewünschte Drucker ist nicht aufgeführt
  3. Freigegebenen Drucker über den Namen oder die TCP/IP-Adresse auswählen
  4. URL eingeben:
http://<server-ip>:631/printers/PDF
  1. Als Treiber unter Hersteller Generic den Treiber MS Publisher Imagesetter auswählen (generischer PostScript-Treiber). MS Publisher Color Printer funktioniert alternativ ebenfalls.
Drucken
  1. Beliebige Datei öffnen (z. B. Word)
  2. Drucken → Drucker PDF auswählen
  3. Drucken

Die fertige PDF landet auf dem Server unter /var/www/html.