Linux - Netzwerk und Serveradminstration Drucker Server: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| (44 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= | |||
* | ;Installation | ||
* | *apt install apache2 | ||
* | ;SSL Modul aktivieren | ||
*a2enmod ssl | |||
;Konfiguration | |||
*vi /etc/apache2/sites-enabled/000-default.conf | |||
<pre> | |||
<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> | |||
</pre> | |||
;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 <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 | |||
*sudo lpadmin -p PDF -o printer-is-shared=true | |||
*sudo cupsctl --share-printers --remote-any | |||
;Ausgabeverzeichnis festlegen | |||
Die PDFs sollen direkt nach <code>/var/www/html</code> geschrieben werden (später Basis für einen Apache-Webserver). | |||
*sudo vi /etc/cups/cups-pdf.conf | |||
<pre> | |||
Out /var/www/html | |||
AnonDirName /var/www/html | |||
UserUMask 0000 | |||
Grp lpadmin | |||
DecodeHexStrings 1 | |||
</pre> | |||
;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 <code>usr.sbin.cupsd</code> 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 | |||
*[[Importieren der CA in Firefox ESR Manuell]] | |||
;Installation | |||
*sudo apt install cups system-config-printer | |||
;Drucker hinzufügen | |||
# GNOME Settings → Printers öffnen | |||
# '''Add Printer...''' anklicken | |||
# Falls der Drucker nicht automatisch per Netzwerk-Discovery erscheint: Adresse manuell eingeben | |||
<pre> | |||
ipp://<server-ip>:631/printers/PDF | |||
</pre> | |||
# Drucker '''PDF''' bestätigen und hinzufügen | |||
;Drucken | |||
# Beliebige Datei öffnen (z. B. in LibreOffice) | |||
# ''Drucken'' → Drucker '''PDF''' auswählen | |||
# Drucken | |||
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) == | |||
;Drucker hinzufügen | |||
# ''Einstellungen'' → ''Bluetooth & Geräte'' → ''Drucker & Scanner'' | |||
# '''Gerät hinzufügen''' → '''Der gewünschte Drucker ist nicht aufgeführt''' | |||
# '''Freigegebenen Drucker über den Namen oder die TCP/IP-Adresse auswählen''' | |||
# URL eingeben: | |||
<pre> | |||
http://<server-ip>:631/printers/PDF | |||
</pre> | |||
# Als Treiber unter Hersteller '''Generic''' den Treiber '''MS Publisher Imagesetter''' auswählen (generischer PostScript-Treiber). '''MS Publisher Color Printer''' funktioniert alternativ ebenfalls. | |||
;Drucken | |||
# Beliebige Datei öffnen (z. B. Word) | |||
# ''Drucken'' → Drucker '''PDF''' auswählen | |||
# Drucken | |||
Die fertige PDF landet auf dem '''Server''' unter <code>/var/www/html</code>. | |||
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
- 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
- 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
- GNOME Settings → Printers öffnen
- Add Printer... anklicken
- Falls der Drucker nicht automatisch per Netzwerk-Discovery erscheint: Adresse manuell eingeben
ipp://<server-ip>:631/printers/PDF
- Drucker PDF bestätigen und hinzufügen
- Beliebige Datei öffnen (z. B. in LibreOffice)
- Drucken → Drucker PDF auswählen
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
- Einstellungen → Bluetooth & Geräte → Drucker & Scanner
- Gerät hinzufügen → Der gewünschte Drucker ist nicht aufgeführt
- Freigegebenen Drucker über den Namen oder die TCP/IP-Adresse auswählen
- URL eingeben:
http://<server-ip>:631/printers/PDF
- Als Treiber unter Hersteller Generic den Treiber MS Publisher Imagesetter auswählen (generischer PostScript-Treiber). MS Publisher Color Printer funktioniert alternativ ebenfalls.
- Beliebige Datei öffnen (z. B. Word)
- Drucken → Drucker PDF auswählen
Die fertige PDF landet auf dem Server unter /var/www/html.