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:
- setools - denne pakken brukes til å overvåke logger, spørringspolicyer og kontekstfilbehandling.
- policycoreutils-python - gir python-kjerneverktøy for administrering av SELinux
- policycoreutils - denne pakken gir også verktøy for å administrere SELinux.
- mcstrans - mcstrans gir SELinux-oversettelsesdemon, som oversetter forskjellige nivåer til enkle formater som lett kan forstås.
- setools-console - ligner på setools.
- Selinux-policy - den gir en referanse for å konfigurere SELinux policy
- Selinux-policy-målrettet - ligner på SELinux-policy
- Libselinux-utils - SELinux libselinux-verktøy som hjelper til med å administrere SELinux
- 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 selinuxlibselinux-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 mcstransSELinux-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åndheving
- Tillatende
- Funksjonshemmet
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:
getenforceFunksjonshemmet
Ovennevnte utgang indikerer at SELinux for øyeblikket er deaktivert.
Du kan også bruke sestatus-kommandoen som vist nedenfor:
sestatusSELinux-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 / configRediger nå SELINUX-direktivet som:
SELINUX = tillateligNår du har lagret filen, utsteder du en omstart av systemet.
start på nyttMERKNAD: 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: aktivertSELinuxfs-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 tillatendeDenne modusen er midlertidig og vil bli gjenopprettet til en i konfigurasjonsfilen etter omstart.
sestatus SELinux-status: aktivertSELinuxfs-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_dirls -Z ~ / | grep linuxhint
Dette viser utdata som vist nedenfor:
unconfined_u: object_r: user_home_t: s0 linuxhint_dirDu kan også finne andre kataloger med sikkerhetskontekstene som:
system: _u: object_r: user_home_t: s0Du 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.