Forum: Cfengine Help
Subject: Need help troubleshooting Remote Access key exchange
Author: regan99
Link to topic: https://cfengine.com/forum/read.php?3,21233,21233#msg-21233

Hi,

I've been having a tough time getting two machines (one policy server, one 
client) to exchange keys and allow cf-runagent to work correctly. I based my 
setup on the instructions given in Section 7 of the Cfengine3 Tutorial, but 
things are not behaving the way the documentation says. Is there any better 
documentation available for setting up remote access? In particular, 
understanding the complete options available to the cf-key command, and 
understanding all of the components needed in the server control and server 
access_rules bundles would be extremely helpful.

And for those who may be interested in helping me troubleshoot directly, here's 
what I have going on:

The bundle configs in promises.cf... I'm listing the one from the client, but 
the policy server's is identical, except it allows the entire Class C IP 
netblock 192.168.52.0/24 (these are just VM's running on my PC):


#
# Body to control cf-runagent execution
#
body runagent control
{
    trustkey => "true";
    hosts    => { "127.0.0.1", "192.168.52.140" };
RUNAGENT_WEB_SERVERS::
    hosts    => { "web1", "web2", "web3" };
}

#
# Body to control cf-serverd execution
#
body server control
{
    # Which hosts are permitted/trusted to connect to cf-serverd
    allowallconnects    => { "127.0.0.1", "192.168.52.140" };
    trustkeysfrom       => { "127.0.0.1", "192.168.52.140" };

    # Control access on a per user basis
    allowusers          => { "root" };

    # The command to be executed by cf-runagent (through cf-serverd)
    cfruncommand        => "$(sys.workdir)/bin/cf-execd -FK -f runagent.cf";
}

#
# Access rules for cf-serverd
#
bundle server access_rules() {

# What part of the system available to be run via cf-runcommand.  If you execute
# programs other than cf-engine programs, you will need to specify the path for
# those programs here.
access:

    "$(sys.workdir)/bin" admit => { "127.0.0.1", "192.168.52.140" };

# Here you can control in details which users can define what classes (which
# may be used to control execution). You can use this to restrict what bundles
# can be executed by different users, by controlling bundle execution with
# classes and then only allowing users to define classes for bundles they are
# authorized to run.
roles:

    ".*" authorize => { "root" };

}


And here is the output when i run 'cf-runagent -v -H 192.168.52.140' on the 
client:


community> Initiate variable convergence...
community>  -> Checking common class promises...
community>  -> Checking common class promises...
community> SET trustkey = 1
community>  -> Matched IP 192.168.52.140 to key 
MD5=044aab4cdce604d9d767b5772699c26e
community> 
...........................................................................
community>  * Hailing 192.168.52.140 : 5308, with options "" (serial)
community> 
...........................................................................
community> No existing connection to 192.168.52.140 is established...
community> Set cfengine port number to 5308 = 5308
community> Set connection timeout to 10
community>  -> Connect to 192.168.52.140 = 192.168.52.140 on port 5308
community>  -> Matched IP 192.168.52.140 to key 
MD5=044aab4cdce604d9d767b5772699c26e
community>  -> Going to secondary storage for key
community> .....................[.h.a.i.l.].................................
community> Strong authentication of server=192.168.52.140 connection confirmed
community>  -> Public key identity of host "192.168.52.140" is 
"MD5=044aab4cdce604d9d767b5772699c26e"
community>  -> Last saw 192.168.52.140 (+MD5=044aab4cdce604d9d767b5772699c26e) 
first time now
community>  -> Going to secondary storage for key
community>  !!  Unspecified server refusal (see verbose server 
output)community> Couldn't recv
community>  !!! System error for recv: "Connection reset by peer"
community>  -> Writing last-seen observations
community>  -> Last-seen record for -MD5=09e1e924604de306fd8b23f57527e40c 
expired after 318.5 > 168.0 hours
community>  -> Last-seen record for -MD5=7d1032521c7eb1c496b83129c51d29f7 
expired after 264.8 > 168.0 hours
community>  -> Last saw +MD5=044aab4cdce604d9d767b5772699c26e (alias 
192.168.52.140) at Mon Mar 21 17:10:31 2011
 (noexpiry 0.3 <= 168.0)


Has anybody had this same problem? And if so, how did you solve it? Thanks!

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to