![¿Por qué aparece el error "sin caché de credenciales" al montar un recurso compartido NFS Kerberizado?](https://rvso.com/image/89157/%C2%BFPor%20qu%C3%A9%20aparece%20el%20error%20%22sin%20cach%C3%A9%20de%20credenciales%22%20al%20montar%20un%20recurso%20compartido%20NFS%20Kerberizado%3F.png)
Tengo dos sistemas en una red local, nfsclient (CentOS 7) y nfsserver (CentOS 6). Estos nombres se resuelven correctamente en sus direcciones IP y Kerberos funciona entre ellos (nfsserver es el KDC). Tengo un recurso compartido NFSv4 Kerberizado exportado a nfsserver; mi /etc/exports es el siguiente:
/export *(rw,sync,fsid=0,no_subtree_check,sec=krb5p)
/export/home *(rw,sync,no_subtree_check,no_root_squash,sec=krb5p)
Puedo ver estas exportaciones desde nfsclient:
[root@nfsclient ~]# showmount -e nfsserver
Export list for nfsserver:
/export/home *
/export *
Si elimino las opciones sec=krb5p en /etc/exports, puedo montar el recurso compartido desde nfsclient usando
[root@nfsclient ~]# mount -t nfs4 nfsserver:/ /mnt/nfs
Sin embargo, cuando NFS está Kerberizado, las cosas no van tan bien:
[root@nfsclient ~]# mount -t nfs4 -o sec=krb5p nfsserver:/ /mnt/nfs
mount.nfs4: access denied by server while mounting nfsserver:/
Esto va acompañado de una serie de mensajes de error repetidos en /var/log/messages:
Jun 22 19:55:02 oxo gssproxy: gssproxy[769]: (OID: { 1 2 840 113554 1 2 2 }) Unspecified GSS failure. Minor code may provide more information, No credentials cache found
Jun 22 19:55:02 oxo gssproxy: gssproxy[769]: (OID: { 1 2 840 113554 1 2 2 }) Unspecified GSS failure. Minor code may provide more information, No credentials cache found
Jun 22 19:55:02 oxo gssproxy: gssproxy[769]: (OID: { 1 2 840 113554 1 2 2 }) Unspecified GSS failure. Minor code may provide more information, No credentials cache found
Jun 22 19:55:02 oxo gssproxy: gssproxy[769]: (OID: { 1 2 840 113554 1 2 2 }) Unspecified GSS failure. Minor code may provide more information, No credentials cache found
Jun 22 19:55:02 oxo gssproxy: gssproxy[769]: (OID: { 1 2 840 113554 1 2 2 }) Unspecified GSS failure. Minor code may provide more information, No credentials cache found
Jun 22 19:55:02 oxo gssproxy: gssproxy[769]: (OID: { 1 2 840 113554 1 2 2 }) Unspecified GSS failure. Minor code may provide more information, No credentials cache found
No aparece nada en los registros del servidor. Al ejecutar klist en el cliente se muestra que root tiene un caché de credenciales en /tmp/krb5cc_0, por lo que me hace pensar que hay un problema con gss-proxy.
/etc/gssproxy/gssproxy.conf:
[gssproxy]
[service/HTTP]
mechs = krb5
cred_store = keytab:/etc/gssproxy/http.keytab
cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U
euid = 48
[service/nfs-server]
mechs = krb5
socket = /run/gssproxy.sock
cred_store = keytab:/etc/krb5.keytab
trusted = yes
kernel_nfsd = yes
euid = 0
[service/nfs-client]
mechs = krb5
cred_store = keytab:/etc/krb5.keytab
cred_store = ccache:FILE:/var/lib/gssproxy/clients/krb5cc_%U
cred_store = client_keytab:/var/lib/gssproxy/clients/%U.keytab
cred_usage = initiate
allow_any_uid = yes
trusted = yes
euid = 0
Entonces gss-proxy debe estar buscando el caché de credenciales en /var/lib/gssproxy/clients. También obtiene claves de /etc/krb5.keytab (que tiene claves para los principales nfs/nfsclient y host/nfsclient). Sin embargo, /var/lib/gssproxy/clients parece estar siempre vacío en nfsclient.
¿Me estoy perdiendo de algo? No puedo entender qué es exactamente lo que va mal al montar este recurso compartido.
Respuesta1
Hay un problema con la configuración del archivo predeterminado al definir la ruta del caché. Pruebe con esta configuración del cliente, en /etc/gssproxy/gssproxy.conf
:
[service/nfs-client]
mechs = krb5
cred_store = keytab:/etc/krb5.keytab
cred_store = ccache:FILE:/tmp/krb5cc_%U
cred_usage = initiate
allow_any_uid = yes
trusted = yes
euid = 0
debug = true
Respuesta2
asegúrese de que su cliente esté unido al dominio.
ipa-client-install --force-join
Entonces asegúrate de tener un boleto
kinit admin
y luego verifique dos veces krb5.keytab
restorecon -v /etc/krb5.keytab
asegúrese de que su cliente esté en la tabla de claves
kinit -k
host/ < client > . < domain > @REALM
Entonces deberías poder montar consec=krb5p