[PATCH 2.6.15.4 1/1][RFC] ipt_owner: inode match supporting both incoming and outgoing packets

Török Edwin edwin at gurde.com
Sat Feb 18 21:03:41 CET 2006


On Saturday 18 February 2006 21:28, Patrick McHardy wrote:
> Török Edwin wrote:
> > First of all this is what I'd like to achieve:
> > - filter packets by the program who sent the packet
> > - filter packets by the program who is going to receive the packet
> > - when multiple programs share a socket (i.e. they listen on the same
> > socket), allow the packet only if all programs are allowed to receive the
> > packet
>
> Besides the tasklist_lock issues, there is no 1:1 relationship between
> sockets and processes, which is why this can never work. You don't know
> which process is going to receive a packet until it calls recvmsg().
Can sockets be "labeled". Like creating a label for each process, and then 
apply a label to each socket they open. If a socket gets shared, then it gets 
multiple labels.
I see that you talk about SELinux labels below, but is there a way to "label" 
anything without using SELinux? (Maybe by writing another LSM module that 
does just this socket labeling?)
I could then just check the labels to see if a packet is allowed to pass/ or 
not.
>
> There is some work in progress to solve this problem in a different way,
> by adding new hooks to the protocols that get the socket as context,
> and using SElinux labels instead of process names/inodes/whatever for
> matching.
Could you tell me on which thread/mailing list this discussion/(work in 
progress) is taking place? I'd like to follow it.

Thanks
Edwin



More information about the netfilter-devel mailing list