17.8. MAC-module bsdextended

Modulenaam: mac_bsdextended.ko

Kernelinstelling: options MAC_BSDEXTENDED

Opstartoptie: mac_bsdextended_load="YES"

De module mac_bsdextended(4) dwingt de bestandssysteemfirewall af. Het beleid van deze module biedt een uitbreiding van het standaard rechtenmodel voor bestandssystemen, waardoor een beheerder een firewallachtige verzameling met regels kan maken om bestanden, programma's en mappen in de bestandssysteemhiërarchie te beschermen. Wanneer geprobeerd wordt om toegang tot een object in het bestandssysteem te krijgen, wordt de lijst met regels afgelopen totdat er òf een overeenkomstige regel is gevonden òf het einde van de lijst is bereikt. Dit gedrag kan veranderd worden door het gebruik van de sysctl(8)-parameter security.mac.bsdextended.firstmatch_enabled. Net zoals andere firewall-modules in FreeBSD kan een bestand dat regels voor toegangscontrole bevat tijdens het opstarten door het systeem worden aangemaakt en gelezen door een rc.conf(5)-variabele te gebruiken.

De lijst met regels kan ingevoerd worden met het hulpprogramma ugidfw(8), dat een syntaxis heeft die lijkt op die van ipfw(8). Meer hulpprogramma's kunnen geschreven worden met de functies in de bibliotheek libugidfw(3).

Bij het werken met deze module dient bijzondere voorzichtigheid in acht te worden genomen. Verkeerd gebruik kan toegang tot bepaalde delen van het bestandssysteem blokkeren.

17.8.1. Voorbeelden

Nadat de module mac_bsdextended(4) is geladen, kan met het volgende commando de huidige regels getoond worden:

# ugidfw list
0 slots, 0 rules

Zoals verwacht zijn er geen regels ingesteld. Dit betekent dat alles nog steeds volledig toegankelijk is. Om een regel te maken die alle toegang voor alle gebruikers behalve root ontzegt:

# ugidfw add subject not uid root new object not uid root mode n

Dit is een slecht idee, omdat het voorkomt dat alle gebruikers ook maar het meest eenvoudige commando kunnen uitvoeren, zoals ls. Een betere lijst met regels zou kunnen zijn:

# ugidfw set 2 subject uid gebruiker1 object uid gebruiker2 mode n
# ugidfw set 3 subject uid gebruiker1 object gid gebruiker2 mode n

Hiermee wordt alle toegang, inclusief het tonen van mapinhoud, tot de thuismap van gebruiker2 ontzegd voor de gebruikersnaam gebruiker1.

In plaats van gebruiker1, zou not uid gebruiker2 kunnen worden opgegeven. Hierdoor worden dezelfde restricties als hierboven actief voor alle gebruikers in plaats van voor slechts één gebruiker.

Opmerking: De gebruiker root blijft onaangetast door deze wijzigingen.

Met deze informatie zou een basisbegrip moeten zijn ontstaan over hoe de module mac_bsdextended(4) gebruikt kan worden om een bestandssysteem te beschermen. Meer informatie staat in de hulppagina's van mac_bsdextended(4) en ugidfw(8).