SELinux

SELinux for nybegynnere som bruker CentOS

SELinux for nybegynnere som bruker CentOS
Utviklet av NSA for å forhindre ondskapsfull tilgang og inntrenging, er Security-Enhanced Linux eller SELinux en avansert tilgangskontrollfunksjon som leveres med de fleste moderne Linux-distribusjoner. SELinux er definert som det obligatoriske tilgangskontrollsystemet (MAC) utviklet som erstatning for diskresjonært tilgangskontrollsystem (DAC).

SELinux kan virke skremmende og veldig vanskelig å implementere i de fleste moderne systemer. Imidlertid har konfigurering av SELinux store fordeler både når det gjelder å håndheve sikkerhet og feilsøking.

Denne opplæringen vil diskutere ulike konsepter implementert av SELinux og utforske ulike praktiske metoder for implementering av SELinux.

MERKNAD: Før vi begynner, er det bra å bruke kommandoene i denne opplæringen som rotbruker eller bruker i sudoers-gruppen.

Installer SELinux-pakker

La oss installere forskjellige SELinux-pakker, som igjen vil bidra til å jobbe med SELinux-policyer.

Før vi fortsetter å installere SELinux-pakkene, er det bra vi bekrefter hvilke som er installert på det nåværende systemet.

I de fleste installasjoner av REHL-distribusjoner er noen pakker installert som standard. Disse pakkene inkluderer:

  1. setools - denne pakken brukes til å overvåke logger, spørringspolicyer og kontekstfilbehandling.
  2. policycoreutils-python - gir python-kjerneverktøy for administrering av SELinux
  3. policycoreutils - denne pakken gir også verktøy for å administrere SELinux.
  4. mcstrans - mcstrans gir SELinux-oversettelsesdemon, som oversetter forskjellige nivåer til enkle formater som lett kan forstås.
  5. setools-console - ligner på setools.
  6. Selinux-policy - den gir en referanse for å konfigurere SELinux policy
  7. Selinux-policy-målrettet - ligner på SELinux-policy
  8. Libselinux-utils - SELinux libselinux-verktøy som hjelper til med å administrere SELinux
  9. Setroubleshoot-server - verktøy for feilsøking av SELinux

For å bekrefte hvilke pakker som allerede er installert på systemet ditt, kan du bruke kommandoen rpm -qa og pipe resultatet til grep for SELinux som:

rpm -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-målrettet-3.14.3-54.el8_3.2.noark
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noark
libselinux-2.9-4.el8_3.x86_64

Dette skal gi deg en utgang av alle pakkene som er installert for SELinux-støtte

Hvis ikke alle SELinux-pakkene er installert på systemet ditt, bruk yum til å installere dem som vist i kommandoen nedenfor:

yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-målrettet libselinux-utils setroubleshoot-server setools setools-console mcstrans

SELinux-moduser og stater

La oss nå begynne å spille med SELinux, spesielt SELinux-modus.

SELinux-moduser

Når aktivert, kan SELinux være tre mulige moduser:

Håndhevingsmodus

Hvis SELinux-modus skal håndheves, vil det sikre at ingen uautorisert tilgang til systemet fra noen bruker eller prosesser nektes. Håndhevelsesmodus fører også logger over forsøk på uautorisert tilgang.

Tillatende modus

Tillatende modus fungerer som en delvis aktivert SELinux-tilstand. I denne modusen nektes ingen tilgang siden SELinux ikke håndhever sine policyer i denne modusen. Den tillatende modusen fører imidlertid en logg over ethvert forsøk på brudd på retningslinjene. Denne modusen er veldig effektiv for testing før den aktiveres fullt ut, ettersom brukere og komponenter fremdeles kan samhandle med systemet, men fortsatt samle logger. Dette lar deg finjustere systemet ditt på måter du ønsker.

Deaktivert modus

Deaktivert modus kan også sees på som en deaktivert tilstand der SELinux er deaktivert og ikke gir noen sikkerhet.

SELinux-stater

Når SELinux er installert på et system. Den kan ha binære tilstander: aktivert og deaktivert. For å se tilstanden til SELinux, bruk kommandoen:

getenforce
Funksjonshemmet

Ovennevnte utgang indikerer at SELinux for øyeblikket er deaktivert.

Du kan også bruke sestatus-kommandoen som vist nedenfor:

sestatus
SELinux-status: deaktivert

Aktiver og deaktiver SELinux

Status og konfigurasjon av SELinux håndteres av konfigurasjonsfilen i / etc / selinux / config. Du kan bruke cat-kommandoen til å vise innholdet.

cat / etc / selinux / config
#Denne filen kontrollerer tilstanden til SELinux på systemet.
# SELINUX = kan ta en av disse tre verdiene:
#enforcing - SELinux sikkerhetspolitikk håndheves.
#permissive - SELinux skriver ut advarsler i stedet for å håndheve.
#disabled - Ingen SELinux-policy er lastet inn.
SELINUX = håndheving
# SELINUXTYPE = kan ta en av disse tre verdiene:
# målrettet - Målrettede prosesser er beskyttet,
# minimum - Endring av målrettet policy. Bare utvalgte prosesser er beskyttet.
# mls - Sikkerhetsbeskyttelse på flere nivåer.
SELINUXTYPE = målrettet

Fra ovenstående utgang har vi to hoveddirektiver aktivert. SELINUX-direktivet spesifiserte modusen SELinux er konfigurert i. SELINUXTYPE-direktivet spesifiserer SELinux-policy-settet. Som standard bruker SELinux en målrettet policy som lar deg tilpasse tilgangskontrolltillatelser. Den andre policyen er multilevel security eller MLS.

Du kan finne minimumspolicy i noen versjoner.

cd / etc / selinux /
[ls -l
totalt 4
-rw-r - r-- 1 rotrot 548 16. februar 22:40 konfigur
drwxr-xr-x 1 rotrot 4096 16. februar 22:43 ml
-rw-r - r-- 1 rotrot 2425 21. juli 2020 semanage.konf
drwxr-xr-x 1 rotrot 4096 16. februar 22:40 målrettet

La oss nå se hvordan du aktiverer SELinux på systemet. Vi anbefaler at du først setter SELINUX-modus til tillatende og ikke håndheves.

nano / etc / selinux / config

Rediger nå SELINUX-direktivet som:

SELINUX = tillatelig

Når du har lagret filen, utsteder du en omstart av systemet.

start på nytt

MERKNAD: Vi anbefaler på det sterkeste å sette SELINUX-direktivet til tillatelig før SELinux håndheves.

Når du har startet systemet på nytt, må du se etter eventuelle logger rapportert av SELinux i / var / log / meldinger.

Deretter må du sørge for at du ikke har feil og håndheve SELinux ved å sette direktivet for å håndheve i / etc / selinux / config

Til slutt kan du se SELinux-statusen ved hjelp av sestatus-kommandoen:

SELinux-status: aktivert
SELinuxfs-montering: / sys / fs / selinux
SELinux rotkatalog: / etc / selinux
Lastet policynavn: målrettet
Gjeldende modus: håndheving
Modus fra konfigurasjonsfil: feil (suksess)
Policy MLS-status: aktivert
Policy deny_unknown status: tillatt
Kontroll av minnebeskyttelse: faktisk (sikker)
Maks. Kjernepolicyversjon: 31

Du kan også bruke kommandoen setenforce til å veksle mellom forskjellige SELinux-moduser. For eksempel, for å sette modusen til tillatende, bruk kommandoen:

setenforce tillatende

Denne modusen er midlertidig og vil bli gjenopprettet til en i konfigurasjonsfilen etter omstart.

sestatus SELinux-status: aktivert
SELinuxfs-montering: / sys / fs / selinux
SELinux rotkatalog: / etc / selinux
Lastet policynavn: målrettet
Gjeldende modus: tillatelig
Modus fra konfigurasjonsfil: håndheving
Policy MLS-status: aktivert
Policy deny_unknown status: tillatt
Kontroll av minnebeskyttelse: faktisk (sikker)
Maks. Kjernepolicyversjon: 31

SELinux policy og kontekst

For å unngå forvirring for SELinux-nybegynnere, vil vi ikke dykke dypt inn i hvordan SELinux-policyer implementeres, men bare berøre den for å gi deg en ide.

SELinux fungerer ved å implementere sikkerhetsretningslinjer. En SELinux-policy refererer til en regel som brukes til å definere tilgangsrettigheter for hvert objekt i systemet. Objekter refererer til brukere, prosesser, filer og roller.

Hver kontekst er definert i form av bruker: rolle: type: nivå.

For eksempel kan du opprette en katalog i hjemmekatalogen og se SELinux-sikkerhetskonteksten som vist i kommandoene nedenfor:

mkdir ~ / linuxhint_dir
ls -Z ~ / | grep linuxhint

Dette viser utdata som vist nedenfor:

unconfined_u: object_r: user_home_t: s0 linuxhint_dir

Du kan også finne andre kataloger med sikkerhetskontekstene som:

system: _u: object_r: user_home_t: s0

Du kan innse at ovennevnte utgang følger syntaksen til brukeren: rolle: type: nivå.

Konklusjon

Det var en nybegynnerveiledning for SELinux ved bruk av CentOS 8. Selv om opplæringen er designet for nybegynnere, er det mer enn nok å få føttene til å løpe i SELinux og fjerne den skremmende naturen til SELinux.

Takk for at du leser.

Hvordan vise FPS-teller i Linux-spill
Linux-spill fikk et stort press da Valve kunngjorde Linux-støtte for Steam-klient og spillene deres i 2012. Siden den gang har mange AAA- og indiespil...
Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...
Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...