Você está na página 1de 7

Afinal, o que significa a sigla ACL??? Access Control Lists ou, em bom Portugus: listas de controle de acesso.

OK mas acesso de quem??? Acesso de pacotes IP, basicamente. Mas como pacotes IP transportam qualquer tipo de informao em uma rede, as ACLs controlam o acesso de TUDO e de TODOS! Quando voc tenta acessar um router via Telnet, por exemplo, este acesso nada mais do que uma srie de pacotes IP, certo? Routers (e switches que suportem ACLs) podem permitir ou negar que determinados pacotes o atravessem. Existem apenas 2 parmetros quando configuramos uma ACL: PERMIT ou DENY. Estes parmetros so seguidos das definies DO QUE se deve permitir (PERMIT) ou negar (DENY). Estas, basicamente, so as opes:

ANY (tudo) HOST [IP do host] [subrede + wildcard] [protocolo]

Ou seja, podemos especificar desde 1 nico host at um determinado protocolo, ou mesmo TUDO! Quando se trata de ACLs, os equipamentos Cisco trabalham com o conceito de negar tudo e permitir somente o que lhes for informado. Ou seja, TODA ACL criada em um roteador Cisco termina com um DENY ANY implcito, negando TUDO, todos. Por este motivo, preciso ter muito cuidado com a aplicao de uma ACL, pois se ela for mal planejada poder isolar uma (ou vrias) redes de uma s vez, inclusive impedindo o acesso ao router via Telnet, o que o impedir de reverter a situao. Uma lista de acesso criada em um equipamento, por si s, no tem efeito algum. Para funcionar, uma ACL precisa ser aplicada. Normalmente aplicamos ACLs interfaces, mas ACLs podem ser usadas em muitos outros contextos. Por exemplo, para controlar o anncio de rotas. Mas isso no assunto para o CCNA. Para o exame CCNA, apenas 2 tipos de ACL so cobrados: ACL Padro (standard) e ACL estendida (extended). Existe tambm a variao, a ACL nomeada, que ao invs de nmeros usa nomes para identifica-la. ACLs padro numeradas so identificadas pelo intervalo que vai de 1 99. J as estendidas numeradas so identificadas pelo intervalo que vai de 100 199. As nomeadas so definidas pela sintaxe. A diferena bsica entre os 2 tipos de ACL o grau de inspeo do pacote IP, antes de permitir ou negar seu acesso. ACLs padro inspecionam apenas o endereo de origem no cabealho IP. Por este motivo, devem ser aplicadas sempre o mais prximo do destino possvel. ACLs estendidas inspecionam o endereo IP de destino, o endereo IP de origem do pacote IP, alm de inspecionar o cabealho de segmentos encapsulados no pacote IP. Lembrem-se que o pacote IP encapsula o segmento da camada superior (Transporte, no caso). Este segmentos podem ser UDP ou TCP. ACLs estendidas observam os cabealhos destes segmentos para identificar protocolos e aplicaes de camadas superiores. Isso

possvel pois a camada de Transporte estabelece uma comunicao lgica com a camada de Aplicao por meio das portas lgicas. O HTTP, por exemplo, utiliza a porta lgica 80 para esta comunicao. Portanto, sabendo-se o valor desta porta, pode-se manipular o acesso determinadas aplicaes por meio de ACLs, permitindo ou negando fluxos originados ou destinados aplicaes especficas. Bom tendo-se em mente esta pequena introduo, vamos configurao de ACLs. A sintaxe do comando para ACLs numeradas padro seria: Router(config)# access-list [1-99] [permit/deny] [any/host {IP} (origem)] [endereo IP / subrede] Para ACLs estendidas numeradas, teramos: Router(config)# access-list [100-199] [permit/deny] [protocolo] [any/host {IP} (origem)] [endereo IP / subrede] [any/host {IP} (destino)] [endereo IP / subrede] [parmetros adicionais] Para ACLs nomeadas, o processo no muda, apenas eliminamos o nmero e substitumos pelo nome escolhido e tipo de ACL: Router(config)# ip access-list standard [nome da ACL] Router(config-std-nacl)# [permit/deny] [any/host {IP} (origem)] [endereo IP / subrede] Router(config)# ip access-list extended [nome da ACL] Router(config-ext-nacl)# [permit/deny] [protocolo] [any/host {IP} (origem)] [endereo IP / subrede] [any/host {IP} (destino)] [endereo IP / subrede] [parmetros adicionais] Estes ento seriam os comandos para se criar uma ACL. E quanto aplicao de uma ACL? A regra bsica diz que somente UMA ACL pode ser aplicada em uma mesma interface e direo, em um determinado router (ou switch). Ou seja, em uma mesma interface voc at pode ter mais de uma ACL, desde que em sentidos opostos. Os sentidos possveis so ilustrados no diagrama abaixo. (IN) entrante > ROUTER > sainte (OUT) O sentido em que uma ACL aplicada determina qual o sentido do fluxo que deve ser examinado pelo router. Por este motivo, antes de aplicar uma ACL necessrio ter bem claro qual o efeito desejado. Alguns pontos que devemos saber ANTES de sair criando e aplicando ACLs:

A anlise pelo roteador da ACL aplicada ocorre sempre de forma sequencial, de cima para baixo (top-down). Ou seja, as regras colocadas antes sero analisadas antes.

Uma vez que a regra testada resulte em positivo, nenhuma outra regra ser analisada. Ou seja, se sua ACL tem 100 linhas, porm se o roteador ao comparar um pacote com as regras de sua ACL j der a primeira regra como positiva, nenhuma das outras 99 linhas ser examinada e a ao definida (PERMIT ou DENY) ser tomada. PORTANTO, lembre-se de sempre colocar as regras mais especficas ANTES, e as mais genricas DEPOIS. Do contrrio, as regras genricas acabaro anulando as regras mais especficas. Lembre-se que, SEMPRE ao final de uma ACL existe uma regra DENY ANY escondida. Ou seja, se voc criar uma ACL contendo apenas DENYs, sua ACL ter o mesmo efeito de dar um SHUT DOWN na interface onde ela for aplicada. Ateno para o sentido de aplicao da ACL!!! Faa sempre que possvel um teste de mesa ANTES de aplicar uma ACL, para ter certeza que a mesma possui a lgica imaginada, e que ir funcionar de acordo. Nunca remova uma ACL que encontra-se aplicada uma interface! Primeiro desaplique a ACL, DEPOIS remova-a. Acho que no preciso explicar o porqu disso, certo???

Em teoria, para o exame CCNA, basicamente isso. Vamos ver 2 pequenos exemplos prticos, para ilustrar o que vimos aqui. 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 ACL padro: 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? Sainte (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 Email (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 FIZEREM SENTIDO!!! 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:


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:

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 Se voc no entendeu muito bem esta ltima parte, aconselho-o a revisar a parte de endereamento IP Espero que este tutorial tenha ficado claro! Um abs e BOA SEMANA para todos!

Você também pode gostar