Você está na página 1de 3

Exerccios ACL

1) ACL standard

Suponha o diagrama acima. O usurio A no deve ter acesso rede onde se encontra o computador do usurio B, porm, deve seguir tendo acesso ao servidor de WEB e E-mail. Dados os requisitos, vamos montar a ACL. Como o objetivo aqui apenas barrar o acesso de um host a um determinado recurso, podemos fazer isso com uma ACLpadro: Router(config)# access-list 10 deny host 192.168.0.100 Simples, no? Mas ser que acabou? Olhe BEM a ACL criada o que aconteceria se aplicssemos ela no router, em qualquer sentido e em qualquer interface??? Ela bloquearia TODO O TRFEGO, e no apenas o trfego originado pelo IP 192.168.0.100! Por que??? Lembra-se do DENY ANY implcito? Olha ele aqui, em vermelho: Router(config)# access-list 10 deny host 192.168.0.100 Router(config)# access-list 10 deny any Voc no configurou isso, no mesmo??? Voc no pode v-lo, mas ele est l simplesmente acredite Portanto, devemos incluir a seguinte linha (em verde) em nossa ACL: Router(config)# access-list 10 deny host 192.168.0.100 Router(config)# access-list 10 permit any Ou seja, pacotes IP que tenham em seu cabealho o endereo de origem 192.168.0.100 sero imediatamente negados. TODOS os outros, sero permitidos. Agora onde aplicar esta ACL? Ela, por si s, no faz nada! Vamos analisar o diagrama. Devemos aplicar uma ACL standard sempre o mais prximo possvel do destino. Isso seria a interface E2, no diagrama. Por que no na E0 ou na E1? Pegue a E1, por exemplo. Se aplicssemos a ACL nela bloquearamos o trfego com destino ao servidor tambm. E no isso que queremos, certo? Eis o porqu. Agora, em qual sentido devo aplicar? Sante (OUT) ou entrante (IN)? A anlise deve ser feita na interface E2, na direo de sada do router, OUT portanto. Eis a config completa: Criar a ACL: Router(config)# access-list 10 deny host 192.168.0.100 Router(config)# access-list 10 permit any Aplicar a ACL: Router(config)# int e2 Router(config-if)# ip access-group 10 out E se fosse standard nomeada, eis os comandos:

Criar a ACL: Router(config)# ip access-list standard NOMEDAACL Router(config-std-nacl)# deny host 192.168.0.100 Router(config-std-nacl)# permit any Aplicar a ACL: Router(config)# int e2 Router(config-if)# ip access-group NOMEDAACL out 2) ACL Extended

Suponha o mesmo diagrama que usamos anteriormente, replicado acima para facilitar a nossa vida O objetivo agora permitir ao usurio A o acesso a somente o servio WEB no servidor, e ao usurio B o acesso a somente o servio de E-mail, no mesmo servidor. Para aumentar o desafio, temos que fazer isso usando apenas 1 ACL, e usando APENAS 3 LINHAS! Bom, a coisa agora complicou um pouquinho, no verdade? Teremos que usar IP de origem (hosts) e destino (servidor), alm de especificar protocolos e aplicaes. Temos de usar uma ACL estendida, portanto. Vamos comear montando nossa ACL. Router(config)# access-list 100 deny tcp host 192.168.0.100 host 192.168.100.100 eq 110 Router(config)# access-list 100 deny tcp host 192.168.10.100 host 192.168.100.100 eq 80 Router(config)# access-list 100 permit ip any any Vamos analisar o que fizemos aqui Primeiro negamos o acesso do host A (192.168.0.100) ao servidor (191.168.100.100), mas somente ao servio de E-mail (POP3 = porta TCP 110).Como o servio de E-mail (POP3) usa o TCP na camada de transporte, este foi o protocolo escolhido logo no incio da ACL. Na sequncia, fizemos algo semelhante para o host B (192.168.10.100). Porm, negamos o acesso ao servio WEB (HTTP = porta TCP 80). Para finalizar, permitimos o acesso de todo o resto, por todos. Desta forma, o host A no tem acesso ao servio de E-mail, mas tem acesso ao servio HTTP (o permit any any ao final da ACL garante este acesso), e o host B no tem acesso ao servio WEB, mas tem acesso ao servio de E-mail. Alm disso, garantimos que ambos os hosts podem acessar quaisquer outros recursos existentes na rede, incluindo um ao outro. A pergunta agora onde aplicar esta ACL? As melhores prticas regem que ACLs estendidas devem ser aplicadas o mais prximo da origem possvel. Mas neste caso, temos 2 origens: O host A e o host B. Se aplicarmos esta ACL somente na interface E1, por exemplo, estaremos permitindo o acesso total ao servidor pelo host B. Ou seja, se desejarmos seguir as boas prticas, temos de aplicar a ACL nas interfaces E1 e E2, no sentido entrante (IN). Mas isso no faz muito sentido, no mesmo??? A melhor soluo aqui seria aplicar a ACL apenas 1 vez, na interface E0, no sentido sainte (OUT). Desta forma, matamos o problema com apenas 1 aplicao de ACL. Resumindo apenas siga as melhores prticas para ACLs estendidas SE ELAS FIZEREMSENTIDO!!! Neste caso, elas no fazem. Portanto, a soluo do nosso pequeno problema ficaria assim: Criao da ACL:

Router(config)# access-list 100 deny tcp host 192.168.0.100 host 192.168.100.100 eq 110 Router(config)# access-list 100 deny tcp host 192.168.10.100 host 192.168.100.100 eq 80 Router(config)# access-list 100 permit ip any any Aplicao da ACL: Router(config)# int e0 Router(config-if)# ip access-group 100 out Para uma ACL estendida nomeada, ficaria: Criao da ACL: Router(config)# ip access-list extended NOMEDAACL Router(config-ext-nacl)# deny tcp host 192.168.0.100 host 192.168.100.100 eq 110 Router(config-ext-nacl)# deny tcp host 192.168.10.100 host 192.168.100.100 eq 80 Router(config-ext-nacl)# permit ip any any Aplicao da ACL: Router(config)# int e0 Router(config-if)# ip access-group NOMEDAACL out Algumas dicas adicionais:

o o

ANY, quando se trata de ACLs, tambm pode ser escrito como 0.0.0.0 255.255.255.255 Quando for especificar uma rede, ao invs de um host, voc precisa utilizar o wildcard, que seria uma espcie de

mscara de rede invertida. Eis uma regrinha prtica para identificar o valor correto do wildcard:

Suponha que voc queira permitir o acesso de qualquer pacote que se origine na subrede 192.168.0.100 com mscara 255.255.255.240. Para encontrar o wildcard da mscara 255.255.255.240 basta fazer o seguinte:

o o o

Onde na mscara se l 255, escreva 0 Onde na mscara se l 0, escreva 255 Onde for diferente de 0 e 255, faa o clculo 255-x, onde x o valor diferente.

Em nosso exemplo, o wildcard para a mscara de rede 255.255.255.240 seria 0.0.0.15. Tambm necessrio encontrar o endereo de subrede do IP 192.168.0.100 com mscara 255.255.255.240. As redes ocorrem de 16 em 16, portanto, a subrede deste IP seria 192.168.0.96. Assim sendo, uma ACL que permita o acesso de IPs originados na subrede em questo ficaria: Router(config)# access-list 10 permit 192.168.0.96 0.0.0.15