4 maneres de desactivar el compte arrel a Linux


El compte root és el compte definitiu en un Linux i altres sistemes operatius semblants a Unix. Aquest compte té accés a totes les ordres i fitxers d'un sistema amb permisos complets de lectura, escriptura i execució. S'utilitza per realitzar qualsevol tipus de tasca en un sistema; per instal·lar/eliminar/actualitzar paquets de programari, i molt més.

Com que l'usuari root té poders absoluts, qualsevol acció que realitzi és fonamental en un sistema. En aquest sentit, qualsevol error de l'usuari root pot tenir grans implicacions en el funcionament normal d'un sistema. A més, també es pot abusar d'aquest compte en utilitzar-lo de manera inadequada o inadequada, ja sigui accidentalment, maliciós o per desconeixement artificial de les polítiques.

Per tant, és recomanable desactivar l'accés root al vostre servidor Linux, en lloc d'això, creeu un compte d'administrador que s'hauria de configurar per obtenir privilegis d'usuari root mitjançant l'ordre sudo, per realitzar tasques crítiques al servidor.

En aquest article, explicarem quatre maneres de desactivar l'inici de sessió del compte d'usuari root a Linux.

Atenció: abans de bloquejar l'accés al compte root, assegureu-vos d'haver creat un compte d'administrador, capaç d'utilitzar l'ordre useradd i donar a aquest compte d'usuari una contrasenya segura. El senyalador -m significa crear el directori inicial de l'usuari i -c permet especificar un comentari:

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

A continuació, afegiu aquest usuari al grup adequat d'administradors del sistema mitjançant l'ordre usermod, on el commutador -a significa afegir un compte d'usuari i -G especifica un grup per afegir l'usuari. in (roda o sudo segons la vostra distribució de Linux):

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

Un cop hàgiu creat un usuari amb privilegis administratius, canvieu a aquest compte per bloquejar l'accés root.

# su admin

1. Canvieu el Shell de l'usuari root

El mètode més senzill per desactivar l'inici de sessió de l'usuari root és canviar el seu shell de /bin/bash o /bin/bash (o qualsevol altre intèrpret d'ordres que permeti l'inici de sessió de l'usuari) a /sbin/nologin, al fitxer /etc/passwd, que podeu obrir per editar-lo amb qualsevol dels vostres editors de línia d'ordres preferits, tal com es mostra.

  
$ sudo vim /etc/passwd

Canvia la línia:

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

Deseu el fitxer i tanqueu-lo.

A partir d'ara, quan l'usuari root iniciï sessió, rebrà el missatge Aquest compte no està disponible actualment. Aquest és el missatge predeterminat, però podeu canviar-lo i establir un missatge personalitzat al fitxer /etc/nologin.txt.

Aquest mètode només és efectiu amb programes que requereixen un shell per a l'inici de sessió de l'usuari, en cas contrari, els clients sudo, ftp i correu electrònic poden accedir al compte root.

2. Desactiveu l'inici de sessió root mitjançant el dispositiu de consola (TTY)

El segon mètode utilitza un mòdul PAM anomenat pam_securetty, que només permet l'accés root si l'usuari està iniciant sessió en un TTY segur, tal com es defineix a la llista a /etc/securetty.

El fitxer anterior us permet especificar en quins dispositius TTY l'usuari root pot iniciar sessió, buidar aquest fitxer impedeix l'inici de sessió root en qualsevol dispositiu connectat al sistema informàtic.

Per crear un fitxer buit, executeu.

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

Aquest mètode té algunes limitacions, només afecta programes com ara l'inici de sessió, els gestors de pantalla (és a dir, gdm, kdm i xdm) i altres serveis de xarxa que inicien un TTY. Els programes com su, sudo, ssh i altres eines openssh relacionades tindran accés al compte root.

3. Desactiveu l'inici de sessió arrel SSH

La forma més habitual d'accedir a servidors remots o VPS és mitjançant SSH i per bloquejar l'inici de sessió de l'usuari root a sota, cal que editeu el fitxer /etc/ssh/sshd_config.

$ sudo vim /etc/ssh/sshd_config

A continuació, descomenta (si es comenta) la directiva PermitRootLogin i defineix el seu valor a no tal com es mostra a la captura de pantalla.

Un cop hàgiu acabat, deseu i tanqueu el fitxer. A continuació, reinicieu el servei sshd per aplicar el canvi recent a les configuracions.

$ sudo systemctl restart sshd 
OR
$ sudo service sshd restart 

Com ja sabeu, aquest mètode només afecta el conjunt d'eines d'openssh, programes com ssh, scp, sftp es bloquejaran per accedir al compte root.

4. Restringeix l'accés root als serveis mitjançant PAM

Els mòduls d'autenticació connectables (PAM) són un mètode d'autenticació centralitzat, connectable, modular i flexible en sistemes Linux. PAM, mitjançant el mòdul /lib/security/pam_listfile.so, permet una gran flexibilitat a l'hora de limitar els privilegis de comptes específics.

El mòdul anterior es pot utilitzar per fer referència a una llista d'usuaris que no tenen permís per iniciar sessió mitjançant alguns serveis de destinació, com ara login, ssh i qualsevol programa compatible amb PAM.

En aquest cas, volem desactivar l'accés de l'usuari root a un sistema, restringint l'accés als serveis d'inici de sessió i sshd. Primer obriu i editeu el fitxer per al servei de destinació al directori /etc/pam.d/ tal com es mostra.

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

A continuació, afegiu la configuració següent als dos fitxers.

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

Quan hàgiu acabat, deseu i tanqueu cada fitxer. A continuació, creeu el fitxer normal /etc/ssh/deniedusers que hauria de contenir un element per línia i no llegible per tot el món.

Afegiu-hi l'arrel del nom, després deseu-lo i tanqueu-lo.

$ sudo vim /etc/ssh/deniedusers

També establiu els permisos necessaris en això.

$ sudo chmod 600 /etc/ssh/deniedusers

Aquest mètode només afecta els programes i serveis que són conscients de PAM. Podeu bloquejar l'accés root al sistema mitjançant clients ftp i de correu electrònic i molt més.

Per a més informació, consulteu les pàgines man corresponents.

$ man pam_securetty
$ man sshd_config
$ man pam

Això és tot! En aquest article, hem explicat quatre maneres de desactivar l'inici de sessió (o el compte) de l'usuari root a Linux. Si teniu algun comentari, suggeriment o pregunta, no dubteu a posar-vos en contacte amb nosaltres mitjançant el formulari de comentaris que trobareu a continuació.