
Ich habe mehrere RHEL6-Systeme mit derselben Konfiguration. CIFS-Mounts funktionieren seit Jahren. Im letzten Monat hat es jedoch auf einem meiner Systeme aufgehört zu funktionieren und ich kann nicht herausfinden, warum.
(Siehe Konfiguration unten)
Ich habe einen gültigen Host Principal in meinem Keytab. Wenn ich versuche, ein CIFS-Mount ( /net/programs
) zu mounten, erhalte ich die folgende Fehlermeldung:
mount error(126): Required key not available
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Der Fehler scheint mit cifs.upcall zusammenzuhängen und beim Vergleich des Debug-Protokolls stelle ich den folgenden Unterschied im Protokoll fest:
krb5_get_init_creds_keytab: -1765328203
handle_krb5_mech: getting service ticket for server0.domain0.local
cifs_krb5_get_req: unable to resolve (null) to ccache
handle_krb5_mech: failed to obtain service ticket (-1765328245)
Der Fehler ( -1765328203
) scheint auf abzubilden KRB5_KT_NOTFOUND "Key table entry not found"
.
Die Berechtigungen krb5.keytab
scheinen jedoch korrekt zu sein und stimmen mit meinen anderen Systemen überein. klist -k
Zeigt die richtigen Schlüssel an (die mit meinen anderen Systemen übereinstimmen) und kinit -k
ist erfolgreich.
Ein weiteres seltsames Verhalten. Als vorübergehende Problemumgehung kann ich die Freigabe mit NTLMSSPI
und meinem Benutzernamen mounten, aber die Mountung ist nur in meiner Sitzung sichtbar. Wenn ich mich mit einer neuen Sitzung anmelde, wird die Mountung nicht angezeigt. Ich sehe sie nicht einmal, /proc/mounts
obwohl sie in der ursprünglichen Sitzung sichtbar ist.
Meine Systeme sind alle auf Kernel-Version2.6.32-696-23.1und habe eine Samba-Version3.6.23-46.
Aufbau:
SMB.CONF:
[global]
workgroup = DOMAIN0
password server = server0.DOMAIN0.LOCAL
realm = DOMAIN0.LOCAL
security = ads
idmap config * : backend
idmap config * : range = 300000-399999
idmap config DOMAIN0:backend = rid
idmap config DOMAIN0:range = 100000-199999
idmap config DOMAIN0:base_rid = 0
template shell = /bin/bash
winbind enum users = no
winbind enum groups = no
winbind separator = +
winbind use default domain = yes
winbind offline logon = false
kerberos method = secrets and keytab
client signing = mandatory
server signing = mandatory
NSSWITCH.CONF:
passwd: files winbind
shadow: files winbind
group: files winbind
hosts: files dns
SYSTEM-AUTH:
auth required pam_env.so
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_winbind.so use_first_pass
auth [default=die] pam_faillock.so authfail deny=3 unlock_time=604800 fail_interval=900
auth required pam_faillock.so authsucc deny=3 unlock_time=604800 fail_interval=900
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_winbind.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 minlen=14 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=4 remember=24 maxrepeat=3
password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok
password sufficient pam_winbind.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session required pam_lastlog.so showfailed
session optional pam_oddjob_mkhomedir.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
REQUEST-KEY.CONF
#OP TYPE DESCRIPTION CALLOUT INFO PROGRAM ARG1 ARG2 ARG3 ...
#====== ======= =============== =============== ===============================
create user debug:* negate /bin/keyctl negate %k 30 %S
create user debug:loop:* * |/bin/cat
create user debug:* * /usr/share/keyutils/request-key-debug.sh %k %d %c %S
negate * * * /bin/keyctl negate %k 30 %S
create cifs.spnego * * /usr/sbin/cifs.upcall %k
create cifs.idmap * * /usr/sbin/cifs.idmap %k
create dns_resolver * * /usr/sbin/cifs.upcall %k
KRB5.CONF
[libdefaults]
default_realm = DOMAIN0.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
DOMAIN0.LOCAL = {
kdc = server0.DOMAIN0.LOCAL
}
FSTAB:
//server0.domain0.local/Programs /net/programs cifs noauto,sec=krb5i,multiuser,cifsacl 0 0
RC.LOCAL
/sbin/ntpdate -u server0
/usr/bin/kinit -k
/bin/mount /net/programs
NTP.CONF
server server0.domain0.local iburst