Se você bloquear todas as conexões de entrada, como ainda poderá usar a Internet?

22

Se o seu ISP ou firewall está bloqueando todas as conexões de entrada, como os servidores da Web ainda podem enviar dados para o seu navegador? Você envia a solicitação (de saída) e o servidor envia dados (de entrada). Se você bloquear todas as entradas, como o servidor da web pode responder?

E o streaming de vídeo e jogos multiplayer, onde ele usa o UDP? O UDP não possui conexão, portanto, não há conexão a ser estabelecida; então, como o firewall ou o ISP lidará com isso?

Kunal Chopra
fonte
2
Bloquear todas as chamadas recebidas / Encaminhar todas as chamadas recebidas para o correio de voz? Não o impede de chamar alguém.
WernerCD

Respostas:

43

"Bloqueio de entrada" significa que novas conexões de entrada estão bloqueadas, mas o tráfego estabelecido é permitido. Portanto, se novas conexões de saída forem permitidas, a metade dessa conversa será válida.

O firewall gerencia isso controlando o estado das conexões (esse firewall geralmente é chamado de "stateful firewall"). Ele vê o TCP SYN de saída e permite. Ele vê um SYN / ACK recebido e pode verificar se ele corresponde ao SYN de saída que viu e deixa passar, e assim por diante. Se ele permitir um handshake de três vias (por exemplo, é permitido de acordo com as regras do firewall), permitirá essa conversa. E quando vir o final dessa conversa (FINs ou RST), essa conexão será removida da lista de pacotes permitida.

O UDP é feito da mesma forma, embora envolva o firewall lembrando o suficiente para fingir que o UDP tem uma conexão ou sessão (que o UDP não possui).

gowenfawr
fonte
11
Para o UDP, como não há conexão real, o firewall geralmente rastreia o IP e a porta de destino dos pacotes UDP de saída e, se houver um pacote de entrada com o mesmo IP e porta da origem, ele assumirá que é uma resposta e permitirá
WhiteWinterWolf
17

@gowenfawr tem uma imagem de alto nível em baixo. No entanto, pensei em adicionar alguns detalhes de como a "correspondência" para o rastreamento de conexão é executada, pois pode parecer mágica para os não iniciados.

Toda conexão TCP possui um número de porta de cada lado. Como muitos técnicos sabem, os servidores HTTP rodam na porta 80. Quando o navegador se conecta a um servidor da Web, ele solicita ao sistema operacional que gere um número de porta "local", que será algo aleatório como 29672 que não é usado por nenhum outro Conexão TCP desse computador (e o sistema operacional pode fazer isso porque conhece todas as conexões TCP ativas). Em seguida, um pacote de configuração TCP inicial será enviado do IP da sua máquina (IP_YOURS) e do número da porta 29672 para o IP do servidor Web (IP_WEBSERVER) e a porta número 80. Nesse ponto, o firewall stateful dirá "aha, futuros pacotes da porta IP_WEBSERVER 80 indo para a porta IP_YOURS 29672 não são novas conexões, são respostas a uma conexão existente e devem ser permitidas ". Os firewalls com estado mantêm uma tabela,

Atsby
fonte
3
Isso é quase sempre correto, mas, como alguns pontos menores, os números de porta param em 65535 (são números não assinados de 16 bits) e, além do tempo limite, pacotes com sinalizadores FIN ou RST configurados também podem sinalizar que um TCP agora a conexão está fechada.
reirab
@reirab Oh opa, sim, o número da porta falha. Em caso de fechamento incorreto, é claro que seria possível inspecionar sinalizadores TCP, mas ter que levar em conta a possível perda de pacotes e retransmissão de sequências próximas é complicado o suficiente para que eu assuma que a maioria dos firewalls simplesmente redirecione a entrada da tabela menos usada recentemente, em vez de manter acompanhar com precisão.
@atsby Você sempre pode editar sua postagem e substituir os números de porta por algo mais adequado?
Todos estes são ótimas informações. Só queria adicionar uma coisa às portas discutidas pelos comentários acima. Eles são chamados de 'portas efêmeras' e seu intervalo é definido pelo kernel específico para cada sistema operacional. No Linux você pode obter os de "cat / proc / sys / net / ipv4 / ip_local_port_range" --- o intervalo padrão é "32768-61000"
Arul Selvan