Upload
vandien
View
221
Download
0
Embed Size (px)
Citation preview
1
Engenharia da Computação
FIREWALLS CAMADA SETE: UMA IMPLEMENTAÇÃO COM
LINUX UTILIZANDO L7FILTER
Anderson Pettirossi Xavier
Itatiba – São Paulo – Brasil
Novembro de 2006
2
Engenharia da Computação
FIREWALLS CAMADA SETE: UMA IMPLEMENTAÇÃO COM
LINUX UTILIZANDO L7FILTER
Anderson Pettirossi Xavier
Monografia apresentada à disciplina Trabalho de Conclusão de Curso, do Curso de Engenharia da Computação da Universidade São Francisco, sob a orientação do Prof. MS. Sidney Pio de Campos, como exigência parcial para conclusão do curso de graduação. Orientador: Prof. MS. Sidney Pio de Campos
Itatiba – São Paulo – Brasil
Novembro de 2006
3
Firewalls Camada sete
Anderson Pettirossi Xavier
Monografia defendida e aprovada em 13 de dezembro de 2006 pela Banca
Examinadora assim constituída:
Prof. Ms. Sidney Pio de Campos
USF – Universidade São Francisco – Itatiba – SP.
Prof. Rodrigo C. M. do Prado (Membro Interno)
USF – Universidade São Francisco – Itatiba – SP.
Prof. Dr. André Leon Sampaio Gradvohl (Membro Interno)
USF – Universidade São Francisco – Itatiba – SP
4
"Há homens que lutam um dia e são bons.
Há outros que lutam um ano e são melhores.
Há os que lutam muitos anos e são muito bons.
Porém, há os que lutam toda a vida.
Esses são os imprescindíveis."
(Bertolt Brecht)
5
Sumário
Lista de Siglas ........................................................................................................................... 6
Lista de Figuras ........................................................................................................................ 7
Resumo ...................................................................................................................................... 8
Resumo ...................................................................................................................................... 8
Abstract ..................................................................................................................................... 8
1 INTRODUÇÃO.................................................................................................................. 9 1.1 Significado de Firewalls ............................................................................................... 9 1.2 Motivação...................................................................................................................... 9 1.3 Organização do texto................................................................................................... 10
2 conceitos de segurança da informação........................................................................... 11
3 FIREWALL...................................................................................................................... 12 3.1 Tipos de FIREWALLS................................................................................................ 13
3.1.1 FIREWALLS Filtro de Pacotes............................................................................13 3.1.2 GATEWAYS de aplicativo ou PROXIES ...........................................................14 3.1.3 FIREWALLS camada de aplicação......................................................................15
4 NETFILTER / IPTABLES ............................................................................................. 16 4.1 STEALTH SCAN ....................................................................................................... 16 4.2 IPTABLES .................................................................................................................. 16 4.3 L7FILTER................................................................................................................... 17
5 implementação ................................................................................................................. 18 5.1 Descrição do ambiente ................................................................................................ 19
5.1.1 Cliente...................................................................................................................19 5.1.2 Servidor ................................................................................................................19 5.1.3 Firewall.................................................................................................................19
6 testes .................................................................................................................................. 21 6.1 Execução ..................................................................................................................... 21 6.2 Resultados ................................................................................................................... 21
7 Conclusão.......................................................................................................................... 23 7.1 Extensões..................................................................................................................... 23
Referências Bibliográficas ..................................................................................................... 25
6
Lista de Siglas
3DES Triple Data Encription Standar
DES Data Encription Standard
DMZ Desmilitarazed Zone
DNAT Destination Network Address Translation
DoS Denial of Service
FTP File Transfer Protocol
HTTP Hyper Text Transfer Protocol
ICMP Internet Control Message Protocol
IP Internet Protocol
IPSec IP Security
MD5 Message Digest algorithm 5
NAT Network Address Translation
OSI Open System Interconection
P2P Peer to Peer
SHA Secure Hash Algorithm
SNAT Source Network Address Translation
SSL Secure Socket Layer
TCP Transmission Control Protocol
UDP User Datagram Protocol
VoIP Voice over Internet Protocol
7
Lista de Figuras
FIGURA 1 – ROTEADOR COMO A ÚNICA MANEIRA DE SAIR PARA A INTERNET ............................14
FIGURA 2 – FIREWALL GATEWAY DE APLICATIVO..............................................................15
FIGURA 3 TOPOLOGIA DO AMBIENTE DE TESTES ........................................................................18
8
Resumo
Esta monografia tem como objetivo implementar um firewall que funcione na camada
sete do modelo de referencia OSI, utilizando para isso classificadores de pacotes que se
integram a um software de firewall popular que já vem junto com a maioria das distribuições
Linux, chamado iptables.
Com um firewall que trabalha na camada sete pode-se criar regras baseadas em
protocolos, não necessitando saber em qual porta a aplicação funciona e nem mesmo quais os
endereços.
PALAVRAS-CHAVE:
Firewall
Firewall de aplicação
Camada sete
Abstract
This monograph has the objective of implement a firewall that works in layer seven of
OSI reference model, using for this packets classifiers that can interact with a popular firewall
software that comes with the most Linux distribuition called iptables.
With this firewall that works in layer seven we can create rules based in the
application protocol, without need to know the ports or addresses that the application is
runnning.
KEY WORDS:
Firewall
Application Firewall
Layer seven
9
1 INTRODUÇÃO
À medida que o uso de informações e sistemas é cada vez maior, a proteção deste
necessita de ferramentas e conceitos de segurança eficientes.
Segurança de informação relaciona-se com vários e diferentes aspectos referentes a
confidencialidade, integridade e disponibilidade da informação (conforme no capítulo dois)
que não está restrita a sistemas computacionais, nem a informações eletrônicas ou qualquer
outra forma mecânica de armazenamento. Ela se aplica a todos os aspectos de proteção e
armazenamento de informação de dados, em qualquer forma.
1.1 Significado de Firewalls
Firewalls são um dos componentes centrais da implementação de segurança na rede.
Diversos fabricantes comercializam soluções de firewall para suprir diferentes nichos do
mercado: de usuários domésticos protegendo um PC até soluções de centro de dados para
proteger informações corporativas vitais. Firewalls podem ser soluções de hardware ou de
software.
Há mais de uma forma de funcionamento de um firewall, que varia de acordo com o
sistema, aplicação ou do desenvolvedor do programa. No entanto, existem três tipos básicos
de conceitos de firewalls: o que é baseado em filtragem de pacotes, o que é baseado em
controle de aplicações e o firewall na camada sete (aplicação). A comparação entre esses
diferentes tipos não pode ser direta, uma vez que trabalham através de diferentes abordagens.
1.2 Motivação
Enquanto os firewalls tradicionais trabalham na camada de rede bloqueando acesso a
redes/hosts não autorizados, firewalls na camada de aplicação protegem contra acessos
indevidos a aplicações, fazendo com que apenas as informações esperadas pelas aplicações
passem pelo firewall.
As formas tradicionais de classificação de pacotes, baseadas geralmente no tipo de
protocolo de transporte, na camada quatro do modelo de rede OSI (TCP ou UDP) e nas portas
de origem e/ou destino, são suficientes na maioria dos casos. Porém ela pode ser ineficaz em
alguns casos específicos, como por exemplo, no caso de programas de P2P (programas de
compartilhamento de arquivos, como o Kazaa), que utilizam portas aleatórias ou em caso de
10
serviços rodando em uma porta não padrão (por exemplo, um servidor HTTP rodando na
porta 1111). Em casos como este, o uso de um classificador de pacotes que faz a análise dos
dados na camada de aplicação (camada sete do modelo OSI) torna-se indispensável.
Desta forma os firewalls de camada sete são mais seguros que os firewalls tradicionais,
pois além de poderem ter regras baseadas na camada quatro, pode-se ter regras da camada de
aplicação.
1.3 Organização do texto
Este trabalho encontra-se dividido em uma descrição dos conceitos de segurança da
informação no capítulo dois, de firewalls no capítulo três, iptables no capítulo quatro, da
implementação no capítulo cinco e dos testes realizados e resultados obtidos no capítulo seis,
e finalmente a conclusão e referências bibliográficas.
11
2 CONCEITOS DE SEGURANÇA DA INFORMAÇÃO
A Segurança da Informação refere-se à proteção existente sobre as informações de uma
determinada empresa ou pessoa, isto é, aplicam-se tanto as informações corporativas quanto
as pessoais.
Entende-se por informação todo e qualquer conteúdo ou dado que tenha valor para
alguma organização ou pessoa. Ela pode estar guardada para uso restrito ou exposta ao
público para consulta ou aquisição.
A segurança de uma determinada informação pode ser afetada por fatores
comportamentais e de uso de quem se utiliza dela, pelo ambiente ou infra-estrutura que a
cerca ou por pessoas mal intencionadas que tem o objetivo de furtar, destruir ou modificar a
informação.
A tríade CIA (Confidentiality, Integrity and Availability) – Confidencialidade,
integridade e disponibilidade representam as principais propriedades que, atualmente
orientam a análise, o planejamento e a implementação da segurança para um determinado
grupo de informações que se deseja proteger. Outras propriedades estão sendo apresentadas
(legitimidade e autenticidade) na medida em que o uso de transações comerciais em todo o
mundo, através de redes eletrônicas (públicas ou privadas) se desenvolve.
Conceitos básicos:
• Confidencialidade – propriedade que limita o acesso à informação tão somente às
entidades legítimas, ou seja, àquelas autorizadas pelo proprietário da informação.
• Integridade – propriedade que garante que a informação manipulada mantenha
todas as características originais estabelecidas pelo proprietário da informação,
incluindo controle de mudanças e garantia de seu ciclo de vida (nascimento,
manutenção e destruição).
• Disponibilidade – propriedade que garante que a informação esteja sempre
disponível para o uso legítimo, ou seja, por aqueles usuários autorizados pelo
proprietário da informação.
12
3 FIREWALL
O termo firewall, no sentido original da palavra, significa porta corta-fogo, ou seja, um
dispositivo de segurança, resistente ao fogo, utilizado em prédios para evitar que incêndios se
alastrem entre andares, ou salas. Em uma rede, um firewall é um dispositivo de hardware ou
software, que tem como principal objetivo proteger as informações e filtrar o acesso às
mesmas. Pode servir ainda como elemento de interligação entre duas redes distintas.
Estes dispositivos de software podem ser programas especializados, instalados em
computadores ou roteadores. No caso de hardware podem ser equipamentos como roteadores,
placas especiais ou mesmo computadores.
Hoje os firewalls realizam todo tipo de tarefas, incluindo:
• Filtragem e análise de pacotes – Os firewalls podem analisar os pacotes recém-
chegados de múltiplos protocolos. Baseado nessa análise, os firewalls podem realizar
avaliações condicionais (“se esse tipo de pacote for encontrado, faça isto”).
• Bloqueio de protocolo ou conteúdo – Os firewalls permitem a verificação do
conteúdo. Pode-se explorar essa capacidade para bloquear Java, javascript, vbscript,
determinadas aplicações de acordo com seus respectivos protocolos, activex e cookies
no firewall. De fato, você pode até criar as regras para bloquear assinaturas de ataques
particulares.
• Autenticação e criptografia de usuário, conexão e sessão – Firewalls utilizam
diferentes tipos de algoritmos e esquemas de autenticação (incluindo DES, 3DES, SSL,
IPSEC, SHA, MD5, BLOWFISH, IDEA) para verificar a identidade dos usuários,
verificar a integridade da sessão e proteger os dados em trânsito contra sniffing.
Portanto, dependendo do projeto do firewall, esse protege sua rede em pelo menos dois
desses níveis (e, em alguns casos, em todos eles):
• Quem possa entrar.
• O que possa entrar.
• Onde e como eles entram.
A princípio, um firewall é mais um conceito que um produto. Ele é a soma total de todas
as regras que aplica-se à determinada rede. Geralmente, podemos equipar o firewall com
regras que espelham políticas de acesso das organizações.
13
3.1 Tipos de FIREWALLS
Apresenta-se os três tipos básicos de firewalls mais utilizados.
3.1.1 FIREWALLS Filtro de Pacotes
Os firewalls no nível de rede são geralmente roteadores com capacidade de filtragem de
pacotes. Utilizando um firewall no nível de rede, pode-se conceder ou negar acesso a
determinado computador, rede ou serviço, com base em diversas variáveis, como:
• Endereço de origem
• Endereço de destino
• Protocolo
• Número de porta
Firewalls baseados em roteador são populares porque são as soluções de perímetro. Isto
é, são dispositivos externos. Apresenta-se na Figura 1 um exemplo de firewall.
Como descrito na Figura 1, todo tráfego externo deve primeiro passar por seu roteador,
que trata todos os procedimentos de aceitar/negar. Essa abordagem oferece uma vantagem
importante: ela independente do sistema operacional e dos aplicativos. Portanto, um roteador
baseado em firewall oferece uma solução rápida e limpa que evidencia a necessidade de
proteger as estações de trabalho internas.
Firewalls avançados baseados em roteador podem derrotar ataques de spoofing (spoofing
é uma técnica de subversão de sistemas informáticos que consiste em mascarar pacotes IP
com endereços remetentes falsificados) e DoS (Denial of Service – técnica utilizada para
sobrecarregar determinado sistema ou aplicação) e até fazer com que sua rede torne-se
invisível para o mundo externo.
14
Figura 1 – Roteador como a única maneira de sair para a Internet
3.1.2 GATEWAYS de aplicativo ou PROXIES
Os gateways de aplicativos substituem conexões entre clientes externos e sua rede
interna. Durante essa troca, os pacotes de IP nunca são encaminhados. Em vez disso, ocorre
um tipo de tradução, com o gateway agindo como condutor e interpretador.
A vantagem disso é que se tem um controle mais abrangente sobre cada serviço
individual. E, em muitos casos, pode-se manter informações sobre o estado dos pacotes.
Entretanto, gateways de aplicativos também têm deficiências. Uma delas é a
configuração, pois é necessário configurar um aplicativo proxy para cada tipo de serviço de
rede (FTP, TELNET, HTTP, SMTP, etc.). Adicionalmente, usuários internos devem utilizar
clientes proxy cientes. Se eles não o fizerem, terão que adotar novas diretivas e
procedimentos. Como [6] explica em seu artigo intitulado “Application Gateways”.
A Figura 2 ilustra um FIREWALL do tipo GATEWAY de aplicativo.
Internet
Roteador
Rede interna
15
Figura 2 – FIREWALL GATEWAY de aplicativo
3.1.3 FIREWALLS camada de aplicação
Os firewalls tradicionais que operam nas camadas 3 e 4 (Filtro de Pacotes) são incapazes
de proteger contra ataques novos porque não inspecionam o tráfego na camada de aplicação,
como por exemplo, no caso de um worm (programa auto-replicante, semelhante a um vírus)
ou spyware (programa que recolhe informações do usuário, sem o seu conhecimento ou
consentimento) que se comunica com um servidor na Internet que esteja rodando na porta 80
tradicionalmente porta utilizada pelo protocolo HTTP, ou programas de P2P onde as portas de
comunicação são dinâmicas. Em casos como este, o uso de um classificador de pacotes que
faz a análise dos dados na camada de aplicação (camada sete do modelo de referencia OSI)
torna-se indispensável.
Internet
www.site.com.br
Acessando a página:
www.site.com.br
Firewall
Requisição de página
Refazendo pedido de página
16
4 NETFILTER / IPTABLES
O netfilter é um framework dentro do kernel do Linux com o qual outras ferramentas
(como o módulo iptables) podem se conectar. O iptables é uma ferramenta de edição da
tabela de filtragem de pacotes, ou seja, com ele pode-se analisar o cabeçalho (header) e tomar
decisões sobre os destinos destes pacotes.
É importante salientar que no GNU/Linux a filtragem de pacotes é implementada
diretamente no kernel, o que torna o processo muito mais rápido.
O iptables é um firewall com estado, ou seja, um firewall stateful. As versões anteriores
eram stateless. O modo de filtragem stateless trata cada pacote individualmente, sendo mais
simples de implementar e em alguns casos tem um desempenho melhor quando comparado
com um firewall stateful, por outro lado um firewall stateful tem como principal característica
o armazenamento das informações de conexão, evitando assim ataques do tipo stealth scan.
Apresenta-se abaixo em detalhes os conceitos de stealth scan.
4.1 STEALTH SCAN
Tipo de ataque que visa passar por firewall que não sejam stateful, utilizando algumas
características inerentes a conexões TCP:
Flags existentes no protocolo TCP:
SYN – Iniciar conexão.
FIN – Terminar conexão normalmente.
URG – Campo URG possui dados.
ACK – Aceitar conexão.
PSH – Dar prioridade a este pacote.
RST – Terminar conexão caso haja erros.
O ataque Stealth simplesmente envia um pacote com o flag ACK ativo sem haver
enviado um pacote com o flag SYN (iniciar conexão).
Com isto, alguns firewalls acreditam ser este um pacote de retorno e permitem que
passe.
4.2 IPTABLES
Características do iptables:
17
• Especificação de portas/endereço de origem/destino.
• Suporte a protocolos TCP/UDP/ICMP (incluindo tipos de mensagens ICMP).
• Suporte a interfaces de origem/destino de pacotes.
• Permite um número ilimitado de regras de firewall.
• Muito rápido, estável e seguro.
• Possui mecanismos internos para rejeitar automaticamente pacotes duvidosos.
• Suporte a módulos externos para expansão das funcionalidades.
• Suporte completo a roteamento de pacotes.
• Suporte a especificação de tipo de serviço para priorizar o tráfego.
• Permite especificar exceções para as regras ou parte das regras.
• Suporte a detecção de fragmentos.
• Permite enviar alertas personalizados ao syslog sobre o tráfego aceito/bloqueado.
• Redirecionamento de portas.
• Masquerading.
• Suporte a SNAT.
Source Network Address Translation – mascara o endereço de origem, muito utilizado
em empresas para se conectar com a Internet.
• Suporte a DNAT.
Destination Network Address Translation – para publicar serviços da rede interna para
uma rede pública, como por exemplo. A Internet.
• Contagem de pacotes que atravessaram uma interface/regra.
4.3 L7FILTER
É um classificador para o netfilter que identifica pacotes baseados na camada de
aplicação. Pode identificar pacotes como: KAZAA, HTTP, JABBER, CITRIX, BITTORRENT,
FTP, EDONKEY2000, independente da porta que esteja utilizando.
O L7filter utiliza expressões regulares para identificar os padrões dos pacotes
analisando o payload de cada pacote, podendo assim determinar qual aplicação está sendo
executada.
18
5 IMPLEMENTAÇÃO
O firewall camada sete foi implementado numa máquina Linux utilizando o módulo
l7filter no netfilter/iptables.
A seguir apresento os passos para habilitar suporte à l7filter no kernel:
1. Instalação do patch do kernel: kernel-2.6-layer7.patch
2. Habilitação do layer 7 no kernel: “Device Drivers -> Networking Support ->
Networking options” se habilita “Network packet filtering” e dentro desta
“Netfilter configuration” e então “Layer 7 match support”
3. Compilado e instalado o novo kernel.
4. Instalação do patch do iptables: iptables-layer7.patch.
A máquina firewall foi implementada numa máquina virtual utilizando o software
vmware (que visa criar ambientes para instalação de sistemas distintos. Ele permite a
instalação e utilização de um sistema operacional dentro de outro dando suporte real a
software de outros sistemas) a distribuição Linux que foi utilizada é a Slackware assim como
o servidor e cliente.
Todas as três máquinas são máquinas virtuais que estão rodando num Pentium IV
2.8Ghz, 512Mb de Ram, 80Gb de HD.
Abaixo, na Figura 3 tem-se a topologia do ambiente de testes:
Figura 3 Topologia do ambiente de testes
192.168.0.2/24
Cliente
192.168.0.1/2 192.168.1.1/2
192.168.1.2/24
Servidor
Firewall Camada 7
19
5.1 Descrição do ambiente
5.1.1 Cliente
O cliente está executando o sistema operacional Linux com a distribuição Suse,
conforme descrito na topologia está diretamente conectado ao firewall na rede 192.168.0.0/24.
O cliente também está executando um software que se conecta com o servidor e
transfere um arquivo selecionado, este software é baseado em sockets.
5.1.2 Servidor
O servidor está executando o sistema operacional Linux com a distribuição Slackware,
conforme topologia acima está diretamente conectado ao firewall na rede 192.168.1.0/24.
O servidor tem duas aplicações em execução: uma aplicação que recebe um arquivo do
cliente e um servidor http.
5.1.3 Firewall
O firewall é um computador que tem como sistema operacional Linux com a
distribuição Slackware, possui duas placas de rede, onde conforme topologia acima está
conectado as redes: 192.168.0.0/24 e 192.168.1.0/24.
O kernel do Linux foi recompilado para adicionar suporte ao l7filter no iptables.
Abaixo um pequeno resumo do procedimento para habilitar o l7filter:
Arquivos necessários:
iptables-1.3.7.tar.bz2 (Fonte do iptables encontrado em: http://netfilter.org)
netfilter-layer7-v2.7.tar.gz (Contém os patches que serão aplicados no Kernel e no
iptables, encontrado em: http://l7-filter.sf.net)
l7-protocols-2006-12-12.tar.gz (Contém os arquivos com as definições de protocolos,
encontrado em: http://l7-filter.sf.net)
linux-2.6.xx (Fonte de Kernel, recomendado utilizar o da própria distribuição, o mais
atual pode ser encontrado em: http://www.kernel.org)
Descompactando, compilando e instalando:
# tar xzvf netfilter-layer7-v2.7.tar.gz –C /usr/src
# tar xzvf l7-protocols-2006-12-12.tar.gz –C /usr/src
# tar xjvf iptables-1.3.7.tar.bz2 –C /usr/src
# tar xzvf linux-2.6.xx –C /usr/src
20
Aplicando o patch no Kernel:
# cd /usr/src/linux
# patch –p1 < ../netfilter-layer7-v2.7/kernel-2.6-layer7-x.x.x.patch
Habilitando o suporte a camada 7 no Kernel:
Marcar a opção “Layer 7 match support” que encontra-se em: “Device Drivers =>
Networking support => Networking options => Networks packet filtering => Netfilter
Configuration”
Feito isso é necessário recompilar o Kernel.
Aplicando o patch no iptables
# cd /usr/src/iptables-1.3.7
# patch –p1 < ../netfilter-layer7-v2.7/iptables-layer7-x.x.x.patch
# make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
Compilando os arquivos de definição de protocolo:
# cd /usr/src/l7-protocols-2006-12-12
# make install
Testando uma regra com camada 7:
# iptables –A INPUT –m layer7 –l7proto http –j ACCEPT
21
6 TESTES
Os testes foram executados utilizando o ambiente descrito acima, segue abaixo os testes,
bem como seus resultados.
6.1 Execução
Foram feitos os seguintes testes:
1. Aplicação executando em porta privilegiada
Uma aplicação ficou escutando na porta 80/tcp no servidor, o cliente conecta nesta porta e
transfere um arquivo. Nos firewalls tradicionais na maioria dos casos não podemos
bloquear a porta 80/tcp, pois praticamente todos os servidores web na Internet utilizam
esta porta para comunicação. Já o firewall camada sete podemos implementar uma regra
onde permite o trafego http independente da porta que esteja utilizando, e depois bloquear
a porta 80/tcp, utilizando iptables a regra ficaria assim:
iptables –A INPUT –m layer7 –l7proto http –j ACCEPT
iptables –A INPUT –p tcp –dport 80 –j REJECT
2. Aplicação web executando em outra porta que não seja 80/tcp
Neste teste foi configurado um servidor web no servidor escutando na porta 5000/tcp.
Caso tivéssemos um firewall de nível de rede, precisaríamos criar uma nova regra para
poder liberar o acesso a este porta, mas utilizando um firewall de camada sete, se
liberarmos o protocolo da aplicação, não importa qual seja a porta na camada de
transporte, pois o firewall analisará o payload e saberá que se trata de um pacote da
aplicação que foi permitida.
6.2 Resultados
Os testes tiveram o resultado esperado, ou seja, no primeiro teste foi verificado que
mesmo rejeitando pacotes na porta 80/tcp, mas aceitado pacotes http, pode-se navegar
normalmente, com isso evita-se qualquer tipo de aplicação mal intencionada, como por
exemplo, worms ou spyware que trafegam informações na porta 80/tcp, pois o firewall só
deixará passar pacotes que forem http fazendo uma análise profunda em cada pacote.
Já no segundo teste onde foi mudado a porta do servidor web de propósito, para termos
certeza de que o firewall de camada sete funciona independente de porta, também se obteve
22
sucesso, pois como mencionado acima o firewall de camada sete sabe que o pacote que está
passando é um pacote http, por isso independente da porta, a comunicação será permitida,
conforme regra implementada: iptables –A IINPUT –m layer7 –l7proto http –j ACCEPT
permite o trafego http independente de qual porta o servidor esteja esperando uma conexão.
23
7 CONCLUSÃO
A pesquisa desenvolvida ao longo deste trabalho buscou entender e implementar um
firewall de camada sete onde se testou o seu real funcionamento utilizando para isso o
protocolo http e um servidor web o qual foi alterada a sua configuração padrão para escutar
conexão em porta diferente da sua porta padrão (80/tcp). Constatou-se que utilizando um
firewall de camada sete a porta de comunicação da camada de transporte do modelo de
referencia OSI não importa, pois o firewall analisando profundamente cada pacote, sabe a
qual aplicação o pacote pertence, e com isso aplica-se regras pré-definidas deixando ou não a
comunicação se estabelecer para esta determinada aplicação.
Conclui-se então que o firewall de camada sete é mais seguro, pois hoje em dia com o
avanço dos worms e spyware, os mesmo podem funcionar em uma porta que por padrão é a
uma porta privilegiada a qual uma determinada aplicação por padrão já a utiliza, como por
exemplo, a porta 80/tcp utilizada na maioria dos servidores web para exibir suas páginas, sem
utilizar um firewall de camada sete, é necessário ter esta porta aberta para que possa exibir as
páginas, mas como mencionado, um worm pode estar escutando nesta porta e com isso
comprometer a integridade dos dados, já como o firewall de camada sete não precisa-se
liberar a porta diretamente, basta liberar o protocolo, pois o firewall saberá que se trata de um
pacote http ou algum pacote malicioso.
7.1 Extensões
Este trabalho pode ser continuado para que além de classificar e criar regras de firewall
de acordo com o protocolo da camada 7, possa também fazer controle de banda (shapping),
ou seja, dar prioridade a pacotes que exigem maior largura de banda como, por exemplo,
VoIP ou http e restringir a banda para aplicações p2p. Obtendo assim um maior
aproveitamento da banda e deixando as aplicações críticas com um desempenho melhor.
Outra possível extensão seria realizar uma análise do desempenho do firewall layer
sete, comparando com outras implementações de firewall de Linux tais como filtro de pacotes
para verificar a viabilidade de utilização em um ambiente de produção.
24
Mais uma extensão poderia ser a criação de uma interface web para se configurar as
regras de firewall, o controle de banda (shapping), redirecionamento de porta, NAT, e
também poder visualizar o trafego num gráfico onde teria informações da banda que está
sendo utilizada por determinado protocolo, tornando mais fácil a administração do firewall.
25
Referências Bibliográficas
[1] Anônimo. Segurança Máxima para Linux. Campos.
[2]BAR-GAD, Izhar. Web application Firewalls protect data. Network World. Framingham:Jun 3, 2002. Vol. 19, Iss. 22, p. 47 (1 pp.)
[3] MOORE, John. Web application security. Federal Computer Week. Falls Church:May 16, 2005. Vol. 19, Iss. 15, p. 20-22 (3 pp.)
[4] FRANKLIN, Curtis Jr; WIENS, Jordan. ARE YOUR WEB APPS SECURE? InfoWorld. San Mateo:Feb 9, 2004. Vol. 26, Iss. 6, p. 34-41 (8 pp.)
[5] GARCIA, Andrew. Web Application Lockdown. eWeek. New York:May 16, 2005. Vol. 22, Iss. 20, p. 37-40
[6] WACK, John. Application Gateways. http://www.vtcif.telstra.com.au/pub/docs/security/800-
10/node52.html. Recuperado em 02/10/2006. Recuperado em 01/10/2006
[7] Application Layer Packet Classifier fo Linux. http://l7-filter.sourceforge.net/. Recuperado em 04/05/2006.
[8] The Slackare Linux Project. http://www.slackware.com/. Recuperado em 04/05/2006.
[9] Netfilter. http://www.netfilter.org. Recuperado em 04/05/2006.