All of lore.kernel.org
 help / color / mirror / Atom feed
* security context for SPD entries of labeled IPsec
@ 2007-11-06  3:59 KaiGai Kohei
  2007-11-06 10:00 ` KaiGai Kohei
  0 siblings, 1 reply; 9+ messages in thread
From: KaiGai Kohei @ 2007-11-06  3:59 UTC (permalink / raw)
  To: cpebenito; +Cc: selinux

We have to set up several SPD entries with a security context
to apply labeled IPsec, like as:

  spdadd 192.168.1.10 192.168.1.20 any
  -ctx 1 1 "system_u:object_r:unconfined_t:s0"
  -P in ipsec esp/transport//require;

What is the most appropriate context to be specified?
Or, is the security policy to be modified?

In the current reference policy, several domain have permissions
of association class for 'self' or 'unlabeled_t'.
However, it can cause a matter when 'unconfined_t' processes tries
to connect 'postgresql_t' process running on another host via labeled
IPsec, for instance.

We can add additional permissions to avoid the matter, as follows:
  allow postgresql_t unconfined_t : association { ... };

But IMO it makes a bit confusable to apply process's domain as
a type of SPD entries, like unconfined_t and so on.

I prefer the following description to separate subject and object.
  allow postgresql_t postgresql_spd_t : association { ... };
  allow unconfined_t postgresql_spd_t : association { ... };

Is there any reason why SPD entries have same type with domains?

Thanks,
-- 
OSS Platform Development Division, NEC
KaiGai Kohei <kaigai@ak.jp.nec.com>

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 9+ messages in thread
* RE: security context for SPD entries of labeled IPsec
@ 2007-11-06 17:37 Venkat Yekkirala
  2007-11-07  2:47 ` KaiGai Kohei
  0 siblings, 1 reply; 9+ messages in thread
From: Venkat Yekkirala @ 2007-11-06 17:37 UTC (permalink / raw)
  To: KaiGai Kohei, cpebenito; +Cc: selinux

> -----Original Message-----
> From: owner-selinux@tycho.nsa.gov 
> [mailto:owner-selinux@tycho.nsa.gov]On Behalf Of KaiGai Kohei
> Sent: Tuesday, November 06, 2007 4:00 AM
> To: cpebenito@tresys.com
> Cc: selinux@tycho.nsa.gov
> Subject: Re: security context for SPD entries of labeled IPsec
> 
> 
> KaiGai Kohei wrote:
> > We have to set up several SPD entries with a security context
> > to apply labeled IPsec, like as:
> > 
> >   spdadd 192.168.1.10 192.168.1.20 any
> >   -ctx 1 1 "system_u:object_r:unconfined_t:s0"
> >   -P in ipsec esp/transport//require;
> > 
> > What is the most appropriate context to be specified?

First of all, you don't have one SPD rule for each domain. You
would typically have one SPD rule labeled with ipsec_spd_t,
for example and have all the domains that need to use that
SPD rule to perform labeled IPsec communication to have
association.polmatch access to ipsec_spd_t. So, the policy defines
one context ipsec_spd_t that you can use for all your SPD rules,
unless you need to distinguish between different SPD rules based
on the label, in which case you can have more than one specified
for the same host pair and have different domains polmatch'ing
to the appropriate rules so the corresponding IPSec policy is
enforced.

Joshua Brindle has an article including labeled-ipsec at:
http://securityblog.org/brindle/2007/05/28/secure-networking-with-selinux/

> > Or, is the security policy to be modified?
> > 
> > In the current reference policy, several domain have permissions
> > of association class for 'self' or 'unlabeled_t'.
> > However, it can cause a matter when 'unconfined_t' processes tries
> > to connect 'postgresql_t' process running on another host 
> via labeled
> > IPsec, for instance.

There are 2 aspects:

1. IPsec policy matching discussed above:
   allow domain-that-should-use-labeled-ipsec ipsec_spd_t:association { polmatch };

2. Use of IPsec associations themselves:

   For sending:
   allow domain-that-should-use-labeled-ipsec-to-label-its-packets self:association { sendto };

   For receiving:
   allow domain-that-should-received-from-peer  peer-domain self:association { recvfrom };

> > 
> > We can add additional permissions to avoid the matter, as follows:
> >   allow postgresql_t unconfined_t : association { ... };
> > 
> > But IMO it makes a bit confusable to apply process's domain as
> > a type of SPD entries, like unconfined_t and so on.

Definitely so, which is the reason there's ipsec_spd_t defined in the policy
to be used for all SPD rules that should perform labeled IPsec.

> > 
> > I prefer the following description to separate subject and object.
> >   allow postgresql_t postgresql_spd_t : association { ... };
> >   allow unconfined_t postgresql_spd_t : association { ... };
> 
> In policy/modules/system/ipsec.te, ipsec_spd_t is defined as a default
> type for IPSEC SPD entries, as follows:
> 
>   # Default type for IPSEC SPD entries
>   type ipsec_spd_t;
>       :
>   allow racoon_t ipsec_spd_t:association setcontext;
>       :
>   allow setkey_t ipsec_spd_t:association setcontext;
>       :
> 
> However, setkey_t and racoon_t are the all which have any permission
> on ipsec_spd_t.
> Is it more preferable than applying a domain as a type of SPD entries?

Yes. Hope the above helps.

> 
> Thanks,
> 
> > Is there any reason why SPD entries have same type with domains?
> > 
> > Thanks,
> 
> -- 
> OSS Platform Development Division, NEC
> KaiGai Kohei <kaigai@ak.jp.nec.com>
> 
> --
> This message was distributed to subscribers of the selinux 
> mailing list.
> If you no longer wish to subscribe, send mail to 
> majordomo@tycho.nsa.gov with
> the words "unsubscribe selinux" without quotes as the message.
> 

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 9+ messages in thread
* RE: security context for SPD entries of labeled IPsec
@ 2007-11-06 17:56 Venkat Yekkirala
  0 siblings, 0 replies; 9+ messages in thread
From: Venkat Yekkirala @ 2007-11-06 17:56 UTC (permalink / raw)
  To: KaiGai Kohei, cpebenito; +Cc: selinux

<SNIP>

> There are 2 aspects:
> 
> 1. IPsec policy matching discussed above:
>    allow domain-that-should-use-labeled-ipsec 
> ipsec_spd_t:association { polmatch };
> 
> 2. Use of IPsec associations themselves:
> 
>    For sending:
>    allow 
> domain-that-should-use-labeled-ipsec-to-label-its-packets 
> self:association { sendto };
> 
>    For receiving:
>    allow domain-that-should-received-from-peer  peer-domain 
> self:association { recvfrom };

If you ignore the typos in the above rule, it would be:
allow domain-that-should-receive-from-peer  peer-domain:association { recvfrom };

<snip>

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 9+ messages in thread
* RE: security context for SPD entries of labeled IPsec
@ 2007-11-07 16:07 Venkat Yekkirala
  2007-11-08 14:22 ` KaiGai Kohei
  0 siblings, 1 reply; 9+ messages in thread
From: Venkat Yekkirala @ 2007-11-07 16:07 UTC (permalink / raw)
  To: KaiGai Kohei; +Cc: cpebenito, selinux

<snip>
> > There are 2 aspects:
> > 
> > 1. IPsec policy matching discussed above:
> >    allow domain-that-should-use-labeled-ipsec 
> ipsec_spd_t:association { polmatch };
> > 
> > 2. Use of IPsec associations themselves:
> > 
> >    For sending:
> >    allow 
> domain-that-should-use-labeled-ipsec-to-label-its-packets 
> self:association { sendto };
> > 
> >    For receiving:
> >    allow domain-that-should-received-from-peer  peer-domain 
> self:association { recvfrom };
> 
> When we consider the case unconfined_t process tries to 
> communicate with a postgresql_t
> process running on another host via labeled IPsec, the 
> following policy will be needed.
> 
> 1.  allow unconfined_t ipsec_spd_t : association { polmatch };

Also, allow postgresql_t ipsec_spd_t : association { polmatch };
since the incoming packet labeled postgresql_t should be checked
against IPsec policy (SPD) rule labeled with ipsec_spd_t.

> 2s. allow unconfined_t self : association { sendto };

OK.

> 2r. allow postgresql_t unconfined_t : association { recvfrom };

This should actually be:

allow unconfined_t postgresql_t : association { recvfrom };

since it would be the unconfined_t socket that would be receiving
a packet using the postgresql_t association.

> 
> Is it correct?
> 
<snip>

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-11-08 14:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-06  3:59 security context for SPD entries of labeled IPsec KaiGai Kohei
2007-11-06 10:00 ` KaiGai Kohei
2007-11-06 18:14   ` Joy Latten
2007-11-07  4:42     ` KaiGai Kohei
  -- strict thread matches above, loose matches on Subject: below --
2007-11-06 17:37 Venkat Yekkirala
2007-11-07  2:47 ` KaiGai Kohei
2007-11-06 17:56 Venkat Yekkirala
2007-11-07 16:07 Venkat Yekkirala
2007-11-08 14:22 ` KaiGai Kohei

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.