Hoe u uw Linux-servers kunt beveiligen met SELinux

SELinux kan u helpen uw server te beveiligen tegen slecht werkende processen of applicaties. Ontwikkeld door de NSA (National Security Agency) om overheidsapparaten te beveiligen tegen aanvallers, maakt de security-enhanced (SE) Linux-architectuur gebruik van beveiligingsprotocollen om de toegang tot systeembronnen te beperken. Ontdek hoe u het voor uw eigen server kunt gebruiken.

SELinux-architectuur

SELinux is een kernelmodule die kan worden in- of uitgeschakeld door de systeembeheerder. Omdat de toegang tot bestanden en netwerkpoorten beperkt is volgens een beveiligingsbeleid, kan een defect programma of een verkeerd geconfigureerde daemon geen enorme impact hebben op de systeembeveiliging.

Wanneer een applicatie of proces bestandstoegang vraagt ​​in het SELinux systeem, controleert het eerst de access vector cache (AVC). Als toestemming eerder in de cache is opgeslagen, keert het terug met het bestand waarvoor de toepassing is aangevraagd. Als de toestemming niet in de cache is opgeslagen, wordt het verzoek naar de beveiligingsserver verzonden. De beveiligingsserver controleert al het beveiligingsbeleid in zijn database. Afhankelijk van het beveiligingsbeleid wordt dan toestemming verleend of geweigerd.

Er is geen concept van root of superuser in SELinux. De veiligheid van een ongewijzigde Linux-distributie zonder SE Linux hangt af van de correctheid van de kernel, alle geprivilegieerde applicaties en hun configuraties. een fout of bug in een van deze componenten kan een aanvallend oppervlak creëren en het systeem in gevaar brengen.

Aan de andere kant hangt een aangepast Linux-systeem met SELinux in de eerste plaats af van de juistheid van de kernel en het beveiligingsbeleid.

Hoe SELinux te installeren of in te schakelen

SELinux staat voor Security Enhanced Linux. SELinux maakt sinds 2003 deel uit van de Linux-kernel. Je hoeft het dus niet apart te installeren. In de meeste desktop Linux-distributies is het echter standaard uitgeschakeld.

Zie Linux 2

SELinux heeft hoofdzakelijk 3 modi: Afgedwongen, Toegeeflijk en Uitgeschakeld. Laten we ze kort bespreken:

  1. afgedwongen: Dit activeert en beschermt het Linux-systeem met behulp van beveiligingsbeleid.
  2. Toegeeflijk: Het dwingt het beveiligingsbeleid niet af, maar registreert alles. Deze modus is handig voor het oplossen van problemen.
  3. Gehandicapt: Het deactiveert SELinux. Deze optie wordt niet aanbevolen en als je de SELinux opnieuw aanzet in je systeem, leidt dit tot fouten als gevolg van veranderingen in labeling.

Opmerking: Ubuntu wordt geleverd met AppArmor, een alternatief voor SELinux. Hoewel SELinux beschikbaar is op Ubuntu, is het niet compatibel met AppArmor en kan het uw systeem beschadigen als het is ingeschakeld. Als je SELinux echt in Ubuntu moet gebruiken, zorg er dan voor dat je AppArmor uitschakelt en intensieve tests uitvoert (begin eerst met de permissieve modus) voordat je het voor productiegebruik gebruikt.

  1. Om SELinux in uw systeem te activeren, moet u het bestand “/etc/selinux/config” bewerken. Open dit bestand in je teksteditor.
sudo nano /etc/selinux/config
  1. In het configuratiebestand, stel SELINUX=permissive . druk op Ctrl + O en raak Binnenkomen om het bestand op te slaan en druk op Ctrl + X om de editor te verlaten. SELinux is nu geactiveerd in uw systeem.

Opmerking: Als je SELinux direct probeert af te dwingen voordat je het toelaat, kan het bestanden en processen verkeerd labelen en voorkomen dat je opstart.

  1. Om het bestandssysteem automatisch opnieuw te labelen, maakt u een bestand met de naam “.autorelabel” in uw rootbestandssysteem. Als je nu je systeem opstart, zal SELinux je bestandssysteem automatisch herlabelen. Om fouten te verminderen, houdt u de SELINUX=permissive optie zoals deze zich in de config-map bevindt. Nadat alles opnieuw is gelabeld, stelt u SELinux in op SELINUX=enforcing in “/etc/selinux/config” en herstart.

Nu is SE Linux met succes toegepast in uw systeem.

Hoe SELinux te configureren

SELinux is een architectuur waarmee systeembeheerders kunnen bepalen wat toegang heeft tot de systeembronnen. SELinux beperkt de toegang tot het systeem door beveiligingsbeleid te gebruiken. Er zijn veel manieren om SELinux te configureren om je systeem te beschermen. De meest populaire zijn “targeted policy” en “multi-level security” (MLS).

Een gericht beleid is het standaard beveiligingsbeleid dat standaard wordt geleverd. Het omvat een reeks beveiligingsbeleidslijnen, zoals bestandstoegang, taken, services, enz. Multi-level security (MLS) wordt over het algemeen gebruikt door de overheid en grote organisaties. Het is erg ingewikkeld om op te zetten en vereist een toegewijd team om het te beheren.

Je kunt je huidige SELinux-modus controleren met het commando getenforce en sestatus.

Als u alleen de SELinux-modus in de huidige sessie hoeft te wijzigen, kunt u de volgende 2 opdrachten uitvoeren.

  • sudo setenforce 0: SELinux instellen op de permissieve modus voor de huidige sessie.
  • sudo setenforce 1: SELinux instellen op afdwingende modus voor de huidige sessie.

SELinux-beleid

SELinux werkt als een labelsysteem. Het associeert elk bestand, elke poort en elk proces met een label. Labels zijn een logische manier om dingen te groeperen. De kernel is verantwoordelijk voor het beheer van het label tijdens het opstarten.

Zie Linux 1
Afbeeldingsbron: MIT

SELinux-beleidsregels kunnen worden beheerd door booleans. Laten we een voorbeeld van weergave nemen en boolean instellen op een daemon genaamd httpd. httpd is een Apache HTTP-serverdaemon die we gebruiken om webservers in Linux te draaien.

Nu, om alle modules te vermelden die specifiek zijn voor: httpdvoer de volgende opdracht uit in uw terminal.

getsebool -a | grep httpd

Hier -a optielijst alle booleans en we gebruiken grep om boolean uit te filteren die alleen betrekking heeft op httpd. Lees dit artikel om meer te weten te komen over grep in Linux.

De uitvoer van de bovenstaande opdracht ziet er als volgt uit.

httpd_builtin scripting --> on 
httpd_can_check_spam --> off 
httpd can connect ftp --> off 
httpd_can_connect_ldap --> off 
httpd_can_connect_mythty --> off 
httpd_can_connect_zabbix --> off 
httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off 
httpd_can_network_memcache --> off 
httpd_can_network_relay --> off 
httpd_can_sendmail --> off 
httpd_dbus_avahi --> off 
httpd dbus sssd--> off

Nu nemen we uit de bovenstaande lijst: httpd_can_connect_ftp Booleaans en wijzig de waarde. Lees eerst de waarde van httpd_can_connect_ftp als het aan of uit is:

getsebool httpd_can_connect_ftp

Laten we nu de waarde van . instellen httpd_can_connect_ftp toelaten.

setsebool -P httpd_can_connect_ftp 1

Hier staat 1 voor allow of on. -P tag wordt gebruikt om de wijziging permanent te maken. Als je nu de booleans met betrekking tot httpd weer opsomt, dan kunnen we de verandering zien in httpd_can_connect_ftp waarde aan on.

httpd_builtin_scripting --> on 
httpd_can_check_spam --> off 
httpd can connect ftp --> on 
httpd_can_connect_ldap --> off 
httpd_can_connect_mythty --> off 
httpd_can_connect_zabbix --> off 
httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off 
httpd_can_network_memcache --> off 
httpd_can_network_relay --> off 
httpd_can_sendmail --> off 
httpd_dbus_avahi --> off 
httpd dbus sssd--> off

Hoe om te gaan met SELinux-fouten

SELinux heeft in het algemeen 4 soorten fouten:

  1. Het systeem is kapotSELinux beschermt uw systeem door de toegang te beperken. Maar soms is dit niet genoeg. Als u deze fouten krijgt, is uw systeem mogelijk gecompromitteerd. Onderneem zo snel mogelijk de nodige actie.
  2. Bug in het beleid: Als er een bug in het beleid zit die moet worden verholpen, verschijnt deze fout.
  3. De labels zijn fout: Deze foutmelding verschijnt tijdens het aanpassen van labeling door de gebruiker of wanneer automatisch labelen door SELinux naar het zuiden gaat. Er zijn veel tools op de markt om deze foutieve labelfouten op te lossen.
  4. Er moet een beleid worden vastgesteld: Deze fouten ontstaan ​​wanneer je wat wijzigingen aan het systeem aanbrengt en SELinux er niet over informeert. U kunt deze fout oplossen met behulp van booleaanse of beleidsmodules.

Hoe SELinux uit te schakelen

Het uitschakelen van SELinux is nooit een goede optie voor bedrijfs- en overheidsservers en openbare apparaten die erg vatbaar zijn voor aanvallen. Maar als je SELinux in je systeem wilt uitschakelen, volg dan deze instructies.

  1. Ga naar het SE Linux-configuratiebestand in “/etc/selinux” en verander de SE Linux-configuratiemodus van enforcing tot permissive. Start vervolgens uw systeem opnieuw op.
  2. Verander daarna de SELinux-modus van permissive tot disabled.

Na de volgende herstart wordt SELinux in je systeem uitgeschakeld en wordt het een normale Linux-machine.

Veel Gestelde Vragen

Is SELinux aanwezig in Android?

Ja, SELinux is vanaf versie 4.3 in Android geïmplementeerd. Het verbeterde de Android-beveiliging en beschermt Android-gebruikers tegen cyberaanvallen.

Is SELinux een firewall?

SELinux is geen firewall. De firewall regelt het verkeer tussen de computer en het netwerk. Terwijl SELinux het bestandssysteem en de netwerktoegang van verschillende programma’s binnen het systeem bestuurt en regelt. We kunnen SELinux zien als een interne firewall om het systeem te beschermen tegen zijn programma’s.

Is SELinux een besturingssysteem?

SELinux is geen besturingssysteem. Het is een kernelbeveiligingsmodule die in de Linux-kernel bestaat. Het biedt ondersteuning voor toegangscontrole beveiligingsbeleid en verplichte toegangscontroles (MAC). Om het een besturingssysteem te noemen, heeft het meer nodig dan de kernel zelf. In de meeste op Linux gebaseerde besturingssystemen kunt u SELinux gebruiken.

Moet je SELinux gebruiken?

Als u een systeembeheerder bent en het Unix-systeem goed kent, moet u SELinux gebruiken. Het verbetert de beveiliging van uw server en minimaliseert het aanvalsoppervlak. Als je niet zo bekend bent met Unix-systemen, kun je ook Apparmour gebruiken. Dit is relatief eenvoudiger dan SELinux. Als je een thuisgebruiker bent en Linux alleen op je desktopcomputer gebruikt, dan is het niet nodig om SELinux te gebruiken. Het zal u alleen hoofdpijn bezorgen om uw productiviteit te configureren en te verminderen.

Is dit artikel nuttig?

Abonneer op onze nieuwsbrief!

Onze nieuwste tutorials rechtstreeks in je inbox

Leave a Comment