Mesmo com os endereços, o NAT e as portas corretos, regras de segurança podem bloquear o tráfego. Saber como o firewall bloqueia ajuda a localizar o ponto do bloqueio.
O que o firewall faz
O firewall é um filtro que decide quais conexões podem passar, conforme regras baseadas em endereços, na camada Internet, em portas, na camada de Transporte, e, nos equipamentos mais avançados, no conteúdo da aplicação. A maioria dos firewalls atuais acompanha as conexões abertas e, por isso, é chamada de stateful. As respostas de uma conexão iniciada de dentro são liberadas automaticamente, e as conexões novas vindas de fora dependem de uma regra.
Raramente existe um único firewall no caminho:
- o Firewall do Windows, em cada computador;
- o firewall do antivírus, quando o antivírus tem um firewall próprio;
- o firewall do roteador;
- o firewall do provedor;
- o firewall corporativo, um equipamento dedicado, usado em redes maiores.
Descartar e recusar
Um firewall pode bloquear uma conexão de duas formas:
- Descartar: o pacote é eliminado sem resposta, e o cliente espera até o tempo se esgotar. Em inglês, essa ação se chama DROP.
- Recusar: o firewall responde que a conexão foi negada, e a falha é imediata. Em inglês, essa ação se chama REJECT.
A diferença aparece no tempo do teste e ajuda a localizar o bloqueio. O Firewall do Windows, por padrão, descarta as conexões bloqueadas.
Os perfis de rede do Windows
As regras do Firewall do Windows valem para perfis de rede: domínio, privada e pública. Uma regra criada apenas para o perfil privado não vale quando a rede está marcada como pública. Por isso, um computador cuja rede passou a ser identificada como pública pode deixar de aceitar conexões que antes funcionavam.
Sobre desativar o firewall para testar
Desativar o firewall é um teste válido de forma pontual, mas não é um bom procedimento:
- O computador fica exposto, e é fácil esquecer de reativar o firewall.
- Em redes com domínio, as políticas da rede podem reativar o firewall em poucos minutos e invalidar o teste.
- O teste mostra que o firewall participa do problema, mas não mostra qual regra falta.
O procedimento correto é desativar, testar, reativar imediatamente e criar uma regra específica para o serviço. Exemplos de regras, criadas no Prompt de Comando executado como administrador:
netsh advfirewall firewall add rule name="Sincronizacao 9000" dir=in action=allow protocol=TCP localport=9000: libera, no servidor geral, as conexões de entrada na porta do serviço de sincronização;netsh advfirewall firewall add rule name="MySQL 3306" dir=in action=allow protocol=TCP localport=3306: libera, no servidor da loja, as conexões de entrada na porta do banco de dados.
Quando há um antivírus com firewall próprio, a exceção precisa ser criada também no antivírus. Desativar o Firewall do Windows não desativa o firewall do antivírus.
No suporte
Quando a porta responde no próprio servidor, mas não responde a partir de outro computador, o firewall do servidor é um dos principais suspeitos. A correção é uma regra específica e documentada, e não o firewall desligado.
Para guardar
- Pode haver firewall em vários pontos do caminho.
- O descarte gera tempo esgotado, e a recusa gera falha imediata.
- As regras do Firewall do Windows dependem do perfil da rede.
- Desativar o firewall é um teste controlado, e a solução é a regra específica.
Desligar o Firewall do Windows resolveu o problema, mas o problema voltou no dia seguinte. O que provavelmente aconteceu?
O firewall foi reativado, pelo técnico, pelo antivírus ou por uma política da rede, sem que a regra específica tivesse sido criada. A solução é criar a regra para a porta do serviço.
No próprio servidor da loja, a porta 3306 responde. A partir do caixa 01, o teste da mesma porta demora e termina por tempo esgotado. O que essa diferença sugere?
A demora seguida de tempo esgotado indica que algum equipamento está descartando a conexão. Como a porta responde no próprio servidor, o principal suspeito é o firewall do servidor, que precisa de uma regra para a porta 3306.