SELinux

SELinux voor beginners met CentOS

SELinux voor beginners met CentOS
Security-Enhanced Linux of SELinux, ontwikkeld door de NSA om kwaadwillende toegang en inbraak te voorkomen, is een geavanceerde toegangscontrolefunctie die wordt geleverd met de meeste moderne Linux-distributies. SELinux wordt gedefinieerd als het Mandatory Access Control (MAC)-systeem dat is ontwikkeld als vervanging voor het Discretionary Access Control-systeem (DAC).

SELinux kan ontmoedigend lijken en erg moeilijk te implementeren in de meeste moderne systemen. Het configureren van SELinux heeft echter enorme voordelen, zowel bij het afdwingen van beveiliging als bij het oplossen van problemen.

Deze tutorial zal verschillende concepten bespreken die door SELinux zijn geïmplementeerd en verschillende praktische methoden verkennen om SELinux te implementeren.

OPMERKING: Voordat we beginnen, is het goed om de opdrachten in deze tutorial te gebruiken als rootgebruiker of een gebruiker binnen de sudoers-groep.

SELinux-pakketten installeren

Laten we verschillende SELinux-pakketten installeren, die op hun beurt zullen helpen om met SELinux-beleidsregels te werken.

Voordat we doorgaan met het installeren van de SELinux-pakketten, is het goed dat we controleren welke op het huidige systeem zijn geïnstalleerd.

In de meeste installaties van REHL-distributies zijn sommige pakketten standaard geïnstalleerd. Deze pakketten zijn inclusief:

  1. setools - dit pakket wordt gebruikt voor het bewaken van logboeken, het opvragen van beleid en het beheer van contextbestanden.
  2. policycoreutils-python - biedt python-kernhulpprogramma's voor het beheren van SELinux
  3. policycoreutils - dit pakket biedt ook hulpprogramma's voor het beheren van SELinux.
  4. mcstrans - mcstrans biedt SELinux-vertaaldaemon, die verschillende niveaus vertaalt naar eenvoudige formaten die gemakkelijk kunnen worden begrepen.
  5. setools-console - vergelijkbaar met setools.
  6. Selinux-beleid - het biedt een referentie voor het configureren van het SELinux-beleid
  7. Selinux-policy-targeted - vergelijkbaar met SELinux-policy
  8. Libselinux-utils - SELinux libselinux hulpprogramma's die helpen bij het beheren van SELinux
  9. Setroubleshoot-server - tools voor het oplossen van problemen met SELinux

Om te verifiëren welke pakketten al op je systeem zijn geïnstalleerd, kun je het rpm -qa commando gebruiken en het resultaat naar grep voor SELinux sturen als:

rpm -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-targeted-3.14.3-54.el8_3.2.noarchus
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noarchus
libselinux-2.9-4.el8_3.x86_64

Dit zou je een output moeten geven van alle pakketten die geïnstalleerd zijn voor SELinux-ondersteuning

Als niet alle SELinux-pakketten op uw systeem zijn geïnstalleerd, gebruik dan yum om ze te installeren zoals getoond in de onderstaande opdracht:

yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

SELinux-modi en -statussen

Laten we nu beginnen te spelen met SELinux, in het bijzonder de SELinux-modi.

SELinux-modi

Indien ingeschakeld, kan SELinux drie mogelijke modi hebben:

Afdwingingsmodus

Als de SELinux-modus wordt afgedwongen, zal het ervoor zorgen dat geen ongeautoriseerde toegang tot het systeem door een gebruiker of proces wordt geweigerd. De handhavingsmodus houdt ook logboeken bij van pogingen tot ongeautoriseerde toegang.

Toegeeflijke modus

Toegeeflijke modus werkt als een gedeeltelijk ingeschakelde SELinux-status. In deze modus wordt geen toegang geweigerd omdat SELinux zijn beleid niet afdwingt in deze modus. De permissieve modus houdt echter wel een logboek bij van pogingen tot beleidsschending. Deze modus is zeer efficiënt om te testen voordat deze volledig wordt ingeschakeld, aangezien gebruikers en componenten nog steeds met het systeem kunnen communiceren, maar nog steeds logs kunnen verzamelen. Hiermee kunt u uw systeem afstemmen op manieren die u goeddunkt.

Uitgeschakelde modus

De uitgeschakelde modus kan ook worden gezien als een uitgeschakelde staat waarin SELinux is uitgeschakeld en geen beveiliging biedt.

SELinux-staten

Zodra SELinux op een systeem is geïnstalleerd. Het kan binaire toestanden hebben: ingeschakeld en uitgeschakeld. Gebruik het commando om de status van SELinux te bekijken:

afdwingen
Gehandicapt

De bovenstaande uitvoer geeft aan dat SELinux momenteel is uitgeschakeld.

U kunt ook de opdracht sestatus gebruiken, zoals hieronder weergegeven:

sestatus
SELinux-status: uitgeschakeld

SELinux in- en uitschakelen

Statussen en configuratie van SELinux worden afgehandeld door het configuratiebestand in /etc/selinux/config. U kunt de opdracht cat gebruiken om de inhoud ervan te bekijken.

cat /etc/selinux/config
#Dit bestand regelt de status van SELinux op het systeem.
#SELINUX= kan een van deze drie waarden aannemen:
#enforcing - SELinux beveiligingsbeleid wordt afgedwongen.
#permissive - SELinux drukt waarschuwingen af ​​in plaats van af te dwingen.
#disabled - Er is geen SELinux-beleid geladen.
SELINUX=afdwingen
#SELINUXTYPE= kan een van deze drie waarden aannemen:
# gericht - Gerichte processen zijn beveiligd,
# minimum - Aanpassing van gericht beleid. Alleen geselecteerde processen zijn beveiligd.
# mls - Beveiliging op meerdere niveaus.
SELINUXTYPE=gericht

Van de bovenstaande uitvoer hebben we twee hoofdrichtlijnen ingeschakeld:. De SELINUX-richtlijn specificeerde de modus waarin SELinux is geconfigureerd. De SELINUXTYPE-richtlijn specificeert de SELinux-beleidsset. Standaard gebruikt SELinux een gericht beleid waarmee u toegangsbeheerrechten kunt aanpassen. Het andere beleid is Beveiliging op meerdere niveaus of MLS.

Mogelijk vindt u in sommige versies een minimumbeleid.

cd /etc/selinux/
[ls -l
totaal 4
-rw-r--r-- 1 root root 548 Feb 16 22:40 config
drwxr-xr-x 1 wortel wortel 4096 16 februari 22:43 mls
-rw-r--r-- 1 wortel wortel 2425 21 jul 2020 semanage.conf
drwxr-xr-x 1 wortel wortel 4096 16 februari 22:40 gericht

Laten we nu kijken hoe we SELinux op het systeem kunnen inschakelen. We raden aan om eerst de SELINUX-modus in te stellen op tolerant en niet afgedwongen.

nano /etc/selinux/config

Bewerk nu de SELINUX-richtlijn als:

SELINUX=toelatend

Nadat u het bestand hebt opgeslagen, voert u een herstart van het systeem uit.

opnieuw opstarten

OPMERKING: We raden ten zeerste aan om de SELINUX-richtlijn op permissive in te stellen voordat u SELinux afdwingt.

Nadat je het systeem opnieuw hebt opgestart, controleer je of er logs zijn gerapporteerd door SELinux in /var/log/messages.

Zorg er vervolgens voor dat je geen fouten hebt en dwing SELinux af door de richtlijn in te stellen om af te dwingen in /etc/selinux/config

Ten slotte kun je de SELinux-status bekijken met het sestatus-commando:

SELinux-status: ingeschakeld
SELinuxfs aankoppelen: /sys/fs/selinux
SELinux hoofdmap: /etc/selinux
Naam van geladen beleid: getarget
Huidige modus: afdwingen
Modus uit configuratiebestand: fout (succes)
Beleid MLS-status: ingeschakeld
Beleid deny_unknown status: toegestaan
Geheugenbeveiligingscontrole: actueel (veilig)
Max. kernelbeleidsversie: 31

Je kunt ook het setenforce-commando gebruiken om te schakelen tussen verschillende SELinux-modi. Om bijvoorbeeld de modus op permissief in te stellen, gebruikt u de opdracht:

setenforce permissieve

Deze modus is tijdelijk en wordt na een herstart hersteld naar een modus in het configuratiebestand.

sestatus SELinux-status: ingeschakeld
SELinuxfs aankoppelen: /sys/fs/selinux
SELinux hoofdmap: /etc/selinux
Naam van geladen beleid: getarget
Huidige modus: tolerant
Modus uit configuratiebestand: afdwingen
Beleid MLS-status: ingeschakeld
Beleid deny_unknown status: toegestaan
Geheugenbeveiligingscontrole: actueel (veilig)
Max. kernelbeleidsversie: 31

SELinux-beleid en context

Om verwarring voor SELinux-beginners te voorkomen, zullen we niet diep ingaan op de manier waarop het SELinux-beleid wordt geïmplementeerd, maar er gewoon op ingaan om u een idee te geven.

SELinux werkt door beveiligingsbeleid te implementeren. Een SELinux-beleid verwijst naar een regel die wordt gebruikt om toegangsrechten te definiëren voor elk object in het systeem. Objecten verwijzen naar gebruikers, processen, bestanden en rollen.

Elke context wordt gedefinieerd in de vorm van de gebruiker:rol:type:niveau.

Maak bijvoorbeeld een map in je thuismap en bekijk de SELinux-beveiligingscontext zoals getoond in de onderstaande commando's:

mkdir ~/linuxhint_dir
ls -Z ~/ | grep linuxhint

Dit zal de output weergeven zoals hieronder getoond:

unconfined_u:object_r:user_home_t:s0 linuxhint_dir

U kunt ook andere mappen met de beveiligingscontexten vinden als:

systeem:_u:object_r:user_home_t:s0

U kunt zich realiseren dat de bovenstaande uitvoer de syntaxis van de gebruiker:rol:type:niveau volgt.

Conclusie

Dat was een beginnershandleiding voor SELinux met CentOS 8. Hoewel de tutorial is ontworpen voor beginners, is het meer dan genoeg om je voeten in SELinux te laten werken en de intimiderende aard van SELinux te verwijderen.

Bedankt voor het lezen.

Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...
Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...