Tenho pensado em configurar meu próprio VPS com um servidor VPN em execução. Na maioria das vezes, o OpenVPN é usado quando os usuários falam sobre a configuração de uma VPN no Linux, mas essa tecnologia parece viver um pouco ao lado de outra tecnologia VPN padrão , precisando de um software cliente especial etc.
Eu estava pensando em configurar um servidor IPSec, provavelmente OpenSWAN , por questões de compatibilidade com um conjunto de clientes heterogêneos (macOS, Android, iPhone, Windows, Linux). Portanto, se isso faz sentido ou não, depende do meu entendimento de uma premissa básica: é assim que IPSec+L2TP é um padrão que posso razoavelmente esperar que seja compreendido/suportado pela maioria dos sistemas operacionais?
Não. É apenas um padrão de fato porque o Microsoft Windows vem com ele.
Nem sempre. Por um lado, há pelo menos duas versões do protocolo de conexão principal, IKEv1 e IKEv2. Daemons IPsec modernos (strongSwan, LibreSwan) suportam ambos – mas, por exemplo, Raccoon nunca foi atualizado para IKEv2, OpenBSD tem dois serviços separados (isakmpd e iked) para as duas versões, e assim por diante.
Os dois pares podem não suportar necessariamente os mesmos mecanismos de autenticação, por exemplo, PSK, mas não chave pública; XAuth, mas não EAP; chave pública, mas não certificado X.509; e assim por diante.
O acima se aplica à configuração de túnel manual/estática. Se você estiver configurando uma VPN "cliente" (com contas de usuário, configuração automática de IP, etc.), tudo fica muito mais complexo porque o IKEv1 simplesmente não tinha essa funcionalidade incorporada - foi feito para configuração estática - então vários fornecedores expandiram à sua maneira.
Por exemplo, Cisco "IPSec VPN" é tecnicamente IKEv1, mas usa o método de autenticação de nome de usuário e senha personalizado "Xauth", bem como extensões Cisco para fornecer o endereço IP do cliente e outros parâmetros de rede.
Posteriormente, muitas dessas extensões foram adotadas como funcionalidade integrada no IKEv2, portanto, agora é possível ter uma "VPN IKEv2" totalmente baseada em padrões sem nenhum complemento.
Enquanto isso, o "IPSec/L2TP VPN" da Microsoft também é IKEv1, mas adiciona uma camada extra dentro da conexão VPN, usando (acredito) uma forma de PPP para autenticação do usuário sobre a autenticação regular de 'host' do IKEv1.
Esses três são completamente incompatíveis: você não pode se conectar a um servidor IPSec/L2TP usando um cliente Cisco, nem o contrário. E você não pode usar nenhum dos dois para se conectar a uma VPN IKEv2.
Pelo menos a maioria desses "softwares clientes especiais" tende a ser mais consistente... Mesmo se você usar apenas IPsec, ainda precisará de um aplicativo porque alguns clientes integrados são um grande problema.
(Por exemplo, o Android alega oferecer suporte a Cisco-IKEv1, mas nunca consegui fazê-lo funcionar, sem mencionar que está usando um software obsoleto sob o capô - então, em vez disso, uso o aplicativo strongSwan.
Da mesma forma, o Windows 10 agora possui um cliente VPN IKEv2 integrado, portanto, você pode usá-lo em vez de L2TP... mas ele ignora metade das configurações fornecidas pelo servidor.)