SELinux

SELinux för nybörjare som använder CentOS

SELinux för nybörjare som använder CentOS
Utvecklad av NSA för att förhindra skadlig åtkomst och intrång, Security-Enhanced Linux eller SELinux är en avancerad åtkomstkontrollfunktion som levereras med de flesta moderna Linux-distributioner. SELinux definieras som Mandatory Access Control (MAC) -systemet som utvecklats som en ersättning för Discretionary Access Control-systemet (DAC).

SELinux kan verka skrämmande och mycket svårt att implementera i de flesta moderna system. Konfigurering av SELinux har dock stora fördelar både för att säkerställa och felsöka.

Denna handledning diskuterar olika koncept som implementeras av SELinux och utforskar olika praktiska metoder för att implementera SELinux.

OBS: Innan vi börjar är det bra att använda kommandona i den här självstudien som rotanvändare eller som användare inom sudoers-gruppen.

Installera SELinux-paket

Låt oss installera olika SELinux-paket, vilket i sin tur hjälper till att arbeta med SELinux-policyer.

Innan vi fortsätter att installera SELinux-paketen är det bra att vi kontrollerar vilka som är installerade på det aktuella systemet.

I de flesta installationer av REHL-distributioner är vissa paket installerade som standard. Dessa paket inkluderar:

  1. setools - det här paketet används för övervakning av loggar, frågeställningar och kontextfilhantering.
  2. policycoreutils-python - tillhandahåller python-kärnverktyg för hantering av SELinux
  3. policycoreutils - detta paket ger också verktyg för hantering av SELinux.
  4. mcstrans - mcstrans tillhandahåller SELinux-översättningsdemon, som översätter olika nivåer till enkla format som lätt kan förstås.
  5. setools-console - liknar setools.
  6. Selinux-policy - den ger en referens för konfigurering av SELinux-policy
  7. Selinux-policy-riktad - liknar SELinux-policy
  8. Libselinux-utils - SELinux libselinux-verktyg som hjälper till att hantera SELinux
  9. Setroubleshoot-server - verktyg för felsökning av SELinux

För att verifiera vilka paket som redan är installerade på ditt system kan du använda kommandot rpm -qa och pipa resultatet till grep för 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-riktad-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

Detta ska ge dig en utdata av alla paket som är installerade för SELinux-support

Om inte alla SELinux-paket är installerade på ditt system, använd yum för att installera dem som visas i kommandot nedan:

yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-riktad libselinux-utils setroubleshoot-server setools setools-console mcstrans

SELinux-lägen och tillstånd

Låt oss nu börja spela med SELinux, särskilt SELinux-lägen.

SELinux-lägen

När det är aktiverat kan SELinux vara tre möjliga lägen:

Tillämpningsläge

Om SELinux-läge ska tillämpas kommer det att säkerställa att ingen obehörig åtkomst till systemet av någon användare eller processer nekas. Tillämpningsläge håller också loggar över alla försök till obehörig åtkomst.

Tillåtet läge

Tillåtet läge fungerar som ett delvis aktiverat SELinux-tillstånd. I detta läge nekas ingen åtkomst eftersom SELinux inte verkställer sina policyer i detta läge. Det tillåtna läget registrerar dock alla försök till policyöverträdelser. Detta läge är mycket effektivt för testning innan det aktiveras helt eftersom användare och komponenter fortfarande kan interagera med systemet men fortfarande samlar in loggar. Detta gör att du kan finjustera ditt system på sätt som du tycker passar.

Inaktiverat läge

Inaktiverat läge kan också ses som ett inaktiverat tillstånd där SELinux är inaktiverat och inte erbjuder någon säkerhet.

SELinux-stater

När SELinux är installerat på ett system. Det kan ha binära tillstånd: aktiverat och inaktiverat. För att se tillståndet för SELinux, använd kommandot:

getenforce
Inaktiverad

Ovanstående utdata indikerar att SELinux för närvarande är inaktiverat.

Du kan också använda sestatus-kommandot enligt nedan:

sestatus
SELinux-status: inaktiverad

Aktivera och inaktivera SELinux

Tillstånd och konfiguration av SELinux hanteras av konfigurationsfilen i / etc / selinux / config. Du kan använda kommandot cat för att visa dess innehåll.

cat / etc / selinux / config
#Den här filen kontrollerar tillståndet för SELinux i systemet.
# SELINUX = kan ta ett av dessa tre värden:
#enforcing - SELinux säkerhetspolicy tillämpas.
#permissive - SELinux skriver ut varningar istället för att verkställa.
#disabled - Ingen SELinux-policy har laddats.
SELINUX = verkställighet
# SELINUXTYPE = kan ta ett av dessa tre värden:
# riktad - Riktade processer är skyddade,
# minimum - Ändring av riktad policy. Endast utvalda processer är skyddade.
# mls - Säkerhetsskydd på flera nivåer.
SELINUXTYPE = riktad

Från ovanstående produktion har vi två huvuddirektiv aktiverade. SELINUX-direktivet specificerade det läge i vilket SELinux är konfigurerat. SELINUXTYPE-direktivet anger SELinux-policyuppsättningen. Som standard använder SELinux en riktad policy som låter dig anpassa behörigheter för åtkomstkontroll. Den andra policyn är säkerhet på flera nivåer eller MLS.

Du kan hitta minimipolicy i vissa versioner.

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

Låt oss nu se hur du aktiverar SELinux på systemet. Vi rekommenderar att du först ställer in SELINUX-läget till tillåtet och inte verkställs.

nano / etc / selinux / config

Redigera nu SELINUX-direktivet som:

SELINUX = tillåtet

När du har sparat filen ska du starta om systemet.

starta om

OBS: Vi rekommenderar starkt att du ställer in SELINUX-direktivet på tillåtet innan SELinux tillämpas.

När du har startat om systemet, leta efter eventuella loggar som rapporterats av SELinux i / var / log / meddelanden.

Se till att du inte har några fel och genomdriva SELinux genom att ställa in direktivet för att genomdriva i / etc / selinux / config

Slutligen kan du visa SELinux-status med kommandot sestatus:

SELinux-status: aktiverad
SELinuxfs-montering: / sys / fs / selinux
SELinux rotkatalog: / etc / selinux
Laddat policynamn: riktat
Aktuellt läge: verkställighet
Läge från konfigurationsfil: fel (framgång)
Policy MLS-status: aktiverad
Policy förnekad_unknown-status: tillåten
Kontroll av minneskydd: faktisk (säker)
Max kärnpolicyversion: 31

Du kan också använda kommandot setenforce för att växla mellan olika SELinux-lägen. För att till exempel ställa in läget till tillåtet, använd kommandot:

setenforce tillåtet

Detta läge är tillfälligt och kommer att återställas till ett i konfigurationsfilen efter en omstart.

sestatus SELinux-status: aktiverad
SELinuxfs-montering: / sys / fs / selinux
SELinux rotkatalog: / etc / selinux
Laddat policynamn: riktat
Aktuellt läge: tillåtet
Läge från konfigurationsfil: verkställighet
Policy MLS-status: aktiverad
Policy deny_unknown status: tillåtet
Kontroll av minneskydd: faktisk (säker)
Max kärnpolicyversion: 31

SELinux Policy och sammanhang

För att undvika förvirring för nybörjare i SELinux kommer vi inte att dyka djupt in i hur SELinux-policyer implementeras utan helt enkelt beröra det för att ge dig en idé.

SELinux fungerar genom att implementera säkerhetspolicyer. En SELinux-policy hänvisar till en regel som används för att definiera åtkomsträttigheter för varje objekt i systemet. Objekt hänvisar till användare, processer, filer och roller.

Varje sammanhang definieras i form av användaren: roll: typ: nivå.

Skapa till exempel en katalog i din hemkatalog och se dess SELinux-säkerhetskontext som visas i kommandona nedan:

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

Detta visar utdata som visas nedan:

unconfined_u: object_r: user_home_t: s0 linuxhint_dir

Du kan också hitta andra kataloger med säkerhetskontexterna som:

system: _u: object_r: user_home_t: s0

Du kanske inser att ovanstående utdata följer användarens syntax: roll: typ: nivå.

Slutsats

Det var en nybörjarhandledning för SELinux med CentOS 8. Även om handledningen är utformad för nybörjare är det mer än tillräckligt för att få dina fötter att springa i SELinux och ta bort SELinuxs skrämmande natur.

Tack för att du läste.

Mus Hur man använder Xdotool för att stimulera musklick och tangenttryckningar i Linux
Hur man använder Xdotool för att stimulera musklick och tangenttryckningar i Linux
Xdotool är ett ledigt verktyg för öppen källkod för simulering av musklick och tangenttryckningar. Den här artikeln kommer att täcka en kort guide om ...
Mus Topp 5 Ergonomiska datormusprodukter för Linux
Topp 5 Ergonomiska datormusprodukter för Linux
Ger långvarig datoranvändning smärta i handleden eller fingrarna? Lider du av styva leder och måste ständigt skaka hand? Känner du en brännande smärta...
Mus Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
De flesta Linux-distributioner levereras med "libinput" -bibliotek som standard för att hantera inmatningshändelser i ett system. Den kan bearbeta inm...