Hoe SELinux op Ubuntu 24.04/22.04/20.04 te installeren

Security-Enhanced Linux (SELinux) is essentieel voor het beheren van het toegangscontrole-beveiligingsbeleid op Linux-systemen. SELinux wordt voornamelijk gebruikt door systeembeheerders, ontwikkelaars en beveiligingsprofessionals en biedt robuuste beveiliging op kernelniveau. De implementatie ervan op Ubuntu-servers, met name voor de 24.04, 22.04 en 20.04 LTS-releases, versterkt de beveiliging van deze systemen.

De belangrijkste kenmerken van SELinux die de veiligheid van een Ubuntu verbeteren zijn onder meer:

  • Verplichte toegangscontrole (MAC): In tegenstelling tot traditionele discretionaire toegangscontrolesystemen, dwingt SELinux strikte beleidsregels af die systeemprocessen en gebruikers beperken, waardoor het risico van ongeautoriseerde toegang wordt beperkt.
  • Fijnkorrelige controle: Het biedt gedetailleerde controle over systeemprocessen en hun interacties met bestanden en andere bronnen.
  • Verbeterd beveiligingsbeleid: Een op maat gemaakt beveiligingsbeleid helpt beschermen tegen externe en interne bedreigingen.
  • Audit en logboekregistratie: Uitgebreide logmogelijkheden vergemakkelijken het monitoren en traceren van beveiligingsgerelateerde gebeurtenissen, wat helpt bij het snel identificeren en oplossen van problemen.

Het integreren van SELinux in een Ubuntu-serveromgeving, vooral voor degenen die kritieke applicaties of gevoelige gegevens beheren, verbetert de systeembeveiliging aanzienlijk. Deze gids, gericht op de installatie en het basisgebruik van SELinux, heeft tot doel een eenvoudige benadering te bieden om deze beveiligingsvoordelen te benutten.

Schakel de AppArmor-service uit

Om compatibiliteit te garanderen, controleert u of AppArmor actief is, omdat het samen uitvoeren van AppArmor en SELinux conflicten kan veroorzaken. Bepaal de status van AppArmor met:

sudo systemctl status apparmor

Als AppArmor operationeel is, schakel het dan uit om interferentie met SELinux te voorkomen. Voer het volgende commando uit om AppArmor te deactiveren:

sudo systemctl disable apparmor --now

Installeer SELinux via APT Commando

Deze fase omvat het installeren van de belangrijkste SELinux-pakketten: policycoreutils, selinux-utils, En selinux-basics. Deze zijn essentieel voor het beheren van SELinux-beleid en het bieden van fundamentele SELinux-ondersteuning.

Start de installatie met dit commando:

sudo apt install policycoreutils selinux-utils selinux-basics

Als u dit uitvoert, worden de vereiste SELinux-pakketten op uw Ubuntu-systeem geïnstalleerd.

Activeer SELinux

Na het installeren van de benodigde pakketten activeert u SELinux om er zeker van te zijn dat het bij het opstarten wordt geladen. Deze activering is van cruciaal belang voor het inschakelen van de beveiligingsfuncties van SELinux. Voer de volgende opdracht uit met rootrechten:

sudo selinux-activate

Deze stap configureert uw systeem om SELinux te initialiseren tijdens het opstartproces.

SELinux-modus afdwingen

SELinux in de afdwingende modus zetten is cruciaal. In deze modus past SELinux actief zijn beveiligingsbeleid toe, waarbij toegang wordt geweigerd op basis van vooraf gedefinieerde regels. Schakel over naar de handhavingsmodus met behulp van:

sudo selinux-config-enforcing

Deze actie wijzigt je SELinux-configuratie om in de afdwingende modus te werken.

Systeem opnieuw opstarten voor SELinux-activering

Rond het installatieproces af door uw systeem opnieuw op te starten. Dit zorgt ervoor dat alle veranderingen worden toegepast, en SELinux begint te werken in de set-modus:

sudo reboot

Na het opnieuw opstarten zal uw systeem draaien met SELinux geïnstalleerd, geactiveerd en geconfigureerd om zijn beveiligingsbeleid af te dwingen. De volgende secties zullen u begeleiden bij het verder aanpassen van SELinux om aan uw beveiligingsbehoeften te voldoen.

Configureer SELinux

SELinux-modi begrijpen

SELinux functioneert in drie verschillende modi:

  • Afdwingende modus: De standaardinstelling, waarbij SELinux zijn beveiligingsbeleid rigoureus afdwingt, waarbij toegang wordt geweigerd volgens de vastgestelde regels.
  • Toegeeflijke modus: Hier registreert SELinux beleidsovertredingen, maar handhaaft ze niet actief. Deze modus is handig voor het testen en oplossen van beleid.
  • Uitgeschakelde modus: In deze modus is SELinux volledig uitgeschakeld, zonder dat er beleid wordt toegepast.

Bewerk het SELinux-configuratiebestand

Om SELinux instellingen aan te passen, bewerkt u het /etc/selinux/config bestand. Gebruik voor deze taak een gewenste teksteditor, zoals nano:

sudo nano /etc/selinux/config

Wijzig in het bestand de SELINUX lijn om uw voorkeursmodus in te stellen. Om bijvoorbeeld de afdwingingsmodus in te schakelen:

SELINUX=enforcing

De configuratiewijzigingen toepassen

Start uw systeem opnieuw op om de wijzigingen door te voeren:

sudo reboot

Extra SELinux-configuratieopties aanpassen

SELinux biedt verschillende aanpassingsopties:

  • SETLOCALDEFS: Bepaalt het gebruik van lokaal gedefinieerde bestandscontexten. Om standaardcontexten te gebruiken, stelt u dit in op 0. Wijzig de /etc/selinux/config bestand dienovereenkomstig:
SETLOCALDEFS=0
  • SELINUXTYPE: Stelt het beleidstype in. Het algemene beleidstype ‘gericht’ richt zich op het beschermen van specifieke systeemdiensten. Om dit in te stellen, updatet u de SELINUXTYPE regel in het configuratiebestand:
SELINUXTYPE=targeted

Voorbeeld: SELinux configureren voor een webserver

Overweeg om SELinux te configureren om HTTP- en HTTPS-verkeer op een Ubuntu-webserver toe te staan. De semanage opdracht wordt gebruikt voor beleidsbeheer.

Installeer eerst de semanage nutsvoorziening:

sudo apt install policycoreutils-python-utils

Sta vervolgens HTTP-verkeer toe op poort 80:

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

En HTTPS-verkeer op poort 443:

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

Deze commando's zullen het SELinux-beleid bijwerken, waardoor uw webserver inkomende verbindingen op poort 80 (HTTP) en 443 (HTTPS) kan ontvangen, waardoor een veilige werking van de webservice wordt gegarandeerd.

SELinux-modus verifiëren

SELinux-status na het opnieuw opstarten controleren

Na het herstarten van uw Ubuntu-systeem is het cruciaal om de operationele status van SELinux te bevestigen. Deze verificatie zorgt ervoor dat het systeem de SELinux configuratie-instellingen correct toepast.

Voer de volgende opdracht uit om de huidige status te controleren:

sestatus

Dit commando biedt uitgebreide details over SELinux, inclusief de huidige operationele status, de modus waarin het draait (afdwingend, toelatend of uitgeschakeld), en het beleid dat wordt gebruikt. Vergelijk deze uitvoer met uw instellingen in het /etc/selinux/config bestand om te bevestigen dat SELinux functioneert zoals bedoeld.

Problemen oplossen van algemene SELinux-problemen

Standaardbestandscontexten herstellen

Onjuiste bestandscontexten leiden vaak tot toegangsweigeringen door SELinux, waardoor de functionaliteit van de applicatie wordt verstoord. Om dit te corrigeren, gebruikt u de restorecon commando. Bijvoorbeeld om problemen in de /var/www/html map, voer uit:

sudo restorecon -Rv /var/www/html

Deze opdracht herstelt recursief de standaardcontext voor alle bestanden en mappen daarin /var/www/html, met uitgebreide uitvoer waarin de wijzigingen worden beschreven.

Tijdelijk overschakelen naar de toegestane modus voor probleemoplossing

Weet u niet zeker of SELinux een specifiek probleem veroorzaakt? Schakel tijdelijk over naar de toegestane modus om een ​​diagnose te stellen. In deze modus worden overtredingen geregistreerd zonder deze af te dwingen. Activeer de permissieve modus met:

sudo setenforce 0

Test nu uw applicatie. Als de problemen verdwijnen, komen ze waarschijnlijk voort uit het SELinux-beleid. Vergeet niet om na het testen terug te keren naar de afdwingingsmodus:

sudo setenforce 1

SELinux logs bekijken voor probleemdiagnose

SELinux-logboeken zijn essentieel voor het identificeren van beleidsschendingen. Op Ubuntu is het primaire SELinux-logboek /var/log/audit/audit.log. Om recente vermeldingen te bekijken, gebruikt u:

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

Zoek naar 'geweigerd' of 'AVC' in de logboeken om mogelijke overtredingen op te sporen.

Aangepaste beleidsmodules genereren met audit2allow

Loopt u tegen beleidsgerelateerde vraagstukken aan? Gebruik audit2allow om auditlogboeken te analyseren en een aangepaste beleidsmodule te maken. Bijvoorbeeld:

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

De eerste opdracht genereert een beleid met de naam “mycustommodule” op basis van “geweigerde” vermeldingen in het auditlogboek. De tweede installeert dit beleid, waardoor het probleem mogelijk wordt opgelost.

SELinux Booleans beheren

SELinux Booleans besturen specifieke functionaliteiten. Om alle Booleans en hun statussen weer te geven, gebruikt u:

sudo getsebool -a

Om een ​​Booleaanse waarde te wijzigen, zoals enable httpd_can_network_connect, voer uit:

sudo setsebool -P httpd_can_network_connect 1

De -P flag zorgt voor persistentie tijdens het opnieuw opstarten.

SELinux configureren voor webapplicaties: HTTP- en HTTPS-verkeer toestaan

Voor webapplicaties zoals WordPress is het openen van de benodigde netwerkpoorten in SELinux cruciaal. Schakel poorten 80 (HTTP) en 443 (HTTPS) in met:

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

SELinux-configuratie voor WordPress

Pas het SELinux-beleid aan voor een naadloze werking van WordPress:

  • Netwerkverbindingen voor HTTPD-scripts en modules: Schakel dit in voor plug-in- en thema-updates:
sudo setsebool -P httpd_can_network_connect 1
  • Lees- en schrijftoegang in WordPress Directory: Zorg ervoor dat HTTPD kan communiceren met WordPress-bestanden:
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

Aanvullende probleemoplossingsopties voor SELinux-configuratie

Pas SELinux aan voor verschillende softwarevereisten:

  • Toegang tot aangepaste mappen: Wijzig bestandscontexten voor aangepaste webmappen, bijvoorbeeld /opt/myapp:
sudo chcon -R -t httpd_sys_content_t /opt/myapp
  • FTP-toegang voor webserver: Schakel indien nodig FTP-toegang in:
sudo setsebool -P allow_ftpd_full_access 1
  • E-mailfunctionaliteit van de webserver: Als uw toepassing mogelijkheden voor het verzenden van e-mail nodig heeft:
sudo setsebool -P httpd_can_sendmail 1

Deze configuraties illustreren de flexibiliteit van SELinux bij het voorzien in specifieke beveiligings- en operationele behoeften.

Conclusie

Dat is de samenvatting van onze handleiding voor het installeren van SELinux op Ubuntu 24.04, 22.04 of 20.04. We hebben het installatieproces doorlopen, enkele basisopdrachten besproken en enkele belangrijke configuratietips onderzocht. Vergeet niet dat regelmatige updates en voortdurende monitoring cruciaal zijn om de veiligheid van uw systeem te behouden. Voel je vrij om met SELinux-beleid te experimenteren om beter aan de behoeften van je server te voldoen, maar maak altijd een back-up van je configuraties voordat je wijzigingen aanbrengt.

Joshua James

Plaats een reactie


nl_NLNederlands