Добрый день, коллеги. Мучаюсь 5й день, не могу освоить NFS + Kerberos. Сталкиваюсь с Kerberos'ом 1й раз. До этого NFS шару с sec=sys делал не раз.
Задача - сделать в офисе сетевую ФС, к которой все подключаются с desktop'ов/laptop'ов, работают с файлами, имеют разграничения по правам доступа на r/rw/rwx и т. п. NFS - потому что все на Linux.
В Интернете много инфы, но вся какая-то обрывочная, не законченная.
Шёл по этим официальным мануалам:
Раз, два.
И всё в этих мануалах меня устраивает и всё понятно, если б работало...
Что сделано и что хорошо умею: DNS в два «View», NTP.
Что хочу: подключение к ФС с любого ПК по любому user/pass - без привязки к host'у. Возможно ли это вообще? По мануалу openSUSE - да, там просто создаётся principal «suzanne», задаётся пароль, и должно работать. Но в других источниках говорится, что на NFS клиенты тоже нужно класть keytab файл.. Кому верить?
Если подключаться без keytab'а на клиенте, то явно ругается:
journalctl -u rpc-gssd.service
ERROR: Key table file '/etc/krb5.keytab' not found while beginning keytab scan for keytab 'FILE:/etc/krb5.keytab'
ERROR: gssd_refresh_krb5_machine_credential_internal: no usable keytab entry found in keytab /etc/krb5.keytab for connection with host main.3r.ru
Подумал, что нужно на сервер положить keytab'ы от принципала сервера, а на клиенты нужно выдавать keytab'ы клиента...
Сервер:
> sudo klist -k
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
3 host/main.3r.ru@3R.RU
3 host/main.3r.ru@3R.RU
2 nfs/main.3r.ru@3R.RU
2 nfs/main.3r.ru@3R.RU
Клиент:
> sudo klist -k
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
2 nfs/NeWTs-SUSE-Laptop.3r.ru@3R.RU
2 nfs/NeWTs-SUSE-Laptop.3r.ru@3R.RU
И...
> sudo mount -t nfs4 -o sec=krb5 main.3r.ru:/opt/docs/ /mnt/
mount.nfs4: access denied by server while mounting main.3r.ru:/opt/docs/
При этом rpc.gssd на клиенте уже не ругается.
Вобщем, я пока не до конца понимаю сам принцип, что куда зачем...
1) Можно ли для NFS клиентов не выдавать krb5.keytab? Можно ли только по user/pass? kinit же, вроде?..
2) Если нельзя не выдавать, что там должно быть? Привязка по username или к хосту?
3) Можно ли не привязываться к reverse DNS? Ну не хочу я быть настолько параноиком. Тем более, что клиенты - DHCP. rdns = false это же оно?
4) Можно ли вообще клиентов по DNS даже по прямому просмотру не проверять и не привязывать?
Сейчас в тестовой системе 3 хоста: сервер NFS (main.3r.ru), сервер KDC (krb.3r.ru), клиент (у него есть Хостнэйм, но это важно? Он не прописан в DNS, это просто ноут с просто DHCP)..
Настройка конфига на krb сервере:
( читать дальше... )
Настройка конфига на NFS Server'е (krb клиенте):
( читать дальше... )
Настройка зоны DNS:
( читать дальше... )
И это работает - клиент NFS и без настройки конфига /etc/krb5.conf (точнее, с дефолтным) тоже общается с Kerberos сервером. Т. е. работает kinit - билеты выдаются.
Но я перепробовал уже, кажется, все варианты....
Может кто-то подсказать что куда и зачем класть, чтобы NFS подключился?