Por que Little Snitch negou uma conexão de entrada para openvpn de vpn.btguard.com?

Por que Little Snitch negou uma conexão de entrada para openvpn de vpn.btguard.com?

Estou na minha VPN BTGuard e recebi aleatoriamente um pop-up de negação de conexão do Little Snitch. As notas da entrada em LS são:

Em 29 de maio de 2019, vpn.btguard.com tentou estabelecer uma conexão de entrada com o openvpn. A solicitação foi negada automaticamente porque esse tipo de conexão não pode ser adiada.

Responder1

Provavelmente é algo como um pacote perdido da última vez em que você se conectou. Por exemplo, o cliente OpenVPN foi reiniciado, mas o servidor ainda tentou enviar dados na sessão anterior.

OpenVPN (por padrão e na configuração do BTGuard) roda sobre UDP, que é um protocolo de transporte sem estado no qual existemnãopacotes explícitos de 'estabelecer conexão' ou 'desconectar', sem números de sequência, nada exceto um par de números de porta.

  • No TCP, hosts e firewalls começam a rastrear uma conexão assim que veem os pacotes SYN (handshake). Mas no UDP, como não existe nenhum tipo de pacote de “conexão” (apenas pacotes de dados), os firewalls simplesmente começam a rastrear “conexões” apósqualquerpacote que eles veem.

  • No TCP, hosts e firewalls esquecem uma conexão assim que veem os pacotes FIN (desconexão). Mas no UDP, como não há nenhum tipo de pacote de 'desconexão', os firewalls devem usar tempos limite para expirar "conexões" antigas (por exemplo, a entrada é removida sempre que fica ociosa por 60 segundos ou 180 segundos ou 10 minutos ou similar).

  • É claro que programas como o OpenVPN podem ter comandos 'conectar' / 'desconectar' em seu protocolo de camada de aplicação, mas um firewall não sabe nada sobre isso – ele apenas vê o UDP com alguns dados dentro.

Então o que às vezes acontece é:

  1. Ou o OpenVPN reinicia/sai e o firewall esquece todas as entradas associadas ao processo antigo, ou a conexão VPN fica inativa por tanto tempo que o firewall se esquece dela devido ao alcance do tempo de expiração.

  2. No entanto, o servidor BTGuard não recebeu o pacote de “desconexão” do OpenVPN e também não esqueceu a conexão devido ao tempo limite, então ele tenta enviar alguns dados de volta para você na sessão antiga.

  3. O firewall vê o pacote recebido e temnão há como saberse se trata de uma nova “ligação” ou se pertence a uma já estabelecida. (E também não há como saber se foi originalmente estabelecido externamente ou internamente.)

    Como o firewall não se lembra desse par de portas (por ter esquecido dele na parte 1), ele apenas assume que ele deve ser novo. E por se tratar de um pacote de entrada, o firewall mostra um aviso sobre “conexão de entrada”.

É um palpite, mas é um palpite decente.

informação relacionada