Das RRZE stellt für die FAU den Windows-Druckserver FAUPRINT bereit, der zum authentifizierten Drucken auf den angeschlossenen Geräten genutzt werden kann.
Für RRZE-betreute Geräte stellt dies die empfohlene Art der Anbindung dar und ist auch für Linux-Systeme empfohlen.
Die Nutzung von FAUPRINT erlaubt das authentifizierte Drucken auf Geräten, für die Sie die entsprechenden Berechtigungen besitzen. Optional ist auch eine Abrechnung bzw. Verwaltung von Druckkontingenten über die Software Papercut möglich (aktuell nur für CIP-Pools / Studierende). Hierfür fallen allerdings zusätzliche Kosten an.
Kontaktieren Sie uns diesbezüglich gerne für weitere Informationen.
Die Authentifizierung erfolgt wahlweise per IdM-Benutzername und Kennwort oder Kerberos.
Voraussetzungen
Pakete für Ubuntu ab 20.04
# one-liner
bash$ sudo DEBIAN_FRONTEND=noninteractive apt-get -y install samba-common samba python3-smbc smbclient
Kerberos
Voraussetzung für die Nutzung der Kerberos-Authentifizierung ist eine funktionierende Grundkonfiguration von Kerberos für Ihr System. Falls noch nicht geschehen, führen Sie bitte die entsprechenden Einrichtungsschritte wie beschrieben durch, bevor Sie dieser Anleitung weiter folgen.
Achten Sie besonders darauf, dass auch die folgenden Anpassungen durchgeführt wurden:
bash$ cat /etc/krb5.conf ... [domain_realm] fauprint.rrze.uni-erlangen.de = FAUAD.FAU.DE fauprint2.rrze.uni-erlangen.de = FAUAD.FAU.DE wisoprint.wiso.uni-erlangen.de = FAUAD.FAU.DE wisoprint2.wiso.uni-erlangen.de = FAUAD.FAU.DE ...
Des Weiteren muss für das Drucken über Kerberos ein angepasster ksmb Backend-Handler installiert werden.
Der folgende Handler ist für die Verwendung mit FAUPRINT angepasst und kann nicht als allgemeiner Handler verwendet werden.
bash$ sudo vi /usr/lib/cups/backend/ksmb #!/bin/bash if [ $# -eq 0 ]; then echo "network ksmb ""Unknown"" ""Windows Printer via SAMBA using Kerberos""" exit 0 fi REALM=FAUAD.FAU.DE LOGFILE=/var/log/cups/krb5-smb_log LOGPREFIX="[$$]" CUPSBACKENDPATH=${0%/*} # Options: smbspool {job} {user} {title} {copies} {options} [filename] BACKEND_JOB="$1" BACKEND_USER="$2" BACKEND_TITLE="$3" BACKEND_COPIES="$4" BACKEND_OPTIONS="$5" BACKEND_USERID=$(id -u "$BACKEND_USER") # fix handling in case multiple ccache files are available # Use newest as authentication source KRB5FILE=$(find /tmp/ -mindepth 1 -maxdepth 1 -name "krb5cc_*" -user "$BACKEND_USER" -printf "%A@ %p\n" | sort -n | tail -n 1 | cut -d' ' -f2-) if [ -z "$KRB5FILE" ]; then echo "$LOGPREFIX: ERROR: No valid credential cache found" >> "$LOGFILE" echo "$LOGPREFIX: exit 2 (CUPS_BACKEND_AUTH_REQUIRED)" >> "$LOGFILE" exit 2 # CUPS_BACKEND_AUTH_REQUIRED fi export KRB5CCNAME="FILE:$KRB5FILE" # Dirty hack: Required if cross-realm ticket does not (yet) exist DEVICE_URI_NOPREFIX="${DEVICE_URI#*//}" PRINC="${DEVICE_URI_NOPREFIX%%/*}" kvno cifs/$PRINC@$REALM >> "$LOGFILE" # DEVICE_URI *must* begin with "smb://" otherwise odd errors will occur export DEVICE_URI="smb://${DEVICE_URI_NOPREFIX}" # Settings can be passed from backend to scheduler using # stderr. Look here for details ("Communicating with the Scheduler"): # https://www.cups.org/doc/api-filter.html BACKEND_STDERR=$(${CUPSBACKENDPATH}/smb "$BACKEND_JOB" "$BACKEND_USER" "$BACKEND_TITLE" "$BACKEND_COPIES" "$BACKEND_OPTIONS" 2> /dev/stdout > /dev/null) BACKEND_EXIT=$? echo "$BACKEND_STDERR" | sed -e s+^+"$LOGPREFIX: stderr: "+ >> "$LOGFILE" # Prevent smb backend from re-enabling username/password authentication BACKEND_STDERR=$(echo "$BACKEND_STDERR" | sed 's/^ATTR: auth-info-required=.*/ATTR: auth-info-required=negotiate/') echo "$BACKEND_STDERR" > /dev/stderr exit "$BACKEND_EXIT"
Zuletzt nicht vergessen, die Rechte noch korrekt zu setzen.
bash$ sudo chmod 700 /usr/lib/cups/backend/ksmb
Konfiguration
Arbeitsgruppe konfigurieren
Damit die Authentifizierung an der FAUAD Domain klappt muss die Arbeitsgruppe auf dem Linux-Client entspechend konfiguriert werden:
bash$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf-$(date +%F) bash$ sudo echo "[global]\n\tworkgroup = FAUAD\n" | tee /etc/samba/smb.conf [global] workgroup = FAUAD
Mit diesen Einstellungen können Kennungen bei Benutzung von SAMBA jetzt gegen die korrekte Domain authentifiziert werden.
Verfügbare Drucker finden
Alle verfügbaren Drucken verteilen sich über verschiedene Druckserver, die einzeln abgefragt werden müssen.
Das RRZE betreibt zur Lastverteilung mehrere Druckserver:
- fauprint.rrze.uni-erlangen.de
- fauprint2.rrze.uni-erlangen.de
- wisoprint.wiso.uni-erlangen.de
- wisoprint2.wiso.uni-erlangen.de
Um eine Liste der verfügbaren Drucker zu erhalten, können Sie eine entsprechende Abfrage an den FAUPRINT Druckdienst absetzen.
# mit Kerberos bash$ kinit ... bash$ smbclient -L fauprint.rrze.uni-erlangen.de --use-kerberos=required -N Domain=[FAUAD] OS=[Windows Server 2012 R2 Standard 9600] Server=[Windows Server 2012 R2 Standard 6.3] Sharename Type Comment --------- ---- ------- ADMIN$ Disk Remote Admin ... # ohne Kerberos bash$ smbclient -L fauprint.rrze.uni-erlangen.de -U FAUAD/$USER Enter FAUAD/$USER's password: Domain=[FAUAD] OS=[Windows Server 2012 R2 Standard 9600] Server=[Windows Server 2012 R2 Standard 6.3] Sharename Type Comment --------- ---- ------- ADMIN$ Disk Remote Admin ...
Suchen Sie in der Ausgabe nach Freigaben mit dem Typ Printer
.
Diese können Sie dann im nächsten Schritt zur Bildung des Druckpfades verwenden.
Drucker hinzufügen
Informationen zur Einrichtung von CUPS Druckern inkl. einer Anleitung, um den richtigen Treiber zu finden, erhalten Sie unter CUPS Druckereinrichtung mit lpadmin
Im Folgenden sind einige Beispiele aufgeführt, um den Beispieldrucker aus oben genannter Dokumentation mit und ohne Kerberos-Authentifizierung einzurichten.
Der Unterschied besteht jeweils in der Einstellung für auth-info-required
und dem verwendeten Backend Handler (jeweils fett hervorgehoben).
Ersetzen Sie ggf. im Druckpfad (Parameter -v
) den Drucker durch Ihren gewünschten Drucker aus der Ausgabe der smbclient
Abfrage (siehe oben „Verfügbare Drucker finden“)
Beispiel 1
# mit Kerberos bash$ sudo /usr/sbin/lpadmin \ -p rrze-lexmark-mx610de \ -m foomatic-db-compressed-ppds:0/ppd/foomatic-ppd/Lexmark-MX610de-Postscript.ppd \ -o 'auth-info-required=negotiate' \ -o 'media=A4' \ -o 'sides=two-sided-long-edge' \ -o 'Two-Sided Printing=DuplexNoTumble' \ -E \ -v "ksmb://fauprint.rrze.uni-erlangen.de/rzpr-2035-lex-ms610de" \ -D "Lexmark MX610de" \ -L "RRZE, R2.035" # ohne Kerberos bash$ sudo /usr/sbin/lpadmin \ -p rrze-lexmark-mx610de \ -m foomatic-db-compressed-ppds:0/ppd/foomatic-ppd/Lexmark-MX610de-Postscript.ppd \ -o 'auth-info-required=username,password' \ -o 'media=A4' \ -o 'sides=two-sided-long-edge' \ -o 'Two-Sided Printing=DuplexNoTumble' \ -E \ -v "smb://fauprint.rrze.uni-erlangen.de/rzpr-2035-lex-ms610de" \ -D "Lexmark MX610de" \ -L "RRZE, R2.035"
Beispiel 2
# mit Kerberos bash$ sudo /usr/sbin/lpadmin \ -p rzpr-2035-lex-cs510de \ -m openprinting-ppds:0/ppd/openprinting/Lexmark/Lexmark_CS510_Series.ppd \ -o 'auth-info-required=negotiate' \ -o 'media=A4' \ -o 'sides=two-sided-long-edge' \ -o 'Two-Sided Printing=DuplexNoTumble' \ -E \ -v "ksmb://fauprint2.rrze.uni-erlangen.de/rzpr-2035-lex-cs510de" \ -D "Lexmark CS510de" \ -L "RRZE, 2.035" # ohne Kerberos bash$ sudo /usr/sbin/lpadmin \ -p rzpr-2035-lex-cs510de \ -m openprinting-ppds:0/ppd/openprinting/Lexmark/Lexmark_CS510_Series.ppd \ -o 'auth-info-required=username,password' \ -o 'media=A4' \ -o 'sides=two-sided-long-edge' \ -o 'Two-Sided Printing=DuplexNoTumble' \ -E \ -v "smb://fauprint2.rrze.uni-erlangen.de/rzpr-2035-lex-cs510de" \ -D "Lexmark CS510de" \ -L "RRZE, 2.035"