[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