Sådan installeres SELinux på Ubuntu 24.04/22.04/20.04

Sikkerhedsforbedret Linux (SELinux) er afgørende for styring af adgangskontrolsikkerhedspolitikker på Linux-systemer. Primært brugt af systemadministratorer, udviklere og sikkerhedsprofessionelle, tilbyder SELinux robust sikkerhed på kerneniveau. Dens implementering på Ubuntu-servere, især for 24.04, 22.04 og 20.04 LTS-udgivelserne, styrker sikkerheden af ​​disse systemer.

Nøglefunktioner i SELinux, der forbedrer sikkerheden i en Ubuntu inkluderer:

  • Obligatorisk adgangskontrol (MAC): I modsætning til traditionelle diskretionære adgangskontrolsystemer håndhæver SELinux strenge politikregler, der begrænser systemprocesser og brugere, hvilket mindsker risikoen for uautoriseret adgang.
  • Finkornet kontrol: Det giver detaljeret kontrol over systemprocesser og deres interaktioner med filer og andre ressourcer.
  • Forbedrede sikkerhedspolitikker: Skræddersyede sikkerhedspolitikker hjælper med at beskytte mod eksterne og interne trusler.
  • Revision og logning: Omfattende logningsfunktioner letter overvågning og sporing af sikkerhedsrelaterede hændelser, hvilket hjælper med hurtig problemidentifikation og løsning.

Integrering af SELinux i et Ubuntu-servermiljø, især for dem, der administrerer kritiske applikationer eller følsomme data, forbedrer systemsikkerheden markant. Denne vejledning, der fokuserer på installation og grundlæggende brug af SELinux, har til formål at give en ligetil tilgang til at udnytte disse sikkerhedsfordele.

Deaktiver AppArmor Service

For at sikre kompatibilitet skal du bekræfte, om AppArmor er aktiv, da det kan forårsage konflikter at køre AppArmor og SELinux sammen. Bestem AppArmors status med:

sudo systemctl status apparmor

Hvis AppArmor er funktionsdygtig, deaktiver den for at forhindre enhver interferens med SELinux. Udfør følgende kommando for at deaktivere AppArmor:

sudo systemctl disable apparmor --now

Installer SELinux via APT Command

Denne fase involverer installation af nøgle SELinux-pakker: policycoreutils, selinux-utils, og selinux-basics. Disse er vigtige for at administrere SELinux-politikker og give grundlæggende SELinux-support.

Start installationen med denne kommando:

sudo apt install policycoreutils selinux-utils selinux-basics

Udførelse af dette vil installere de nødvendige SELinux-pakker på dit Ubuntu-system.

Aktiver SELinux

Når du har installeret de nødvendige pakker, skal du aktivere SELinux for at sikre, at den indlæses ved opstart. Denne aktivering er afgørende for at aktivere SELinux's sikkerhedsfunktioner. Kør følgende kommando med root-rettigheder:

sudo selinux-activate

Dette trin konfigurerer dit system til at initialisere SELinux under opstartsprocessen.

Gennemtving SELinux-tilstand

At indstille SELinux til dens håndhævelsestilstand er afgørende. I denne tilstand anvender SELinux aktivt sine sikkerhedspolitikker og nægter adgang baseret på foruddefinerede regler. Skift til håndhævelsestilstand ved hjælp af:

sudo selinux-config-enforcing

Denne handling ændrer din SELinux-konfiguration til at fungere i håndhævelsestilstand.

Systemgenstart for SELinux-aktivering

Afslut opsætningsprocessen ved at genstarte dit system. Dette sikrer, at alle ændringer anvendes, og SELinux begynder at fungere i den indstillede tilstand:

sudo reboot

Efter genstart vil dit system køre med SELinux installeret, aktiveret og konfigureret til at håndhæve dets sikkerhedspolitikker. De følgende afsnit vil guide dig i yderligere tilpasning af SELinux til at passe til dine sikkerhedsbehov.

Konfigurer SELinux

Forståelse af SELinux-tilstande

SELinux fungerer i tre forskellige tilstande:

  • Håndhævelsestilstand: Standardindstillingen, hvor SELinux strengt håndhæver sine sikkerhedspolitikker og nægter adgang i henhold til de etablerede regler.
  • Tilladende tilstand: Her logger SELinux politikovertrædelser, men håndhæver dem ikke aktivt. Denne tilstand er nyttig til test og fejlfindingspolitikker.
  • Deaktiveret tilstand: I denne tilstand er SELinux helt slukket, uden at der anvendes nogen politikker.

Rediger SELinux-konfigurationsfilen

For at skræddersy SELinux-indstillinger skal du redigere /etc/selinux/config fil. Brug en foretrukken teksteditor, såsom nano, til denne opgave:

sudo nano /etc/selinux/config

Rediger inde i filen SELINUX linje for at indstille din foretrukne tilstand. For at aktivere håndhævelsestilstand:

SELINUX=enforcing

Anvendelse af konfigurationsændringer

For at ændringerne træder i kraft, skal du genstarte dit system:

sudo reboot

Tilpasning af yderligere SELinux-konfigurationsmuligheder

SELinux tilbyder flere tilpasningsmuligheder:

  • SETLOCALDEFS: Bestemmer brugen af ​​lokalt definerede filkontekster. For at bruge standardkontekster skal du indstille dette til 0. Rediger /etc/selinux/config fil i overensstemmelse hermed:
SETLOCALDEFS=0
  • SELINUXTYPE: Indstiller politiktypen. Den almindelige politiktype "målrettet" fokuserer på at beskytte specifikke systemtjenester. For at indstille dette skal du opdatere SELINUXTYPE linje i konfigurationsfilen:
SELINUXTYPE=targeted

Eksempel: Konfiguration af SELinux til en webserver

Overvej at konfigurere SELinux til at tillade HTTP- og HTTPS-trafik på en Ubuntu-webserver. Det semanage kommando bruges til politikstyring.

Først skal du installere semanage nytte:

sudo apt install policycoreutils-python-utils

Tillad derefter HTTP-trafik på port 80:

sudo semanage port -a -t http_port_t -p tcp 80

Og HTTPS-trafik på port 443:

sudo semanage port -a -t http_port_t -p tcp 443

Disse kommandoer opdaterer SELinux-politikken, så din webserver kan modtage indgående forbindelser på porte 80 (HTTP) og 443 (HTTPS), hvilket sikrer sikker webservicedrift.

Bekræfter SELinux-tilstand

Kontrol af SELinux-status efter genstart

Efter at have genstartet dit Ubuntu-system, er det afgørende at bekræfte driftsstatus for SELinux. Denne verifikation sikrer, at systemet anvender SELinux-konfigurationsindstillingerne korrekt.

Udfør følgende kommando for at kontrollere den aktuelle status:

sestatus

Denne kommando giver omfattende detaljer om SELinux, inklusive dets aktuelle driftsstatus, den tilstand, den kører i (håndhæver, tilladelig eller deaktiveret), og den politik, der bruges. Krydsreference dette output med dine indstillinger i /etc/selinux/config fil for at bekræfte, at SELinux fungerer efter hensigten.

Fejlfinding af almindelige SELinux-problemer

Gendannelse af standardfilkontekster

Forkerte filkontekster fører ofte til adgangsnægtelser af SELinux, hvilket forstyrrer applikationens funktionalitet. For at rette op på dette, brug restorecon kommando. For eksempel for at løse problemer i /var/www/html mappe, udfør:

sudo restorecon -Rv /var/www/html

Denne kommando gendanner rekursivt standardkonteksten for alle filer og mapper indenfor /var/www/html, med detaljeret output, der beskriver ændringerne.

Midlertidigt at skifte til Permissive Mode for fejlfinding

Usikker på, om SELinux forårsager et specifikt problem? Skift midlertidigt til permissiv tilstand for at diagnosticere. Denne tilstand logger overtrædelser uden at håndhæve dem. Aktiver tilladende tilstand med:

sudo setenforce 0

Test din ansøgning nu. Hvis problemer ophører, stammer de sandsynligvis fra SELinux-politikker. Husk at vende tilbage til håndhævelsestilstand efter test:

sudo setenforce 1

Gennemgang af SELinux-logfiler til problemdiagnose

SELinux-logfiler er afgørende for at identificere overtrædelser af politikker. På Ubuntu er den primære SELinux-log /var/log/audit/audit.log. For at se de seneste poster, brug:

sudo tail /var/log/audit/audit.log

Søg efter "denied" eller "AVC" i loggene for at lokalisere potentielle overtrædelser.

Generering af tilpassede politikmoduler med audit2allow

Støder du på politikrelaterede problemer? Brug audit2allow at analysere revisionslogfiler og oprette et tilpasset politikmodul. For eksempel:

sudo grep 'denied' /var/log/audit/audit.log | audit2allow -M mycustommodule
sudo semodule -i mycustommodule.pp

Den første kommando genererer en politik med navnet "mycustommodule" fra "afviste" poster i revisionsloggen. Den anden installerer denne politik, hvilket potentielt løser problemet.

Håndtering af SELinux Booleans

SELinux Booleans styrer specifikke funktionaliteter. For at liste alle booleanere og deres tilstande, brug:

sudo getsebool -a

For at ændre en boolesk, såsom at aktivere httpd_can_network_connect, udfør:

sudo setsebool -P httpd_can_network_connect 1

Det -P flag sikrer vedholdenhed på tværs af genstarter.

Konfiguration af SELinux til webapplikationer: Tilladelse af HTTP- og HTTPS-trafik

For webapplikationer som WordPress er det afgørende at åbne nødvendige netværksporte i SELinux. Aktiver porte 80 (HTTP) og 443 (HTTPS) med:

sudo semanage port -a -t http_port_t -p tcp 80
sudo semanage port -a -t http_port_t -p tcp 443

SELinux-konfiguration til WordPress

Juster SELinux-politikker for problemfri WordPress-drift:

  • Netværksforbindelser til HTTPD scripts og moduler: Aktiver dette for plugin- og temaopdateringer:
sudo setsebool -P httpd_can_network_connect 1
  • Læse- og skriveadgang i WordPress Directory: Sørg for, at HTTPD kan interagere med WordPress-filer:
sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/wp-content
sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/wp-config.php

Yderligere fejlfinding SELinux-konfigurationsmuligheder

Tilpas SELinux til forskellige softwarekrav:

  • Adgang til brugerdefinerede mapper: Rediger filkontekster for brugerdefinerede webmapper, f.eks. /opt/myapp:
sudo chcon -R -t httpd_sys_content_t /opt/myapp
  • FTP-adgang til webserver: Aktiver FTP-adgang, hvis det kræves:
sudo setsebool -P allow_ftpd_full_access 1
  • Webserver e-mail funktionalitet: Hvis din applikation har brug for e-mail-afsendelsesfunktioner:
sudo setsebool -P httpd_can_sendmail 1

Disse konfigurationer illustrerer fleksibiliteten af ​​SELinux i forhold til specifikke sikkerheds- og driftsbehov.

Konklusion

Det er en indpakning af vores guide til installation af SELinux på Ubuntu 24.04, 22.04 eller 20.04. Vi har gennemgået installationsprocessen, dækket nogle grundlæggende kommandoer og udforsket et par vigtige konfigurationstip. Husk, at regelmæssige opdateringer og løbende overvågning er afgørende for at opretholde dit systems sikkerhed. Du er velkommen til at eksperimentere med SELinux-politikker for bedre at passe til din servers behov, men sikkerhedskopier altid dine konfigurationer, før du foretager ændringer.

Joshua James
Følg mig
Seneste indlæg af Joshua James (se alt)