Implementação Firewall com Iptables
Por: Hugo.bassi • 15/4/2018 • 2.259 Palavras (10 Páginas) • 283 Visualizações
...
2ª parte:
- ACLs: São listas de controle de acesso, aplicadas na interface do roteador, que filtram o tráfego. Essas listas contém informações sobre os tipos depacotes que o roteador deve aceitar ou recusar. Elas gerenciam o tráfego aumentando a segurança da rede.
ACLs standard: Esta é a lista mais básica, com menos funcionalidades. Filtram apenas através do endereço IP de origem. Os números de identificação deste tipo de ACL vão de 1 a 99 e de 1300 a 1999. Este tipo de ACL deve ser posicionada o mais próximo possível do destino do tráfego.
ACLs extended: Além de filtrarem através dos endereços de IP de origem e destino, também permitem que se filtre o tráfego através de portas e protocolos. Os números de identificação deste tipo de ACL vão de 100 a 199 e de 2000 a 2699. Este tipo de ACL deve ser posicionada o mais próximo possível da origem.
- Existe a possibilidade de executar este tipo de configuração em qualquer roteador?
Não – ACL’s nos roteadores CISCO, que por sinal tem muitas vantagem em relação a outros roteadores no mercado.
- Como uma ACL pode controlar o encaminhamento de pacotes na rede?
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 através da uma determinada interface é bidirecional, uma ACL pode ser aplicada em uma direção especifica da interface:
- inbound - verifica se o processamento do pacote deve continuar após o seu recebimento em uma determinada interface;
- outbound - verifica se o pacote deve ser enviado para uma interface de saída ou bloqueado.
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.
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.
Criando uma ACL e aplicando regras
Criando uma ACL standard
Como dito anteriormente, as ACLs standard são o tipo mais básico de ACLs. Elas permitem apenas que você filtre o tráfego através dos endereços IP de origem, nada mais. Obviamente, esta falta de funcionalidades faz com que ACL’s standard sejam o tipo mais fácil de configurar.
Qualquer tipo de ACL é criada no modo de configuração global através do comando “access-list”.
Para exemplificar o uso do comando, vamos começar criando uma ACL para negar qualquer coisa vinda do host 192.168.1.34:
R1(config)#access-list 1 deny 192.168.1.34 0.0.0.0
A linha acima é bem simples:
- 1: Como dito anteriormente, ACLs standard têm que ser numeradas de 1 a 99 ou de 1300 a 1999. Aqui escolhi arbitrariamente o número 1;
- deny: Esta é a ação que será tomada com o pacote que casar com a regra da ACL. Neste caso, o pacote será negado pelo roteador. Você também poderia ter colocado “permit” para que o pacote passasse pelo firewall ou “remark”, que não é bem uma ação – ele permite a você adicionar um comentário na ACL (veremos com mais detalhes mais à frente);
- 192.168.1.34 0.0.0.0: Este é o IP de origem e a wildcard mask, que neste caso casa apenas com este host específico.
Agora, vamos permitir todo o tráfego vindo do host 192.168.1.35, adicionar esta entrada na mesma ACL 1 utilizada anteriormente:
R1(config)#access-list 1 allow 192.168.1.35 0.0.0.0
Pronto! Agora a ACL 1 está parecida com o seguinte:
deny 192.168.1.34 0.0.0.0
allow 192.168.1.35 0.0.0.0
Lembrando-se que nas ACLs os comandos vão sendo adicionados de acordo com a ordem em que e definida, e que a ordem faz muita diferença. Portanto, e muito importante estudar muito bem as suas possibilidades antes de sair adicionando as entradas.
Para adicionar um comentário para facilitar o entendimento da ACL, você consegue fazer isso utilizando a ação “remark”:
R1(config)#access-list 1 remark Permitindo o host do chefe
Podemos ver o comentário através do comando show running-config. O comentário que e definido, deve ter no máximo 100 caracteres.
Em alguns casos, pode ser interessante logar. quando um pacote casar com uma regra. A opção “log” permite a fazer isso:
R1(config)#access-list 1 deny 192.168.1.2 0.0.0.0 log
Agora, sempre que alguma coisa casar com a regra acima uma mensagem informacional vai ser enviada para o console.
Antes de terminarmos a parte sobre ACLs standard, existem dois “atalhos” que devemos conhecer: host e any.
O atalho host permite que você defina que o endereço que vem à seguir se refere à um host, sem precisar digitar a wildcard mask dele. Por exemplo, imagine a seguinte regra:
R1(config)#access-list 1 deny 192.168.1.1 0.0.0.0
Ela poderia ser reescrita da seguinte maneira:
R1(config)#
...