Cuprins
Când o persoană (sau un program) solicită acces la sistem, autentificarea confirmă identitatea ca fiind una de încredere.
|
Avertisment |
|---|---|
|
Erorile de configurare ale PAM vă pot bloca accesul la propriul sistem. Trebuie să aveți la îndemână un CD de recuperare sau să configurați o partiție de pornire alternativă. Pentru a recupera sistemul, porniți-l cu ajutorul acestora și remediați problemele de acolo. |
Autentificarea normală Unix este asigurată de modulul
pam_unix(8) din cadrul PAM (Pluggable Authentication
Modules). Cele trei fișiere de configurare importante, cu intrări
separate prin „:”, sunt următoarele.
Tabel 4.1. 3 fișiere de configurare importante pentru pam_unix(8)
| fișier | permisiuni | utilizator | grupul | descriere |
|---|---|---|---|---|
/etc/passwd |
-rw-r--r-- |
root |
root |
informații despre contul utilizatorului (curățate) |
/etc/shadow |
-rw-r----- |
root |
shadow |
informații securizate despre contul utilizatorului |
/etc/group |
-rw-r--r-- |
root |
root |
informații despre grup |
„/etc/passwd” conține următoarele.
... user1:x:1000:1000:User1 Name,,,:/home/user1:/bin/bash user2:x:1001:1001:User2 Name,,,:/home/user2:/bin/bash ...
Așa cum se explică în passwd(5), fiecare intrare separată
prin „:” din acest fișier înseamnă următoarele.
Nume de autentificare
Intrarea specificării parolei
ID-ul numeric al utilizatorului
ID-ul numeric al grupului
Nume utilizator sau câmp comentariu
Directorul personal al utilizatorului
Interpret opțional de comenzi pentru utilizator
A doua intrare din „/etc/passwd” a fost utilizată pentru
introducerea parolei criptate. După introducerea
„/etc/shadow”, această intrare este utilizată pentru
introducerea specificațiilor parolei.
Tabel 4.2. Al doilea conținut al intrării „/etc/passwd”
| conținut | semnificație |
|---|---|
| (gol) | cont fără parolă |
| x | parola criptată se află în „/etc/shadow” |
Fișierul „/etc/shadow” conține următoarele câmpuri.
... user1:$1$Xop0FYH9$IfxyQwBe9b8tiyIkt2P4F/:13262:0:99999:7::: user2:$1$vXGZLVbS$ElyErNf/agUDsm1DehJMS/:13261:0:99999:7::: ...
După cum se explică în shadow(5), fiecare intrare
separată prin „:” din acest fișier înseamnă următoarele.
Nume de autentificare
Parolă criptată (inițialele „$1$” indică utilizarea
criptării MD5. Simbolul „*” indică faptul că nu există date de conectare.)
Data ultimei modificări a parolei, exprimată ca număr de zile de la 1 ianuarie 1970
Numărul de zile pe care utilizatorul va trebui să le aștepte înainte de a i se permite să își schimbe din nou parola
Numărul de zile după care utilizatorul va trebui să își schimbe parola
Numărul de zile înainte de expirarea parolei în care utilizatorul trebuie avertizat
Numărul de zile după expirarea parolei în care parola ar trebui să fie încă acceptată
Data expirării contului, exprimată ca număr de zile de la 1 ianuarie 1970
…
Fișierul „/etc/group” conține următoarele câmpuri.
group1:x:20:user1,user2
După cum se explică în group(5), fiecare intrare separată
prin „:” din acest fișier are următoarea semnificație.
Numele grupului
Parolă criptată (nu este utilizată efectiv)
ID-ul numeric al grupului
Listă separată prin virgule a numelor de utilizatori
|
Notă |
|---|---|
|
„ |
|
Notă |
|---|---|
|
Apartenența efectivă a unui utilizator la un grup poate fi adăugată dinamic
dacă se adaugă linia „ |
|
Notă |
|---|---|
|
Pachetul |
Iată câteva comenzi importante pentru gestionarea informațiilor contului.
Tabel 4.3. Lista comenzilor pentru gestionarea informațiilor contului
| comandă | funcție |
|---|---|
getent passwd user_name |
răsfoiește informațiile contului
„nume-utilizator” |
getent shadow user_name |
răsfoiește informațiile contului ascuns al
„nume-utilizator” |
getent group group_name |
răsfoiește informațiile despre grupul
„nume-grup” |
passwd |
gestionează parola pentru cont |
passwd -e |
definește o parolă unică pentru activarea contului |
chage |
gestionează informațiile privind expirarea parolelor |
Este posibil să aveți nevoie de privilegii de root pentru ca unele funcții
să funcționeze. Consultați crypt(3) pentru criptarea
parolelor și a datelor.
|
Notă |
|---|---|
|
În sistemul configurat cu PAM și NSS ca mașină Debian salsa, conținutul local
„ |
Când creați un cont în timpul instalării sistemului sau cu comanda
passwd(1), ar trebui să alegeți o parolă bună care să conțină cel puțin 6-8
caractere, inclusiv unul sau mai multe caractere din fiecare dintre
următoarele seturi, conform passwd(1).
literele alfabetului în minusculă
cifrele de la 0 la 9
Semne de punctuație
|
Avertisment |
|---|---|
|
Nu alegeți cuvinte ușor de ghicit pentru parolă. Numele contului, numărul de asigurare socială, numărul de telefon, adresa, data nașterii, numele membrilor familiei sau al animalelor de companie, cuvinte din dicționar, secvențe simple de caractere precum „12345” sau „qwerty” etc. sunt toate alegeri nepotrivite pentru parolă. |
Există instrumente independente pentru a genera parole criptate cu „salt” (sare).
Tabel 4.4. Lista instrumentelor pentru generarea parolei
| pachet | popcon(popularitate) | dimensiune | comandă | funcție |
|---|---|---|---|---|
whois
|
V:22, I:211 | 384 | mkpasswd |
interfață cu funcții excesive pentru biblioteca crypt(3) |
openssl
|
V:842, I:996 | 2503 | openssl passwd |
calculează rezumatele criptografice ale parolelor
(OpenSSL). passwd(1ssl) |
Sistemele moderne similare cu Unix precum sistemul Debian oferă PAM (Pluggable Authentication Modules -- Module de autentificare conectabile) și NSS (Name Service Switch -- Comutare servicii de nume) administratorului de sistem local pentru configurarea sistemului său. Rolul acestora poate fi rezumat după cum urmează.
PAM oferă un mecanism flexibil de autentificare utilizat de software-ul aplicației, implicând astfel schimbul de date privind parolele.
NSS oferă un mecanism flexibil de servicii de nume, care este frecvent
utilizat de biblioteca standard C
pentru a obține numele utilizatorului și al grupului pentru programe precum
ls(1) și id(1).
Aceste sisteme PAM și NSS trebuie configurate în mod coerent.
Pachetele principale ale sistemelor PAM și NSS sunt următoarele.
Tabel 4.5. Lista pachetelor principale ale sistemelor PAM ți NSS
| pachet | popcon(popularitate) | dimensiune | descriere |
|---|---|---|---|
libpam-modules
|
V:928, I:1000 | 917 | Module de autentificare conectabile (serviciul de bază) |
libpam-ldapd
|
V:6, I:15 | 80 | Modul de autentificare conectabil care permite interfețe LDAP |
libpam-systemd
|
V:709, I:964 | 736 | Modul de autentificare conectabil pentru înregistrarea sesiunilor
utilizatorilor pentru logind |
libpam-doc
|
I:6.5 | 1504 | Module de autentificare conectabile (documentație în format html și text) |
libc6
|
V:930, I:999 | 5370 | Biblioteca GNU C: Biblioteci partajate care oferă de asemenea serviciul „Name Service Switch” |
glibc-doc
|
I:5.8 | 3858 | Biblioteca GNU C: Pagini de manual |
glibc-doc-reference
|
I:3.4 | 14261 | Biblioteca GNU C: Manual de referință în format info, pdf și html (non-free) |
libnss-mdns
|
V:242, I:520 | 141 | Modul NSS pentru rezolvarea numelor DNS multicast |
libnss-ldapd
|
V:7, I:17 | 131 | Modul NSS pentru utilizarea LDAP ca serviciu de denumire |
„The Linux-PAM System Administrators' Guide -- Ghidul administratorilor de
sistem Linux-PAM” din libpam-doc este esențial pentru
învățarea configurării PAM.
Secțiunea „System Databases and Name Service Switch -- Baze de date de
sistem și comutator de servicii de nume” din
glibc-doc-reference este esențială pentru învățarea
configurației NSS.
|
Notă |
|---|---|
|
Puteți vedea o listă mai extinsă și actualizată folosind comanda
„ |
|
Notă |
|---|---|
|
PAM este cea mai simplă metodă de inițializare a variabilelor de mediu pentru fiecare program cu valoarea implicită la nivel de sistem. |
În cadrul systemd, pachetul
libpam-systemd este instalat pentru a gestiona
autentificările utilizatorilor prin înregistrarea sesiunilor utilizatorilor
în ierarhia grupului de control systemd pentru logind. Consultați
systemd-logind(8), logind.conf(5) și
pam_systemd(8).
Iată câteva fișiere de configurare importante accesate de PAM și NSS.
Tabel 4.6. Lista fișierelor de configurare accesate de PAM și NSS
| fișier de configurare | funcție |
|---|---|
/etc/pam.d/program_name |
definește configurația PAM pentru programul
„nume-program”; vedeți
pam(7) și pam.d(5) |
/etc/nsswitch.conf |
definește configurația NSS cu intrarea pentru fiecare serviciu.; a se vedea
nsswitch.conf(5) |
/etc/nologin |
limitează autentificarea utilizatorului prin modulul
pam_nologin(8) |
/etc/securetty |
limitează tty pentru accesul root prin modulul
pam_securetty(8) |
/etc/security/access.conf |
stabilește limita de acces prin modulul pam_access(8) |
/etc/security/group.conf |
definește restricția bazată pe grup prin modulul
pam_group(8) |
/etc/security/pam_env.conf |
definește variabilele de mediu prin modulul pam_env(8) |
/etc/environment |
definește variabile de mediu suplimentare prin modulul
pam_env(8) cu argumentul „readenv=1” |
/etc/default/locale |
definește configurația de limbă prin modulul pam_env(8)
cu argumentul „readenv=1 envfile=/etc/default/locale”
(Debian) |
/etc/security/limits.conf |
stabilește restricții de resurse (ulimit, core, …) prin modulul
pam_linits(8) |
/etc/security/time.conf |
stabilește restricția de timp prin modulul pam_time(8) |
/etc/systemd/logind.conf |
definește configurația gestionarului de autentificare
systemd (a se vedea logind.conf(5) și
systemd-logind.service(8)) |
Limitarea selecției parolei este implementată de modulele PAM,
pam_unix(8) și
pam_cracklib(8). Acestea pot fi configurate prin
argumentele lor.
|
Indicație |
|---|---|
|
Modulele PAM utilizează sufixul „ |
Sistemul modern de gestionare centralizată poate fi implementat utilizând serverul centralizat Lightweight Directory Access Protocol (LDAP) pentru a administra numeroase sisteme de tip Unix și non-Unix din rețea. Implementarea de cod-sursă deschis a protocolului Lightweight Directory Access Protocol este OpenLDAP Software.
Serverul LDAP furnizează informațiile despre cont prin utilizarea PAM și NSS
cu pachetele libpam-ldapd și
libnss-ldapd pentru sistemul Debian. Pentru a activa
această funcție sunt necesare mai multe acțiuni (nu am utilizat această
configurare, iar informațiile următoare sunt pur secundare. Vă rugăm să
citiți acest text în acest context.).
Configurați un server LDAP centralizat rulând un program precum demonul LDAP
autonom, slapd(8).
Modificați fișierele de configurare PAM din directorul
„/etc/pam.d/” pentru a utiliza
„pam_ldap.so” în locul fișierului implicit
„pam_unix.so”.
Modificați configurația NSS din fișierul
„/etc/nsswitch.conf” pentru a utiliza
„ldap” în locul valorii implicite
(„compat” sau „file”).
Trebuie să configurați libpam-ldapd pentru a utiliza
conexiunea SSL (sau TLS) pentru securitatea
parolei.
Puteți configura libnss-ldapd să utilizeze conexiunea
SSL (sau TLS) pentru a asigura integritatea
datelor, cu prețul unei suprasarcini a rețelei LDAP.
Ar trebui să rulați nscd(8) local pentru a stoca în cache
orice rezultate ale căutării LDAP, în scopul de a reduce traficul de rețea
LDAP.
Consultați documentația din nsswitch.conf(5),
pam.conf(5), ldap.conf(5) și
„/usr/share/doc/libpam-doc/html/” oferită de pachetul
libpam-doc și „info libc «Name Service
Switch»” oferită de pachetul glibc-doc.
În mod similar, puteți configura sisteme centralizate alternative cu alte metode.
Integrarea utilizatorilor și grupurilor cu sistemul Windows.
Accesați serviciile domeniului Windows
prin pachetele winbind și
libpam_winbind.
Consultați winbindd(8) și Integrating MS Windows Networks
with Samba -- Integrarea rețelelor MS Windows cu Samba.
Integrarea utilizatorilor și grupurilor cu sistemul vechi de tip Unix.
Accesați NIS (denumit inițial
YP) sau NIS+ prin pachetul
nis.
Consultați The Linux NIS(YP)/NYS/NIS+ HOWTO.
Aceasta este celebra frază care apare în partea de jos a vechii pagini
„info su” a lui Richard M. Stallman. Nu vă faceți griji:
comanda actuală su din Debian utilizează PAM, astfel
încât se poate restricționa utilizarea su la grupul
root prin activarea liniei cu
„pam_wheel.so” în „/etc/pam.d/su”.
Instalarea pachetului libpam-cracklib vă permite să
impuneți reguli mai stricte pentru parole.
Într-un sistem GNOME tipic, care instalează automat
libpam-gnome-keyring,
„/etc/pam.d/common-password” arată astfel:
# here are the per-package modules (the "Primary" block) password requisite pam_cracklib.so retry=3 minlen=8 difok=3 password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass yescrypt # here's the fallback if no module succeeds password requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around password required pam_permit.so # and here are more per-package modules (the "Additional" block) password optional pam_gnome_keyring.so # end of pam-auth-update config
|
Notă |
|---|---|
|
Informațiile prezentate aici pot fi insuficiente pentru nevoile dvs. de securitate, dar ar trebui să constituie un bun început. |
Multe servicii ale stratului de transport populare comunică mesaje, inclusiv autentificarea parolei, în text simplu. Este o idee foarte proastă să transmiteți parola în text simplu pe Internet, unde poate fi interceptată. Puteți rula aceste servicii prin „Transport Layer Security” (TLS) sau predecesorul său, „Secure Sockets Layer” (SSL), pentru a securiza întreaga comunicare, inclusiv parola, prin criptare.
Tabel 4.7. Lista serviciilor și porturilor nesigure și sigure
| nume de serviciu nesigur | port | nume de serviciu sigur | port |
|---|---|---|---|
| www (http) | 80 | https | 443 |
| smtp (poștă electronică) | 25 | ssmtp (smtps) | 465 |
| ftp-data | 20 | ftps-data | 989 |
| ftp | 21 | ftps | 990 |
| telnet | 23 | telnets | 992 |
| imap2 | 143 | imaps | 993 |
| pop3 | 110 | pop3s | 995 |
| ldap | 389 | ldaps | 636 |
Criptarea consumă timp de procesare. Ca alternativă care nu solicită procesorul, puteți păstra comunicarea în text simplu, securizând doar parola cu un protocol de autentificare securizat, cum ar fi „Authenticated Post Office Protocol” (APOP) pentru POP și „Challenge-Response Authentication Mechanism MD5” (CRAM-MD5) pentru SMTP și IMAP. (Pentru trimiterea mesajelor de poștă electronică prin Internet către serverul dvs. de poștă electronică de la clientul dvs. de poștă electronică, este popular în ultima vreme să se utilizeze noul port de trimitere a mesajelor 587 în locul portului SMTP tradițional 25, pentru a evita blocarea portului 25 de către furnizorul de rețea, în timp ce vă autentificați cu CRAM-MD5.)
Programul Secure Shell (SSH) asigură
comunicații criptate sigure între două gazde ce nu sunt de „încredere”
într-o rețea nesigură, cu autentificare securizată. Acesta constă din
clientul OpenSSH, ssh(1)
și demonul OpenSSH,
sshd(8). Acest SSH poate fi utilizat pentru a tunela o
comunicare prin protocol nesigur, cum ar fi POP și X, în mod securizat pe
Internet, cu ajutorul funcției de redirecționare a porturilor.
Clientul încearcă să se autentifice utilizând autentificarea bazată pe gazdă, autentificarea cu cheie publică, autentificarea cu provocare-răspuns sau autentificarea cu parolă. Utilizarea autentificării cu cheie publică permite conectarea la distanță fără parolă. Consultați Secțiune 6.3, „Serverul și instrumentele de acces la distanță (SSH)”.
Chiar și atunci când utilizați servicii securizate, cum ar fi Secure Shell (SSH) și Point-to-point tunneling protocol (PPTP), există în continuare posibilitatea unor intruziuni prin atacuri de tip „forță brută” (brute force) pentru ghicirea parolelor etc. din Internet. Utilizarea politicii paravanului de protecție (a se vedea Secțiune 5.7, „Infrastructura netfilter”) împreună cu următoarele instrumente de securitate poate îmbunătăți situația de securitate.
Tabel 4.8. Lista instrumentelor care oferă măsuri suplimentare de securitate
| pachet | popcon(popularitate) | dimensiune | descriere |
|---|---|---|---|
knockd
|
V:0.7, I:1.8 | 110 | mic demon port-knock knockd(1) și client
knock(1) |
fail2ban
|
V:96, I:107 | 2191 | interzice adresele IP care provoacă erori multiple de autentificare |
libpam-shield
|
V:0.06, I:0.07 | 115 | blochează atacatorii de la distanță care încearcă să ghicească parola |
Pentru a împiedica accesul persoanelor la mașina dvs. cu privilegii de root, trebuie să efectuați următoarele acțiuni.
Cu acces fizic la dispozitivul de stocare al sistemului, redefinirea parolei este relativ ușoară, urmând pașii de mai jos.
Mutați dispozitivul de stocare al sistemului pe un PC cu USB ce poate fi pornit UEFI/BIOS.
Porniți sistemul cu un suport de recuperare (consultați Secțiune 3.2.2, „Sistem de recuperare Linux live pe USB”).
Montați partiția rădăcină cu acces de citire/scriere.
Editați fișierul „/etc/passwd” din partiția rădăcină și
lăsați necompletată a doua intrare pentru contul root.
Dacă aveți acces de editare la intrarea din meniul GRUB (consultați Secțiune 3.1.2, „Etapa 2: încărcătorul de pornire”) pentru
grub-rescue-pc la pornire, este și mai ușor să urmați
pașii de mai jos.
Porniți sistemul cu parametrul de nucleu modificat în ceva precum
„root=/dev/sda6 rw init=/bin/sh”.
Editați fișierul „/etc/passwd” și lăsați goală a doua
intrare pentru contul root.
Reporniți sistemul.
Shell-ul root al sistemului este acum accesibil fără parolă.
|
Notă |
|---|---|
|
Odată ce cineva are acces la shell-ul root, poate accesa totul din sistem și
poate reinițializa oricare dintre parolele din sistem. Mai mult, poate
compromite parola pentru toate conturile de utilizator folosind instrumente
de spargere a parolelor prin forță brută, cum ar fi pachetele
|
Singura soluție software rezonabilă pentru a evita toate aceste probleme
este utilizarea unei partiții rădăcină criptate software (sau partiția
„/etc”) folosind dm-crypt
și initramfs (vezi Secțiune 9.9, „Sfaturi pentru criptarea datelor”). Totuși, aveți
întotdeauna nevoie de parolă pentru a porni sistemul.
Există controale de acces la sistem, altele decât autentificarea bazată pe parolă și permisiunile de fișiere.
|
Notă |
|---|---|
|
Consultați Secțiune 9.4.16, „Tasta Alt-SysRq” pentru restricționarea caracteristicii nucleului tastă de atenție securizată „secure attention key”: (SAK). |
ACL-urile sunt un superset al permisiunilor obișnuite, așa cum se explică în Secțiune 1.2.3, „Permisiuni ale sistemului de fișiere”.
Întâlniți ACL-uri în acțiune în mediul grafic de birou modern. Când un
dispozitiv de stocare USB formatat este montat automat ca, de exemplu,
„/media/penguin/USBSTICK”, un utilizator normal
penguin poate executa:
$ cd /media/penguin $ ls -la total 16 drwxr-x---+ 1 root root 16 Jan 17 22:55 . drwxr-xr-x 1 root root 28 Sep 17 19:03 .. drwxr-xr-x 1 penguin penguin 18 Jan 6 07:05 USBSTICK
„+” în coloana a 11-a indică faptul că ACL-urile sunt
active. Fără ACL-uri, un utilizator normal penguin nu ar
trebui să poată afișa această listă, deoarece penguin nu
face parte din grupul root. Puteți vedea ACL-urile
astfel:
$ getfacl . # file: . # owner: root # group: root user::rwx user:penguin:r-x group::--- mask::r-x other::---
Aici:
„user::rwx”, „group::---” și
„other::---” corespund permisiunilor obișnuite ale
proprietarului, grupului și altor utilizatori.
ACL „user:penguin:r-x” permite unui utilizator normal
penguin să aibă permisiuni „r-x”.
Acest lucru a permis „ls -la” să listeze conținutul
directorului.
ACL „mask::r-x” stabilește limita superioară a
permisiunilor.
Pentru mai multe informații, consultați „POSIX Access Control Lists on Linux
-- Liste de control al accesului POSIX în Linux”,
acl(5), getfacl(1) și
setfacl(1).
sudo(8) este un program conceput pentru a permite unui
administrator de sistem să acorde privilegii root limitate utilizatorilor și
să înregistreze activitatea root. sudo necesită doar
parola unui utilizator obișnuit. Instalați pachetul sudo
și activați-l configurând opțiunile din „/etc/sudoers”.
Consultați exemplul de configurare din
„/usr/share/doc/sudo/examples/sudoers” și Secțiune 1.1.12, „Configurarea «sudo»”.
Utilizarea mea a sudo pentru sistemul cu un singur
utilizator (a se vedea Secțiune 1.1.12, „Configurarea «sudo»”) are scopul de
a mă proteja de propria mea prostie. Personal, consider că utilizarea
sudo este o alternativă mai bună decât utilizarea
sistemului din contul root tot timpul. De exemplu, următoarea comandă
schimbă proprietarul „some_file” în
„my_name”.
$ sudo chown my_name some_file
Desigur, dacă cunoașteți parola root (așa cum o cunosc utilizatorii Debian
care au instalat singuri sistemul), orice comandă poate fi executată sub
root din contul oricărui utilizator folosind „su -c”.
PolicyKit este o componentă a sistemului de operare pentru controlul privilegiilor la nivel de sistem în sistemele de operare de tip Unix.
Aplicațiile GUI mai noi nu sunt concepute pentru a rula ca procese privilegiate. Acestea comunică cu procesele privilegiate prin intermediul PolicyKit pentru a efectua operații administrative.
PolicyKit limitează astfel de opereții la conturile de utilizator care
aparțin grupului sudo din sistemul Debian.
A se vedea polkit(8).
Pentru securitatea sistemului, este recomandat să dezactivați cât mai multe programe de server posibil. Acest lucru devine esențial pentru serverele de rețea. Serverele neutilizate, activate fie direct ca daemon, fie prin programul super-server, sunt considerate riscuri de securitate.
Multe programe, cum ar fi sshd(8), utilizează controlul
accesului bazat pe PAM. Există multe modalități de a restricționa accesul
la anumite servicii ale serverului.
fișiere de configurare:
„/etc/default/program_name”
configurația unității de serviciu systemd pentru daemon
modulele de autentificare conectabile PAM (Pluggable Authentication Modules)
„/etc/inetd.conf” pentru super-server
„/etc/hosts.deny” și
„/etc/hosts.allow” pentru TCP
wrapper, tcpd(8)
„/etc/rpc.conf” pentru Sun
RPC
„/etc/at.allow” și „/etc/at.deny”
pentru atd(8)
„/etc/cron.allow” și „/etc/cron.deny”
pentru crontab(1)
paravanul de protecție al rețelei din infrastructura netfilter
Consultați Secțiune 3.6, „Gestionarea sistemului”, Secțiune 4.5.1, „Fișierele de configurare accesate de PAM și NSS” și Secțiune 5.7, „Infrastructura netfilter”.
|
Indicație |
|---|---|
|
Dacă aveți probleme cu accesul la distanță într-un sistem Debian recent,
comentați configurația problematică, cum ar fi „ |
Nucleul Linux a evoluat și oferă caracteristici de securitate care nu se regăsesc în implementările tradiționale UNIX.
Linux acceptă atribute extinse
care extind atributele UNIX tradiționale (a se vedea
xattr(7)).
Linux împarte privilegiile asociate în mod tradițional cu superutilizatorul
în unități distincte, cunoscute sub numele de
capacități(7), care pot fi activate și dezactivate
independent. Capacitățile sunt un atribut per fir de execuție începând cu
versiunea 2.2 a nucleului.
Infrastructura modulelor de securitate Linux („Linux Security Module”: LSM) oferă un mecanism pentru diverse verificări de securitate care pot fi conectate la noile extensii ale nucleului. De exemplu:
Deoarece aceste extensii pot restricționa modelul de privilegii mai strict decât politicile obișnuite ale modelului de securitate de tip Unix, chiar și privilegiile root pot fi restricționate. Vă recomandăm să citiți documentul infrastructurii „Linux Security Module (LSM)” la kernel.org.
Spatiile de nume Linux învăluiesc o
resursă globală a sistemului într-o abstractizare care face ca procesele din
cadrul spatiului de nume să pară că au propria instanță izolată a resursei
globale. Modificările aduse resursei globale sunt vizibile pentru alte
procese care sunt membre ale spațiului de nume, dar sunt invizibile pentru
alte procese. Începând cu versiunea 5.6 a nucleului, există 8 tipuri de
spații de nume (a se vedea namespaces(7),
unshare(1), nsenter(1)).
Începând cu Debian 11 Bullseye (2021), Debian utilizează ierarhia cgroup unificată (cunoscută și sub numele de cgroups-v2).
Exemple de utilizare a spațiilor de nume cu cgroups pentru a izola procesele acestora și a permite controlul resurselor sunt:
Systemd. A se vedea Secțiune 3.3.1, „Init systemd”.
Mediul sandbox. A se vedea Secțiune 7.7, „Cutia cu nisip (sandbox)”.
Containerele Linux precum Docker, LXC. A se vedea Secțiune 9.11, „Sistem virtualizat”.
Aceste funcționalități nu pot fi realizate prin Secțiune 4.1, „Autentificare normală Unix”. Aceste subiecte avansate sunt în mare parte în afara domeniului de aplicare al acestui document introductiv.