Eigenen CUPS-Server unter Linux installieren und betreiben
Vorwort zur Anleitung:
Diese Anleitung hat einen mittleren Schwierigkeitsgrad.
Installation von Linux und Kenntnisse in der Befehlszeile sind vorausgesetzt.
Ein CUPS-Server (Common Unix Printing System) ist ein Drucksystem, das in Unix-ähnlichen Betriebssystemen, einschließlich Linux und macOS, verwendet wird. CUPS verwaltet den Druckprozess und ermöglicht es Benutzern, Druckaufträge an lokale oder Netzwerkdrucker zu senden.
Hier sind einige wichtige Funktionen und Merkmale von CUPS:
1. Druckverwaltung:
CUPS ermöglicht die Verwaltung von Druckaufträgen, einschließlich das Anhalten, Fortsetzen und Löschen von Aufträgen.
2. Netzwerkdruck:
CUPS unterstützt Netzwerkdrucker und erlaubt es Benutzern, Drucker in einem lokalen Netzwerk zu teilen.
3. Druckertreiber:
CUPS verwendet eine Vielzahl von Druckertreibern, um unterschiedliche Drucker und deren Funktionen zu unterstützen.
4. Webbasierte Benutzeroberfläche:
CUPS bietet eine webbasierte Benutzeroberfläche, die den Zugriff auf Drucker und Druckaufträge über einen Browser ermöglicht.
5. Unterstützung von mehreren Protokollen:
CUPS unterstützt verschiedene Druckprotokolle, einschließlich IPP (Internet Printing Protocol), LPD (Line Printer Daemon) und SMB (Server Message Block).
Insgesamt ist CUPS ein leistungsfähiges und flexibles Drucksystem, das die Nutzung von Druckern in Unix-ähnlichen Umgebungen erheblich vereinfacht.
Vorbereitungen / Anforderungen:
Anforderungen
Schwierigkeitsgrad-Installation: Mittel
Schwierigkeitsgrad-Anwendung: Mittel
Erforderliche Kenntnisse: Linux-Befehlszeile
Systemvoraussetzungen:
Basis: Debian
Betriebssystem: Ubuntu Server (Headless)
Festplattenspeicher: Mindestens 10 GB
CPU: Mindestens 1 CPU
RAM: Mindestens 512 MB
Internetverbindung: Verfügbar
Die Systemanforderungen wurden in einer virtualisierten Umgebung getestet.
Tipp:
Wenn du mit Virtualisierung, z.B. ProxMox, vertraut bist, kannst du deine eigenen Server effizient und stromsparend betreiben!
Getestet auf:
Ubuntu-Server 22.04
Ubuntu-Server 24.10
Installationsablauf:
1. Durchführung von System-Upgrade
2. Statische IP-Adresse festlegen und anwenden
3. (Optional) Hostnamen festlegen
4. Installation und Einstellungen
5. CUPS Bedienoberfläche
6. Systembedienung
7. Störungsanalyse
Optionale Schritte können weggelassen werden, da sie lediglich unterstützende Funktionen bieten, wie zum Beispiel die Zusammenfassung von Servern in einem Rechenzentrum.
Für den Betrieb in einem Rechenzentrum sollten die optionalen Abläufe jedoch aus Gründen des beruflichen Stolzes in Betracht gezogen werden.
1. Durchführung von System-Upgrade
Vor jeder Installation ist ein System-Update erforderlich:
$> ssh DEINUSER@192.168.1.X
# Stelle eine SSH-Verbindung zu deinem Server her
$> sudo apt update
# Aktualisiere die Paketquellen
$> sudo apt upgrade -y
# Starte das System-Upgrade
$> sudo apt autoclean
# Optional: Entferne überflüssige Pakete
$> sudo apt autoremove
# Optional: Bereinige das System von Abhängigkeiten
2. Statische IP-Adresse festlegen und anwenden
Ein CUPS-Server benötigt eine statische IP-Adresse. Alternativ kann auch eine per DHCP zugewiesene feste Adresse verwendet werden, jedoch sollte diese niemals geändert werden.
Es besteht die Möglichkeit, sich selbst vom Server auszuschließen, wenn die IP-Adresse nicht korrekt konfiguriert ist.
$> ip addr
# Liste alle Netzwerkadapter und Informationen auf
$> sudo su
# Wechsel in die Super-User-Shell
$> cd /etc/netplan
# Wechsle ins Netplan-Verzeichnis
$> ls -l
# Zeige alle Dateien im Netplan-Verzeichnis an
$> for i in $( ls ); do mv $i $i.bak; done
# Sichere alle bestehenden Konfigurationen als Backup
$> touch /etc/netplan/01_static_ip.yaml
# Erstelle eine neue Konfigurations-Datei
$> nano /etc/netplan/01_static_ip.yaml
# Öffne die neue Konfigurations-Datei
network:
version: 2
renderer: networkd
ethernets:
ens18: #Edit this line according to your network interface name.
dhcp4: no
addresses:
- 192.168.1.150/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4 # Öffne die Datei mit einem Texteditor (Copy-Paste)
# Ersetze ens18 durch den Namen deines Netzwerk-Adapters (siehe Ausgabe von ip addr).
# Ändere die IP-Adresse und die Netzmaske nach Bedarf.
# Passen die DNS-Adressen an, falls erforderlich.
# Überprüfe und passe ggf. die Routen (Gateway) an.
Speichern und Verlassen
• Speichern der Datei: Ctrl + O
• Editor verlassen: Ctrl + X
$> netplan generate && netplan apply
# Wende die neuen Netzwerkeinstellungen an
🚨 Der Server wechselt nun zu einer neuen IP-Adresse, was dazu führt, dass deine SSH-Sitzung unterbrochen wird.
3. (Optional) Hostnamen festlegen
Durch das Ändern des Hostnamens der Server-Station vergibst du einen eindeutigen Namen für das System.
In unserem Fall könnte der Hostname beispielsweise „S2-CUPS-Server“ lauten.
Die Hosts-Datei wird verwendet, um auf Server-Ebene IP-Adressen Namen zuzuordnen, die intern genutzt werden. Wenn du den Hostnamen änderst, muss auch der entsprechende Eintrag in der Hosts-Datei aktualisiert werden. Bei produktiven Systemen sollte diese Kleinigkeit unbedingt beachtet werden, da sie ein Zeichen von Berufsethos und Professionalität ist. Für Tests und Experimente ist dies jedoch nicht zwingend erforderlich.
Der neue Hostname muss zwingen der gleiche sein wie auch im Hosts-File.
$> ssh DEINUSER@192.168.1.X
# Wiederherstellen der SSH-Verbindung
$> sudo hostnamectl set-hostname DEINHOSTNAME
# Einen neuen Host-Namen setzen
$> sudo nano /etc/hosts
# Hosts-Datei öffnen und ändere den markierten Bereich
127.0.0.1 localhost
127.0.1.1 DEINHOSTNAME
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ……..
# Speichern und Verlassen
• Speichern der Datei: Ctrl + O
• Editor verlassen: Ctrl + X
$> sudo reboot
# Server neu starten, damit die Änderungen wirksam werden
4. Installation und Einstellungen
$> ssh DEINUSER@192.168.1.x
# Wiederherstellen der SSH-Verbindung
$> sudo apt install cups cups-bsd printer-driver-gutenprint -y
# System installieren
$> sudo systemctl enable cups.service
$> sudo systemctl enable cups.browsed.service
# Autostart aktivieren
$> getent passwd {1000..10000} | cut -d ":" -f1
$> sudo usermod -a -G lpadmin DEINUSER
$> sudo cupsctl --remote-admin
# Füge eine User der CUPS-Gruppe zu und erlaube den Remote zugriff
$> sudo cupsctl --debug-logging
$> sudo cupsctl --remote-any
$> sudo cupsctl --share-printers
# Aktiviere Logging, Remote-Zugriff, und Drucker-Zugriff
$> sudo systemctl enable cups.service
$> sudo systemctl enable cups-browsed.services
# Autostart aktivieren
Kurze Beschreibung zu den Anpassungen:
Cups / Cups-Browsed
CUPS: Lokaler Druckerdienst zur Verwaltung und Steuerung von Druckaufträgen.
Cups-Browsed: Daemon zum Durchsuchen von Bonjour-Übertragungen freigegebener, entfernter CUPS-Drucker.
cupsctl –remote-admin
Remote-Admin für das WebGUI zulassen (Standard-Konfiguration): Ermöglicht die Remote-Verwaltung über das Webinterface.
cupsctl –remote-any
WebGUI für andere IP-Adressen öffnen (Standard-Konfiguration): Erlaubt den Zugriff auf das Webinterface von anderen IP-Adressen.
cupsctl –debug-logging
CUPS-Logging aktivieren (Standard-Konfiguration): Protokolliert Ereignisse und Fehler des CUPS-Druckdienstes.
cupsctl –share-printer
Drucker im Netzwerk finden (Standard-Konfiguration): Ermöglicht das automatische Erkennen von Druckern im lokalen Netzwerk.
5. CUPS Bedienoberfläche
Hinweis:
Bei der Änderung von Einstellungen wird auf das sichere HTTPS-Protokoll gewechselt, und es erfolgt eine Abfrage nach dem Benutzernamen und Passwort des festgelegten Nutzers.
Öffnen des Web-Gui via Web-Browser
Verwaltung von Klassen, Druckern und Aufträgen
Aufträge anzeige, starten oder löschen
Drucker und Status anzeigen