Modulenaam: mac_portacl.ko
Kernelinstelling:
MAC_PORTACL
Opstartoptie: mac_portacl_load="YES"
De module mac_portacl(4) wordt gebruikt om het binden aan
lokale TCP- en UDP-poorten
te begrenzen door een waaier aan
sysctl-variabelen te gebruiken. In essentie
maakt mac_portacl(4) het mogelijk om
niet-root-gebruikers in staat te stellen om
aan gespecificeerde geprivilegieerde poorten te binden, dus
poorten lager dan 1024.
Eenmaal geladen zal deze module het MAC-beleid op alle sockets aanzetten. De volgende tunables zijn beschikbaar:
security.mac.portacl.enabled schakelt
het beleid volledig in of uit.
security.mac.portacl.port_high stelt
het hoogste poortnummer in waarvoor mac_portacl(4)
bescherming biedt.
security.mac.portacl.suser_exempt sluit
de gebruiker root uit van dit beleid
wanneer het op een waarde anders dan nul wordt ingesteld.
security.mac.portacl.rules specificeert
het eigenlijke beleid van mac_portacl; zie onder.
Het eigenlijke beleid van mac_portacl,
zoals gespecificeerd in de sysctl
security.mac.portacl.rules, is een tekststring
van de vorm: regel[,regel,...] met zoveel
regels als nodig. Elke regel heeft de vorm:
idtype:id:protocol:poort. De parameter
idtype kan uid of
gid zijn en wordt gebruikt om de parameter
id als respectievelijk een gebruikers-id of
groeps-id te interpreteren. De parameter
protocol wordt gebruikt om te bepalen of de
regel op TCP of UDP moet
worden toegepast door de parameter op tcp of
udp in te stellen. De laatste parameter
poort is het poortnummer waaraan de
gespecificeerde gebruiker of groep zich mag binden.
Aangezien de regelverzameling direct door de kernel wordt geïnterpreteerd kunnen alleen numerieke waarden voor de parameters voor de gebruikers-ID, groeps-ID, en de poort gebruikt worden. Voor gebruikers, groepen, en poortdiensten kunnen dus geen namen gebruikt worden.
Standaard kunnen op UNIX®-achtige systemen poorten lager dan
1024 alleen aan geprivilegieerde processen gebonden worden, dus
diegenen die als root draaien. Om
mac_portacl(4) toe te laten staan om ongeprivilegieerde
processen aan poorten lager dan 1024 te laten binden moet deze
standaard UNIX®-beperking uitgezet worden. Dit kan bereikt
worden door de sysctl(8)-variabelen
net.inet.ip.portange.reservedlow en
net.inet.ip.portrange.reservedhigh op nul te
zetten.
Zie de onderstaande voorbeelden of bekijk de handleidingpagina voor mac_portacl(4) voor meer informatie.
De volgende voorbeelden zouden de bovenstaande discussie wat moeten toelichten:
#sysctl security.mac.portacl.port_high=1023#sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0
Eerst wordt mac_portacl(4) ingesteld om de standaard geprivilegieerde poorten te dekken en worden de normale bindbeperkingen van UNIX® uitgeschakeld.
#sysctl security.mac.portacl.suser_exempt=1
De gebruiker root zou niet beperkt
moeten worden door dit beleid, stel
security.mac.portacl.suser_exempt dus in op
een waarde anders dan nul. De module mac_portacl(4) is nu
ingesteld om zich op de zelfde manier te gedragen als
UNIX®-achtige systemen zich standaard gedragen.
#sysctl security.mac.portacl.rules=uid:80:tcp:80
Sta de gebruiker met UID 80 (normaliter
de gebruiker www) toe om zich aan poort 80
te binden. Dit kan gebruikt worden om de gebruiker
www toe te staan een webserver te draaien
zonder ooit root-rechten te hebben.
#sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995
Sta de gebruiker met UID 1001 om zich aan de TCP-poorten 110 (“pop3”) en 995 (“pop3s”) te binden. Dit staat deze gebruiker toe om een server te starten die verbindingen accepteert op poorten 110 en 995.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.