SELinux kan virke skræmmende og meget svært at implementere i de fleste moderne systemer. Imidlertid har konfiguration af SELinux store fordele både ved håndhævelse af sikkerhed og fejlfinding.
Denne tutorial vil diskutere forskellige koncepter implementeret af SELinux og udforske forskellige praktiske metoder til implementering af SELinux.
BEMÆRK: Før vi begynder, er det godt at bruge kommandoerne i denne selvstudie som rodbruger eller bruger i sudoers-gruppen.
Installer SELinux-pakker
Lad os installere forskellige SELinux-pakker, som igen hjælper med at arbejde med SELinux-politikker.
Før vi fortsætter med at installere SELinux-pakkerne, er det godt, at vi kontrollerer, hvilke der er installeret på det aktuelle system.
I de fleste installationer af REHL-distributioner er nogle pakker installeret som standard. Disse pakker inkluderer:
- setools - denne pakke bruges til at overvåge logfiler, forespørgselspolitikker og kontekstfilhåndtering.
- policycoreutils-python - giver python-kernefunktioner til styring af SELinux
- policycoreutils - denne pakke giver også hjælpeprogrammer til styring af SELinux.
- mcstrans - mcstrans giver SELinux-oversættelsesdemon, som oversætter forskellige niveauer til nemme formater, som let kan forstås.
- setools-console - svarer til setools.
- Selinux-policy - det giver en reference til konfiguration af SELinux-politik
- Selinux-politik-målrettet - svarer til SELinux-politik
- Libselinux-utils - SELinux libselinux-værktøjer, der hjælper med at styre SELinux
- Setroubleshoot-server - værktøjer til fejlfinding af SELinux
For at kontrollere, hvilke pakker der allerede er installeret på dit system, kan du bruge kommandoen rpm -qa og pibe 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-politik-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 give dig en output af alle de pakker, der er installeret til SELinux-support
Hvis ikke alle SELinux-pakkerne er installeret på dit system, skal du bruge yum til at installere dem som vist i kommandoen nedenfor:
yum installere policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-målrettet libselinux-utils setroubleshoot-server setools setools-console mcstransSELinux-tilstande og stater
Lad os nu begynde at spille med SELinux, specifikt SELinux-tilstande.
SELinux-tilstande
Når det er aktiveret, kan SELinux være tre mulige tilstande:
- Håndhævelse
- Tilladende
- handicappet
Håndhævelsestilstand
Hvis SELinux-tilstand skal håndhæves, vil det sikre, at ingen uautoriseret adgang til systemet fra nogen bruger eller processer nægtes. Håndhævelsestilstand fører også logfiler over ethvert forsøg på uautoriseret adgang.
Tilladelig tilstand
Tilladende tilstand fungerer som en delvist aktiveret SELinux-tilstand. I denne tilstand nægtes ingen adgang, da SELinux ikke håndhæver sine politikker i denne tilstand. Den tilladende tilstand fører dog en log over ethvert forsøg på overtrædelse af politikker. Denne tilstand er meget effektiv til test, før den aktiveres fuldt ud, da brugere og komponenter stadig kan interagere med systemet, men stadig indsamler logfiler. Dette giver dig mulighed for at finjustere dit system på måder, du finder passende.
Deaktiveret tilstand
Deaktiveret tilstand kan også ses som en deaktiveret tilstand, hvor SELinux er deaktiveret og ikke tilbyder nogen sikkerhed.
SELinux-stater
Når SELinux er installeret på et system. Det kan have binære tilstande: aktiveret og deaktiveret. Brug kommandoen for at se tilstanden for SELinux:
getenforcehandicappet
Ovenstående output angiver, at SELinux i øjeblikket er deaktiveret.
Du kan også bruge sestatus-kommandoen som vist nedenfor:
sestatusSELinux-status: deaktiveret
Aktivér og deaktiver SELinux
Tilstande og konfiguration af SELinux håndteres af konfigurationsfilen i / etc / selinux / config. Du kan bruge kommandoen cat til at se dens indhold.
cat / etc / selinux / config#Denne fil styrer tilstanden af SELinux på systemet.
# SELINUX = kan tage en af disse tre værdier:
#enforcing - SELinux sikkerhedspolitik håndhæves.
#permissive - SELinux udskriver advarsler i stedet for at håndhæve.
#deaktiveret - Ingen SELinux-politik er indlæst.
SELINUX = håndhævelse
# SELINUXTYPE = kan tage en af disse tre værdier:
# målrettet - Målrettede processer er beskyttet,
# minimum - Ændring af målrettet politik. Kun udvalgte processer er beskyttet.
# mls - Sikkerhedsbeskyttelse på flere niveauer.
SELINUXTYPE = målrettet
Fra ovenstående output har vi to hoveddirektiver aktiveret. SELINUX-direktivet specificerede den tilstand, hvor SELinux er konfigureret. SELINUXTYPE-direktivet specificerer SELinux-politiksættet. Som standard bruger SELinux en målrettet politik, der giver dig mulighed for at tilpasse tilladelser til adgangskontrol. Den anden politik er sikkerhed på flere niveauer eller MLS.
Du finder muligvis minimumspolitik i nogle versioner.
cd / etc / selinux /[ls -l
i alt 4
-rw-r - r-- 1 rodrod 548 16. februar 22:40 konfigur
drwxr-xr-x 1 rodrod 4096 16. februar 22:43 ml
-rw-r - r-- 1 rodrod 2425 21. juli 2020 semanage.konf
drwxr-xr-x 1 rodrod 4096 16. februar 22:40 målrettet
Lad os nu se, hvordan du aktiverer SELinux på systemet. Vi anbefaler først at indstille SELINUX-tilstanden til tilladende og ikke håndhæves.
nano / etc / selinux / configRediger nu SELINUX-direktivet som:
SELINUX = tilladeligNår du har gemt filen, skal du udstede en systemgenstart.
genstartBEMÆRK: Vi anbefaler stærkt at indstille SELINUX-direktivet til tilladeligt, før SELinux håndhæves.
Når du har genstartet systemet, skal du kontrollere, om der er rapporteret af SELinux i / var / log / meddelelser.
Dernæst skal du sikre dig, at du ikke har nogen fejl, og håndhæve SELinux ved at indstille direktivet til at håndhæve i / etc / selinux / config
Endelig kan du se SELinux-status ved hjælp af sestatus-kommandoen:
SELinux-status: aktiveretSELinuxfs mount: / sys / fs / selinux
SELinux rodmappe: / etc / selinux
Indlæst politiknavn: målrettet
Aktuel tilstand: håndhævelse
Tilstand fra konfigurationsfil: fejl (succes)
Politik MLS-status: aktiveret
Politik beny_unknown status: tilladt
Hukommelsesbeskyttelseskontrol: faktisk (sikker)
Max kernepolitisk version: 31
Du kan også bruge kommandoen setenforce til at skifte mellem forskellige SELinux-tilstande. For eksempel for at indstille tilstanden til tilladende skal du bruge kommandoen:
setenforce tilladeligDenne tilstand er midlertidig og gendannes til en i konfigurationsfilen efter en genstart.
sestatus SELinux-status: aktiveretSELinuxfs mount: / sys / fs / selinux
SELinux rodmappe: / etc / selinux
Indlæst politiknavn: målrettet
Aktuel tilstand: tilladelig
Tilstand fra konfigurationsfil: håndhævelse
Politik MLS-status: aktiveret
Politik beny_unknown status: tilladt
Hukommelsesbeskyttelseskontrol: faktisk (sikker)
Max kernepolitik version: 31
SELinux-politik og kontekst
For at undgå forvirring for SELinux-begyndere dykker vi ikke dybt ned i, hvordan SELinux-politikker implementeres, men berører blot det for at give dig en idé.
SELinux fungerer ved at implementere sikkerhedspolitikker. En SELinux-politik henviser til en regel, der bruges til at definere adgangsrettigheder for hvert objekt i systemet. Objekter refererer til brugere, processer, filer og roller.
Hver kontekst er defineret i form af brugeren: rolle: type: niveau.
For eksempel skal du oprette en mappe i din hjemmekatalog og se dens SELinux sikkerhedskontekst som vist i kommandoerne nedenfor:
mkdir ~ / linuxhint_dirls -Z ~ / | grep linuxhint
Dette viser output som vist nedenfor:
unconfined_u: object_r: user_home_t: s0 linuxhint_dirDu kan også finde andre mapper med sikkerhedskontekster som:
system: _u: object_r: user_home_t: s0Du kan indse, at ovenstående output følger brugerens syntaks: rolle: type: niveau.
Konklusion
Det var en begyndervejledning til SELinux ved hjælp af CentOS 8. Selvom vejledningen er designet til begyndere, er det mere end nok at få dine fødder i gang i SELinux og fjerne SELinuxs skræmmende natur.
Tak fordi du læste.