Overzicht
semanage wordt gebruikt om SELinux-beleid permanent te wijzigen. Terwijl `chcon` of `restorecon` tijdelijke wijzigingen aanbrengen of bestaand beleid toepassen, definieert `semanage` nieuwe beleidsregels die behouden blijven na het opnieuw opstarten van het systeem.
Belangrijkste beheerde elementen
Dit zijn de belangrijkste SELinux-beleidselementen die u met semanage kunt beheren.
- Bestandscontexten (File Contexts): Specificeert SELinux-typen voor bestanden en mappen op specifieke paden.
- Netwerkpoorten (Network Ports): Specificeert SELinux-typen voor specifieke poorten.
- SELinux Booleans: Schakelaars om specifieke gedragingen van het SELinux-beleid in of uit te schakelen.
- SELinux Gebruikersmappings (User Mappings): Koppelt Linux-gebruikers aan SELinux-gebruikers.
Belangrijkste opties
semanage beheert beleid voor verschillende SELinux-objecttypen. Hier worden de veelgebruikte opties beschreven die met elk objecttype worden gebruikt.
Algemene beheeropties
Objecttypen
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`semanage` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Dit toont verschillende scenario's voor het beheren van SELinux-beleid met het semanage-commando.
Alle bestandscontextregels weergeven
sudo semanage fcontext -l
Controleert alle momenteel gedefinieerde bestandscontext-mappingsregels op het systeem.
Specifieke poortregels weergeven
sudo semanage port -l | grep http
Geeft de poortregels weer die worden gebruikt voor de HTTP-service.
Aangepaste bestandscontext toevoegen
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/my_app(/.*)?"
Voegt een regel toe om de map /var/www/html/my_app en de bestanden daarin het type httpd_sys_content_t te geven. (restorecon is vereist na toevoeging)
Aangepaste poort toevoegen
sudo semanage port -a -t http_port_t -p tcp 8080
Voegt TCP-poort 8080 toe met het type http_port_t, zodat deze kan worden gebruikt door de webservice.
SELinux boolean inschakelen
sudo semanage boolean -m --on httpd_can_network_connect
Schakelt de httpd_can_network_connect boolean in, waardoor de Apache-webservice netwerkverbindingen kan initiëren.
Installatie
semanage wordt meestal geleverd als onderdeel van het 'policycoreutils'-pakket of een vergelijkbaar pakket op de meeste Linux-distributies die SELinux gebruiken. Hieronder vindt u de installatiemethoden voor de belangrijkste distributies.
RHEL/CentOS/Fedora
sudo dnf install policycoreutils-python-utils
Installeer het pakket 'policycoreutils-python-utils' met de DNF- of YUM-pakketbeheerder.
Debian/Ubuntu
sudo apt install selinux-utils
Installeer het pakket 'selinux-utils' met de APT-pakketbeheerder.
Tips & Aandachtspunten
Dit zijn nuttige tips en aandachtspunten bij het beheren van SELinux-beleid met semanage.
Wijzigingen toepassen
Na het wijzigen van bestandscontextregels moet u het commando 'restorecon' gebruiken om de gewijzigde contexten toe te passen op het bestandssysteem.
- `sudo restorecon -Rv /pad/naar/directory`
Problemen diagnosticeren en beleid genereren
Als er SELinux-gerelateerde problemen optreden, controleer dan het bestand `/var/log/audit/audit.log` om geweigerde acties te identificeren en gebruik het `audit2allow`-hulpprogramma om de benodigde beleidsregels te genereren.
- `sudo tail -f /var/log/audit/audit.log` (realtime logboekcontrole)
- `sudo audit2allow -a -M mypolicy` (genereert 'mypolicy.te' en 'mypolicy.pp' bestanden op basis van beleidsschendingslogboeken)
- `sudo semodule -i mypolicy.pp` (laadt het gegenereerde beleidsmodule)
Aandachtspunten
Het onjuist wijzigen van SELinux-beleid kan de toegang tot specifieke services of het hele systeem blokkeren. Het is belangrijk om een back-up te maken van het huidige beleid of zorgvuldig te testen voordat u wijzigingen aanbrengt.