Monografia - Segurança de Redes (iptables)

64
Caio Roncaratti Fonseca SEGURANÇA DE REDES COM USO DE UM APLICATIVO FIREWALL NATIVO DO SISTEMA LINUX Monografia apresentada ao Curso de Ciência da Computação do Centro Universitário Barão de Mauá, como parte dos requisitos para obtenção do título de Bacharel em Ciência da Computação. Orientador: Prof. MSc. André Luis dos Santos Domingues Ribeirão Preto 2006

description

Trabalho científico elaborado no curso de Ciência da Computação que propõe uma análise do aplicativo 'Iptables' como ferramenta/recurso para implementar segurança de redes. Neste trabalho também foi discutido a importância da preocupação com a segurança no ambiente de rede, segundo diversos fatores que se relacionam ao mesmo.

Transcript of Monografia - Segurança de Redes (iptables)

Page 1: Monografia - Segurança de Redes (iptables)

Caio Roncaratti Fonseca

SEGURANÇA DE REDES COM USO DE UM APLICATIVO FIREWALL NATIVO DO SISTEMA LINUX

Monografia apresentada ao Curso de Ciência da Computação do Centro Universitário Barão de Mauá, como parte dos requisitos para obtenção do título de Bacharel em Ciência da Computação.

Orientador: Prof. MSc. André Luis dos Santos Domingues

Ribeirão Preto 2006

Page 2: Monografia - Segurança de Redes (iptables)

Agradeço:

À Deus e aos meus pais, por terem me formado a pessoa que sou; Aos professores Omar e Marco Antônio,

pela grande contribuição à metodologia de estudo e ao estímulo produtivo;

Ao professor André Luis, pela orientação, prestatividade e cooperação em

meu trabalho; À minha namorada Natália,

pelo incentivo, apoio e por estar ao meu lado quando precisei.

Page 3: Monografia - Segurança de Redes (iptables)

Dedico este trabalho aos que acreditam no aprendizado como fator elementar da evolução

humana e à todas as pessoas que de alguma forma contribuíram para a conclusão do mesmo.

Page 4: Monografia - Segurança de Redes (iptables)

"A mente que se abre a uma nova idéia jamais retornará

ao seu tamanho original."

Albert Einstein

Page 5: Monografia - Segurança de Redes (iptables)

RESUMO

O processo evolutivo alcançado pela tecnologia computacional trouxe a criação de um

conjunto de ferramentas e fatores que resultaram na estruturação da interconexão de dois ou

mais computadores, em um formato ao qual se atribui o nome “Rede de Computadores”.

Entretanto, em decorrência de uma série de fatores, sobretudo os provenientes de indivíduos

que fazem uso de seus computadores objetivando obter informações de forma ilícita, ou

simplesmente tendo comportamentos mal-intencionados contra outras pessoas e instituições,

um elemento se tornou motivo de preocupação constante em vários segmentos da sociedade,

principalmente o segmento comercial: a segurança de redes.

Neste trabalho serão abordadas as principais características que envolvem a segurança

da informação dentro do contexto das redes de computadores, possibilitada por meio do

mecanismo Firewall de controle de acesso nativo do sistema Linux, objetivando induzir a

uma reflexão sobre os motivos pelos quais esse problema deve ser destacado como sendo um

fator de grande preocupação no âmbito da informática.

Visando apresentar um dos principais métodos para a implementação da segurança,

associou-se o emprego de uma ferramenta Firewall voltada ao gerenciamento de redes,

buscando realizar o controle do fluxo de dados da mesma, garantindo assim um

funcionamento mais eficiente e seguro a ela.

Por último, idealizando-se um modelo estrutural de redes tomada como exemplo,

realizaram-se alguns experimentos a fim de se destacar o nível de relevância da ferramenta

em questão e determinar o grau de eficiência obtido.

Palavras-chave:

Linux, Firewall, Netfilter e Iptables.

Page 6: Monografia - Segurança de Redes (iptables)

ABSTRACT

The evolutive process reached by computer technology, brought the creation of a set

of tools and factors that resulted in the structuring of the interconnection of two or more

computers in a format so called “computer network”. However, due to a series of facts,

especially those related to people that made use of computers in order to get information

illegally and of mean behavior against the others, the community, especially the trade segment

of the society, has become deeply concerned about something new to her: the security of

networks.

The purpose of this work is to describe about the main factors involving the

information security inside the computer networks environment offered by the Firewall

resource of access control, native to the Linux system and the reasons why this problem

should be considered as of great concern by the information science field.

Aiming to present one of the main methods to the establishment of security the use of

a Firewall tool, was incorporated associated to networks management, for the controlling of

its data flow and yet guarantee a safer and more efficient functioning to it.

At last, conceiving a structural pattern of networks by example, a few tests were made

in order to emphasize the level of importance of the mentioned tool as well as to establish its

obtained efficiency degree.

Keywords:

Linux, Firewall, Netfilter and Iptables.

Page 7: Monografia - Segurança de Redes (iptables)

LISTA DE FIGURAS

Figura 1.1: Exemplo ilustrativo de uma rede MAN .................................................................13 Figura 2.1: Rede local de computadores de uma biblioteca .....................................................19 Figura 3.1: Ilustração de uma rede desprotegida, ligada à Internet através de um servidor

comum ..............................................................................................................................23 Figura 3.2: Modelo ilustrativo da filtragem de pacotes realizada por um Firewall .................24 Figura 3.3: Fluxo de dados na tabela filter do iptables ............................................................33 Figura 3.4: Modelo de fluxo de dados na tabela nat do iptables..............................................34 Figura 3.5: Exemplo de uma regra do iptables.........................................................................37 Figura 4.1: Ilustração do modelo de rede adotada neste estudo ...............................................42 Figura 4.2: Ilustração da topologia da rede testada ..................................................................51

Figura B 1: Camadas do modelo ISO/OSI ...............................................................................56

Page 8: Monografia - Segurança de Redes (iptables)

LISTA DE QUADROS

Quadro 3.1: Estrutura de tabelas no iptables............................................................................34 Quadro 3.2: Códigos de parâmetros do iptables e respectivas definições................................35 Quadro 3.3: Opções do iptables e seus significados ................................................................36 Quadro 4.1: Configurações da rede testada ..............................................................................51

Quadro A 1: Exemplo de uma tabela vinculada de registro de endereços no recurso NAT do netfilter relativa ao pós-roteamento..................................................................................55

Quadro A 2: Exemplo de uma tabela vinculada de registro de endereços no recurso NAT do netfilter relativa ao pré-roteamento ..................................................................................55

Page 9: Monografia - Segurança de Redes (iptables)

LISTA DE ABREVIATURAS E SIGLAS

Siglas

LAN = Local Area Network

MAN = Metropolitan Area Network

WAN = Wide Area Network

PC = Personal Computer

MP = Módulo processador

LP = Linha privativa

FTP = File Transfer Protocol

DNS = Domain Name Server

WWW = World Wide Web

DoS = Denial of Service

DDoS = Distributed Denial of Service

OSI = Open System Interconnect

CPU = Central Processing Unit

SSH = Secure Shell

TCP = Transmission Control Protocol

UDP = User Datagram Protocol

ICMP = Internet Control Message Protocol

IPV6 = Internet Protocol Version 6

NAT = Network Address Translation

IP = Internet Protocol

PPP = Point-to-Point Protocol

POP3 = Post Office Protocol

SMTP = Simple Mail Transfer Protocol

HTTPS = Hyper Text Transfer Protocol Secure

ADSL = Asymetric Digital Subscriber Line

ISO = International Organization for Standardization

POSIX = Portable Operating System Interface

TCP/IP = Transmission Control Protocol / Internet Protocol

Page 10: Monografia - Segurança de Redes (iptables)

SUMÁRIO

1 INTRODUÇÃO................................................................................................................11

1.1 Contexto ...................................................................................................................11 1.2 Motivação e relevância.............................................................................................13 1.3 Objetivo ....................................................................................................................14 1.4 Organização do trabalho...........................................................................................14

2 NECESSIDADE DE UMA INFRA-ESTRUTURA SEGURA .......................................16 2.1 Considerações iniciais ..............................................................................................16 2.2 Definição de segurança.............................................................................................16 2.3 Razões para se preocupar com a segurança da informação......................................17 2.4 Principais fatores de preocupação ............................................................................18 2.5 Má configuração do host alvo ..................................................................................20 2.6 Principais objetivos da segurança.............................................................................21 2.7 Considerações finais .................................................................................................22

3 FIREWALL: UM ESCUDO CONTRA ATAQUES.........................................................23 3.1 Considerações iniciais ..............................................................................................23 3.2 Definição e conceito .................................................................................................23 3.3 Funcionamento de um Firewall................................................................................25 3.4 O sistema operacional adotado.................................................................................26 3.5 Razões para utilização do Linux...............................................................................27 3.6 Firewall em nível de kernel: netfilter .......................................................................29 3.7 Iptables .....................................................................................................................30

3.7.1 Estrutura lógica do iptables ..............................................................................31 3.7.2 Opções do iptables ...........................................................................................35 3.7.3 Tradução de endereços de rede (NAT).............................................................37

3.8 Considerações finais .................................................................................................39 4 ESTUDO EXPERIMENTAL...........................................................................................41

4.1 Considerações iniciais ..............................................................................................41 4.2 Características da rede adotada.................................................................................41 4.3 Parâmetros e requisitos levantados...........................................................................42 4.4 Solução proposta ......................................................................................................43

4.4.1 Ativando módulos do iptables..........................................................................45 4.4.2 Preparando as tabelas e chains .........................................................................45 4.4.3 Construção das regras necessárias....................................................................46

4.5 Testes realizados.......................................................................................................50 4.6 Considerações finais .................................................................................................53

CONCLUSÕES........................................................................................................................54 APÊNDICE A ..........................................................................................................................55 APÊNDICE B...........................................................................................................................56 APÊNDICE C...........................................................................................................................58 APÊNDICE D ..........................................................................................................................60 APÊNDICE E...........................................................................................................................61 REFERÊNCIAS BIBLIOGRÁFICAS .....................................................................................62

Page 11: Monografia - Segurança de Redes (iptables)

11

1 INTRODUÇÃO

1.1 Contexto

Sabe-se que, no panorama ao qual atualmente o mundo se encontra, os recursos que a

informática nos propicia é conhecidamente indispensável. É praticamente impossível viver

hoje em dia sem as inúmeras ferramentas oferecidas pelos sistemas computacionais. A partir

dessa idéia, empresas, instituições públicas, escolas, universidades, etc, vêm se adequando a

esse novo conceito a fim de obter os vários benefícios que aqueles podem disponibilizar.

Há algumas décadas, a tecnologia da informática entrou num processo de rápida

evolução e logo passou a integrar-se no âmbito comercial. Nesse aspecto, os sistemas

computacionais passaram a auxiliar bastante nos mais variados processos envolvidos nesse

meio. Surgiu então a necessidade de compartilhar recursos, permitir comunicação e

concentrar informações comuns a todos os usuários estabelecidos em um mesmo ambiente.

Na busca de suprir essa necessidade, surgiram então as redes de computadores.

Segundo SOARES (1995), uma rede de computadores é a ligação de um conjunto de

módulos processadores (MPs)1 por meio de um sistema de comunicação que os possibilita

trocar informações e compartilhar recursos. Esse sistema de comunicação é permitido

basicamente por meio dos enlaces físicos (meios de transmissão) e de um conjunto de regras

de organização e controle da mesma (protocolos) que, em suma, representa uma linguagem de

comunicação destinada à interação de equipamentos em rede.

SOUSA (2002) mostra que a interligação de computadores em rede foi projetada de

modo a possibilitar o compartilhamento de recursos tais como: impressoras, discos rígidos

com alta capacidade de armazenamento e principalmente compartilhar arquivos.

Nas empresas, as estações de trabalho muitas vezes necessitam de recursos

relativamente onerosos. Estes representam, caso visem atender à cada computador, um gasto

muito elevado em seu orçamento. Seria inviável, por exemplo, ter uma impressora, um

scanner e um disco rígido extra em cada estação de trabalho de uma empresa.

Embora isso nos dias de hoje seja algo inadmissível de se considerar, era o caso do

que ocorria antes do surgimento dessa topologia de interconexão de computadores. De acordo

1 Módulos processadores referem-se a qualquer dispositivo capaz de se comunicar através do sistema de comunicação por troca de mensagens. Poderíamos citar, por exemplo, um microcomputador, uma máquina copiadora, um computador de grande porte, um terminal videotexto, etc (SOARES, 1995, pg. 10).

Page 12: Monografia - Segurança de Redes (iptables)

12

com SOUSA (2002) as empresas possuíam diversas bases de dados (arquivos de dados)

espalhados em duplicidade por todos os computadores pertencentes a ela. Esses dados nem

sempre permaneciam iguais pois um usuário poderia intervir nesses arquivos ou parte deles,

alterando-os, trazendo com isso a divergência entre as informações.

A solução para esse problema veio com esse novo conceito de rede, o que

proporcionou a centralização dos dados em um único computador chamado de servidor de

arquivos. Com isso, a base de dados se mantém íntegra e pode ser reproduzida ou

simplesmente consultada a qualquer momento por quaisquer usuários desta rede, o que

assegura um conteúdo único e que se mantém caso a cópia desses arquivos seja perdida por

um usuário desta rede.

As informações tratadas até o momento se associam à idéia de uma rede de pequeno

porte, a qual interliga computadores em uma empresa. Nessas condições e por suas

características, essa rede se denomina Local Area Network (LAN) ou seja, uma rede de área

local. Contudo, existem outros tipos de redes caracterizados pela sua disposição geográfica

como as MANs e WANs.

Metropolitan Area Network (MAN) é uma rede de área metropolitana, ou seja, duas ou

mais redes de computadores interligadas numa região urbana a altas velocidades, conforme

definido por SOUSA (2002). A Figura 1.1 ilustra a interconexão de redes em uma área

metropolitana. As redes locais LANs, compreendidas dentro de cada localidade (provedor de

serviços, empresa, distrito industrial e área comercial), interligam-se por meio de linha

dedicada (LP)1, no caso um link (last-mile / wireless) e por bridges chamadas Tsunami,

dentro de uma mesma área metropolitana.

Wide Area Network (WAN) é uma rede de área abrangente, que associa redes

geograficamente distribuídas em pontos distantes, normalmente ligadas através de linhas

telefônicas ou linhas dedicadas, comunicando-se através de modems, roteadores e gateways.

Um exemplo típico de uma WAN é a Internet ou o uso dela para a interconexão de redes em

locais remotos. Existem também redes WAN que interligam filiais de empresas em diferentes

regiões (interurbanas, interestaduais, internacionais, etc).

1 Linha Privativa ou LPCD (Linha Privativa de Comunicação de Dados) – linha dedicada exclusiva que interliga dois pontos sem haver comutação entre equipamentos de estações de telecomunicações públicas. Permite a conexão e troca de dados entre equipamentos em velocidades de até 2Mbps, com uma conexão permanente, integrada e segura. Adaptado de: KERBER (2006).

Page 13: Monografia - Segurança de Redes (iptables)

13

Figura 1.1: Exemplo ilustrativo de uma rede MAN

Fonte: PROXIM, 2005

1.2 Motivação e relevância

Milhares de empresas e instituições possuem uma infra-estrutura de rede interna e

necessitam de estar diariamente ligados à Internet. Nesse meio, as informações são

consideradas seu principal patrimônio. Com isso, a segurança dessas informações tornou-se

fator primordial para a sobrevivência dessas instituições (ANÔNIMO 2000, DIAS 2000).

Do ponto de vista da segurança, é comum que se considere uma proteção permanente e

que possibilite anular ao máximo as tentativas de acesso não autorizado ao nosso sistema.

Desse modo, é natural considerar que poderíamos possuir um “escudo protetor” para as redes.

Em face a essa situação, iniciou-se um processo de aprendizado relacionado à segurança de

redes, adotando-se o uso de uma ferramenta de segurança específica (o Firewall), nativo do

sistema operacional Linux. Este estudo se deve à busca pela compreensão da relevância desta

ferramenta dentro de uma estratégia de segurança de redes.

Vale ressaltar que, embora este estudo considere como foco principal apresentar uma

alternativa de solução ao problema de segurança de redes, o que pode ser notado é que o

objetivo na verdade concentra-se, associado ao foco sugerido pelo tema do trabalho, em se

combater o problema da falta de segurança do principal protocolo de comunicação utilizado

Page 14: Monografia - Segurança de Redes (iptables)

14

nas mesmas: o protocolo TCP/IP. Isso se deve ao fato desse protocolo não ter sido

desenvolvido considerando-se uma real preocupação relacionada à segurança.

Apesar disso, o objetivo do trabalho se moldará em cima do contexto no qual o

protocolo TCP/IP é amplamente utilizado: o das redes de computadores.

1.3 Objetivo

Este trabalho tem como principal objetivo conduzir a uma análise sobre o uso de

técnicas de segurança baseadas em Firewall dentro do sistema operacional Linux.

Apresentam-se alguns conceitos gerais de segurança, como por exemplo, as políticas de

segurança, as quais levam à conscientização dos fatores que devem ser levados em

consideração para se obter um bom resultado na busca pela segurança de uma rede.

Além disso, será apresentado como é possível configurar um Firewall de modo a

proteger toda uma rede, possibilitando além da segurança das estações de trabalho a

disponibilização de acesso à Internet para ambas. Complementarmente, como é o caso do

contexto que servirá de base de estudo neste trabalho, com uso de determinadas regras é

possível a publicação de quaisquer serviços na Internet, como: Web1, e-mail, PHP, FTP,

DNS, etc., a partir de um ou mais servidores que fazem parte de uma rede local.

1.4 Organização do trabalho

Este trabalho se divide em etapas que constituem na fundamentação de um estudo

baseado na descrição do contexto, delimitação do problema e na solução proposta pelo objeto

de estudo, em sua demonstração prática e nas considerações finais sobre o tema discutido.

O tema, como um todo, abordará esses itens relacionados e organizados da seguinte

forma:

• Contexto – no Capítulo 1, foi abordada a descrição do panorama em que a

questão principal está relacionada;

1 De acordo com GUIZZO (1999) Web é um sistema distribuído de informação. Esse termo é conhecido também pela sigla WWW (World Wide Web) que quer dizer “Teia de alcance mundial”. Na acepção da palavra, é uma aplicação da Internet que combina hipertexto com multimídia. O hipertexto pode interligar milhares de páginas Web por meio de links.

Page 15: Monografia - Segurança de Redes (iptables)

15

• Descrição do problema – no Capítulo 2, serão definidas as características nas

quais o estudo se baseará para a obtenção de um juízo levando em conta os

fatores determinantes aos quais ele se compreende;

• Características do objeto de estudo – no Capítulo 3, será apresentado o que é,

como se utiliza, quais as possibilidades, os itens de maior relevância, entre

outros, que constituem na implementação da segurança de uma rede local

através do aplicativo Firewall;

• Solução proposta e demonstração prática – o Capítulo 4 compreenderá a

documentação de toda fase de estudo experimental do objeto analisado na

forma prática;

• Conclusões – serão descritos todos os fatores relacionados ao problema

abordado, mostrando como será estabelecido o vínculo dele com a parte prática

(fase de estudo experimental) do trabalho, onde serão apresentadas possíveis

soluções para tal problema.

Page 16: Monografia - Segurança de Redes (iptables)

16

2 NECESSIDADE DE UMA INFRA-ESTRUTURA SEGURA

2.1 Considerações iniciais

A seguir, serão descritos quais os fatores que levam à conscientização do quão

importante e necessário é a implementação de uma infra-estrutura de redes que garanta um

bom nível de segurança das informações.

Constarão dentro deste capítulo, as características que traduzem o significado da

preocupação com a segurança dentro de um modelo de redes de computadores, tomando

como foco principal sua aplicação em ambientes corporativos, pois é onde o fator segurança é

mais preocupante devido ao grau de sensibilidade e importância das informações envolvidas

em tal contexto.

2.2 Definição de segurança

Nos dias de hoje, a questão da segurança1 é algo tão imprescindível que não se pode

sequer pensar em relevá-la. Cada vez mais, as empresas buscam fazer o possível para se

adequarem à realidade existente no mundo da informática e procuram buscar bons

administradores para projetarem e administrarem suas redes de forma a não permitirem um

acesso indevido às mesmas. Contudo, nada do que se relaciona à segurança pode ser definido

como algo que sempre valerá sobre quaisquer circunstâncias. Na verdade, esse conceito se

traduz em minimizar a vulnerabilidade de bens (qualquer coisa de valor) e recursos.

Vulnerabilidade é qualquer falha ou fraqueza que pode ser explorada para se ter acesso a um

sistema ou os dados que ele contém, segundo definido por SOARES (1995).

1 “s.f. (1391 cf. FichIVPM) 1 ação ou efeito de tornar seguro; 2 atitude de confiança nos próprios recursos; 3 estado em que a satisfação de necessidades e desejos se encontra garantida; 4 estado, qualidade ou condição de uma pessoa ou coisa que está livre de perigos, de incertezas, assegurada de danos e riscos eventuais, afastada de todo mal; 5 situação em que não há nada a temer” (HOUAISS, 2001).

Page 17: Monografia - Segurança de Redes (iptables)

17

2.3 Razões para se preocupar com a segurança da informação

A partir das vulnerabilidades e fraquezas é que os invasores de sistema se baseiam

para poder atacar usuários desprotegidos. Segundo C.E.R.T. (2005), esses ataques geralmente

visam:

• Acesso a informações sigilosas: geralmente o atacante realiza o ataque visando

obter informações importantes de um determinado alvo. Ex: documentos e

planilhas importantes, registro de banco de dados confidenciais, senhas de clientes

de banco etc;

• Uso do PC alvo como um atalho para invadir uma outra vítima: esse tipo de

ataque considera o PC da vítima como uma porta de passagem para se invadir

outra vítima ou, na maioria dos casos, um servidor de grande porte, preservando o

anonimato do invasor (seria como se o PC alvo fosse efetivamente o autor do

ataque ao servidor pois a conexão maliciosa será realizada a partir dele);

• Negação de serviço (DoS): é um tipo de ataque em que o atacante se utiliza de

conexões múltiplas e simultâneas para gerar uma sobrecarga em sua rede de forma

a indisponibilizá-la ao(s) seu(s) usuário(s);

• Negação de serviço distribuída (DDoS): constitui em um tipo de ataque DoS

ampliado, no qual um cracker utiliza vários computadores de vítimas “escravos”

para atacar uma determinada máquina. Atualmente o ambiente é ainda mais

atrativo pois com o aumento dos usuários de banda larga (aumento na velocidade

de conexão), permite-se que haja um ataque muito mais intenso não só devido à

quantidade de computadores usados no processo; e

• Danificar dados: às vezes, os crackers utilizam os ataques para destruir, apagar ou

simplesmente alterar dados e informações de uma determinada vítima. O mais

assustador é que muitas vezes, algumas empresas contratam esses crackers para

prejudicarem outras empresas concorrentes. Isso também ocorre em relação ao

primeiro item na forma de roubo de informações.

Mesmo com todas as medidas favorecendo a criação de uma barreira protetora

intransponível entre a rede externa e a intranet, nenhum administrador de redes, apesar de

deter o mais alto nível de conhecimento no assunto, conseguirá fazê-la de forma plena. O que

se deve privar de pensar é sobre idéia de que é possível se alcançar uma segurança sem a

Page 18: Monografia - Segurança de Redes (iptables)

18

existência de nenhuma brecha. Algumas informações importantes a serem consideradas são

que:

• Não existe sistema de segurança totalmente seguro e sem falhas;

• Não existe sistema operacional totalmente seguro e sem vulnerabilidades;

• Não existem ferramentas de segurança das quais um hacker nunca conseguirá

detectar falhas para superá-las;

• Não existe sequer um servidor inviolável em nenhum lugar do mundo;

• Não existe nada que não pode ser vencido por um hacker experiente e

determinado; e

• Não existe segurança plena ou definitiva.

Embora todos esses fatores sejam preocupantes, não se deve fixar somente nessas

probabilidades e deixar que isso cause pânico. As ferramentas de segurança nos sistemas de

informação, sobretudo as que serão tratadas neste trabalho, cumprem muito bem o seu papel

no objetivo de “minimizar” os efeitos nocivos da interconexão de computadores. Isso porque

é totalmente possível que aconteçam ataques a uma rede de computadores ligados à Internet,

mas eles não podem ser evitados completamente. Esse principal fator é o que o estudo

realizado neste trabalho se propõe a abordar. Essa idéia que se deve considerar para

prosseguir no objetivo de se implementar a segurança de uma rede local.

2.4 Principais fatores de preocupação

Conforme descrito por DIAS (2000), inicialmente é preciso relacionar todos os

recursos que podem estar suscetíveis a algum risco. Devemos considerar o que é necessário

proteger, os recursos mais importantes e de que forma as informações estão armazenadas

(disco rígido, disquete, memória). Em um sistema computacional, os tipos de recursos mais

comuns são:

• Hardware – processadores, unidades de disco, placas, teclados, terminais,

computadores pessoais, estações de trabalho, impressoras, servidores,

roteadores, linhas de comunicação;

Page 19: Monografia - Segurança de Redes (iptables)

19

• Software – aplicativos utilitários, programas de diagnóstico, sistemas

operacionais, programas de comunicação, aplicativos;

• Dados – em processamento, armazenados on-line, em trânsito nos dispositivos

de linhas de comunicação, backups, logs de auditoria, bases de dados;

• Pessoas – usuários e funcionários que estarão habilitados a operarem os

sistemas;

• Documentação – sobre sistemas, hardware, programas, procedimentos

administrativos, fluxo de dados, modelagem de dados; e

• Suprimentos – papéis, formulários, fitas, disquetes, CD-ROMs.

Figura 2.1: Rede local de computadores de uma biblioteca

Fonte: ORANGE, 2006

A Figura 2.1 corresponde a uma rede de computadores instalada em uma biblioteca.

Nela, pode-se perceber a existência de 9 computadores ligados em rede, utilizados para

consulta do acervo de obras no banco de dados local e também para pesquisas online. Esse

tipo de utilização de redes é muito comum hoje em dia, já que o registro dos títulos que a

biblioteca possui são armazenados em banco de dados, permitindo uma ágil e eficaz

localização dos mesmos. Porém, esse ambiente é ideal para a ação de invasores de sistema. As

invasões podem ocorrer desde a partir de uma estação da própria rede, como de fora dela, pela

Internet.

Page 20: Monografia - Segurança de Redes (iptables)

20

Neste trabalho, não será considerada a hipótese de um indivíduo entrar numa empresa

e, apontando uma arma para a cabeça de um dos responsáveis, obrigar que ele passe todas as

informações disponíveis em seu sistema. Também é impossível assegurar que nenhum dos

funcionários da empresa sofram algum tipo de engenharia social1. Além disso, caso não se

tenha uma boa proteção contra vírus, de nada adianta tentar impedir ataques externos ou

internos na rede sendo que não houve antes uma preocupação vital para a garantia da

disponibilidade de uma máquina e seus dados. Trata-se do antivírus, uma ferramenta também

indispensável em relação à segurança no âmbito computacional. Mesmo assim, é

extremamente importante que se tenha uma preocupação com a conduta e disciplina dos

usuários da rede que estará sendo equipada com os atributos de segurança.

2.5 Má configuração do host alvo

De acordo com ANÔNIMO (2000), muitas brechas de segurança são originadas por

meio da má configuração do alvo. Isso pode ocorrer a partir de um simples serviço de rede,

iniciado por um software que nem sempre o utiliza a todo o momento ou até mesmo por meio

de um Firewall mal configurado. Além disso, podem ocorrer falhas no sistema operacional ou

em aplicativos que resultem na disponibilização de acesso indevido ao host. Os riscos

resultantes vão permanecer até que se desative o serviço de rede iniciado pelo software,

complementem-se as regras do Firewall e corrijam-se as falhas do sistema e dos softwares

vulneráveis suscetíveis a ataques.

Um bom exemplo de brecha de segurança são os serviços de impressão

compartilhados e de compartilhamento de arquivos. Esses podem ser ativados em uma

instalação de atualização ou como padrão em um sistema operacional, deixando o mesmo

inseguro. É necessário saber identificar quando estão ativos e desativá-los.

Muitos usuários se julgam muito mais experientes do que realmente são. Isso

certamente pode levá-lo a imaginar que, por ter um conhecimento em algumas ferramentas

avançadas ou em alguns comandos do sistema Linux por exemplo, ele não está sujeito a ser

subjugado pelas técnicas de um invasor. E não há dúvidas de que um invasor quase sempre

tem mais conhecimento que qualquer usuário por mais experiente que ele seja.

1 Mecanismo no qual um indivíduo mal-intencionado faz uso seguindo técnicas de persuasão e manipulação com apelos muitas vezes emocionais para conseguir de uma outra pessoa as informações das quais deseja.

Page 21: Monografia - Segurança de Redes (iptables)

21

O fato é que quando um indivíduo tenta se fazer passar por um usuário experiente, ele

na verdade está mais sujeito a ataques do que a maioria dos usuários comuns, pois, com a

utilização desse seu restrito “conhecimento”, ele naturalmente poderá habilitar serviços

remotos que poderão ser potenciais alvos de ataques.

2.6 Principais objetivos da segurança

Segundo DIAS (2000), a expectativa de todo usuário, em relação à segurança de

dados, é que as informações das quais se necessita e que estão armazenadas em algum

dispositivo computacional, esteja sempre nele disponível e que nunca sejam acessadas por

qualquer pessoa não autorizada. Mesmo que o conceito de segurança num sistema

computacional seja comumente relacionado à sua garantia de funcionamento de acordo com o

que lhe é solicitado pelo usuário, o usuário espera que suas informações sempre estejam no

local e no momento que ele estabelecer, que sejam confiáveis, corretas e mantidas longe do

acesso de pessoas não autorizadas. Essas expectativas dos usuários relacionadas à segurança

de suas informações podem ser traduzidas em objetivos de segurança.

Como existem várias formas de implementação de segurança em informática, os

objetivos de segurança variam de acordo com o tipo de ambiente computacional e a natureza

do sistema em relação à sua área de atuação (administrativo, financeiro, militar,

governamental, etc.). Dentre esse tipo de panorama é necessário analisar a natureza da

aplicação, dos riscos e impactos prováveis para se identificar os objetivos mais prioritários

para a organização. Todos os envolvidos na implementação da segurança de uma empresa,

desde um usuário comum até os profissionais de informática, devem se preocupar com os

seguintes objetivos de segurança:

Confidencialidade ou privacidade – proteger as informações contra o acesso de

pessoas não autorizadas pelo dono da informação. O termo se define como a propriedade de

limitar o acesso à informação somente às entidades legítimas, às quais tiveram concessão de

acesso pelo proprietário da informação.

Integridade – garantir que os dados nunca sejam alterados ou apagados em nenhuma

hipótese. Esse conceito se exprime na propriedade de se manter todas as características

originais da informação desde o momento que ela foi criada, incluindo controle de mudanças

e garantia do seu ciclo de vida (nascimento, manutenção e destruição). Em se tratando de

Page 22: Monografia - Segurança de Redes (iptables)

22

comunicação de dados, o termo traduz-se no controle de alterações (concedidas ou acidentais)

dos dados transmitidos, seguido de sua subseqüente correção.

Disponibilidade – caracteriza-se pela necessidade de proteger os serviços de

informática, visando evitar que se tornem indisponíveis por conseqüência de uma intervenção

indevida. Muitos ataques visam indisponibilizar serviços do sistema operacional alvo. Esses

ataques geralmente são gerados a partir de uma sobrecarga de solicitação de conexão, sendo

este, um exemplo de ataque DoS (DIAS, 2000; CYCLADES, 2006).

2.7 Considerações finais

A preocupação com a segurança em redes de computadores é algo que não deve só ser

levada em consideração como um fator de potencial comprometimento da integridade dos

dados informatizados de uma empresa. Ela deve ser julgada como um problema cujas

conseqüências resultam muito provavelmente num prejuízo financeiro que, em alguns casos,

podem ter proporções catastróficas.

Como visto, existem várias formas das quais um invasor pode utilizar para obter

sucesso em seus ataques. Cada vez mais, surgem oportunidades para isso, seja por meio de

falhas e vulnerabilidades no sistema ou em aplicativos, seja também pela infinidade de

técnicas criadas por pessoas que se dedicam a este objetivo e que estão sem dúvida em

constante aperfeiçoamento.

Para uma empresa que busca se adequar a uma situação onde esses problemas podem

ser minimizados em sua quase totalidade, há entretanto diversos tipos de ferramentas

destinadas à sua prevenção e reparação. Percebe-se que a atitude mais inteligente a ser

adotada é sem dúvida, a atitude preventiva.

Assim, o estudo realizado neste trabalho traz bem definido o objetivo de fazer uma

análise da ferramenta de prevenção de incidentes a qual motivou a intitulação do mesmo.

Page 23: Monografia - Segurança de Redes (iptables)

23

3 FIREWALL: UM ESCUDO CONTRA ATAQUES

3.1 Considerações iniciais

O principal mecanismo de combate à intrusão nos sistemas de computadores é o

Firewall. Sua associação com a segurança sempre se fez prevalecer entre diversos segmentos

de sua aplicação. É comum que se encontre denominações relacionando-o como sendo o mais

importante item no que diz respeito à segurança de redes.

Dentro deste capítulo, serão abordados os diversos fatores que se destinam a prover o

favorecimento da compreensão do que se refere ao conceito, princípio de funcionamento e

aplicação dessa ferramenta. Além disso, entrarão em questão os itens que determinam o tema

do presente trabalho: o sistema operacional Linux e seu aplicativo Firewall nativo.

3.2 Definição e conceito

Seguindo sua definição literal, Firewall quer dizer “parede corta-fogo”. Essa analogia

se explica por ele atuar literalmente como uma barreira contra incêndio e sua função na rede é

a de impedir acessos externos originados por invasores.

Na Figura 3.1 é apresentado o modelo estrutural de uma rede de dados ligada à

Internet por meio de um servidor central e um roteador. Nela existem estações de trabalho que

se encontram desprovidas de segurança. Possíveis ataques podem causar sérios problemas às

informações contidas nos computadores que a compõem.

Figura 3.1: Ilustração de uma rede desprotegida, ligada à Internet através de um servidor comum

Page 24: Monografia - Segurança de Redes (iptables)

24

Firewall é um dispositivo de rede cuja função é a de administrar o tráfego entre redes

distintas e impedir a transmissão de dados nocivos ou não autorizados de uma rede a outra.

Ele é utilizado para impedir o tráfego não autorizado de um domínio de rede a outro.

Seu uso está relacionado com o tamanho da rede, o grau de complexidade das regras

que restringem o fluxo de entrada e saída de dados e o nível de segurança desejado. Além da

aplicação na forma de software, a qual se baseia estritamente este trabalho, um Firewall

apresenta-se também na forma de hardware1. Pode-se contudo, utilizar ambos os tipos para se

aumentar o nível de segurança entre as redes que ele intermedeia.

Na Figura 3.2 é representado, de forma ilustrativa, como é a estrutura de uma rede

protegida por um Firewall, fazendo uma analogia da mesma perante o seu significado literal

(parede corta-fogo). Nela, a máquina Firewall está ligada com a Internet por meio de um link

dedicado e à rede local da qual está contida. Os pacotes que chegam ao Firewall com destino

à Internet são roteados aos respectivos destinos por ele e, os que chegam da Internet com

destino às estações de rede, são filtrados pelo Firewall e repassados às quais correspondem.

A implantação de um mecanismo para controle de tráfego e acesso baseados num

aplicativo Firewall, deve ser projetada por meio de um procedimento cuidadoso. Deve-se ter a

preocupação de unir todas as informações possíveis relacionadas com a necessidade que a

rede demanda. Isso porque, a complexidade dos fatores que envolvem a necessidade da rede

traz um conseqüente aumento da dificuldade de implementação das regras do Firewall.

Figura 3.2: Modelo ilustrativo da filtragem de pacotes realizada por um Firewall

Conforme descrito por SOARES (1995), dentro do contexto de rede, é comum que

uma máquina execute inúmeras tarefas, de diferentes aplicações e de variados portes. Ela, por

sua vez, pode estar suscetível a ataques externos caso alguma dessas aplicações possuam

1 Hoje em dia existem roteadores, modems ADSL, etc. que cumprem bem as funções de um bom dispositivo Firewall, que até então se limitava restritamente a essa função. É o caso do Roteador / Firewall (DI-804HV) e do modem ADSL / roteador / Firewall TW100-BRM504.

Page 25: Monografia - Segurança de Redes (iptables)

25

falhas. Todavia, o mecanismo de defesa de um Firewall garante que estações de rede sejam

isoladas do ambiente externo da Internet impedindo assim que a vulnerabilidade de

determinada aplicação desta máquina fosse explorada por um invasor pelo fato de ela não

estar acessível via Internet.

As propriedades de um Firewall, conforme relacionadas por CHESWICK apud

SOARES (1994), se caracterizam da seguinte forma:

• Todo o tráfego que sai ou entra em uma rede, é analisado pelo Firewall;

• Somente o tráfego autorizado por sua política de segurança pode atravessar o

Firewall; e

• O Firewall deve ser imune a violações.

Dentre as particularidades da implementação de segurança baseada em Firewall está a

importância de se usar somente o que se restringe à finalidade da segurança. Por isso, um

administrador de rede deve ter a preocupação de limitar os recursos do sistema operacional da

máquina Firewall a fim de que ela possa atuar unicamente conforme o objetivo para o qual

ela foi projetada. Além disso, um Firewall deve possuir regras tais que sejam limitadas a

somente o estritamente necessário para a proteção da rede a qual estiver designado.

3.3 Funcionamento de um Firewall

O princípio de funcionamento de um Firewall foi abordado de forma sucinta no início

deste capítulo. Entretanto, é importante saber mais detalhadamente como ele atua.

Primeiramente, deve-se deixar claro que o tipo de Firewall estudado neste trabalho se baseia

exclusivamente na filtragem de pacotes. Existem outros tipos que são também aplicativos

(softwares) mas que atuam na camada 7 (aplicação) do modelo OSI1, como é o caso dos

gateways de circuitos e gateways de aplicação.

Um Firewall é implementado seguindo os parâmetros dos quais uma organização tem

necessidade. Esses parâmetros são implementados em um Firewall e recebem o nome de

regras. As regras são configuradas de acordo com os acessos que o Firewall deve bloquear,

bem como os que ele deve liberar.

1 Para mais detalhes, consulte o modelo ISO/OSI, que está disponível no Apêndice B. O nível 4 refere-se à camada de transporte do modelo OSI que possui 7 níveis. Um Firewall se restringe tão somente a análise do cabeçalho dos pacotes, logo, não tem a capacidade de ler o conteúdo dos mesmos a partir do tráfego de dados o qual ele gerencia. Por sua vez, não consegue detectar a presença de um código malicioso por meio da análise desses pacotes, estando ou não agrupados.

Page 26: Monografia - Segurança de Redes (iptables)

26

Utilizando esse conceito, um Firewall pode então analisar as informações do

cabeçalho de um pacote que esteja entrando ou saindo da rede, consultar as regras

predefinidas pelo administrador da rede e executar a ação pertinente a qual este pacote se

enquadra. Podemos criar inúmeros tipos de regras, conforme será tratado mais adiante, a

serem consultadas pelo Firewall na filtragem de pacotes. Por sua vez, as ações que serão

executadas por ele são: Aceitar, Descartar ou Rejeitar o pacote. Para executar quaisquer

dessas ações predefinidas, primeiramente ele irá tomar como referência informações contidas

no cabeçalho de qualquer pacote que passa por ele.

Vejamos então alguns dos tipos de informações que o Firewall pode se basear para

realizar a filtragem dos pacotes:

• Endereço de origem / destino;

• Máscara de sub-rede de origem / destino;

• Porta de origem / destino;

• Tipo de protocolo;

• Interface de entrada / saída;

• Status da conexão;

• Identificação do pacote;

• Entre outras.

A proteção por meio de filtros, como descreve ANÔNIMO (2000), não se restringe

somente à análise dos pacotes vindos de fora da rede. Um Firewall pode ser e na maioria dos

casos é configurado seguindo diretivas de segurança de uma organização que pode restringir

alguns tipos de acesso a determinadas estações ou sub-redes. Ela pode estabelecer por

exemplo que uma estação “X” não deva acessar determinados sites na Internet. Pode-se

também definir que um departamento, o qual faz parte de uma sub-rede interna específica,

não terá acesso à Internet ou ao site que se encontra num servidor Web da organização.

Portanto, os Firewalls são para as redes o que os esquemas de privilégio de usuário são para

os sistemas operacionais.

3.4 O sistema operacional adotado

Para se implementar um mecanismo de defesa baseado em um Firewall, é necessário

que se faça a escolha do sistema operacional da máquina que rodará tal aplicativo. Existem

atualmente inúmeros sistemas operacionais que poderiam manter um aplicativo Firewall para

Page 27: Monografia - Segurança de Redes (iptables)

27

proteger uma rede. São eles: Windows, AIX, Netware, Irix, Solaris, Unix, Linux, OS/2, entre

outros. Contudo, o sistema operacional escolhido para realizar um estudo voltado à

ferramenta Firewall de segurança, foi o sistema Linux. Portanto, a abordagem deste trabalho

ficará restrita especificamente à análise e discussão baseadas neste sistema operacional.

3.5 Razões para utilização do Linux

Deve-se salientar que Linux por si só não é um sistema operacional completo.

Tecnicamente, conforme PIRES (2005) e MORIMOTO (2004), Linux é o nome da estrutura

kernel1, que detém todas as diretrizes de interface e administração dos dispositivos de

sistema. As distribuições Linux que realmente constituem num sistema operacional completo

são denominadas GNU/Linux2. O GNU/Linux é a união de aplicativos constituídos sob a

filosofia de software livre e gratuito GNU da Free Software Fundation juntamente com o

núcleo do sistema operacional (kernel) Linux, criado em 1991 por Linus Torvalds, aluno de

ciência da computação da Universidade de Helsinki na Finlândia e que fora baseado no Unix.

O kernel tem a função de controlar todo o hardware do computador, controlar processos

executados pela CPU, gerenciar memória, etc.

Na verdade, os sistemas operacionais derivados do Unix têm todos os requisitos para

trabalharem com um controle de fluxo de dados através do Firewall nativo do sistema. No

caso do GNU/Linux, vários fatores o tornaram um dos sistemas operacionais mais utilizados

em servidores de diversos tipos de serviços voltados à rede e à Internet no mundo todo.

Algumas das vantagens do sistema GNU/Linux são:

• Código fonte aberto – o sistema GNU/Linux foi desenvolvido em contraposição

ao software proprietário. Seu intuito era que ele se tornasse um sistema isento de

apropriação privada e que possibilitasse a produção de conhecimento científico e

tecnológico aos seus usuários. Isso faz com que a idéia principal de ele ter sido

desenvolvido especialmente para ser usado por desenvolvedores de software

permite que ele fosse melhorado mediante a liberdade de criação e disseminação

1 No sentido literal, a tradução da palavra kernel significa “cerne”, ou seja, a parte mais sólida e essencial de um sistema operacional. A denominação mais usual é a que relaciona o kernel como sendo o “núcleo de um sistema operacional”. Ele é responsável pela interação imediata com o hardware, gerenciando todos os recursos do sistema. 2 Segundo SILVA (2005), Sistema operacional de arquitetura aberta – suas especificações (código fonte) estão disponíveis publicamente para que possam ser modificadas ou melhoradas por desenvolvedores ou empresas, solidários ao projeto. Por ser baseado no sistema Unix e seguir o padrão POSIX, possui compatibilidade com suas variantes (UNIX, FreeBSD, OpenBSD, HPUX, Solaris, entre outros).

Page 28: Monografia - Segurança de Redes (iptables)

28

solidária de milhares de pessoas, dentre elas colaboradores pessoais,

universidades, empresas de software e distribuidores do mundo todo;

• Linguagem simples e poderosa – a linguagem de programação utilizada

basicamente em todo o sistema é a linguagem C, uma linguagem prática,

bastante rica, compacta, portável para diversos sistemas operacionais,

plataformas e, principalmente, bastante difundida;

• Voltado à Internet – possui inúmeras ferramentas nativas que permitem a

conexão de seus usuários à Internet, além de prover serviços próprios como

servidores Web, e-mail, FTP, DNS, SSH, entre outros. Isso motiva uma detecção

e correção de falhas muito rápida, mútua e constante;

• Controle de acesso – o controle de permissões de acesso no sistema GNU/Linux

é classificado em usuários e grupos, o que garante que o acesso à determinados

processos, arquivos e diretórios sejam restringidos pelo administrador quando

necessário e à usuários ou grupos específicos;

• Atualizações rápidas e periódicas – pessoas do mundo todo contribuem para o

aperfeiçoamento desse sistema. A todo o momento podem ser disponibilizadas

atualizações de segurança, correção de falhas e melhorias em geral por qualquer

pessoa que tenha conhecimento em programação, estando ela em qualquer parte

do mundo;

• Qualidade – embora seja baseado em um conceito de livre distribuição e não

seja mantido com o capital de sua comercialização, o GNU/Linux possui

inúmeros recursos de alto grau de qualidade como os servidores HTTP (Apache)

e de e-mail (Qmail), por exemplo;

• Estabilidade e robustez – grande parte dos servidores Web de empresas famosas

do mundo todo, são mantidos pelo sistema GNU/Linux. Isso se deve em grande

parte por ele ser muito estável. Um servidor rodando num sistema Linux pode

funcionar durante anos sem nunca precisar ser reinicializado;

• Segurança – a restrição de acesso provida pelos atributos de permissão de acesso

a arquivos, diretórios e processos, é um ponto muito forte a favor da segurança

no GNU/Linux;

• Prompt de comando completo – os recursos do seu prompt de comando são

bastante ricos. Possui uma gama de ferramentas de auxílio, gerenciamento do

sistema, recursos e facilidades que tornam seu manuseio muito prático e fácil;

Page 29: Monografia - Segurança de Redes (iptables)

29

• Multiprocesso – divide as cargas de trabalho de um aplicativo em processos

individuais chamados threads; e

• Sistema gratuito – além de todos esses fatores, o GNU/Linux como dito

anteriormente é um sistema que pode ser adquirido de forma gratuita através de

servidores públicos via Internet.

Logicamente, no GNU/Linux também existem falhas pois nenhum sistema operacional

é perfeito. Muitas dessas falhas são realmente bastante sérias. Tais falhas, porém, são

identificadas em pouquíssimo tempo e suas correções (patches) saem em questão de dias ou

até mesmo horas. Apesar disso, a quantidade de falhas críticas que são identificadas neste

sistema é tradicionalmente inferior, se comparadas as dos demais sistemas, principalmente no

quesito segurança. Um dos motivos principais pelos quais o mesmo apresenta um número

bastante reduzido de falhas críticas, se deve ao sistema de testes adotado pelos

desenvolvedores do sistema antes da publicação das versões finais. Ocorre que, antes de ser

publicada a versão definitiva de uma distribuição GNU/Linux, são disponibilizadas versões de

teste para que sejam detectados possíveis problemas pelos usuários, colaboradores e empresas

do mundo todo. Assim, há sempre uma intensa bateria de testes realizadas pelos

desenvolvedores do sistema, diretos ou indiretos, a fim de que sejam detectadas falhas.

Sobre estes aspectos é que se propôs a utilização da plataforma Linux para servir como

base do estudo sobre segurança de redes por meio do aplicativo Firewall nativo da mesma.

Nas seções seguintes, serão mostrados conceitos mais detalhados sobre a ferramenta Firewall

nativa da plataforma Linux.

3.6 Firewall em nível de kernel: netfilter

No Linux, conforme define HATCH, LEE & KURTZ (2003), a filtragem de pacotes

consiste em um framework contido no kernel. É ele quem realiza no Linux as funções de

filtragem de pacotes seguindo as regras (filtros) configuradas pelo administrador de rede.

Essas regras são atribuídas a ele por meio de um programa que realiza a interface com o

módulo netfilter. Dependendo da versão do kernel podemos ter diferentes versões desse

programa. No caso das versões anteriores a 2.0.x, o programa utilizado para configurar as

regras do netfilter era o ipfwadm. Nas versões 2.2.x, usava-se o ipchains que veio a substituir

o ipfwadm por ele ser muito complicado de se utilizar. A partir da versão 2.4.x, houve uma

Page 30: Monografia - Segurança de Redes (iptables)

30

reformulação nos comandos do ipchains, dando origem ao iptables que será a base deste

trabalho.

3.7 Iptables

O iptables é o módulo responsável pela interface de configuração das regras do

netfilter. Com ele podem-se editar as tabelas de filtragem de pacotes nativas do kernel. Essa

filtragem, como já dito anteriormente, ocorre na comparação entre os dados do cabeçalho

(header) do pacote analisado e as regras predefinidas.

Conforme já mencionado na Seção 3.1 deste capítulo, o iptables trata os pacotes

seguindo parâmetros das regras configuradas e pode executar três diferentes tipos de ação:

Aceitar (ACCEPT), Descartar (DROP) ou Rejeitar (REJECT). Quando em uma regra se

especifica que a ação será ACCEPT, o netfilter aceitará os pacotes que estiverem em

conveniência a ela. Caso a ação especificada for DROP, o netfilter irá descartar todos os

pacotes de dados que se encaixarem nessa regra. Caso seja especificado a ação REJECT, o

netfilter rejeitará todos os pacotes pertinentes à regra e enviará uma mensagem explicando o

motivo da não aceitação dos mesmos. Existem outras ações como REDIRECT, MIRROR

(experimental), LOG que não serão tratadas no trabalho mas precisam ser citadas. As ações

DNAT, SNAT e MASQUERADE são específicas da tabela nat e seus respectivos

significados serão relacionados mais adiante.

Existem várias características que definem o iptables. São elas:

• Suporta os protocolos TCP / UDP / ICMP;

• Podem ser especificadas portas de endereço de origem e destino;

• Rápido, estável e seguro;

• Suporte a módulos externos para aumentar suas funcionalidades;

• Possui mecanismos internos que bloqueiam pacotes do tipo spoof ou

fragmentados;

• Permite que se adicione um número ilimitado de regras por chain;

• Suporte completo a roteamento de pacotes;

• Suporta priorização de tráfego por tipos determinados de pacotes;

• Permite enviar ao log do sistema mensagens personalizadas sobre o tráfego;

• Permite redirecionamento de portas;

Page 31: Monografia - Segurança de Redes (iptables)

31

• Suporte aos tipos de NAT1: MASQUERADE, SNAT e DNAT;

• Proteção contra DoS, ping flood e sys flood; e

• Suporta endereços IPv6 através do comando ip6tables.

3.7.1 Estrutura lógica do iptables

É importante abrir uma ressalva sobre a dimensão a qual este trabalho abrange para

que não gere o entendimento de que as opções e funções do iptables que serão relacionadas

aqui, são as únicas que ele possui. Não é o propósito deste trabalho explicar todas as

possibilidades e todas as funções do iptables. Mesmo porquê, há várias outras opções de

configuração que podem ser construídas a fim de se obter uma solução conveniente a outros

tipos diferentes de problema. Sendo assim, caso haja interesse em obter informações sobre

outras possíveis funcionalidades do iptables que não estão relacionadas neste trabalho,

sugere-se a leitura dos artigos eletrônicos contidos nas referências bibliográficas.

A estrutura lógica do iptables é formada basicamente por tabelas, chains e regras. As

regras devem ser definidas juntamente com as tabelas e chains (cadeias), pois elas consistem

em uma forma de organizar as informações que serão processadas pelo netfilter. Abaixo, será

descrito o que cada uma delas representam:

• As tabelas servem para representarem a descrição da área de atuação das

regras. As tabelas existentes por padrão são: filter, nat e mangle. Entretanto,

outras tabelas podem ser criadas. Por ex.: podemos criar uma tabela de nome

“internet” para podermos organizar as regras que tratam dos pacotes

relacionados especificamente à Internet.

• As chains representam as “cadeias” relacionadas ao tipo de roteamento do

pacote dentro da máquina Firewall. No iptables existem chains específicas

para cada tabela. Veja no quadro a seguir como elas são organizadas.

• As regras são diretrizes que servem de base para que o netfilter possa

determinar, considerando as informações do cabeçalho do pacote, a ação que

1 NAT – Network Address Translation ou “tradução de endereços de rede”. Segundo ALVES (2000), surgiu como forma de diminuir o problema de escassez de endereços IP válidos da rede pública. Isso porquê ele é um mecanismo que traduz endereços IP privados (não válidos) em IP válidos. Com isso, equipamentos de redes com endereços privados podem ter acesso à Internet.

Page 32: Monografia - Segurança de Redes (iptables)

32

deve ser tomada a ele. Tais regras se apresentam na forma: Tabela – Opção –

Chain – Parâmetros – Ação1.

Na tabela filter2 temos as chains INPUT, FORWARD e OUTPUT3. O nome filter está

relacionado com a filtragem padrão de dados do iptables. Ela não precisa necessariamente ser

especificada na linha de comando da regra, justamente pelo fato de ela ser a tabela “default”

do iptables. As chains têm um importante papel dentro do iptables. São elas que diferenciam

o destino dos pacotes dentro de sua chegada ao kernel da máquina Firewall. O significado de

cada uma delas, pode ser definido da seguinte forma:

• INPUT quer dizer “entrada”. No caso, trata da entrada de dados na própria

máquina onde roda o Firewall. Quando quisermos definir alguma regra para

filtragem de pacotes cujo destino seja a máquina Firewall, usamos esta chain.

• FORWARD quer dizer “repasse”. Está relacionada com o repasse de pacotes

que atravessam o Firewall. Quando uma estação da rede envia informações

para outra, as mesmas são repassadas pelo Firewall à estação de destino. Mas

antes, essas informações são filtradas por ele.

• OUTPUT quer dizer “saída”. Abrange os pacotes que saem da máquina

Firewall. Pode-se definir regras que restrinjam o tráfego de informações

provenientes da máquina Firewall.

Na Figura 3.3 é ilustrado o esquema lógico do fluxo de pacotes dentro do kernel

relacionados à tabela filter no iptables. Nela é possível se ter uma boa noção de como os

pacotes são classificados pelo netfilter, para que ele possa efetuar corretamente o seu

processamento. Os pacotes que chegam ao kernel, são analisados para que se constate o tipo

de roteamento a ser feito. Caso sejam destinados ao próprio Firewall, o netfilter analisa as

regras da chain INPUT e depois os encaminha para serem processados pelo processo local.

Caso destinem-se à outro host, o netfilter os compara às regras da chain FORWARD e após

isso, os destinam ao host especificado. Caso os pacotes sejam originados pelo próprio

Firewall, o netfilter os submete às regras da chain OUTPUT e só assim, os libera para saírem

da máquina.

1 Em sua definição correta, essa opção tem o significado de “alvo” (target), pois serve também para redirecionar a regra de uma chain para outra. Entretanto, será usado o termo “ação” como uma forma de facilitar seu entendimento, segundo descrito por RUSSELL (2001). 2 No iptables, as tabelas devem ser escritas em letras minúsculas. 3 As chains devem obrigatoriamente ser escritas em caixa alta. O mesmo acontece com as ações (DROP, ACCEPT, REJECT, MASQUERADE, DNAT, SNAT, REDIRECT, LOG, entre outras) e as opções (“-A”, “-R”, “-P”, etc.).

Page 33: Monografia - Segurança de Redes (iptables)

33

Figura 3.3: Fluxo de dados na tabela filter do iptables

Fonte: ERIBERTO, 2005

Na tabela nat existem também três chains: PREROUTING, POSTROUTING e

OUTPUT. O quê significam então as chains da tabela nat? Elas são definidas da seguinte

forma:

• PREROUTING é usado para permitir o roteamento de um pacote externo

quando entra no kernel, ou seja, quando há a necessidade de realizar um NAT

no endereço de destino do pacote (IP válido para endereço privado);

• POSTROUTING é usado para permitir o roteamento do pacote no momento

em que ele irá sair do kernel, ou seja, quando há um NAT no endereço de

origem do pacote (endereço privado para IP válido); e

• OUTPUT é a aplicação de um NAT no endereço IP da própria máquina

Firewall.

Na Figura 3.4 é ilustrado o esquema lógico do fluxo de dados dentro da tabela nat no

iptables. As decisões de roteamento são definidas pelo kernel, que destina os pacotes ao

destino especificado em seus cabeçalhos. Qualquer procedimento de NAT que seja necessário

antes da entrada no kernel, compete a chain PREROUTING. Já o NAT que deve ser feito

logo que o deixará, será processado pela chain POSTROUTING. Nos dois casos, são

utilizadas para o tratamento de pacotes que estão sendo encaminhados (forward). A chain

OUTPUT da tabela nat, está relacionada ao NAT dos pacotes que partem da própria máquina

Firewall.

Page 34: Monografia - Segurança de Redes (iptables)

34

Figura 3.4: Modelo de fluxo de dados na tabela nat do iptables

Fonte: ERIBERTO, 2005

No Quadro 3.1 são apresentadas as principais tabelas usadas no iptables e suas

respectivas chains.

Quadro 3.1: Estrutura de tabelas no iptables

TABLE CHAIN

INPUT

FORWARD Filter

OUTPUT

PREROUTING

POSTROUTING nat

OUTPUT

Há também os códigos que representam os itens que são considerados pelo Firewall

no seu processo de filtragem de pacotes. Esses códigos devem sempre ser escritos em letras

minúsculas. Os mais importantes para o foco deste trabalho são apresentados no Quadro 3.2.

Page 35: Monografia - Segurança de Redes (iptables)

35

Quadro 3.2: Códigos de parâmetros do iptables e respectivas definições

Código Descrição

-t Prefixo que define a tabela da qual a regra será associada

-p Prefixo que define o tipo de protocolo do pacote

-i Prefixo que define a interface de entrada

-o Prefixo que define a interface de saída

-s Prefixo que define o endereço IP de origem

-d Prefixo que define o endereço IP de destino

--sport Prefixo que define a porta de origem do pacote

--dport Prefixo que define a porta de destino do pacote

-j Prefixo que define o tipo de ação a ser tomada

! Exclusão de argumento (todos exceto...)

A estrutura lógica da linha de comando do iptables são as que foram descritas acima.

Porém, existe mais um item fundamental dela que é o das opções, o qual será discutido na

Subseção 3.5.2, que trata de diversas funções de gerenciamento do iptables.

3.7.2 Opções do iptables

A sintaxe de um comando do iptables segue determinados parâmetros. Esses

parâmetros, servem para informar claramente qual é o tipo de filtragem que o netfilter deverá

submeter o pacote. Tais parâmetros já foram parcialmente descritos na subseção anterior.

Contudo, é necessário que se conheça um de seus principais: o parâmetro opções.

Para melhor entendê-las, o Quadro 3.3 auxilia na descrição de quais são as opções

possíveis para o iptables e suas respectivas definições:

Page 36: Monografia - Segurança de Redes (iptables)

36

Quadro 3.3: Opções do iptables e seus significados

Opção Descrição

-A Insere uma nova regra na tabela especificada (Add)

-P Define uma regra padrão para determinada chain de determinada tabela

-D Apaga uma regra (Delete)

-F Apaga todas as regras de uma determinada tabela ou chain (Flush)

-L Lista as regras de uma determinada tabela (List)

-R Substitui uma regra (Replace)

-I Insere uma regra em uma linha específica (Insert)

-X Exclui uma chain especial ou todas as contidas numa tabela (eXclude)

-N Cria uma nova regra dando um nome a ela (Name)

-Z Zera os contadores de uma tabela ou chain específica (Zero)

-E Renomeia uma chain (Edit)

-C Faz uma checagem das regras existentes (Check)

-h Exibe tópicos de ajuda

Essas opções implementam a criação de regras no iptables. Veja na figura 3.5 o

exemplo de uma linha de comando básica que pode ser definida em sua utilização. Neste

exemplo, o comando diz para adicionar (opção “-A”) uma regra definindo que todos os

pacotes cujos protocolos (parâmetro “–p”) orientados à conexão (TCP) e que têm como

destino a própria máquina Firewall (chain “INPUT”), serão descartados (ação “DROP”),

conforme determinado pelo prefixo “-j”.

Page 37: Monografia - Segurança de Redes (iptables)

37

Figura 3.5: Exemplo de uma regra do iptables1

# iptables –t filter –A OUPUT –o eth0 –p udp –d 10.0.0.15 –dport 37 –j ACCEPT

Neste outro, pede-se que os pacotes que entrarem pela interface (eth0), não orientados

à conexão (UDP), com destino ao endereço IP (10.0.0.15), porta de destino (37) e que saírem

da própria máquina Firewall (OUTPUT), sejam aceitos (ACCEPT).

3.7.3 Tradução de endereços de rede (NAT)

A tradução de endereços de rede ou Network Address Translation (NAT) é um

conjunto de procedimentos que um roteador (ou equipamento equivalente) deve realizar para

converter endereços IP entre redes distintas, como definido por APLINUX (2005).

Um equipamento que possua o recurso de NAT deve ser capaz de analisar todos os

pacotes de dados que passam por ele e fazer a conversão do endereço deles de forma

adequada. O iptables tem, além dos recursos de filtragem mostrados até agora, um ótimo

suporte ao recurso de NAT.

Vamos considerar a implementação de uma rede contendo quatro estações que estão

ligadas à uma máquina que roda o sistema Linux com versão acima de 2.4.x e com o Firewall

iptables. Lembrando que devemos permitir que as quatro estações acessem a Internet e que

somente a máquina que servirá como Firewall está ligada a um modem / roteador de acesso à

Internet. 1 Existe a possibilidade de salvar as regras do iptables que estiverem registradas na memória. O comando necessário é o iptables-save. Usa-se “#iptables-save > nome_do_arquivo”. Para se restaurar as regras de um arquivo gerado anteriormente, usa-se o comando iptables-restore. Para tal, deve ser digitado “#iptables-restore nome_do_arquivo”.

Page 38: Monografia - Segurança de Redes (iptables)

38

Temos como exemplo os IPs 10.0.15.2 a 10.0.15.5 como sendo os endereços das

quatro estações desta rede. Esses IPs não são válidos na Internet. São IPs privados, por isso

não podem ser roteados na Internet. A máquina Firewall possui dois endereços IPs: 10.0.15.1

da rede local e 200.107.231.16 da conexão com a Internet, atribuídos às interfaces eth0 e eth1

respectivamente.

Para que tais estações possam ter acesso à Internet, a máquina Firewall que

gerenciam-nas deve realizar um NAT para seus endereços. Isso permitirá que o endereço IP

não-válido de cada uma delas (10.0.15.2 a 10.0.15.5) seja traduzido para o endereço IP válido

da conexão com a Internet da máquina Firewall (200.107.231.16). Entretanto, esse processo

de troca de endereço deve ser feito nas duas vias: saída e retorno. Porém, podem também

ocorrer solicitações à um mesmo host remoto por duas ou mais estações distintas. Esse caso

só é possível graças o recurso NAT possuir uma propriedade que não permite que haja

redundâncias ou conflitos de re-endereçamento. Isso porque ele cria temporariamente em

memória, uma tabela vinculada de registro de endereços1 que conterá a relação exata dos

endereços IPs e porta de origem de cada host e sua associação com o endereço IP e porta de

destino, de maneira que ele possa assim rotear de forma precisa os pacotes de dados que

retornarem desse host para as respectivas estações, garantindo que a elas retornem exatamente

os pacotes que e de onde foram solicitados. Essa importante propriedade é também

implementada pelo netfilter.

O funcionamento desse recurso no iptables é de fácil compreensão. Um exemplo: uma

estação de rede envia uma solicitação de conexão à um host remoto. Esse host, contudo, não

faz parte de sua rede mas seu endereço IP é válido na Internet. O netfilter, então, faz a troca

do endereço IP e porta de origem contidos no cabeçalho do pacote vindo desta estação para o

endereço IP válido e porta disponíveis pela sua conexão com a Internet. Ele então grava as

informações de roteamento desse pedido na tabela vinculada de registro de endereços

(privados e públicos) citada no parágrafo anterior. Assim que o host remoto enviar a resposta

àquela solicitação, o netfilter checa na mesma tabela vinculada de registro de endereços se

consta uma solicitação válida registrada nela. Caso conste, ele reescreve o cabeçalho do

pacote alterando o par (endereço público e porta) para o par (endereço privado e porta)

relacionados na tabela, encaminhando assim para a estação de destino correta. Caso não

conste, ele simplesmente descarta o pacote. 1 Qualquer tentativa de conexão vinda de um host remoto que chegue na máquina Firewall é analisada pelo netfilter, que usará como referência a tabela vinculada de registro de endereços para tomar a decisão de roteamento apropriada. Sendo assim, o recurso NAT do netfilter por si só, torna a segurança da rede (por controle de filtragem de pacotes) muito forte.

Page 39: Monografia - Segurança de Redes (iptables)

39

Os dados que o netfilter memoriza na tabela vinculada de registro de endereços são

suficientes para ele saber exatamente qual estação fez o pedido e à qual host foi enviado o

pacote, possibilitando que, após a resposta, seja alterado o endereço IP e porta de destino do

pacote vindo do host remoto. Esse endereço, que na verdade era seu próprio IP válido, será

alterado no processo de NAT para o IP da estação solicitante.

Um exemplo de como é feito o procedimento de vinculação do endereço IP privado e

porta de uma estação da rede com o endereço IP público da conexão com a Internet e porta

reescritos durante o processo de NAT, pode ser verificado a partir dos quadros A1 e A2,

contidos no Apêndice A. O Firewall realiza, durante o processo de tradução de endereços

(NAT), a edição do cabeçalho do pacote TCP/IP modificando o endereço IP de origem (IP

privado) para o seu endereço IP de conexão com a Internet (IP público). Modifica também a

porta de origem, atribuída ao pacote no momento em que ele deixa a estação para uma porta

aleatória e disponível no próprio host Firewall.

Nesse momento, o recurso NAT do netfilter, registra esses dados na tabela vinculada

de registro de endereços, conforme citado anteriormente, vinculando o endereço IP e porta de

origem com o endereço IP e porta modificados por ele. Quando um pacote TCP/IP, que

contém em seu cabeçalho o endereço IP de destino de sua conexão com a Internet, ele

imediatamente consulta a tabela vinculada de registro de endereços e, caso haja também uma

associação com alguma porta relacionada na mesma, ele então confere se o endereço de

origem desse pacote é o mesmo que foi solicitado pela estação de origem. Caso todas as

condições tenham sido satisfeitas, o netfilter efetua a tradução de endereços (NAT) contrária,

encaminhando em seguida tal pacote exatamente à estação que o solicitou anteriormente.

Caso alguma dessas condições não seja satisfeita, o netfilter simplesmente descarta o pacote.

Outra opção muito importante associada ao recurso NAT é a de mascaramento. O IP

Masquerading, é uma função também existente na tabela nat do iptables mas se difere das

funções SNAT e DNAT por elas exigirem a especificação do endereço IP válido do gateway

para permitir o acesso das estações da rede à Internet. Assim, caso o IP seja dinâmico, as

regras de mascaramento do Firewall não têm a necessidade de serem alteradas.

3.8 Considerações finais

Estabelecendo um paralelo entre a necessidade da segurança e a proposta de solução

associada ao uso de uma ferramenta Firewall, chega-se a uma definição dos fatores que

Page 40: Monografia - Segurança de Redes (iptables)

40

resultaram na adoção do sistema operacional Linux e seu aplicativo de filtragem de pacotes

iptables, como parte integrante da implementação de uma rede segura. O aplicativo Firewall

abordado neste capítulo será discutido com mais ênfase no Capítulo 4, onde serão

apresentados os conceitos e noções de funcionamento teórico / prático, que devem trazer um

entendimento mais objetivo ao que este estudo se propõe.

Page 41: Monografia - Segurança de Redes (iptables)

41

4 ESTUDO EXPERIMENTAL

4.1 Considerações iniciais

Neste capítulo será apresentada toda a fase de testes e experimentos desenvolvidos a

partir da análise do contexto, levantamento de requisitos, definição do problema e emprego

das técnicas para resolução do mesmo. O estudo experimental tem por finalidade fazer o uso

da ferramenta proposta pelo trabalho de modo a alcançar uma compreensão conclusiva a

respeito de sua importância, bem como quais foram exatamente os resultados obtidos durante

a fase de aplicação prática das teorias neste apresentadas.

A seguir, serão mostrados alguns conceitos importantes antes da aplicação

propriamente dita, que servirão como parâmetro para um melhor entendimento do que

realmente este estudo se propõe a mostrar.

4.2 Características da rede adotada

Nessa fase de estudo de caso, levou-se o entendimento de que um modelo de rede que

representasse um bom exemplo de rede corporativa, servindo como base para o

aproveitamento das técnicas de segurança via Firewall estudadas a partir deste trabalho, teria

que abranger seus principais aspectos. Sendo assim, foi considerada uma rede, de maneira

hipotética, com os seguintes aspectos:

1. 7 (sete) estações de trabalho com 1 (uma) placa de rede ethernet cada;

2. 1 (um) servidor rodando os serviços (FTP, SSH, Web e e-mail);

3. 1 (um) concentrador (hub ou switch);

4. 1 (um) microcomputador com sistema operacional Linux, 2 (duas) placas de rede

ethernet, kernel 2.4.x ou mais recente e iptables 1.3.x ou mais recente que será

também o gateway desta rede; e

5. Conexão com a Internet ligada a uma das interfaces da máquina acima.

Dentro deste modelo, serão relacionadas quais as configurações necessárias para se

garantir a segurança desta rede, permitir a comunicação entre as 5 estações da rede, o acesso

delas à Internet, o compartilhamento dos serviços do servidor (SSH, FTP, Web e e-mail) e

algumas variações dentro desse contexto favorecendo ao entendimento dos recursos

disponíveis pelo Firewall.

Page 42: Monografia - Segurança de Redes (iptables)

42

Na Figura 4.1 é apresentado visualmente o modelo de rede adotada. Nesse modelo,

apresentam-se as 7 estações da rede local, um servidor de serviços (Web, FTP, SSH e e-mail),

a máquina Firewall, um switch, um roteador ADSL e a Internet. As estações locais, servidor

de serviços e o Firewall, se interligam por meio do switch. O Firewall também está conectado

ao roteador ADSL, responsável pela comunicação do mesmo com a Internet.

Figura 4.1: Ilustração do modelo de rede adotada neste estudo

4.3 Parâmetros e requisitos levantados

Seguindo as características idealizadas para a rede em questão, foi realizado o

levantamento de quais seriam os itens que deveriam ser implementados nas regras de

filtragem do Firewall. Dessa forma, é que se pode ter a exata dimensão de como os

parâmetros, que estabelecem como deverão comportar o fluxo de dados da rede e as políticas

de segurança, caracterizarão a lógica da elaboração das regras do Firewall.

Este estudo leva também à reflexão de condições que podem não se mostrar

unicamente restritas ao panorama que foi adotado como exemplo. Portanto, algumas variantes

serão apresentadas somente a título de conhecimento.

As regras que irão compor o esquema de proteção do Firewall netfilter devem garantir

algumas diretrizes básicas. Essas diretrizes precisam ser levantadas antes de se iniciar a

configuração de um Firewall.

Page 43: Monografia - Segurança de Redes (iptables)

43

Primeiramente, será descrito aqui como seriam as condições dentro dessa rede. Por

fim, serão apresentadas as regras que foram determinadas a fim de suprirem essas condições.

A rede, como já descrito na Seção 4.1, possui 8 terminais sendo um servidor de

serviços e sete estações de trabalho comuns. A máquina Firewall servirá como gateway da

rede com a Internet pois possui conexão com ela através da interface “ppp0”. O nome dado à

interface que a liga com a rede local é “eth0”. O IP atribuído à esta conexão, porém, é um IP

dinâmico, ou seja, é alterado a cada nova conexão. Cada estação possui uma interface de rede

intitulada com o nome “eth0”.

Os requisitos obtidos na análise deste contexto são:

• A rede precisa ser defendida contra os tipos de ataques mais conhecidos;

• Deve-se liberar o procedimento de troca do endereço IP privado do Firewall

para o IP válido, no momento em que ele se conecta com a Internet.

• O número de pacotes que chegam à ela por meio do procedimento de

checagem de host presente na mesma rede (ping), deve ser limitado de modo

a não sobrecarregar a conexão nem o sistema;

• Filtrar os dados vindos da Internet de forma isolada;

• Permitir que as estações da rede acessem os seguintes serviços disponíveis

na Internet (Web, https e e-mail);

• No servidor há também os serviços (SSH e FTP) que devem ser

disponibilizados para as estações locais;

• Gerar um registro das conexões não autorizadas;

• Descartar essas conexões não autorizadas com destino às estações da rede

(conexões que não foram geradas a partir delas); e

• Descartar todos os outros tipos de conexões com destino ao Firewall1.

4.4 Solução proposta

De acordo com os requisitos levantados e relacionados na seção anterior, buscou-se o

desenvolvimento de uma aplicação prática das teorias estudadas e que tem por finalidade

alcançar uma conclusão de qual maneira ideal deveria ser implementado o Firewall em

questão através das técnicas possibilitadas pelo mesmo.

1 Para que se tenha uma segurança na rede é necessário antes de tudo, que a máquina Firewall não esteja vulnerável. Assim, devemos também criar regras que proteja a ele próprio contra as adversidades que podem ocorrer e que comprometeriam a segurança de toda a rede

Page 44: Monografia - Segurança de Redes (iptables)

44

Nas próximas subseções, tais requisitos serão traduzidos para a linguagem do

Firewall, através do interpretador de comandos iptables. Todas as regras pertinentes aos

parâmetros e requisitos citados anteriormente, foram formuladas para que se garantisse a

funcionalidade da rede considerada como modelo experimental. Por esse motivo, quaisquer

outras possibilidades envolvendo regras de filtragem não relacionadas neste trabalho, estarão

descartadas por não terem sido consideradas na proposta abordada.

Nessa nova fase, as atividades realizadas são o fruto do entendimento absorvido até o

momento, diante das pesquisas conferidas em diversas fontes e posterior aprendizado em

relação ao tema proposto.

• Definir a política padrão de filtragem com a ação de (descartar) o que não

constar nas regras de liberação;

• Proteger a conexão de entrada contra port scanners, trace routers, ataques e

pacotes fragmentados;

• Restringir o número de pacotes icmp (ping) em 2 pacotes por segundo vindos

da interface ligada à Internet;

• Tratar as conexões de entrada pela interface ligada à Internet em uma chain à

parte;

• Liberar a alteração via NAT do IP privado referente à conexão PPPoE antes

de ser atribuído o IP válido pelo provedor de acesso à Internet;

• Habilitar o roteamento de pacotes entre a rede local e a Internet;

• Liberar acesso da rede local à Internet pelas portas 80 (Web), 443 (https),

110 (POP3), 25 (SMTP) e 53 (DNS) através do mascaramento de seus

respectivos endereços IPs;

• Permitir, via NAT, a disponibilização na Internet dos serviços do servidor da

rede (Web e e-mail);

• Logar tentativas de conexão não autorizadas utilizando a função (-j LOG);

• Descartar acessos não-autorizados às estações da rede; e

• Descartar demais conexões relacionadas ao recurso NAT.

Page 45: Monografia - Segurança de Redes (iptables)

45

4.4.1 Ativando módulos do iptables

Antes de partirmos para a configuração das regras no iptables, devemos ativar os

módulos responsáveis pelo seu funcionamento de acordo com nossa necessidade. Alguns

deles vêm ativados por default em várias distribuições GNU/Linux. Mas, pra garantir,

devemos saber como ativá-los.

Ativando o módulo principal do iptables: # modprobe ip_tables

Ativando os módulos das tabelas filter e nat: # modprobe iptable_filter

# modprobe iptable_nat

Ativando o módulo reject: # modprobe ipt_REJECT

Ativando o módulo multiport: # modprobe ipt_multiport

Ativando o módulo responsável pelo mascaramento da conexão: # modprobe ipt_MASQUERADE

Ativando o módulo gerador de log do iptables: # modprobe ipt_LOG

Nesse momento, os módulos do iptables necessários à configuração do Firewall

exemplo, já estão ativos. Agora é preciso que as tabelas e chains sejam preparadas para

receber as regras que devem atender aos requisitos levantados anteriormente.

4.4.2 Preparando as tabelas e chains

Algumas configurações devem ser feitas antes de começarmos efetivamente a

implantar as regras que correspondem aos requisitos levantados anteriormente. Essas

Page 46: Monografia - Segurança de Redes (iptables)

46

configurações são destinadas somente à fase inicial da implementação da segurança através

do Firewall. Nessa fase, devem ser realizados os procedimentos de preparação das tabelas e

chains do iptables antes da atribuição das regras, considerando também que o mesmo poderia

possuir regras atribuídas anteriormente.

Limpando regras residuais das tabelas filter e nat: # iptables –t filter –F

# iptables –t nat –F

Zerando os contadores das tabelas: # iptables –t filter –Z

# iptables –t nat –Z

Definindo as políticas de filtragem a cada uma das chains das tabelas filter e nat. Essas

políticas têm o intuito de descartar tudo o que não se enquadrar na lista de regras individuais

definidas para cada uma de suas respectivas chains: # iptables –t filter –P INPUT DROP

# iptables –t filter –P FORWARD DROP

# iptables –t filter –P OUTPUT DROP

# iptables –t nat –P POSTROUTING DROP

# iptables –t nat –P PREROUTING DROP

# iptables –t nat –P OUTPUT DROP

Nesse instante, o iptables já está preparado para ser utilizado para atender estritamente

às necessidades da rede do exemplo proposto. Feito isso, deve-se implementar a criação das

regras de acordo com o que é preciso liberar ou bloquear.

4.4.3 Construção das regras necessárias

Em relação ao que foi proposto pela rede exemplo deste trabalho, foi realizado o

levantamento de requisitos para se saber o que deve ser feito por meio do Firewall para que a

rede possua as funcionalidades das quais necessita, sendo garantida a sua segurança. Sugeriu-

se então a solução proposta para que todas as exigências fossem cumpridas. Com isso, as

configurações necessárias para se garanta o funcionamento de forma segura desta rede, serão

vistas nesta subseção.

Page 47: Monografia - Segurança de Redes (iptables)

47

Criando a chain relacionada “ppp-input” que tratará os pacotes que entrarem pela interface

ppp0: # iptables –t filter –N ppp-input

As regras a seguir correspondem às regras tabela filter com as chains (INPUT,

FORWARD, ppp-input e OUTPUT). Algumas regras que não condizem estritamente às

necessidades apontadas durante a fase de levantamento de requisitos, foram criadas somente a

título de auxílio ou da abordagem de sua aplicação prática.

INPUT

Criando uma referência na chain INPUT para que os pacotes vindos da Internet sejam

analisados separadamente pela chain “ppp-input”: # iptables –t filter –A INPUT –i ppp0 –j ppp-input

Aceitando conexão “loopback” de entrada do Firewall à ele mesmo: # iptables –t filter –A INPUT –i lo –j ACCEPT

Pacotes TCP e UDP que tem como destino o Firewall são aceitos caso apresentarem o estado

de conexão (estabelecida e relacionada), ou seja, caso já exista uma conexão estabelecida ou

relacionada à uma outra, feita a partir dele anteriormente: # iptables –t filter –A INPUT –p tcp –m state --state ESTABLISHED,RELATED –j ACCEPT

# iptables –t filter –A INPUT –p udp –m state --state ESTABLISHED,RELATED –j ACCEPT

Aceitando pacotes ICMP (ping) com tolerância de um pacote por segundo (proteção contra

“ping-da-morte”): # iptables –t filter –A INPUT –p icmp –m limit --limit 1/s –j ACCEPT

FORWARD

Primeiramente, deve-se habilitar a função de repasse de pacotes no kernel: # echo “1” > /proc/sys/net/ipv4/ip_forward

Aceitando pacotes ICMP (ping) com tolerância de pacotes por tempo (dois por segundo): # iptables –t filter –A FORWARD –p icmp –s 192.168.5.0/24 –m limit --limit 2/s –j ACCEPT

Page 48: Monografia - Segurança de Redes (iptables)

48

Liberando o repasse de pacotes entre as interfaces ppp0 e eth0 e registrando os dados do

tráfego referente à elas. As portas (25, 80, 110 e 443) referem-se respectivamente aos serviços

de (SMTP, HTTP, POP3 e HTTPS) que devem estar disponíveis para a rede local: # iptables –t filter –A FORWARD –i eth0 –o ppp0 –p tcp –m multiport --dports 20,21,22,25,80,110,443 –j ACCEPT

# iptables –t filter –A FORWARD –d 192.168.5.0/24 –i ppp0 –o eth0 –m state --state ESTABLISHED,RELATED –j ACCEPT

# iptables –t filter –A FORWARD –j LOG --log-prefix "FIREWALL: FORWARD "

Liberando envio de mensagens (net send) entre as estações da rede: # iptables –t filter –A FORWARD –i eth0 –p udp –m multiport --dports 135, 137, 138 –j

ACCEPT

# iptables –t filter –A FORWARD –i eth0 –p tcp –m multiport --dports 135, 139, 445 –j

ACCEPT

Liberando acesso ao servidor FTP e SSH à todas as estações da rede: # iptables –t filter –A FORWARD –p tcp –s 192.168.5.0/24 –d 192.168.5.2 --dport 20 –j

ACCEPT

# iptables –t filter –A FORWARD –p tcp –s 192.168.5.0/24 –d 192.168.5.2 --dport 21 –j

ACCEPT

# iptables –t filter –A FORWARD –p tcp –s 192.168.5.0/24 –d 192.168.5.2 --dport 22 –j

ACCEPT

OUTPUT

Conexões TCP e UDP que forem originadas pelo Firewall são aceitas: # iptables –t filter –A OUTPUT –p tcp –m state --state NEW,ESTABLISHED,RELATED –j

ACCEPT

# iptables –t filter –A OUTPUT –p udp –m state --state NEW,ESTABLISHED,RELATED –j

ACCEPT

Aceitando conexão “loopback” de saída do Firewall à ele mesmo: # iptables –t filter –A OUTPUT –o lo –j ACCEPT

Page 49: Monografia - Segurança de Redes (iptables)

49

ppp-input

Estabelecendo um limite para o número de pacotes “ping” (um por segundo) vindos da

Internet: # iptables –t filter –A ppp-input –p icmp –m limit --limit 1/s –j ACCEPT

Registra tentativas de conexão não-autorizadas vindas da Internet: # iptables –t filter –A ppp-input –p udp --dport 53 –j LOG --log-prefix "FIREWALL: dns "

# iptables –t filter –A ppp-input –p tcp --dport 113 –j LOG --log-prefix "FIREWALL: identd "

# iptables –t filter –A ppp-input –p udp --dport 111 –j LOG --log-prefix "FIREWALL: rpc "

# iptables –t filter –A ppp-input –p tcp --dport 111 –j LOG --log-prefix "FIREWALL: rpc "

# iptables –t filter –A ppp-input –p tcp --dport 137:139 –j LOG --log-prefix "FIREWALL:

samba "

# iptables –t filter –A ppp-input –p udp --dport 137:139 –j LOG --log-prefix "FIREWALL:

samba "

As regras a seguir correspondem às regras tabela nat com as chains (POSTROUTING,

PREROUTING e OUTPUT).

POSTROUTING

Mascaramento de IP liberando conexão da rede local para a Internet com restrição aos

serviços (SMTP, POP3, HTTP e HTTPS): # iptables –t nat –A POSTROUTING –p tcp –m multiport --dports 25,80,110,443 –s

192.168.5.0/24 –o ppp0 –j MASQUERADE

PREROUTING

Liberando conexão da rede local à Internet limitada aos serviços (SMTP, POP3, HTTP e

HTTPS): # iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 200.140.2.45 --dport 25 –j SNAT --to

192.168.5.2:25

# iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 192.168.5.2 --dport 25 –j ACCEPT

# iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 200.140.2.45 --dport 80 –j SNAT --to

192.168.5.2:80

# iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 192.168.5.2 --dport 80 –j ACCEPT

# iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 200.140.2.45 --dport 110 –j SNAT --to

192.168.5.2:110

# iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 192.168.5.2 --dport 110 –j ACCEPT

Page 50: Monografia - Segurança de Redes (iptables)

50

# iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 200.140.2.45 --dport 443 –j SNAT --to

192.168.5.2:443

# iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 192.168.5.2 --dport 443 –j ACCEPT

Registrando todas as outras tentativas externas de conexão às estações locais: # iptables –t nat –A POSTROUTING –o eth0 –d 192.168.5.0/24 –j LOG --log-prefix

"FIREWALL: SNAT unknown "

Por fim, para que as estações da rede tenham o Firewall como seu gateway de rede, é

necessário fazer a seguinte configuração em cada uma delas: # route add default gw 192.168.5.1

Todas as regras contidas neste subitem, estão relacionadas em um arquivo script,

criado para ser executado na inicialização do sistema ou então por meio da simples ativação

do mesmo pelo administrador do Firewall. Esse arquivo script pode ser visualizado no

Apêndice C deste trabalho.

4.5 Testes realizados

Durante a fase de testes, foram realizados experimentos relacionados à utilização do

Firewall, abordado a partir do Capítulo 3. Esses testes basearam-se em diversos tipos de

possibilidades, além das que foram determinadas pela solução apresentada ao modelo de rede

proposto. O experimento foi possibilitado por meio da utilização da rede de computadores do

laboratório 8, localizado na instituição de ensino Barão de Mauá.

Page 51: Monografia - Segurança de Redes (iptables)

51

Figura 4.2: Ilustração da topologia da rede testada

Fazendo uso de um computador munido do sistema operacional GNU/Linux Debian

3.1, iptables 1.3.1, presente no kernel 2.4.27, levaram-se em consideração alguns dos fatores

mais comuns envolvidos na implementação de um Firewall em redes de computadores. Os

testes foram realizados juntamente com outros dois computadores (representantes da rede), os

quais estavam guarnecidos com os sistemas Windows 2000 e Debian 3.1.

As especificações e configurações dos computadores integrantes desta rede, estavam

estabelecidas conforme o Quadro 4.1. A representação da topologia da mesma pode ser

observada mediante a Figura 4.2.

Quadro 4.1: Configurações da rede testada

Host Endereço IP Interfaces Sistema Operacional Gateway padrão

Firewall 10.0.0.23

200.144.151.25 eth0, eth1 GNU/Linux Debian 3.1 192.168.1.11

Estação 1 10.0.0.25 eth0 GNU/Linux Debian 3.1 10.0.0.23

Estação 2 10.0.0.26 eth0 Windows 2000 10.0.0.23

TESTE 1: Configurou-se uma regra que descarta quaisquer pacotes ICMP oriundos

da Estação 2 da rede. A seguir, a regra foi modificada para rejeitar tais pacotes emitindo uma

mensagem de resposta especificando que a rede de destino não foi alcançada. As seguintes

regras foram configuradas: # iptables –t filter –A INPUT –i eth0 –s 10.0.0.26 –p icmp –j DROP

# iptables –t filter –D INPUT 1

Page 52: Monografia - Segurança de Redes (iptables)

52

# iptables –t filter –A INPUT –i eth0 –s 10.0.0.26 –p icmp –j REJECT --reject-with icmp-port-

unreachable

Resultado obtido: Realizando-se um teste ping a partir da Estação 2, as mensagens de erro

apresentadas referentes às regras estão relacionadas no Apêndice D. O teste ping mostrou que

o Firewall realmente não aceitou os pacotes.

TESTE 2: Foi configurada uma regra que bloqueia conexões da Estação 2 à porta 22

com status NEW, ou seja, quando há uma tentativa de nova conexão do host com destino ao

Firewall. A regra configurada foi a seguinte: # iptables –A INPUT –p tcp –s 10.0.0.26 --dport 22 –m state --state NEW –j DROP

Resultado obtido: Ao tentar realizar uma conexão por meio do cliente SSH a partir da

Estação 2, não se obteve êxito. Tentou-se então, realizar uma conexão a partir do Firewall

para a Estação 2 utilizando a mesma porta do serviço SSH (22), resultando em êxito. O teste

de conexão via SSH mostrou que o Firewall recusou a nova conexão originada pelo cliente

SSH da Estação 2 e permitiu que a conexão de saída a partir do Firewall fosse realizada sem

problemas. A mensagem de erro apresentada à Estação 2 foi: “Network error: Connection

timed out”.

TESTE 3: Configurou-se uma regra para registrar em log as tentativas de acesso à

porta 80 a partir da Estação 1. Em seguida, criou-se outra regra a fim de descartar qualquer

tentativa de acesso à porta 80 originada pela mesma. As regras configuradas foram: # iptables –A INPUT –p tcp –s 10.0.0.25 --dport 80 –j LOG –log-prefix “FIREWALL:

Conexões HTTP “

# iptables –A INPUT –p tcp –s 10.0.0.25 --dport 80 –j DROP

Resultado obtido: Realizaram-se tentativas de conexão usando o protocolo HTTP, não

obtendo sucesso. As mensagens registradas foram gravadas no arquivo (/var/log/messages) e

constam no Apêndice E. O teste mostrou que a conexão feita a partir da estação configurada

na regra, foi realmente bloqueada e registrada em log, seguindo os critérios estabelecidos no

Firewall.

TESTE 4: Implementou-se uma regra que visa compartilhar a conexão da máquina

Firewall para as estações da rede. Para tanto, elas deveriam possibilitar o mascaramento da

Page 53: Monografia - Segurança de Redes (iptables)

53

conexão com a Internet estabelecida pelo gateway e atribuída à interface (eth1), para as

estações da rede. Adicionalmente, foi liberado (aceito) o estabelecimento de novas conexões

entre as interfaces eth0 e eth1, originadas a partir das estações da rede. As regras configuradas

foram:

# iptables –t nat –A POSTROUTING –s 10.0.0.0/24 –o eth1 –j MASQUERADE

# iptables –A FORWARD –s 10.0.0.0/24 –i eth0 –o eth1 –m state --state NEW –j ACCEPT

Resultado obtido: Realizaram-se várias tentativas de conexão com a Internet a partir das

duas estações da rede. Obteve-se êxito em todas elas. Foram feitos testes de navegação

usando a porta 80 (HTTP), consulta de e-mails usando a porta 110 (POP3), acesso a um host

remoto por meio da porta 22 (SSH). Todas foram executadas sem problemas.

4.6 Considerações finais

Como visto em todo o capítulo, quanto melhor for o planejamento usando o

levantamento de requisitos, melhor será a confiabilidade da rede amparada pelo Firewall. O

sucesso da implementação de uma rede segura por meio deste recurso, depende unicamente

de uma boa previsão de incidentes e uma cuidadosa interpretação dos fatores que devem ser

considerados para que se garanta a disponibilização de acesso, recursos e serviços dos quais

uma organização pode necessitar.

A facilidade de utilização do aplicativo iptables e a intuitiva organização dos

elementos de composição das regras, se caracterizam como fatores bastante positivos e em

conformidade à sua ampla funcionalidade.

De uma maneira geral, foram apresentadas algumas das mais relevantes situações que

comumente se encontram num contexto de rede. Em uma empresa que deseja proteger seus

dados, expandir suas possibilidades de conexão, diminuir o uso de recursos que geram gastos,

eliminar boa parte das atitudes de combate a incêndio e manter-se com uma boa segurança, o

uso de um aplicativo Firewall é muito importante.

Com o estudo realizado e descrito nas seções que compõem este capítulo, espera-se

alcançar uma evolução do conhecimento relacionado a esse tema, principalmente por terem

sido abordadas de forma pertinente, algumas das informações essenciais para sua total

compreensão.

Page 54: Monografia - Segurança de Redes (iptables)

54

CONCLUSÕES

Em virtude das adversidades constantes às quais são submetidas as redes de

computadores, surgiu-se a necessidade de abordar neste trabalho a utilização e as

características de uma das ferramentas mais importantes na busca pelo combate dos

problemas existentes nesse contexto, originados geralmente por terceiros, como é o caso dos

hackers, crackers, e outros indivíduos com comportamentos análogos.

Este estudo mostrou as características para se implementar uma rede segura e buscou

um entendimento de quais parâmetros devemos considerar nessa implementação.

Os testes realizados comprovaram a eficiência do aplicativo iptables, que é a interface

do usuário com o fremework Firewall nativo do kernel Linux (netfilter), dentro dos

parâmetros e do nível de complexidade dos testes descritos e tomados como exemplo. Não

foram realizados testes de caráter avançado por não estarem dentro do intuito do estudo

proposto, o qual visa apenas uma compreensão teórica no que tange ao princípio de

funcionamento de um aplicativo Firewall no sistema operacional.

Concluiu-se por meio deste estudo, que o Firewall iptables pode se comportar de

maneira muito eficiente e estável, mas, mesmo com seus poderosos recursos, não pode ser

utilizado como única forma de proteção contra intrusões, já que não é possível somente com o

mesmo, realizar um controle mais apurado das informações por ele analisadas.

Um fator que influencia nessa limitação é que o iptables não possui como padrão a

propriedade de verificar o conteúdo dos pacotes e por isso é incapaz de conseguir determinar

a existência de códigos maliciosos dentro dos pacotes de dados, apesar de já existirem

módulos (add-ons) que podem ser carregados no kernel e que se dispõem a resolverem esse

problema. Isso ocorre em razão da invasão de privacidade, caracterizada pelo acesso ao

conteúdo das informações que são gerenciadas pelo Firewall. Mesmo assim, o objetivo ao

qual o aplicativo iptables se propõe a alcançar, é atingido com boa eficácia, principalmente

pela rápida e simples interação do mesmo com o kernel do sistema Linux.

As lições aprendidas durante este estudo, apresentam-se com toda certeza, como algo

que propiciou a reflexão de uma gama de fatores que devem ser considerados na questão da

segurança de redes. Portanto, este trabalho é importante não só no que diz respeito ao tema

abordado, mas sobretudo, à todas as outras informações que integram a parte teórica,

necessária para a sustentação de seu foco principal.

Page 55: Monografia - Segurança de Redes (iptables)

55

APÊNDICE A

Princípio de funcionamento relacional da tabela vinculada de registro de endereços do recurso NAT

Quadro A 1: Exemplo de uma tabela vinculada de registro de endereços no recurso NAT

do netfilter relativa ao pós-roteamento

IP privado / porta (postrouting) IP traduzido / porta (postrouting)

origem 192.168.5.4

destino 148.32.69.47

1455

80

200.140.2.45

148.32.69.47

1645

80

origem

destino

192.168.5.19

43.68.32.15

2978

25

200.140.2.45

43.68.32.15

1648

25

origem

destino

192.168.5.2

193.242.36.54

1296

22

200.140.2.45

193.242.36.54

1652

22

origem

destino

192.168.5.63

200.187.175.70

3754

110

200.140.2.45

200.187.175.70

1661

110

origem

destino ... ... ... ...

Quadro A 2: Exemplo de uma tabela vinculada de registro de endereços no recurso NAT do netfilter relativa ao pré-roteamento

IP privado / porta (prerouting) IP traduzido / porta (prerouting)

origem

destino

148.32.69.47

200.140.2.45

80

1645

148.32.69.47

192.168.5.4

80

1455

origem

destino

43.68.32.15

200.140.2.45

25

1648

43.68.32.15

192.168.5.19

25

2978

origem

destino

193.242.36.54

200.140.2.45

22

1652

193.242.36.54

192.168.5.2

22

1296

origem

destino

200.187.175.70

200.140.2.45

110

1661

200.187.175.70

192.168.5.63

110

3754

origem

destino ... ... ... ...

Page 56: Monografia - Segurança de Redes (iptables)

56

APÊNDICE B

Modelo ISO/OSI

“O modelo Open System Interconnect (OSI) foi criado em 1977 pela International

Organization for Standardization (ISO) com o objetivo de criar padrões de conectividade

para a interligação de sistemas de computadores, as redes de computadores.” (ALVES,

2000, pg. 49).

De acordo com ALVES (2000), os fatores que caracterizam essa conectividade foram

divididos em 7 camadas funcionais, relacionadas às regras e aspectos essenciais do processo

de comunicação entre programas de uma rede de computadores, embora tal modelo não ter

sido inicialmente adotado para fins comerciais.

Essa divisão em camadas da estrutura funcional de um sistema de comunicação, torna

mais claro e fácil o seu entendimento. Sua utilização é muito importante para o entendimento

das diversas arquiteturas de comunicação existentes no mercado. Pode-se verificar esse

modelo na Figura B1.

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Física

Camada 7

Camada 6

Camada 5

Camada 4

Camada 3

Camada 2

Camada 1

Figura B 1: Camadas do modelo ISO/OSI

As funcionalidades representadas pelo modelo ISO/OSI foram divididas em dois

domínios; o da rede, referente à conectividade dos computadores, representado pelas camadas

1 a 3 (física, enlace e rede), e o da aplicação, relacionado à comunicação entre os programas

que utilizam a rede, representado pelas camadas 5 a 7 (sessão, apresentação e aplicação). A

Page 57: Monografia - Segurança de Redes (iptables)

57

camada 4 (transporte) é a camada responsável pela ligação entre os programas de aplicação e

os recursos das redes de computadores.

O Quadro B1 descreve cada camada do modelo ISO/OSI e suas respectivas definições.

Quadro B 1: Definição das camadas do modelo ISO/OSI

Camada física Compreende as especificações do hardware utilizado na rede,

que abrangem aspectos mecânicos, elétricos e físicos. Exemplos: Ethernet 802.3, V.35, V.22, X.21, RS-232, RS-449.

Camada de enlace Os protocolos desta camada têm como funcionalidade principal fazer com que os dados transmitidos de um computador cheguem ao outro ligado a ele com sua integridade garantida através do controle de fluxo, correção de erros, entre outros. Um exemplo de protocolo dessa camada é o High-level Data Link Control (HDLC).

Camada de rede Nesta camada, a forma como os nós estão conectados entre si (topologia) é considerada. Os protocolos desta camada fazem o encaminhamento das mensagens na rede segundo algoritmos de roteamento, disciplinas de controle de fluxo e endereçamento. Exemplo: Internet Protocol (IP).

Camada de transporte Os protocolos desta camada são responsáveis por garantir que os dados transmitidos pelo programa de um computador cheguem ao seu destino (outro programa) com integridade, por meio de mecanismos de controle de fluxo, correção de erros, entre outros.

Camada de sessão Realiza o tratamento da comunicação entre os programas que estejam sendo executados em computadores de uma rede. Detalhes como autenticação, tipo de comunicação (one-way, half-duplex ou full-duplex), definição de pontos de sincronismo na comunicação (recuperação de uma conexão de transferência de arquivos, por exemplo) são tratados nesta camada.

Camada de apresentação Trata da sintaxe e da semântica dos dados transmitidos entre os programas. Compressão e descrompressão de dados, criptografia são algumas de suas funções.

Camada de aplicação Envolve a definição dos protocolos de aplicação correspondentes à aplicação final. Ex: uma aplicação de transferência de arquivos em um computador estabelece comunicação com o usuário, com os gerenciadores de arquivos do sistema operacional e com um gerenciador de comunicação. Este último é o que implementa uma funcionalidade da camada 7 no modelo ISO/OSI, no caso, um protocolo para transferência de arquivos.

Page 58: Monografia - Segurança de Redes (iptables)

58

APÊNDICE C Script gerado para atender às necessidades da rede proposta

Nota: Para executar esse script, deve-se antes de tudo, “setar” o atributo de execução ao arquivo:

# chmod +x firewall.sh

#!/bin/bash modprobe ip_tables modprobe iptable_filter modprobe iptable_nat modprobe ipt_REJECT modprobe ipt_multiport modprobe ipt_MASQUERADE modprobe ipt_LOG iptables –t filter –F iptables –t nat –F iptables –t filter –Z iptables –t nat –Z iptables –t filter –P INPUT DROP iptables –t filter –P FORWARD DROP iptables –t filter –P OUTPUT DROP iptables –t nat –P POSTROUTING DROP iptables –t nat –P PREROUTING DROP iptables –t nat –P OUTPUT DROP iptables –t filter –N ppp-input iptables –t filter –A INPUT –i ppp0 –j ppp-input iptables –t filter –A INPUT –i lo –j ACCEPT iptables –t filter –A INPUT –p tcp –m state --state ESTABLISHED,RELATED –j ACCEPT iptables –t filter –A INPUT –p udp –m state --state ESTABLISHED,RELATED –j ACCEPT iptables –t filter –A INPUT –i eth0 –p icmp –m limit --limit 2/s –j ACCEPT echo “1” > /proc/sys/net/ipv4/ip_forward iptables –t filter –A FORWARD –p icmp –s 192.168.5.0/24 –m limit --limit 2/s –j ACCEPT iptables –t filter –A FORWARD –i eth0 –o ppp0 –p tcp –m multiport --dports 21,25,80,110,443 –j ACCEPT

Page 59: Monografia - Segurança de Redes (iptables)

59

iptables –t filter –A FORWARD –d 192.168.5.0/24 –i ppp0 –o eth0 –m state --state ESTABLISHED,RELATED –j ACCEPT iptables –t filter –A FORWARD –j LOG --log-prefix "FIREWALL: FORWARD " iptables –t filter –A FORWARD –i eth0 –p udp --dport 135 –j ACCEPT iptables –t filter –A FORWARD –p tcp –s 192.168.5.0/24 –d 192.168.5.2 --dport 21 –j ACCEPT iptables –t filter –A FORWARD –p tcp –s 192.168.5.0/24 –d 192.168.5.2 --dport 22 –j ACCEPT iptables –t filter –A OUTPUT –p tcp –m state --state NEW,ESTABLISHED,RELATED –j ACCEPT iptables –t filter –A OUTPUT –p udp –m state --state NEW,ESTABLISHED,RELATED –j ACCEPT iptables –t filter –A OUTPUT –o lo –j ACCEPT iptables –t filter –A ppp-input –p icmp –m limit --limit 2/s –j ACCEPT iptables –t filter –A ppp-input –p udp --dport 53 –j LOG --log-prefix "FIREWALL: dns " iptables –t filter –A ppp-input –p tcp --dport 113 –j LOG --log-prefix "FIREWALL: identd " iptables –t filter –A ppp-input –p udp --dport 111 –j LOG --log-prefix "FIREWALL: rpc " iptables –t filter –A ppp-input –p tcp --dport 111 –j LOG --log-prefix "FIREWALL: rpc " iptables –t filter –A ppp-input –p tcp --dport 137:139 –j LOG --log-prefix "FIREWALL: samba " iptables –t filter –A ppp-input –p udp --dport 137:139 –j LOG --log-prefix "FIREWALL: samba " iptables –t nat –A POSTROUTING –p tcp –m multiport --dports 25,80,110,443 –s 192.168.5.0/24 –o ppp0 –j MASQUERADE iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 200.150.12.5 --dport 25 –j SNAT --to 192.168.5.2:25 iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 192.168.5.2 --dport 25 –j ACCEPT iptables –t nat –A PREROUTING –i ppp0 –p cp –s 200.150.12.5 --dport 80 –j SNAT --to 192.168.5.2:80 iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 192.168.5.2 --dport 80 –j ACCEPT iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 200.150.12.5 --dport 110 –j SNAT --to 192.168.5.2:110 iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 192.168.5.2 --dport 110 –j ACCEPT iptables –t nat –A PREROUTING –i ppp0 –p cp –s 200.150.12.5 --dport 443 –j SNAT --to 192.168.5.2:21 iptables –t nat –A PREROUTING –i ppp0 –p tcp –s 192.168.5.2 --dport 443 –j ACCEPT iptables –t nat –A POSTROUTING –o eth0 –d 192.168.5.0/24 –j LOG --log-prefix "FIREWALL: SNAT unknown "

Page 60: Monografia - Segurança de Redes (iptables)

60

APÊNDICE D

Resultado dos testes 1 e 2 1: Teste (ping) da estação 2 com destino ao Firewall com ação DROP Disparando contra 10.0.0.23 com 32 bytes de dados: Esgotado o tempo limite do pedido. Esgotado o tempo limite do pedido. Esgotado o tempo limite do pedido. Esgotado o tempo limite do pedido. Esgotado o tempo limite do pedido. Esgotado o tempo limite do pedido. Esgotado o tempo limite do pedido. Esgotado o tempo limite do pedido. Estatísticas do Ping para 10.0.0.23: Pacotes: Enviados = 8, Recebidos = 0, Perdidos = 8 (100% de perda) 2: Teste (ping) da estação 2 com destino ao Firewall com ação REJECT Disparando contra 10.0.0.23 com 32 bytes de dados: Resposta de 10.0.0.23: Porta de destino inacessível. Resposta de 10.0.0.23: Porta de destino inacessível. Resposta de 10.0.0.23: Porta de destino inacessível. Resposta de 10.0.0.23: Porta de destino inacessível. Resposta de 10.0.0.23: Porta de destino inacessível. Resposta de 10.0.0.23: Porta de destino inacessível. Resposta de 10.0.0.23: Porta de destino inacessível. Resposta de 10.0.0.23: Porta de destino inacessível. Resposta de 10.0.0.23: Porta de destino inacessível. Resposta de 10.0.0.23: Porta de destino inacessível. Estatísticas do Ping para 10.0.0.23: Pacotes: Enviados = 10, Recebidos = 0, Perdidos = 10 (100% de perda)

Page 61: Monografia - Segurança de Redes (iptables)

61

APÊNDICE E Parte do arquivo de log gerado pelo Firewall iptables

Arquivo de registro de conexões criado pelo netfilter, contido no diretório (/var/log/messages). Esse caminho pode variar, estando definido pela

entrada “kern.debug” no arquivo (/etc/syslog.conf). Mar 7 20:53:39 linux kernel: FIREWALL: INPUT IN=eth1 OUT= MAC=00:0c:29:da:9a:7f:00:50:56:e8:1f:bc:08:00 SRC=10.0.0.26 DST=10.0.0.23 LEN=73 TOS=0x00 PREC=0x00 TTL=255 ID=0 DF PROTO=TCP SPT=2663 DPT=80 LEN=53 Mar 7 20:53:39 linux kernel: FIREWALL: INPUT IN=eth1 OUT= MAC=00:0c:29:da:9a:7f:00:50:56:e8:1f:bc:08:00 SRC=10.0.0.26 DST=10.0.0.23 LEN=73 TOS=0x00 PREC=0x00 TTL=255 ID=1 DF PROTO=TCP SPT=2663 DPT=80 LEN=53 Mar 7 20:53:39 linux kernel: FIREWALL: INPUT IN=eth1 OUT= MAC=00:0c:29:da:9a:7f:00:50:56:e8:1f:bc:08:00 SRC=10.0.0.26 DST=10.0.0.23 LEN=73 TOS=0x00 PREC=0x00 TTL=255 ID=2 DF PROTO=TCP SPT=2663 DPT=80 LEN=53 Mar 7 20:53:39 linux kernel: FIREWALL: INPUT IN=eth1 OUT= MAC=00:0c:29:da:9a:7f:00:50:56:e8:1f:bc:08:00 SRC=10.0.0.26 DST=10.0.0.23 LEN=106 TOS=0x00 PREC=0x00 TTL=255 ID=3 DF PROTO=TCP SPT=2663 DPT=80 LEN=86 Mar 7 20:53:40 linux kernel: FIREWALL: INPUT IN=eth1 OUT= MAC=00:0c:29:da:9a:7f:00:50:56:e8:1f:bc:08:00 SRC=10.0.0.26 DST=10.0.0.23 LEN=73 TOS=0x00 PREC=0x00 TTL=255 ID=0 DF PROTO=TCP SPT=2663 DPT=80 LEN=53 Mar 7 20:53:41 linux kernel: FIREWALL: INPUT IN=eth1 OUT= MAC=00:0c:29:da:9a:7f:00:50:56:e8:1f:bc:08:00 SRC=10.0.0.26 DST=10.0.0.23 LEN=73 TOS=0x00 PREC=0x00 TTL=255 ID=1 DF PROTO=TCP SPT=2663 DPT=80 LEN=53 Mar 7 20:53:41 linux kernel: FIREWALL: INPUT IN=eth1 OUT= MAC=00:0c:29:da:9a:7f:00:50:56:e8:1f:bc:08:00 SRC=10.0.0.26 DST=10.0.0.23 LEN=73 TOS=0x00 PREC=0x00 TTL=255 ID=2 DF PROTO=TCP SPT=2663 DPT=80 LEN=53 Mar 7 20:53:41 linux kernel: FIREWALL: INPUT IN=eth1 OUT= MAC=00:0c:29:da:9a:7f:00:50:56:e8:1f:bc:08:00 SRC=10.0.0.26 DST=10.0.0.23 LEN=106 TOS=0x00 PREC=0x00 TTL=255 ID=3 DF PROTO=TCP SPT=2663 DPT=80 LEN=86 Mar 7 20:53:42 linux kernel: FIREWALL: INPUT IN=eth1 OUT= MAC=00:0c:29:da:9a:7f:00:50:56:e8:1f:bc:08:00 SRC=10.0.0.26 DST=10.0.0.23 LEN=106 TOS=0x00 PREC=0x00 TTL=255 ID=4 DF PROTO=TCP SPT=2663 DPT=80 LEN=86

Page 62: Monografia - Segurança de Redes (iptables)

62

REFERÊNCIAS BIBLIOGRÁFICAS ALVES, Marcus Vinicius B. Guia Internet de Conectividade. 9ª edição. São Paulo: Senac,

2002. 167p.

ANÔNIMO. Segurança Máxima – Maximum Security. 2ª edição. Rio de Janeiro: Campus,

2000. 756p.

CARVALHO, José Eduardo M. de. Introdução às Redes de Micros. 1ª edição. São Paulo:

Makron Books, 1998. 189p.

CHESWICK, W. R.; BELLOVIN, S. M. Firewalls and Internet Security: repelling the wily

hacker. 2ª edição. Addison-Wesley Publishing Company, 1994. 448p.

GUIZZO, 1999 – Internet: o que é – o que oferece – como conectar-se. 1ª edição. São Paulo:

Ática, 1999. 112p.

HATCH, Brian; KURTZ, George.; LEE, James. Segurança Contra Hackers – Linux (Hacking

Linux Exposed). 2ª edição. São Paulo: Futura, 2003. 768p.

NEMETH, Evi; SNYDER, Garth; SEEBASS, Scott; HEIN, Trent R. Manual de

Administração do Sistema Unix. 3ª edição. São Paulo: Bookman, 2002. 896p.

SOARES, Luiz Fernando Gomes; LEMOS, Guido; COLCHER, Sérgio. Redes de

computadores: Das LANs, MANs e WANs às Redes ATM. 2ª edição – 12ª tiragem. Rio de

Janeiro: Campus, 1995. 705p.

SOUSA, Lindeberg Barros de. Redes de computadores: Dados, voz e imagem. 5ª edição. São

Paulo: Érica, 2002. 484p.

THOMAS, Robert M. Introdução às Redes Locais. Tradução: Altair Dias Caldas de Moraes.

1ª edição. São Paulo: Makron Books, 1997. 287p.

Page 63: Monografia - Segurança de Redes (iptables)

63

Referência eletrônica:

APLINUX, 2005 – Modelo de configuração de firewall. Fonte: APLINUX.com.br.

Disponível em: http://www.aplinux.com.br/?q=node/125. Acesso em: 15 fev. 2006.

C.E.R.T., 2005 – Cartilha de segurança para Internet. Fonte: CERT.br (Centro de Estudos,

Resposta e Tratamento de Incidentes de Segurança no Brasil). Disponível em:

http://cartilha.cert.br. Acesso em: 28 nov. 2005.

CYCLADES, 2006. Segurança da informação. Fonte: Cyclades Brasil. Disponível em:

http://www.cyclades.com.br/solutions/security.php. Acesso em: 12 dez. 2005.

DUARTE, Otto. NAT – Network Address Translation. Fonte: GTA (Grupo de Teleinformática

e Automação) da UFRJ. Disponível em: http://www.gta.ufrj.br/grad/01_2/nat/index.htm.

Acesso em: 15 mar. 2006.

ERIBERTO, 2005 – Fluxo de dados na tabela filter e nat. Fonte: ERIBERTO. Disponível

em: http://www.eriberto.pro.br/iptables/filter.jpg e http://www.eriberto.pro.br/iptables/nat.jpg.

Acesso em: 13 fev. 2006.

HOUAISS, 2001 – Dicionário Eletrônico Houaiss da Língua Portuguesa. (CD-ROM).

Objetiva, 2001.

MORIMOTO, 2004 – E-Book Entendendo e Dominando o Linux: O Linux e as distribuições.

Fonte: GUIA DO HARDWARE. Disponível em:

http://www.guiadohardware.net/ebooks/linux/0.html#toc_1. Acesso em: 21 dez 2004.

ORANGE, 2006 – Internet Workstation. Fonte: Orange County, North Carolina. Disponível

em: http://www.co.orange.nc.us/library/pictures/Internet%20workstation.jpg. Acesso em: 13

fev. 2006.

PIRES, 2005 - Internet, Software Livre e Exclusão Digital: Impasses e opções no

desenvolvimento de políticas públicas de alcance social no Brasil. Fonte: CIBERGEO.

Disponível em: http://www.cibergeo.org/espacolinux.htm. Acesso em: 08 fev. 2006.

Page 64: Monografia - Segurança de Redes (iptables)

64

PROXIM, 2005 – Create a Wireless Loop in a New Geography. Fonte: Proxim Wireless

Corporation. Disponível em: http://www.proxim.com/images/charts/man_loop_sm.gif.

Acesso em: 23 fev. 2006.

RUSSELL apud GALVÃO, 2001 – Filtrando Pacotes com Iptables. Fonte: Ricardo Kleber

Homepage. Disponível em: http://www.ufrnet.br/~rk/linux.html. Adaptado de: Linux 2.4

Packet Filtering HOWTO. Disponível em:

http://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO.html. Acesso em:

27 fev. 2006.

SILVA, 2005 – Guia Foca GNU/Linux – Intermediário / Avançado. Fonte: GUIA FOCA

GNU/LINUX. Disponível em: http://www.guiafoca.org/download/avancado/focalinux3-

html.tar.bz2. Acesso em: 06 jan. 2006.