Automatische Einbindung von Samba-Shares via pam_mount schlägt fehl

  • Ersteller Ersteller gelöschter Benutzer
  • Erstellt am Erstellt am
G

gelöschter Benutzer

Guest
Hallo Leute,

Ich habe einen PC, auf dem alles mit der (anscheinend) selben Konfiguration einwandfrei funktioniert, auf den anderen PCs funktioniert es nicht. Ich habe den Firmennamen immer durch "redacted" ersetzt, im Folgenden mal die Konfigurationsdateien und die Fehler, die auftreten. Die PCs laufen alle auf Debian 7 "Wheezy" mit XFCE und sind alle auf dem neusten Stand (upgrade mindestens wöchentlich automatisch, manuell gestern).

Zuerst die Fehler:

[src=text]root@REDACTED-PC9:~# su phre4k
reenter password for pam_mount:

(mount.c:72): Messages from underlying mount program:
(mount.c:76): mount error(13): Permission denied
(mount.c:76): Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
(pam_mount.c:522): mount of ablage failed

phre4k@REDACTED-PC9:/root$ exit
exit
(mount.c:72): umount messages:
(mount.c:76): umount: /home/REDACTED.local/phre4k/Öffentlich ist nicht eingehängt
(mount.c:885): unmount of ablage failed

root@REDACTED-PC9:~# dmesg | tail
[ 237.007952] CIFS VFS: cifs_mount failed w/return code = -13
[23208.914633] Status code returned 0xc000006d NT_STATUS_LOGON_FAILURE
[23208.914649] CIFS VFS: Send error in SessSetup = -13
[23208.914749] CIFS VFS: cifs_mount failed w/return code = -13
[23236.005142] Status code returned 0xc000006d NT_STATUS_LOGON_FAILURE
[23236.005156] CIFS VFS: Send error in SessSetup = -13
[23236.005354] CIFS VFS: cifs_mount failed w/return code = -13
[23400.427703] Status code returned 0xc000006d NT_STATUS_LOGON_FAILURE
[23400.427717] CIFS VFS: Send error in SessSetup = -13
[23400.427917] CIFS VFS: cifs_mount failed w/return code = -13[/src]

Hier ein paar Tests zu Samba/Winbind (Namensauflösung funktioniert wunderbar):
[src=text]root@REDACTED-PC9:~# wbinfo -P
checking the NETLOGON dc connection to "REDACTED-server.REDACTED.local" succeeded
root@REDACTED-PC9:~# wbinfo -p
Ping to winbindd succeeded
root@REDACTED-PC9:~# net rpc testjoin
Join to 'REDACTED' is OK[/src]

<edit>
So sieht dmesg auf dem funktionierenden PC aus:
[src=text][ 259.610360] Key type dns_resolver registered
[ 259.621819] FS-Cache: Netfs 'cifs' registered for caching
[ 259.621881] Key type cifs.spnego registered
[ 259.621902] Key type cifs.idmap registered
[/src]

</edit>

Der Server heißt nicht REDACTED-server.REDACTED.local sondern filesrv1.

Hier die /etc/security/pam_mount.conf.xml:
[src=text]<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<!--
See pam_mount.conf(5) for a description.
-->

<pam_mount>

<!-- debug should come before everything else,
since this file is still processed in a single pass
from top-to-bottom -->

<debug enable="0" />

<!-- Volume definitions -->
<volume
fstype="cifs"
server="filesrv1"
path="ablage"
mountpoint="/home/REDACTED.local/%(DOMAIN_USER)/Öffentlich"
option="sec=krb5,workgroup=REDACTED" />

<!-- pam_mount parameters: General tunables -->

<!--
<luserconf name=".pam_mount.conf.xml" />
-->

<!-- Note that commenting out mntoptions will give you the defaults.
You will need to explicitly initialize it with the empty string
to reset the defaults to nothing. -->
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
<!--
<mntoptions deny="suid,dev" />
<mntoptions allow="*" />
<mntoptions deny="*" />
-->
<mntoptions require="nosuid,nodev" />

<logout wait="0" hup="0" term="0" kill="0" />


<!-- pam_mount parameters: Volume-related -->

<mkmountpoint enable="1" remove="true" />


</pam_mount>[/src]

Auf dem anderen PC mit der selben pam_mount.conf.xml funktioniert es. libpam-mount ist installiert, Namensauflösung funktioniert auch (per Ping getestet).


Alles was ich im Internet gefunden habe, spielt auf eine fehlende Domain oder Authentifizierungsmethode in den Konfigurationen an, allerdings habe ich die ja beide angegeben (REDACTED bzw. Kerberos). Mit klist erfahre ich nach dem Login, dass ein Ticket vorhanden ist, daran kann es also auch nicht liegen. Falls ich Informationen vergessen habe, bitte anfragen :)
 
Zuletzt bearbeitet:
Bischen unübersichtlich, wäre günstig wenn du überall dabei schreiben würdest was wovon ist,
eindeutig erkennen kann ich es nur bei dem einen PC wo alles funktioniert.

Außerdem wären Logs vom Server nützlich.
 
  • Thread Starter Thread Starter
  • #3
Woher die Ausgaben kommen steht doch direkt darüber? Die Ausgaben sind direkt aus dem Terminal rauskopiert ;)

Die pam_mount-Fehlermeldung kommt beim Einloggen als Benutzer (oben mit "su") bzw beim Ausloggen (exit), danach ist die Ausgabe von dmesg angegeben.

Auf dem Server ist im log.smbd nur die Rede von folgendem:
[src=text] failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
[2014/12/12 15:29:33.169775, 0] ../source3/printing/print_cups.c:151(cups_connect)
Unable to connect to CUPS server localhost:631 - Connection refused
[2014/12/12 15:29:33.171156, 0] ../source3/printing/print_cups.c:528(cups_async_callback)
failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL[/src]

Die Einbindung des Shares über Benutzername und Passwort funktioniert manuell wunderbar, auch mit dem Serverbrowser von Thunar funktioniert es. Benutzername, Passwort und Kerberos-Ticket können es schon mal nicht sein, ansonsten hängt ja eigentlich nur PAM und pam_mount noch in der Kette:

Login→ PAM → pam_mount → Kerberos → Winbind auf dem Server → Samba auf dem Server → Samba auf dem Client

Die Konfigurationen dafür sind allerdings gleich und die Programmversionen auch. Deswegen muss ich wohl irgendwo was übersehen haben. Nur was?
 
Das sieht nach fehlendem Druckertreiber aus, aber Drucker einrichten macht nunmal echt kein Spaß laut meinem letzten stand.

Sicher das wirklich ALLES gleich ist? Spricht irgendwas gegen das erstellen eines Images vom funktionierenden System und das
einfach überall drauf zu machen? Ein paar Konfig Einträge kann man da ja leicht auch automatisiert ändern.
 
  • Thread Starter Thread Starter
  • #5
Das sieht nach fehlendem Druckertreiber aus, aber Drucker einrichten macht nunmal echt kein Spaß laut meinem letzten stand.
Nein, CUPS läuft einfach nicht, weil es ein File- und kein Domain-/Druckserver ist.


Sicher das wirklich ALLES gleich ist?
Nun ja, die Paketlisten sind gleich und die entsprechenden Configs auch. Ich habe mir eine interne Dokumentation angelegt, während ich den ersten PC eingerichtet habe und bin das zwei bis drei Mal durchgegangen, bevor ich das am anderen PC gemacht hatte. Es kann natürlich sein, dass ich irgendwelche Configs vergessen habe, aber ich habe auch in dem Buch, was ich mir zum Thema Samba 4 gekauft hatte, noch einmal nachgeschlagen – da steht auch nicht wirklich mehr drin.

Spricht irgendwas gegen das erstellen eines Images vom funktionierenden System und das
einfach überall drauf zu machen? Ein paar Konfig Einträge kann man da ja leicht auch automatisiert ändern.
Ja, das sind alles Produktivsysteme.


EDIT: Ich denke, ich habe das Problem gefunden. In der /etc/security/pam_mount.conf.xml steht bei dem "ablage"-Mount nicht options= sondern option=! Wenn ich das auf dem "funktionierenden" PC in "options=" ändere, funktioniert das automatische Einbinden immer noch nicht. Mir ist dann eingefallen, dass der "funktionierende" PC einen neuen Kernel nach 3.13 hat, der statt dem standardmäßigen NTLM-Auth (der nicht funktioniert) NTLMv2 nutzt. Mit Kerberos gibt es dann also folgende Fehlermeldung:

[src=text](mount.c:72): Messages from underlying mount program:
(mount.c:76): mount error(126): Required key not available
(mount.c:76): Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
(pam_mount.c:522): mount of ablage failed[/src]

Und in /var/log/syslog steht folgendes:

[src=text]Dec 13 16:31:37 REDACTED-PC6 rsyslogd: [origin software="rsyslogd" swVersion="5.8.11" x-pid="2229" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Dec 13 16:31:40 REDACTED-PC6 anacron[3409]: Job `cron.daily' terminated
Dec 13 16:31:40 REDACTED-PC6 anacron[3409]: Normal exit (1 job run)
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: key description: cifs.spnego;0;0;39010000;ver=0x2;host=filesrv1;ip4=192.168.1.12;sec=krb5;uid=0x0;creduid=0x0;user=root;pid=0xf7d
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: ver=2
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: host=filesrv1
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: ip=192.168.1.12
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: sec=1
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: uid=0
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: creduid=0
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: user=root
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: pid=3965
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: krb5_get_init_creds_keytab: -1765328378
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: handle_krb5_mech: getting service ticket for filesrv1
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: cifs_krb5_get_req: unable to resolve (null) to ccache
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: handle_krb5_mech: failed to obtain service ticket (-1765328245)
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: handle_krb5_mech: getting service ticket for filesrv1.redacted.local
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: cifs_krb5_get_req: unable to resolve (null) to ccache
Dec 13 16:31:50 REDACTED-PC6 cifs.upcall: handle_krb5_mech: failed to obtain service ticket (-1765328245)
Dec 13 16:31:50 REDACTED-PC6 kernel: [ 343.103760] CIFS VFS: Send error in SessSetup = -126
Dec 13 16:31:50 REDACTED-PC6 kernel: [ 343.103915] CIFS VFS: cifs_mount failed w/return code = -126[/src]

Also bekommt der Client kein Kerberos-Ticket für den Dateiserver! Jetzt muss ich nur noch herausfinden, warum... habe jetzt erst mal alle Clients auf (funktionierende!) NTLMv2 Authentifizierung umgestellt und werde mir einen Testrechner anschauen, bei dem ich dann Kerberos versuche.
 
Zuletzt bearbeitet:
Zurück
Oben