Obtendo uma VPN somente UDP para funcionar sobre TCP

2

Para um projeto meu, estou procurando possibilidades de ter uma VPN somente UDP funcionando sobre TCP (preferencialmente na porta 443 ou 80). Eu encontrei o seguinte, enquanto fazia algumas pesquisas:

  • Isso é possível com o socat, no entanto, isso não é confiável, já que a conexão UDP pode continuar empurrando o tráfego, enquanto o buffer TCP sobrecarregará.
  • Eu suspeito que isso seja possível com Secure Socket Funneling (SSF) [1], mas não tenho certeza se isso funciona 100% confiável, e se ele empurra o tráfego sobre TCP ou eles encontraram alguma maneira de usar TLS sobre UDP ( parece assim para mim).

Quanto à razão pela qual eu quero que a VPN somente UDP trabalhe sobre TCP: vários firewalls corporativos ou firewalls nacionais bloqueiam o tráfego UDP em portas UDP (aleatórias). É claro que existem portas UDP designadas (digamos 53 DNS) que são abertas principalmente, mas é realmente fácil reconhecer VPN do tráfego regular nessas portas. Eu sei de tráfego imitando, mas isso implica muito a sobrecarga na VPN. O protocolo usado para este projeto é o WireGuard em vez do OpenVPN, no qual o TCP-fallback é o build-in.

Até onde eu sei, não existem boas técnicas (confiáveis) para envolver o tráfego UDP no TCP. Isso é verdade e, em caso afirmativo, existem outras técnicas que poderiam alcançar meu objetivo?

[1] link

    
por Breus 05.09.2018 / 14:27

1 resposta

0

Não posso ajudá-lo com uma resposta direta, mas você pode encontrar boas informações em as fontes abaixo.

Zebedee (fonte aberta desde 2005)

Zebedee is a simple program to establish an encrypted, compressed “tunnel” for TCP/IP or UDP data transfer between two systems. This allows traffic such as telnet, ftp and X to be protected from snooping as well as potentially gaining performance over low-bandwidth networks from compression.

Mais algumas informações podem ser encontradas aqui .

udptunnel

Isso está disponível como um pacote do Linux ( link do Debian ).

Sua fonte é encontrada no GitHub , onde é descrito como:

This project tunnels TCP data through a UDP tunnel. The executable can act as the server or client. The server acts as a proxy for the client, listening on a specified UDP port and creating a connection to a TCP server that the client specifies. The client listens on a TCP port, acting as the server that some TCP client connects to. The client recevies any TCP data on that port and sends the data to the udpserver, which sends it to the TCP connection it made with the desired TCP server.

Apenas para observar que os pacotes UDP que passam por um túnel VPN com base em TCP têm garantia entrega somente para a parte TCP de sua jornada total. Nas partes do caminho total fora do túnel VPN baseado em TCP, a perda de pacotes pode ocorrer.

    
por 05.09.2018 / 18:28