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 http://ftp.FreeBSD.org/pub/FreeBSD/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>.