Настройка для монтирования домашней директории kerberized nfs - gssd не находит действительный билет Kerberos

17

Наши домашние каталоги экспортируются через Kerberized NFS, поэтому пользователю нужен действительный билет Kerberos, чтобы иметь возможность смонтировать свой дом. Эта установка прекрасно работает с нашими существующими клиентами и сервером.

Теперь мы хотим добавить клиент 11.10 и, таким образом, настроить ldap & kerberos вместе с pam_mount. Аутентификация ldap работает, и пользователи могут войти через ssh, однако их дома не могут быть смонтированы.

Когда pam_mount настроен для монтирования от имени пользователя root, gssd не находит действительный билет Kerberos, и монтирование завершается неудачно.

Nov 22 17:34:26 zelda rpc.gssd[929]: handle_gssd_upcall: 'mech=krb5 uid=0 enctypes=18,17,16,23,3,1,2 '
Nov 22 17:34:26 zelda rpc.gssd[929]: handling krb5 upcall (/var/lib/nfs/rpc_pipefs/nfs/clnt2)
Nov 22 17:34:26 zelda rpc.gssd[929]: process_krb5_upcall: service is '<null>'
Nov 22 17:34:26 zelda rpc.gssd[929]: getting credentials for client with uid 0 for server purple.physcip.uni-stuttgart.de
Nov 22 17:34:26 zelda rpc.gssd[929]: CC file '/tmp/krb5cc_65678_Ku2226' being considered, with preferred realm 'PURPLE.PHYSCIP.UNI-STUTTGART.DE'
Nov 22 17:34:26 zelda rpc.gssd[929]: CC file '/tmp/krb5cc_65678_Ku2226' owned by 65678, not 0
Nov 22 17:34:26 zelda rpc.gssd[929]: WARNING: Failed to create krb5 context for user with uid 0 for server purple.physcip.uni-stuttgart.de
Nov 22 17:34:26 zelda rpc.gssd[929]: doing error downfall

Когда pam_mount настроен с параметром noroot = 1, он вообще не может подключить том.

Nov 22 17:33:58 zelda sshd[2226]: pam_krb5(sshd:auth): user phy65678 authenticated as phy65678@PURPLE.PHYSCIP.UNI-STUTTGART.DE
Nov 22 17:33:58 zelda sshd[2226]: Accepted password for phy65678 from 129.69.74.20 port 51875 ssh2
Nov 22 17:33:58 zelda sshd[2226]: pam_unix(sshd:session): session opened for user phy65678 by (uid=0)
Nov 22 17:33:58 zelda sshd[2226]: pam_mount(mount.c:69): Messages from underlying mount program:
Nov 22 17:33:58 zelda sshd[2226]: pam_mount(mount.c:73): mount: only root can do that
Nov 22 17:33:58 zelda sshd[2226]: pam_mount(pam_mount.c:521): mount of /Volumes/home/phy65678 failed

Итак, как мы можем разрешить пользователям определенной группы выполнять монтирование nfs? Если это не работает, можем ли мы заставить pam_mount использовать root, но передать правильный uid?

Ян Бернлёр
источник
Эта же проблема относится к подключению -osec=krb5
общих
Действительно, эта проблема еще не решена. Должен ли я создать еще один вопрос с тем же названием и содержанием, или что вы подразумеваете под "репостом"?
Ян Бернлёр
Я думал, что с Kerberized NFS вы монтируете как root (с системным keytab), но доступ к файлу осуществляется с билетом каждого пользователя.
Jayen
удален запрос комментария- будет следить
Ringtail
Вы монтируете /home /home/userили /home/user/mountpoint? Первый, я думаю, должен быть сделан до входа в систему. Второе, что я пытался сделать с sshfs, но он продолжал давать сбой при входе в GDM и lightdm, и я не думаю, что это была ошибка sshfs. Третий должен работать, вам просто нужно добавить пользователя в группу, которой разрешено выполнять монтирование nfs. Пожалуйста, дайте мне знать, если вы получите второй на работу. Мне было бы интересно.
d_inevitable

Ответы:

2

Смотрите эту тему:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=190267

Если в fstab нет опции «user», то только root может монтировать тома. В mount.c есть некоторый комментарий о том, чтобы сделать команду монтирования исполняемой любым пользователем, но она была отвергнута сопровождающим (комментарий говорит что-то о последствиях для безопасности, но не более конкретно).

В отличие от исходного апстрима, версия libpam-mount для Debian выполняет команды монтирования с пользовательским uid, а не с правами root. Выполнение пользовательских монтирований от имени root является дырой в безопасности. Затем любой пользователь может подключить том к / usr или / tmp при входе в систему или отключить любой другой том при выходе из системы.

Или, другими словами, libpam-mount может делать только то, что может делать пользователь, и ничего более.

Итак, есть предложения?

Помещение пользовательской записи в fstab должно сделать это. Пожалуйста, скажите мне, как это работает. Обратите внимание, что другие файловые системы (ncp, smb) имеют вызываемые пользователем двоичные файлы монтирования, такие как smbmount или ncpmount. Для петлевых монтировок, похоже, нет ничего подобного: /

Александр Адамовский
источник