[LUDOC-197] Complete Lustre Manual updates for IU Shared Secret Key authentication and encryption Created: 30/Oct/13 Updated: 10/Jan/17 Resolved: 10/Jan/17 |
|
| Status: | Resolved |
| Project: | Lustre Documentation |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Story | Priority: | Minor |
| Reporter: | Jodi Levi (Inactive) | Assignee: | Lustre Manual Triage |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | SSK | ||
| Attachments: |
|
||||||||||||||||
| Issue Links: |
|
||||||||||||||||
| Rank (Obsolete): | 11343 | ||||||||||||||||
| Description |
|
This is for the Lustre Manual updates for IU Shared Secret Key authentication and encryption feature. |
| Comments |
| Comment by Andreas Dilger [ 07/Nov/15 ] |
|
Nathan, thanks for the documentation. It would be most convenient if this was uploaded to Gerrit and/or into the lustre.org wiki in a form that could be reviewed and updated directly. Some of my comments may be related to issues in the implementation and not necessarily gaps in the documentation, in which case the comments/questions are directed at Jeremy. Some comments here to start:
|
| Comment by Jeremy Filizetti [ 10/Nov/15 ] |
We'll have to work on something, a lot of this was notes about the Lustre security things I put together while working on the SK. Much if it I don't remember the specifics but I wanted to at least capture all the hidden/undocumented things the code supported. I'll need to review a lot of this to check for accuracy and testing to see if it works but it is beyond the SK scope. So we could trim some of it out into a separate document for now until it can be reviewed. For now I've noted those places as code review below.
Updated the default wording. I need to dig deeper into the NID support in the code but there is no nodemap tie in today. This was sptlrpc in general but would be good to have as a future enhancement.
Updated
code review
The security contexts are actually target/import/obd based. I find this to be less then ideal but it is how it works today, in the future we could probably do some work to change this.
MGC is in fact a separate key. I just hit this last week when testing and found it was not working due to significant differences in the obd_name for MGC targets. There is an "-o mgssec=<flavor>" option to mount.lustre. I'm still open to changing how the shared key handles these keys but the mgssec option has been in Lustre for years even though its not documented in the man page or help options. There is a separate sptlrpc file in the CONFIGS directory and it doesn't work correctly with "set_param -P" which I filed a bug for.
Updated
code review
code review
updated
Nathan I discussed creating some recommendations with examples. We will update as we get through more testing.
It's not but I like the idea to include it. Not sure how much effort that is since I don't mess with the Lustre build scripts.
I believe this was one of the things Sebastien fixed with resolving which interface the requests come from. http://review.whamcloud.com/#/c/14042/. Not 100% sure but it is kerberos related not SK.
updated
I would agree its not ideal but it was the most reasonable way I could find to meet all the requirements I had with the missing information available at different locations in the stack and auth process.
Possibly but the whole sunrpc caching piece would have to thrown out so it would be significant amount of work.
Thinking from my use case I'll never use kerberos and there is no reason to allow gssnull so to minimize the security perimeter you can disable those which you don't need. Just one more layer in the onion. I've removed the note about the addition as part of the shared key feature, we've attempted to involve those using kerberos as part of the process for code reviews so they should be aware of the change.
updated
updated
That's probably reasonable, I'll try to update things.
There is no real key expiration in the sense of key usability. It is the administrators responsibility to remove keys from the keyring that are no longer "valid". They will also have to purge their security contexts which is not detailed yet in the document. The expiration here is actually for the sptlrpc context tied to a session. The intention is to force connections to generate new Diffie-Hellman sessions keys which offer perfect forward secrecy (PFS) minimizing the amount of data used with a particular key.
see above
What I envisioned for a use case:
I'll fix this. |
| Comment by Andreas Dilger [ 10/Nov/15 ] |
In that case, it would be useful to make this intent clear in the documentation that this timeout is for the session keys. It also would be better to use an default session key timeout that actually makes this functionality useful out of the box (e.g. 1 day or 1 week, rather than 60+ years). Is there any harm from expiring the session keys regularly? |
| Comment by Nathan Rutman [ 11/Nov/15 ] |
|
| Comment by John Hammond [ 23/Nov/15 ] |
|
Does lgss_sk exist somewhere? |
| Comment by Jeremy Filizetti [ 02/Dec/15 ] |
|
It exists in the shared key code that has not been pushed yet. |
| Comment by Nathan Lavender (Inactive) [ 04/Dec/15 ] |
|
In order to build Lustre with the Shared Key patches you must install the following packages on your build server: libgssglue libgssglue-devel krb5-libs krb5-devel openssl-devel. These dependencies are in addition to those listed in the build document here: https://wiki.hpdd.intel.com/pages/viewpage.action?pageId=8126821 Then pass option '--enable-gss' when configuring the patched Lustre source:
|
| Comment by Gerrit Updater [ 09/Nov/16 ] |
|
Nathan Lavender (nblavend@iu.edu) uploaded a new patch: http://review.whamcloud.com/23673 |
| Comment by Gerrit Updater [ 10/Jan/17 ] |
|
Joseph Gmitter (joseph.gmitter@intel.com) merged in patch https://review.whamcloud.com/23673/ |
| Comment by Joseph Gmitter (Inactive) [ 10/Jan/17 ] |
|
Patch has landed |