--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
* How would Kerberos integrate with MCollective? - I don't really understand the relationship between mcollective and puppet yet. How might Kerberos auth affect mcollective based features or future enhancements?
You have the option of PSK, AES, and SSL for MCollective security. I don't believe ActiveMQ supports Kerberos. RabbitMQ added it as a plugin very recently, so I doubt anyone explored using this. You will need to write a kerberos plugin (https://github.com/puppetlabs/marionette-collective/tree/master/plugins/mcollective/security). I would ask on the MCollective mailing list or ping vulcane on IRC #mcollective.
--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
This summer I am working in an environment where we have a well-established Linux + Kerberos + Active Directory infrastructure. We would prefer to re-use that infrastructure rather than maintain a separate private key infrastructure for puppet. So, I am investigating enabling Kerberos authentication for node <-> master authentication. So far it looks like the work breaks up into several pieces:
1 MASTER1.a Configure Apache2 for Kerberos HTTP authentication1.b Retrieve the principle from the web request.1.c Enhance Puppet::Network::AuthStore::Declaration to support Active Directory host principles (e.g. myhost$@EXAMPLE.COM).2 AGENT2.a Acquire/build a Kerberos / GSSAPI capable HTTP client library2.b Integrate it into the puppet agent lifecycleI'm new to puppet and related technologies so would appreciate any high level guidance/suggestions/etc. that the community might have to offer.mjz
---Further details and questions (in no particular order)* POC master progress - So far I have a very small set of non-production quality edits to the puppet master code that allows GET production/node/host$@EXAMPLE.COM to work as expected when using "curl --negotiate -u:" as a client. See:I am just starting to create proper patches for pull requests.
* POC agent progress - I have not yet found a GSSAPI capable http client library, but I have found and successfully tested https://github.com/cbeer/net-ssh-kerberos which depends on git://github.com/zenchild/gssapi.git (MIT) which in turn depends on ffi (LGPLv3). When I get to the client side work I may leverage gssapi to extend Net::HTTP?
* How would Kerberos integrate with MCollective? - I don't really understand the relationship between mcollective and puppet yet. How might Kerberos auth affect mcollective based features or future enhancements?
* Is pulling REMOTE_USER from the environment acceptable? Or do we need a way to get the mod_auth_kerb user into a request header as we do for X-Client-DN and X-Client-Verify? So far mod_rewrite hasn't been cooperating here...
* Apache mod_auth_kerb only? I am focused on using Apache2's mod_auth_kerb. I don't anticipate getting this to work for webrick, and haven't yet investigated nginx. Would a single webserver solution be acceptable?
* There's a related bug here: https://projects.puppetlabs.com/issues/3958 discussion: https://groups.google.com/forum/#!msg/puppet-dev/ECIvFzj4dKo/ivOqTQEKVeoJ* Are there any plans to support ruby 2.0? Net::HTTP apparently has basic auth support in 2.0, which might lead to cleaner Kerberos support (but I really haven't looked at this in detail yet.)
--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
As Trevor said, you'll also need to make sure that the channel remains encrypted. I think that the portions of the code that you are going to be trying to swap out (namely network communication infrastructure) are not currently designed for that. It will probably take a lot of moving things around and creation of some new classes to make something like this slot in cleanly. Also, all of this functionality will need to be optional so that scenarios that don't use kerberos don't take on new dependencies.
Before you start making pull requests for something this large, I think it would be good to outline the parts that you are changing and what the design will be. This also seems like something that would fit well into the armature process (https://github.com/puppetlabs/armatures).
I wouldn't worry about webrick. It is really only acceptable for development setups. As far as multiple webserver setups, we try to stick to plain rack, if possible. When that isn't possible then try to make sure that there is a way of configuring either puppet or the webserver to work together. I believe that historically we have tried to work with apache + passenger and nginx + ??? (that one is a little more fuzzy to me)
--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
On Jun 5, 2013 12:18 PM, "Trevor Vaughan" <tvau...@onyxpoint.com> wrote:
>
> Given that you're going to be using client certs for encryption, why would you bother with Kerberos authentication?
This is what I was wondering as I read this too. One benefit I could see (but at a much smaller scoped project) is the ability to securely auto-sign certs.
If you're already joining a machine to a Kerberos realm, it would be one less step if you could use that trust to provide validation for signing Puppet's client cert. Might be a bigger win for Windows systems, where Kerberos is all but required.
Wil
--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
If you're already joining a machine to a Kerberos realm, then you're probably either doing it at install time using a first layer authorization subsystem (razor type install), or you're hopping on after the fact to register the system, or you're using Puppet to do it.
--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev.
Seems like a decent alternative would be to just have a second webservice/on top of puppet that allows agents to authenticate with their kerberos token and authorize their SSL certificate request that way. That should be fairly easy to build with just some fiddling with mod auth kerb, apache configs and puppet auth.conf.
--On 17 June 2013 23:44, <mze...@vmware.com> wrote:
On Tuesday, June 11, 2013 6:38:59 PM UTC-7, Trevor Vaughan wrote:If you're already joining a machine to a Kerberos realm, then you're probably either doing it at install time using a first layer authorization subsystem (razor type install), or you're hopping on after the fact to register the system, or you're using Puppet to do it.Right. The step where a privileged operation adds a machine to the domain is something that already has to happen. By using Kerberos authentication of agents to the puppet master we eliminate a second privileged operation to register the machine to puppet, and also avoid deploying PKI for agents. We still need PKI for puppet masters -- but that infrastructure is already in place.I hope that makes sense. I think these are important justification points for the armature.--Visit this group at http://groups.google.com/group/puppet-dev.
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Erik Dalén--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To post to this group, send email to puppe...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-dev.
For more options, visit https://groups.google.com/groups/opt_out.
Seems like a decent alternative would be to just have a second webservice/on top of puppet that allows agents to authenticate with their kerberos token and authorize their SSL certificate request that way. That should be fairly easy to build with just some fiddling with mod auth kerb, apache configs and puppet auth.conf.
On Tue, Jun 18, 2013 at 5:36 AM, Erik Dalén <erik.gus...@gmail.com> wrote:Seems like a decent alternative would be to just have a second webservice/on top of puppet that allows agents to authenticate with their kerberos token and authorize their SSL certificate request that way. That should be fairly easy to build with just some fiddling with mod auth kerb, apache configs and puppet auth.conf.Pluggable autosign? We were talking about working on that some internally and there is a pull request open right now that would lay the groundwork.
On Tue, Jun 18, 2013 at 5:36 AM, Erik Dalén <erik.gus...@gmail.com> wrote:
Seems like a decent alternative would be to just have a second webservice/on top of puppet that allows agents to authenticate with their kerberos token and authorize their SSL certificate request that way. That should be fairly easy to build with just some fiddling with mod auth kerb, apache configs and puppet auth.conf.Pluggable autosign? We were talking about working on that some internally and there is a pull request open right now that would lay the groundwork.I would say that we are going to be working on it *real soon now*, but you all probably know my track record on making statements about what we will be working on :(
But my suggestion here wasn't really managing autosign.conf using kerberos or so. It was that you use mod_authnz_krb in apache on the /.*/certificate_status/{certname} endpoint and just allow everyone in the puppet auth.conf. But only allow kerberos tokens matching their host name in the apache config. That way hosts can manage their own certificate status using a krb authenticated HTTP request. So request a cert in the regular way and then use their already existing krb token to authenticate the CSR.
Hmm, had a look at that pull request. Why not use a indirector for autosign? And then just implement a exec terminus similar to the exec node terminus instead of a autosign_command option?