LDAP + KERBEROS + NFS. Perché ho bisogno di idmapd?

Quello che sto cercando di fare

Ho un dominio freeIPA, con pochi clienti e un Synology NAS (anche iscritto in freeIPA).

Ho creato una cartella condivisa sul NAS, con supporto NFSv4 + krb5. Dal cliente ottengo un biglietto per l'utente LDAP user1@mydomain.com e posso montare questa cartella.

  • Integrazione di LDAP Active Directory
  • Risoluzione dei problemi di latenza sui datastores ESXi NFS
  • Perché utilizzare Kerberos invece di NTLM in IIS?
  • Come eseguire il debug di authentication SASL tramite LDAP verso la directory triggers
  • Il assembly della condivisione NFSv4 da Debian Linux 6 a Freebsd 9-RC3 "richiede l'authentication più forte"
  • VCenter 5.5 Appliance e FreeIPA 3 authentication
  • Inizialmente, i file creati in questa cartella sarebbero di properties; di nobody utente.

    Ho finalmente funzionato, cambiando /etc/idmapd.conf sul NAS

    • avere il dominio impostato correttamente
    • avere una mapping statica tra user1@mydomain.com e un utente locale

    Domanda

    Capisco il ruolo di idmapd per NFS in generale.

    In questo caso tuttavia:

    • perché ho bisogno di mappe esplicite? Non riesco a capire se stesso?
    • perché ho bisogno di una mapping a tutti? Il NAS è anche nello stesso dominio freeIPA, è un client LDAP e dispone dei giusti kerberos principals.It conosce perfettamente chi user1@mydomain.com è, perché non può semplicemente utilizzare THAT uid per la properties; di file in quella cartella, anziché l'utente di un utente locale? Posso evitare di creare utenti locali?

    Il mio attuale idmapd.conf aspetto:

     [General] Domain=hq.example.com [Mapping] Nobody-User=guest Nobody-Group=users [Translation] Method=nsswitch GSS-Methods=static,synomap [Static] user1@HQ.EXAMPLE.COM=user1 

    Quello che vorrei get è che non ho bisogno di quella mapping statica user1@HQ.EXAMPLE.COM=user1 e, se ansible, non ho nemless bisogno di creare un utente user1 locale sul NAS.

  • freeipa ssl ldap e round robin dns
  • FreeIPA: impedisce che accedere a root locali agli account utente
  • Concedere l'accesso sudo ad un utente confinato SELinux in freeIPA
  • Utilizzo di FreeIPA per sudo centralizzato - come specificare tutti i comandi?
  • Come aggiungere il paese di un utente nello schema FreeIPA predefinito
  • Più valori passwordStorageScheme sullo stesso utente su 389ds / FreeIPA
  • One Solution collect form web for “LDAP + KERBEROS + NFS. Perché ho bisogno di idmapd?”

    Al contrario, il protocollo NFSv4 support un nome utente condiviso tra il server e il client e non il numero UID / GID (utilizzato nelle versioni precedenti) e l'UID <==> la mapping degli utenti può essere effettivamente diversa sul client e sul server.

    Come parte del protocollo NFSv4, sia il server deve mappare i contesti di protezione comuni / autorizzazioni, il proprietario e il gruppo owner_group a qualcosa che ha senso per le operazioni del file system locale. Quella mapping è fatta da IDMAPD sui sisthemes Linux.

    Su un sistema Linux molte operazioni di file system locali sono basate su UID / GID ma quelle devono essere tradotte nel context NFSv4 condiviso prima che possano essere trasmesse al server NFS.

    Forse RFC 3530 può spiegare meglio:

    § 5.8. Interpretare il proprietario e il gruppo proprietario

    Gli attributi consigliati "owner" e "owner_group" (e anche utenti e gruppi nell'attributo "acl") sono rappresentati in termini di string UTF-8. Per evitare una rappresentazione legata ad una particolare implementazione sottostante al client o al server, è stato scelto l'uso della string UTF-8. Si noti che la sezione 6.1 di [RFC2624] fornisce ulteriori spiegazioni. Si prevede che il client e il server avranno la propria rappresentazione locale del proprietario e del gruppo proprietario che viene utilizzato per l'archiviazione o la presentazione locale all'utente finale. Di conseguenza, si prevede che quando questi attributi siano trasferiti tra il client e il server che la rappresentazione locale sia tradotta in una syntax del module "user@dns_domain" . Ciò consente a un client e un server che non utilizzano la stessa rappresentazione locale la capacità di tradurre in una syntax comune che può essere interpretata da entrambi.


    Modifica in risposta alla tua imapd.conf.

    Si utilizza una mapping statica all'utente locale. Probabilmente vuoi mappare le identity framework; NFSv4 agli utenti LDAP, probabilmente dovrebbero accadere con l'opzione nsswitch , ma a quanto pare non lo è. Potresti provare a vedere cosa sta succedendo aumentando la verbosità del idmapd sul server NFS.

    In alternativa configurare idmapd per interrogare direttamente il server LDAP. La syntax esatta può dipendere dalla versione che utilizzi, ma la pagina man mostra qualcosa lungo le righe di:

     [General] Verbosity = 0 Domain = domain.org Local-Realms = DOMAIN.ORG,MY.DOMAIN.ORG,YOUR.DOMAIN.ORG [Mapping] Nobody-User = nfsnobody Nobody-Group = nfsnobody [Translation] Method = umich_ldap,nsswitch GSS-Methods = umich_ldap,static [Static] johndoe@OTHER.DOMAIN.ORG = johnny [UMICH_SCHEMA] LDAP_server = ldap.domain.org LDAP_base = dc=org,dc=domain 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.