După cum știm cu toții, utilizatorul root este rege și deține privilegii nelimitate asupra sistemului Linux. Cu toate acestea, utilizatorii non-root sunt limitați la sarcini de bază. În plus, utilizatorii sudo li se acordă un anumit grad de privilegii root, după cum consideră adecvat de către utilizatorul root pentru a efectua sarcini specifice ridicate.
Problemele apar atunci când utilizatorii obișnuiți au acces necontrolat la resurse sau sunt escaladați spre rădăcină neintenționat. Acesta este un risc de securitate grav care ar putea provoca încălcări, modificări nedorite și, în cel mai rău caz, blocarea sistemului. Un alt risc potențial este atunci când fișierele au permisiuni de fișiere mai puțin sigure. De exemplu, fișierele de pornire cu permisiuni de scriere pentru utilizatorii globali ar putea fi ușor modificate sau corupte, rezultând un sistem defect.
[ S-ar putea sa-ti placa si: Sfaturi utile pentru securizarea datelor și Linux ]
Deși putem implementa securitatea fizică, a rețelei și a datelor, un utilizator rău intenționat poate ocoli măsurile de securitate și poate profita de astfel de lacune de securitate. Din acest motiv, securitatea sistemului de fișiere ar trebui luată în serios. Oferă un strat suplimentar de apărare în fața atacurilor sau amenințărilor privilegiate din partea angajaților rău intenționați care nu trebuie să facă eforturi mari pentru a ocoli măsurile de securitate pentru a accesa fișierele.
În securitatea sistemului, ne vom concentra pe următoarele puncte cheie:
Probabil că ai auzit asta totul în Linux este considerat un fișier. Și dacă nu este, este un proces. Fiecare fișier de pe un sistem Linux este deținut de un utilizator și un utilizator de grup. De asemenea, poartă permisiuni de fișier pentru 3 categorii de utilizatori: Utilizator (tu), Grup (g), si altii (o). Permisiunile sunt reprezentate în citire, scriere și executare ( rwx ) pentru fiecare categorie de utilizatori.
rwx rwx rwx. Grup de utilizatori Altele.
După cum s-a văzut înainte, în Secțiunea de bază Linux, puteți vizualiza permisiunile fișierului utilizând formatul lung al fișierului Comand așa cum se arată.
$ ls -l.
Doar pentru a recapitula, permisiunile sunt de obicei reprezentate de nouă caractere. Primele trei caractere reprezintă drepturile de acces ale utilizatorului proprietar propriu al fișierului. Al doilea set de caractere reprezintă permisiunile proprietarului grupului fișierului. În cele din urmă, ultimul set pentru alți utilizatori sau globali. Aceste personaje sunt perpetuu în citit, scrie, a executa (rwx) Ordin.
După permisiuni, avem proprietăți de utilizator și grup, urmate de dimensiunea fișierului sau directorului, data modificării și, în sfârșit, numele fișierului.
Permisiunile utilizatorilor pentru fișiere și directoare pot fi modificate după cum se consideră adecvate. Regula generală este de a utiliza principiul de securitate cu cel mai mic privilegiu. Pur și simplu, asigurați-vă că utilizatorii obțin drepturile minime de acces sau permisiunile necesare pentru a face treaba.
Principiul celor mai mici privilegii restricționează utilizatorii doar la anumite roluri și, făcând acest lucru, minimizează riscul ca atacatorii să acceseze și să modifice datele critice prin utilizarea unui cont de utilizator cu pârghie redusă. De asemenea, reduce suprafața atacului și limitează propagarea malware-ului în cazul în care atacatorul preia controlul asupra sistemului dvs.
Prin urmare, dacă un utilizator trebuie doar să vizualizeze conținutul unui fișier sau director, nu ar trebui să li se acorde permisiuni de executare sau scriere. La nivel foarte de bază, acordați doar cele mai puține permisiuni și proprietăți cerute de utilizator pentru îndeplinirea sarcinilor. Am abordat cum să modificăm permisiunile și proprietățile utilizatorilor pentru fișiere / directoare folosind comenzile chmod și chown din comenzi de bază Linux subiect.
Pentru ca administratorul de sistem să aibă un timp mai ușor de gestionat permisiunile, permisiuni speciale sau drepturi de acces pot fi acordate unor directoare întregi. Una dintre permisiunile speciale care pot fi aplicate pentru a restricționa ștergerea și modificarea unui fișier sau director este bitul lipicios.
Într-un scenariu în care a directorul partajat poate fi accesat de toți utilizatorii în sistem sau rețea, există un risc potențial ca unii utilizatori să poată șterge sau modifica fișierele din director. Acest lucru nu este dorit dacă doriți să păstrați integritatea conținutului directorului. Și aici intră bitul lipicios.
Un bit lipicios este o permisiune specială de fișier setată pe un fișier sau întreaga directoare. Acesta acordă numai proprietarului acelui fișier / director permisiunea de a șterge sau de a face modificări în conținutul fișierului sau al directorului. Niciun alt utilizator nu poate șterge sau modifica fișierul / directorul. Are valoarea simbolică a t
și o valoare numerică de 1000.
Pentru a activa un bit lipicios pe un director, utilizați comanda chmod după cum urmează:
$ chmod + t nume_director.
În exemplul de mai jos, am aplicat un bit lipicios în directorul numit Test. În cazul unui director, tot conținutul va moșteni permisiunile de biți lipicioși. Puteți verifica permisiunile de bit lipicios folosind ls -ld comanda. Asigurați-vă că observați t
simbol la sfârșitul permisiunilor fișierului.
$ ls -ld test.
Dacă un alt utilizator încearcă să șteargă directorul sau să modifice fișierul din director, acesta este întâmpinat cu un Acces refuzat eroare.
Și acesta este esența permisiunii fișierului stick bit.
SUID (Setați User ID) este o altă permisiune specială de fișier care permite unui alt utilizator obișnuit să ruleze un fișier cu permisiunile proprietarului fișierului. De obicei este notat printr-o valoare simbolică s
la partea de utilizator a permisiunilor de fișiere în loc de o X
care reprezintă permisiuni de executare. SUID are o valoare numerică de 4000.
SGID, (Set ID grup) permite unui utilizator obișnuit să moștenească permisiunile de grup ale proprietarului grupului de fișiere. Mai degrabă decât X
pentru permisiunile de executare, veți vedea un s
în partea de grup a permisiunilor de fișiere. SGID are o valoare numerică de 2000.
Oricât de convenabil s-ar dovedi a fi SUID și SGID permisiunile sunt asociate cu riscuri de securitate și ar trebui evitate cu orice preț. Acest lucru se datorează faptului că acordă privilegii speciale utilizatorilor obișnuiți. Dacă un intrus care se prezintă ca un utilizator obișnuit dă peste un fișier executabil deținut de utilizatorul root cu un SUID bit set pe el, ei pot folosi această lacună și pot exploata sistemul.
Pentru a găsi toate fișierele cu SUID bit set în Linux rulează găsi comanda ca utilizator root.
$ find / -perm -4000 tip -f.
Pentru directoare executați:
$ find / -perm -4000 tip -d.
Pentru a găsi toate fișierele cu SGID setul de biți rulează:
$ find / -perm -2000 tip -f.
Pentru directoare executați:
$ find / -perm -2000 tip -d.
Pentru a elimina SUID bit pe un fișier, rulați comanda chmod așa cum se arată:
$ chmod u-s / path / to / file.
Pentru a elimina bitul SGID dintr-un fișier executați comanda:
$ chmod g-s nume de fișier / cale / către / fișier.
Nu este neobișnuit ca utilizatorii să seteze parole slabe. Un număr bun setează parole scurte, simple și ușor de ghicit, pentru a evita uitarea lor în timpul conectării. Deși parolele convenabile și slabe pot fi încălcate cu ușurință folosind scripturi de atac cu forță brută.
PAM modul ( Modul de autentificare conectabil ) este un modul care permite administratorilor de sistem să aplice politicile de parolă pe sistemele Linux. Pentru a realiza acest lucru, aveți nevoie de pam_pwquality modul care este furnizat de libpam_pwquality bibliotecă. pam_pwquality modulul verifică puterea unei parole în raport cu un set de reguli și un dicționar de sistem și identifică opțiunile slabe ale parolei.
Pentru a instala fișierul pam_pwquality modulul activat Ubuntu 18.04 și versiunile ulterioare, rulați:
$ sudo apt instalează libpam_pwquality.
Pentru RHEL / CentOS 8, executați comanda:
$ sudo dnf instalează libpwquality.
Fișierul de configurare se găsește în următoarea locație:
Înainte de a începe modificarea PAM fișier de configurare, să luăm în considerare mai întâi să adunăm informații despre comenzile de îmbătrânire a parolei.
Acestea pot fi găsite în /etc/login.defs fişier.
Fișierul conține următoarele controale cheie pentru parolă:
Valorile implicite sunt indicate mai jos.
PASS_MAX_DAYS atributul limitează numărul de zile în care un utilizator își poate folosi parola. Când această valoare este atinsă sau parola expiră, utilizatorul este obligat să își schimbe parola pentru a se conecta la sistem. În mod implicit, această valoare este setată la 99999, care se traduce în 273 ani. Acest lucru nu are prea mult sens în ceea ce privește securitatea, deoarece utilizatorul își poate continua utilizarea parolei pe întreaga durată de viață.
Puteți seta această valoare la o valoare semnificativă, să zicem 30 de zile așa cum se arată.
PASS_MAX_DAYS 30.
După 30 de zile, utilizatorul va fi obligat să-și schimbe parola cu una diferită.
PASS_MIN_DAYS atributul specifică durata minimă pe care utilizatorii își pot folosi parola înainte de a o modifica. Ce inseamna asta? Dacă, de exemplu, această valoare este setată la 15 zile, utilizatorul nu își va putea schimba parola din nou înainte de trecerea a 15 zile.
PASS_MAX_DAYS 15.
PASS_WARN_AGE atributul specifică numărul de zile în care un utilizator va primi un avertisment cu privire la expirarea iminentă a parolei înainte ca aceasta să expire. De exemplu, puteți seta acest lucru la 7 zile așa cum se arată.
PASS_MAX_DAYS 7.
NOTĂ: Aceste controale de parolă nu funcționează cu conturi preexistente. Acestea se aplică numai conturilor noi create după definirea regulilor.
Înainte de a edita fișierul /etc/pam.d/common-password fișier, creați o copie de rezervă. În acest exemplu, am creat fișierul common-password.bak fișier de copiere de rezervă.
$ sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.bak.
Apoi deschideți fișierul.
$ sudo vim /etc/pam.d/common-password
Localizați linia prezentată mai jos.
parola necesară pam_pwquality.so reîncercați = 3.
reîncercați opțiunea setează numărul maxim de ori când vi se cere să introduceți parola corectă înainte de a primi o eroare. În mod implicit, aceasta este setată la 3. Aceasta este doar o opțiune și vom include mai multe opțiuni.
Adăugați următoarele atribute la linie:
minlen = 10 difok = 3 lcredit = -1 ucredit = -1 dcredit = -1 ocredit = -1 refuse_username
Să concretizăm aceste atribute.
Dacă încercați să creați un utilizator nou care să nu respecte politicile de parolă, veți întâlni astfel de erori așa cum se arată.
Aceasta încheie subiectul privind securitatea sistemului și fundamentele securității în general. În întregul capitol, am făcut lumină asupra măsurilor de securitate de bază pe care le puteți implementa protejați-vă sistemul Linux de malware utilizatori precum hackeri sau angajați nemulțumiți.