Sei sulla pagina 1di 19

Listas de Controle de Acesso criadas

Facilmente

Artigo criado por: Márcia Guimarães


Referência: Kurt Patzer

Publicado em: Ciscocertified.com.br

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
1
Referência: Kurt Patzer
Sumário

Listas de Controle de Acesso criadas facilmente - Parte 1 ................................................. 3

Listas de Controle de Acesso criadas facilmente - Parte 2 ................................................. 6

Listas de Controle de Acesso criadas facilmente - Parte 3 ................................................. 8

Listas de Controle de Acesso criadas facilmente - Parte 4 ............................................... 11

Listas de Controle de Acesso criadas facilmente - Parte 5 ............................................... 14

Listas de Controle de Acesso criadas facilmente - Parte 6 ............................................... 17

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
2
Referência: Kurt Patzer
Listas de Controle de Acesso criadas facilmente - Parte 1
Postado por: Márcia Guimarães em Tutoriais, Artigos, Exame CCNA

Qual de vocês não teve dificuldade em entender Lista de Controle de Acesso? As famosas ACL´s.
Poucos. E invariavelmente tropeçávamos nos mesmos erros quando fazíamos os testes ou lab´s. Se não
fosse a tal máscara wildcard, era onde aplicar a ACL.

Após ler muito sobre elas, e decidir que não poderia deixar de lado tão importante tópico no exame
CCNA, afinal, aproximadamente 30% das questões seriam ou sobre elas especificamente ou em torno do
assunto mesclado a outros assuntos, quando fui parar no site da Global Knowledge. Por sinal excelente.

Lá, encontrei um artigo entitulado IOS Access Control Lists Made Easy que desmistificou o “bicho-
papão” das ACL´s. O autor do artigo, Kurt Patzer, é instrutor da Global e tem 8 anos de estrada na área. Ele
foi bastante específico, claro e direto quando tratou as ACL´s. No “white-paper”, ele consegui descomplicar
e muito, o que para nós, pobres mortais, estava quase criptografado.

Li o artigo apenas uma vez e foi o necessário para superar mais essa barreira. E espero que seja útil
para vocês como foi para mim.

Aqui, vou iniciar uma série de 6 artigos, baseado no original de Kurt.

Ok. Menos blá…blá…blá… e vamos ao que interessa. .

Aqui é assumido que diferentes leitores terão diferentes níveis de experiência com as Access Control
List (ACL´s). Alguém não terá experiência. Outros terão interesse pelas ACL´s nos ambientes Lab. E ainda
outros terão extensa experiência no mundo real com a implementação das ACL´s. O objetivo deste “white-
paper” é para ser interessante para leitores com qualquer nível de experiência em ACL. O novato em ACL
deverá adquirir um entendimento e apreciação da definição de uma ACL. E felizmente, o expert em ACL
também poderá adquirir um “insight” a mais com este material elucidativo.

O que é ACL ?

Tente definir uma ACL usando somente duas palavras. Você sugeriria “filtro de pacote”?!? Esta é a
resposta mais comum, e por uma boa razão. É intuitiva porque ela realmente pode ser definida com duas
palavras e ela descreve o uso mais comum para as ACLs. O problema com esta definição é que as ACLs
podem ser utilizadas para muitos objetivos que não somente filtro de pacotes. Por exemplo, as ACLs podem
ser utilizadas para definir qual a fila de pacote entrará quando vocês estiverem usando um enfileiramento
personalizado ou prioritário. Nos dois casos, os pacotes não são filtrados.

Eles são simplesmente enviados para frente, para o meio, ou para o final da linha dependendo de um
certo critério de avaliação. Outro exemplo é o uso de ACLs para definir tráfego interessante de um link dial-
on-demand (sob demanda). Quando aplicada desta maneira, a ACL irá definir o tráfego que é importante o
bastante para que o router tire o “telefone do gancho” e pague as taxas pelo seu uso do serviço.

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
3
Referência: Kurt Patzer
Uma vez que uma chamada é feita, é conectada, todo tráfego é permitido através do link, e não
somente o tráfego interessante. Se você quer que somente o tráfego interessante atravesse seu link, você
deve aplicar uma ACL nesta interface. Um terceiro uso para uma ACL é para referenciar a ACL dentro de
um mapa de criptografia onde ela define o tráfego interessante para um túnel IPSec. Quando o mapa crypto
é designado para uma interface, nenhum tráfego interessante pode ainda ser permitido através da interface,
ele apenas não será encriptado antes de ser encaminhado. Existem dúzias de diferentes maneiras de aplicar
as ACL´s no IOS de um router.

A definição de duas-palavras de uma ACL que eu sugeriria é “classificador de pacote” ou “packet


classifier”. Para expandir essa definição, uma ACL contém uma lista de entradas definindo um critério de
comparação. Um pacote em um dado momento, as caracteríticas do pacote são comparadas a lista de
entradas da ACL em sequência. A classificação associada com a primeira ACL de entrada que coincide com
as características do pacote determinará a classificação do pacote. ACLs utilizam os termos “deny” e
“permit” para descrever as duas possíveis classes. Infelizmente, esta terminologia ajuda a promover a
percepção do “filtro de pacote”. Não pense no “deny” e no “permit” como negar ou permitir a passagem do
pacote através do router. Ao contrário, pense nela como permitir e negar a entrada de um pacote dentro de
uma certa classificação. Por exemplo, para permitir ou negar este pacote de entrada dentro da classe de
pacotes que pertencem a uma fila de alta prioridade..

Quais tipos de ACLs os routers suportam?

O IOS dos routers suportam muitos tipos de ACLs. Existem ACLS que examinam critérios da
Camada 2, tais como valores endereços MAC e LSAP. Existem ACLs que examinam vários protocolos de
Camada 3, tais como IPX, AppleTalk, DECnet, e Vines. Existem ACLs que examinam critérios Ipv6.
Porém este “white paper” focará naquela mais comum hoje em dia : ACLs que examinam o critério IPv4.

ACLs IP são geralmente quebradas dentro de ACLs IP padrão e extendida. Se ou não uma ACL IP é
padrão ou extendida, ela poderá ser definida tanto pelo número quanto pelo nome. Se você escolher por
número, o intervalo do número é importante. Originalmente, as ACLs IP Padrão são numeradas entre 1 a 99,
enquanto que as ACLs IP Extendidas utilizam números de 100 a 199. Estes intervalos foram expandidos
para também incluir 1300 a 1999 para as ACL IP Padrão e 2000 a 2699 para as ACLs IP Extendidas.

ACLs IP Padrão utilizam exatamente um único critério no qual fazem a comparação : O


ENDEREÇO IP DE ORIGEM.

Frequentemente isto é exatamente o que é apropriado para usar. Por exemplo, você pode usar a
instrução “access-class” para referenciar uma ACL para limitar o acesso as linhas VTY. Neste caso, você
está interessado em um único endereço IP de origem.

Você sabe que o endereço IP de destino é do seu próprio roteador, o protocolo é TCP e a porta de
destino é a 23 para o Telnet. (Atualmente, neste exemplo ele poderia também ser TCP porta 22 se você tiver
configurado o suporte SSH). Outro exemplo para uso de uma ACL IP Padrão é quando elas são
referenciadas numa definição de “community string” do protocolo SNMP. Novamente, somente o endereço
IP de origem é de interesse, como nós sabemos que o endereço IP de destino é do nosso próprio router e o
protocolo é o UDP com porta de destino 161 (SNMP).

As ACLs IP Extendidas permite que você examine todos os cabeçalhos da Camada 3 e 4 dos
pacotes IP. Você pode especificar um critério usando tanto o endereço IP de origem quanto o de destino.
Você pode especificar o protocolo IP. Com o TCP e UDP, você pode especificar as portas de origem e de
destino, e com o ICMP você pode especificar o código e tipo ICMP.

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
4
Referência: Kurt Patzer
Protocolo Intervalo
IP Padrão => 1 - 99 , 1300-1699
Extendida => 100-199 , 2000-
IP estendido
2699
Appletalk 600-699
IPX estendido 900-999
Protocolo de anúncio de serviço
1000-1099
IPX

Ordem é Importante

Como foi mencionado anteriormente, as entradas ACL são processadas em ordem. Se existirem duas
ou mais entradas com critérios que coincidem com que o está no pacote, ele é permitido ou negado na
primeira entrada de coincidência que é importante. Devido a isto, você deve colocar entradas mais
específicas no topo da ACL. Por exemplo, se você quiser permitir toda a rede 172.16.x.x, mas negar um
único endereço desta rede, como 172.16.10.10, você deverá colocar a entrada deny que é mais específica
antes da entrada permit que é mais genérica. Outro ponto que deve ter cuidado é a existência implícita de
uma instrução “deny tudo mais” no final de cada ACL. O que significa que se não existirem coincidências
das entradas anteriores para cada pacote, então a classificação implícita é negar todos os pacotes. Se desejar,
este deny implícito pode ser cancelado por uma entrada “permit tudo mais”.

É isso. Aguarde a parte 2. ..Sds.

Márcia Guimarães

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
5
Referência: Kurt Patzer
Listas de Controle de Acesso criadas facilmente - Parte 2
Postado por: Márcia Guimarães em Tutoriais, Artigos, Exame CCNA

Olá !

Doses homeopáticas de ACLs fazem bem a saúde, então veremos a 2a parte do artigo.

Prontos ?!? Vamos lá. :)

O Cenário

Considere a rede projetada na figura 1. Nós temos 4 engenheiros. Suas estações utilizam os
endereços IP de 172.16.100.4 até 172.16.100.7 Também temos 2 servidores de engenharia.Eles utilizam os
endereços IP 172.16.101.163 até 172.16.101.179. Os engenheiros utilizam três aplicações TCP entre suas
estações e os servidores: telnet, FTP e X Windows. O objetivo é escrever as entradas ACL que coincidam
com estas aplicações das estações da engenharia para os servidores de engenharia. Nós queremos ser
cuidadosos para coincidir exatamente este tráfego, nem mais nem menos.

Figura 1: A rede utilizada no cenário ACL

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
6
Referência: Kurt Patzer
Um método para coincidir exatamente que é desejado, é explicitamente listar cada possibilidade de
combinação. Isto é ter cada entrada que permita telnet de 172.16.100.4 para 172.16.101.163, e outra para
permitir telnet de 172.16.100.5 para 172.16.101.163, e continuar listando cada possível combinação origem
de protocolo, endereço e porta. Isto pode ser um tédio, e pode produzir um grande número de entradas.

Quantas entradas seriam necessárias para este cenário ? O método geral para determinar isto é
multiplicar o número de endereços de origem específicos pelo número total de endereços de destino e
novamente pelo número total de portas de destino. No nosso caso qual seria ? Nós temos 4 endereços IP de
origem e 2 endereços IP de destino, porém quantas portas de destino TCP ? Temos 3 aplicações, porém
algumas utilizam múltiplas portas. O FTP mesmo utiliza a porta 21 como canal de controle, e a porta 20
como canal de dados ( nota : isto é diferente se você utilizar o modo passivo FTP, porém vamos nós ater ao
modo padrão FTP para o nosso exemplo). O X Windows utiliza as portas 6000 e 6001 (novamente, isto
poderia mudar diferentes instalações do X Windows, porém vamos nos ater ao uso das portas 6000 e 6001).

Isso significa que podemos exasutivamente listar todas as possíveis combinações usando a seguinte
fórmula :

4 x 2 x 5 = 40 entradas ( 4 endereços de origem x 2 endereços de destino x 5 portas )

Além do fato de sermos preguiçosos e não podermos digitar 40 entradas diferentes, existem questões
de performance em risco. O router tem que seqüencialmente processar cada entrada da ACL até encontrar
uma entrada coincidente. A maioria das entradas na ACL significa, na média, mais processamento por
pacote. O pior caso seria se o engenheiro que geralmente mais trabalhasse, utilizasse um protocolo em
particular no servidor e a entrada que coincidisse com este tráfego fosse a de número 40 na ACL, ou seja, a
última na lista !! Nesse caso, 39 entradas seriam processadas antes que uma coincidisse com cada pacote
daquele engenheiro “workaholic”.

Assim, usando sua experiência com ACLs, como você reduziria o número de entradas necessárias
para esta especificação ? Aqueles de vocês que são mais velhos devem lembrar de um game chamado
“Name That Tune”. Aqui, vamos jogar o “Name That ACL”, onde o objetivo é especificar uma ACL com
menor número de linhas. Antes de continuar a ler, pense sobre quantas linhas você poderia reduzir a
definição da ACL. Pensou ? Agora, guarde sua resposta…

Mostrarei a você como especificar exatamente o tráfego desejado, nem mais, nem menos, em apenas
3 linhas. Para fazer isto, teremos de agrupar os endereços IP de origem, os endereços IP de destino, e as
portas TCP. Nós utilizaremos o conceito de máscaras coringa ou wildcard para agrupar todos os quatro
engenheiros dentro de um único grupo. Nós também utilizaremos a máscara wildcard para agrupar todos os
servidores de engenharia em um único grupo. E finalmente, utilizaremos intervalos de portas para agrupar
as portas TCP dentro de três grupos separados. Com este agrupamento, ele ficará com 1 x 1 x 3 = 3 entradas
para uma especificação total do tráfego desejado.

É isso. E nada de ficar ansioso.

Aguarde a parte 3. Vai valer a pena.

Sds.
Márcia Guimarães

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
7
Referência: Kurt Patzer
Listas de Controle de Acesso criadas facilmente - Parte 3
Postado por: Márcia Guimarães em Tutoriais, Artigos, Exame CCNA

Continuando a saga… a parte 3.

. Agrupando os Engenheiros com uma Máscara Wildcard

O conceito de máscara wildcard é muito similar aqueles de máscara de subrede, com uma pequena
mas muito significante diferença na lógica. Uma máscara de subrede é uma sequência de binário 1s e 0s que
são utilizados para determinar qual parte de um endereço IP é associado com o endereço de rede. Com uma
máscara de subrede, se um bit em particular em um endereço IP é parte de um endereço de rede, o
correspondente bit na máscara de subrede é setado para 1. Uma máscara wildcard é muito similar, porém a
lógica é inversa. Um binário 1 na máscara wildcard significa “não se preocupe”. É o digito binário 0 na
máscara wildcard que distingue os bits importantes.

Vamos iniciar com um exemplo. A máscara de subrede mais comumente em uso hoje em dia é
255.255.255.0. Os primeiros 3 octetos, quando convertidos para binário, contém 8 binários 1´s. Toda a
máscara tem 24 binários 1´s, seguidos de 8 binários 0´s. Isto é frequentemente referido como “máscara de
24 bits” ou “/24”, que é utilizada como uma notação abreviada.

O que significa é que cada bit de cada um dos 3 octetos no endereço é parte do endereço de rede. O
último octeto é definido por 8 binários 0´s, de forma que nenhum bit no último octeto são parte do endereço
de rede. Eles são todos utilizados para especificar um host naquela rede. A correspondente máscara
wildcard dos 24 bits seria 0.0.0.255. Com esta máscara wildcard, você se preocupa somente com cada bit
dos 3 primeiros octetos, porém nenhum dos bits no último octeto. Assim, a combinação de endereço e a
máscara wildcard 172.16.100.0 0.0.0.255 coincide com todos os endereços que iniciam com 172.16.100, e
não se importa com o valor do último octeto. Aqui está outro modo de pensar sobre isso :

172.16.100.0 0.0.0.255 especifica que endereço IP deve parecer exatamente como 172.16.100.0 até
os primeiros 24 bits, e porém não se preocupe com o que os últimos 8 bits são !

Vamos olhar para outro exemplo comum de máscara de subrede : 255.255.255.252. A maioria de
vocês podem reconhecer isto tipo de máscara que é utilizada em link WAN ponto-a-ponto.

Em binário, esta máscara tem 30 digitos 1´s seguidos de 2 digitos 0´s. Portanto ela poderia ser
chamada de máscara de subrede de 30 bits e poderia ser escrita com a abreviação /30. Esta máscara de
subrede é utilizada para conservar espaço de endereço IP. Em um link ponto-a-ponto, existem somente 2
endereços IP ativos. Com a máscara de subrede 255.255.255.0, existiriam 254 endereços disponíveis. Se
somente 2 endereços são utilizados, a vasta maioria de espaço de endereços IP seria disperdiçada. Com essa
máscara de subrede 255.255.255.252, existem somente dois endereços IP disponíveis, o que é o encaixe
perfeito para uma rede ponto-a-ponto. Observe que a máscara atualmente especifica um grupo de 4
endereços, porém o primeiro endereço é o próprio endereço da rede, e o último é de broadcast. Portanto,
existem dois endereços à direita disponíveis.

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
8
Referência: Kurt Patzer
Vamos dar uma olhada na matemática binária involvida na máscara de subrede de 30 bits antes de
nós considerarmos sua máscara wildcard equivalente. A figura abaixo descreve o último octeto (.252) da
máscara de 30 bits e a linha separa os dois últimos bits, com 9 possibilidades de valores do octeto no
endereço IP. Como você pode ver, se você somente olhar os 6 primeiros bits do octeto para determinar o
endereço de rede, o valor dos octetos 4, 5, 6 e 7 estão todos na mesma subrede. Eles todos são exatemente
como o “4”, se você ignorar o valor dos 2 últimos bits. Porém o 3 e 8 não estão na mesma rede. Eles não se
parecem exatamente com o “4” quando você examina os 6 primeiros bits.

Figura 2 : um exemplo usando uma máscara de sub-rede de 30 bits

A máscara wildcard equivalente da máscara de subrede é 30 dígitos 0´s seguidos de 2 dígitos 1´s, ou
0.0.0.3. Como você poder ver no exemplo de máscara de subrede, se nós juntarmos o endereço base
172.16.100.4 com uma máscara de 30-bits (por exemplo, 172.16.100.4 0.0.0.3), ele coincidirá exatamente
com os 4 endereços: 172.16.100.4 até 172.16.100.7. Bastante conveniente, porque com isto irá coincidir
com os endereços IP dos engenheiros no nosso cenário. Não fique confuso com o fato de que, com a
máscara de subrede, você perde o primeiro e último endereços IP. Com as ACLs e máscara wildcard, nós
não definiremos redes (com endereços de rede e endereço de broadcast), nós apenas queremos especificar
o intervalo de endereços IP.

Agrupando os Servidores de Engenharia com uma Máscara Wildcard

Além de inverter o significado no valor dos bits, as máscaras wildcard diferem das máscaras de
subrede naquilo dos bits “não se preocupe” que podem ser misturados por toda a máscara wildcard. Isto é,
eles não tem necessariamente de estar na sequência de 0´s seguidos pela sequência de 1´s. Devido a isto,
você pode utilizar padrões que existem no meio do endereço IP, ao invés de apenas no final. Nós levaremos
vantagem desse truque para definir nossos 2 servidores de engenharia como um endereço base com uma
máscara wildcard.

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
9
Referência: Kurt Patzer
Figura 3 : uma máscara wildcard usando um exemplo mais complexo

Em uma ACL, 172.16.101.163 0.0.0.16 coincidirá com 172.16.101.163 e 172.16.101.179 e nada


mais. Eles são os únicos valores que coincidem exatamente com 172.16.101.163, exceto pelo 4o. bit do
último octeto.

179 -163 = 16 => 00010000

Em uma ACL, 172.16.101.163 0.0.0.16 coincidirá com 172.16.101.163 e 172.16.101.179 e nada


mais. Eles são os únicos valores que coincidem exatamente com 172.16.101.163, exceto pelo 4o. bit do
último octeto.

A figura 3 descreve os últimos octetos dos endereços IP dos servidores da engenharia. Observe que
o par de endereços IP não tem como aparecer que não tem nada em comum quando você olha para eles no
formato decimal, porém, quando você converte para binário o últmo octeto, você poderá ver que eles variam
somente em um único bit. O 4o. bit. O que nós especificaremos para os servidores da engenharia é
172.16.101.163 0.0.0.16. Isto significa que os endereços que coincidem tem exatamente como
172.16.101.163, porém não se preocupam sobre o valor do 4o. octeto. Além do próprio 172.16.101.163,
existe um único endereço IP que parece exatamente como 172.16.101.163, exceto por um bit. Esse endereço
é 172.16.101.179.

Usar esta máscara wildcard realmente nos deixa com menos entradas em nossa ACL, porém essa não
é a principal razão que apresentei este exemplo. A principal razão é que quero que você entenda totalmente
o que uma máscara wildcard faz. Ela simplesmente especifica quais bits devem estar coincidindo no
endereço IP para qual é aplicada, se ela é relativamente direta ou uma máscara mais complexa. Usar
máscaras wildcard corretamente pode melhor a eficiência de suas ACLs, porém existem alguns “lados
obscuros” também. Primeiro, você poderia cometer um erro em sua aritmética binária. Para reduzir este
potencial, entenda totalemente as máscara wildcard, e pratique a aritmética binária. O segund potencial
problema é, embora você possa ser capaz de ler uma ACL com sua wildcard “abreviada”, outros poderiam
não ser capazes de entender o que você fez. Para ajudar neste item, eu recomendo muito que você use o
comando “remark” da ACL, que discutiremos mais tarde.

Estamos quase lá…. aguardem a parte 4.

.Sds.

Márcia Guimarães

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
10
Referência: Kurt Patzer
Listas de Controle de Acesso criadas facilmente - Parte 4
Postado por: Márcia Guimarães em Tutoriais, Artigos, Exame CCNA

Olá, meus amigos. O que estão achando ? Hum ?

A melhor parte é essa… ao meu ver..

. Agrupando as Aplicações pelos Intervalos de Portas

Muito mais simples do que usar máscaras wildcad para agrupar endereços IP é usar intervalos de
porta para definir grupos de portas TCP e UDP. Quando especificando portas TCP e UDP, você deve
especificar um operador em particular. Se você quer comparar uma única porta, você deverá usar o operador
eq. Em nosso cenário exemplo, especificaremos eq 23 para coincidir com o tráfego telnet. Se você quer
especificar um intervalo de portas TCP e UDP, você deverá usar o operador range. Em nosso exemplo, nós
utilizaremos um range 20 21 para especificar o FTP e o range 6000 6001 para especificar o X Windows.

Elas não estão em grandes intervalos, porém elas estão apesar de tudo. Outros operadores que
também poderiam ser usados para especificar as portas TCP e UDP que incluem o neq para “not equal to”
ou “não igual”, gt para “greather than” ou “maior que”, e lt para “less than” ou “menor que”.

Operador Significado
eq igual
neq não igual
gt maior que
lt menor que
range faixa exclusiva

Sintaxe da ACL

Nós escreveremos essas 3 ACLs na próxima seção. Antes de podermos fazer isso, de qualquer
forma, precisamos ainda entender a sintaxe utilzada na definição de uma ACL. Novamente, existem
diferentes tipos de ACLs, e todas elas tem uma sintaxe diferente. Neste exemplo, nós usaremos a sintaxe da
ACL IP Numerada e Extendida. Existem muitas opções para ACLs IP Extendidas, e estas opções se alteram
dependendo do protocolo que é referenciado. Nâo fique preocupado com cada opção neste exemplo. A
sintaxe que é importante para nós é a seguinte:

access-list número-da-acl {deny | permit} protocolo-origem origem origem-wildcard destino


destino-wildcard [operador [porta]]

Em bom Português : você utiliza o comando access-list no modo de configuração global. A primeira
coisa que você deve especificar é o número da ACL. Desde que seja uma ACL IP Extendida, o número deve
estar entre 100 a 199. Então, você especifica a classificação para esta entrada em particular (permit ou
deny). A seguir você especifica o protocolo, que no caso é o tcp. Especificando o tcp também nos permite
especificar as portas de origem e de destino. Então você especifica os endereços IP de origem. Este pode ser
um único endereço precedido da palavra host como em, host 10.10.10.10. Ele pode ser um único endereço
onde a máscara de wildcard especificará que todo bit do endereço é importante, como em 10.10.10.10
0.0.0.0. Em nosso caso ele será o endereço base e uma máscara de subrede que lista poucos bits como bits

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
11
Referência: Kurt Patzer
“não se preocupe”. Opcionalmente, você poderia então especificar as portas de origem TCP. Na maioria dos
casos, você não tem muito controle sobre as portas de origem.

A aplicação cliente Telnet vem do Sistema Operacional na estação de trabalho e requisita a porta de
origem, e é o SO que escolhe qual porta utilizar (acima de 1024, inclusive). A única coisa que nós podemos
ter certeza é que que a porta será maior que 1023. Algumas aplicações podem reservar portas de origem do
SO, e nesses casos nós podemos ser ainda mais restritivos em nosso exemplo. Assim, o próximo item que
você deve especificar é o endereço IP de destino. As mesmas opções estaram disponíveis como foi para o
endereço IP de origem. Novamente, nós utilizaremos o endereço IP base e a máscara wildcard que vai
espevificar quais são os bist “não se preocupe”. E finalmente, finalizamos ao especificar a porta TCP de
destino. No nosso caso, utilizaremos o operador eq ou range, dependendo da entrada.

Finalizando o Cenário

Assim, agora que você entendeu a sintaxe básica, é hora de escrever a ACL. Usando os construtores
já descritos acima, você deverá digitar essas três linhas como se segue:

access-list 101 permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 eq 23


access-list 101 permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range 20 21
access-list 101 permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range 6000 6001

Interessante é que se você exibir o seu “show run” das suas ACLs, o router não exibirá exatamente o
que você digitou. O “eq 23″ será transformado em “eq telnet” e o “range 20 21″ será transformado em
“range ftp ftp-data“. Você também poderia entrá-la de outro modo, especificando os nomes das portas bem-
conhecidas (well-known). Enquanto for conveniente, poder ser uma dica.

Pergunta : No que “eq 80” será transformado ? hum ? A intuição mais comum seria dizer “eq http”,
porém ao invés disso é “eq www”. (rs)

Existem ainda pequenas coisas que você deve entender. É provável que estas entradas não sejam a
ACL inteira. Se a nossa ACL é exatamente aquelas 3 entradas, então existe uma outra entrada implícita no
final da ACL que é “deny ip any any” e somente estas 3 entradas podem ser comparadas.

access-list 101 permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 eq 23


access-list 101 permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range 20 21
access-list 101 permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range 6000 6001
(access-list 101 deny ip any any)

Também, simplesmente definir a ACL não tem efeito algum sobre o comportamento do router. Depois que
ela é definida, ela deve ser aplicada em algum lugar. Vc pode assumir que nós estivemos tentando
configurar um filtro de pacote. Porém poderíamos estar tentando especificar este tráfego como mais
importante e daí por diante seria permitido dentro de uma fila de alta-prioridade. Se a topologia for mais
complexa, poderemos estar especificando este tráfego como tráfego que queremos encriptar em um tunel
IPSec, ou tráfego para qual nós queremos especificar uma rota baseada em uma regra de segurança.
Também, entenda que a direção é importante. Vamos assumir que nós verdadeiramente queremos
configurar um filtro de pacote, e portanto utilizaremos o comando “access-group” em uma interface. Volte
a figura 1. Nossas duas escolhas são aplicar esta ACL de entrada ou INBOUND na interface ethernet 0 ou
aplica-lá como saída ou OUTBOUND na interface ethernet 1. A sequências de comandos para a primeira
opção (INBOUND) deverá ser :

Router(config)#interface ethernet 0
Router(config-if)#ip access-group 101 in
Listas de Controle de Acesso criadas Facilmente
Artigo criado por Márcia Guimarães
12
Referência: Kurt Patzer
Você Pode Pensar em Enganar !

Eu configuro uma instrução para permitir exatamente o tráfego desejado, nada mais, nada menos.
Efetuamos isso com três entradas na ACL. Existe uma opção digna de se considerar que poderia reduzir o
número de entradas para somente duas. O que utiliza a porta 22 TCP ? Se nós especificarmos um único
intervalo de 20 a 23, deveria ser a única outra porta de destino que coincidisse com as instruções permit.
Neste caso, ela poderia ser uma opção a ser considerada. A porta 22 TCP é usada pelo protocolo SSH
(Secure Shell). O SSH foi originalmente desenvolvido para tratar casos de autenticação em texto puro e
dados como texto no telnet. Isto é, o SSH é mais uma alternativa segura ao telnet. O SSH foi aumentado
para incluir o SCP (Secure Copy). SCP é mais uma alternativa segura ao FTP. Administradores de Firewall
genéricamente odeiam a idéia de permitir Telnet e FTP, porque eles são particularmente protocolos
inseguros. Meu conselho é, antes de compor suas ACLs, você deve estabelecer sua política de segurança.
Então escreva sua ACL para coincidir exatamente com a política de segurança de sua empresa. Não pegue
atalhos só porque eles são pequenos em relação a política de segurança. Porém políticas de segurança
devem estar em documentos que podem ser atualizados conforme o tempo passa. Valeria a pena considerar
a adição do SSH à política da segurança. Melhor até deveria ser adicionar uma planta da migração para
todos os sistemas dependentes do telnet/FTP sobre o uso do SSH/SCP. Uma vez que todos os sistemas
foram migrados, atualize a política da segurança e as ACLs para permitir somente SSH/SCP e não telnet ou
FTP.

Outras Dicas e Truques Sobre ACL

Até este ponto, você deve ter uma boa base sobre os componentes básicos das ACLs IP. Para treinar
ACLs, você pode fazer alguns exames práticos com aritmética binária conseguir uma boa maneira de
calcular máscaras de wildcard, mas se você compreendeu a função da máscara wildcard neste momento,
você está na forma boa. Há muitas outras opções que podem ser usadas em ACLs IP Extendida. As
seguintes seções, quando longe de detalhado, discutirem algumas das opções o mais geralmente usadas. Nas
seções seguintes, discutiremos algumas das opções mais geralmente usadas.

Usando Comentários

ACLs podem ser longas e complexas. E pode ser uma luta lembrar porque você colocou um certo
conjunto de entradas na ACL seis meses depois. Pior ainda, imagine herdar uma ACL de 500 linhas de um
administrador anterior. É realmente um grande esforço entender cada uma das linhas da ACL herdada. Isto é
porque uso dos comentários é tão importante.

Infelizmente, eles não são utilizados quanto deveriam ser. O comando remark foi introduzido na
versão do IOS 12.0(2)T. Muitos administradores aprendem a sintaxe da ACL antes que elas iniciam usando
as versões do IOS que suportem o comando “remark“. Isto provávelmente seja porque elas não são usadas
extensivamente. Porém o conceito é muito simples.

Usando nosso exemplo de três linhas, com algumas máscaras wildcard, nós devemos preceder as três
linhas com um comentário, como se segue :

access-list 101 remark As próximas 3 linhas combinam 172.16.100.4-7 e 172.16.101.163 & 179
access-list 101 permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 eq 23
access-list 101 permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range 20 21
access-list 101 permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range 6000 6001

Ufa… E vamos em frente.Aguardem a parte 5 . .

.Sds. Márcia Guimarães.


Listas de Controle de Acesso criadas Facilmente
Artigo criado por Márcia Guimarães
13
Referência: Kurt Patzer
Listas de Controle de Acesso criadas facilmente - Parte 5
Postado por: Márcia Guimarães em Tutoriais, Artigos, Exame CCNA

Olá.

O refinamento que Kurt faz aqui nos fornece a maneira correta de implementar uma ACL.

Vamos lá….

Otimizando a Performance da ACL Usando Turbo ACLs

Eu disse a você anteriormente que reduzir o número de entradas em uma ACL, na média, reduz o
processamento overhead exigido por aquela ACL. Um preço que deverá ser pago, entretanto, é que a ACL
pode tornar-se difícil de ler. Outra solução poderia ser o uso de “Turbo ACLs”, também conhecidas como
ACLs Compiladas. Quando você compila uma ACL, ela se transforma em tabelas lookup que podem ser
processadas muito mais eficientemente do que pelo método linear padrão, porém esta característica está
somente disponível em routers de alta capacidade (como 7200,7500 e a série 12000). Compilar ACLs
também exigem uma RAM mais significante, maior, do que as não-compiladas. Para ativar esta
característica em um router compatível, emita o comando “access-list compiled” no modo de configuração
global. Isto compilará todas as ACLs que são maiores do que as três entradas. Qualquer modificação para
uma ACL resultará em imediata recompilação daquela ACL. Para visualizar a memória utilizada pela sua
turbo ACL, emita o comando “show access-list compiled” no modo EXEC.

Otimizando a Performance da ACL Usando a Palavra-chave Established

O fato de que o TCP é um protocolo orientado a conexão, onde conexões são negociadas com um
triplo handshake(handshake three-way), permiti-nos obter alguma eficiência no processamento da ACL. O
handshake triplo especifica que o primeiro pacote em uma conexão não deverá ter um bit ACK setado; ele
deverá somente ter o bit SYN setado. O segundo pacote deverá ter tanto o bit SYN, quanto o ACK. Devido
a isto, você nunca deverá ver o bit ACK setado no pacote a menos que um pacote anterior com um único bit
SYN setado já tenha sido permitido por alguma entrada na ACL. A palavra-chave “established” especifica
somente permitir pacotes que estejam associados com uma conexão TCP estabelecida, isto é, pacotes além
do pacote inicial o qual somente tem o bit SYN setado. Geralmente, isto é utilizado com a palavra-chave
“any” com ambos endereços de origem e destino, e como primeira linha na ACL. A teoria é que se o
primeiro pacote do handshake triplo (SYN, SYN+ACK, ACK) fosse permitido por uma entrada posterior na
ACL, não desperdiçaria tempo processando cada entrada na ACL para chegar lá; encaminharia o pacote
baseado na primeira entrada. Em nosso exemplo, a primeira linha da ACL leria :

access-list 101 permit tcp any any established

Agora você deve entender que usar a palavra-chave “established” faz com que a ACL seja
processada com grande eficiência, porém ela diminue sua margem de segurança. Se você está usando esta
entrada em um filtro de pacote, é possível para um atacante mascarar o pacote com um bit ACK setado,
embora ele não sido parte de uma conexão TCP existente.

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
14
Referência: Kurt Patzer
A ACL permitiria que este pacote mascarado fosse encaminhado. Um exploit desta vulnerabilidade é
realizar um “TCP ping”. A ACL poderá bloquear os ICMP echo requests, assim o atacante não poderá usar
o comando ping padrão para reconhecimento ou verificação. Porém o atacante pode mascarar no pacote
TCP um bit ACK setado e enviá-lo para um endereço IP além do router. A ACL permitiria que o pacote
fosse encaminhado. A estação que recebesse o pacote TCP reconheceria que ele não coincide com qualquer
de suas conexões existentes. A estação então responde de volta com um pacote TCP com o bit RST setado
(o flag RST indica que a conexão está sendo abortada e os dados nos buffers ou em trânsito sejam
descartados.) Se o atacante recebe o pacote reset, então ele saberá que a estação está ativa, efetuando a
função ping de outra maneira.

Otimizando a Performance da ACL com a Colocação da Entrada Mais Eficiente

Como discutido anteriormente, você sabe que deve colocar as entradas mais específicas antes das
entradas mais gerais ou generalizadas dentro da ACL. Isto tem de ser feito para assegurar um
comportamento apropriado. Porém se uma entrada que é utilizada mais frequentemente, poderia ser movida
para o alto da ACL sem modificar o comportamento da mesma, com isso sua performance aumentaria.
Como você saberia quais as entradas estão sendo mais utilizadas ?? Usando o comando “show access-list“.
O número de vezes que cada entrada na ACL fosse utilizada seria exibido. O exemplo abaixo foi
conseguido, porém ele mostra nosso exemplo de ACL e a entrada FTP sendo mais utilizada que a entrada
telnet. Se este comportamento for consistente, ela deverá ser digna de alteração para ordernar as entradas.

router#sh access-list 101


Extended IP access list 101
permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 eq telnet (4 matches)
permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range ftp-data ftp (84 matches)
permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range 6000 6001

Você pode resetar os contadores da ACL com o comando “clear access-list counters”. Vc deverá
especificar um único número ou nome de ACL para apagar os contadores daquela lista em particular. Se
você não especificar um nome ou um número, os contadores irão resetar todas as ACLs . Fique atento.
Observe, contadores de ACL podem ser utilizados para um método de contagem rápida e “suja”. Você deve
estar curioso para saber se o jogo Doom está sendo utilizado em sua rede ?? Permita o tráfego TCP
destinado a porta 666. No dia seguinte, exiba sua ACL. Se você ver qualquer contagem daquela entrada
(porta 666 TCP), então você tem uma boa idéia de que alguém está usando a rede para jogar Doom. Mas
quem será ??? Para achar quem está jogando Doom, use o logging da ACL.

Logging dos Hits das ACLs

Você pode auditar as entradas coincidentes da ACL ao adicionar a palavra-chave “log” ou “log-
input” no final da entrada. Isto fará que as mensagens de syslog sejam geradas para esta contagem. A
palavra-chave “log” causará uma mensagem de syslog similar a seguinte:

00:19:15: %SEC-6-IPACCESSLOGDP: list 101 denied icmp 172.16.100.4 ->


72.16.101.100 (8/0), 1 packet

Observe que ela lista o número da ACL, a ação, o protocolo, os endereços IP de origem e destino, e
o número de porta TCP/UDP, ou neste caso o tipo ou código ICMP. Vc obterá a mensagem de syslog para o
primeiro pacote de uma única combinação de protocolo, os endereços IP de origem e destino, e o número de
porta TCP/UDP ou o tipo ou código ICMP. Você então conseguirá resumos de 5 em 5 minutos por um
conjunto único de critérios que lista quantas matches ocorreram no intervalo de 5 minutos.

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
15
Referência: Kurt Patzer
Você pode também usar a palavra-chave “log-input” no final de uma entrada na ACL. O efeito é
muito similar, porém observe que ele adiciona informação do endereço MAC de origem, assim como
informação da interface inbound do router. Aqui está um exemplo :

00:20:41: %SEC-6-IPACCESSLOGDP: list 101 denied icmp 172.16.100.4


(Ethernet00001.0251.b9a5) -> 172.16.100.1 (0/0), 1 packet

Fazer o logging de violações da ACL é válido para redes forenses. Por exemplo, você poderia
aplicar uma ACL para usar linhas vty usando o comando access-class. Isto limitaria os endereços IP que
são permitidos fazer telnet (ou SSH) para seu router. Se a última entrada na ACL é um deny any log
explícito, então todas as tentativas inválidas de fazer telnet para seu router serão enviadas para o log e
podem ser objeto de uma investigação posterior numa inspeção dos logs.

.A última e derradeira parte 6 vem aí!

.Sds.

Márcia Guimarães.

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
16
Referência: Kurt Patzer
Listas de Controle de Acesso criadas facilmente - Parte 6
Postado por: Márcia Guimarães em Tutoriais, Artigos, Exame CCNA

Bem, chegamos ao fim meu amigos. Espero que tenham gostado dos artigos e que seja útil no dia-a-
dia.

O assunto ACL pode ser mais explorado do que isso. Existem as listas de acesso reflexivas que são
um poucos mais complicadas do que as listas de acesso comuns. Elas se diferem das últimas pela
característica de ANINHAMENTO. Quem é programador aqui sabe o que é aninhamento. É uma instrução
que será executada somente sobre certa condição, que pode ser verdadeira ou falsa. Resumindo : a ACL da
resposta é criada dinamicamente quando a ACL da solicitação original é correspondida. Mas isso é assunto
para oooutro artigo.

Ah ! E obrigada pelas mensagens de incentivo de todo blog. :)

Sds.

Márcia Guimarães

Tenha Cuidado quando Editar ACLs Remotas

Se você está utilizando métodos in-band de conexão para um router remoto (como telnet ou SSH),
você tem que ser cuidadoso com as ACLs que edita para que você não bloqueie sua conexão atual. A razão
mais comum para que isso aconteça é que quando você emite o comando “no access-list 101“, a entrada da
ACL é removida (mesmo se você especificar precisamente uma única linha, ela ainda assim remove toda a
ACL). Neste ponto, o router tratará a ACL 101 com um “permit any“. Porém, assim que você adicione a
primeira linha na nova ACL 101, o estado se altera de “permit any” para um “negue tudo exceto para o que
é permitido pela primeira entrada”. Se sua sessão telnet ou SSH está por muito tempo no ar, você perderá
sua conexão !

Um truque que é um pouco de divertido, e não é configurável em todos os ambientes, é usar uma
variante do comando “reload“. Se você especificar “reload in 5“, ele instruirá o router para aguardar por 5
minutos e então recarregar. Assuma que você entrou o comando no router e então iniciou a edição de suas
ACLs. Se você acidentalmente travou a si mesmo, o router em breve recarregará. Ele reverterá para sua
antiga configuração startup que especifica as ACLs originais. Você pode então reconectar ao router e tentar
novamente. Este truque não é uma opção para uma organização que demanda um uptime 24 x 7. Porém se
sua organização tem algumas filiais onde não existam funcionários após as 18:00 hs e você administra as
ACLs quando todos da equipe remota já foi embora, esta poderia ser uma opção para você. Agora lembre-se
de usar o comando “reload cancel” se sua edição funcionar, ou senão seu router ainda ficará recarregando e
sua edição será perdida mais uma vez.

Outra idéia é não editar as ACLs on-line, porém, ao invés disso, editar usando um editor de texto ou
o Word numa estação. Depois de editar, você copia as ACLs para o router usando o TFTP. Uma vantagem
disso é que o router não implementaria a nova ACL até que todas as entradas tenham sido copiadas via
TFTP, assim você está muito menos propenso a travar a si mesmo. A principal vantagem, entretanto, é que
isso deixa as coisas mais fáceis para você adicionar e deletar linhas do meio de uma ACL. ACLs Nomeadas
permitem a habilidade de remover uma linha do meio de uma ACL, porém é mais comum você precisar
adicionar uma linha no meio da ACL. E, como discutimos anteriormente, você pode querer reordenar a

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
17
Referência: Kurt Patzer
linha em sua ACL para melhorar sua performance. Isto é muito fácil de ser efetuado com um editor de texto
do que em uma sessão de configuração do router on-line.

Remover uma Linha do Meio de uma ACL Numerada

Para recompensar a perseverança exigida para ler todo este white paper, finalizarei com uma dica
que fará com que você ganhe algumas apostas com seus amigos que também admininistram um IOS Cisco.
É bastante conhecimento comum de que nomear ACLs IP oferecem a vantagem de ser capaz de remover as
linhas do meio daquela ACL IP Nomeada. Isto porque se você entrar o comando “no command” e
precisamente especificar uma única entrada na ACL numerada, toda ACL será finalizada e removida. Você
pode apostar com seus amigos que acreditam nisto que você removerá a linha do meio de uma ACL
Numerada tão fácilmente quanto numa ACL Nomeada. A dica é tratar a ACL Numerada como se ela fosse
uma ACL Nomeada que apenas tem um nome que utiliza somente caracteres numéricos. A seguir é
mostrado como remover a entrada FTP de uma ACL IP Numerada que nós utilizamos em nosso exemplo:

router#sh access-list 101


Extended IP access list 101
permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 eq telnet
permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range ftp-data ftp
permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range 6000 6001

router#config t
Enter configuration commands, one per line. End with CNTL/Z.
router(config)#ip access-list extended 101
router(config-ext-nacl)#no permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range ftp-data
ftp
router(config-ext-nacl)#end
01:27:48: %SYS-5-CONFIG_I: Configured from console by console

router#sh access-list 101


Extended IP access list 101
permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 eq telnet
permit tcp 172.16.100.4 0.0.0.3 172.16.101.163 0.0.0.16 range 6000 6001

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
18
Referência: Kurt Patzer
Sumário

A lista a seguir sumariza o que foi discutido neste “white paper”:

 Uma ACL é um “classificador de pacote” que pode ser aplicado de muitas maneiras diferentes.
 ACLs IP podem ser numeradas e nomeadas, e elas podem ser padrão (standard) ou extendida
(extended)
 Podemos usar máscaras wildcard para agrupar endereços IP. Enquanto que a matemática binária
possa ser complexa, o propósito é muito simples. Máscaras wildcard específica quais bits do
endereço IP são importante para a classificação.
 Podemos usar um operador de intervalo para a grupar sequencialmente portas TCP ou UDP juntas.
 A otimização da performance da ACL é importante, entenda-se como otimização da leitura da ACL.
 Remarks ou comentários é uma ferrramenta disponível para melhora a leitura da ACL.
 Turbo ACLs são uma opção poderosa disponível em routers Cisco de alta capacidade.
 A palavra-chave established pode melhorar muito o processamento eficiente da ACL e pode
potencialmente utilizar esta informação para otimizar uma entrada colocada dentro da ACL.
 Você pode rever os hit counts de cada entrada numa ACL e pode potencialmente usar esta
informação para otimizar uma entrada dentro da ACL.
 Você pode capturar via log da ACL as violações para uso da rede forense.
 Quando usar comunicação in-band para o router, seja cuidadoso que sua ACL não atualiza numa
queda de conexão.
 Contrário a “compreensão comum”, é possível remover uma entrada do meio de uma ACL
numerada.

Listas de Controle de Acesso criadas Facilmente


Artigo criado por Márcia Guimarães
19
Referência: Kurt Patzer

Potrebbero piacerti anche