rpc.gssd(8) System Manager's Manual rpc.gssd(8) NUME rpc.gssd - demon RPCSEC_GSS SINOPSIS rpc.gssd [-DfMnlvrHC] [-k tabel-chei] [-p ruta-director-pipefs] [-d director-stocare-acreditari] [-t timp-ateptare] [-T timp-ateptare] [-U timp-ateptare] [-R domeniu] INTRODUCERE Protocolul RPCSEC_GSS, definit in RFC 5403, este utilizat pentru a asigura o securitate puternica pentru protocoalele bazate pe RPC, cum ar fi NFS. Inainte de a face schimb de cereri RPC utilizand RPCSEC_GSS, un client RPC trebuie sa stabileasca un context de securitate GSS. Un context de securitate este o stare partajata la fiecare capat al unei reele de transport care permite servicii de securitate GSS-API. Contextele de securitate se stabilesc folosind acreditari de securitate (security credentials). O acreditare acorda acces temporar la un serviciu de reea securizat, la fel cum un bilet de tren acorda acces temporar pentru utilizarea unui serviciu feroviar. De obicei, un utilizator obine o acreditare furnizand o parola la comanda kinit(1) sau prin intermediul unei biblioteci PAM in momentul conectarii. O acreditare obinuta cu un utilizator principal este cunoscuta sub numele de acreditare de utilizator (a se vedea kerberos(1) pentru mai multe informaii despre principali). Anumite operaii necesita o acreditare care nu reprezinta un anumit utilizator sau care reprezinta gazda insai. Acest tip de acreditare se numete acreditare maina. O gazda ii stabilete acreditarea mainii utilizand un service principal a carui parola criptata este stocata intr-un fiier local cunoscut sub numele de tabel-chei (keytab). O acreditare de maina ramane eficienta fara intervenia utilizatorului atat timp cat gazda o poate reinnoi. Odata obinute, acreditarile sunt stocate de obicei in fiiere temporare locale cu nume de ruta bine cunoscute. DESCRIERE Pentru a stabili contexte de securitate GSS utilizand aceste fiiere de acreditare, clientul RPC din nucleul Linux depinde de un demon din spaiul utilizatorului numit rpc.gssd. Demonul rpc.gssd utilizeaza sistemul de fiiere rpc_pipefs pentru a comunica cu nucleul. Acreditarea utilizatorului Atunci cand un utilizator se autentifica folosind o comanda precum kinit(1), acreditarea rezultata este stocata intr-un fiier cu un nume bine cunoscut, construit folosind UID-ul utilizatorului. Pentru a interaciona cu un server NFS in numele unui anumit utilizator autentificat Kerberos, clientul RPC al nucleului Linux solicita ca rpc.gssd sa iniializeze un context de securitate cu acreditarea din fiierul de acreditare al utilizatorului respectiv. De obicei, fiierele de acreditare sunt plasate in /tmp. Cu toate acestea, rpc.gssd poate cauta fiiere de acreditare in mai multe directoare. Pentru detalii, consultai descrierea opiunii -d. Acreditarea mainii rpc.gssd cauta in tabelul de chei implicit, /etc/krb5.keytab, in urmatoarea ordine pentru un principal i o parola care sa fie utilizate la stabilirea acreditarii mainii. Pentru cautare, rpc.gssd inlocuiete i cu numele de gazda i domeniul Kerberos ale sistemului local. $@ root/@ nfs/@ host/@ root/@ nfs/@ host/@ rpc.gssd selecteaza una dintre intrarile daca nu gasete un principal de serviciu care sa se potriveasca cu numele gazdei locale, de exemplu, daca DHCP atribuie numele gazdei locale in mod dinamic. Facilitatea permite utilizarea aceluiai tabel de chei (keytab) pe mai multe sisteme. Cu toate acestea, utilizarea aceluiai principal de serviciu pentru a stabili o acreditare de maina pe mai multe gazde poate crea expuneri nedorite de securitate i, prin urmare, nu este recomandata. Reinei ca $@ este un principal de utilizator care permite NFS Kerberizat atunci cand sistemul local este conectat la un domeniu Active Directory folosind Samba. Tabelul de chei furnizeaza parola pentru acest principal. Putei specifica un tabel de chei diferit utilizand opiunea -k daca /etc/krb5.keytab nu exista sau nu ofera unul dintre aceti principali. Acreditarea pentru UID 0 UID 0 este un caz special. In mod implicit, rpc.gssd utilizeaza acreditarile mainii sistemului pentru accesarile UID 0 care necesita autentificare GSS. Acest lucru limiteaza privilegiile utilizatorului root atunci cand acceseaza resursele de reea care necesita autentificare. Specificai opiunea -n atunci cand pornii rpc.gssd daca dorii sa forai utilizatorul root sa obina o acreditare de utilizator in loc sa utilizai acreditarea mainii sistemului local. Atunci cand este specificata -n, nucleul continua sa solicite un context GSS stabilit cu o acreditare a mainii pentru operaiile NFSv4, cum ar fi SETCLIENTID sau RENEW, care gestioneaza starea. Daca rpc.gssd nu poate obine o acreditare de maina (de exemplu, sistemul local nu are un tabel de chei), operaiile NFSv4 care necesita acreditari de maina vor eua. Tipuri de criptare Un administrator de domeniu poate alege sa adauge la tabelul de chei al sistemului local chei codificate in mai multe tipuri de criptare diferite. De exemplu, o gazda/principal poate avea chei pentru tipurile de criptare aes256-cts-hmac-sha384-192, aes128-cts-hmac-sha256-128, aes256-cts-hmac-sha1-96 i aes128-cts-hmac-sha1-96. Acest lucru permite lui rpc.gssd sa aleaga un tip de criptare adecvat pe care serverul NFS inta il accepta. OPIUNI -D Numele serverului transmis catre GSSAPI pentru autentificare este, in mod normal, numele exact aa cum a fost solicitat. De exemplu, pentru NFS este numele serverului din cererea de montare ,,nume_server:/ruta". Numai in cazul in care acest nume de server pare a fi o adresa IP (IPv4 sau IPv6) sau un nume necalificat (fara puncte), se va efectua o cautare DNS inversa pentru a obine numele de server canonic. Daca -D este prezenta, se va utiliza intotdeauna o cautare DNS inversa, chiar daca numele serverului arata ca un nume canonic. Prin urmare, este necesara daca se utilizeaza in mod regulat nume parial calificate sau nume necanonice. Utilizarea opiunii -D poate introduce o vulnerabilitate de securitate, astfel incat se recomanda sa nu se utilizeze -D i sa se utilizeze intotdeauna nume canonice atunci cand se solicita servicii. -f Ruleaza rpc.gssd in prim-plan i trimite ieirea la ieirea de eroare standard (in loc de syslogd). -n Cand este specificata, UID 0 este forat sa obina acreditarile de utilizator care sunt utilizate in locul acreditarilor mainii sistemului local. -k tabel-chei Ii indica lui rpc.gssd sa utilizeze cheile gasite in tabel-chei pentru a obine acreditarile mainii. Valoarea implicita este /etc/krb5.keytab. -p ruta Ii indica lui rpc.gssd unde sa caute sistemul de fiiere rpc_pipefs. Valoarea implicita este /var/lib/nfs/rpc_pipefs. -d ruta-cautare Aceasta opiune specifica o lista de directoare separate de doua puncte pe care rpc.gssd le cauta pentru fiierele de acreditare. Valoarea implicita este /tmp:/run/user/%U. Secvena literala ,,%U" poate fi specificata pentru a inlocui UID-ul utilizatorului pentru care se cauta acreditarile. -M In mod implicit, acreditarile mainii sunt stocate in fiierele din primul director din ruta de cautare a directorului de acreditari (a se vedea opiunea -d). Atunci cand este definita opiunea -M, rpc.gssd stocheaza in schimb acreditarile mainii in memorie. -v Marete nivelul de detaliere al mesajelor informative de la ieire (poate fi specificata de mai multe ori). -r Daca biblioteca RPCSEC_GSS accepta definirea nivelului de depanare, crete gradul de detalii al ieirii (poate fi specificata de mai multe ori). -R domeniu Tichetele Kerberos din acest domeniu vor fi preferate la scanarea fiierelor cache de acreditari disponibile pentru a fi utilizate la crearea unui context. In mod implicit, se prefera domeniul implicit, aa cum este configurat in fiierul de configurare Kerberos. -t timp-ateptare Timpul de ateptare, in secunde, pentru contextele GSS din nucleu. Aceasta opiune va permite sa forai negocierea de noi contexte de nucleu dupa timp-ateptare secunde, ceea ce permite schimbarea frecventa a tichetelor i identitailor Kerberos. Opiunea implicita este fara un timp de ateptare explicit, ceea ce inseamna ca contextul de nucleu va exista pe durata de existena a tichetului de serviciu Kerberos utilizat la crearea sa. -T timp-ateptare Timpul de ateptare, in secunde, pentru a crea o conexiune RPC cu un server in timp ce se stabilete un context gss autentificat pentru un utilizator. Timpul de ateptare implicit este fixat la 5 secunde. Daca primii mesaje precum ,,WARNING: can't create tcp rpc_clnt to server %servername% for user with uid %uid%: RPC: Remote system error - Connection timed out", ar trebui sa luai in considerare o cretere a acestui timp de ateptare. -U timp-ateptare Timpul de ateptare, in secunde, pentru firele de apelare. Firele care se executa mai mult de timp-ateptare secunde vor determina inregistrarea unui mesaj de eroare. Valoarea implicita a timpului de ateptare este de 30 de secunde. Valoarea minima este de 5 secunde. Valoarea maxima este de 600 de secunde. -C In plus faa de inregistrarea unui mesaj de eroare pentru firele de execuie care au depait timpul de ateptare, firul de execuie va fi anulat i o eroare de -ETIMEDOUT va fi raportata nucleului. -H Evita stabilirea lui $HOME la ,,/". Acest lucru permite ca rpc.gssd sa citeasca fiierele k5identity pentru fiecare utilizator in parte, in loc sa incerce sa citeasca /.k5identity pentru fiecare utilizator. Daca -H nu este definita, rpc.gssd va utiliza prima potrivire gasita in /var/kerberos/krb5/user/$EUID/client.keytab i nu va utiliza un principal bazat pe parametrii de gazda i/sau de serviciu enumerai in $HOME/.k5identity. FIIER DE CONFIGURARE Multe dintre opiunile care pot fi definite in linia de comanda pot fi controlate i prin intermediul valorilor stabilite in seciunea [gssd] din fiierul de configurare /etc/nfs.conf. Valorile recunoscute includ: verbosity Valoare care este echivalenta cu numarul pentru -v. rpc-verbosity Valoare care este echivalenta cu numarul pentru -r. use-memcache Un fanion boolean echivalent cu -M. use-machine-creds Un fanion boolean. Stabilirea la false echivaleaza cu utilizarea opiunii -n. avoid-dns Un fanion boolean. Stabilirea la false echivaleaza cu utilizarea opiunii -D. allowed-enctypes Va permite sa restricionai rpc.gssd la utilizarea unui subset de tipuri de criptare permise de nucleu i de bibliotecile krb5. Acest lucru este util in cazul in care trebuie sa interoperai cu un server NFS care nu are suport pentru tipurile de criptare SHA2 i Camellia mai noi, de exemplu. Aceasta opiune din fiierul de configurare nu are o opiune echivalenta in linia de comanda. context-timeout Echivalent cu -t. rpc-timeout Echivalent cu -T. keytab-file Echivalent cu -k. cred-cache-directory Echivalent cu -d. preferred-realm Echivalent cu -R. upcall-timeout Echivalent cu -U. cancel-timed-out-upcalls Un fanion boolean. Stabilirea la true este echivalenta cu furnizarea opiunii -C. set-home Un fanion boolean. Stabilirea la false este echivalenta cu furnizarea opiunii -H. use-gss-proxy Definirea acestei valori la 1 permite gssproxy(8) sa intercepteze apelurile GSSAPI i sa le deserveasca in numele rpc.gssd, permiand anumite caracteristici, cum ar fi iniierea clientului pe baza de tabel-chei. Reinei ca acest lucru nu are legatura cu funcionalitatea pe care gssproxy(8) o furnizeaza in numele serverului NFS. Pentru mai multe informaii, consultai https://github.com/gssapi/gssproxy/blob/main/docs/NFS.md#nfs-client. In plus, urmatoarea valoare este recunoscuta din seciunea [general]: pipefs-directory Echivalent cu -p. CONSULTAI I rpc.svcgssd(8), kerberos(1), kinit(1), krb5.conf(5), gssproxy(8) AUTORI Dug Song Andy Adamson Marius Aamodt Eriksen J. Bruce Fields TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . 20 februarie 2013 rpc.gssd(8)