From: Paul Moore <paul.moore@hp.com>
To: Patrick McHardy <kaber@trash.net>
Cc: James Morris <jmorris@namei.org>,
Pablo Neira Ayuso <pablo@netfilter.org>,
Netfilter Development Mailinglist
<netfilter-devel@vger.kernel.org>,
Stephen Smalley <sds@tycho.nsa.gov>
Subject: Re: [PATCH 3/4] add support for modifying secmark via ctnetlink
Date: Wed, 21 May 2008 12:46:07 -0400 [thread overview]
Message-ID: <200805211246.07481.paul.moore@hp.com> (raw)
In-Reply-To: <48340EC9.3020507@trash.net>
On Wednesday 21 May 2008 8:00:09 am Patrick McHardy wrote:
> James Morris wrote:
> > On Wed, 21 May 2008, Patrick McHardy wrote:
> >> Pablo Neira Ayuso wrote:
> >>> As for now we only support dumping. This patch adds support to
> >>> change the secmark from ctnetlink.
> >>
> >> I'm wondering whether this isn't subverting the intent of
> >> secmark since AFAIK SELinux doesn't have finegrained
> >> controls for netlink messages. OTOH, it also doesn't have
> >> finegrained control over iptables rulesets.
> >>
> >> James, does this patch look OK to you?
> >
> > There is some fine-grained netlink coverage, but it is incomplete
> > (the various generic netlink layers likely need to be consolidated
> > first).
> >
> > Currently, the SECMARK and CONNSECMARK targets call out to
> > selinux_secmark_relabel_packet_permission() when SELinux is active
> > to obtain a permission check. So, detection of the current
> > security model would need to be similarly performed.
>
> Thanks for the explanation.
Sorry, I don't subscribe to netfilter-devel so I missed the original
discussion; I'm subscribed now.
I agree with James that we need to perform some access check before
setting the ct->secmark field, however, I don't think it is as simple
as calling selinux_secmark_relabel_packet_permission(). The problem is
that the selinux_secmark_relabel_packet_permission() function checks to
see if the currently running task can relabel packets; in this case we
don't want to check the currently running task we want to check the
sender of the netlink message which we can't really do currently. The
next best thing is to provide access control around the individual
netlink message types which we can currently do.
>From what I can tell (I'm no netfilter expert), we need to ensure that
only privileged process have the ability to send netlink messages with
type (NFNL_SUBSYS_CTNETLINK | IPCTNL_MSG_CT_NEW) which should be
possible using the code in security/selinux/nlmsgtab.c. You would need
to create a NETLINK_NETFILTER nlmsg_perm struct first like the others
for routing, XFRM, audit, etc.
> > The bigger issue perhaps is whether there's really a need to set
> > secmark via ctnetlink.
>
> I think Pablo wants to use it for synchronization with conntrackd,
> but I'm not sure.
To be honest I'm a little uneasy about this because we don't have a way
to perform any "good" access check (there is no subject in this case
since we can't check the security label of the process sending the
netlink message). Has anyone checked to see if setting the secmark via
conntrackd works? I really doubt it would since the actual secmakr
integer value is specific, in the SELinux case, to a particular running
kernel and not globally recognized by other systems even if they are
running the same kernel and SELinux policy. There are ways to
workaround this by passing the string based label between systems but
even that can have issues if the security policies differ slightly.
--
paul moore
linux @ hp
next prev parent reply other threads:[~2008-05-21 16:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-20 22:29 [PATCH 3/4] add support for modifying secmark via ctnetlink Pablo Neira Ayuso
2008-05-21 11:15 ` Patrick McHardy
2008-05-21 11:42 ` James Morris
2008-05-21 12:00 ` Patrick McHardy
2008-05-21 16:46 ` Paul Moore [this message]
2008-05-21 16:54 ` Stephen Smalley
2008-05-21 17:13 ` Patrick McHardy
2008-05-22 18:11 ` Stephen Smalley
2008-05-22 19:08 ` Patrick McHardy
2008-05-21 17:41 ` Paul Moore
2008-05-21 17:11 ` Patrick McHardy
2008-05-21 17:51 ` Paul Moore
2008-05-21 17:55 ` Stephen Smalley
2008-05-21 19:03 ` Pablo Neira Ayuso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200805211246.07481.paul.moore@hp.com \
--to=paul.moore@hp.com \
--cc=jmorris@namei.org \
--cc=kaber@trash.net \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
--cc=sds@tycho.nsa.gov \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.