A modul neve: mac_portacl.ko
A rendszermag konfigurációs
beállítása:
MAC_PORTACL
Rendszerindítási beállítás:
mac_portacl_load="YES"
A mac_portacl(4) modul a helyi TCP
és UDP portok kiosztásának
korlátozását teszi lehetővé
különféle
sysctl
-változókon keresztül.
A mac_portacl(4) segítségével
lényegében a nem-root
felhasználók is használhatnak
privilegizált, tehát 1024 alatti portokat.
Miután betöltöttük, a modul az összes csatlakozásra alkalmazza a MAC-házirendet. Ezután az alábbi változókkal hangolhatjuk a viselkedését:
A security.mac.portacl.enabled
totálisan engedélyezi vagy letiltja a
házirend használatát.
A security.mac.portacl.port_high
megadja azt a legmagasabb portot, amelyre még kiterjed
a mac_portacl(4) védelme.
Ha a security.mac.portacl.suser_exempt
változónak nem nulla értéket adunk
meg, akkor azzal a root
felhasználót kivonjuk a
szabályozások alól.
A security.mac.portacl.rules
az
érvényes mac_portacl házirendet adja meg,
lásd lentebb.
A security.mac.portacl.rules
változó által megadott aktuális
mac_portacl
házirend formátuma a
következő:
szabály[,szabály,...]
, ahol ezen
a módon tetszőleges számú
szabályt adhatunk meg. Az egyes szabályok pedig
így írhatóak fel:
azonosítótípus:
azonosító:
protokoll:
port
. Az
azonosítótípus
értéke uid
vagy
gid
lehet, amivel megadjuk, hogy az
azonosító
paraméter
felhasználóra vagy csoportra hivatkozik. A
protokoll
paraméter adja meg, hogy a
szabályt TCP vagy UDP
típusú kapcsolatra értjük, és
ennek megfelelően az értéke is
tcp
vagy udp
lehet. A sort
végül a port
paraméter
zárja, ahol annak a portnak számát adjuk meg,
amelyhez az adott felhasználót vagy csoportot
akarjuk kötni.
Mivel a szabályokat közvetlenül maga a rendszermag dolgozza fel, ezért a felhasználók illetve csoportok azonosítója, valamint a port értéke kizárólag numerikus érték lehet. Tehát a szabályokban név szerint nem hivatkozhatunk felhasználókra, csoportokra vagy szolgáltatásokra.
A UNIX®-szerű rendszereken alapértelmezés
szerint az 1024 alatti portokat csak privilegizált
programok kaphatják meg és
használhatják, tehát a
root
felhasználó neve alatt
kell futniuk. A mac_portacl(4) azonban a nem
privilegizált programok számára is
lehetővé teszi, hogy elfoglalhassanak 1024 alatti
portokat, amihez viszont először le kell tiltani ezt a
szabvány UNIX®-os korlátozást. Ezt
úgy érhetjük el, ha a
net.inet.ip.portrange.reservedlow
és
net.inet.ip.portrange.reservedhigh
változókat egyaránt nullára
állítjuk.
A mac_portacl(4) működésének részleteiről a példákon keresztül vagy a megfelelő man oldalakból tudhatunk meg többet.
A következő példák az iméntieket igyekeznek jobban megvilágítani:
#
sysctl security.mac.portacl.port_high=1023
#
sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0
Elsőként beállítjuk, hogy a mac_portacl(4) vegye át a szabványos privilegizált portok vezérlését és letiltjuk a normál UNIX®-os korlátozásokat.
#
sysctl security.mac.portacl.suser_exempt=1
A root
felhasználót
azonban nem akarjuk kitenni a házirendnek, ezért a
security.mac.portacl.suser_exempt
változónak egy nem nulla értéket
adunk meg. A mac_portacl(4) modul most pontosan
ugyanúgy működik, mint a UNIX®-szerű
rendszerek alapértelmezés szerint.
#
sysctl security.mac.portacl.rules=uid:80:tcp:80
A 80-as azonosítóval rendelkező
felhasználó (aki általában a
www
) számára
engedélyezzük a 80-as port
használatát. Így a
www
felhasználó
anélkül képes webszervert futtatni, hogy
szüksége lenne a root
jogosultságaira.
#
sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995
Az 1001-es azonosítóval rendelkező felhasználónak megengedjük, hogy elfoglalhassa a 110-es („pop3”) és 995-ös („pop3s”) portokat. Ennek köszönhetően az adott felhasználó el tud indítani egy szervert, amihez a 110-es és 995-ös portokon lehet kapcsolódni.
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.