[rsbac] Help for NETxxx and CAPABILITIES

Amon Ott rsbac@rsbac.org
Fri Apr 19 10:19:01 2002

On Friday, 19. April 2002 08:44, ghorvath@minolta.hu wrote:
> But till now I am unable to do the following:
> I made a usual RC role and types for bind. From the file ACL side it works
> quite well, but I had to give permissions to GENERAL_NETOBJ and I do not
> want to do it. I didn't know how to tell Named_RC_Role to use my
> Named_NETOBJ.
> To summarize it my goal is to not let use any other CAPs that is necessary
> for it (just CAP_SETUID, CAP_SETGID, CAP_SYS_CHROOT,..) and restrict it to
> use only specified interfaces and of course let it only bind to 53 and 953
> ports.

First of all, set the necessary CAPs on the named binary as minimum (if 
started as non-root) or as maximum (if started as root). If you start as 
normal user, you can even get rid of SETUID and SETGID (although AUTH module 
restricts setuid that anyway).

You need to define network templates for your local bindings and, if you need 
to, for the remote clients. E.g. define local caps:
Number: 100
Name: Local53-1
Family: INET
Proto: ANY (to cover both udp and tcp)
Address: <your first bind address>
Min and Max Port: 53

Number: 101
Name: Local53-2
Family: INET
Proto: ANY (to cover both udp and tcp)
Address: <your first bind address>
Min and Max Port: 953

...and so on.

One possible remote CAP is already predefined as INET. Please note that your 
local net with other rights should be defined in a template with a lower 
number, so that the general template does not get used for it.

Now define an RC NETOBJ type, give named role rights BIND, LISTEN, 
NET_SHUTDOWN and CLOSE to it and assign it to the new local templates.

Bind role will also need CREATE on NETOBJ type 0 (to create a socket) and 
SEND, RECEIVE, ACCEPT, READ, WRITE on the remote client template's type (0 by 

If no other role gets BIND on the local bind type, only named role will be 
able to serve on these ports.

> PLEASE if someone could write a short example for the above one, I could
> appreciate it. And I also think it would be great to have such an
> information among the docus. (Now the menu driven would be great but I
> used to use scripts for the tasks so perhaps those would also be useful).

All this will be documented in more detail and with examples soon. If you 
entered the templates in the menu, you can simply use the net_temp backup to 
get a script.