Christian, if you want reporting without open ports, you can use
"call-collect" capability of CFEngine Enterprise. Call-collect is
re-using on the hub the connections initiated by the clients that are
fetching policy, in order for the hub to ask for reports.
In particular you need to add "call collect interval" in "body server
control" for all hosts, and you need to enable "collect_calls" in the
ACL of the hub. Check the examples here:
https://docs.cfengine.com/lts/reference-components-cf-serverd.html
Dimitris