4 načina da onemogućite root račun u Linuxu


Root nalog je ultimativni nalog na Linuxu i drugim operativnim sistemima sličnim Unixu. Ovaj nalog ima pristup svim komandama i datotekama na sistemu sa punim dozvolama za čitanje, pisanje i izvršavanje. Koristi se za obavljanje bilo koje vrste zadatka na sistemu; da kreirate/ažurirate/pristupite/brišete račune drugih korisnika, instalirate/uklonite/nadogradite softverske pakete i još mnogo toga.

Budući da root korisnik ima apsolutne ovlasti, sve radnje koje on/ona izvodi su kritične za sistem. U tom smislu, sve greške root korisnika mogu imati velike implikacije na normalan rad sistema. Osim toga, ovaj račun također može biti zloupotrijebljen korištenjem nepropisnog ili neprikladnog, bilo slučajno, zlonamjerno, ili zbog izmišljenog nepoznavanja pravila.

Stoga je preporučljivo onemogućiti root pristup na vašem Linux serveru, umjesto toga kreirati administrativni nalog koji bi trebao biti konfiguriran da dobije privilegije root korisnika pomoću naredbe sudo, za obavljanje kritičnih zadataka na poslužitelju.

U ovom članku ćemo objasniti četiri načina da onemogućite prijavu na root korisnički račun u Linuxu.

Pažnja: Prije nego što blokirate pristup root računu, provjerite jeste li kreirali administrativni račun, koji može koristiti sudo komandu za dobivanje root korisničke privilegije, naredbom useradd i dajte ovom korisničkom računu jaku lozinku. Oznaka -m znači kreiranje korisničkog kućnog direktorija, a -c omogućava navođenje komentara:

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

Zatim dodajte ovog korisnika u odgovarajuću grupu sistemskih administratora koristeći naredbu usermod, gdje prekidač -a znači dodavanje korisničkog računa, a -G specificira grupu za dodavanje korisnika in (wheel ili sudo ovisno o vašoj Linux distribuciji):

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

Nakon što kreirate korisnika s administrativnim privilegijama, prebacite se na taj račun kako biste blokirali root pristup.

su admin

1. Promijenite ljusku root korisnika

Najjednostavniji način da onemogućite prijavu root korisnika je da promijenite njegovu ljusku iz /bin/bash ili /bin/bash (ili bilo koju drugu ljusku koja dozvoljava prijavu korisnika) u /sbin/nologin, u datoteci /etc/passwd, koju možete otvoriti za uređivanje koristeći bilo koji od vaših omiljenih uređivača komandne linije kao što je prikazano.

  
sudo vim /etc/passwd

Promijenite liniju:

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

Sačuvajte datoteku i zatvorite je.

Od sada, kada se root korisnik prijavi, on/ona će dobiti poruku “Ovaj račun trenutno nije dostupan. ” Ovo je zadana poruka, ali, možete. promijenite ga i postavite prilagođenu poruku u datoteci /etc/nologin.txt.

Ova metoda je učinkovita samo sa programima koji zahtijevaju ljusku za prijavu korisnika, u suprotnom, sudo, ftp i email klijenti mogu pristupiti root računu.

2. Onemogućite root prijavu putem konzolnog uređaja (TTY)

Druga metoda koristi PAM modul pod nazivom pam_securetty, koji dozvoljava root pristup samo ako se korisnik prijavljuje na “sigurni” TTY, kao definisano listingom u /etc/securetty.

Gornji fajl vam omogućava da navedete na koje TTY uređaje je root korisniku dozvoljeno da se prijavi, ispraznite ovu datoteku sprečavate root prijavu na svim uređajima povezanim sa računarskim sistemom.

Da kreirate praznu datoteku, pokrenite.

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

Ova metoda ima neka ograničenja, utiče samo na programe kao što su prijava, upravitelji prikaza (tj. gdm, kdm i xdm) i druge mrežne usluge koje pokrenuti TTY. Programi kao što su su, sudo, ssh i drugi povezani openssh alati će imati pristup root nalogu.

3. Onemogućite SSH Root prijavu

Najčešći način pristupa udaljenim serverima ili VPS-ovima je putem SSH-a i da blokirate prijavu root korisnika pod njim, morate urediti datoteku /etc/ssh/sshd_config.

sudo vim /etc/ssh/sshd_config

Zatim dekomentirajte (ako je komentarisana) direktivu PermitRootLogin i postavite njenu vrijednost na no kao što je prikazano na snimku ekrana.

Kada završite, sačuvajte i zatvorite datoteku. Zatim ponovo pokrenite sshd uslugu da primijenite nedavnu promjenu u konfiguracijama.

sudo systemctl restart sshd 
OR
sudo service sshd restart 

Kao što možda već znate, ova metoda utiče samo na set alata openssh, programima kao što su ssh, scp, sftp biće blokiran pristup root nalogu.

4. Ograničite root pristup uslugama putem PAM-a

Pluggable Authentication Modules (PAM ukratko) je centralizirana, priključna, modularna i fleksibilna metoda provjere autentičnosti na Linux sistemima. PAM, preko /lib/security/pam_listfile.so modula, omogućava veliku fleksibilnost u ograničavanju privilegija određenih naloga.

Gornji modul se može koristiti za upućivanje na listu korisnika kojima nije dozvoljeno da se prijave preko nekih ciljnih servisa kao što su login, ssh i bilo koji PAM programi.

U ovom slučaju želimo onemogućiti pristup root korisnika sistemu, ograničavajući pristup login i sshd servisima. Prvo otvorite i uredite datoteku za ciljnu uslugu u direktoriju /etc/pam.d/ kao što je prikazano.


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

Zatim dodajte konfiguraciju ispod u obje datoteke.

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

Kada završite, sačuvajte i zatvorite svaki fajl. Zatim kreirajte običnu datoteku /etc/ssh/deniedusers koja bi trebala sadržavati jednu stavku po redu i nije čitljiva.

Dodajte korijen imena u njega, zatim ga sačuvajte i zatvorite.

sudo vim /etc/ssh/deniedusers

Također postavite potrebne dozvole za ovo.

sudo chmod 600 /etc/ssh/deniedusers

Ova metoda utiče samo na programe i usluge koji su svjesni PAM-a. Možete blokirati root pristup sistemu putem ftp i email klijenata i još mnogo toga.

Za više informacija, konsultujte relevantne man stranice.

man pam_securetty
man sshd_config
man pam

To je sve! U ovom članku smo objasnili četiri načina onemogućavanja prijave (ili naloga) root korisnika u Linuxu. Imate li bilo kakve komentare, prijedloge ili pitanja, slobodno nam se obratite putem obrasca za povratne informacije ispod.