I currently have servers at 4 locations, and even though this is really just me hobbying around I'd like to know what the "real-world" way of doing this is.
Basically I have certain services that are only running on one location and should only be accessible by my own servers at other locations. Is the usual approach just using firewall rules to restrict access (Possibly paired with authentication)?
Another idea that came to mind was hooking all servers into a VPN network, but that really sounds like a recipe for disaster (Single point of failure, even though you can set-up a redundant VPN).
The services I'm primarily talking about are:
I've seen people suggest setting up a puppetmaster and MQ server per location, but my current budget doesn't have room to be hosting an instance at every location.
Edit: All locations are purely servers, and only 1 location is firewalled (As in LAN).