[sisyphus] [Решено] Re: Прошу помощи клуба! Kerberos/ldap + nfs4

Gleb Kulikov glebus на asd.iao.ru
Вт Мар 10 12:50:22 MSK 2015


В сообщении от [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=kulikov,dc=org                                                                       
    ldap_kadmind_dn = cn=kadmin,ou=kdcroot,dc=kulikov,dc=org                                                                
    ldap_service_password_file = /var/lib/kerberos/krb5kdc/нашдомен.org.ldapkey                                              
    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 = kulikov.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 явно!


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

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


-- 
      Салют, /GLeb

UIN: 15341920
jabber://gleb@asd.iao.ru
sip://2387245@sipnet.ru			(telephony)
skype://gleb_kulikov.tomsk		(telephony)



Подробная информация о списке рассылки Sisyphus