Securitate

III.I. Utilizatorul și grupul GDM

Din motive de securitate un identificator dedicat al utilizatorului și grupului este recomandat pentru o bună funcționare. Acest utilizator și grup este implicit "gdm" pe majoritatea sistemelor, dar poate fi configurat să fie orice utilizator sau grup. Toate programele cu interfață grafică GDM sunt executate sub acest utilizator, pentru ca programele ce interacționează cu utilizatorului să fie rulate într-un sandbox. Acest utilizator și grup ar trebui să aibă permisiuni limitate.

Singura permisiune de care are nevoie utilizatorul "gdm" este posibilitatea de a citi și scrie fișiere Xauth către dosarul <var>/run/gdm. Dosarul <var>/run/gdm ar trebui să aibă apartenența root:gdm și permisiunile 1777.

În niciun caz nu trebuie să configurați utilizatorul/grupul GDM către un utilizator către care se poate căpăta cu ușurință acces, cum ar fi utilizatorul nobody. Orice utilizator care dobândește acces către o cheie Xauth poate să intre și să controleze programele cu interfață grafică deschise în sesiunea asociată sau să efectueze un atac de negare al serviciului. Este important să vă asigurați că sistemul este configurat în mod corespunzător, că doar utilizatorul "gdm" are acces la aceste fișiere și că nu este ușoară autentificarea pe acest cont. De exemplu, contul ar trebui să fie configurat pentru a nu avea parolă sau a permite utilizatorilor care nu au drepturi de administrare să se autentifice pe acest cont.

Configurația aplicației de întâmpinare GDM este stocată în GConf. Pentru a permite utilizatorului GDM să scrie configurația, este necesar ca utilizatorul "gdm" să aibă un dosar $HOME inscripționabil. Utilizatorii pot configura configurația implicită GConf după plac, pentru a elimina necesitatea de furnizare a utilizatorului "gdm" cu un dosar $HOME inscripționabil.

III.II. PAM

GDM folosește PAM pentru autentificare. PAM înseamnă Modul de autentificare conectabil, și este folosit de majoritatea programelor ce necesită autentificare pe calculatorul dumneavoastră. Acesta permite administratorului să configureze comportamentul specific al autentificării pentru diferite programe de autentificare (cum ar fi ssh, interfață grafică de autentificare, protector de ecran, etc.)

PAM este complex și foarte configurabil, dar această documentație nu intenționează să explice acest lucru în detaliu. În schimb, intenționează să ofere o prezentare generală despre cum configurația PAM se înrudește cu GDM, cum PAM este configurat de obicei cu GDM, și probleme cunoscute. Este de așteptat ca o persoană care are nevoie să configureze PAM să trebuiască să citească mai multă documentație despre PAM pentru a înțelege configurația și termenii folosiți în această secțiune.

Configurația PAM are interfețe diferite, dar similare, pe sisteme de operare diferite, deci consultați paginile de manual pam.d sau pam.conf pentru detalii. Asigurați-vă că citiți documentația PAM și că sunteți confortabil privind implicațiile securității ale modificărilor pe care vreți să le faceți în configurația dumneavoastră.

A se reține că, implicit, GDM folosește serviciul PAM „gdm” pentru autentificarea normală și serviciul PAM „gdm-autologin” pentru autentificarea automată. Aceste servicii pot sau nu fi definite în fișierele de configurație ale dumneavoastră, pam.d sau pam.conf. Dacă nu este o astfel de intrare, GDM va încerca să folosească conduita PAM implicită.

Scriptul PostLogin este executat înaintea apelului pam_open_session, și scriptul PreSession este apelat după. Acest lucru permite administratorului de sistem să adauge orice fel de script procesului de autentificare, înainte sau după ce PAM inițializează sesiunea.

Dacă doriți să faceți GDM să meargă și cu alte tipuri mecanisme de autentificare (cum ar fi cititor de amprentă sau de SmartCard), ar trebui să implementați acest lucru folosind un modul de servicii PAM pentru tipul de autentificare dorit în loc să încercați să modificați codul GDM direct. Consultați documentația PAM de pe sistemul dumneavoastră. Cum să faceți acest lucru este discutat frecvent în lista de discuții

, deci puteți înainta către arhivele listate pentru mai multă informație.

PAM are totuși câteva limite când vine vorba de posibilitatea de lucru cu mai multe tipuri de autentificare în același timp, cum ar fi suportul posibilității de a accepta și SmartCard și tastarea numelui de utilizator și a parolei în programul de autentificare. Sunt tehnici care pot face acest lucru posibil, dar este de preferat să vă documentați despre cum poate fi rezolvată această problemă de obicei când efectuați o asemenea configurație.

Dacă autentificarea automată nu funcționează pe un sistem, verificați dacă stiva PAM „gdm-autologin” este definită în configurația PAM. Pentru ca acest lucru să funcționeze, trebuie folosit un modul PAM care nu face nicio autentificare, sau returnează PAM_SUCCESS de la toate interfețele publice. Presupunând că sistemul dumneavoastră are un modul PAM pam_allow.so care face acest lucru, o configurație PAM pentru a activa „gdm-autologin” ar arăta astfel:

       gdm-autologin auth  required    pam_unix_cred.so.1
       gdm-autologin auth  sufficient  pam_allow.so.1
       gdm-autologin account  sufficient  pam_allow.so.1
       gdm-autologin session  sufficient  pam_allow.so.1
       gdm-autologin password  sufficient  pam_allow.so.1

Configurația de mai sus nu va cauza generarea niciunei intrări de jurnalizare recente. Dacă o înregistrare recentă este dorită, folosiți următorul lucru pentru sesiune:

       gdm-autologin session required pam_unix_session.so.1

Dacă calculatorul este folosit de mai multe persoane, lucru ce face autentificarea automată nepotrivită, poate doriți să permiteți unora utilizatori să deschidă o sesiune fără să furnizeze parola. Această facilitate poate fi activată ca o opțiune a utilizatorului, din unealta de administrare a utilizatorului din uneltele de sistem gnome; este realizată prin verificarea dacă utilizatorul este membru al unui grup Unix numit „nopasswdlogin” înainte de a cere o parolă. Pentru ca să funcționeze, fișierul de configurație PAM al serviciului „gdm” trebuie să includă o linie ca următoarea:

      gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

III.III. utmp și wtmp

GDM generează înregistrările utmp și wtmp a Bazei de date a conturilor de utilizator la deschiderea și închiderea sesiunii. Baza de date utmp conține accesul utilizatorului și informații privind contul care pot fi accesate prin comenzi de genul finger, last, login, și who. Baza de date wtmp conține istoricul accesului utilizatorului și informații privind contul din baza de date utmp. Înaintați spre paginile manualului utmp și wtmp de pe sistemul dumneavoastră pentru mai multe informații.

III.IV. Schema autentificării Xserver

Fișierele de autorizație ale serverului X sunt stocate într-un nou subdosar al <var>/run/gdm la deschidere. Aceste fișiere sunt folosite pentru a stoca și partaja o „parolă” între clienții X și serverul X. Această "parolă" este unică pentru fiecare deschidere a unei sesiuni, pentru ca utilizatorii dintr-o sesiune să nu poată intra peste utilizatorii din alta.

GDM suportă doar schema de autentificare MIT-MAGIC-COOKIE-1 a serverului X. În mod normal, puține lucruri sunt obținute de la alte scheme și nu există niciun efort de a le implementa până acum. Aveți în mod special grijă când folosiți XDMCP, deoarece cookie-urile de autentificare ale serverului X trec pe fir ca text normal. Dacă furișarea este posibilă, atunci un atacator poate să vă vadă direct parola de autentificare când deschideți o sesiune, fără să se țină cont de schema de autentificare folosită. Dacă furișarea este posibilă și nedorită, ar trebui să folosiți ssh în loc de XDMCP pentru a canaliza o conexiune X. Vă puteți imagina XDMCP ca pe un fel de telnet grafic, având aceleași probleme de securitate. În cele mai multe cazuri, ssh -Y ar trebui să fie de preferat în locul facilităților managerului de ecran XDMCP.

III.V. Securitatea XDMCP

Chiar dacă ecranul dumneavoastră este protejat de cookieuri, evenimentele X, deci și combinațiile de taste când introduceți o parolă vor fi trimise pe fir tot ca text normal. Este fără importanță să le capturăm.

XDMCP este folosit în primul rând pentru a porni clienți subțiri, cum ar fi în laboratoarele de terminal. Acești clienți subțiri au nevoie de rețea doar pentru a accesa serverul, și se pare că cea mai bună regulă de securitate este de a avea acești clienți subțiri într-o rețea separată pentru a nu putea fi accesați de către lumea exterioară, și se pot conecta doar la server. Singurul punct de unde trebuie să accesați lumea exterioară este serverul. Acest tip de configurație nu ar trebui să folosească un nod neadministrat sau altă rețea ce poate fi furișată.

III.VI. Controlul accesului XDMCP

Controlul accesului XDMCP este făcut folosind încadratorii TCP. Este posibil să compilați GDM fără suportul pentru încadratori TCP, deci este posibil ca această facilitate să nu fie suportată de unele sisteme de operare.

Ar trebui să folosiți numele serviciului gdm din fișierele <etc>/hosts.allow și <etc>/hosts.deny. De exemplu, pentru a refuza calculatoarele din .domeniu.rău la deschiderea unei sesiuni, adăugați

gdm: .domeniu.rău

în fișierul <etc>/hosts.deny. Este posibil să fie nevoie și de adăugarea

gdm: .domeniul.dumneavoastră

în fișierul <etc>/hosts.allow dacă refuzați serviciile de la toate calculatoarele gazdă în mod normal. Consultați paginile manualului hosts.allow(5) pentru detalii.

III.VII. Securitatea paravanului de protecție

Chiar dacă GDM încearcă să prevină potențiali atacatori care încearcă să profite de XDMCP, se recomandă totuși să blocați portul XDMCP (de obicei portul UDP 177) în paravanul dumneavoastră de proiecție, cu excepția cazului în care chiar este nevoie. GDM protejează împotriva atacurilor de negare a serviciului, dar protocolul X este încă în mod inerent nesigur și ar trebui folosit doar în medii controlate. De asemenea, orice conexiune de la distanță ocupă multe resurse, deci este mult mai ușor ca un atac de negare al serviciului să fie produs prin XDMCP în locul unui server web.

De asemenea, este prevăzător să blocați toate porturile serverului X. Acestea sunt porturi TCP 6000+ (unul pentru fiecare număr al ecranului) în paravanul de protecție al dumneavoastră. A se reține că GNDM va folosi numere de afișaj de la 20 în sus pentru servere găzduite flexibil.

Protocolul X nu este foarte sigur când este folosit pe internet, iar XDMCP este și mai nesigur.

III.VIII. Trusa de reguli

GDM poate fi configurat să folosească Trusa de reguli pentru a permite administratorului de sistem să controleze dacă ecranul de autentificare trebuie să furnizeze butoane pentru închiderea și redeschiderea calculatorului pe ecranul de întâmpinare.

Aceste butoane sunt controlate de către acțiunile org.freedesktop.consolekit.system.stop-multiple-users și org.freedesktop.consolekit.system.restart-multiple-users. Regulile privind aceste acțiuni pot fi configurate folosind unealta polkit de autorizație gnome, sau linia de comandă polkit-auth.

III.IX. RBAC (Controlul accesului bazat pe roluri)

GDM poate fi configurat să folosească RBAC în loc de Trusa de reguli. În acest caz configurația RBAC este folosită pentru a controla dacă ecranul de autentificare trebuie să furnizeze butoanele de închidere și repornire a calculatorului pe ecranul de întâmpinare.

De exemplu, pe Oracle Solaris, autorizația „solaris.system.shutdown” este folosită pentru a controla acest lucru. Doar modificați fișierul /etc/user_attr în așa fel încât utilizatorul „gdm” să aibă această autorizație.