NFS + Kerberos: сервер запрещает доступ во время монтирования

Проблема в том, что update-rc.d etherwake по умолчанию может не работать. Попробуйте включить службу через systemctl , запустите:

systemctl enable etherwake
5
22.05.2017, 23:38
3 ответа

Tengo el mismo problema. Según este pequeño tutorialhttps://www.certdepot.net/rhel7-use-kerberos-control-access-nfs-network-shares/debe habilitar el servicio de servidor seguro nfs --en el lado del servidor y el servicio seguro nfs -en el lado del cliente. Esto deberia resolver el problema.

1
27.01.2020, 20:42

Вчера я столкнулся с той же проблемой, и, похоже, это произошло из-за отсутствия принципалов в KDC и rpc -gssd.service, остановленного на клиенте.

На сервере KDC должен быть запущен хвост -f /var/log/krb5kdc.log и отсутствующие участники, если таковые имеются, должны появиться в журнале при попытках подключения общего ресурса NFS с клиента.

[vagrant@desktop1 ~]$ sudo mount -o sec=krb5 server1:/knfs /knfs -v
mount.nfs: timeout set for Sun Feb 24 09:44:35 2019
mount.nfs: trying text-based options 'sec=krb5,vers=4.1,addr=192.168.121.163,clientaddr=192.168.121.26'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'sec=krb5,vers=4.0,addr=192.168.121.163,clientaddr=192.168.121.26'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'sec=krb5,addr=192.168.121.163'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: portmap query failed: RPC: Remote system error - No route to host
^C
[vagrant@desktop1 ~]$ 

В выводе журнала был идентифицирован отсутствующий участник:

[vagrant@server1 ~]$ sudo tail -f /var/log/krb5kdc.log 
Feb 24 09:42:35 server1 krb5kdc[2870](info): TGS_REQ (8 etypes {18 17 20 19 16 23 25 26}) 192.168.121.26: LOOKING_UP_SERVER: authtime 0,  nfs/desktop1.example.com@EXAMPLE.COM for nfs/kerberos.example.com@EXAMPLE.COM, Server not found in Kerberos database
Feb 24 09:42:35 server1 krb5kdc[2870](info): TGS_REQ (4 etypes {18 17 16 23}) 192.168.121.26: LOOKING_UP_SERVER: authtime 0,  nfs/desktop1.example.com@EXAMPLE.COM for nfs/kerberos.example.com@EXAMPLE.COM, Server not found in Kerberos database
Feb 24 09:42:35 server1 krb5kdc[2870](info): TGS_REQ (8 etypes {18 17 20 19 16 23 25 26}) 192.168.121.26: LOOKING_UP_SERVER: authtime 0,  nfs/desktop1.example.com@EXAMPLE.COM for nfs/kerberos.example.com@EXAMPLE.COM, Server not found in Kerberos database
Feb 24 09:42:35 server1 krb5kdc[2870](info): TGS_REQ (8 etypes {18 17 20 19 16 23 25 26}) 192.168.121.26: LOOKING_UP_SERVER: authtime 0,  nfs/desktop1.example.com@EXAMPLE.COM for nfs/kerberos.example.com@EXAMPLE.COM, Server not found in Kerberos database

Необходимо добавить отсутствующего участника в KDC и экспортировать ключ клиента в клиент {/etc/krb5.keytab}.

sudo kadmin.local -q "ktadd nfs/kerberos.example.com"
sudo kadmin.local -q "ktadd -k /tmp/krb5.keytab nfs/desktop1.example.com"

Вкладка на стороне клиента:

[vagrant@desktop1 ~]$ sudo klist -ek
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   3 nfs/desktop1.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96) 
   3 nfs/desktop1.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96) 
   3 nfs/desktop1.example.com@EXAMPLE.COM (des3-cbc-sha1) 
   3 nfs/desktop1.example.com@EXAMPLE.COM (arcfour-hmac) 
   3 nfs/desktop1.example.com@EXAMPLE.COM (camellia256-cts-cmac) 
   3 nfs/desktop1.example.com@EXAMPLE.COM (camellia128-cts-cmac) 
   3 nfs/desktop1.example.com@EXAMPLE.COM (des-hmac-sha1) 
   3 nfs/desktop1.example.com@EXAMPLE.COM (des-cbc-md5) 
[vagrant@desktop1 ~]$ 

Отказ в разрешении больше не должен присутствовать, но должно появиться другое предупреждение для неверных аргументов.

[vagrant@desktop1 ~]$ sudo mount -o sec=krb5 server1:/knfs /knfs -v
mount.nfs: timeout set for Sun Feb 24 09:07:32 2019
mount.nfs: trying text-based options 'sec=krb5,vers=4.1,addr=192.168.121.54,clientaddr=192.168.121.195'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'sec=krb5,vers=4.0,addr=192.168.121.54,clientaddr=192.168.121.195'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'sec=krb5,addr=192.168.121.54'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: portmap query failed: RPC: Remote system error - No route to host
mount.nfs: trying text-based options 'sec=krb5,vers=4.0,addr=192.168.121.54,clientaddr=192.168.121.195'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'sec=krb5,addr=192.168.121.54'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: portmap query failed: RPC: Remote system error - No route to host
mount.nfs: trying text-based options 'sec=krb5,vers=4.0,addr=192.168.121.54,clientaddr=192.168.121.195'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'sec=krb5,addr=192.168.121.54'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: portmap query failed: RPC: Remote system error - No route to host
^C
[vagrant@desktop1 ~]$ 

После запуска службы rpc -gssd.service ошибка исчезла, и общий ресурс NFS был смонтирован правильно:

[vagrant@desktop1 ~]$ sudo systemctl start rpc-gssd.service 
[vagrant@desktop1 ~]$ sudo mount -o sec=krb5 server1:/knfs /knfs -v mount.nfs: 
timeout set for Sun Feb 24 09:07:47 2019 mount.nfs: trying text-based options 'sec=krb5,vers=4.1,addr=192.168.121.54,clientaddr=192.168.121.195' 
[vagrant@desktop1 ~]$

Билеты были следующие:

[vagrant@desktop1 ~]$ sudo klist -e
Ticket cache: KEYRING:persistent:0:krb_ccache_kfAgj83
Default principal: nfs/desktop1.example.com@EXAMPLE.COM

Valid starting     Expires            Service principal
01/01/70 00:00:00  01/01/70 00:00:00  Encrypted/Credentials/v1@X-GSSPROXY:
[vagrant@desktop1 ~]$ 
1
27.01.2020, 20:42

У меня была похожая проблема на сервере RHEL 7 в среде, где kerberos управляется FreeIPA. Немного настройки:

Эта среда представляет собой среду AD / FreeIPA, в которой сервер FreeIPA (idm.nix.example.com)имеет двустороннее -доверие к Windows DC, dc.example.com. Серверы Linux и Windows находятся в одной и той же подсети 172.16.0.0/24. Таким образом, поскольку MSAD был создан первым, при настройке FreeIPA обратные зоны не создаются динамически для хостов nix.example.com. Это известная проблема, и она отслеживается с помощью этой BugZilla .

При выполнении команды mount я получал следующую ошибку. На сервере NFS не было соответствующей ошибки:

[root@idm1 ~]# mount -v -o sec=krb5:krb5i:krb5p -t nfs 172.16.0.9:/share /mnt
mount.nfs: timeout set for Tue Sep  8 21:58:01 2020
mount.nfs: trying text-based options 'sec=krb5:krb5i:krb5p,vers=4.1,addr=172.16.0.9,clientaddr=172.16.0.6'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'sec=krb5:krb5i:krb5p,vers=4.0,addr=172.16.0.9,clientaddr=172.16.0.6'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'sec=krb5:krb5i:krb5p,addr=172.16.0.9'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 172.16.0.9 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 172.16.0.9 prog 100005 vers 3 prot UDP port 20048
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 172.16.0.9:/share

При изменении я сделал systemctl status rpc-gssd.serviceи получил следующую ошибку:

[root@idm1 ~]# systemctl status rpc-gssd.service
● rpc-gssd.service - RPC security service for NFS client and server
   Loaded: loaded (/usr/lib/systemd/system/rpc-gssd.service; static; vendor preset: disabled)
   Active: active (running) since Tue 2020-09-08 15:32:28 EDT; 6h ago
  Process: 28217 ExecStart=/usr/sbin/rpc.gssd $GSSDARGS (code=exited, status=0/SUCCESS)
 Main PID: 28218 (rpc.gssd)
   CGroup: /system.slice/rpc-gssd.service
           └─28218 /usr/sbin/rpc.gssd

Sep 08 21:50:39 idm1.nix.example.com rpc.gssd[28218]: **ERROR: unable to resolve 172.16.0.9 to hostname: Name or service not known**
Sep 08 21:50:39 idm1.nix.example.com rpc.gssd[28218]: **ERROR: failed to parse nfs/clntf3/info**

Поскольку в этой среде NIXнет динамически создаваемых PTR, вам нужно либо добавить сервер NFS в /etc/hosts, либо создать соответствующую запись PTR вручную. Вы можете убедиться, что это устраняет проблему, добавив сервер NFS в/etc/hosts:

[root@idm1 ~]# echo "172.16.0.9 nfs.nix.example.com" >> /etc/hosts
[root@idm1 ~]# ls /mnt
hgfs
[root@idm1 ~]# mount -v -o sec=krb5:krb5i:krb5p -t nfs 172.16.0.9:/share /mnt
mount.nfs: timeout set for Tue Sep  8 22:01:00 2020
mount.nfs: trying text-based options 'sec=krb5:krb5i:krb5p,vers=4.1,addr=172.16.0.9,clientaddr=172.16.0.6'
[root@idm1 ~]# ls /mnt
idm1  idm1-2

TL;DR:В среде доверия MSAD < -> IPA убедитесь, что кто-то предоставляет ваши записи PTR для таких служб, как NFS, поскольку они не создаются динамически.

0
09.09.2020, 02:00

Теги

Похожие вопросы