Автор Тема: Kerberos/ldap + nfs4 Прошу помощи клуба!  (Прочитано 4773 раз)

Оффлайн glebiao

  • Участник
  • *
  • Сообщений: 19
Извините, дублирую тут: первое сообщение отправил, видимо, в неудачный раздел форума :)

Тема очень важна, хэээлп :)!

Пытаюсь воспользоваться nfs4 в домене  Kerberos/ldap,

Домен настраивался штатными средствами.

Ничерта не получается и очевидно, моего слабого понимания механизма
недостаточно

В хронологическом порядке:

1. Средствами альтератора, клиент введён в домен. Аутентификация заработала
после ручной правки /etc/krb5.conf на клиенте с указанием домена и царства.

2. На сервере и клиенте вручную поправлен /etc/idmapd, в том числе (это
оказалось необходимым!), вручную указан домен (Domain=) и (Local-Realms = )

2. На сервере прописан экспорт:

/etc/exports:


/export  *(ro,nohide,no_subtree_check,fsid=0,crossmnt)


/export/Archive
gss/krb5(sec=krb5,insecure,rw,sync,no_subtree_check,crossmnt,fsid=2)


3. При попытке смонтировать на клиенте:

host-52 rpc.gssd[2330]: ERROR: Key table file '/etc/krb5.keytab' not found
while beginning keytab scan for
keytab 'FILE:/etc/krb5.keytab'

host-52 rpc.gssd[2330]: ERROR: gssd_refresh_krb5_machine_credential: no usable
keytab entry found in keytab
 /etc/krb5.keytab for connection with host athena77.testdom.org


host-52 rpc.gssd[2331]: ERROR: Key table file '/etc/krb5.keytab' not found
while beginning keytab scan for
keytab 'FILE:/etc/krb5.keytab'


Что делать? Запустить на клиенте kadmin и создать nfs/athena77.testdom.org и
host /athena77.testdom.org?

Но как?

# kadmin

Authenticating as principal root/admin@TESTDOM.ORG with password.
kadmin: Missing parameters in krb5.conf required for kadmin client while
initializing kadmin interface

что логично,

kadmin.local, естественно,

kadmin.local: Нет такого файла или каталога while initializing kadmin.local
interface

Создать на сервере nfs/host-52... и host/host-52... и экспортировать в
[клиент/etc/krb5.keytab] вместе с nfs/athena77... и host/athena77... ?

Но KVNO в экспортированном файле изменяется и аутенификация не проходит
("Request ticket server nfs/athena77.testdom.org@TESTDOM.ORG kvno 3 not found
in keytab; keytab is likely out of date")

Целиком перетащить krb5.keytab с сервера на клиента? Но тогда монтирование (от
рута) проходит, но :

На клиенте:


mount -vvv -t nfs4 athena77.testdom.org:/Archive /mnt/Ar -o intr
mount.nfs4: timeout set for Wed Mar  4 13:29:48 2015
mount.nfs4: trying text-based options
'intr,vers=4.0,addr=192.168.10.36,clientaddr=192.168.10.34'
[root@host-52 etc]#

Mar  4 13:27:48 host-52 rpc.gssd[1914]: ERROR: No credentials found for
connection to server athena77.testdom.org

На сервере:

Mar  4 13:27:32 athena77 krb5kdc[26986]: AS_REQ (9 etypes {18 17 16 23 25 26 1
3 2}) 192.168.10.34: ISSUE: authtime 1425454052, etypes {rep=18 tkt=18
ses=18}, nfs/athena77.testdom.org@TESTDOM.ORG for
krbtgt/TESTDOM.ORG@TESTDOM.ORG

Mar  4 13:27:32 athena77 last message repeated 4 times

Mar  4 13:28:22 athena77 krb5kdc[26986]: TGS_REQ (9 etypes {18 17 16 23 25 26
1 3 2}) 192.168.10.34: ISSUE: authtime 1425454102, etypes {rep=18 tkt=18
ses=18}, gleb@TESTDOM.ORG
 for host/athena77.testdom.org@TESTDOM.ORG


Файловая система монтируется только для чтения

Пробую получить билет и смонтировать:

# kinit gleb

Password for gleb@TESTDOM.ORG:

[root@host-52 syslog]# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: gleb@TESTDOM.ORG

Valid starting       Expires              Service principal
04.03.2015 13:37:15  05.03.2015 13:37:07  krbtgt/TESTDOM.ORG@TESTDOM.ORG

На клиенте:

Mar  4 13:38:45 host-52 rpc.gssd[2008]: ERROR: No credentials found for
connection to server athena77.testdom.org

На сервере:

Mar  4 13:37:07 athena77 krb5kdc[26986]: AS_REQ (9 etypes {18 17 16 23 25 26 1
3 2}) 192.168.10.34: NEEDED_PREAUTH: gleb@TESTDOM.ORG for
krbtgt/TESTDOM.ORG@TESTDOM.ORG, Additio
nal pre-authentication required

Mar  4 13:37:15 athena77 krb5kdc[26986]: AS_REQ (9 etypes {18 17 16 23 25 26 1
3 2}) 192.168.10.34: ISSUE: authtime 1425454635, etypes {rep=18 tkt=18
ses=18}, gleb@TESTDOM.ORG
for krbtgt/TESTDOM.ORG@TESTDOM.ORG

Mar  4 13:38:29 athena77 krb5kdc[26986]: AS_REQ (9 etypes {18 17 16 23 25 26 1
3 2}) 192.168.10.34: ISSUE: authtime 1425454709, etypes {rep=18 tkt=18
ses=18}, nfs/athena77.testdom.org@TESTDOM.ORG for
krbtgt/TESTDOM.ORG@TESTDOM.ORG


И фс доступна только для чтения.

Если указать sec=krb5, сервер не даёт ответ:


Mar  4 15:58:41 athena77 krb5kdc[26986]: AS_REQ (9 etypes {18 17 16 23 25 26 1 3 2}) 192.168.10.34: ISSUE: authtime 1425463121, etypes {rep=18 tkt=18 ses=
18}, nfs/athena77.testdom.org@TESTDOM.ORG for krbtgt/TESTDOM.ORG@TESTDOM.ORG
Mar  4 15:58:41 athena77 last message repeated 4 times

Mar  4 15:59:26 athena77 krb5kdc[26986]: AS_REQ (9 etypes {18 17 16 23 25 26 1 3 2}) 192.168.10.34: ISSUE: authtime 1425463166, etypes {rep=18 tkt=18 ses=
18}, nfs/athena77.testdom.org@TESTDOM.ORG for krbtgt/TESTDOM.ORG@TESTDOM.ORG
Mar  4 15:59:26 athena77 last message repeated 2 times


и монтирование не происходит.

Короче, я пас.

Помогите кто может (и кто не может  !

PS: на сервере заведены принципалы

nfs/athena77.testdom.org (автоматически альтератором)
host/athena77.testdom.org (автоматически альтератором)

nfs/host-52.testdom.org (руками)
host/host-52.testdom.org (руками)

и  ldap-useradd -w -i host-52

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: Kerberos/ldap + nfs4 Прошу помощи клуба!
« Ответ #1 : 04.03.2015 22:00:04 »
Так-как вы создали вторую тему с одним и тем-же текстом, то одну я удалил.

По теме вопроса - советую обратиться в  тематическую рассылку   http://lists.altlinux.org/mailman/listinfo/ , например в 
https://lists.altlinux.org/mailman/listinfo/sysadmins

Кстати, вы не указали не дистрибутив, не версии установленных пакетов.

Оффлайн glebiao

  • Участник
  • *
  • Сообщений: 19
Re: Kerberos/ldap + nfs4 Прошу помощи клуба!
« Ответ #2 : 05.03.2015 07:19:47 »

Кстати, вы не указали не дистрибутив, не версии установленных пакетов.

февральский стартеркит, обновлённый до текущего Сизифа.

Alterator-openldap 0.8.1-alt1
Openldap 2.4.32-alt2.1.1
Openldap-clients 2.4.32-alt2.1.1
Openldap-servers 2.4.32-alt2.1.1

Alterator-net-domain 0.4-alt19

Собственно. насколько я понимаю ситуацию, самый существенный момент --- кто и как должен создавать /etc/krb5.keytab НА КЛИЕНТЕ

Оффлайн glebiao

  • Участник
  • *
  • Сообщений: 19
В сообщении от [4 марта 2015 Gleb Kulikov] написал:

> Пытаюсь воспользоваться nfs4 в домене  Kerberos/ldap,
>
> Домен настраивался штатными средствами.
>
> Ничерта не получается и очевидно, моего слабого понимания механизма
> недостаточно :(

Отвечаю сам себе. Возможно, имеет смысл отразить результат раскопок на вики:

1. После ввода машины -- клиента в домен kerberos/ldap средствами альтератора нужно НА КЛИЕНТЕ исправить два косяка:

а) дописать в /etc/krb5.conf:
+++++++++++++++++++++++++++

[libdefaults]

default_realm = НАШЕ.ORG

allow_weak_crypto = true # очень похоже, что принципиальный момент для текущей nfs!

[dbmodules]                                                                                                                 
нашдомен.org = {                                                                                                             
    db_library = kldap                                                                                                     
    ldap_kdc_dn = cn=kdc,ou=kdcroot,dc=домен,dc=org                                                                       
    ldap_kadmind_dn = cn=kadmin,ou=kdcroot,dc=домен,dc=org                                                               
    ldap_servers = ldaps://сервер.нашдомен.org/                                                                           
    ldap_conns_per_server = 5                                                                                               
}                                                                                                                           
                                                                                                                           
[realms]                                                                                                                   
                                                                                                                           
НАШДОМЕН.ORG = {                                                                                                             
    kdc = сервер.нашдомен.org                                                                                             
    admin_server = сервер.нашдомен.org                                                                                     
    default_domain = нашдомен.org                                                                                           
}                                                                                                                           
                                                                                                                           
[domain_realm]                                                                                                             
нашдомен.org = НАШДОМЕН.ORG                                                                                                   
.нашдомен.org = НАШДОМЕН.ORG
+++++++++++++++++++++++++++++


б) заполнить /etc/idmapd.conf

[General]

Domain = домен.org

[Mapping]                                                                                                                   
                                                                                                                           
Nobody-User = nobody                                                                                                       
Nobody-Group = nobody

[Translation]

Method = nsswitch

2. Идём НА СЕРВЕР (KDC) и создаём принципал для КЛИЕНТА (если клиентов много, то для каждого клиента):

kadmin.local:
addprinc -randkey nfs/клиент.нашдомен.org@НАШЕЦАРСТВО.ORG
после ввода всех клиентов
ktadd -k /etc/krb5.keytab

именно так, без указания типа шифрования (будут записаны все дефолтные)

теперь копируем /etc/krb5.keytab С СЕРВЕРА в /etc на КЛИЕНТАХ.

Именно копируем полный keytab с сервера, а не экспортируем отдельную запись. В противном случае, KVNO записи изменится и аутентичность устанавливаться не будет!
(Этот момент мне кажется крайне сомнительным, хотелось бы услышать комментарий гуру).

Без копирования keytab на клиента, gssd установление аутентичности не отрабатывает (почему?!)

3. [БАГ!!!!] На клиенте тем или иным способом заставляем запуститься rpc.gssd, rpc.idmapd --- в p7 работает service gssd старт, а вот для старта rpc.idmapd нужно или создавать новый сервис, или стартовать вручную. Аналогично, на сервере нужно ДОПОЛНИТЕЛЬНО стартовать rpc.svgssd

4. /etc/sysconfig/nfs на севере И КЛИЕНТЕ, нужно прописать
SECURE_NFS=yes

5. в /etc/exports:

а) корень ОБЯЗАТЕЛЬНО должен быть прописан с sec=krb5 И ЭТА СТРОЧКА ДОЛЖНА БЫТЬ ПЕРВОЙ!

/export         gss/krb5(ro,nohide,no_subtree_check,fsid=0,crossmnt,sec=krb5)



б) если есть необходимость, чтобы кроме керберезированных экспортов была возможность анонимного подключения, следует:
   б.1) прописывать анонимные шары ОБЯЗАТЕЛЬНО в другое дерево. Хотя будем требовать, чтобы анонимные шары разделялись по nfs3, указание fsid= ОБЯЗАТЕЛЬНО, причём номер fsid НЕ ДОЛЖЕН ПЕРЕСЕКАТЬСЯ С fsid керберезированного раздела (для анонимных шар начинаем нумерацию заведомо ПОСЛЕ керберезированных каталогов).

/nfs/Film 192.168.1.0/24(ro,nohide,no_subtree_check,crossmnt,fsid=10)

   б.2) керберезированные каталоги прописываем с sec=krb5

/export/Archive gss/krb5(insecure,rw,sync,no_subtree_check,crossmnt,fsid=3)

NB!: анонимная шара монтируется по nfs3 с использованием полного синтаксиса:

mount -t nfs сервер:/nfs/Film /mnt/F -o intr,vers=3,nolock,sec=sys
(здесь nolock или, что правильнее, запускать lockd).

Монтирование из autofs также работает, но версию протокола и sec= нужно прописывать в файлы конфигурации autofs явно!


Непонятный косяк: первая запись файла на керберизированный ресурс длится неприлично долго, но затем работа идёт без замираний и на полной скорости.

Заключение: слов нет, одни мысли, и те неприличные.

« Последнее редактирование: 10.03.2015 13:42:10 от glebiao »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 160
    • Домашняя страница
Re: Kerberos/ldap + nfs4 Прошу помощи клуба!
« Ответ #4 : 10.03.2015 13:08:41 »
Не нойте, а заводите баги.
Андрей Черепанов (cas@)

Оффлайн glebiao

  • Участник
  • *
  • Сообщений: 19
Re: Kerberos/ldap + nfs4 Прошу помощи клуба!
« Ответ #5 : 10.03.2015 13:16:50 »
Не нойте, а заводите баги.

Андрей, никто не ноет.
Просто тема весьма чувствительная. Я, например, полный нуб в Керберос. Какие баги? Тут бы дров не наломать.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Re: Kerberos/ldap + nfs4 Прошу помощи клуба!
« Ответ #6 : 10.03.2015 16:07:04 »
Какие баги? Тут бы дров не наломать.
Не, вы не правы. если баги нет, то о вашей проблеме никто никогда не узнает. А если окажется, что это не бага, а просто вы что-то не так сделали - то-же не страшно, скажут, что не воспроизводится и закроют её.