TL; DR : Se você usar o IPsec: tente desativar "IPsec passthrough", no roteador NAT no escritório remoto . Ou seja a caixa que os clientes VPN estão por trás e que possui o único IP público.
Eu acho que esse é o seu verdadeiro problema. Mudar para o pfsense com o mesmo protocolo VPN não ajudaria.
Você deve dizer qual protocolo VPN está usando no momento (IPsec?). Eu suponho que você esteja usando todo o software embutido no Windows, ou você teria mencionado isso ...
Você está certo em sinalizar "um IP público" como um problema. O NAPT (NAT) precisa lidar com cada protocolo IP sendo usado. Se o protocolo VPN for executado diretamente sobre IP, ele estará sujeito a limitações da caixa NAPT no escritório remoto. Limitações como o máximo de uma conexão a qualquer momento - tenho certeza que já vi isso em roteadores domésticos.
Some Passthroughs are limited to one VPN tunnel at a time; other implementations use fields like IPsec SPI to multiplex several tunnels through one NAT-ing device. VPN Passthrough isn't a standard and behavior varies by product. Cite - quote is not really paywalled - just scroll down.
Nesse caso, você deseja executar seu protocolo VPN por meio de UDP / IP, em vez de diretamente por IP. Isto é frequentemente rotulado NAT-T, para "NAT Traversal". (E, ao contrário da passagem de VPN, é um padrão).
Para forçar o NAT-T, tente configurar sua caixa do NAPT para bloquear VPN sobre IP. Em outras palavras, desative o recurso "VPN passthrough". Os clientes VPN terão que usar o NAT-T. IPsec do Windows cliente e server 2003 deve suportar isso imediatamente. De acordo com o link do cliente acima, talvez seja necessário garantir que o servidor VPN tenha um endereço IP público próprio. ("NAT-T ... foi desativado por padrão para o caso quando o servidor VPN também está atrás de um dispositivo NAT").
Alternativamente, substitua sua caixa NAT, por uma que ofereça suporte a passagem de seu protocolo VPN com tantas conexões quantas forem necessárias:
.O mesmo problema se aplica ao PPTP, mas pior porque você não pode executá-lo sobre o UDP. (Por favor, não use o PPTP, ele é não seguro ).