Seguranca em Roteadores
por: Verdade @bsoluta
http://www.absoluta.org

Data do Documento: 27/03/2000
Ultima atualização: 17/10/2000
Palavras Chave: roteador, ACL, lista de controle de acesso, cisco
Autor: Verdade @bsoluta
Tradutor:
Arquivo: seg_router.htm
Status: completo ( em processo de revisão )

Comentários e correções são sempre bem-vindos.


Observação:
O assunto tratado neste texto tem por objetivo principal ajudar os administradores de rede no processo de configuração de roteadores,com sua modesta abrangência, este trabalho pretende servir como motivação ao leitor para busca de novos conhecimentos no campo da segurança da informação. Não houve aqui a pretensão de esgotar  o assunto, mas sim fornecer ao leitor um texto condensado, reunindo conceitos fundamentais ao entendimento dos termos relacionados.

Boa leitura!
..................................................................................................................................................

Indice

  1. Introdução
  2. Os Três As ( AAA )
  3. Componentes Básico do Hardware
  4. O Processo de Inicialização do Roteador
  5. Fluxo dos Dados
  6. Controle do Tráfego com ACL
  7. Como Funciona a ACL
  8. Implementando ACL
  9. Exemplos
  10. Conclusão
  11. Agradecimentos
  12. Referências



1 - Introdução
Este artigo tem por objetivo abordar a configuração de listas de controle de acesso (ACL) em roteadores CISCO. Inicialmente faremos algumas considerações sobre o hardware e software dos roteadores CISCO. Em seguida abordaremos os conceitos das listas de controle de acesso e sua implementação no roteador.

A seguranca possui muitas faces e uma das mais importantes é a capacidade de controlar o fluxo de pacotes em uma rede, com o objetivo de proteger nossas redes de falhas, degradação dos servicos, roubo ou comprometimento dos dados resultantes de uma ação intencional ou de um erro provocado por usuários.

Mas uma solução efetiva de segurança não deve ser baseada somente em recursos técnicos, deve-se elaborar uma política de segurança de forma a definir-se as diretrizes de seguranca da instituição. Para tanto, existem padrões internacionais com as melhores práticas de seguranca, que podem auxiliar no processo de elaboração da política de segurança.

Antes de prosseguir a leitura deste artigo analise o item 9 - Exemplos, mesmo que agora você não entenda tudo, pois com a visualisação da ACL o entendimento dos conceitos torna-se mais rápido.


2 - Os Três As ( AAA )
O controle de acesso é a forma pela qual pode-se controlar quem tem acesso aos servidores da rede e a quais serviços pode-se utilisar uma vez possuindo acesso aos mesmos. Neste texto estaremos focados na AUTORIZAÇÃO. Para tanto, iremos tratar dos recursos de controle de acesso que podem ser implementados em roteadores CISCO, embora os conceitos possam ser aplicados a outros elementos de controle de acesso.

Deve-se ter em mente que um sistema efetivo de segurança não deve ser baseado somente em regras nos roteadores, deve-se utilizar outros elementos como:

O sistema operacional da Cisco ( IOS - Internetwork Operational System ) fornece várias funcionalidades que podem ser utilizadas para elevar o nível de segurança de uma rede. Entre estas funcionalidades está o filtro de pacotes que serão estudados nos próximos tópicos.

3 - Componentes Básico do Hardware
A CISCO produz vários tipos de roteadores. Embora estes produtos possuam diferenças consideráveis quanto ao seu poder de processamento e quanto ao número de interfaces que suportam, eles utilizam um conjunto básico de hardware. A figura-1 mostra um esquema genérico que destaca os componentes básicos de um roteador CISCO. Embora a CPU ou micro-processador, quantidade de RAM e ROM, quantidade e tipos de porta de I/O possam ser diferentes de produto para produto, cada roteador possui os componentes referenciados na figura-1.
 
Figura 1 - componentes básicos do hardware

CPU:

A CPU ou micro-processador é responsável pela execução das instruções que ativam o roteador. O poder de processamento da CPU está relacionado de forma direta com a capacidade de processamento do roteador.

Flash Memory:

A flash memory é um tipo de ROM re-programavel. Esta memória pode ser utilizada para armazenar várias imagens de OS e micro-códigos do roteador. Esta fun"cão é útil para testar novas imagens. A flash memory também pode ser utilizada para trival file transfer protocol (TFTP) uma imagem de OS para outro roteador.

ROM:

A ROM contém códigos que realizam diagnósticos de inicialização do roteador semelhante ao POST, ( power on self-test) realizado por muitos PCs. Além disso, um progama bootstrap é utilizado para carregar o OS.

RAM:

A RAM é utilizada para armazenar as tabelas de roteamento, buffer de pacotes, fornecer uma área para enfileirar pacotes quando os mesmos não podem ser enviados para a saída devido ao grande volume de tráfego roteado para uma interface em comum. Além disto, prover espaço para armazenamento de informações sobre endereços ARP de forma a reduzir o tráfego de ARP e melhorar a capacidade de transmissão para LANs conectadas ao roteador. Quando o roteador é desligado, perde-se todas as informações armazenadas na RAM.

NVRAM:

A NVRAM ( Nonvolatile RAM ) ao contrário da RAM, não perde seu conteúdo quando o roteador é desligado. A NVRAM possui um backup da configuração do roteador. Desta forma, o roteador pode retornar à operação sem a necessidade de ser re-configurado. O uso da NVRAM elemina a necessidade de ter HD ou unidade de disquete em um roteador.

Portas de I/O e MSC (Media-Specific Converters):

As portas de entrada/saída ( I/O ) representam as conexões pelas quais os pacotes entram e saem do roteador. Cada porta de entrada/saida ( I/O ) é conectada a uma media-specific converter ( MSC ), que fornece a interface física para um tipo específico de meio como uma LAN ethernet ou token ring ou a uma WAN RS-232 ou V.35. Os dados são recebidos através de uma LAN; os cabeçalhos da camada 2 são removidos e os pacotes são enviados para a RAM. Quando estas ações acontecem, a CPU examina as tabelas de rotas para determinar a porta de saida dos pacotes e o formato no qual os mesmos devem ser encapsulados.

Este processo é chamado de process switching, no qual cada pacote deve ser processado pela CPU que consulta as tabelas de rota e determina para onde enviar os pacotes. Os roteadores CISCO possuem outro processo chamado de fast switching, nesta forma de processo o roteador mantém um cache na memória com informações sobre o destino dos pacotes IP e a próxima interface.

O roteador constrói este cache salvando as informações previamente obtidas da tabela de roteamento. O primeiro pacote para um destino específico executa um processamento da CPU para consultar as tabelas de rota. Uma vez que esta informação é obtida a mesma é inserida no cache do fast switching. Desta forma as tabelas de roteamento não são consultadas quando um novo pacote é enviado para o mesmo destino. Desta forma o roteador pode enviar os pacotes de forma mais rápida e consequentemente reduzir a carga de processamento da CPU. Vale resaltar que existem algumas variações quanto à forma de processamento em alguns equipamentos.

Existe outra forma de cache chamada de netflow switching, onde além de armazenar o IP de destino armazena-se o IP de origem e as portas TCP e UDP. Este recurso está disponível somente em roteadorees de maior capacidade como os da familia 7000.


4 - O Processo de Inicialização do Roteador
Quando você liga o roteador algumas rotinas de inicialização sao executadas ( FIGURA-2 ): Após completar o processo de inicialização o roteador começa a operar. A partir deste ponto você pode construir novos parâmetros de configuração ou alterar os existentes.
 
Figura 2 - fluxo do processo de inicialização do roteador

Após a inicialização tanto a imagem do IOS quanto o arquivo de configuração são armazemados na RAM, sendo que a imagem do IOS é armazenado nos endereços baixos e o arquivo de inicialização no endereço alto, conforme ilustrado na fugura-3.
 

Figura 3 - IOS e arquivo de configuração na RAM



5 - Fluxo dos Dados

Uma vez que o roteador sabe qual é ou quais são os tipos de interfaces ( Ethernet, Token Ring, FDDI, X.25, Frame Relay, ...), o mesmo pode verificar o formato dos frames que chegam e montar os frames de saída, além disso o roteador pode verificar a integridade dos dados que chegam, pois como o mesmo conhece o tipo de interface, pode calcular o cyclic redundancy check ( CRC ), da mesma forma o roteador pode calcular o CRC dos frames de saída.

Caso as tabelas de roteamento possuam apenas rotas estáticas, estas tabelas não serão trocadas com outros roteadores.

O cache ARP representa uma área da memória onde são armazenadas as relações entre o endereco IP e seu endereço físico ( o endereço MAC da camada 2 ).

Os dados que são recebidos ou preparados para transmissão podem entrar em filas de prioridades, onde o tráfego de baixa prioridade é atrasado em favor do processamento do tráfego de alta prioridade. Se o modelo do roteador suportar priorização de tráfego, certos parâmetros de configuração podem ser informados ao roteador para indicar como realizar esta priorização.

As informações sobre o fluxo dos dados como localização e status dos pacotes são armazenadas na hold queue.

As entradas das tabelas de roteamento informam a interface de destino para o qual determinados pacotes devem ser roteado. Se o destino for uma LAN e for necessária a resolução de endereço, o roteador procúra o endereço MAC inicialmente no cache ARP. Caso o endereço não seja encontrado no cache ARP, o roteador monta um pacote ARP para descobrir o endereço MAC.

Uma vez que o endereço de destino e o método de encapsulação estão determinados os pacotes são enviados para a porta da interface. Dependendo do volume de tráfego novamente o pacote pode entrar em uma fila de prioridade, hardware buffer, até que possa ser enviado.
 
 

Figura 4 - fluxo dos dados



6 - Controle do Tráfego com ACL

Uma lista de controle de acesso ( ACL ) é uma lista de regras ordenadas que permitem ou bloqueiam o tráfego de pacotes baseado em certas informações presentes nestes. Vamos analisar esta frase de forma mais detalhada: Além do controle de acesso as ACLs podem ser utilizadas para outras funções como: Note que estas funções são diferentes do controle de fluxo de pacotes através do roteador.

Listas de acesso podem ser configuradas para todos os tipos de protocolos roteáveis como: IP, AppleTalk entre outros. Neste texto nosso foco é TCP/IP.

 
Figura 5 - Visão geral do fluxos de uma lista de acesso



7 - Como Funciona a ACL

Fluxo dos Pacotes Através das Listas de Acesso

O processo tem início quando uma interface recebe um pacote. O roteador verifica a tabela de roteamento à procura de uma rota para o pacote. Caso não tenha uma rota este pacote será descartado e sera enviada para a origem uma mensagem de ICMP ( unreachable destination ). Caso contrário verifica-se se existe uma lista de controle de acesso aplicada à interface, não existindo o pacote é enviado para o buffer da porta de saída, caso contrário o pacote é analisado pela lista de controle de acesso da interface em questão. Uma vez que o fluxo de dados atraves da uma determinada interface é bidirecional, uma ACL pode ser aplicada em uma direção especifica da interface:

Vale notar que os pacotes gerados pelo roteador como troca de tabelas de roteamento não são afetados pelas regras aplicadas a uma interface no sentido outbound, a única forma de controlar os pacotes gerados pelo roteador como atualização de tabela é atraves de ACL de inbound.
 
Figura 6 - fluxo do pacote através da ACL

A lista de acesso é conferida em ordem seqüencial, ou seja, o pacote é testado a partir da primeira regra. Assim, se o pacote  enquadrar-se em alguma regra e verificando a condição do mesmo - se permitido ou bloqueado. Caso o pacote não se enquadre em nenhuma das regras, o mesmo será bloqueado pela última regra, a qual é implícita e bloqueia tudo que não está explicitamente permitido, conforme já dito anteriormente.
 

Figura 7 - fluxo da desicao de analise do pacote
 
Tipos de Listas de Acesso

Os dois principais tipos de listas de acesso são:

Identificando as Listas de Acesso

Ao se configurar listas de acesso em um roteador deve-se identificar cada lista de forma única.

Em alguns protocolos as listas de acesso devem ser identificadas por nome, já em outros devem ser identificadas por número e alguns protocolos permitem a identificação por nome ou número. Quando utilizamos números para identificar as listas de acesso estes devem pertencer a um conjunto de números que "identificam" o protocolo.
A partir do IOS 11.2 é permitida a identificação da lista de acesso utilizando-se nomes definidos pelo administrador, isso para listas de acesso standard e/ou extended.

Baseado no identificador o roteador decide qual software de controle de acesso deve ser utilizado.

Observe as tabelas abaixo o agrupamento de nomenclatura para listas de acesso:

 
Figura 8 - Agrupamento por tipo de lista de acesso
 
Figura 9 - Protocolos identificados por nome
 
Figura 10 - Protocolos identificados por número

8 - Implementando ACL
Finalmente é chegada a hora da implementação.

Inicialmente, será abordado um tópico que com freqüência causa confusão ao se tratar de listas de controle de acesso: as máscaras de wildcards.

Funcionamento do wildcar em roteadores Cisco [ 1 ]

A filtragem de endereço ocorre com a utilização de máscaras wildcard para identificar o que é permitido ou bloqueado nos bits do IP. As máscaras wildcard para os bits de endereço IP utilizam o número 1 e o número 0 para a identificação do que deve ser filtrado nos bits do IP.

 
Figura 11 - exemplo de wildcard


É importante observar que estes bits NÃO possuem relação com as máscaras de IP. A máscara de sub-rede é utilizada para determinar quantos bits de um IP representam uma porção da sub-rede, ou seja, a máscara de sub-rede determina quais bits são importantes para definir uma sub-rede. Um binário setado em 1 indica que o bit do endereço IP é parte de uma sub-rede, já o binário setado com 0 indica que o bit do endereço IP faz parte da porção host.

No exemplo a seguir vamos verificar como as máscaras de bits ( 0 | 1 ) bloqueiam ou permitem o tráfego de pacotes baseado no endereco IP.

Teste de condição de uma lista de controle de acesso com protocolo IP:
Um administrador deseja testar um endereço IP por sub-rede ( 172.30.16.0 até 172.30.31.0 ), os dois primeiros octetos correspondem a parte rede ( 172.30 ) o terceiro octeto corresponte a sub-rede ( 16 até 31 ), o quarto octeto corresponde ao host.

O administrador deseja usar as máscaras wildcard para bits IP para verificar as sub-redes 172.30.16.0 até 172.30.31.0. Isso é feito da seguinte forma:

Figura 12 - exemplo de wildcard para IP 172.30.16.0 a 172.30.31.0

O resultado final é:
Para o endereço: 172.30.16.0
Com a máscara: 0.0.15.255
Serão verificadas as sub-redes: 172.30.16.0  a  172.30.31.0

Existem algumas abreviações que facilitam a utilização dos wildcard:
 

Criando Listas de Acesso

Como dito anteriormente neste artigo tratamos das listas standard e extended, desta forma vamos passar para a sintaxe deste tipo de listas.

STANDARD
 
Figura 13 - Sintaxe de uma lista de acesso standard

Lembre-se que para listas de controle de acesso standard a faixa de numeração utilizada  inicia-se em 1 e vai até 99.

A partir do modelo apresentado na figura-15, vamos montar alguns exemplos de lista de controle de acesso:

Exemplo 1: permitir somente a entrada de pacotes com origem na rede 172.16.0.0:

access-list    1    permit    172.16.0.0    0.0.255
Exemplo 2: bloquear um hosts específico com origem na rede 172.16.0.0:
access-list    1    deny    172.16.1.30    255.255.255
Exemplo 3: bloquear uma  determinada sub-rede :
access-list    1    deny    172.16.1.0    0.0.0.255
EXTENDED
 
Figura 14 - Sintaxe de uma lista de acesso extended

Para as listas de controle de acesso extended a faixa de numeração utilizada para referência inicia-se em 100 e vai até 199.

Os protocolos passíveis de filtragem no caso de TCP/IP, são:

Os operadores são:


Exemplo 1: bloquear FTP para a interface ETH0:

access-list 101 deny tcp 172.16.1.0  0.0.0.255  192.168.0.0  0.0.255.255  eq  21
access-list 101 deny tcp 172.16.1.0  0.0.0.255  192.168.0.0  0.0.255.255  eq  20
Exemplo 2: bloquear tentativas de telnet para fora da rede 192.168.1.0 e permite os demais tráfegos:
access-list   101   deny   tcp   192.168.1.0   0.0.0.255   any   eq    23
access-list   101   permit ip    any    any
Mantendo Backup dos Arquivos de Configuração

A manutenção de cópias de segurança dos arquivos de configuracao e do IOS é de fundamental importância, pois eventualmente devido a falhas de corrente elétrica estes arquivos pode ser danificados ou apagados da memória flash. Além disso a manutenção de backup dos arquivos facilita a administração de redes com vários roteadores. O admistrador de rede possui várias possibilidades de realização de cópias de segurança, uma delas é o TFTP.

O ideal é existir uma rede segregada dedicada para a função de gerência de rede, onde inclui-se a gerência da segurança, esta rede deve estar isolada da rede de dados e prover canais de comunicação out-of-band, no caso de necessidade de utilização dos canais de dados para funções de gerência é recomendável a utilização de canais seguros.

De qualuqer forma, como o serviço TFTP não requer altenticação é extremamente recomendável a implementação de algum mecanismo que controle a origem das conexões ao servidor TFTP.

Os comandos TFTP para realizar cópia de segurança e atualização de arquivos são:

Veja alguns exemplos abaixo:

Para caregar uma nova versão da imagem do IOS para a memória flash do roteador, use o comando  copy  tftp  flash, como mostrado abaixo:

absoluta# copy   tftp   flash

System flash directory:
File    Length        Name/status
 1        4171336    c4500-j-mz_112-15a.bin
[4171400 bytes used, 22904 available, 4194304 total]
Address or name of remote host [10.1.10.40]? 10.1.10.40
Source file name? c4500-j-mz_112-15a.bin
Destination file name [c4500-j-mz_112-15a.bin]? yes
Accessing file 'c4500-j-mz_112-15a.bin' on 10.1.10.40...
Loading c4500-j-mz_112-15a.bin from 10.1.1.12 (via TokenRing1): [OK]

Erase flash device before writing? [confirm] yes
Flash contains files. Are you sure you want to erase? [confirm] yes

Copy 'c4500-j-mz_112-15a.bin' from server
     as 'yes' into  Flash WITH erase? [yes/no] yes
Erasing device... eeeeeeeeeeeeeee ...erased
Loading c4500-j-mz_112-15a.bin from 10.1.1.12 (via TokenRing1): !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 4171336/4194304 bytes]

verifying checksum... OK (0x29D5)
Flash copy took 00:00:30 [hh:mm:ss]
absoluta#

Para realizar um backup do arquivo de configuração, use o comando copy running-config tftp, conforme o exemplo abaixo:

absoluta# copy running-config tftp
Remote host [ ]?  10.1.10.40
Name of configuration file to write [router-confg]? config_router_principal_2000-05-20.bak
Write file config_router_principal_2000-05-20.bak  on host 10.1.10.40? [confirm] yes
Building configuration...

Write config_router_principal_2000-05-20.bak !!!!!! [OK]
absoluta#


Exemplos
Para nossos exemplos vamos assumir uma topologia de rede conforme a figura 15:
 
Figura 15 - visão da topologia de rede para os exemplos
O objetivo desta seção é demonstrar o processo de criação de regras. Não existe a intenção de demonstrar um grupo completo de regras, cada rede possui suas caracteristicas próprias e os filtros devem ser criados em conformidade com a realidade da rede.

Caso você não comprenda o que esta fazendo poderá ter problemas devido a uma má implementação de filtros, desta forma, evite simplemente copiar as regras que encontar nos livros e artigos, mas sim entende-las antes da implementação. De qualquer forma consulte os artigos listados na seção link, pois os mesmos possuem um conjunto de regras interessantes.

Vamos usar como exemplo para montagem de regras a conexão de SMTP, de forma a permitir o envio e recebimento de emails.
 
regra direção ip_orig. ip_dest. protocolo porta_dest. ação
A in externo interno TCP 25 permite
B out interno externo TCP >1023 permite
C out interno externo TCP 25 permite
D in externo interno TCP >1023 permite
E ambas qualquer qualquer qualquer qualquer bloqueia

Vamos considerar alguns exemplos de pacotes para facilitar o entendimento das regras. Nosso servidor SMTP possui o IP 10.0.0.1 e alguem de uma rede externa com IP 172.16.2.3 tenta enviar um email para nós. A porta de origem utilizada pelo cliente externo é 1234 com destino para 25, analisanos esta situação de acordo com as regras implementadas temos o seguinte:
 
pacote direção ip_orig. ip_dest. protocolo porta_dest. ação
1 in 172.16.2.3 10.0.0.1 TCP 25 permite (A)
2 out 10.0.0.1 172.16.2.3 TCP >1023 permite (B)

Neste caso as regras do nosso roteador permitem a entrado dos pacotes de email:

Agora vamos considerar o caso de alguem respondendo este email. O cliente localizado na rede interna possui o IP 10.0.0.4 usando a porta 1245 e vai responder para um usuário que possui conta no servidor 172.16.2.1 porta 25:
 
pacote direção ip_orig. ip_dest. protocolo porta_dest. ação
3 out 10.0.0.4 172.16.2.1 TCP 25 permite (C)
4 in 172.16.2.1 10.0.0.4 TCP >1245 permite (D)

Neste caso as regras do nosso roteador permitem a saida dos pacotes de email:

Agora vamos supor que algum localizado em uma rede externa, 172.16.2.3, usando a porta 4321 tente abrir uma conexão no servidor 10.0.0.1 na porta de x-windows, 6000:
 
pacote direção ip_orig. ip_dest. protocolo porta_dest. ação
5 in 172.16.2.3 10.0.0.1 TCP 6000 permite (D)
6 out 10.0.0.1 172.16.2.3 TCP 4321 permite (B)

Neste caso as regras do nosso roteador comportam-se da seguinte forma:

Certamente isso não é o que queremos. Para contornar esta situação devemos agregar mais um elemento as nossas regras, a porta de origem. Vejamos como fica:
 
regra direção ip_orig. ip_dest. protocolo porta_orig. porta_dest. ação
A in externo interno TCP >1023 25 permite
B out interno externo TCP 25 >1023 permite
C out interno externo TCP >1023 25 permite
D in externo interno TCP 25 >1023 permite
E ambas qualquer qualquer qualquer qualquer qualquer bloqueia

Agora vejamos o comportamento das regras com este novo elemento:
 
pacote direção ip_orig. ip_dest. protocolo porta_origem porta_dest. ação
1 in 172.16.2.3 10.0.0.1 TCP 1234 25 permite (A)
2 out 10.0.0.1 172.16.2.3 TCP 25 1234 permite (B)
3 out 10.0.0.4 172.16.2.1 TCP 1245 25 permite (C)
4 in 172.16.2.1 10.0.0.4 TCP 25 1245 permite (D)
5 in 172.16.2.3 10.0.0.1 TCP 4321 6000 bloqueia (E)
6 out 10.0.0.1 172.16.2.3 TCP 6000 4321 bloqueia (E)

Como podemos observar, após a inclusão deste novo elemento de filtragem foi possivel bloquear o atque a porta x-windows.

Mas o que impede de alguem tentar abrir uma conexão na porta x-windows, 6000, usando como origem a porta 25?

Vamos analisar o que acontece nesta situação:
 
pacote direção ip_orig. ip_dest. protocolo porta_orig. porta_dest. ação
7 in 172.16.1.2 10.0.0.1 TCP 25 6000 permite (D)
8 out 10.0.0.1 172.16.1.2 TCP 6000 25 permite (C)

Como podemos notar este pacote será permitido e a tentativa de abertura de conexão terá sucesso.

Para resolvermos este problemas temos que incluir mais um elemento em nossos filtros, desta vez vamos incluir a analise das flags dos pacotes TCP, expecificamente a flag ACK
 
regra direção ip_orig. ip_dest. protocolo porta_orig. porta_dest.   flag  ação
A in externo interno TCP >1023 25 qualquer permite
B out interno externo TCP 25 >1023 somente
  ACK
permite
C out interno externo TCP >1023 25 qualquer permite
D in externo interno TCP 25 >1023 somente
  ACK
permite
E ambas qualquer qualquer qualquer qualquer qualquer qualquer bloqueia

Como você sabe, no processo de estabelecimento de conexão TCP, sempre o primeiro pacote possui a flag ACK setada como 0. Já os demais pacotes da conexão possuem a flag ACK setada em 1.

Agora vamos analisar o que ocorre com a inclusão deste novo elemento em nosso filtro:
 
pacote direção ip_orig. ip_dest. protocolo porta_orig. porta_dest. flag ação
7 in 172.16.1.2 10.0.0.1 TCP 25 6000 ACK=0 bloqueia(E)

Como você pode notar agora as tentativas de abertura de conexão com origem em redes externas e destinadas a portas >1023 serão bloqueadas.

Vale lembra que é recomendável logar todas as tentativas de violação das regras, pois desta forma você poderá "saber" as tentivas de violação da sua política de segurança.

No caso de roteadores CISCO as regras A e B são traduzidas para uma única regras, pois o mesmo possui recuros de manter tabelas internas com status da conexão, este recurso está disponível em roteadores de outros fabricantes. Esta regra seria traduzida para o seguinte:

access-list   101   permit tcp    any  host    <endereco_IP_serv_SMTP>    eq    smtp

Agora irei apresentar uma série de regras reais. Analise cuidadosamente cada uma de forma a entender sua aplicação. Mas lembre-se, estas regras podem não representar as necessidades da sua rede, como dito anteriormente, cada rede possui uma realidade própria.
 

!Lista 101 - Regras de Entrada
!Limpar a lista para permitir atualizacao
no access-list 101
!Restricoes aos enderecos de origem dos pacotes
!proibe enderecos iguais ao IP interno (spoofing)
!access-list 101 deny ip <Classe_C_Interno> 0.0.0.255 any log
!proibe enderecos das interfaces do router (land attack)
!access-list 101 deny ip <Endereço_IP_da_S0> 0.0.0.0<Endereço_IP_da_S0> 0.0.0.0 log
!access-list 101 deny ip <Endereço_IP_da_S1> 0.0.0.0 <Endereço_IP_da_S1> 0.0.0.0 log
!access-list 101 deny ip <Endereço_IP_da_Eth0> 0.0.0.0 <Endereço_IP_da_Eth0> 0.0.0.0 log
!proibe enderecos reservados a redes privativas (RFC-1918)
!access-list 101 deny ip 10.0.0.0 0.255.255.255 any log
!access-list 101 deny ip 172.16.0.0 0.15.255.255 any log
!access-list 101 deny ip 192.168.0.0 0.0.255.255 any log
!proibe o endereco de loopback
!access-list 101 deny ip 127.0.0.0 0.255.255.255 any log
!proibe o bradcasting (evita ping amplifying)
!access-list 101 deny ip host 255.255.255.255 any log
!Permite conexoes iniciadas internamente (TCP ACK=1)
!access-list 101 permit tcp any any established
!Restricoes e redireconamento de servicos
!proibe acesso ao TFTP
!access-list 101 deny udp any any eq 69 log
!proibe acesso ao X-Windows
!access-list 101 deny tcp any any range 6000 6005 log
!access-list 101 deny udp any any range 6000 6005 log
!proibe o acesso ao SNMP
!access-list 101 deny udp any any eq snmp log
!access-list 101 deny udp any any eq snmptrap log
!permite o acesso a porta 113/tcp e 113/udp (identd e auth), mas faz log
!essas portas sao usadas em winoob/winnuke attacks
!access-list 101 permit tcp any any eq 113 log
!access-list 101 permit udp any any eq 113 log
!HTTP apenas para o servidor HTTP
!access-list 101 permit tcp any host <Endereco_IP_Serv_WWW> eq www
!access-list 101 permit udp any host <Endereco_IP_Serv_WWW> eq 80
!SMTP apenas para o servidor de mail
!access-list 101 permit tcp any host <Endereco_IP_Serv_SMTP> eq smtp
!POP3 apenas para o servidor de POP3 (se for permitir externo)
access-list 101 permit tcp any host <Endereco_IP_Serv_POP3> eq pop3
!DNS x-fer apenas para secundarios
access-list 101 permit udp any host <Endereco_IP_Serv_DNS1> eq domain
access-list 101 permit udp any host <Endereco_IP_Serv_DNS2> eq domain
access-list 101 permit tcp host <Endereco_IP_Secund_DNS1> host <Endereco_IP_Serv_DNS1> eq
domain
access-list 101 permit tcp host <Endereco_IP_Secund_DNS1> host <Endereco_IP_Serv_DNS2> eq
domain
access-list 101 permit tcp host <Endereco_IP_Secund_DNS2> host <Endereco_IP_Serv_DNS1> eq
domain
access-list 101 permit tcp host <Endereco_IP_Secund_DNS2> host <Endereco_IP_Serv_DNS2> eq
domain
!permite pacotes TCP e UDP apenas para portas nao privativas do SO
access-list 101 permit tcp any any gt 1023
access-list 101 permit udp any any gt 1023
!proibe todo o resto, mas faz log
access-list 101 deny ip any any log

!Lista 102 - Regras de Saida
!Limpar a lista para permitir atualizacao
no access-list 102
!permite apenas enderecos internos
access-list 102 permit ip <Endereco_Classe_C_Interno> 0.0.0.255 any
!proibe qualquer outra coisa e faz log
access-list 102 deny ip any any log
 


10 - Conclusão
Como dito no inicio o assunto tratado neste texto tem por objetivo principal ajudar os administradores de rede no processo de configuração de roteadores,com sua modesta abrangência, este trabalho pretende servir como motivação ao leitor para busca de novos conhecimentos no campo da segurança da informação. Não houve aqui a pretensão de esgotar  o assunto, mas sim fornecer ao leitor um texto condensado, reunindo conceitos fundamentais ao entendimento dos termos relacionados.

Desta forma procurei descrever o processo de tomada de decisão interno de um roteador de forma a permitir ao leitor um melhor entendimento dos recuros presentes em suas redes. Alem disso vale notar que a simples implementação de listas de contorle de acesso em roteadore não é o suficiente para garantir a segurança de uma rede, trata-se mais um recurso que deve ser utilizado de acordo com a política de segurança e em conjunto com os demais elementos que componhem o perímetro de segurança da rede.

Firewall é uma tecnologia que permite várias abordagens, onde podemos chamar um simples elemento com filtros de pacote de firewall até estruturas de várias camadas com zonas desmilitarizadas.

Antes de realizar qualquer implementação tenha certeza de que entendeu o funcionamento de todas as regras criadas.

O autor não dá nenhuma garantia quanto a danos que possam ser causados devido a implementação das regras discutidas neste artigo.
 


11 - Agradecimentos
  • momo momo momo
  • momo momo momo
  • momo momo momo

  • 12 - Referencias
  • Livros / Revistas
  • Cisco Security Architectures, Gil Held & Kent Hundley - ( ISBN: 0-07-134708-9 ).
  • Cisco IOS Network Security - ( ISBN: 1-57870-057-4 ).
  • Cisco A Beginner's Guide - ( ISBN: 0-07-212115-7 ).
  • Cisco Access Lists - ( ISBN: 0-07-212335-4 ).
  • Introduction to Cisco Router Configuration: Student Guide.
  • Building Bastion Routers Using Cisco IOS - Phrack Magazine (P55-10).
  • Building Internet Firewalls ( ISBN - 1-56592-124-0 )
  • Links
  • Melhorando a Segurança com Filtros de Pacote ( http://www.absoluta.org )
  • Aumentando a segurança de redes TCP/IP através de filtros de pacote ( http://www.xxx.com.br )
  • Filtros de Pacote em Roteadores Cisco ( http://www.rnp.br - Março de 1998 )
  • Cisco Systems ( http://www.cisco.com )
  • Consulta

  • <=

    http://www.absoluta.org      ---oOo---      verdade@absoluta.org

    Copyright © 1998 - 2000  Verdade @bsoluta


    © Copyright 1998/2000 - Verdade @bsoluta ( http://www.absoluta.org )