Chris St. Pierre wrote:

> I'd like to set up a ruleset in cfengine so that, when I add a new
> machine to the network (and to cfengine), its public key gets
> automatically propagated through the other hosts.

You are dealing with cfengine keys, right? When I am building a new
machine, I make sure the policy host does not have a key for the new IP
address, and allow cfservd to slurp up the new keys with TrustKeysFrom.
It is not the most general solution, and there are some security
considerations (there is a short window where an attacker could
impersonate the newly unused IP address), but it works well for me.

http://www.cfengine.org/docs/cfengine-Reference.html#TrustKeysFrom

> I understand that I have to run cfservd on each host -- I already am
> -- but I'm not sure what the ruleset would be. I can't seem to wrap
> my mind around how to copy keys from each host to the policyhost (or
> to the other machines on the network) without naming each machine
> explicitly in cfservd.conf.

If you want to go this route, the policy host would need to initiate the
copy. Nothing is needed in the client cfservd.conf other than a line
to permit access to the policy host. You will need to somehow maintain
the list of clients to copy from, in the cfengine code that gets
interpreted by the policy host. You might be able to use an iterated
copy with a variable, but I have not tried that so I am not sure if it
would work. Depending on how much you are interested in a hack solution,
you could also do something like generating a list of clients out of
the connection logs or the connection database that cfservd keeps. That
probably requires some "out of band" infrastructure though.

Best,
Brendan

--
Senior System Administrator
The University of Chicago
Department of Computer Science

http://www.cs.uchicago.edu/people/brendan
http://praksys.blogspot.com/
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
http://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to