Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
How to modify client authentication in passenger based puppet master behind ssl proxy
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  5 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
opoplawski  
View profile  
 More options Aug 17 2012, 7:00 pm
From: opoplawski <or...@cora.nwra.com>
Date: Fri, 17 Aug 2012 16:00:08 -0700 (PDT)
Local: Fri, Aug 17 2012 7:00 pm
Subject: How to modify client authentication in passenger based puppet master behind ssl proxy

I've configured our DMZ apache webserver to proxy connections from our
roaming users into our internal puppet master running under
passenger/apache.  Everything is pretty much working but because I am using
SSL between the proxy server and the puppet master, the master treats the
connection as authenticated as the proxy.  My current work around is to
allow access to all catalog and node items to the proxy server in
auth.conf.  I'd like to try to get the master to use the ssl authentication
information passed by the proxy as the authentication for the connection
but so far have been completely unsuccessful.  Does anyone know how this
can be done?  I've been poking around the code a bit but I haven't been
able to find out where the authenticated host information comes from, and
I've unable to modify anything in the apache configuration to change this.

TIA,

 Orion


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Calvin Walton  
View profile  
 More options Aug 19 2012, 1:05 am
From: Calvin Walton <calvin.wal...@kepstin.ca>
Date: Sun, 19 Aug 2012 01:05:42 -0400
Local: Sun, Aug 19 2012 1:05 am
Subject: Re: [Puppet Users] How to modify client authentication in passenger based puppet master behind ssl proxy

On Fri, 2012-08-17 at 16:00 -0700, opoplawski wrote:
> I've configured our DMZ apache webserver to proxy connections from our
> roaming users into our internal puppet master running under
> passenger/apache.  Everything is pretty much working but because I am using
> SSL between the proxy server and the puppet master, the master treats the
> connection as authenticated as the proxy.  My current work around is to
> allow access to all catalog and node items to the proxy server in
> auth.conf.  I'd like to try to get the master to use the ssl authentication
> information passed by the proxy as the authentication for the connection
> but so far have been completely unsuccessful.  Does anyone know how this
> can be done?  I've been poking around the code a bit but I haven't been
> able to find out where the authenticated host information comes from, and
> I've unable to modify anything in the apache configuration to change this.

To start with, I'm going to assume that the passenger/apache
configuration looks something like this:
http://docs.puppetlabs.com/guides/passenger.html#apache-configuration...
and that your proxy server apache configuration probably looks something
like this:
http://projects.puppetlabs.com/projects/puppet/wiki/Using_Mongrel#Apa...

If you read through, you note that the authenticated host information
gets passed to puppet through the three headers that are set by apache:
X-SSL-Subject, X-Client-DN, X-Client-Verify.

The trick to getting your case to work is to edit the puppet master's
passenger/apache configuration to pass through the values of these three
headers when receiving a request from the proxy server, instead of
filling them in from the ssl certificate. I'm not familiar enough with
apache to know the exact syntax for this.

Do note that you want to make sure to *only* pass through these headers
when receiving a request from the proxy server! Otherwise any client
could connect, even on unsecured HTTP, and pretend to be authenticated
as whomever it wants by just adding headers to the request.

--
Calvin Walton <calvin.wal...@kepstin.ca>


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
opoplawski  
View profile  
 More options Aug 20 2012, 12:03 pm
From: opoplawski <or...@cora.nwra.com>
Date: Mon, 20 Aug 2012 09:03:18 -0700 (PDT)
Local: Mon, Aug 20 2012 12:03 pm
Subject: Re: [Puppet Users] How to modify client authentication in passenger based puppet master behind ssl proxy

'
Yes, my config is very much as described.  However, I do not believe that
puppet does anything with the X-* headers in this case.  I can set them to
something completely non-sensical in the apache config (or at least try to)
and puppet still sees the ssl client as the authenticating host.  The
comments above setting those headers mention "Pound", so I suspect they are
not used in this configuration.  Unfortunately I'm not familiar enough with
the application framework to confirm where the authentication stuff is
coming from.  I believe it is coming from the SSL_CLIENT_S_DN_CN and/or
SSL_CLIENT_S_DN environment variables set by mod_ssl.  Also, it appears
that it may be impossible to change those variables with SetEnv in the
apache config or perhaps even in another apache module.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
opoplawski  
View profile  
 More options Aug 20 2012, 1:09 pm
From: opoplawski <or...@cora.nwra.com>
Date: Mon, 20 Aug 2012 10:09:21 -0700 (PDT)
Local: Mon, Aug 20 2012 1:09 pm
Subject: Re: How to modify client authentication in passenger based puppet master behind ssl proxy

What I ended up doing is setting up a second passenger config that only
accepts connections from the proxy.  This config does *not* set "SSLOption
+StdEnvVars" and instead sets the SSL_CLIENT* variables based on the proxy
headers.  It also is configured to only accept authenticated connections
from the proxy.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
kp-v  
View profile  
 More options Aug 20 2012, 2:17 pm
From: kp-v <kevin.grenville.phill...@gmail.com>
Date: Mon, 20 Aug 2012 11:17:08 -0700 (PDT)
Local: Mon, Aug 20 2012 2:17 pm
Subject: Re: How to modify client authentication in passenger based puppet master behind ssl proxy

I think the best starting point is to read this article:
http://www.masterzen.fr/2010/11/14/puppet-ssl-explained/

It explains the entire process. You could use squid to intercept incoming
requests, decrypt, then reencrypt with backend headers.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »