4 måter å deaktivere rotkonto i Linux


Rotkontoen er den ultimate kontoen på Linux og andre Unix-lignende operativsystemer. Denne kontoen har tilgang til alle kommandoer og filer på et system med fulle lese-, skrive- og utføringstillatelser. Den brukes til å utføre alle slags oppgaver på et system; å installere/fjerne/oppgradere programvarepakker og mye mer.

Fordi rotbrukeren har absolutte krefter, er alle handlinger han/hun utfører kritiske på et system. I denne forbindelse kan eventuelle feil fra root-brukeren ha store konsekvenser for normal drift av et system. I tillegg kan denne kontoen også bli misbrukt ved å bruke den på feil eller upassende måte enten ved et uhell, ondsinnet eller på grunn av konstruert uvitenhet om retningslinjer.

Derfor er det tilrådelig å deaktivere root-tilgangen på Linux-serveren din, i stedet opprette en administrativ konto som bør konfigureres til å få root-brukerprivilegier ved å bruke sudo-kommandoen, for å utføre kritiske oppgaver på serveren.

I denne artikkelen vil vi forklare fire måter å deaktivere root-brukerkontopålogging i Linux.

OBS: Før du blokkerer tilgangen til root-kontoen, må du sørge for at du har opprettet en administrativ konto som kan bruke useradd-kommandoen og gi denne brukerkontoen et sterkt passord. Flagget -m betyr å opprette brukerens hjemmekatalog og -c tillater å spesifisere en kommentar:

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

Deretter legger du denne brukeren til den aktuelle gruppen av systemadministratorer ved å bruke usermod-kommandoen, der bryteren -a betyr å legge til brukerkonto og -G spesifiserer en gruppe for å legge til brukeren in (hjul eller sudo avhengig av Linux-distribusjonen):

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

Når du har opprettet en bruker med administrative rettigheter, bytt til den kontoen for å blokkere root-tilgang.

# su admin

1. Endre root User's Shell

Den enkleste metoden for å deaktivere root-brukerpålogging er å endre skallet fra /bin/bash eller /bin/bash (eller et annet skall som tillater brukerinnlogging) til /sbin/nologin, i filen /etc/passwd, som du kan åpne for redigering ved å bruke hvilken som helst av dine favoritt kommandolinjeredigerere som vist.

  
$ sudo vim /etc/passwd

Endre linjen:

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

Lagre filen og lukk den.

Fra nå av, når root-brukeren logger på, vil han/hun få meldingen «Denne kontoen er for øyeblikket ikke tilgjengelig». Dette er standardmeldingen, men du kan endre den og angi en egendefinert melding i filen /etc/nologin.txt.

Denne metoden er bare effektiv med programmer som krever et skall for brukerinnlogging, ellers kan sudo-, ftp- og e-postklienter få tilgang til root-kontoen.

2. Deaktiver root-pålogging via konsollenhet (TTY)

Den andre metoden bruker en PAM-modul kalt pam_securetty, som bare tillater root-tilgang hvis brukeren logger på en sikker TTY, som definert av oppføringen i /etc/securetty.

Ovenstående fil lar deg spesifisere hvilke TTY-enheter rotbrukeren har lov til å logge på, tømming av denne filen forhindrer rotpålogging på enheter som er koblet til datasystemet.

For å lage en tom fil, kjør.

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

Denne metoden har noen begrensninger, den påvirker bare programmer som pålogging, skjermbehandlere (dvs. gdm, kdm og xdm) og andre nettverkstjenester som starter en TTY. Programmer som su, sudo, ssh og andre relaterte openssh-verktøy vil ha tilgang til root-kontoen.

3. Deaktiver SSH Root Login

Den vanligste måten å få tilgang til eksterne servere eller VPS-er på er via SSH, og for å blokkere root-brukerpålogging under den, må du redigere filen /etc/ssh/sshd_config.

$ sudo vim /etc/ssh/sshd_config

Fjern deretter (hvis det er kommentert) direktivet PermitRootLogin og sett verdien til no som vist på skjermbildet.

Når du er ferdig, lagre og lukk filen. Start deretter sshd-tjenesten på nytt for å bruke den nylige endringen i konfigurasjoner.

$ sudo systemctl restart sshd 
OR
$ sudo service sshd restart 

Som du kanskje allerede vet, påvirker denne metoden bare openssh-verktøysett, programmer som ssh, scp, sftp vil bli blokkert fra å få tilgang til root-kontoen.

4. Begrens root-tilgang til tjenester via PAM

Pluggable Authentication Modules (kort sagt PAM) er en sentralisert, pluggbar, modulær og fleksibel metode for autentisering på Linux-systemer. PAM, gjennom /lib/security/pam_listfile.so-modulen, tillater stor fleksibilitet når det gjelder å begrense rettighetene til spesifikke kontoer.

Modulen ovenfor kan brukes til å referere til en liste over brukere som ikke har tillatelse til å logge på via noen måltjenester som innlogging, ssh og eventuelle PAM-bevisste programmer.

I dette tilfellet ønsker vi å deaktivere root-brukertilgang til et system, ved å begrense tilgangen til pålogging og sshd-tjenester. Åpne og rediger først filen for måltjenesten i katalogen /etc/pam.d/ som vist.

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

Deretter legger du til konfigurasjonen nedenfor i begge filene.

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

Når du er ferdig, lagre og lukk hver fil. Deretter oppretter du den vanlige filen /etc/ssh/deniedusers som skal inneholde ett element per linje og ikke verdenslesbar.

Legg til navnetroten i den, lagre og lukk den.

$ sudo vim /etc/ssh/deniedusers

Angi også de nødvendige tillatelsene på dette.

$ sudo chmod 600 /etc/ssh/deniedusers

Denne metoden påvirker bare programmer og tjenester som er klar over PAM. Du kan blokkere root-tilgang til systemet via ftp- og e-postklienter og mer.

For mer informasjon, se de relevante man-sidene.

$ man pam_securetty
$ man sshd_config
$ man pam

Det er alt! I denne artikkelen har vi forklart fire måter å deaktivere root-brukerpåloggingen (eller kontoen) i Linux. Har du kommentarer, forslag eller spørsmål, ta gjerne kontakt med oss via tilbakemeldingsskjemaet nedenfor.