2017-02-21 29 views
2

Недавно установили долю samba с помощью Kerberos, перестали работать. Работает тот же самый ресурс с теми же настройками монтирования на другом сервере. Поэтому я предполагаю, что нет ничего плохого в нашей настройке DNS и установке Active Directory. Кажется, это проблема с клиентом.Монтирование cifs-share с ошибками kerberos: ошибка монтирования (126): Необходимый ключ недоступен

Выход

крепление доля

mount error(126): Required key not available 
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) 

Fstab-запись выглядит следующим образом:

//servername/share /home/username/share cifs _netdev,users,sec=krb5,noperm,noauto 0 0 

журнал показывает это:

Feb 21 10:01:11 clientserver cifs.upcall: key description: cifs.spnego;0;0;39010000;ver=0x2;host=192.168.0.7;ip4=192.168.0.7;sec=krb5;uid=0x2b9d;creduid=0x2b9d;user=username;pid=0x68c6 

Feb 21 10:01:11 clientserver cifs.upcall: ver=2 
Feb 21 10:01:11 clientserver cifs.upcall: host=192.168.0.7 
Feb 21 10:01:11 clientserver cifs.upcall: ip=192.168.0.7 
Feb 21 10:01:11 clientserver cifs.upcall: sec=1 
Feb 21 10:01:11 clientserver cifs.upcall: uid=11165 
Feb 21 10:01:11 clientserver cifs.upcall: creduid=11165 
Feb 21 10:01:11 clientserver cifs.upcall: user=username 
Feb 21 10:01:11 clientserver cifs.upcall: pid=26822 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: scandir error on directory '/run/user/11165': No such file or directory 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_11165 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: FILE:/tmp/krb5cc_11165 is valid ccache 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_11167 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: /tmp/krb5cc_11167 is owned by 11167, not 11165 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_0 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: /tmp/krb5cc_0 is owned by 0, not 11165 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_11176 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: /tmp/krb5cc_11176 is owned by 11176, not 11165 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_11174 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: /tmp/krb5cc_11174 is owned by 11174, not 11165 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_11308 
Feb 21 10:01:11 clientserver cifs.upcall: find_krb5_cc: /tmp/krb5cc_11308 is owned by 11308, not 11165 
Feb 21 10:01:11 clientserver cifs.upcall: handle_krb5_mech: getting service ticket for 192.168.0.7 
Feb 21 10:01:11 clientserver cifs.upcall: cifs_krb5_get_req: unable to get credentials for 192.168.0.7 
Feb 21 10:01:11 clientserver cifs.upcall: handle_krb5_mech: failed to obtain service ticket (-1765328377) 
Feb 21 10:01:11 clientserver cifs.upcall: Unable to obtain service ticket 
Feb 21 10:01:11 clientserver cifs.upcall: Exit status -1765328377 

Похоже, что разрешение имени хоста работает неправильно. Я не знаю, как cifs.upcall получает имя хоста, но если я проверю записи DNS A, PTR выглядит нормально. И разрешение netbios также работает.

Итак, как kerberos ищет имя хоста. Извлекает ли имя хоста из UNC-пути?

Написание имени хоста в/etc/hosts не работает. Тем не менее, работает другой сервер с той же версией windbind, samba, cifs.upcall и kerberos. У resolv.conf также есть те же записи. Есть несколько других samba-акций, которые отлично работают с kerberos. Поэтому я немного застрял. Любая помощь будет оценена по достоинству.

ответ

1

Попытка добавить '-t' для вызова cifs.upcall в /etc/request-key.d/

В моем случае (Ubuntu) это файл /etc/request-key.d/ cifs.spnego.conf

Был: создать cifs.spnego * * /usr/sbin/cifs.upcall% K

Изменено: создать cifs.spnego * * /usr/sbin/cifs.upcall - t% k

+0

спасибо. Теперь это работает! Параметр -t выполняет следующие действия: при использовании ups-up krb5 имя, используемое в качестве основной части основного участника службы, по умолчанию относится к части имени узла UNC. Эта опция позволяет программе upcall отменить разрешение сетевого адреса сервера, чтобы получить имя хоста. – Andre

+0

Я действительно не понимаю, какую проблему DNS у меня есть, потому что поиск DNS-файлов отлично исправляется на ip-адресе связанных имен хостов. – Andre

+0

Проблема не в том, чтобы разрешить DNS самостоятельно, а в том, что по умолчанию он не доверяет этому DNS. –