16.10. A portacl MAC-modul
Vissza | 16. fejezet - Kötelező hozzáférés-vezérlés (MAC) | Előre

## 16.10. A portacl MAC-modul

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.

### Megjegyzés:

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(R)-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(R)-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.

### 16.10.1. Példák

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(R)-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(R)-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.

Vissza | Fel | Előre
16.9. Az ifoff MAC-modul | Főoldal | 16.11. A partition MAC-modul

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>.