Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Diferença entre negar tudo com deny e permitir tudo no final

Fiquei com uma dúvida sobre a ordem das regras na ACL. Na atividade colocamos um deny tcp e logo depois um permit ip any any.
Mas se eu já neguei o tráfego que não quero, por que preciso explicitamente permitir tudo depois?
Não seria suficiente deixar a ACL terminar sem esse permit? Queria entender melhor como o roteador lê essas regras.

4 respostas

Olá! Julia

Nesse caso especifico, a ACE que é deny TCP, está bloqueando o trafego que vem com protocolo TCP que é o protocolo de transporte da camada 4.
Já o Permit ip any any, está liberando o trafego do protocolo IP, que é da camada 3.

Vou exemplificar

Na imagem abaixo o PC do Pesquisador_A não consegue acessar o site do servidor.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Mas podemos acessar dando um ping para o servidor, pois o protocolo ICMP de camada 3 está liberado.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Então, fiquei com essa mesma dúvida e fui pesquisar melhor como o roteador lê a ACL. A lógica é a seguinte:

Nas ACLs padrão ou estendidas do Cisco, tudo que não é permitido explicitamente é automaticamente negado no final. Existe um implicit deny any any que o roteador coloca sozinho, mesmo que a gente não escreva.

Por isso, quando a gente coloca:

deny tcp ...
permit ip any any

o que estamos fazendo é assim:

Primeiro nego exatamente o tráfego que não quero (por exemplo, TCP da rede X para Y).

Depois eu libero todo o resto, porque, se eu não colocar esse permit ip any any, o roteador vai negar todo o restante do tráfego automaticamente.

Ou seja, sem esse permit final, a ACL iria bloquear tudo — não só o TCP que a gente queria negar, mas qualquer outro protocolo, porta ou comunicação, inclusive o que deveria continuar funcionando.

Resumindo:
Negamos o tráfego específico que queremos bloquear.
Permitimos todo o resto para evitar que a ACL “mate” a rede inteira.
Se a ACL terminar sem um permit explícito, o roteador aplica automaticamente um deny all.

Por isso a ordem importa tanto — o roteador lê de cima para baixo, e a primeira regra que bate é a que vale.

Em muitos firewalls de servidores Linux, a política padrão para a chain INPUT é deny, e depois você vai liberando só o que realmente precisa; protocolo, porta, IP de origem, etc.
Imagino que nesse caso a lógica é parecida.

Bom, é que faltou eu explicar um coisa.

O deny any any implicto, ele nega todo o tráfego, qualquer protocolo e qualquer endereço (origem e destino)

O permit ip any any, ele está permitido o tráfego do protocolo IP de qualquer origem para qualquer destino. Essa regra, se aplica apenas ao protocolo IP, quer dizer é mais específica do o deny any any.

Pra gente entender ACLs, devemos sempre começar com as regras mais especificas, para as menos especificas.

E o permit any any, também já é implicito, porque você já tem o tráfego todo liberado, você quer configurar a ACL para restringir esse tráfego.

Como a gente, interpreta essas regras.

permit any any = permita o tráfego de qualquer protocolo e qualquer (origem e destino) <-- aqui permite tudo

Deny any any = nego o tráfego de qualquer protocolo (IP, TCP,UDP) e qualquer (origem e destino) <-- nega tudo

Espero ter ajudado, se tiver algum equivoco, podem me corrigir

Bons estudos!