All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH v2 00/18] CALIPSO Implementation
@ 2016-01-08  9:52 ` Huw Davies
  0 siblings, 0 replies; 4+ messages in thread
From: Huw Davies @ 2016-01-08  9:52 UTC (permalink / raw)
  To: netdev, linux-security-module, selinux; +Cc: Paul Moore

This patch series implements RFC 5570 - Common Architecture Label IPv6
Security Option (CALIPSO).  Its goal is to set MLS sensitivity labels
on IPv6 packets using a hop-by-hop option.  CALIPSO is very similar to
its IPv4 cousin CIPSO and much of this series is based on that code.

I'm particularly interested in feedback relating to adding
struct ipv6_txoptions* to struct inet_request_sock.
(ipv6: Allow request socks to contain IPv6 options.)

Thoughts about this or any of the other patches are most welcome.

If anybody actually wants to play with this, then you'll need some patches
to netlabel-tools that are currently available on the 'calipso' branch at:
https://github.com/hdmdavies/netlabel_tools.git

Thanks to Paul Moore, Hannes Frederic Sowa and Casey Schaufler for their
comments so far.

Changes between v2 and v1:

* Simplify ipv6_renew_options_kern() to use set_fs(KERNEL_DS).
  Thanks to Hannes Frederic Sowa for suggesting this.

* Use the parent socket to account for the listener socket
  option's memory usage.  Again, thanks for Hannes for this.

* Added netlbl_cfg_calipso_* functions for SMACK.

* Rebased to v4.4-rc8.

Huw Davies (18):
  netlabel: Mark rcu pointers with __rcu.
  netlabel: Add an address family to domain hash entries.
  netlabel: Initial support for the CALIPSO netlink protocol.
  netlabel: Add support for querying a CALIPSO DOI.
  netlabel: Add support for enumerating the CALIPSO DOI list.
  netlabel: Add support for creating a CALIPSO protocol domain mapping.
  netlabel: Add support for removing a CALIPSO DOI.
  ipv6: Add ipv6_renew_options_kern() that accepts a kernel mem
    pointer.
  netlabel: Move bitmap manipulation functions to the NetLabel core.
  calipso: Set the calipso socket label to match the secattr.
  netlabel: Prevent setsockopt() from changing the hop-by-hop option.
  ipv6: Allow request socks to contain IPv6 options.
  calipso: Allow request sockets to be relabelled by the lsm.
  calipso: Allow the lsm to label the skbuff directly.
  netlabel: Pass a family parameter to netlbl_skbuff_err().
  calipso: Add validation of CALIPSO option.
  calipso: Add a label cache.
  netlabel: Implement CALIPSO config functions for SMACK.

 include/net/calipso.h               |   91 +++
 include/net/inet_sock.h             |    7 +-
 include/net/ipv6.h                  |   10 +-
 include/net/netlabel.h              |  101 ++-
 include/uapi/linux/audit.h          |    2 +
 include/uapi/linux/in6.h            |    1 +
 net/dccp/ipv6.c                     |   12 +-
 net/ipv4/cipso_ipv4.c               |   88 +--
 net/ipv4/tcp_input.c                |    3 +
 net/ipv6/Makefile                   |    1 +
 net/ipv6/af_inet6.c                 |    9 +-
 net/ipv6/calipso.c                  | 1487 +++++++++++++++++++++++++++++++++++
 net/ipv6/exthdrs.c                  |   76 ++
 net/ipv6/exthdrs_core.c             |    2 +-
 net/ipv6/ipv6_sockglue.c            |    1 -
 net/ipv6/sysctl_net_ipv6.c          |   19 +
 net/ipv6/tcp_ipv6.c                 |   12 +-
 net/netlabel/Kconfig                |    1 +
 net/netlabel/Makefile               |    2 +-
 net/netlabel/netlabel_calipso.c     |  744 ++++++++++++++++++
 net/netlabel/netlabel_calipso.h     |  153 ++++
 net/netlabel/netlabel_domainhash.c  |  281 +++++--
 net/netlabel/netlabel_domainhash.h  |   17 +-
 net/netlabel/netlabel_kapi.c        |  385 ++++++++-
 net/netlabel/netlabel_mgmt.c        |   86 +-
 net/netlabel/netlabel_mgmt.h        |   27 +-
 net/netlabel/netlabel_unlabeled.c   |    5 +-
 net/netlabel/netlabel_user.c        |    5 +
 security/selinux/hooks.c            |   21 +-
 security/selinux/include/netlabel.h |    4 +-
 security/selinux/netlabel.c         |   36 +-
 security/smack/smack_lsm.c          |    2 +-
 32 files changed, 3492 insertions(+), 199 deletions(-)
 create mode 100644 include/net/calipso.h
 create mode 100644 net/ipv6/calipso.c
 create mode 100644 net/netlabel/netlabel_calipso.c
 create mode 100644 net/netlabel/netlabel_calipso.h

-- 
1.8.0


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

* [RFC PATCH v2 00/18] CALIPSO Implementation
@ 2016-01-08  9:52 ` Huw Davies
  0 siblings, 0 replies; 4+ messages in thread
From: Huw Davies @ 2016-01-08  9:52 UTC (permalink / raw)
  To: netdev, linux-security-module, selinux

This patch series implements RFC 5570 - Common Architecture Label IPv6
Security Option (CALIPSO).  Its goal is to set MLS sensitivity labels
on IPv6 packets using a hop-by-hop option.  CALIPSO is very similar to
its IPv4 cousin CIPSO and much of this series is based on that code.

I'm particularly interested in feedback relating to adding
struct ipv6_txoptions* to struct inet_request_sock.
(ipv6: Allow request socks to contain IPv6 options.)

Thoughts about this or any of the other patches are most welcome.

If anybody actually wants to play with this, then you'll need some patches
to netlabel-tools that are currently available on the 'calipso' branch at:
https://github.com/hdmdavies/netlabel_tools.git

Thanks to Paul Moore, Hannes Frederic Sowa and Casey Schaufler for their
comments so far.

Changes between v2 and v1:

* Simplify ipv6_renew_options_kern() to use set_fs(KERNEL_DS).
  Thanks to Hannes Frederic Sowa for suggesting this.

* Use the parent socket to account for the listener socket
  option's memory usage.  Again, thanks for Hannes for this.

* Added netlbl_cfg_calipso_* functions for SMACK.

* Rebased to v4.4-rc8.

Huw Davies (18):
  netlabel: Mark rcu pointers with __rcu.
  netlabel: Add an address family to domain hash entries.
  netlabel: Initial support for the CALIPSO netlink protocol.
  netlabel: Add support for querying a CALIPSO DOI.
  netlabel: Add support for enumerating the CALIPSO DOI list.
  netlabel: Add support for creating a CALIPSO protocol domain mapping.
  netlabel: Add support for removing a CALIPSO DOI.
  ipv6: Add ipv6_renew_options_kern() that accepts a kernel mem
    pointer.
  netlabel: Move bitmap manipulation functions to the NetLabel core.
  calipso: Set the calipso socket label to match the secattr.
  netlabel: Prevent setsockopt() from changing the hop-by-hop option.
  ipv6: Allow request socks to contain IPv6 options.
  calipso: Allow request sockets to be relabelled by the lsm.
  calipso: Allow the lsm to label the skbuff directly.
  netlabel: Pass a family parameter to netlbl_skbuff_err().
  calipso: Add validation of CALIPSO option.
  calipso: Add a label cache.
  netlabel: Implement CALIPSO config functions for SMACK.

 include/net/calipso.h               |   91 +++
 include/net/inet_sock.h             |    7 +-
 include/net/ipv6.h                  |   10 +-
 include/net/netlabel.h              |  101 ++-
 include/uapi/linux/audit.h          |    2 +
 include/uapi/linux/in6.h            |    1 +
 net/dccp/ipv6.c                     |   12 +-
 net/ipv4/cipso_ipv4.c               |   88 +--
 net/ipv4/tcp_input.c                |    3 +
 net/ipv6/Makefile                   |    1 +
 net/ipv6/af_inet6.c                 |    9 +-
 net/ipv6/calipso.c                  | 1487 +++++++++++++++++++++++++++++++++++
 net/ipv6/exthdrs.c                  |   76 ++
 net/ipv6/exthdrs_core.c             |    2 +-
 net/ipv6/ipv6_sockglue.c            |    1 -
 net/ipv6/sysctl_net_ipv6.c          |   19 +
 net/ipv6/tcp_ipv6.c                 |   12 +-
 net/netlabel/Kconfig                |    1 +
 net/netlabel/Makefile               |    2 +-
 net/netlabel/netlabel_calipso.c     |  744 ++++++++++++++++++
 net/netlabel/netlabel_calipso.h     |  153 ++++
 net/netlabel/netlabel_domainhash.c  |  281 +++++--
 net/netlabel/netlabel_domainhash.h  |   17 +-
 net/netlabel/netlabel_kapi.c        |  385 ++++++++-
 net/netlabel/netlabel_mgmt.c        |   86 +-
 net/netlabel/netlabel_mgmt.h        |   27 +-
 net/netlabel/netlabel_unlabeled.c   |    5 +-
 net/netlabel/netlabel_user.c        |    5 +
 security/selinux/hooks.c            |   21 +-
 security/selinux/include/netlabel.h |    4 +-
 security/selinux/netlabel.c         |   36 +-
 security/smack/smack_lsm.c          |    2 +-
 32 files changed, 3492 insertions(+), 199 deletions(-)
 create mode 100644 include/net/calipso.h
 create mode 100644 net/ipv6/calipso.c
 create mode 100644 net/netlabel/netlabel_calipso.c
 create mode 100644 net/netlabel/netlabel_calipso.h

-- 
1.8.0

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

* Re: [RFC PATCH v2 00/18] CALIPSO Implementation
  2016-01-08  9:52 ` Huw Davies
  (?)
@ 2016-02-07 19:56 ` Paul Moore
  2016-02-11 14:57   ` Huw Davies
  -1 siblings, 1 reply; 4+ messages in thread
From: Paul Moore @ 2016-02-07 19:56 UTC (permalink / raw)
  To: Huw Davies; +Cc: netdev, linux-security-module, selinux

On Friday, January 08, 2016 09:52:36 AM Huw Davies wrote:
> This patch series implements RFC 5570 - Common Architecture Label IPv6
> Security Option (CALIPSO).  Its goal is to set MLS sensitivity labels
> on IPv6 packets using a hop-by-hop option.  CALIPSO is very similar to
> its IPv4 cousin CIPSO and much of this series is based on that code.
> 
> I'm particularly interested in feedback relating to adding
> struct ipv6_txoptions* to struct inet_request_sock.
> (ipv6: Allow request socks to contain IPv6 options.)
> 
> Thoughts about this or any of the other patches are most welcome.
> 
> If anybody actually wants to play with this, then you'll need some patches
> to netlabel-tools that are currently available on the 'calipso' branch at:
> https://github.com/hdmdavies/netlabel_tools.git
> 
> Thanks to Paul Moore, Hannes Frederic Sowa and Casey Schaufler for their
> comments so far.
> 
> Changes between v2 and v1:
> 
> * Simplify ipv6_renew_options_kern() to use set_fs(KERNEL_DS).
>   Thanks to Hannes Frederic Sowa for suggesting this.
> 
> * Use the parent socket to account for the listener socket
>   option's memory usage.  Again, thanks for Hannes for this.
> 
> * Added netlbl_cfg_calipso_* functions for SMACK.
> 
> * Rebased to v4.4-rc8.

Thanks for fixing this patchset up and sending out a v2.  I took a closer look 
and just sent out my comments, let me know if you have any questions.

Once we get to a v3 patchset, I think it's time to reach out Oracle and try 
some interop with Solaris TX.  Let me know when you are ready and I'll put 
everybody in touch to try to get some testing going.

-- 
paul moore
security @ redhat

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

* Re: [RFC PATCH v2 00/18] CALIPSO Implementation
  2016-02-07 19:56 ` Paul Moore
@ 2016-02-11 14:57   ` Huw Davies
  0 siblings, 0 replies; 4+ messages in thread
From: Huw Davies @ 2016-02-11 14:57 UTC (permalink / raw)
  To: Paul Moore; +Cc: netdev, linux-security-module, selinux

On Sun, Feb 07, 2016 at 02:56:18PM -0500, Paul Moore wrote:
> Thanks for fixing this patchset up and sending out a v2.  I took a closer look 
> and just sent out my comments, let me know if you have any questions.
> 
> Once we get to a v3 patchset, I think it's time to reach out Oracle and try 
> some interop with Solaris TX.  Let me know when you are ready and I'll put 
> everybody in touch to try to get some testing going.

Thanks for your comments, Paul.  I've replied to a couple of them with
answers.  For all of others, assume that I have incorporated those
suggestions.  I should get v3 out sometime next week.

Thanks again,
Huw.

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

end of thread, other threads:[~2016-02-11 14:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-08  9:52 [RFC PATCH v2 00/18] CALIPSO Implementation Huw Davies
2016-01-08  9:52 ` Huw Davies
2016-02-07 19:56 ` Paul Moore
2016-02-11 14:57   ` Huw Davies

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.