SSTP versus OpenVPN: a mesma porta 443, outro protocolo
SSTP envolve PPP em HTTPS e vem com o Windows. OpenVPN traz o próprio cliente e pode usar UDP. O número da porta não é o protocolo.
Ambas as opções podem ficar atrás de TCP 443, por isso as pessoas assumem que são extremos intercambiáveis. Não são: SSTP servidor fala PPP dentro de HTTPS, enquanto um servidor OpenVPN fala o próprio protocolo sobre TLS ou por um fluxo UDP cru. Apontar um cliente para a porta do outro produz uma conexão que nunca chega a um aviso de início de sessão. A escolha é sobre que cliente e que transporte você consegue suportar, não sobre o número.
Uma porta partilhada não cria um protocolo partilhado
O handshake TLS pode concluir-se e mesmo assim não levar a lugar nenhum, porque depois o cliente e o servidor não concordam sobre o que dizer a seguir. Numa captura de pacotes vê um handshake limpo seguido de dados de aplicação que a outra parte rejeita ou ignora. Esse padrão é a assinatura de uma incompatibilidade de protocolo e não de um bloqueio da firewall.
Nem um perfil renomeado nem outra entrada de menu converte um no outro. Uma conexão SSTP é criada nas configurações de VPN do Windows com um endereço de servidor e os dados de autenticação do operador, enquanto uma conexão OpenVPN precisa do cliente e do ficheiro de configuração correspondente. A especificação SSTP da Microsoft descreve a primeira e não descreve um handshake OpenVPN.
A porta 443 é uma comodidade de política. Atravessa redes que permitem pouco mais, e isso é uma vantagem real, mas não diz nada sobre que protocolo corre atrás dela.
SSTP encapsula PPP dentro de HTTPS
O nome descreve a construção: tramas PPP transportadas dentro de uma sessão HTTPS, o que significa TLS por baixo e um certificado que o cliente pode verificar. O Windows inclui isto como tipo de VPN nativo, pelo que um portátil gerido pode frequentemente ligar-se sem software adicional além do perfil fornecido pelo operador.
Outras plataformas são outra história. Um cliente Linux ou macOS precisa de uma implementação mantida, e estas variam no que suportam e na forma como comunicam erros. Verifique o cliente que realmente pretende usar em vez de assumir que a capacidade integrada do Windows se transfere, e confirme que o nome do servidor no perfil corresponde ao certificado apresentado pelo servidor.
O SSTP é normalmente apenas TCP. Esse único transporte afeta o comportamento numa ligação com perdas, porque a retransmissão ocorre dentro do túnel e também por baixo.
O OpenVPN traz o próprio cliente e uma escolha de transporte
O OpenVPN fornece o próprio cliente e perfil, o que lhe dá diagnósticos que uma caixa de diálogo nativa do Windows não expõe. O servidor pode escutar em UDP ou TCP, e a configuração do operador decide qual o seu cliente deve usar. Um perfil apontado para o transporte errado falha antes da autenticação.
A autenticação depende igualmente da configuração. Uma implementação pode exigir apenas certificados, certificados mais um nome de utilizador e palavra-passe, ou um segundo fator por cima, e o cliente tem de corresponder exatamente a essa disposição. O facto de uma conexão chegar à fase TLS não lhe diz que credenciais vai pedir a seguir.
O UDP é o padrão habitual porque evita aninhar um fluxo fiável dentro de outro fluxo fiável. O modo TCP existe para redes que bloqueiam UDP, e funciona, mas perdas elevadas podem fazê-lo sentir-se pior do que o caminho UDP que substituiu. Escolha TCP quando tiver de ser, não porque soa mais fiável.
Escolha por cliente, transporte e suporte
Três perguntas resolvem a maioria destas decisões. Cada dispositivo cliente precisa de uma ligação que funcione sem software adicional? A rede de que depende permite UDP, ou é TCP 443 a única saída? E quem suporta o cliente, as suas atualizações e a sua recuperação quando um perfil expira?
Ao comparar os dois, teste no mesmo dispositivo e na mesma rede de acesso. Se o extremo SSTP e o extremo OpenVPN forem servidores diferentes ou locais diferentes, o seu resultado inclui essas rotas e máquinas em vez de isolar o protocolo. É a forma mais comum de estas comparações produzirem uma resposta confiante mas errada.
Depois confirme qual estabeleceu realmente antes de depurar qualquer outra coisa:
> Get-VpnConnection -Name "Office SSTP" | Select-Object TunnelType, ServerAddress
> openvpn --config office.ovpn --verb 4
De qualquer forma, termine testando o recurso e o DNS de que precisa em vez de declarar sucesso no estado do túnel. Ambos os protocolos podem ser configurados para transportar apenas tráfego privado selecionado, e um túnel ligado sem resolução de nomes funcional parece uma VPN avariada quando na realidade é um desenho de túnel dividido ou de DNS.
Numa frota gerida, a distribuição de perfis e o suporte de atualizações decidem normalmente a questão muito antes de qualquer medição de transporte.