Advice on setting up (vpn?) between four small business office locations

I have been asked to set up connectivity between four office locations for a friends business. Right now, they use a combination of vnc and Onedrive, which is not ideal!

Each location needs to be able to access data/directory shares, and use a secure connection to each of the other locations.

I am familiar with the concept of hub and spoke, but am unsure what I need to implement this. Each location has a dedicated IP address; so my assumption is that each location will have its own subnet:

- Location 1 (10.0.1.0)
- Location 2 (10.0.2.0)
- Location 3 (10.0.3.0)
- Location 4 (10.0.4.0)

Or something to that effect. I also assume we would use a VPN from each of the locations to a central location?

What do I need for each of the locations in terms of hardware? This is not a big operation, so spending a lot on Cisco appliances may be a stretch. What would I need to use at the central/hub location? Would it be possible to use an AWS Customer Gateway? I am not sure what the performance of that is like however.

Thank you!

The cheapest method is something like a pfSense firewall on any random hardware. The next step up is a vendor firewall like a FortiGate (that would also give you the possibility of ADVPN, so each connection would easily be able to set up connection to the other locations without involving the hub).

sdwan solution if wanting a full mesh maybe look at eg meraki.

or s2s ipsec vpn between routers or firewall hardware.

Zerotier is a full mesh vpn. When used with a routing protocol such as ospf, rip, or bgp, each site will be able to directly communicate with each other without hair pinning through one site. Host your own controller with ztncui for a completely free solution.

Identify the branch with best internet plan/speeds. Put your main one there. All 3 others connect to it. Use pfSense or something.

You could do this from a decent firewall to vmx vpn concentrator. This is how I connect my global sites.

Please keep in mind, my advice comes from an hobbyist/enthusiast experience, not from a professional MSP / admin perspective.

The simple solution is Hub & Spoke: Pick the fastest location (or rent a server in a datacenter), have all locations connect via [OpenVPN / WireGuard / IPSec].

Another option would be a wireguard mesh config. You mentioned each location has a dedicated IP address. So you could create a config for each location that has the other three locations as peers so e.g. traffic from loc2 to loc3 does not need to go through the one central location.
There is a helper module for this, but you could do all of this by hand: github.com/k4yt3x/wg-meshconf

Regarding hardware, this depends on yoru supported internet speeds. For example, the Negtate 4200 looks like a great fit for up to gigabit speeds.

After that, you still need a solution for remote desktop and filesharing. Assuming it’s just randomly grown hardware without a domain, this could be the bigger task at hand.

Cisco’s end of year is coming up in July. Buy four MX65’d and turn AutoVPN on. It’s got its limits but if your needs are simple the whole thing just works.

I did this same thing in the early 00s with Linux boxes.

Any off the shelf solution should do. Folks mentioned pfsense, that’s a great solution.

What equipment do you have right now in each office? might not have to buy additional equipment assuming each office has a somewhat of a decent router….if that’s the case…

  • Setup ipsec tunnel from the office with the fastest internet to all other offices
  • Use OSPF or BGP to share routing tables between the offices

Step one is have redundant connections at all sites. Ideally a fibre with an lte backup in case of fibre cut very cheap to add a secondary

Pfsense project sells hardware under the Netgate brand. Solid boxes, too.

Opn sense has hardware

Meraki, he said not a big budget.

s2s - as in S2S communications?

Why is it so many people default to the old-ass IPsec?

It’s an ancient, gigantic pile of code that is slow and supports too many insecure standards. The giant pile of code makes it much harder to audit and the old insecure standard support makes it easier to accidentally (or unknowingly) configure it in an insecure manner.

Why use it for regular site-to-site VPNs when OpenVPN and Wireguard exist?

Edit: I don’t understand why everyone is downvoting and nobody is actually answering my question.

This is one of my favorite solutions. Works great, however I did notice a little bit of throughput issues through the tunnel(ie both sites have a 300/300 link but I was only able to make transfers of around 40Mb/s)

Why are the MX65’s so cheap on ebay? They are easily 8-10x as much on Amazon

Each location consists of comcast business connection with static IP addresses

Because IPsec has been the de-facto standard for decades. Security is as strong as you make it. It is a large code base, but it’s perfectly feasible to deploy it securely and it has broad support across enterprise hardware.