Innan du börjar måste du lära dig följande begrepp:
Ämnen: processer eller användare.
Föremål: filer eller filsystem.
Typ verkställighet: på SELinux har alla ämnen och objekt en typidentifierare som slutar med _t. “Typhantering är uppfattningen att åtkomst i ett obligatoriskt system för åtkomstkontroll styrs genom godkännande baserat på en uppsättning regler för ämnesåtkomst-objekt.
I SELinux implementeras typhantering baserat på etiketterna för ämnena och objekten. SELinux i sig har inte regler som säger / bin / bash kan köra / bin / ls. Istället har det regler som liknar “Processer med etiketten user_t kan köra vanliga filer märkta bin_t.”(Källa https: // wiki.gentoo.org / wiki / SELinux / Type_enforcement)
Diskretionär åtkomstkontroll (DAC): DAC är ägar- och behörighetssystemet som vi använder i Linux för att hantera åtkomst till objekt som filer eller kataloger. Diskretionär åtkomstkontroll har inget att göra med SELinux och är ett annat säkerhetslager. För ytterligare information om DAC, besök Linux Permissions Explained.
Obligatorisk åtkomstkontroll (MAC): är en typ av åtkomstkontroll som begränsar ämnesåtkomstinteraktion med objekt. I motsats till DAC med MAC kan användare inte ändra policy.
Ämnen och objekt har ett säkerhetskontext (säkerhetsattribut) som övervakas av SELinux och administreras i enlighet med säkerhetspolicyer enligt regler som ska tillämpas.
Rollbaserad åtkomstkontroll (RBAC): är en typ av åtkomstkontroll baserad på roller, den kan kombineras med både MAC och DAC. RBAC-policyer gör hantering av många användare inom en organisation enkel i motsats till DAC som kan härledas i enskilda behörighetsuppdrag, det underlättar granskning, konfigurering och policyuppdateringar.
Tillämpningsläge: SELinux begränsar ämnens tillgång till objekt baserat på policyer.
Tillåtet läge: SELinux loggar bara olaglig aktivitet.
SELinux-funktioner inkluderar (Wikipedia-lista):
- Ren åtskillnad mellan policy och verkställighet
- Väl definierade policygränssnitt
- Stöd för applikationer som frågar efter policyn och tillämpar åtkomstkontroll (till exempel, crond kör jobb i rätt sammanhang)
- Oberoende av specifika policyer och policyspråk
- Oberoende av specifika säkerhetsmärkesformat och innehåll
- Individuella etiketter och kontroller för kärnobjekt och tjänster
- Stöd för policyändringar
- Separata åtgärder för att skydda systemintegritet (domänstyp) och datakonfidentialitet (säkerhet på flera nivåer)
- Flexibel policy
- Kontrollerar över processinitiering och arv och programkörning
- Kontrollerar över filsystem, kataloger, filer och öppna filbeskrivare
- Kontrollerar uttag, meddelanden och nätverksgränssnitt
- Kontroll över användningen av "funktioner"
- Cachad information om åtkomstbeslut via Access Vector Cache (AVC)
- Standard-neka policy (allt som inte uttryckligen anges i policyn tillåts inte).
Källa: https: // sv.wikipedia.org / wiki / Security-Enhanced_Linux # Funktioner
Notera: användare är olika på SELinux och passwd.
Konfigurera SELinux på Debian 10 Buster
I mitt fall inaktiverades SELinux på Debian 10 Buster. Att hålla SELinux aktiverat är ett av de grundläggande stegen för att hålla en Linux-enhet säker. För att känna till statusen för SELinux på din enhet kör du kommandot:
/ # sestatus
Jag hittade att SELinux var inaktiverat, för att aktivera det måste du installera några paket innan, efter en apt uppdatering, kör kommandot:
/ # apt installera selinux-basics selinux-policy-default
På begäran tryck Y för att fortsätta installationsprocessen. Springa apt uppdatering efter installationen.
För att aktivera SELinux kör du följande kommando:
/ # selinux-aktivera
Som du ser var SELinux korrekt aktiverat. För att tillämpa alla ändringar måste du starta om ditt system enligt instruktionerna.
Kommandot getenforce kan användas för att lära sig SELinux-status, om det är under tillåtet eller verkställande läge:
/ # getenforce
Det tillåtna läget kan ersättas genom att ställa in parametern 1 (tillåtet är 0). Du kan också kontrollera läget i konfigurationsfilen med kommandot mindre:
/ # less / etc / selinux / config
Produktion:
Som du kan se visar konfigurationsfiler det tillåtna läget. Tryck F att sluta.
För att se en fil eller process säkerhetskontext kan du använda flaggan -Z:
/ # ls -Z
Etikettformatet är användare: roll: typ: nivå.
semanage - SELinux verktyg för policyhantering
semanage är SELinux Policy Management-verktyget. Det gör det möjligt att hantera booleaner (som gör det möjligt att modifiera processen på språng), användarroller och nivåer, nätverksgränssnitt, policymoduler och mer. Semanage gör det möjligt att konfigurera SELinux-policyer utan att behöva kompilera källor. Semanage tillåter länken mellan OS- och SELinux-användare och vissa säkerhetskontexter för objekt.
För ytterligare information om semanage, besök mansidan på: https: // linux.dö.nät / man / 8 / semanage
Slutsats och anteckningar
SELinux är ett ytterligare sätt att administrera åtkomst från processer till systemresurser som filer, partitioner, kataloger, etc. Det gör det möjligt att hantera massiva privilegier beroende på roll, nivå eller typ. Att ha det aktiverat är ett måste som säkerhetsåtgärd och när det används är det viktigt att komma ihåg dess säkerhetslager och att starta om systemet efter att ha aktiverat eller inaktiverat det (inaktivera rekommenderas inte alls förutom specifika tester). Ibland blockeras en filåtkomst trots att system- eller OS-behörigheter beviljas eftersom SELinux förbjuder det.
Jag hoppas att du tyckte att den här artikeln om SELinux var användbar som introduktion till denna säkerhetslösning, fortsätt följa LinuxHint för fler tips och uppdateringar om Linux och nätverk.
Relaterade artiklar:
- SELinux på Ubuntu-handledning
- Så här inaktiverar du SELinux på CentOS 7
- Kontrollista för säkerhetshärdning av Linux
- AppArmor-profiler på Ubuntu