We have several internal relays, and two internet-facing relays.
In our ActionSite.afxm, we have one of our internal relays defined as the x-bes-fallback-server:
x-bes-fallback-server: internal-relay.bigfix.company.com
If I try to enroll an offsite computer, I predictably see issues connecting to the internal relay to enroll (because the device is not on the same network):
At 22:48:10 -0400 -
RegisterOnce: Attempting secure registration with 'https://internal-relay.bigfix.company.com:52311/cgi-bin/bfenterprise/clientregister.exe?RequestType=RegisterMe&ClientVersion=11.0.5.204&Body=549858408&SequenceNumber=67&MinRelayVersion=7.1.1.0&CanHandleMVPings=1&Root=http://bigfix.company.com%3a52311&[...]
At 22:50:40 -0400 -
RegisterOnce: GetURL failed - General transport failure. - SOCKET CONNECT (winsock error 4294967288 - registration url - http://internal-relay.bigfix.company.com:52311/cgi-bin/bfenterprise/clientregister.exe?RequestType=RegisterMe&ClientVersion=11.0.5.204&Body=549858408&SequenceNumber=67&MinRelayVersion=7.1.1.0&CanHandleMVPings=1&Root=http://bigfix.company.com%3a52311&[...]
I then initiate a manual key exchange so the device can enroll, using one of our internet-facing authenticating relays:
sudo ./Library/BESAgent/BESAgent.app/Contents/MacOS/BESAgent -register xxx http://public-relay.bigfix.company.com:52311
which succeeds:
Initializing for key exchange.
Cryptographic module initialized successfully.
Sending key exchange request to http://public-relay.bigfix.company.com:52311/
Successfully collected client certificate.
However, the client does not then proceed with enrollment through the public relay — it instead continues to try and connect to the same internal relay defined in the afxm as the x-bes-fallback-server, and fails because the device is not on our internal network.
Starting over, if I define one of our public, authenticating relays as the x-bes-fallback-server, remote devices can successfully enroll after performing a manual key exchange. But now, all devices, including those onsite, need to perform a manual key exchange because the first relay they connect to is authenticating.
Is there a solution that accomplishes...
- Onsite devices enroll with just the installation package
- Offsite devices enroll after a manual key exchange
- Neither set of devices requires adding additional settings to the clientsettings.cfg
?
Our requirement is that as much as possible is handled before the technician gets to the device, so we can't ask them to modify their clientsettings.cfg files (trying to avoid this as much as possible — asking them to modify the clientsettings.cfg will not go over well).
If it's not currently possible, is either of the below feature requests reasonable?
- After performing a successful manual key exchange, device proceeds to enroll with the authenticating relay it established a connection with
- A second relay can be defined in the masthead (not clientsettings.cfg) to attempt connecting to after the
x-bes-fallback-serverfails to connect.
Thanks for any insight or advice.