From: "David P. Quigley" <dpquigl@tycho.nsa.gov>
To: hch@infradead.org, viro@zeniv.linux.org.uk,
casey@schaufler-ca.com, sds@tycho.nsa.gov,
matthew.dodd@sparta.com, trond.myklebust@fys.uio.no,
bfields@fieldses.org
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov,
labeled-nfs@linux-nfs.org
Subject: [Labeled-nfs] [RFC v4] Security Label Support for NFSv4
Date: Wed, 26 Nov 2008 16:03:00 -0500 [thread overview]
Message-ID: <1227733394-1114-1-git-send-email-dpquigl@tycho.nsa.gov> (raw)
Hello,
This is the latest version of the NFS label support patch set. The set
contains one patch which will be removed when it makes it's way upstream from
the NFS maintainers' trees. This is the patch to fix a use before init bug in
the nfs4recovery code. Changes since the last patchset are listed below.
If you want a tree with the patches already applied we have posted a public
git tree that is ready for cloning and use. This tree can be found at
http://git.selinuxproject.org/git. You can find information on how to build
and setup a labeled nfs at http://www.selinuxproject.org/page/Labeled_NFS.
Features:
* Client
* Obtains labels from server for NFS files while still allowing for
SELinux context mounts to override untrusted labeled servers.
* Allows setting labels on files over NFS via xattr interface.
* Server
* Exports labels to clients. As of the moment there is no ability to
restrict this based on label components such as MLS levels.
* Persistent storage of labels assuming exported file system supports
it.
Changes since last patchset:
The life cycle management patch has been fixed to return the error from kmalloc
up the call stack. The patch use to have a panic in the case of memory
allocation failure which was a temporary measure until this was ready.
Inode locking was added around the functions in the NFS server code which
assign the label to the inode when received from the wire.
Memory allocations were changed from GFP_ATOMIC to GFP_KERNEL
An bug that resulted in memory corruption when MLS support was enabled has
also been fixed.
The process label transport mechanism has been removed from the patchset since
a new version of it is in the works. This new method provides the security
guarantees needed for our purposes while providing compatibility with
existing rpcsec flavors and fixing a potential MITM attack against kerberos. A
more detailed explanation of the mechanism will be given when the design has
been solidified and we have an initial implementation.
fs/Kconfig | 30 +++
fs/nfs/client.c | 16 ++
fs/nfs/dir.c | 32 +++-
fs/nfs/getroot.c | 44 +++-
fs/nfs/inode.c | 69 +++++-
fs/nfs/namespace.c | 3 +
fs/nfs/nfs3proc.c | 7 +
fs/nfs/nfs4proc.c | 489 +++++++++++++++++++++++++++++++---
fs/nfs/nfs4xdr.c | 55 ++++-
fs/nfs/proc.c | 12 +-
fs/nfs/super.c | 46 ++++-
fs/nfs/unlink.c | 12 +-
fs/nfsd/export.c | 3 +
fs/nfsd/nfs4proc.c | 35 +++-
fs/nfsd/nfs4recover.c | 6 +-
fs/nfsd/nfs4xdr.c | 106 +++++++-
fs/nfsd/vfs.c | 28 ++
fs/xattr.c | 55 +++-
include/linux/nfs4.h | 8 +
include/linux/nfs4_mount.h | 6 +-
include/linux/nfs_fs.h | 26 ++
include/linux/nfs_fs_sb.h | 2 +-
include/linux/nfs_xdr.h | 7 +
include/linux/nfsd/export.h | 5 +-
include/linux/nfsd/nfsd.h | 9 +-
include/linux/nfsd/xdr4.h | 3 +
include/linux/security.h | 88 +++++++
include/linux/xattr.h | 1 +
security/capability.c | 29 ++
security/security.c | 32 +++
security/selinux/hooks.c | 141 +++++++++--
security/selinux/include/security.h | 4 +
security/selinux/ss/policydb.c | 5 +-
security/smack/smack_lsm.c | 10 +
34 files changed, 1315 insertions(+), 109 deletions(-)
next reply other threads:[~2008-11-26 21:03 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-26 21:03 David P. Quigley [this message]
2008-11-26 21:03 ` [PATCH 01/14] patch fix_use_before_init_in_nfsd4_list_rec_dir David P. Quigley
2008-11-26 21:03 ` [PATCH 02/14] VFS: Factor out part of vfs_setxattr so it can be called from the SELinux hook for inode_setsecctx David P. Quigley
2008-11-26 21:03 ` [PATCH 03/14] LSM/SELinux: inode_{get,set,notify}secctx hooks to access LSM security context information David P. Quigley
2008-12-05 9:58 ` James Morris
2008-12-05 15:25 ` David P. Quigley
2008-12-05 17:32 ` David P. Quigley
2008-12-12 21:50 ` Matthew N. Dodd
2008-11-26 21:03 ` [PATCH 04/14] Security: Add hook to calculate context based on a negative dentry David P. Quigley
[not found] ` <1227733394-1114-1-git-send-email-dpquigl-+05T5uksL2qpZYMLLGbcSA@public.gmane.org>
2008-11-26 21:03 ` [PATCH 05/14] Security: Add Hook to test if the particular xattr is part of a MAC model David P. Quigley
2008-11-26 21:03 ` [PATCH 06/14] SELinux: Add new labeling type native labels David P. Quigley
2008-11-26 21:03 ` [PATCH 07/14] KConfig: Add KConfig entries for Labeled NFS David P. Quigley
2008-11-26 21:03 ` [PATCH 08/14] NFSv4: Add label recommended attribute and NFSv4 flags David P. Quigley
2008-12-05 2:38 ` James Morris
2009-04-03 8:31 ` James Morris
2009-04-03 9:59 ` David P. Quigley
2009-04-03 11:43 ` James Morris
2009-04-03 12:23 ` David P. Quigley
2009-04-05 23:33 ` James Morris
2009-04-03 11:29 ` David P. Quigley
2008-11-26 21:03 ` [PATCH 09/14] NFS: Add security_label text mount option and handling code to NFS David P. Quigley
2008-12-05 4:47 ` James Morris
2008-12-12 21:43 ` [Labeled-nfs] " Matthew N. Dodd
2008-11-26 21:03 ` [PATCH 10/14] NFS: Introduce lifecycle management for label attribute David P. Quigley
2008-12-05 5:45 ` James Morris
2008-11-26 21:03 ` [PATCH 11/14] NFSv4: Introduce new label structure David P. Quigley
2008-11-26 21:03 ` [PATCH 12/14] NFS: Client implementation of Labeled-NFS David P. Quigley
2008-12-05 9:39 ` James Morris
2008-11-26 21:03 ` [PATCH 13/14] NFS: Extend NFS xattr handlers to accept the security namespace David P. Quigley
2008-11-26 21:03 ` [PATCH 14/14] NFSD: Server implementation of MAC Labeling David P. Quigley
2008-12-05 10:00 ` James Morris
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=1227733394-1114-1-git-send-email-dpquigl@tycho.nsa.gov \
--to=dpquigl@tycho.nsa.gov \
--cc=bfields@fieldses.org \
--cc=casey@schaufler-ca.com \
--cc=hch@infradead.org \
--cc=labeled-nfs@linux-nfs.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=matthew.dodd@sparta.com \
--cc=sds@tycho.nsa.gov \
--cc=selinux@tycho.nsa.gov \
--cc=trond.myklebust@fys.uio.no \
--cc=viro@zeniv.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).