Det finns flera olika sätt SELinux kan fungera på. Detta definieras av SELinux-policyn. I den här guiden lär du dig mer om SELinux-policyer och hur du ställer in en policy i SELinux.
SELinux policyöversikt
Låt oss ta en snabb genomgång av SELinux och dess policyer. SELinux är en förkortning för “Security-Enhanced Linux.”Den består av en serie säkerhetsuppdateringar till Linux-kärnan. SELinux utvecklades ursprungligen av National Security Agency (NSA) och släpptes till utvecklingssamhället med öppen källkod 2000 under GPL-licensen. Det slogs samman med huvudlinjen Linux-kärnan 2003.
SELinux tillhandahåller MAC (obligatorisk åtkomstkontroll) snarare än standard DAC (diskretionär åtkomstkontroll). Detta möjliggör implementering av vissa säkerhetspolicyer som annars inte skulle kunna genomföras.
SELinux-policyer är uppsättningar regler som styr SELinux-säkerhetsmotorn. En policy definierar typer för filobjekt och domäner för processer. Roller används för att begränsa åtkomst till domäner. Användaridentiteter avgör vilka roller som kan uppnås.
Det finns två SELinux-policyer tillgängliga:
- Inriktad: Standardpolicyn. Implementerar åtkomstkontroll till riktade processer. Processerna körs i en begränsad domän där processen har begränsad åtkomst till filer. Om en begränsad process äventyras mildras skadan. När det gäller tjänster placeras endast specifika tjänster i dessa domäner.
- MLS: Står för säkerhet på flera nivåer. Kolla in Red Hat-dokumentationen om SELinux MLS-policyn.
Processer som inte är inriktade kommer att köras i en obegränsad domän. Processer som körs i obegränsade domäner har nästan fullständig åtkomst. Om en sådan process äventyras erbjuder SELinux ingen begränsning. Angriparen kan få tillgång till hela systemet och resurser. DAC-regler gäller dock fortfarande för de obegränsade domänerna.
Följande är en kort lista med exempel på okonfigurerade domäner:
- initrc_t-domän: init-program
- kernel_t domain: kärnprocesser
- unconfined_t domain: användare som är inloggade på Linux-systemet
Ändrar SELinux-policy
Följande exempel utförs i CentOS 8. Alla kommandon i den här artikeln körs som rotanvändare. För andra distributioner, kolla in lämplig handledning om hur du aktiverar SELinux.
För att ändra en policy i SELinux, börja med att kontrollera SELinux-status. Standardstatusen ska vara SELinux-aktiverad i "Enforcing" -läget med "riktad" policy.
För att ändra SELinux-policyn, öppna SELinux-konfigurationsfilen i din favorittextredigerare.
Här är vårt mål variabeln "SELINUXTYPE" som definierar SELinux-policyn. Som du kan se är standardvärdet ”riktat.”
Alla steg som visas i detta exempel utförs i CentOS 8. När det gäller CentOS installeras inte MLS-policyn som standard. Detta kommer sannolikt att vara fallet i andra distributioner. Lär dig hur du konfigurerar SELinux på Ubuntu här. Var noga med att installera programmet först. När det gäller Ubuntu, CentOS, openSUSE, Fedora, Debian och andra är paketnamnet ”selinux-policy-mls.”
$ dnf installera selinux-policy-mls
I det här fallet byter vi policyn till MLS. Ändra värdet på variabeln i enlighet med detta.
Spara filen och avsluta redigeraren. För att genomföra dessa ändringar måste du starta om systemet.
$ omstartVerifiera ändringen genom att utfärda följande.
$ sestatusÄndra SELinux-lägen
SELinux kan fungera i tre olika lägen. Dessa lägen avgör hur policyn tillämpas.
- Tvingas: alla åtgärder mot policyn blockeras och rapporteras i granskningsloggen.
- Tillåtande: alla åtgärder mot policyn rapporteras endast i granskningsloggen.
- Inaktiverad: SELinux är inaktiverad.
För att tillfälligt ändra läge i SELinux använder du kommandot setenforce. Om systemet startas om kommer systemet att återgå till standardinställningen.
$ setenforce Enforcing$ setenforced Tillåtet
För att permanent ändra läget i SELinux måste du justera SELinux-konfigurationsfilen.
Spara och stäng redigeraren. Starta om systemet för att genomföra ändringarna.
Du kan verifiera ändringen med kommandot sestatus.
Slutsats
SELinux är en kraftfull mekanism för att säkerställa säkerheten. Förhoppningsvis hjälpte den här guiden dig att lära dig att konfigurera och hantera SELinuxs beteende.
Happy computing!