On Sun, Mar 1, 2020 at 4:38 PM Simon Tideswell <stidesw...@gmail.com> wrote:

> Hello
>
> In case someone else gets tripped up by this, when upgrading from 6.8.0-1
> to 6.9.0-1 on Ubuntu 18 (and possibly other platforms) the sense of
> *strict_hostname_checking* changes. Previously it appears it was set to
> *false* by default.
>
> This means that a node manifest like ...
>
> *node 'my-lovely-node' {*
> *     stuff*
> *}*
>
> ... will work. But with the upgrade it changes to *true* meaning the
> above will not work (and chaos ensues).
>
> After the change, if you don't set strict_hostname_checking to false in
> puppet.conf for the Puppet master, you will need this ...
>
> *node 'my-lovely-node.mydomain.com <http://my-lovely-node.mydomain.com>' {*
> *     stuff*
> *}*
>
> Not a biggy, but I wasted half an hour or so one Saturday morning because
> of this. Hopefully if someone reads this before upgrading they can save a
> similar minor irritation.
>

Thanks for calling that out, Simon. It should be in the release notes but
that was done because the code that matches the nodename segments also
allows matching on several facts (hostname, domain, fqdn) as well as
certname.

Originally, this was an intentional design decision by Puppet (12+ years
ago) that a node could contribute to its own classification and that the
flexibility outweighed any security concerns (once a node's cert was
compromised the entire estate was effectively compromised as any node could
find out anything about any other node - including the master).

However, that was before the Puppet 4 language extensions, a reliable
external node classifier, or various fact improvements (or having to be
audited by large customer security teams). Since then we've generally built
Puppet features towards the idea that a compromised agent cert only
compromises that agent's info.

We looked into "fixing" the domain segment matching so that it only used
the node's certname but there were internal concerns that there could be
accidental leakage with "my-lovely-node.west.domain.com" retrieving "
my-lovely-node.east.domain.com"s classification. Consequently, we've
deprecated both strict_hostname_checking & node_name settings with the
intention of removing them in Puppet 7 (no eta).

We believe use cases served by those features are now available in the
Puppet language, eg:
node /my-lovely-node.*/ { ... }

We've left the setting in for now though so users can time their upgrades
to newer syntax appropriately.

HTH,
Justin


PS. h/t to @Abaddon for his work with us on this issue



> Simon
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to puppet-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/01b325c5-c9de-4fc4-97ed-b408b00d9cd9%40googlegroups.com
> <https://groups.google.com/d/msgid/puppet-users/01b325c5-c9de-4fc4-97ed-b408b00d9cd9%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/CA%2B%3DBEqV-p-JHY_e7v-gX5Lqk7WcxgGP89e97oOO9-KCudTnG8w%40mail.gmail.com.

Reply via email to