Det er flere forskjellige måter SELinux kan fungere på. Dette er definert av SELinux-policyen. I denne guiden vil du lære mer om SELinux-policyer og hvordan du setter en policy i SELinux.
Oversikt over SELinux-policyer
La oss få en rask oversikt over SELinux og dets policyer. SELinux er et akronym for “Security-Enhanced Linux.”Den består av en serie sikkerhetsoppdateringer til Linux-kjernen. SELinux ble opprinnelig utviklet av National Security Agency (NSA) og gitt ut til open source-utviklingssamfunnet i 2000 under GPL-lisensen. Den ble slått sammen med hovedlinjen Linux-kjernen i 2003.
SELinux gir MAC (obligatorisk tilgangskontroll) i stedet for standard DAC (diskresjonær tilgangskontroll). Dette muliggjør implementering av noen sikkerhetsretningslinjer som ellers ikke ville være mulig å implementere.
SELinux-policyer er sett med regler som styrer SELinux-sikkerhetsmotoren. En policy definerer typer for filobjekter og domener for prosesser. Roller brukes til å begrense tilgangen til domener. Brukeridentiteter bestemmer hvilke roller som kan oppnås.
Det er to SELinux-policyer tilgjengelige:
- Målrettet: Standardpolicyen. Implementerer tilgangskontroll til målrettede prosesser. Prosessene kjøres i et begrenset domene der prosessen har begrenset tilgang til filer. Hvis en begrenset prosess er kompromittert, reduseres skaden. Når det gjelder tjenester, plasseres bare spesifikke tjenester i disse domenene.
- MLS: Står for sikkerhet på flere nivåer. Sjekk ut Red Hat-dokumentasjonen på SELinux MLS-policyen.
Prosesser som ikke er målrettet, kjøres i et ikke-begrenset domene. Prosesser som kjører på ikke-begrensede domener har nesten full tilgang. Hvis en slik prosess er kompromittert, tilbyr SELinux ingen avbøtende virkninger. Angriperen kan få tilgang til hele systemet og ressursene. Imidlertid gjelder fortsatt DAC-regler for de ikke-begrensede domenene.
Følgende er en kort liste med eksempler på ikke-begrensede domener:
- initrc_t domene: init programmer
- kernel_t domain: kjerneprosesser
- unconfined_t domain: brukere logget inn på Linux-systemet
Endrer SELinux-policy
Følgende eksempler er utført i CentOS 8. Alle kommandoene i denne artikkelen kjøres som rotbruker. For andre distribusjoner, vennligst sjekk den aktuelle opplæringen om hvordan du aktiverer SELinux.
For å endre en policy i SELinux, start med å sjekke SELinux-statusen. Standardstatusen skal være SELinux aktivert i "Enforcing" -modus med "målrettet" policy.
For å endre SELinux-policyen, åpne SELinux-konfigurasjonsfilen i din favoritt tekstredigerer.
Her er målet vårt "SELINUXTYPE" -variabelen som definerer SELinux-policyen. Som du kan se, er standardverdien “målrettet.”
Alle trinn demonstrert i dette eksemplet er utført i CentOS 8. Når det gjelder CentOS, blir ikke MLS-policyen installert som standard. Dette vil sannsynligvis også være tilfelle i andre distribusjoner. Lær hvordan du konfigurerer SELinux på Ubuntu her. Sørg for å installere programmet først. I tilfelle Ubuntu, CentOS, openSUSE, Fedora, Debian og andre, er pakkenavnet “selinux-policy-mls.”
$ dnf installer selinux-policy-mls
I dette tilfellet vil vi bytte policyen til MLS. Endre verdien på variabelen tilsvarende.
Lagre filen og avslutt redigeringsprogrammet. For å sette disse endringene i kraft, må du starte systemet på nytt.
$ omstartBekreft endringen ved å utstede følgende.
$ sestatusEndring av SELinux-modus
SELinux kan operere i tre forskjellige moduser. Disse modusene bestemmer hvordan politikken håndheves.
- Håndheves: enhver handling mot policyen blokkeres og rapporteres i revisjonsloggen.
- Tillatende: enhver handling mot policyen rapporteres bare i revisjonsloggen.
- Deaktivert: SELinux er deaktivert.
For å endre modus midlertidig i SELinux, bruk setenforce-kommandoen. Hvis systemet startes på nytt, vil systemet gå tilbake til standardinnstillingen.
$ setenforce Håndheving$ setenforced Tillatelig
For å endre modus permanent i SELinux, må du tilpasse SELinux-konfigurasjonsfilen.
Lagre og lukk redigeringsprogrammet. Start systemet på nytt for å sette endringene i kraft.
Du kan bekrefte endringen ved hjelp av sestatus-kommandoen.
Konklusjon
SELinux er en kraftig mekanisme for å håndheve sikkerhet. Forhåpentligvis hjalp denne guiden deg med å lære hvordan du konfigurerer og administrerer oppførselen til SELinux.
Glad databehandling!