Lista de Controle de Acesso criadas facilmente – Parte 4 – Blog 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".
neq não igual
range faixa exclusiva
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 "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.
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 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 :
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.
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
Ufa… E vamos em frente.Aguardem a parte 5 . 🙂.
Marco Filippetti em agosto 1, 2008 às 10:11 am
Marcia, excelente série de posts!!! 😀
Minu em agosto 1, 2008 às 10:25 am
Interessante, mas continua sendo complicado. =/
Marcia Guimaraes em agosto 1, 2008 às 10:49 am
Comentários assim só incentivam. Incentivam em estudar mais, investir mais na carreira e sempre… sempre… persistir. 🙂
Marcia Guimaraes em agosto 1, 2008 às 10:50 am
Oi Minu…
Olha, dá uma olhada no post anterior….
http://blog.ccna.com.br/2008/07/30/lista-de-controle-de-acesso-criadas-facilmente-parte-3/
Lá tem uma resposta para o Bruno e Rodrigo. Leia. Vai esclarecer alguns pontos. ok?
Rodrigo Falcão em agosto 1, 2008 às 7:36 pm
Márcia, esse seu tutorial está sendo de grande ajuda mesmo!!
thiagocella em agosto 1, 2008 às 7:57 pm
Obrigado Márcia , sempre tive dificuldades quando o assunto era ACLs , voce ajudou "a clarear as idéias"