4 moduri de a dezactiva contul root în Linux


Contul root este cel mai bun cont pe un Linux și alte sisteme de operare asemănătoare Unix. Acest cont are acces la toate comenzile și fișierele dintr-un sistem cu permisiuni complete de citire, scriere și execuție. Este folosit pentru a efectua orice fel de sarcină pe un sistem; pentru a instala/elimina/actualiza pachete software și multe altele.

Deoarece utilizatorul root are puteri absolute, orice acțiune pe care o efectuează este esențială pentru un sistem. În acest sens, orice eroare a utilizatorului root poate avea implicații uriașe asupra funcționării normale a unui sistem. În plus, acest cont poate fi, de asemenea, abuzat prin folosirea lui necorespunzătoare sau inadecvată, fie accidental, rău intenționat, fie prin ignorarea născocită a politicilor.

Prin urmare, este recomandabil să dezactivați accesul root pe serverul dvs. Linux, în schimb, creați un cont administrativ care ar trebui configurat pentru a obține privilegii de utilizator root folosind comanda sudo, pentru a efectua sarcini critice pe server.

În acest articol, vom explica patru moduri de a dezactiva autentificarea contului utilizatorului root în Linux.

Atenție: înainte de a bloca accesul la contul root, asigurați-vă că ați creat un cont administrativ, capabil să utilizeze comanda useradd și dați acestui cont de utilizator o parolă puternică. Indicatorul -m înseamnă crearea directorului principal al utilizatorului și -c permite specificarea unui comentariu:

# useradd -m -c "Admin User" admin
# passwd admin

Apoi, adăugați acest utilizator la grupul corespunzător de administratori de sistem folosind comanda usermod, unde comutatorul -a înseamnă adăugarea unui cont de utilizator și -G specifică un grup pentru adăugarea utilizatorului in (roată sau sudo, în funcție de distribuția dvs. Linux):

# usermod -aG wheel admin    #CentOS/RHEL
# usermod -aG sudo admin     #Debian/Ubuntu 

După ce ați creat un utilizator cu privilegii administrative, comutați la acel cont pentru a bloca accesul root.

# su admin

1. Schimbați Shell-ul utilizatorului root

Cea mai simplă metodă de a dezactiva autentificarea utilizatorului root este să-i schimbi shell-ul din /bin/bash sau /bin/bash (sau orice alt shell care permite autentificarea utilizatorului) în , în fișierul /etc/passwd, pe care îl puteți deschide pentru editare folosind oricare dintre editorii de linie de comandă preferati, după cum se arată.

  
$ sudo vim /etc/passwd

Schimbați linia:

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin

Salvați fișierul și închideți-l.

De acum înainte, când utilizatorul root se conectează, el/ea va primi mesajul „Acest cont nu este disponibil în prezent.” Acesta este mesajul prestabilit, dar dvs. îl poate schimba și seta un mesaj personalizat în fișierul /etc/nologin.txt.

Această metodă este eficientă numai cu programele care necesită un shell pentru autentificarea utilizatorului, în caz contrar, clienții sudo, ftp și e-mail pot accesa contul root.

2. Dezactivați autentificarea root prin intermediul dispozitivului de consolă (TTY)

A doua metodă utilizează un modul PAM numit pam_securetty, care permite accesul root numai dacă utilizatorul se conectează pe un TTY „securizat”, după cum definit de lista din /etc/securetty.

Fișierul de mai sus vă permite să specificați pe ce dispozitive TTY îi este permis utilizatorul root să se conecteze, golirea acestui fișier împiedică autentificarea root pe orice dispozitiv atașat la sistemul informatic.

Pentru a crea un fișier gol, rulați.

$ sudo mv /etc/securetty /etc/securetty.orig
$ sudo touch /etc/securetty
$ sudo chmod 600 /etc/securetty

Această metodă are unele limitări, afectează doar programe precum autentificare, manageri de afișare (adică gdm, kdm și xdm) și alte servicii de rețea care lansați un TTY. Programele precum su, sudo, ssh și alte instrumente openssh conexe vor avea acces la contul root.

3. Dezactivați SSH Root Login

Cea mai obișnuită modalitate de a accesa serverele la distanță sau VPS-urile este prin SSH și pentru a bloca autentificarea utilizatorului root sub acesta, trebuie să editați fișierul /etc/ssh/sshd_config.

$ sudo vim /etc/ssh/sshd_config

Apoi decomentați (dacă este comentată) directiva PermitRootLogin și setați valoarea acesteia la no, așa cum se arată în captură de ecran.

După ce ați terminat, salvați și închideți fișierul. Apoi reporniți serviciul sshd pentru a aplica modificarea recentă a configurațiilor.

$ sudo systemctl restart sshd 
OR
$ sudo service sshd restart 

După cum probabil știți deja, această metodă afectează doar setul de instrumente openssh, programe precum ssh, scp, sftp vor fi blocate să acceseze contul root.

4. Restricționați accesul root la servicii prin PAM

Module de autentificare conectabile (PAM pe scurt) este o metodă de autentificare centralizată, conectabilă, modulară și flexibilă pe sistemele Linux. PAM, prin modulul /lib/security/pam_listfile.so, permite o mare flexibilitate în limitarea privilegiilor anumitor conturi.

Modulul de mai sus poate fi folosit pentru a face referire la o listă de utilizatori cărora nu li se permite să se autentifice prin intermediul unor servicii țintă, cum ar fi login, ssh și orice programe care acceptă PAM.

În acest caz, dorim să dezactivăm accesul utilizatorului root la un sistem, prin restricționarea accesului la serviciile de conectare și sshd. Mai întâi deschideți și editați fișierul pentru serviciul țintă în directorul /etc/pam.d/, așa cum se arată.

$ sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

Apoi, adăugați configurația de mai jos în ambele fișiere.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

Când ați terminat, salvați și închideți fiecare fișier. Apoi creați fișierul simplu /etc/ssh/deniedusers care ar trebui să conțină un articol pe rând și să nu poată fi citit în întreaga lume.

Adăugați numele rădăcină în el, apoi salvați și închideți-l.

$ sudo vim /etc/ssh/deniedusers

Setați, de asemenea, permisiunile necesare pentru aceasta.

$ sudo chmod 600 /etc/ssh/deniedusers

Această metodă afectează numai programele și serviciile care sunt conștiente de PAM. Puteți bloca accesul root la sistem prin ftp și clienți de e-mail și multe altele.

Pentru mai multe informații, consultați paginile de manual relevante.

$ man pam_securetty
$ man sshd_config
$ man pam

Asta e tot! În acest articol, am explicat patru moduri de a dezactiva autentificarea (sau contul) utilizatorului root în Linux. Aveți comentarii, sugestii sau întrebări, nu ezitați să ne contactați prin formularul de feedback de mai jos.