Authorization is handled by auth.conf, you should look at this file. The 
default syntax which handles this is something like so:

# allow nodes to retrieve their own catalog (ie their configuration)
path ~ ^/catalog/([^/]+)$
method find
allow $1

On May 8, 2012, at 6:55 PM, Josh wrote:
> I continually get error messages about denied requests and can't figure out 
> why...starting to get really frustrated. AFAICT, the SSL stuff doesn't 
> actually work, which makes me think I have something configured incorrectly. 
> This is my first attempt with Passenger. I've previously used Puppet (0.24) 
> with Mongrel and that worked well, I figured I would see how Passenger 
> worked. Seems a lot harder to get going so far.
> 
> I can see a signing request, I sign it, seems to work, but the agent never 
> attempts again. If I manually restart the agent I start getting 403s. If I 
> wipe out the SSL files and restart, the same thing happens: start agent, get 
> request, sign, restart agent, 403, rinse and repeat. It worked as [user] but 
> when I changed it to [agent], everything broke, even with the same 
> certificates. These are the errors I see:
> 
> May  8 21:36:06 puppet puppet-master[11776]: Denying access: Forbidden 
> request: backup1(192.168.3.9) access to /catalog/backup1.int.domain.com 
> [find] at line 98
> May  8 21:36:06 puppet puppet-master[11776]: Forbidden request: 
> backup1(192.168.3.9) access to /catalog/backup1.int.domain.com [find] at line 
> 98
> 
> I also had plugin errors and report errors but I turned those options off. I 
> created the master cert with dns_alt_name=puppet, and I see the extension in 
> the cert ONLY for the master's FQDN cert file, the CA cert file doesn't have 
> an alt name (ssl/certs/ca.pem). Neither does ssl/ca/ca_crt.pem. Is this 
> correct? Does the client also need an alt name in its cert?
> 
> This, believe it or not, is the default puppet.conf I got on FreeBSD (with 
> comments/whitespace removed, [user] changed to [agent], and my domain 
> replaced):
> 
> [agent]
>     tagmap = /usr/local/etc/puppet/tagmail.conf
>     lastrunreport = /var/puppet/state/last_run_report.yaml
>     server = puppet.int.domain.com
>     clientyamldir = /var/puppet/client_yaml
>     clientbucketdir = /var/puppet/clientbucket
>     puppetdlog = /var/puppet/log/puppetd.log
>     report_server = puppet
>     runinterval = 10
>     inventory_port = 8140
>     classfile = /var/puppet/state/classes.txt
>     ca_port = 8140
>     puppetdlockfile = /var/puppet/state/puppetdlock
>     report = false
>     localconfig = /var/puppet/state/localconfig
>     splaylimit = 1800
>     client_datadir = /var/puppet/client_data
>     report_port = 8140
>     lastrunfile = /var/puppet/state/last_run_summary.yaml
>     graphdir = /var/puppet/state/graphs
>     statefile = /var/puppet/state/state.yaml
>     resourcefile = /var/puppet/state/resources.txt
>     reportserver = puppet
>     inventory_server = puppet
>     ca_name = Puppet CA: jail-5.isc.freebsd.org
>     cakey = /var/puppet/ssl/ca/ca_key.pem
>     caprivatedir = /var/puppet/ssl/ca/private
>     capass = /var/puppet/ssl/ca/private/ca.pass
>     cert_inventory = /var/puppet/ssl/ca/inventory.txt
>     cadir = /var/puppet/ssl/ca
>     capub = /var/puppet/ssl/ca/ca_pub.pem
>     csrdir = /var/puppet/ssl/ca/requests
>     serial = /var/puppet/ssl/ca/serial
>     cacert = /var/puppet/ssl/ca/ca_crt.pem
>     cacrl = /var/puppet/ssl/ca/ca_crl.pem
>     signeddir = /var/puppet/ssl/ca/signed
>     autosign = /usr/local/etc/puppet/autosign.conf
>     masterlog = /var/puppet/log/puppetmaster.log
>     modulepath = /usr/local/etc/puppet/modules:/usr/share/puppet/modules
>     ssl_client_header = SSL_CLIENT_S_DN
>     server_datadir = /var/puppet/server_data
>     masterhttplog = /var/puppet/log/masterhttp.log
>     bucketdir = /var/puppet/bucket
>     ssl_client_verify_header = SSL_CLIENT_VERIFY
>     fileserverconfig = /usr/local/etc/puppet/fileserver.conf
>     manifestdir = /usr/local/etc/puppet/manifests
>     manifest = /usr/local/etc/puppet/manifests/site.pp
>     rest_authconfig = /usr/local/etc/puppet/auth.conf
>     yamldir = /var/puppet/yaml
>     reportdir = /var/puppet/reports
>     inventory_terminus = facter
>     plugindest = /var/puppet/lib
>     privatekeydir = /var/puppet/ssl/private_keys
>     hostcsr = /var/puppet/ssl/csr_jail-5.isc.freebsd.org.pem
>     factsource = puppet://puppet/facts/
>     hostpubkey = /var/puppet/ssl/public_keys/jail-5.isc.freebsd.org.pem
>     authconfig = /usr/local/etc/puppet/namespaceauth.conf
>     logdir = /var/puppet/log
>     httplog = /var/puppet/log/http.log
>     publickeydir = /var/puppet/ssl/public_keys
>     pluginsource = puppet://puppet/plugins
>     privatedir = /var/puppet/ssl/private
>     factpath = /var/puppet/lib/facter:/var/puppet/facts
>     hostcert = /var/puppet/ssl/certs/jail-5.isc.freebsd.org.pem
>     localcacert = /var/puppet/ssl/certs/ca.pem
>     certdir = /var/puppet/ssl/certs
>     libdir = /var/puppet/lib
>     requestdir = /var/puppet/ssl/certificate_requests
>     pluginsync = false
>     route_file = /usr/local/etc/puppet/routes.yaml
>     passfile = /var/puppet/ssl/private/password
>     hostprivkey = /var/puppet/ssl/private_keys/jail-5.isc.freebsd.org.pem
>     statedir = /var/puppet/state
>     hostcrl = /var/puppet/ssl/crl.pem
>     bindaddress = 0.0.0.0
>     config = /usr/local/etc/puppet/puppet.conf
>     pidfile = /var/run/puppet/agent.pid
>     rrdinterval = 1800
>     rrddir = /var/puppet/rrd
>     dblocation = /var/puppet/state/clientconfigs.sqlite3
>     railslog = /var/puppet/log/rails.log
>     deviceconfig = /usr/local/etc/puppet/device.conf
>     devicedir = /var/puppet/devices
>     templatedir = /var/puppet/templates
>     archive_file_server = puppet
> 
> There is no auth.conf on the client.
> 
> This is the puppet.conf on the master, also default and sanitized. There is 
> not and never was a [master] section:
> 
> [agent]
>     tagmap = /usr/local/etc/puppet/tagmail.conf
>     ca_server = puppet
>     lastrunreport = /var/puppet/state/last_run_report.yaml
>     clientyamldir = /var/puppet/client_yaml
>     clientbucketdir = /var/puppet/clientbucket
>     puppetdlog = /var/puppet/log/puppetd.log
>     report_server = puppet
>     inventory_port = 8140
>     classfile = /var/puppet/state/classes.txt
>     ca_port = 8140
>     puppetdlockfile = /var/puppet/state/puppetdlock
>     localconfig = /var/puppet/state/localconfig
>     splaylimit = 1800
>     client_datadir = /var/puppet/client_data
>     report_port = 8140
>     lastrunfile = /var/puppet/state/last_run_summary.yaml
>     graphdir = /var/puppet/state/graphs
>     statefile = /var/puppet/state/state.yaml
>     resourcefile = /var/puppet/state/resources.txt
>     reportserver = puppet
>     node_name_value = jail-5.isc.freebsd.org
>     inventory_server = puppet
>     ca_name = Puppet CA: jail-5.isc.freebsd.org
>     cakey = /var/puppet/ssl/ca/ca_key.pem
>     caprivatedir = /var/puppet/ssl/ca/private
>     capass = /var/puppet/ssl/ca/private/ca.pass
>     cert_inventory = /var/puppet/ssl/ca/inventory.txt
>     cadir = /var/puppet/ssl/ca
>     capub = /var/puppet/ssl/ca/ca_pub.pem
>     csrdir = /var/puppet/ssl/ca/requests
>     serial = /var/puppet/ssl/ca/serial
>     cacert = /var/puppet/ssl/ca/ca_crt.pem
>     cacrl = /var/puppet/ssl/ca/ca_crl.pem
>     signeddir = /var/puppet/ssl/ca/signed
>     autosign = /usr/local/etc/puppet/autosign.conf
>     masterlog = /var/puppet/log/puppetmaster.log
>     modulepath = /usr/local/etc/puppet/modules:/usr/share/puppet/modules
>     ssl_client_header = SSL_CLIENT_S_DN
>     server_datadir = /var/puppet/server_data
>     masterhttplog = /var/puppet/log/masterhttp.log
>     bucketdir = /var/puppet/bucket
>     ssl_client_verify_header = SSL_CLIENT_VERIFY
>     fileserverconfig = /usr/local/etc/puppet/fileserver.conf
>     manifestdir = /usr/local/etc/puppet/manifests
>     manifest = /usr/local/etc/puppet/manifests/site.pp
>     rest_authconfig = /usr/local/etc/puppet/auth.conf
>     yamldir = /var/puppet/yaml
>     reportdir = /var/puppet/reports
>     inventory_terminus = facter
>     plugindest = /var/puppet/lib
>     privatekeydir = /var/puppet/ssl/private_keys
>     hostcsr = /var/puppet/ssl/csr_jail-5.isc.freebsd.org.pem
>     factsource = puppet://puppet/facts/
>     hostpubkey = /var/puppet/ssl/public_keys/jail-5.isc.freebsd.org.pem
>     authconfig = /usr/local/etc/puppet/namespaceauth.conf
>     dns_alt_names = puppet
>     logdir = /var/puppet/log
>     httplog = /var/puppet/log/http.log
>     publickeydir = /var/puppet/ssl/public_keys
>     pluginsource = puppet://puppet/plugins
>     privatedir = /var/puppet/ssl/private
>     factpath = /var/puppet/lib/facter:/var/puppet/facts
>     hostcert = /var/puppet/ssl/certs/jail-5.isc.freebsd.org.pem
>     localcacert = /var/puppet/ssl/certs/ca.pem
>     certdir = /var/puppet/ssl/certs
>     libdir = /var/puppet/lib
>     requestdir = /var/puppet/ssl/certificate_requests
>     pluginsync = false
>     route_file = /usr/local/etc/puppet/routes.yaml
>     passfile = /var/puppet/ssl/private/password
>     hostprivkey = /var/puppet/ssl/private_keys/jail-5.isc.freebsd.org.pem
>     statedir = /var/puppet/state
>     hostcrl = /var/puppet/ssl/crl.pem
>     bindaddress = 0.0.0.0
>     config = /usr/local/etc/puppet/puppet.conf
>     pidfile = /var/run/puppet/apply.pid
>     rrdinterval = 1800
>     rrddir = /var/puppet/rrd
>     dblocation = /var/puppet/state/clientconfigs.sqlite3
>     railslog = /var/puppet/log/rails.log
>     deviceconfig = /usr/local/etc/puppet/device.conf
>     devicedir = /var/puppet/devices
>     templatedir = /var/puppet/templates
>     archive_file_server = puppet
> 
> This is my auth.conf on the master, copied from -dist (there was none 
> initially):
> 
> path ~ ^/catalog/([^/]+)$
> method find
> allow $1
> path ~ ^/node/([^/]+)$
> method find
> allow $1
> path /certificate_revocation_list/ca
> method find
> allow *
> path /report
> method save
> allow *
> path /file
> allow *
> path /certificate/ca
> auth no
> method find
> allow *
> path /certificate/
> auth no
> method find
> allow *
> path /certificate_request
> auth no
> method find, save
> allow *
> path /
> auth any
> 
> This is my Apache config on the master:
> 
> PassengerHighPerformance on
> PassengerMaxPoolSize 12
> PassengerPoolIdleTime 1500
> PassengerStatThrottleRate 120
> RackAutoDetect Off
> RailsAutoDetect Off
> Listen 8140
> <VirtualHost *:8140>
>     SSLEngine on
>     SSLCipherSuite SSLv2:-LOW:-EXPORT:RC4+RSA
>     SSLCertificateFile      /var/puppet/ssl/certs/puppet.int.domain.com.pem
>     SSLCertificateKeyFile   
> /var/puppet/ssl/private_keys/puppet.int.domain.com.pem
>     SSLCertificateChainFile /var/puppet/ssl/ca/ca_crt.pem
>     SSLCACertificateFile    /var/puppet/ssl/ca/ca_crt.pem
>     SSLVerifyClient optional
>     SSLVerifyDepth  1
>     SSLOptions +StdEnvVars
>     RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
>     RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e
>     RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e
>     DocumentRoot /usr/local/etc/puppet/rack/public/
>     RackBaseURI /
>     <Directory /local/etc/puppet/rack/>
>         Options None
>         AllowOverride None
>         Order allow,deny
>         allow from all
>     </Directory>
> </VirtualHost>
> 
> Does anything stand out?
> 
> THanks,
> Josh
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/puppet-users/-/LQZ6QHiiiT8J.
> To post to this group, send email to puppet-users@googlegroups.com.
> To unsubscribe from this group, send email to 
> puppet-users+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/puppet-users?hl=en.

-- 
Jo Rhett
Net Consonance : net philanthropy to improve open source and internet projects.



-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to