REDES IV – SISTEMA DE
PROTEÇÃO E SEGURANÇA DE
REDES
AULA 3
Prof. Luis José Rohling
CONVERSA INICIAL
Um dos dispositivos amplamente utilizados na implementação das
medidas de segurança de rede são os Firewalls, cuja função básica é bloquear
todo o tipo de tráfego que venha da rede externa (WAN) em direção à rede
interna (LAN) e que não tenha sido solicitado por um dispositivo que esteja na
rede interna. Portanto, o Firewall deverá estar posicionado na entrada da rede,
entre a rede WAN e a rede LAN, de modo que todo o tráfego externo passe
através dele, conforme mostrado na figura a seguir.
Figura 1 – O posicionamento do Firewall de rede
Assim, termos o Firewall realizando o isolamento entre a rede interna, que
será a rede segura, e a rede externa, que será a rede em que teremos as
diversas ameaças, de modo que todo o tráfego originado na rede externa seja,
por padrão, bloqueado. E além do processo de inspeção e bloqueio do tráfego
realizado pelo Firewall, teremos o processo de roteamento de tráfego entre a
rede LAN e rede WAN sendo realizado pelo roteador, conforme mostrado na
figura anterior. Assim, teremos a conexão com a rede Externa sendo feita pelo
roteador e, após o roteador, teremos a instalação do Firewall, que será
configurado de acordo com a política de segurança da empresa.
Porém, como nas redes IPv4 temos a utilização dos endereços públicos
e privados, em que os usuários da rede estão configurados com endereços
privados, que não podem ser rotados na Internet, temos também o processo de
tradução de endereços, que é o NAT. E esse processo normalmente é realizado
pelo roteador que faz a conexão com a WAN, que é chamado de roteador de
borda. Porém, como a configuração do Firewall estará baseada nos endereços
púbicos, o processo de NAT deverá então ser realizado pelo próprio Firewall ou
2
poderá ser acrescido mais um roteador nessa topologia, entre a rede LAN e o
Firewall. Porém, nesse caso, o Firewall não poderá mais identificar os usuários
internos, pois os endereços de origem, do tráfego interno, estarão mascarados
pelo processo de NAT. Dessa forma, o processo de NAT deverá ser feito pelo
próprio Firewall, que assim poderá rastrear as sessões abertas pelos hosts na
rede interna, através de seus endereços IPv4 privados, e verificar se o acesso
solicitado é permitido, de acordo com a política de segurança, e então
encaminhar a solicitação para a WAN, realizando a troca do endereço privado
por um endereço público. E quando o tráfego retornar da Internet, o Firewall
poderá realizar a permissão desse tráfego de retorno, realizando novamente a
tradução de endereços.
TEMA 1 – A EVOLUÇÃO DOS FIREWALLS
A tecnologia de implementação das soluções de Firewall também sofreu
diversas mudanças ao longo do tempo, em função da evolução tecnológica dos
equipamentos e do aumento da complexidade das medidas de segurança.
Inicialmente, os Firewalls eram constituídos apenas de uma lista de permissões
em relação ao tráfego, sendo executadas em um equipamento de rede,
possuindo também versões que poderiam ser executadas em um computador
com duas placas de rede. Assim, esses dispositivos inspecionavam cada pacote
que vinha da rede externa e comparavam as informações desses pacotes com
uma lista previamente definida, sendo chamados de Firewalls do tipo Filtro de
Pacotes. E as regras utilizadas para essa inspeção eram estabelecidas
considerando os endereços de IP de origem e de destino, bem como dos
números de porta, ou seja, operavam nas camadas 3 e 4 do modelo OSI,
examinado as informações dos protocolos de Rede e de Transporte.
Por exemplo, para criar uma regra de permissão do tráfego de navegação
WEB, era necessário permitir todo o tráfego vindo da rede externa, e que tivesse
como origem a porta 80, pois essa porta é a porta designada para o protocolo
HTTP, conforme mostrado na figura a seguir.
3
Figura 2 – Firewall com permissão da porta 80
Esse modelo de Firewall, com a utilização de regras para cada tipo de
aplicação ou de tráfego, baseado em seu endereço ou porta de origem, é muito
trabalhoso, pois para cada novo tipo de tráfego, seria necessária a criação de
uma nova regra. Além disso, com a evolução dos tipos de ameaças, esse modelo
de controle, baseado apenas nos dados das camadas três e quatro, também se
tornou inseguro, pois temos diversas ameaças que operam na camada de
aplicação, e assim não são detectadas pelos Firewalls de Filtro de Pacotes. Além
disso, o atacante poderia explorar a permissão geral de um determinado
protocolo, como visto no exemplo, e estruturar um ataque, enviando pacotes que
contenham a porta 80 como porta de origem, falsificando a porta de origem para
poder passar através do Firewall.
1.1 O Firewall de estado de conexão
A evolução do Firewall de pacotes foi o desenvolvimento do Firewall FW
do tipo Estado da Conexão. Nesse modelo, o Firewall faz a inspeção do tráfego
de saída da rede LAN para a WAN, permitindo apenas a entrada do tráfego que
corresponda ao tráfego de retorno das requisições realizadas pelos dispositivos
que estão na rede LAN. Ou seja, o Firewall irá registrar todas as solicitações
4
realizadas para a rede WAN e acompanhar as respostas recebidas, bloqueando
todo o tráfego que não pertencer a essas sessões. Esse modelo de Firewall é
muito mais seguro do que o Firewall de pacotes e não requer praticamente
nenhuma configuração, pois o processo é dinâmico e realizado pelo próprio
Firewall de maneira automática. Porém, apesar de fazer a verificação do retorno
do tráfego de maneira automática, o Firewall convencional não irá avaliar o
conteúdo dos pacotes, mas apenas se pertencem a uma sessão estabelecida
por um terminal da rede LAN. Por isso também é chamado de Firewall de
camada 3 e 4.
Figura 3 – Firewall de Estado da Conexão
Essa operação requer um nível de processamento maior do que o modelo
de operação como Filtro de Pacotes, pois o Firewall terá que realizar o
gerenciamento das conexões. Porém, em uma rede menor, como a quantidade
de tráfego não demandará um processamento significativo para esse tipo de
operação, esse recurso já está embarcado nos equipamentos de conexão à
Internet, que são chamados de modens ou roteadores. Portanto, atualmente, em
nossas conexões residenciais, temos um Firewall desse tipo no equipamento de
conexão à Internet, bastando habilitar essa funcionalidade, e assim já utilizando
um primeiro nível de segurança da conexão. Porém, esse Firewall opera
basicamente no modo de estado das conexões, monitorando o tráfego de saída
e permitindo o retorno das solicitações geradas pela LAN.
5
1.2 O Firewall de camada de aplicação
A evolução dos equipamentos de Firewall ocorreu também seguindo
modelo OSI, ou seja, os Firewalls mais atuais conseguem avaliar o tráfego no
nível da aplicação, tornando-se um Firewall de camada 7. Esse filtro de
aplicações também é chamado de Application Control, identificando e
bloqueando as aplicações que possam representar algum tipo de tentativa de
invasão ou de ataque à rede interna.
Figura 4 – O Firewall de camada 7
7 APLICAÇÃO
6 APRESENTAÇÃO
5 SESSÃO
4 TRANSPORTE
3 REDE
2 ENLACE DE DADOS
1 FISICA
Mas, além de bloquearem o tráfego externo, os Firewalls atuais também
implementam o controle das requisições da rede LAN, ou seja, avaliam o tráfego
de saída e fazem o seu bloqueio, caso a requisição esteja direcionada a um
endereço, site ou serviço de rede que esteja em desacordo com a política de
segurança da empresa. Essa funcionalidade dentro das redes também é
conhecida como Proxy, que é o elemento para o qual todo o tráfego é enviado,
para então ser encaminhado para a rede externa. Assim, para fazer o controle
de acesso, é necessário que o Firewall identifique qual é o solicitante das
requisições, podendo implementar uma política de segurança baseada no perfil
de cada usuário ou baseada em grupos. E nesse caso, conforme vimos
anteriormente, o Firewall deverá também incorporar a função de NAT.
Outro desafio dos Firewalls atuais, para inspeção na camada de
aplicação, é que muitas das sessões são criptografadas. Assim, para fazer a
6
inspeção o FW, é necessário descriptografar os dados para fazer a inspeção, o
que pode acarretar atraso de processamento do tráfego. Além disso, com a
utilização de certificados digitais, o usuário poderá receber uma mensagem de
que o certificado não foi validado, pois é um certificado emitido pelo Firewall e
não por um servidor público na WEB, conforme vimos anteriormente.
Figura 5 – O Firewall e a criptografia
Esse modelo, com o Firewall de camada de aplicação, incluindo a
inspeção do tráfego criptografado, normalmente é realizado por equipamentos
mais atuais e tipicamente nas redes corporativas. E nesse caso, também
devemos verificar a capacidade de processamento desses equipamentos, pois
conforme vimos anteriormente, os algoritmos de criptografia exigem um alto
desempenho dos equipamentos, para não afetar a performance do processo de
comunicação. E como em uma rede corporativa podemos ter centenas ou até
milhares de conexões simultaneamente, e além do registro das seções, para a
operação do Firewall de Estado de Conexão, esse equipamento ainda
necessitará realizar o processo de descriptografia, para verificação do conteúdo,
e de criptografia, para o encaminhamento dos pacotes para o destinatário. E com
todo esse processamento, caso não seja dimensionado corretamente, pode
ocorrer uma parada total do Firewall, causada por uma sobrecarga de
processamento.
TEMA 2 – O FILTRO DE PACOTES
Para a implementação de um Firewall do tipo filtros de pacotes, que foi a
primeira forma de implementação desse tipo de recurso de segurança em redes,
podemos ter diversas opções, utilizando equipamentos dedicados para essa
7
finalidade ou acrescentando esse tipo de funcionalidade em um equipamento de
rede, tal como um roteador. Assim, iremos analisar duas plataformas distintas
que são amplamente utilizadas para a implementação de um Firewall de rede
baseado em filtragem de pacotes, que são a implementação de um sistema do
tipo Open Source e a utilização de um equipamento de rede, nesse caso, um
roteador.
2.1 O Firewall Open Source
Para os sistemas chamados de Open Source, teremos então a instalação
de uma ferramenta de software, que não tem custo de licenciamento, em um
hardware adequado, que pode ser um computador convencional. Porém, em
função da alta disponibilidade que esse equipamento deverá apresentar, pois
toda a comunicação com a rede externa trafegará através desse equipamento,
o ideal é a utilização de um hardware do tipo Servidor. Portanto, por mais que a
aplicação de inspeção de pacotes não impacte significativamente no
processamento, principalmente nos equipamentos mais atuais, com alta
capacidade de processamento, é necessário que esse equipamento esteja
projetado para operar ininterruptamente, tal como os demais equipamentos de
rede, sendo, portanto, recomendável a utilização de um servidor efetivamente.
Figura 6 – O Firewall Open Source
Nesse hardware, que será utilizado para a instalação da ferramenta de
software, que fará a filtragem dos pacotes, é necessária também a instalação de
duas interfaces de rede, sendo que cada uma delas fará a conexão com a WAN,
sendo conectada ao roteador, e a outra interface fará a conexão com a rede LAN,
normalmente conectada ao Switch Core da rede. E, normalmente, além do
8
software de Firewall, também deverá ser instalada a ferramenta que fará a
tradução de endereços, ou seja, o aplicativo de NAT.
E como solução de software, para a implementação de um Firewall de
filtro de pacotes, temos, por exemplo, o iptables, que é uma ferramenta já
incorporada no kernel do sistema operacional Linux, e que é configurada com o
uso de linha de comando, chamada de CLI – Command Line Interface. Outra
solução de software utilizada para a configuração de um Firewall de filtro de
pacotes baseado em Open Source é o pfSense, cuja principal diferença do
iptables é que o pfSense é configurado via interface gráfica (GUI – Graphic User
Interface), o que facilita esse processo de configuração, principalmente para os
usuários que não estão muito familiarizados com os comandos do sistema
operacional Linux. Porém, as interfaces gráficas sempre têm uma limitação de
opções de configuração em relação ao processo de configuração via linha de
comando, ou seja, a maior facilidade na configuração tem como limitação as
opções disponíveis na interface gráfica. Assim, um profissional com maior
experiência normalmente irá preferir a opção de linha de comando, caso esteja
disponível, ou as ferramentas que operam nesse modo.
2.2 O Firewall em Roteadores
As soluções de Firewall baseadas em roteadores também sofreram uma
evolução com o passar do tempo, em função do aumento da capacidade dos
equipamentos, bem como com a evolução das ameaças. Assim, utilizaremos
como exemplo os equipamentos da Cisco para entender como essa evolução
ocorreu e como são configurados os roteadores para a inclusão da
funcionalidade de Firewall.
A primeira geração de Firewall em roteadores Cisco operava como um
filtro de pacotes, sendo que esse controle de tráfego era feito com o uso das
listas de controle de acesso, chamada de ACL – Access Control List. As
instruções que compõem as ACLs podem definir duas ações distintas, que são
a permissão ou a negação dos pacotes. A segunda geração de FW são as
soluções que operam baseadas no estado das conexões, ou seja, farão o
acompanhamento do início e término das sessões. Assim, uma nova sessão
iniciada da rede interna, em direção à rede externa, terá o seu tráfego de retorno
permitido. Para habilitar esse tipo de operação nos roteadores, temos também
9
as listas de controle de acesso, porém que são geradas a partir das sessões
estabelecidas, que são as ACLs conhecidas como essablished.
E a implementação do Firewall em roteadores normalmente é feita no
roteador chamado de roteador de borda, pois é esse equipamento que faz a
conexão com a rede externa, delimitando o chamado perímetro de segurança.
Assim, como todo o tráfego externo já passaria por esse roteador, ele se torna o
dispositivo ideal para também realizar a filtragem de pacotes, de acordo com a
política de segurança. Porém, assim como no caso da implementação do
Firewall em um servidor, é necessário verificar o Hardware adequado. No caso
do roteador, as interfaces de conexão com as redes interna e externa já são um
recurso básico do equipamento, e nesse caso deve ser verificada a capacidade
de processamento do roteador, pois essa inspeção de pacotes irá consumir
recurso de processamento e memória. Inclusive alguns modelos de roteadores
da Cisco permitem o acréscimo de módulos, que possuem processador e
memória adicionais, e que podem ser então utilizados para essa finalidade, não
afetando a capacidade de roteamento do equipamento.
Outra funcionalidade que também é normalmente executada no roteador
é a tradução de endereços, que é o processo de NAT. Assim, teremos também
essa facilidade no processo de configuração das regras de Firewall, pois teremos
todo o tráfego que passa pelo roteador com seus endereços originais, de origem
e de destino, que podem ser do tipo endereços públicos ou privados. Assim, será
possível a criação de regras que poderão estar referenciadas tanto aos
endereços públicos quanto aos endereços privados.
E para a configuração dos equipamentos de rede com as funcionalidades
de Firewall, temos o modo de configuração com o uso de interface de linha de
comando, que é a CLI, com o uso de uma interface gráfica, que é chamada de
GUI – Graphical user Interface, e também com a utilização de um navegador, do
tipo web browser. E a configuração básica das regras de filtragem de pacotes é
feita com o uso das listas de controle de acesso, chamadas de ACL – Access
Control List, que é um recurso disponível em praticamente todos os roteadores
da Cisco, sendo necessária, eventualmente, a habilitação dos recursos de
segurança ou a atualização do sistema operacional do roteador, que é chamado
de IOS – Internetwork Operational System.
10
TEMA 3 – CONFIGURAÇÃO DE FIREWALL OPEN SOURCE
Conforme vimos anteriormente, a ferramenta utilizada para a
implementação de um Firewall de filtro de pacotes em plataforma Open Source
é o iptables, sendo que a operação do iptables está baseada na monitoração do
tráfego com o uso de tabelas, que são as tables. E essas tabelas são formadas
por um conjunto de regras, que são chamadas de chains.
Assim, o Firewall fará a leitura dos dados de cada pacote que chega ao
equipamento e fará uma busca nas tabelas, procurando por uma linha que
corresponda aos parâmetros do pacote examinado. Os dados que são lidos, e
que podem então ser especificados nas regras, são as informações dos
cabeçalhos de camada de rede e de transporte, por se tratar de um Firewall do
tipo Filtro de Pacotes, sendo chamado de Firewall de camada 3 e 4. E,
encontrada uma linha que corresponda aos valores dos cabeçalhos do pacote,
teremos uma ação executada pelo iptables, que estará definida na regra
correspondente, e que poderá ser uma das quatro ações listadas abaixo:
• Accept: permite o encaminhamento do pacote;
• Drop: descarta o pacote, sem informar à origem;
• Return: para de executar o conjunto de regras (chain) e devolve-o à chain
de origem;
• Queue: o pacote é enviado para uma fila (queue).
As duas primeiras ações definem a operação básica de um Firewall que
é a permissão ou o bloqueio do tráfego. Assim, em uma regra de um Firewall de
filtro de pacotes, será sempre necessário realizar a especificação das
informações de camada 3 e 4 e uma ação a ser executada.
E na implementação de um Firewall com o iptables, temos três tipos
diferentes de tabelas que podem ser utilizadas para a filtragem de pacotes, e
que contêm a lista de regras, que é a chamada rules list. E essas tabelas são:
• filter: tabela padrão para os pacotes de rede;
• nat: pacotes que criarão uma nova conexão através do NAT;
• mangle: utilizado para alterações específicas dos pacotes.
Na operação do Firewall, ao receber um pacote, o iptables irá comparar
as informações do pacote com a tabela correspondente ao tipo de tráfego. E
quando é encontrada a correspondência do pacote com uma das regras da
11
tabela, a ação é executada, não sendo verificadas as regras seguintes. Portanto,
é necessário observar a sequência correta das regras, posicionando as regras
mais específicas no início da tabela e as regras mais genéricas após as regras
mais específicas. Assim, se quisermos bloquear tráfego com destino a um
determinado host em uma rede e permitir o tráfego com destino aos demais
hosts, devemos posicionar a regra de bloqueio do host antes da regra de
permissão da rede.
3.1 As regras do iptables
Como temos diversas distribuições do sistema operacional Linux,
podemos ter alguma diferença na sintaxe das regras do iptables entre as
diversas distribuições, e por isso, em nosso estudo, utilizaremos a sintaxe mais
usual, encontrada na maioria das distribuições. Dessa forma, para a elaboração
das regras da lista do iptables, a sintaxe é basicamente composta de três
parâmetros, onde teremos:
iptables -A <chain> -j <target>
Sendo que o parâmetro -A especifica que a regra será adicionada ao
<chain>, sendo que cada chain é composta de uma ou mais regras, que são
chamadas de ruleset. E o parâmetro -j <target> especifica a ação a ser
executada, ou seja, o que deverá ser feito com o pacote que corresponder à
regra especificada.
Conforme vimos anteriormente, temos três tabelas diferentes, e assim,
teremos diferentes chains para cada uma das tabelas. Dessa forma, para a
tabela filter, que é utilizada para a operação como Firewall, teremos as seguintes
chains:
• INPUT: pacotes recebidos pelo servidor;
• OUTPUT: pacotes enviados pelo servidor;
• FORWARD: pacotes encaminhados pelo servidor.
Dessa forma, poderemos ter regras distintas tanto para o tráfego recebido
e enviado pelo próprio servidor, quanto para o tráfego que irá atravessar o
servidor, ou seja, realizando a filtragem do tráfego entre as redes LAN e WAN.
Para a operação de tradução de endereços, que é o NAT, teremos a
utilização das chains para a tabela de NAT, que são:
12
• PREROUTING: modificação dos pacotes quando recebidos;
• POSTROUTING: modificação dos pacotes antes de serem enviados para
a interface de saída;
• OUTPUT: modificação dos pacotes gerados localmente.
O outro parâmetro do iptables é o -A, que é abreviação de Append, e que
indica que uma regra será adicionada. E esse parâmetro poderá ser combinado
com outros parâmetros, que permitirão especificar os parâmetros dos pacotes
que serão examinados, que são:
• -i (interface): interface de rede;
• -p (protocol): protocolos de rede, tais como tcp, udp, icmp e outros,
podendo ser utilizado o parâmetro all;
• -s (source): endereço de origem do pacote (hostname ou IP);
• -dport (destination port): número de porta de destino, tal como 80 (http),
443 (https) e outras.
Assim, podemos especificar esses diversos parâmetros, de acordo com
as regras de segurança desejada, definindo os critérios de inspeção e de
execução das ações das regras. E a ordem para utilização desses parâmetros
deverá ser:
-iptables -A <chain> -i <interface> -p <protocol (tcp/udp)>
-s <source> --dport <port no.> -j <target>
E o parâmetro -j <target> irá definir qual será a ação a ser executada,
quando o pacote corresponder aos parâmetros especificados na regra, e que
poderá ser:
• ACCEPT;
• DROP;
• RETURN;
• QUEUE.
Ou seja, para que um pacote seja descartado, a regra será terminada em
-j DROP.
13
3.2 O controle de acesso
Como a ferramenta do iptables está disponível nas diversas distribuições
Linux, é muito comum a utilização dessa ferramenta como um Firewall que
implementará a segurança do próprio servidor, fazendo-se o controle de acesso
ao próprio servidor. Para realizar a configuração desse controle de acesso, um
dos critérios que podem ser utilizados para a permissão ou descarte do pacote
é a interface de destino do pacote. Assim, por exemplo, para permitir o acesso à
interface de loopback, que é utilizada para o gerenciamento dos equipamentos
de rede, teríamos a seguinte regra:
iptables -A INPUT -i lo -j ACCEPT
Na qual temos o parâmetro -A INPUT para adicionar essa regra à chain
identificada como INPUT, ou seja, essa regra será então aplicada a todo o
tráfego recebido pelo servidor. O próximo parâmetro é o –i, que indica que será
especificada uma interface de destino como parâmetro de aplicação dessa regra,
sendo que essa interface será a Loopback, especificada pelo parâmetro lo na
sintaxe dessa regra. Nesse caso, poderíamos especificar ainda outras
interfaces, tais como Eth0, ppp0 e outras. E o parâmetro final, para definir que o
pacote com destino à interface Loopback seja permitido, é o -j ACCEPT, que
define a ação de permissão. Nesse exemplo, poderíamos utilizar essa interface
de Loopback para o acesso remoto ao equipamento, para o processo de
gerenciamento do mesmo.
Outro critério que pode ser utilizado nas regras do iptables é a porta de
destino. Por exemplo, tendo-se um servidor WEB, seria necessário então
habilitar o tráfego HTTP com destino ao próprio servidor. Para realizar essa
configuração, então teríamos a seguinte sintaxe:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Na qual temos o parâmetro -A para adicionar essa regra à chain
identificada como INPUT, a definição do protocolo tcp como protocolo de destino,
especificado pelo parâmetro -p tcp, e também a especificação do serviço HTTP,
que utiliza a porta 80, especificando-se essa porta como destino do tráfego, o
que é feito com o parâmetro --dport 80. E, finalmente, é especificada a ação, que
seria a permissão do pacote, com o parâmetro -j ACCEPT.
14
Outro serviço que também é amplamente utilizado para o gerenciamento
e configuração dos equipamentos de rede é o acesso remoto, utilizando o
protocolo SSH, que faz a criptografia dos dados. Assim, por exemplo, para
habilitar o acesso ao equipamento utilizando o protocolo SSH, que utiliza a porta
22, teríamos a seguinte regra:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Nesse exemplo, estamos acrescentando a regra na lista de inspeção do
tráfego de entrada, pois o servidor é o destino da sessão SSH, com o parâmetro
-A INPUT, e especificando o protocolo tcp e a porta 22, que é a porta utilizada
pelo protocolo SSH, que opera na camada de aplicação. E para permitir esse
tráfego, é utilizado o parâmetro -j ACCEPT no final da regra.
3.3 Filtragem de endereços
Além do bloqueio do trafego externo, o Firewall de filtro de pacotes
também é utilizado para realizar o controle de tráfego dentro da rede, cujo
controle será realizado tendo como base os endereços de origem ou de destino
dos pacotes. Inclusive, esse modelo de operação de Firewall é chamado de
filtragem de tráfego do tipo east-west.
Para esse tipo de controle de tráfego, a regra de filtragem de pacotes
poderá ser estabelecida utilizando-se como critério o endereço de origem, que
poderá ser o endereço de apenas um host, de uma rede, ou de um intervalo de
endereços. Assim, para a filtragem de apena um endereço de origem, a sintaxe
a ser utilizada será:
iptables -A INPUT -s [Link] -j DROP
O parâmetro -s indica que será especificado um endereço de origem, já
que a regra será aplicada ao tráfego de entrada, e após o parâmetro -s deverá
ser especificado o endereço IPv4, no formato decimal separado por pontos, e
também dever ser definida a ação, com o parâmetro -j, que poderá ser de
permissão ou de bloqueio, conforme vimos anteriormente.
Para definirmos o endereçamento de toda uma rede, a sintaxe será a
mesma vista anteriormente, bastando acrescentar o prefixo da rede após o
endereço IPv4 da rede a ser bloqueada ou permitida, conforme mostrado a
seguir:
15
iptables -A INPUT -s [Link]/24 -j DROP
E outra forma possível de definição do endereçamento a ser filtrado é o
de um determinado intervalo, cuja sintaxe é mostrada abaixo:
iptables -A INPUT –m iprange --src-range [Link]-
[Link] -j DROP
Nesse caso, teremos o parâmetro iprange, que indica que será
especificado um conjunto de endereços, definindo-se então o primeiro e o último
endereço do intervalo que será especificado nessa regra de inspeção. Assim,
todos os endereços que estiverem contidos no intervalo definido terão
correspondência com essa regra e serão permitidos ou bloqueados, de acordo
com a ação especificada na regra.
Assim, por exemplo, para bloquear todo o tráfego que entre no Firewall e
que tenha com endereço de origem o endereço do host [Link], devemos
utilizar a seguinte regra de bloqueio:
iptables -A INPUT -s [Link] -j DROP
E para bloquearmos o acesso de todos os hosts da rede [Link],
teremos então que acrescentar o prefixo da rede após o endereço, conforme
mostrado abaixo:
iptables -A INPUT -s [Link]/24 -j DROP
Como exemplo de aplicação desse tipo de controle, para bloquearmos o
acesso dos hosts que estejam no intervalo de endereços [Link] ao
[Link], teremos a seguinte regra:
iptables -A INPUT –m iprange --src-range [Link]-
[Link] -j DROP
Em uma rede, normalmente teremos diversas sub-redes, com
endereçamento diferente, bem como com regras distintas para cada sub-rede.
Assim, considerando-se como exemplo a rede mostrada abaixo, vamos definir
então as regras necessárias para que apenas os hosts da rede LAN1 tenham
acesso ao equipamento de Firewall.
16
Figura 7 – Filtragem de tráfego com iptables
Assim, como temos duas redes distintas, deveremos utilizar duas regras,
sendo uma delas para a permissão de uma rede e a outra regra para o bloqueio
de outra rede. E as regras a serem aplicadas para esse cenário serão então:
iptables -A INPUT -s [Link]/24 -j ACCEPT
iptables -A INPUT -s [Link]/24 -j DROP
TEMA 4 – LISTAS DE CONTROLE DE ACESSO
A implementação do Firewall de Filtro de Pacotes em roteadores está
baseada na utilização das regras de controle de acesso, que se assemelham ao
iptables, e que são chamadas de ACL – Access Control List. Porém, temos
diversos tipos de ACL que sofreram uma evolução com o tempo, e também uma
forma de aplicação que se difere bastante do iptables.
As ACL são formadas por um conjunto de instruções de permissão e de
bloqueio do tráfego, sendo especificados os parâmetros a serem inspecionados
e comparados com o especificado nas regras que compõe a ACL. Assim, uma
ACL pode ser comparada com uma chain utilizada no iptables. Porém, no caso
das ACLs, deveremos especificar a interface em que a regra será aplicada e em
qual sentido, de entrada ou saída. Assim, teremos uma forma bastante diferente
de aplicação das regas em relação ao iptables, pois as tabelas do iptables já
estão pré-determinadas em relação à sua aplicação, e as ACLs permitem que
seja configurada a interface e o sentido de tráfego, possibilitando uma maior
flexibilidade no processo de configuração.
Em roteadores Cisco, temos dois tipos básicos de ACL, que são as
chamadas ACL Padrão e a ACL Estendida, que se diferem pela quantidade de
parâmetros especificados e, consequentemente, pelo nível de filtragem de
tráfego. Uma ACL Padrão permite apenas a filtragem do endereço de origem do
17
tráfego, que poderá ser permitido ou bloqueado. Já uma ACL Estendida permite
especificarmos o endereço e a porta de origem, e também a porta e o endereço
de destino. Assim, com uma ACL Estendida, podemos especificar efetivamente
o fluxo do tráfego que atravessa o Firewall, pois permite especificar os
parâmetros de camada 3 e 4 e, principalmente, os parâmetros de origem e de
destino, detalhando o fluxo de tráfego.
4.1 A ACL Padrão
Uma ACL é configurada em um roteador Cisco utilizando-se o modo de
configuração global, sendo que o indexador da ACL será o número da ACL a ser
definido no seu processo de configuração. E esse número de ACL também irá
diferenciar as ACLs Padrão das ACLs Estendidas. Assim, para a configuração
de uma ACL Padrão, temos a seguinte sintaxe:
access-list <n> <ação> <origem> <máscara>
Onde os parâmetros para a configuração das regas de ACL são:
• <n>: número da ACL, de 1 a 99
• <ação>: permit (pemite), deny(bloqueia) ou remark (comentário)
• <origem>: endereço de origem do pacote
• <máscara>: aplicada ao endereço especificado
Por exemplo, utilizando o roteador para a filtragem do tráfego entre as
redes LAN, do tráfego east-west, de modo que seja bloqueado o tráfego que
tenha origem da rede LAN1, com destino à rede LAN2, teremos a seguinte
sintaxe da ACL:
Figura 8 – Exemplo de ACL Padrão
access-list 1 deny [Link] [Link]
Internet
LAN1 LAN2
S0/0
F0/0 F0/1
[Link] [Link]
18
Dessa forma, foi criada a ACL de número 1 cuja ação será o bloqueio,
especificado pelo parâmetro deny, de todo o tráfego que tenha como origem um
endereço que esteja incluído na rede [Link]. E observe que,
diferentemente do iptables, não temos a utilização do prefixo da rede, mas é
utilizada a chamada máscara curinga, que é o inverso da máscara de rede.
E, além de criar a ACL, é necessário também configurar a sua aplicação
em uma interface, para que efetivamente ela passe a realizar a filtragem do
tráfego. E a sintaxe para aplicação da ACL em uma das interfaces do roteador
é:
ip access-group <n> <direção>
Onde os parâmetros a serem configurados são:
• <n>: número da ACL a ser aplicada;
• <direção>: in (tráfego de entrada) ou out (tráfego de saída).
Assim, é necessário identificar em qual interface será aplicada a ACL, e
em qual direção, para que tenhamos o resultado desejado. No exemplo anterior,
como temos duas interfaces distintas, poderíamos aplicar a ACL na interface
F0/0 ou na interface F0/1. Porém, de acordo com a interface escolhida, teremos
também uma diferença no sentido do tráfego que será filtrado. Assim, se
aplicarmos a ACL na interface F0/1, devermos aplicar essa ACL no tráfego de
saída, conforme mostrado abaixo:
Figura 9 – Aplicação da ACL Padrão
Internet
LAN1 LAN2
S0/0
F0/0 F0/1
[Link] [Link]
access-list 1 deny [Link] [Link]
19
Para realizarmos essa filtragem de tráfego, a configuração completa do
roteador será:
(config)#access-list 1 deny [Link] [Link]
(config)#interface f0/1
(config-if)#ip access-group 1 out
4.2 A ACL Estendida
Conforme vimos anteriormente, para realizarmos um controle de tráfego
na rede mais efetivo, devemos utilizar as ACLs Estendidas, pois as ACLs Padrão
são muito limitadas, pois permitem apenas especificar o endereço de origem
como critério de filtragem do tráfego. Inclusive, em alguns casos, esse tipo de
ACL não possibilita a filtragem adequada. Assim, como os roteadores suportam
ambos os tipos de ACL, na prática, as ACLs mais utilizadas são as ACLs
Estendidas. E a sintaxe da ACL estendida é a seguinte:
access-list <n> <ação> <protocolo> <origem> <máscara>
<destino> <máscara>
O primeiro parâmetro é o número da ACL, que é o <n>, que pode variar
de 100 a 199, identificando que essa será uma ACL do tipo Estendida, pois as
ACLs de 1 a 99 são ACLs do tipo Padrão, aceitando apenas os parâmetros
reduzidos. E para que a ACL realize efetivamente o controle de tráfego, é
possível então especificar a porta, que é o próximo parâmetro identificado como
<protocolo> na sintaxe mostrada acima, e também pode ser especificado o
endereço de origem, bem como a porta e o endereço de destino. E de maneira
diferente do iptables, os parâmetros devem ser inseridos na sequência definida
pela sintaxe apresentada acima, não sendo necessário nenhum parâmetro
adicional para identificar cada um dos valores, bastando inseri-los na sequência
correta.
Assim, para o exemplo anterior, no qual foi realizado o bloqueio do tráfego
da rede LAN1 em direção à rede LAN2, agora com a utilização de uma ACL
Estendida, teríamos:
20
Figura 10 – Exemplo de ACL Estendida
Internet
LAN1 LAN2
S0/0
F0/0 F0/1
[Link] [Link]
access-list 100 deny ip [Link] [Link]
[Link] [Link]
O primeiro parâmetro, que é o número da ACL, deverá ser maior do que
100, o que indicará a utilização de uma regra de ACL do tipo Estendida, de modo
que serão inseridos mais parâmetros do que em uma ACL Padrão. O próximo
parâmetro é a ação a ser executada, que nesse caso será o bloqueio dos
pacotes que corresponderem aos demais parâmetros da ACL, especificado pelo
parâmetro “deny”. Como o critério de correspondência será o endereço IP, o
próximo parâmetro, que é o protocolo a ser inspecionado, será então o
parâmetro “ip”. Na sequência, deve ser especificado o endereço de origem do
tráfego a ser bloqueado, que nesse caso deverá incluir todos os hosts da rede
LAN1, o que é especificado então com o endereço “[Link]” com a
máscara curinga que inclui toda a rede, o que é especificado pelo parâmetro
“[Link]”. E o próximo parâmetro deverá ser então o destino do tráfego a ser
boqueado, que é a rede LAN2, o que é especificado pelo endereço
“[Link]” com a máscara curinga “[Link]”.
A próxima etapa de configuração será a aplicação da ACL em uma das
interfaces entre a rede LAN1 e a rede LAN2, que pode ser a interface
FastEthernet 0/0 ou a interface FastEthernet 0/1. E para as ACLs do tipo
Estendidas, a recomendação é a sua aplicação sempre o mais próximo possível
da origem do tráfego a ser bloqueado. Assim, nesse exemplo, essa ACL deverá
ser aplicada na interface LAN1, sendo aplicada ao tráfego de entrada, conforme
mostrado a seguir:
(config)#interface f0/0
(config-if)#ip access-group 100 in
21
4.3 A aplicação das ACLs
Um outro aspecto que deve ser observado na aplicação das ACLs para a
filtragem de tráfego, em equipamentos Cisco, é que ao criarmos uma ACL,
sempre teremos uma instrução final, implícita, de negação de todo o tráfego. E
isso acontece pois o conceito de aplicação de uma ACL é de que estamos
ativando um filtro de tráfego em uma interface, cujo padrão é o bloqueio de todo
o tráfego, sendo configuradas, então, as devidas permissões. Ou seja, uma ACL
deverá ser uma lista de permissões, sendo que no final da ACL teremos uma
linha “oculta” que fará o bloqueio de todo o tráfego. Essa lógica de configuração
visa reforçar a segurança, pois qualquer tipo de tráfego desconhecido será
automaticamente bloqueado, pois ele não estará incluído nas permissões da
ACL configurada.
Para o exemplo anterior, ao aplicarmos a ACL na interface, além de
bloquear o tráfego da rede LAN1 para a rede LAN2, teremos o bloqueio de
qualquer outro tráfego. Ou seja, todo o tráfego será bloqueado. Assim, se
quisermos permitir todo o restante do tráfego, será necessário acrescentar mais
uma linha na ACL criada, permitindo o restante do tráfego. E como não sabemos
qual será a origem, no caso do tráfego da Internet, podermos usar o parâmetro
“any”, que inclui qualquer valor. Assim, nesse exemplo, teremos a seguinte
configuração:
(config)# access-list 100 deny ip [Link] [Link]
[Link] [Link]
(config)# access-list 100 permit ip [Link] [Link]
any
(config)#interface f0/0
(config-if)#ip access-group 100 in
Dessa forma, na primeira linha da ACL, temos o bloqueio do tráfego
originado na rede LAN1 e com destino à rede LAN2, e na segunda linha, a
permissão do tráfego originado na rede LAN1 e com destino a qualquer outro
endereço, que nesse exemplo seria a Internet, conforme mostrado na figura a
seguir:
22
Figura 11 – Operação da ACL Estendida
Internet
LAN1 LAN2
S0/0
F0/0 F0/1
[Link] [Link]
4.4 ACL Nomeada
Para a configuração das ACLs Padrão e Estendida, temos ainda a
possiblidade de utilização das ACLs chamadas de nomeadas, que podem ser
identificadas por um texto em vez de um número. Ou seja, permitem utilizar
nomes para identificar as ACLS, o que facilita a documentação e, principalmente,
o processo de operação e manutenção da rede, pois o nome da ACL já poderá
ser utilizado para fazer referência à sua função ou à sua aplicação.
De modo diferente à criação das ACLs numeradas, em que realizamos a
inclusão das regras no modo de configuração global, para a criação de uma ACL
nomeada fazemos a criação da ACL e a inserção das regras já no modo de
configuração da ACL. Assim, para a criação de uma ACL nomeada, temos a
seguinte sintaxe:
(config)#ip access-list <tipo> <nome>
Onde o parâmetro <tipo> poderá ser “standard”, indicando que será uma
ACL Padrão, ou “extended”, indicando que está sendo criada uma ACL
Estendida. E o segundo parâmetro será então o nome da ACL, que será utilizado
quando da sua aplicação na respectiva interface.
Criada a ACL nomeada, então deveremos fazer a inserção das regras,
com a seguinte sintaxe:
(config-std-nacl)#<ação> <origem> <máscara>
A ação a ser definida continua sendo “permit” ou “deny”, e por se tratar de
uma ACL Padrão, continuamos tendo apenas a opção de especificar o endereço
23
de origem como critério de permissão ou negação, com a respectiva máscara
curinga, semelhante à configuração da ACL numerada.
Para a configuração de uma ACL nomeada, do tipo estendida, teremos a
seguinte sintaxe:
(config-exd-nacl)#<ação> <protocolo> <origem>
<máscara> <destino> <máscara>
Nesse caso, poderemos então definir o protocolo a ser inspecionado e
endereços ou números de porta, de acordo com os parâmetros desejados,
semelhante à configuração da ACL Estendida numerada.
Assim, no exemplo anterior, poderíamos utilizar uma ACL nomeada, que
chamaremos de LAN1-FW, conforme mostrado abaixo:
(config)#ip access-list extended LAN1-FW
(config-exd-nacl)# deny ip [Link] [Link]
[Link] [Link]
(config-exd-nacl)# permit ip [Link] [Link] any
(config-exd-nacl)# exit
(config)#interface f0/0
(config-if)#ip access-group LAN1-FW in
Observe que as regras de permissão em uma ACL nomeada são
exatamente iguais às regras utilizadas na ACL numerada, apenas não sendo
necessário repetir a parte inicial da linha de configuração, pois já estamos no
modo de configuração da ACL.
TEMA 5 – CONFIGURAÇÃO DE FIREWALL EM ROTEADOR
A primeira forma de implementação de Firewall com a utilização de
roteadores Cisco foi a configuração das ACLs Estendidas, no modelo de Firewall
de Filtro de Pacotes, sendo aplicada uma ACL na interface de conexão com a
Internet, que realizará então a filtragem do tráfego vindo da Internet. Conforme
vimos anteriormente, a ACL inclui uma regra final de bloqueio de todo o tráfego,
e assim, ao aplicarmos uma ACL na interface de entrada da rede, mesmo não
sendo configurada nenhuma regra, já teremos o bloqueio de todo o trafego vindo
da Internet e assim atuando como um Firewall.
Utilizando como exemplo a topologia que vimos anteriormente, então
bastaria a aplicação de uma ACL na interface serial 0/0, no sentido de entrada,
24
para que todo o tráfego vindo da Internet seja bloqueado, conforme mostrado
abaixo:
Figura 12 – Firewall com ACL
Internet
LAN1 LAN2
S0/0
F0/0 F0/1
[Link] [Link]
(config)#interface Serial 0/0
(config-if)#ip access-group 110 in
Dessa forma, foi aplicada a interface serial 0/0, que faz a conexão com a
Internet, a ACL de número 110, que irá filtrar todo o tráfego de entrada, pois o
parâmetro utilizado foi o “in”. E, mesmo não tendo sido configurada nenhuma
regra para a ACL 110, o Roteador irá “criar” essa ACL com a regra implícita, que
é a de bloqueio de todo o tráfego, que equivaleria à seguinte regra:
(config-if)# access-list 110 deny ip any any
Inclusive, mesmo tendo essa regra implícita, também podemos
acrescentá-la de forma explícita, ao configurarmos uma ACL como a última linha
da ACL. Isso é feito para que possamos, após a aplicação e execução da ACL,
contabilizar a quantidade de pacotes que foram bloqueados, pois temos
comandos que podem ser utilizados no roteador Cisco para visualizarmos a
quantidade de pacotes que corresponderam a cada regra de uma ACL. Assim,
com essa regra inserida de maneira explícita, poderemos então verificar se
existe algum tipo de tráfego que está sendo recebido pelo roteador e,
consequentemente, está sendo bloqueado pela ACL.
5.1 Criação das regras de permissão
A próxima etapa na configuração do Firewall com a utilização de ACLs,
será então a criação das regras necessárias para permitir o tráfego de retorno
da Internet. Mesmo com essa ACL, como ela foi aplicada no tráfego de entrada,
25
todo o tráfego de saída será permitido, pois não existe nenhuma outra ACL
aplicada na saída da interface. Assim, as requisições dos hosts das redes LAN1
e LAN2 serão encaminhadas para a Internet, porém o retorno desse tráfego será
bloqueado, pois não existe nenhuma regra de permissão na ACL aplicada, que
contém apenas a regra geral de bloqueio que é implícita em todas as ACLs.
Portanto, na utilização das ACL Estendidas, para que o roteador opere
como um Firewall de Filtro de Pacotes, devemos então inserir todas as
permissões necessárias, de acordo com a Política de Segurança da empresa.
Assim, por exemplo, para permitir o retorno do tráfego WEB da Internet, devemos
utilizar a seguinte regra:
(config)#access-list 110 permit tcp any eq 80 any
Nesse exemplo, estamos então definindo uma ACL Estendida, pois temos
um valor maior do que 99, nesse caso, o valor 110 para a ACL, conforme
identificador utilizado na aplicação da ACL na Interface mostrado na figura
anterior. A ação a ser executada é a permissão do tráfego que venha da WEB,
especificada com o parâmetro “permit”. O critério de filtragem do tráfego será
então o protocolo HTTP, que será identificado na camada de transporte com a
porta 80. Assim, o parâmetro referente ao protocolo especificado na ACL é o
“tcp”, que é o protocolo da camada de transporte utilizado pelo HTTP, sendo que
como o endereço de origem poderá ser qualquer servidor da Internet, utilizamos
o parâmetro “any” para o endereço de origem. E para definir a porta referente ao
tráfego a ser permitido na regra, o parâmetro utilizado é o “eq 80”, que significa
que deverá ser igual ao valor 80. E o último parâmetro da ACL foi o “any”, que
define que o endereço de destino poderá ser qualquer endereço da rede interna.
Se desejássemos permitir que apenas a LAN2 navegue na Internet, por
exemplo, poderíamos alterar a ACL anterior, especificando como endereço de
destino apenas a rede LAN2, conforme mostrado abaixo.
(config)#access-list 110 permit tcp any eq 80
[Link] [Link]
Assim, o tráfego WEB que for solicitado pela LAN1 será encaminhado
para a rede externa, assim como as solicitações da LAN2, porém o retorno do
tráfego que tiver como destino a LAN1 será bloqueado pela ACL, pela regra
implícita que bloqueia todo o tráfego. E as respostas às solicitações da LAN2
serão permitidas, pois o seu endereçamento está especificado na regra de
26
permissão da ACL. Porém, caso os hosts da LAN2 solicitem outro tipo de tráfego
vindo da Internet, tal como um correio eletrônico, por exemplo, esse tráfego será
bloqueado, pois não corresponderá à porta 80 especificada na ACL.
Porém, esse método de operação não é muito prático, pois é necessário
configurarmos uma nova regra para cada tipo de tráfego, o que demandaria um
processo constante de configuração. Além disso, também não é seguro, pois ao
liberarmos a entrada de um protocolo, estamos liberando esse tráfego originado
em qualquer endereço da Internet, pois não sabemos quais serão os endereços
solicitados. Assim, a evolução desse modelo é a operação do roteador com ACLs
cujas regras sejam configuradas dinamicamente, permitindo apenas o tráfego
solicitado pela rede interna, que será visto a seguir.
5.2 Configuração de ACL com inspeção
Para a implementação de um Firewall de Filtro de Pacotes em um roteador
Cisco, de maneira mais eficiente do que o modo visto anteriormente, podemos
então utilizar uma ACL para a verificação das sessões TCP estabelecidas.
Assim, teremos uma ACL que, além das regras já vistas anteriormente, irá
verificar o cabeçalho do protocolo TCP, identificando o status das conexões.
A sintaxe a ser utilizada para a criação dessas regras, em equipamentos
Cisco, será a mesma das ACLs Estendidas, porém, acrescida do parâmetro
“established” ao final da ACL. Assim, no exemplo abaixo, para permitirmos o
retorno do tráfego da internet para a LAN2, teríamos a seguinte ACL:
Figura 13 – A ACL com verificação das sessões
Internet
LAN1 LAN2
S0/0
F0/0 F0/1
[Link] [Link]
(config)# access-list 120 permit tcp any [Link]
[Link] established
27
Nessa ACL, temos então a especificação do protocolo tcp, tendo como
origem qualquer endereço (any), pois o tráfego vindo da Internet poderá ter como
origem qualquer endereço IP, e tendo como destino a rede [Link]/24, que
é o endereço da rede da LAN2. E para a verificação do tráfego, garantindo que
pertence a uma conexão TCP já estabelecida, é acrescentado o parâmetro final,
que é o “established”.
Assim, todo o tráfego de corresponder aos endereços especificados, com
qualquer origem e com destino à rede LAN2, será inspecionado pelo Roteador,
que irá verificar se os valores do cabeçalho do protocolo TCP correspondem a
uma sessão já estabelecida, ou seja, se o pacote é uma resposta a uma sessão
já estabelecida. Dessa forma, outros pacotes que venham da Internet com
destino à rede LAN2, e que não pertençam a uma sessão do protocolo TCP já
estabelecida, serão descartados., bloqueando qualquer tentativa de acesso
externo em direção à rede LAN2.
Porém, a ACL do tipo “established” apresenta uma grande limitação, pois
esse tipo de regra inspeciona apenas o protocolo TCP. Assim, para permitir o
tráfego de outros serviços, que utilizam outros protocolos, seria necessário criar
as permissões adicionas, incluindo o tráfego dos protocolos UDP e ICMP, caso
contrário, eles serão bloqueados pela ACL. Dessa forma, as regras a serem
incluídas na ACL seriam:
#access-list 120 permit tcp any [Link] [Link]
established
#access-list 120 permit udp any [Link] [Link]
#access-list 120 permit icmp any [Link]
[Link]
Assim, na primeira regra, temos a permissão do tráfego TCP, desde que
a sessão já tenha sido estabelecida, e nas outras regras, temos a permissão do
tráfego vindo da Internet em direção à rede LAN2, baseando-se nos protocolos
UDP e ICMP.
Porém, uma vulnerabilidade da ACL do tipo “established” é a possibilidade
de falsificação de flags do TCP, o que poderia ser explorado pelo hacker para o
envio de um cavalo de troia, por exemplo. Assim, a solução seria a utilização das
ACLs reflexivas, apresentadas a seguir.
28
5.3 Configuração de ACL reflexiva
A ACL do tipo reflexiva opera de maneira diferente da ACL estendida com
inspeção apenas do tráfego de entrada, realizando o registro das sessões
abertas e criando a permissão do retorno desse tráfego, que é o comportamento
padrão esperado de um Firewall.
Dessa forma, a configuração da ACL reflexiva em um equipamento Cisco
é realizada em três etapas, que são:
1. Criação de uma ACL interna que fará a monitoração do tráfego.
2. Criação de uma ACL externa que fará a filtragem do tráfego externo.
3. Aplicação das duas ACLS criadas.
Na primeira etapa, temos a criação da ACL interna, que poderá examinar,
por exemplo, o protocolo HTTP e as consultas ao serviço de DNS, cuja
configuração será:
#ip access-list 110 permit tcp any any eq 80 reflect WEB-REFL
#ip access-list 110 permit udp any any eq 53 reflect DNS-REFL
Essa ACL irá permitir o tráfego dos protocolos TCP e UDP especificados
e irá enviar os dados das sessões abertas para duas ACLs distintas, que são as
ACLs WEB-REFL e DNS-REFL, que conterão os dados das sessões iniciadas.
Criada a ACL interna, que examinará o tráfego de saída, deverá então ser
criada a ACL externa, que será do tipo nomeada, e que receberá as informações
do tráfego que passar pela ACL interna, conforme mostrado abaixo:
(config)#ip access-list extended EXTERNAL
(config-ext-nacl)#evaluate WEB-REFL
(config-ext-nacl)#evaluate DNS-REFL
E a última etapa da configuração será a aplicação das ACLs interna e
externa, sendo que a ACL interna irá examinar o tráfego de saída, e a ACL
externa irá filtrar o tráfego externo, conforme mostrado abaixo.
(config)#interface S0/0
(config-if)#ip access-group 110 out
(config-if)#ip access-group EXTERNAL in
E a solução mais atual de implementação em roteadores Cisco é o
chamado Firewall Clássico, que consiste na criação de regras de inspeção de
29
tráfego, que farão a permissão automática do retorno do tráfego que foi
permitido. E essa solução também tem suporte aos protocolos TCP, UDP,
ICMPS, DNS e outros, sendo muito mais eficiente e fácil de configurar.
Para a configuração do Firewall Clássico, basta criar as regras de
inspeção do protocolo, especificando o protocolo que será inspecionado, com a
seguinte sintaxe de comando:
(config)#ip inspect name <nome> <protocolo>
Feita essa configuração, o retorno do tráfego será automaticamente
permitido na ACL de entrada, bastando então aplicar uma ACL na entrada da
rede, filtrando o tráfego vindo da Internet.
FINALIZANDO
Conforme vimos nesta aula, o conceito de operação de um Firewall é
bastante simples, sendo que esse dispositivo de segurança deverá permitir que
apenas o tráfego que foi solicitado pelos usuários de uma rede LAN passe
através dele, bloqueando qualquer outro tipo de tráfego vindo da Internet. E para
a implementação dessa funcionalidade de segurança de rede, podemos utilizar
um roteador Cisco, acrescentando as configurações necessárias, utilizando as
regras de controle de acesso, que são as chamadas ACLs.
Porém, com a evolução das ameaças, essas implementações de
segurança, principalmente com a utilização das ACLs básicas, se tornaram muito
vulneráveis aos ataques, tendo sido necessária também a evolução dessas
ferramentas. Assim, no caso dos roteadores da Cisco, temos a configuração do
chamado Firewall clássico, que será detalhado em nossas próximas aulas, e que
pode ser utilizado como o Firewall da rede em redes de menor porte. De qualquer
forma, as configurações das ACLs Estendidas continuam sendo utilizadas para
implementar a segurança do próprio Roteador, pois, conforme vimos
anteriormente, na topologia com um Firewall dedicado, teremos a instalação do
Firewall após o roteador, e dessa forma o roteador estará vulnerável a todos os
possíveis ataques vindos da rede externa. Portanto, para garantir a segurança
do roteador, é necessário realizarmos as configurações de segurança, o que
incluirá a criação das ACLs, sendo necessário que o profissional de segurança
tenha também o conhecimento necessário para realizar essas configurações, e
não apenas do dispositivo dedicado de Firewall.
30
Nas redes de maior porte, que certamente terão uma segmentação
interna com a configuração das diversas VLANs, teremos um processo de
roteamento entre VLANs, o qual necessitará também da aplicação de uma
política de segurança e de controle de acesso entre as VLANs. Assim, por
exemplo, os usuários da VLAN de um departamento da empresa provavelmente
não deverão ter acesso à VLAN de outros departamentos, sendo necessário
então fazer o bloqueio desse tráfego. Para esse controle de tráfego, teremos
então a configuração das ACLs no dispositivo que fará o roteamento entre as
LANs, que poderá ser, tipicamente, um switch da camada três. E quando
utilizamos um switch da Cisco, teremos a mesma sintaxe para a criação das
regras de controle de acesso vistas nessa aula, na configuração de ACLs em
roteadores Cisco, o que facilitará o processo de configuração, manutenção e
operação da rede. Inclusive um aspecto fundamental da configuração das ACLs
é a sua documentação, para garantir um processo de operação e manutenção
da rede, pois nem sempre é muito fácil a interpretação do resultado efetivo de
uma regra de controle dentro de uma ACL. Assim, tendo uma documentação
detalhada das ACLs, certamente teremos uma maior agilidade no processo de
manutenção da rede. Além disso, como o perfil de tráfego das redes é dinâmico,
certamente será necessário realizar a manutenção das ACLs cridas inicialmente,
e nesse caso é de fundamental importância a documentação da configuração,
para garantir que as alterações a serem efetuadas tenham o resultado desejado
e não interfiram no funcionamento das regras anteriores. E esse processo de
manutenção das ACLs será visto também em detalhes em nossas próximas
aulas.
31
REFERÊNCIAS
NETO, U. Dominando Linux Firewall Iptables. Rio de Janeiro: Ciência
Moderna, 2004.
STALINGS, W. Criptografia e segurança de redes. São Paulo: Pearson
Prentice Hall, 2015.
TERADA, R. Segurança de Dado: criptografia em redes de computadores. São
Paulo: Blucher, 2008.
TANEMBAUM, A. S. Redes de computadores. 2. ed. São Paulo: Pearson
Education do Brasil, 2011.
WENDELL, O. CCNA ICND guia oficial de certificação. 2. ed. Rio de Janeiro:
Alta Books, 2008.
32