rpc.gssd(8)

NUME
rpc.gssd - demon RPCSEC_GSS

SINOPSIS
rpc.gssd [-DfMnlvrHC] [-k tabel-chei] [-p ruta-director-pipefs] [-d director-stocare-acreditări] [-t timp-așteptare] [-T timp-așteptare] [-U timp-așteptare] [-R domeniu]

INTRODUCERE
Protocolul RPCSEC_GSS, definit în RFC 5403, este utilizat pentru a asigura o securitate puternică pentru protocoalele bazate pe RPC, cum ar fi NFS.

Înainte de a face schimb de cereri RPC utilizând RPCSEC_GSS, un client RPC trebuie să stabilească un context de securitate GSS. Un context de securitate este o stare partajată la fiecare capăt al unei rețele de transport care permite servicii de securitate GSS-API.

Contextele de securitate se stabilesc folosind acreditări de securitate (security credentials). O acreditare acordă acces temporar la un serviciu de rețea securizat, la fel cum un bilet de tren acordă acces temporar pentru utilizarea unui serviciu feroviar.

De obicei, un utilizator obține o acreditare furnizând o parolă la comanda kinit(1) sau prin intermediul unei biblioteci PAM în momentul conectării. O acreditare obținută cu un utilizator principal este cunoscută sub numele de acreditare de utilizator (a se vedea kerberos(1) pentru mai multe informații despre principali).

Anumite operații necesită o acreditare care nu reprezintă un anumit utilizator sau care reprezintă gazda însăși. Acest tip de acreditare se numește acreditare mașină.

O gazdă își stabilește acreditarea mașinii utilizând un service principal a cărui parolă criptată este stocată într-un fișier local cunoscut sub numele de tabel-chei (keytab). O acreditare de mașină rămâne eficientă fără intervenția utilizatorului atât timp cât gazda o poate reînnoi.

Odată obținute, acreditările sunt stocate de obicei în fișiere temporare locale cu nume de rută bine cunoscute.

DESCRIERE
Pentru a stabili contexte de securitate GSS utilizând aceste fișiere de acreditare, clientul RPC din nucleul Linux depinde de un demon din spațiul utilizatorului numit rpc.gssd. Demonul rpc.gssd utilizează sistemul de fișiere rpc_pipefs pentru a comunica cu nucleul.

  Acreditarea utilizatorului
Atunci când un utilizator se autentifică folosind o comandă precum kinit(1), acreditarea rezultată este stocată într-un fișier cu un nume bine cunoscut, construit folosind UID-ul utilizatorului.

Pentru a interacționa cu un server NFS în numele unui anumit utilizator autentificat Kerberos, clientul RPC al nucleului Linux solicită ca rpc.gssd să inițializeze un context de securitate cu acreditarea din fișierul de acreditare al utilizatorului respectiv.

De obicei, fișierele de acreditare sunt plasate în /tmp. Cu toate acestea, rpc.gssd poate căuta fișiere de acreditare în mai multe directoare. Pentru detalii, consultați descrierea opțiunii -d.

  Acreditarea mașinii
rpc.gssd caută în tabelul de chei implicit, /etc/krb5.keytab, în următoarea ordine pentru un principal și o parolă care să fie utilizate la stabilirea acreditării mașinii. Pentru căutare, rpc.gssd înlocuiește <nume-gazdă> și <DOMENIU> cu numele de gazdă și domeniul Kerberos ale sistemului local.

   <NUME_GAZDĂ>$@<DOMENIU>
   root/<nume-gazdă>@<DOMENIU>
   nfs/<nume-gazdă>@<DOMENIU>
   host/<nume-gazdă>@<DOMENIU>
   root/<orice-nume>@<DOMENIU>
   nfs/<orice-nume>@<DOMENIU>
   host/<orice-nume>@<DOMENIU>

rpc.gssd selectează una dintre intrările <orice-nume> dacă nu găsește un principal de serviciu care să se potrivească cu numele gazdei locale, de exemplu, dacă DHCP atribuie numele gazdei locale în mod dinamic. Facilitatea <orice-nume> permite utilizarea aceluiași tabel de chei (keytab) pe mai multe sisteme. Cu toate acestea, utilizarea aceluiași principal de serviciu pentru a stabili o acreditare de mașină pe mai multe gazde poate crea expuneri nedorite de securitate și, prin urmare, nu este recomandată.

Rețineți că <NUME_GAZDĂ>$@<DOMENIU> este un principal de utilizator care permite NFS Kerberizat atunci când sistemul local este conectat la un domeniu Active Directory folosind Samba. Tabelul de chei furnizează parola pentru acest principal.

Puteți specifica un tabel de chei diferit utilizând opțiunea -k dacă /etc/krb5.keytab nu există sau nu oferă unul dintre acești principali.

  Acreditarea pentru UID 0
UID 0 este un caz special. În mod implicit, rpc.gssd utilizează acreditările mașinii sistemului pentru accesările UID 0 care necesită autentificare GSS. Acest lucru limitează privilegiile utilizatorului root atunci când accesează resursele de rețea care necesită autentificare.

Specificați opțiunea -n atunci când porniți rpc.gssd dacă doriți să forțați utilizatorul root să obțină o acreditare de utilizator în loc să utilizați acreditarea mașinii sistemului local.

Atunci când este specificată -n, nucleul continuă să solicite un context GSS stabilit cu o acreditare a mașinii pentru operațiile NFSv4, cum ar fi SETCLIENTID sau RENEW, care gestionează starea. Dacă rpc.gssd nu poate obține o acreditare de mașină (de exemplu, sistemul local nu are un tabel de chei), operațiile NFSv4 care necesită acreditări de mașină vor eșua.

  Tipuri de criptare
Un administrator de domeniu poate alege să adauge la tabelul de chei al sistemului local chei codificate în mai multe tipuri de criptare diferite. De exemplu, o gazdă/principal poate avea chei pentru tipurile de criptare aes256-cts-hmac-sha1-96, aes128-cts-hmac-sha1-96, des3-cbc-sha1 și arcfour-hmac. Acest lucru permite lui rpc.gssd să aleagă un tip de criptare adecvat pe care serverul NFS țintă îl acceptă.

Aceste tipuri de criptare sunt mai puternice decât tipurile tradiționale de criptare single-DES. Pentru a interopera în mediile în care serverele acceptă numai tipuri de criptare slabe, puteți restricționa clientul pentru a utiliza numai tipuri de criptare single-DES prin specificarea opțiunii -l atunci când porniți rpc.gssd.

OPȚIUNI

-D  Numele serverului transmis către GSSAPI pentru autentificare este, în mod normal, numele exact așa cum a fost solicitat. De exemplu, pentru NFS este numele serverului din cererea de montare „nume_server:/rută”. Numai în cazul în care acest nume de server pare a fi o adresă IP (IPv4 sau IPv6) sau un nume necalificat (fără puncte), se va efectua o căutare DNS inversă pentru a obține numele de server canonic. Dacă -D este prezentă, se va utiliza întotdeauna o căutare DNS inversă, chiar dacă numele serverului arată ca un nume canonic. Prin urmare, este necesară dacă se utilizează în mod regulat nume parțial calificate sau nume necanonice. Utilizarea opțiunii -D poate introduce o vulnerabilitate de securitate, astfel încât se recomandă să nu se utilizeze -D și să se utilizeze întotdeauna nume canonice atunci când se solicită servicii.

-f  Rulează rpc.gssd în prim-plan și trimite ieșirea la ieșirea de eroare standard (în loc de syslogd).

-n  Când este specificată, UID 0 este forțat să obțină acreditările de utilizator care sunt utilizate în locul acreditărilor mașinii sistemului local.

-k tabel-chei
    Îi indică lui rpc.gssd să utilizeze cheile găsite în tabel-chei pentru a obține acreditările mașinii. Valoarea implicită este /etc/krb5.keytab.

-l  Când este specificată, restricționează sesiunile rpc.gssd la tipuri de criptare slabe, cum ar fi des-cbc-crc. Această opțiune este disponibilă numai atunci când biblioteca Kerberos a sistemului local acceptă tipuri de criptare configurabile.

-p ruta
    Îi indică lui rpc.gssd unde să caute sistemul de fișiere rpc_pipefs. Valoarea implicită este /var/lib/nfs/rpc_pipefs.

-d rută-căutare
    Această opțiune specifică o listă de directoare separate de două puncte pe care rpc.gssd le caută pentru fișierele de acreditare. Valoarea implicită este /tmp:/run/user/%U. Secvența literală „%U” poate fi specificată pentru a înlocui UID-ul utilizatorului pentru care se caută acreditările.

-M  În mod implicit, acreditările mașinii sunt stocate în fișierele din primul director din ruta de căutare a directorului de acreditări (a se vedea opțiunea -d). Atunci când este definită opțiunea -M, rpc.gssd stochează în schimb acreditările mașinii în memorie.

-v  Mărește nivelul de detaliere al mesajelor informative de la ieșire (poate fi specificată de mai multe ori).

-r  Dacă biblioteca RPCSEC_GSS acceptă definirea nivelului de depanare, crește gradul de detalii al ieșirii (poate fi specificată de mai multe ori).

-R domeniu
    Tichetele Kerberos din acest domeniu vor fi preferate la scanarea fișierelor cache de acreditări disponibile pentru a fi utilizate la crearea unui context. În mod implicit, se preferă domeniul implicit, așa cum este configurat în fișierul de configurare Kerberos.

-t timp-așteptare
    Timpul de așteptare, în secunde, pentru contextele GSS din nucleu. Această opțiune vă permite să forțați negocierea de noi contexte de nucleu după timp-așteptare secunde, ceea ce permite schimbarea frecventă a tichetelor și identităților Kerberos. Opțiunea implicită este fără un timp de așteptare explicit, ceea ce înseamnă că contextul de nucleu va exista pe durata de existență a tichetului de serviciu Kerberos utilizat la crearea sa.

-T timp-așteptare
    Timpul de așteptare, în secunde, pentru a crea o conexiune RPC cu un server în timp ce se stabilește un context gss autentificat pentru un utilizator. Timpul de așteptare implicit este fixat la 5 secunde. Dacă primiți 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 să luați în considerare o creștere a acestui timp de așteptare.

-U timp-așteptare
    Timpul de așteptare, în secunde, pentru firele de apelare. Firele care se execută mai mult de timp-așteptare secunde vor determina înregistrarea unui mesaj de eroare. Valoarea implicită a timpului de așteptare este de 30 de secunde. Valoarea minimă este de 5 secunde. Valoarea maximă este de 600 de secunde.

-C  În plus față de înregistrarea unui mesaj de eroare pentru firele de execuție care au depășit timpul de așteptare, firul de execuție va fi anulat și o eroare de -ETIMEDOUT va fi raportată nucleului.

-H  Evită stabilirea lui $HOME la „/”. Acest lucru permite ca rpc.gssd să citească fișierele k5identity pentru fiecare utilizator în parte, în loc să încerce să citească /.k5identity pentru fiecare utilizator. Dacă -H nu este definită, rpc.gssd va utiliza prima potrivire găsită în /var/kerberos/krb5/user/$EUID/client.keytab și nu va utiliza un principal bazat pe parametrii de gazdă și/sau de serviciu enumerați în $HOME/.k5identity.

FIȘIER DE CONFIGURARE
Multe dintre opțiunile care pot fi definite în linia de comandă pot fi controlate și prin intermediul valorilor stabilite în secțiunea [gssd] din fișierul de configurare /etc/nfs.conf. Valorile recunoscute includ:

verbosity
    Valoare care este echivalentă cu numărul pentru -v.

rpc-verbosity
    Valoare care este echivalentă cu numărul pentru -r.

use-memcache
    Un fanion boolean echivalent cu -M.

use-machine-creds
    Un fanion boolean. Stabilirea la false echivalează cu utilizarea opțiunii -n.

avoid-dns
    Un fanion boolean. Stabilirea la false echivalează cu utilizarea opțiunii -D.

limit-to-legacy-enctypes
    Echivalent cu -l.

allowed-enctypes
    Vă permite să restricționați rpc.gssd la utilizarea unui subset de tipuri de criptare permise de nucleu și de bibliotecile krb5. Acest lucru este util în cazul în care trebuie să interoperați cu un server NFS care nu are suport pentru tipurile de criptare SHA2 și Camellia mai noi, de exemplu. Această opțiune din fișierul de configurare nu are o opțiune echivalentă în linia de comandă.

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 echivalentă cu furnizarea opțiunii -C.

set-home
    Un fanion boolean. Stabilirea la false este echivalentă cu furnizarea opțiunii -H.

În plus, următoarea valoare este recunoscută din secțiunea [general]:

pipefs-directory
    Echivalent cu -p.

CONSULTAȚI ȘI
rpc.svcgssd(8), kerberos(1), kinit(1), krb5.conf(5)

AUTORI
Dug Song <dugsong@umich.edu>
Andy Adamson <andros@umich.edu>
Marius Aamodt Eriksen <marius@umich.edu>
J. Bruce Fields <bfields@umich.edu>

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.