Para ser mais preciso ao combinar um determinado tráfego de rede, são usadas listas de acesso estendidas. Listas de acesso estendidas são mais difíceis de configurar e requerem mais tempo de processamento do que as listas de acesso padrão, mas elas permitem um nível de controle muito mais granular.
Com listas de acesso estendidas, você pode avaliar informações adicionais de pacotes, tais como:
- endereço IP de origem e destino
- tipo de protocolo TCP/IP (TCP, UDP, IP…)
- número de portas de origem e destino
Dois passos são necessários para configurar uma lista de acesso estendida:
1. configurar uma lista de acesso estendida usando o seguinte comando:
(config) access list NUMBER permit|deny IP_PROTOCOL SOURCE_ADDRESS WILDCARD_MASK DESTINATION_ADDRESS WILDCARD_MASK PROTOCOL_INFORMATION
2. aplicar uma lista de acesso a uma interface usando o seguinte comando:
(config) ip access-group ACL_NUMBER in | out
Números de listas de acesso estendidas estão nos intervalos de 100 a 199 e de 2000 a 2699. Você deve sempre colocar ACLs estendidas o mais próximo possível da origem dos pacotes que estão sendo avaliados.
Para entender melhor o conceito de listas de acesso estendidas, considere o seguinte exemplo:
Queremos habilitar a estação de trabalho do administrador (10.0.0.1/24) acesso irrestrito ao Servidor (192.168.0.1/24). Também iremos negar qualquer tipo de acesso ao Servidor a partir da estação de trabalho do usuário (10.0.0.2/24).
Primeiro, vamos criar uma declaração que permitirá o acesso da estação de trabalho do administrador ao Servidor:
Primeiro, precisamos criar uma declaração que negará o acesso da estação de trabalho do usuário ao Servidor:
>
>
Por último, precisamos aplicar a lista de acesso à interface Fa0/0 no R1:
>
>
>
Isto forçará o roteador a avaliar todos os pacotes que entram em Fa0/0. Se o administrador tentar acessar o Servidor, o tráfego será permitido, por causa da primeira instrução. Entretanto, se o usuário tentar acessar o servidor, o tráfego será proibido por causa da segunda instrução ACL.
No final de cada lista de acesso há uma negação explícita de toda instrução, portanto a segunda instrução ACL não foi realmente necessária. Depois de aplicar uma lista de acesso, todo tráfego não explicitamente permitido será negado.
No lado direito, temos um Servidor que serve como servidor web, ouvindo na porta 80. Precisamos permitir o acesso do Usuário a sites na S1 (porta 80), mas também precisamos negar outro tipo de acesso.
Primeiro, precisamos permitir o tráfego do Usuário para a porta 80 do Servidor. Podemos fazer isso usando o seguinte comando:
Usando a palavra-chave tcp, podemos filtrar os pacotes pelas portas de origem e destino. No exemplo acima, permitimos tráfego de 10.0.0.2 (Estação de trabalho do usuário) para 192.168.0.1 (Servidor) na porta 80. A última parte do comando, eq 80, especifica a porta de destino de 80.
Desde que no final de cada lista de acesso exista um comando implícito negar tudo, não precisamos de definir mais nenhum comando. Depois de aplicar uma lista de acesso, todo tráfego que não tenha origem a partir de 10.0.0.2 e indo para 192.168.0.1, a porta 80 será negada.
Precisamos aplicar a lista de acesso à interface:
Podemos verificar se nossa configuração foi bem sucedida tentando acessar o Servidor a partir da estação de trabalho do Usuário usando diferentes métodos. Por exemplo, o ping falhará:
Telnetting to the port 21 will fail:
>
>
No entanto, poderemos acessar o Servidor na porta 80 usando nosso navegador:
>