25
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

Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

  • Upload
    vandien

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 2: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 3: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 4: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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)

Page 5: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 6: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 7: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 8: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 9: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 10: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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.

Page 11: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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.

Page 12: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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.

Page 13: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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.

Page 14: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 15: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 16: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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:

Page 17: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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.

Page 18: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 19: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 20: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 21: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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

Page 22: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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.

Page 23: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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.

Page 24: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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.

Page 25: Engenharia da Computação FIREWALLS CAMADA …lyceumonline.usf.edu.br/salavirtual/documentos/1076.pdf · software that comes with the most Linux distribuition called ... serviços

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.