Page 1

FACULDADE INDEPENDENTE DO NORDESTE – FAINOR

FLÁVIO MOREIRA SILVA PREVITERA SANTOS

IF: UMA FERRAMENTA GRÁFICA PARA CONFIGURAÇÃO DO FIREWALL IPTABLES

VITÓRIA DA CONQUISTA – BA 2010


FLÁVIO MOREIRA SILVA PREVITERA SANTOS

IF: UMA FERRAMENTA GRÁFICA PARA CONFIGURAÇÃO DO FIREWALL IPTABLES

Monografia apresentada a Faculdade Independente do Nordeste, curso de Engenharia de computação como prérequisito para a obtenção do grau de bacharel em Engenharia da computação.

VITÓTIA DA CONQUISTA – BA 2010


S237i

Santos, Flávio Moreira Silva Previtera IF: uma ferramenta gráfica para configuração de Firewall Iptables./Flávio Moreira Silva Previtera santos._ _ Vitória da Conquista, 2010 66 f. Monografia computação)

(Graduação

em

Engenharia

de

Orientador(a): Prof. Bruno Silvério Costa 1.Firewall 2. Iptables 3. gerenciamento - regras 4. Gerenciamento ferramenta gráfica . I Engenharia de computação. CDD 006.686

Catalogação na fonte: Biblioteca da Fainor


FLÁVIO MOREIRA SILVA PREVITERA SANTOS IF: FERRAMENTA GRÁFICA PARA CONFIGURAÇÃO DO FIREWALL IPTABLES

Aprovada em ____/____/_____

BANCA EXAMINADORA / COMISSÃO AVALIADORA

BRUNO SILVERIO COSTA INSTITUIÇÃO

MARCELO ALMEIDA INSTITUIÇÃO

FERNANDO CARDEAL INSTITUIÇÃO


DEDICATÓRIA

Dedico este trabalho para meu querido pai e para minha mãe, que pelos seus esforços e dedicação me proporcionaram a chance de alcançar este tão sonhado objetivo.


AGRADECIMENTOS Agradeço primeiramente a minha mãe e a todos os meus familiares, aos colegas Gerorge Glass, Charles Froes, Roberia vieira, Uelton Lacerda, Oliver pela ajuda e incentivo que me deram e a todos os outros colegas que viveram e conviveram as difíceis situações desta jornada. Agradeço a Raimundo Viana por me ajudar a ingressar na vida acadêmica e pelo apoio que me deu junto a esta instituiçao. Agradeço a todos os professores que me guiaram e até aqui. Por ultimo e o mais importante agradeço a DEUS por ter colocado todas essas pessoas no meu caminho e por ter me proporcionado a chance de superar este desafio.


EPÍGRAFE “Que os vossos esforços desafiem as impossibilidades, lembrai-vos de que as grandes coisas do homem foram conquistadas do que parecia impossível.” Charles Chaplin.


RESUMO Atualmente, segurança é um quesito de fundamental importância em todos os aspectos da sociedade. Para o mundo da computação não é diferente. Grande parte da dificuldade encontrada pelos administradores de redes é ocasionada pela grande quantidade de regras necessária para se configurar o firewall iptables, o administrador deve ter um alto grau de conhecimento sobre a sintaxe utilizada pelo firewall e elevada habilidade de compreenção para um bom gerenciamento das regras. Neste trabalho foi desenvolvida uma pesquisa bibliográfica, de caráter exploratório e características qualitativas. Fez-se o levantamento de várias fontes como livros, monografias e artigos publicados com o intuito de familiarizar o leitor com o tema e de obter conhecimento sobre o assunto apresentando, seus principais conceitos, características e tecnologias utilizadas. Foi desenvolvido e apresentado o projeto de uma ferramenta gráfica para configuração de firewall iptables com o objetivo de amenizar os problemas relacionados a complexidade da sintaxe utilizada pelo iptables e a dificudade no gerenciamento de suas regras. Serão também apresentados testes e resultados, mostrando que a ferramenta torna mais fácil a tarefa de configurar e gerenciar o firewall iptables para o administrador de redes.

Palavras chaves: Firewall, iptables, gerenciamento de regras, ferramenta gráfica.


ABSTRACT Currently, security is a question of fundamental importance in all aspects of society. For the computing world is no different. Much of the difficulty encountered by network administrators is caused by the large amount of rules needed to configure the iptables firewall, the administrator must have a high degree of knowledge about the syntax used by the firewall and high skill of understanding for a good management rules. In this work we developed a literature of exploratory and qualitative characteristics. He made the survey from various sources such as books, monographs and articles published in order to familiarize the reader with the topic and to gain knowledge on the subject presented, its main concepts, features and technologies used. Was developed and presented the design of a graphical tool to configure iptables firewall in order to reduce the problems related to the complexity of the syntax used by iptables and difficulty level in managing their rules. Tests will also be presented and results showing that the tool makes it easier to configure and manage the iptables firewall to the network administrator.

Keywords: Firewall, iptables, rules management, graphical tool.


LISTAS DE FIGURAS FIGURA 01

Representação de Firewall.......................................................

17

FIGURA 02

Filtros de pacotes.....................................................................

20

FIGURA 03

Filtragem em nível de aplicação...............................................

23

FIGURA 04

Representação de NAT............................................................

25

FIGURA 05

Arquitetura Dual-Homed Host..................................................

27

FIGURA 06

Arquitetura Screened Host.......................................................

28

FIGURA 07

Arquitetura Screened Subnet...................................................

29

FIGURA 08

Esquema da tabela filter...........................................................

31

FIGURA 09

Esquema da tabela NAT..........................................................

33

FIGURA 10

Diagrama de caso de uso do sistema......................................

40

FIGURA 11

Diagrama de sequencia de interfaces.....................................

44

FIGURA 12

Diagrama de sequencia de regras...........................................

45

FIGURA 13

Diagrama de sequencia de ligação..........................................

46

FIGURA 14

Diagrama de sequencia de aplicação......................................

47

FIGURA 15

Cenario de testes.....................................................................

48

FIGURA 16

Pedido de autorização..............................................................

49

FIGURA 17

Tela inicial.................................................................................

50

FIGURA 18

Configuração de interfaces.......................................................

50

FIGURA 19

Tela de interfaces.....................................................................

51

FIGURA 20

Configuração de serviços.........................................................

52

FIGURA 21

Firewall inserido........................................................................

52

FIGURA 22

Configuraçao do firewall...........................................................

53

FIGURA 23

Salvar configuraçao..................................................................

54

FIGURA 24

Configuraçao Salva..................................................................

54

FIGURA 25

Script aplicado..........................................................................

55

FIGURA 26

Verificaçao das interfaces........................................................

55

FIGURA 27

Regras inseridas.......................................................................

56


LISTA DE ABREVEATURAS E SIGLAS DMZ

Delimitarizated Zone

(Zona des-militarizada)

DNS

Domain Naming Service (Sistema de Nomes de Domínios)

DoS

Denial of Service (Negação de serviço)

ICMP

Internet Control Message Protocol (Protocolo de mensagens de controle da internet)

ID

Identity Document (Documento de Identidade)

IP

Internet Protocol (Protocolo de Internet)

MTU

Maximum Transmission Unit (Unidade maxima de transmissão)

NAT

Network Address Translation (Traduçao de endereços de rede)

OSI

Open System Interconnection (Sistema de interconexão aberta)

SMTP

Simple Mail Transfer Protocol (Protocolo de tranferencia de correspondencia simples)

SSH

Secure Shell (programa de computador e um protocolo de rede que permite a conexão com outro computador na rede)

TCP

Transmission

Control

Protocol

(Protocolo

de

controle

transmissão) UDP

User Datagram Protocol (Protocolo de datagrama de usuario)

VPN

Virtual Private Network (Redes privadas virtuais)

de


Sumário 1 INTRODUÇÃO ............................................................................................................... 13 1.1 APRESENTAÇÃO DO TEMA ................................................................................ 13 1.2 PROBLEMATIZAÇÃO ............................................................................................ 14 1.3 JUSTIFICATIVA ...................................................................................................... 15 1.4 OBJETIVO ............................................................................................................... 15 1.5 METODOLOGIA ..................................................................................................... 16 1.6 ESTRUTURA DA MONOGRAFIA ......................................................................... 16 2 FIREWALLS ................................................................................................................... 17 2.1 DEFINIÇÂO ............................................................................................................. 17 2.2 FIREWALLS DE SOFTWARE ............................................................................... 18 2.2.1 FIREWALLS DE HARDWARE ....................................................................... 19 2.2.2 FIREWALLS INTEGRADOS ........................................................................... 19 2.3 TECNOLOGIAS DE FIREWALLS ......................................................................... 20 2.3.1 FILTROS DE PACOTE ................................................................................... 20 2.3.2 FIREWALLS DE INSPEÇÃO DE PACOTES COM INFORMAÇÕES DE ESTADO ..................................................................................................................... 22 2.3.3 FILTRAGEM NO NIVEL DE APLICAÇÃO .................................................... 23 2.3.4 FIREWALLS DISTRIBUIDOS ......................................................................... 24 2.4 NETWORKS ADDRESS TRANSLATION (NAT) ................................................. 25 2.5 ARQUITETURAS .................................................................................................... 26 2.5.2 SCREENED HOST .......................................................................................... 27 2.5.3 SCREENED SUBNET ..................................................................................... 28 2.6 FIREWALL IPTABLES ........................................................................................... 29 2.6.1 FUNCIONAMENTO ......................................................................................... 30 2.6.2 A TABELA FILTER .......................................................................................... 30 2.6.3 MANIPULANDO CHAINS E REGRAS .......................................................... 31 2.6.4 TABELA NAT ................................................................................................... 33 2.6.6 ALGUMAS CARACTERISTICAS DO IPTABLES ......................................... 35 3 TRABALHOS RELACIONADOS .................................................................................. 36 4 PROJETO E ANÁLISE DA FERRAMENTA ............................................................... 39 4.1 VISÃO GERAL DO SISTEMA ............................................................................... 39 4.2 DESCRIÇÃO DOS USUÁRIOS ............................................................................. 39 4.3 DESCRIÇÃO DOS REQUISITOS ......................................................................... 39 4.3.1 REQUISITOS FUNCIONAIS .......................................................................... 40 4.3.3 NÃO REQUISITOS .......................................................................................... 43 4.3.4 DIAGRAMAS DE SEQUÊNCIA ...................................................................... 43 5.1 CENARIO DE TESTE ............................................................................................. 48 5.2 APRESENTAÇAO DA FERRAMENTA ................................................................ 49 5.3 RESULTADOS ........................................................................................................ 55 5.4 ANALISE DOS RESULTADOS ............................................................................. 56 6 CONCLUSÃO ................................................................................................................. 58


13

1 INTRODUÇÃO Atualmente, segurança é um quesito de fundamental importância em todos os aspectos da sociedade. Para o mundo da computação não é diferente. A Internet ganhou grandes proporções nos últimos anos e tornou-se um dos meios de comunicação (tanto pessoal como corporativo) mais utilizados do mundo, ela também se tornou um gigantesco banco de dados onde todos os tipos de informações podem ser acessadas, inclusive informações sigilosas. Com essa popularização surgem diversos problemas de segurança, onde os maiores estão relacionados com as invasões virtuais, que vão desde vandalismo até espionagem industrial. Essas invasões podem ser de dois tipos: intrusão, que é o acesso a um computador ou uma rede sem ter privilégios para isso e a negação de serviço que é destinada somente a impossibilitar a utilização de um computador ou uma rede pelo usuário. Mecanismos de defesa são desenvolvidos ao longo do tempo para impedir esses ataques e acessos indesejáveis fornecendo uma barreira a mais de proteção para os computadores privados e as redes corporativas.

1.1 APRESENTAÇÃO DO TEMA Segundo SCRIMGER (2002), o acesso a Internet tem se tornado uma necessidade do homem atual. Por estar ao alcance de bilhões de pessoas a Internet faz algumas pessoas acreditarem que ela seja à “verdadeira democracia”. Entretanto, essa disponibilidade tão ampla pode ser perigosa, pois certas pessoas tiram proveito da Internet em seu beneficio próprio ou por razões maliciosas. Para essas pessoas, a Internet surgiu como um meio físico para espalhar vírus e vermes digitais que podem parar toda uma rede corporativa. Isso pode ser feito bombardeando a rede com mensagens, processos ou pedidos até que nenhum trabalho real possa ser feito, este tipo de ataque é conhecido como DoS (Denny of Service, em portugues negação de serviço), ou fazer acessos não autorizados por meio de hijackers (sequestradores) onde alguém rouba a conexão depois de um usuário ter feito sua autenticação.


14 Outro meio foi o da segurança, que pode ser dividido em físico: que é a restrição do acesso de pessoas aos locais onde são oferecidos os serviços, somente pessoas com autorização podem ter acesso a maquina provedora do serviço; e o lógico: que é o surgimento dos mecanismos de controle de acessos feitos remotamente, estes mecanismos surgiram para proteger os computadores e as redes dos ataques e dos acessos não autorizados e foram denominados de firewall. No final dos anos 80 os sistemas de firewalls começam a surgir com o objetivo de aplicar uma politica de segurança a um determinado ponto da rede, sua função básica consiste em regular o trafego de dados entre redes diferentes e impedir a recepção ou a transmissão de acessos nocivos ou não autorizados. A medida que o uso de informações e sistemas é cada vez maior, a proteção destes requer a aplicação de ferramentas e conceitos de segurança eficientes.

1.2 PROBLEMATIZAÇÃO Segundo ESQUIVEL (2006), no sistema operacional Linux, as funções que são direcionadas ao firewall estão agregadas à própria arquitetura do kernel, que é o núcleo do sistema. O Linux utiliza-se da capacidade de transformar o firewall no próprio sistema e possui um modulo do kernel responsável por esta função denominado de IPTABLES. A configuração do iptables é feita através de comandos que são inseridos e depois são interpretados pelo kernel. Estes comandos podem ser executados diretamente no Shell ou através de (arquivo-texto) via script. Para isso o usuário deve ter conhecimento da complexa sintaxe utilizada pelo firewall o que desprende tempo e investimento do usuário, além disso, a quantidade de comandos utilizados na configuração torna difícil a tarefa de gerenciar as regras do firewall. Por ter uma sintaxe detalhista e rica em opções, o iptables oferece muitas vantagens para o administrador, porém essa riqueza de opções e detalhes torna sua sintaxe bastante complexa. Existem algumas ferramentas que possibilitam amenizar esses problemas, porém apresentam algumas restrições e oferecem recursos limitados quanto a quantidade de informações necessárias para configuração e quanto ao conhecimento aprofundado da sintaxe. Por isso existe a


15 possibilidade para a implementação de ferramentas que ofereçam recursos para solucionarem os problemas relativos a complexidade da sintaxe e o gerenciamento das regras no firewall.

1.3 JUSTIFICATIVA A dificuldade de compreensão e administração de um sistema ocasionada pela quantidade de regras necessária para se configurar um firewall iptables é enorme. Para inserir tais regras o administrador utiliza o prompt de comando ou alguma ferramenta que necessita de um conjunto detalhado de informações para fazer a configuração através de um arquivo-texto com um elevado grau de compreensão. O presente trabalho justifica-se sobe o intuito de contribuir com a construção de uma ferramenta que torne essa configuração mais fácil eliminando o conhecimento obrigatório da sintaxe e mostrando visualmente a lógica aplicada no firewall.

1.4 OBJETIVO Este trabalho tem como objetivo desenvolver uma ferramenta gráfica para configuração do firewall iptables. Esta ferramenta possibilitará cadastrar e configurar interfaces de rede, determinar a política de segurança do firewall, indicar os serviços a serem bloqueados ou liberados e aplicar as regras associadas através de arquivo-texto facilitando a configuração de firewall iptables por meio de uma interface de fácil utilização e entendimento. Para isso pretende-se realizar um estudo que evidencie os conceitos, as características e algumas das tecnologias mais usadas em firewalls. Além disso, pretende-se mostrar neste estudo o funcionamento e a sintaxe de configuração do firewall iptables. Descrever o desenvolvimento do projeto da ferramenta mostrando seus requisitos, fluxo e telas, também será demonstrado a utilização da mesma em um estudo de caso.


16

1.5 METODOLOGIA A pesquisa utilizada neste estudo foi a bibliográfica, pois foi realizado o levantamento de varias fontes como livros, monografias, artigos, revistas e materiais publicados e disponibilizados na Internet. A pesquisa tem caráter exploratório já que tem o objetivo de proporcionar uma maior familiaridade com o tema e desenvolver uma ferramenta aplicável a solução do problema. Em relação a abordagem a pesquisa possui características qualitativas pois não depende fortemente de analise estatísticas para suas inferências. O método cientifico utilizado foi o dedutivo, pois tem como ponto de partida um principio tido como verdadeiro e seu objetivo é a conclusão, que é aquilo que se pretende provar; neste trabalho o principio foi a complexidade da sintaxe e as dificuldades de gerenciar as regres do iptables e o objetivo é a criação de uma ferramenta como solução.

1.6 ESTRUTURA DA MONOGRAFIA O capitulo 2 explana sobre o tema firewall mostrando conceitos, características e as tecnologias mais utilizadas, também discorre sobre o firewall iptables e seu funcionamento. Já no capitulo 3 será apresentado alguns trabalhos já publicados sobre o tema escolhido, fundamentando o estado da arte do trabalho. No capitulo 4 é descrito o projeto, apresentando as especificações do sistema, seus usuários, seus requisitos e suas funções. No capitulo 5 são demonstradosas interfaces, os testes realizados e a analise dos resultados obitidos. Finalmente, no capitulo 6 é apresentada a conclusão do trablho evidenciando os objetivos propostos.


17

2 FIREWALLS Neste capitulo seram apresentados os conceitos, os tipos, algumas tecnologias e as arquiteturas mais utilizadas em firewalls. Será apresentado também o funcionamento do firewall iptables e como funciona sua sintaxe.

2.1 DEFINIÇÂO O termo em inglês firewall quer dizer em português „parede corta-fogo‟, e é a passagem que separa o hall da saída de incêndio de um edifício. Sua função é evitar que o fogo se espalhe pelos cômodos de uma edificação, garantindo assim a segurança para os moradores do prédio. No mundo da computação este conceito de firewall é utilizado da mesma maneira: ele limita o tráfego não autorizado de um domínio de rede para o outro, evitando o alastramento de dados nocivos dentro de uma rede de computadores, garantindo assim segurança para os usuários. A figura 01 demonstra como esse conceito é utilizado. (GTA/UFRJ, 2007).

Figura 01. Representação de firewall. Fonte: ATISecuryti, (2010).


18 Segundo BELLOVIN, ET. AL. (2005), firewall é todo dispositivo, que limita o acesso a uma rede, podendo ser hardware ou software. Nos dias de hoje os firewalls vêm embutidos em vários dispositivos como switches de IP, modems e roteadores, já os firewalls de software estão disponíveis ou são incluídos em todos os sistemas operacionais populares. Os firewalls podem filtrar diferentes níveis em uma pilha de protocolos de redes. Existem duas classes principais: filtragem de pacotes e gateways de aplicação. Cada um deles se caracteriza pelo nível de protocolo que controla, do mais baixo nível nas camadas do modelo OSI até os níveis mais altos. Existe também uma terceira classe de firewall denominada firewalls de inspeção de pacote com informações de estado. (SCRIMGER ET. AL. 2002).

2.2 FIREWALLS DE SOFTWARE Os firewalls de software são programas desenvolvidos para atuarem sobre algum sistema operacional e por esse motivo existe a necessidade de atualizações contra as falhas de segurança ou problemas no funcionamento que possa ocasionar uma entrada para um ataque ou o mau funcionamento do programa. A vantagem de utilizar firewall de software é de utilizá-lo não somente para uma aplicação, mas também como um servidor multitarefa, podendo ser instalado, por exemplo: servidor de emails, filtros anti-span, DNS, etc. A desvantagem é continua atualização do firewall e do sistema operacional. O administrador deverá estar atento a atualizações que deveriam solucionar outro problema e que podem ocasionar um mau funcionamento do sistema ou da aplicação de firewall, o administrador pode ainda ficar sem suporte quando o fabricante do firewall culpa o fabricante do sistema e vice-versa. Isso pode ser evitado utilizando programas do mesmo fabricante. (SALDANHA, 2007).


19

2.2.1 FIREWALLS DE HARDWARE São dispositivos de hardware projetados para funcionarem juntamente com um software de maneira compatível, também conhecidos como appliance. Estes dispositivos têm sistema operacional dedicado que trabalham em conjunto com o software de firewall aumentando assim a performace em relação aos firewalls de software. A vantagem é que o suporte técnico é de um mesmo fabricante e somente ele deverá ser contatado em caso de eventuais problemas, portanto não ocorre a possibilidade de ter mais de um fabricante envolvido no produto final, como: fabricante do programa de firewall, o fabricante do sistema e o fabricante do hardware. A desvantagem é que neste tipo de firewall incluir novas funcionalidades pode não ser possível, devido à integração com o hardware, normalmente quando se deseja incluir novas funções faz-se necessária a compra de equipamentos novos, o que aumenta os custos com manutenção e topologia da rede. (BRENTON, HUNT, 2003)

2.2.2 FIREWALLS INTEGRADOS São dispositivos com vários propósitos. Combinam as funções de firewall com outras funcionalidades como: antivírus, filtros anti-spam, interconexão de redes com VPN, acesso remoto de VPN, detecção ou prevenção de intrusos. A vantagem é a redução do custo de manutenção e do custo de compra de vários equipamentos, e a simplificação da topologia da rede onde se encontra. A desvantagem é que se algum problema com alguma das aplicações acontecer a outras serão afetadas, problemas com conectividade também podem ocorrer, pois existem muitos serviços que utilizam o mesmo sistema base, como está tudo em um único equipamento todas as diferentes aplicações tem suas vulnerabilidades e dessa forma expõe este equipamento a diferentes técnicas de ataques. (POHLMANN, CROTHERS, 2002).


20

2.3 TECNOLOGIAS DE FIREWALLS

2.3.1 FILTROS DE PACOTE Para implementar uma barreira de segurança em uma rede de computadores, é necessário alguns conhecimentos sobre os protocolos IP, TCP, ICMP e UDP. Estes são os principais protocolos em nível de rede e transporte (Modelo OSI) que são considerados e examinados ao se estabelecer regras de filtragem em uma filtragem de pacotes para a Internet. Este mecanismo de filtragem a nível de roteador possibilita que se controle o tipo de tráfego de rede que pode existir em qualquer segmento de rede; conseqüentemente, pode-se controlar o tipo de serviços que podem existir no segmento de rede e com isso, os serviços que comprometem a segurança da rede podem ser restringidos. O firewall que trabalha na filtragem de pacotes é muito utilizado em redes pequenas ou de médio porte. (GTA/UFRJ, 2007).

Figura 02. Filtro de pacotes Fonte: GTA, UFRJ(2008)

Os filtros de pacotes oferecem um custo reduzido e um nível razoável de segurança de gateway. A figura 02 demonstra que os filtros de pacotes quando utilizados sozinho, são baratos, pois os recursos de filtragem vêm com o software roteador e normalmente se faz necessária a presença um roteador pra conectar-se a internet,


21 não existindo assim gastos extras. Filtros de pacotes funcionam descartando pacotes com base em seu endereço de origem e destino e nos números das portas. A origem e o destino de um pacote são caracterizados por um endereço IP, um número de porta, pelo protocolo, e mais algumas informações que constituem o cabeçalho do pacote que será analisado pelo filtro. Nenhum ou quase nenhum contexto é mantido, as decisões são tomadas com base no conteúdo do pacote atual e a filtragem pode ser feita na interface de saída, na interface de entrada ou em ambas, dependendo do tipo de roteador que está sendo utilizado. O administrador faz uma lista de maquinas e serviços permitidos e uma lista de maquinas e serviços que serão bloqueados. O método de configuração de um filtro de pacotes é simples, porém para uma configuração de um espaço de endereçamento amplo exigirá do administrador um alto grau de atenção e conhecimento. Configurar filtros de pacotes é um processo de três etapas. Primeiro devese saber o que deve ser e o que não deve ser permitido segundo, os tipos de pacotes admissíveis devem estar especificados formalmente em termos de expressões lógicas nos campos dos pacotes e terceiro as expressões devem ser escritas na sintaxe suportada pelo fornecedor. O conjunto de regras que constituem o firewall é muito delicado, elas são lidas de cima para baixo e, portanto a ordenação das regras importa muito para um bom funcionamento. (CHESWICK, BELLOVIN, RUBIN, 2005). Por SCRIMGER, ET AL. (2002), existem muitas vantagens em utilizar firewalls de filtragem de pacotes: são rápidos, porque operam somente com o cabeçalho descartando todo o corpo do pacote; são independentes de aplicativos porque ignoram o conteúdo de dados do pacote; são os mais baratos e não requerem que nenhuma alteração de configuração seja efetuada nos computadores que protegem. Mas existem desvantagens também ao se utilizar a filtragem de pacotes: eles são os menos seguros entre os tipos de firewalls e ignoram o conteúdo de dados do pacote, impossibilitando o bloqueio de usuários que acessam sites não-autorizados. Analisando campos como: IP de origem, IP de destino, ID de protocolo IP, numero das portas e ajustes de opções do IP, os filtros podem identificar os pacotes que vão da rede interna para a internet ou da internet para a rede interna. Portanto o firewall deverá identificar de que interface de rede o pacote


22 chegou, pois do mesmo modo que alguém pode falsificar o remetente de uma carta o hacker pode forjar um endereço de IP atravez de uma fonte de IP falsos e enviar para o firewall caracterizando o „IP spoofing‟. Um pacote trafega por diferentes caminhos na internet quando vai da origem até o destino. Cada fragmento de rede ou caminho tem seu MTU (Unidade máxima de transferencia). Nem todos os caminhos suportam o tamanho do pacote, quando isso acontece o pacote é dividido em pacotes menores e cada fragmento dele tem seu próprio cabeçalho com o IP de origem, IP de destino e a posição do fragmento. Somente o primeiro fragmento tem as informações da porta TCP, os demais não dispõem dessa informação, então o filtro não pode tomar uma decisão baseada nisso e bloqueia do segundo fragmento em diante impedindo que os pacotes que passaram por algum link com tamanho menor continuem. O firewall guardará todos os pedaços do pacote até que estejam todos juntos e assim usará o endereço de IP. Isso cria uma vulnerabilidade que pode ser explorada por um hacker, especialmente se ele nunca enviar o ultimo pacote, fazendo o firewall ficar tão ocupado que esqueça as outras tarefas, isso é chamado ataque DoS (Denny of Service). (CLARK, 2003).

2.3.2 FIREWALLS DE INSPEÇÃO DE PACOTES COM INFORMAÇÕES DE ESTADO Os firewalls de inspeção de pacotes com informações de estado interceptam os pacotes entrantes para determinar o estado da conexão. Somente os pacotes que estão de acordo com as condições de configuração podem acessar a rede. Firewalls de inspeção de pacotes constroem gradualmente tabelas dinâmicas de estado, que são utilizadas para monitorar as conexões que passam pelo firewall. Apenas os pacotes que pertencem às conexões estabelecidas e validas têm acesso à rede. Além de considerar o cabeçalho e o conteúdo de dados do pacote esse tipo de firewall examina também o estado da conexão. Como conseqüência um pacote interno pode ser comparado com uma solicitação externa antes de ser admitido na rede. Isso impede que um pacote entrante, mascarado como uma resposta a uma solicitação externa inexistente possa ter a permissão à rede. Firewalls de inspeção de pacotes com informações de estado também utilizam o mecanismo de filtragem


23 de sessão. Este tipo de firewall tem muitas vantagens: fornecem melhor segurança que os firewalls básicos, pois comparam as respostas entrantes com as solicitações de saída; no caso de ruptura de rede, oferecem uma conexão elaborada para as transações que auxiliam o administrador a localizar a fonte do problema; reduzem o overhead porque não exigem mudanças de configuração nos computadores. Porém também existem desvantagens na utilização deste tipo de firewall: tem uma configuração complicada; não fornecem autenticação ao usuário; são mais lentos que os filtros de pacotes pôrquer precisam consultar o estado das conexões e eles são mais caros do que os filtros de pacotes. (SCRIMGER ET. AL. 2002).

2.3.3 FILTRAGEM NO NIVEL DE APLICAÇÃO Filtragem em nível de aplicação é mais complexo do que filtros de pacotes porque trabalham com detalhes do serviço particular que estão verificando. Um gateway de aplicação é um servidor especifico de aplicação através do qual todos os dados da aplicação devem passar como mostra a figura 03.

Figura 03. Filtragem em nível de aplicação Fonte: GTA, UFRJ (2005)

Vários gateways de aplicação podem executar no mesmo hospedeiro, mas cada gateway é um servidor separado, com seus próprios processos. (KUROSE & ROSS, 2006). O aplicativo de proxy como (ou gateway de aplicação como é as vezes chamado) varre todos os dados que passam por ele e descarta os pacotes de dados


24 perigosos ou não autorizados. Quando uma maquina na rede externa tenta se comunicar com um host interno, o proxy simula o host interno. Da mesma maneira um computador interno faz uma solicitação para um cliente externo, o aplicativo de proxy recebe o pedido e checa o pacote com as regras previamente configuradas, então gera um novo pacote e envia o pedido para o destino. Quando receber a resposta, o firewall a examinará, e se estiver de acordo com as regras ele irá construir um novo pacote e o enviará para o computador interno. O resultado disso é que um host interno nunca será exposto ao meio externo. As vantagens na utilização de aplicativos de proxy são: fornecem o mais alto grau de segurança, uma vez que não permite que os pontos de término não se comuniquem diretamente; oferecem a melhor capacidade de filtragem; autenticam de maneira abrangente as atividades dos usuários e de logs, assim assegurando um alto grau de segurança; estão baseados em diretivas que podem ser facilmente configuradas, e portanto, é mais fácil configurar um aplicativo firewall e de proxy do que um firewall de filtragem de pacotes com informações de estado que opere com as regras de filtragem de pacotes. Mas há varias desvantagens também: são os mais lentos entre os tipos de firewalls; requerem um software de proxy separado para cada protocolo; estão suportados no TCP e não podem suportar o UDP; requerem alterações de configurações para todos os hosts internos e são os mais caros entre os tipos de firewalls. (CHESWICK, BELLOVIN, RUBIN, 2005).

2.3.4 FIREWALLS DISTRIBUIDOS Os avanços tecnológicos têm produzido uma nova forma de firewall que ainda não se encontra em sua plenitude. Neste tipo de firewall cada host pratica a observância da política de segurança individualmente, porém essa política é configurada em um nó central de gerenciamento e depois transmitida para cada um dos hosts no domínio de gerenciamento. O administrador não precisa fazer uma caixa separada na periferia da rede para negar os pacotes recebidos na porta 80, por exemplo, ele cria uma regra para bloquear esse tipo de conexão e distribui para cada host no seu domínio. Esse esquema possui muitas vantagens, incluindo a ausência de um ponto central de falha e a capacidade de proteger maquinas que não estão dentro de um espaço topologicamente isolado. Entretanto ao impor essa


25 restrição acaba com uma das vantagens dos firewalls distribuídos: a capacidade de vagar com segurança. A solução então é utilizar o IPsec para identificar pares confiáveis, isso significa que uma maquina é confiável se, e somente se, puder efetuar uma autenticação criptográfica adequada, seu endereço IP é irrelevante. (CHESWICK, BELLOVIN, RUBIN, 2005).

2.4 NETWORKS ADDRESS TRANSLATION (NAT) Para poder se conectar com a internet os computadores precism de um endereço de IP único. Como o numero de pessoas e empresas que aderrem a internet cresce exponencialmente em todo mundo ocorreu o problema da escarces de endereços. A solução encontrada foi o IPV6, porém o fato de ter que modificar a infra-estrutudra da internet foi tida como solução a longo prazo. A solução a curto prazo foi o NAT . (SCRIMGER ET. AL. 2002).

Figura 04. Representação de NAT. Fonte: GTA, UFRJ (2007)

Ainda por SCRIMGER ET. AL. (2002), o NAT possibilitou aos computadores conectados a internet usarem um leque de IPs privados que não está em uso na internet. A figura 03 demostra que quando o computador se conecta com a internet, o NAT troca o IP privado do computador que esta no campo source IP no cabeçalho pelo seu próprio IP publico e envia o pacote para rede externa. Assim o destinatário


26 pensa que o emissor original seja o NAT e manda um pacote de resposta para o IP publico do NAT, então o NAT recebe o pacote e destroca o endereço o enviando para o endereço privado. Pode se dizer que o NAT protege IPs porque ele nunca expõe os endereços privados na internet. Com isso muitas empresas ou redes domésticas podem utilizar o mesmo leque de endereços privados, tendo apenas um (ou poucos) endereços públicos. O NAT guarda uma listar com os endereços que são trocados por cada endereço original. Ele tem mais de um endereço publico caso mais de um computador de rede interna precise se comunicar com a internet. Esse problema também pode ser resolvido não mudando o endereço IP do emissor, mas sim a sua porta por uma menor que 1023, com isso o NAT terá que guardar uma lista contendo o numero das portas e suas respectivas maquinas. O NAT possui outros aspectos de segurança como um mecanismo que substitui os IPs, ele guarda os verdadeiros na rede interna. Isto é uma vantagem e essa vantagem faz com que quase todos os firewalls façam uso do NAT. Associado a firewalls o NAT é visto como um método de segurança. O IP masquerading é um termo normalmente usado para o NAT e reforça a idéia de esconder os IPs. O NAT não protege a rede interna, se o computador da rede interna for burlado e fizer uma conexão com um computador não confiável na internet o NAT irá jogar os pacotes de um lado para o outro, por isso sempre se deve combinar um NAT com um firewall de filtragem de pacotes de estado. Normalmente o NAT fica como uma função automática do firewall, diferentemente da filtragem de pacotes onde tudo que deve ser permitido tem que ser especificado. (COMER, 2007).

2.5 ARQUITETURAS Não existe uma arquitetura universal, o que se tem é uma variação da disposição básica dos componentes que compõem o firewall a depender dos requisitos de segurança exigidos, as mais utilizadas são Dual-Homed Host, Screened Host e Screened Subnet. (CLARK, 2003).


27

2.5.1 DUALHOMED HOST Este tipo de arquitetura utiliza uma maquina com duas interfaces de rede, uma para rede externa (internet) e outra para rede interna interligando as duas como um gateway como demonstrado na figura 04, entretanto não existe a função de roteamento e os pacotes não podem ser roteados entre as redes garantindo assim um isolamento do trafego. Essa máquina é chamada de bastion host por fornecer um serviço de missão crítica, tais serviços são ofertados por meio de Proxy ou de login direto do dual-homed host, esta ultima opção pode comprometer a segurança devido a vulnerabilidade de senhas e a possibilidade de usuários habilitarem serviços não seguros. (CLARK, 2003).

Figura 05. Arquitetura Dual Homed Host. Fonte: UFMG, (2010)

2.5.2 SCREENED HOST Neste tipo de arquitetura os serviços são oferecidos pelo bastion host que se localiza na rede local, possuindo assim uma única interface de rede que efetua o roteamento dos pacotes os separando da internet e o roteador com o firewall implementado nele. Seu funcionamento é apresentado na figura 05 e se dá principalmente por filtragem de pacotes onde o roteador é previamente configurado de tal forma que o bastion host seja o único elo a receber conexões oriundas da


28 internet, protegendo a rede privada contra conexões não autorizadas. Devido ao posicionamento do bastion host na arquitetura, esse modelo pode parecer pouco seguro, porém permite o acesso a seus serviços sem existir concorrência na rede, uma vez que todo o processo de filtragem ocorre no roteador. (CHAPMAN, 1995).

Figura 06. Arquitetura Screened Host. Fonte: UFMG, (2010)

2.5.3 SCREENED SUBNET Esta arquitetura tem como característica básica a adição de uma camada a mais de segurança através de uma subrede chamada de DMZ. As DMZs são compostas por três componentes, dois roteadores e um bastion host, como e demonstrada na figura 06. O primeiro roteador (o externo) tem funcionalidades parecidas ao descrito na arquitetura screened host e é responsável por proteger a DMZ e a rede interna contra a rede externa, este roteador tem uma capacidade de identificar endereços de fontes fraudulentas, quando pacotes chegando da rede externa possuem endereço fonte de um host da rede interna. O roteador interno possui as principais regras de filtragem. Dentre suas responsabilidades, pode-se citar: restringe que hosts internos abram uma conexão direta com a rede externa para serviços que possuam proxy, seleciona os serviços confiáveis que são disponibilizados exclusivamente via filtragem de pacote e restringe certos tipos de


29 conexão do bastion host cujo destino não seja um host preestabelecido, tal como um servidor de email.

Figura 07. Arquitetura Sreened subnet. Fonte: UFMG, (2010)

O bastion host, localizado na DMZ, é o único host acessível por hosts externos. Este suporta diversos serviços via proxy. Tal arquitetura possui como vantagens adicionais o fato que uma quebra de segurança do bastion host não permite a visibilidade do tráfego da rede interna, além de providenciar um terceiro nível de segurança através do roteador interno. (CLARK, 2003).

2.6 FIREWALL IPTABLES No kernel do LINUX 2.4, foi inserido o firewall iptables (também conhecido por netfilter) que substitui ipchains dos kernels da serie 2.2. As vantagens deste novo firewall é que ele tem uma maior estabilidade, é mais confiável, tem maior flexibilidade na programação de regras pelo administrador do sistema, permiti um maior numero de opções para o administrador para controle de acesso e controle independente do trafego da rede local/entre redes/interfaces devido à organização


30 das etapas de roteamento de pacotes. Como visto anteriormente o iptables é um firewall que trabalha com filtragem de pacotes state full. Seu funcionamento se dá por meio da comparação de regras para saber se um pacote tem ou não permissão para passar. Este firewall também pode ser usado para fazer NAT (masquerading, source NAT, destination NAT), marcação de pacotes, modificação e monitoramento do trafego na rede, modificar a prioridade de pacotes que chegam/saem do sistema, contagem de bytes, dividir entre trafego maquinas, criar proteções anti-spoofing, contra synflood, DoS, etc. Regras simples podem ser usadas para bloquear/registrar o trafego vindo de maquinas da rede. Dependendo da imaginação do administrador as possibilidades oferecidas pelos recursos de filtragem iptables são amplas e garante uma flexibilidade na manipulação das regras de acesso ao sistema, precisando apenas conhecer quais interfaces que o sistema possui, quais serviços devem estar acessíveis para cada rede, o que deve ser bloqueado, o que deve ser permitido, e começar a construir o firewall. (SILVA, 2007).

2.6.1 FUNCIONAMENTO O firewall iptables é dividido em três tabelas basicas que por sua vez são subdivididas em listas de regras, ests listas são chamadas de chains. As tabelas basicas são Filter, NAT e Mangle, cada uma com suas chains primarias.

2.6.2 A TABELA FILTER A tabela filter do iptables esta dividida em três chains: INPUT, FORWARD, OUTPUT. Chains são locais onde as regras definidas pelo usuário são armazenadas para operação do firewall. Existem dois tipos de chains: os embutidos (como os chains INPUT, OUTPUT e FORWARD) e os criados pelo usuário. Os nomes dos chains embutidos devem ser especificados sempre em maiúsculas (observe que os nomes dos chains são case-sensitive, ou seja, o chain input é completamente diferente de INPUT). (SILVA, 2007).


31 A figura 07 mostra o esquema da tabela filter, a chain INPUT é a regra responsável por fazer a filtragem do tráfego entrante no firewall. Como exemplo, se o serviço SSH for configurado neste computador, é nessa chain que deverá ser liberado o acesso de entrada, já a chain OUTPUT é a regra que faz a filtragem de saída do firewall e seguindo o exemplo se o serviço SSH estiver configurado é nesta chain que deverá ser liberado o acesso de saída. A chain FORWARD é a regra que faz a filtragem do trafego que passa pelo firewall, tudo o que dever ser redirecionado a outra interface de rede ou a outro host. (NETO, 2004).

Figura 08. Esquema da tabela Filter. Fonte: ERIBERTO (2010)

2.6.3 MANIPULANDO CHAINS E REGRAS Antes de manipular as chains o administrador deve definir a política de segurança que adotará. Essa política de segurança é definida com base no que se pretende da rede. Existem duas ações para definir a política, ACCEPT para aceitar e DROP para bloquear. Inicialmente o iptables possui por padrão todas as três chains zeradas, ou seja, não existe nehuma regra dentro delas, e todas as chains tem a política ACCEPT, o que significa que permitirá todo o trafego. As chains


32 primárias INPUT, OUTPUT, FORWARD não podem ser apagadas. Para manipular as chains usa-se a sintaxe e as operações seguintes: # iptables -[operações] [chain] [ACCEPT/DROP/NomeDaNovaChain]

- N : Cria uma nova chain; - F. Apaga todas a regras em uma chain; - X : Apaga uma chain vazia; - P : Muda a política de uma chain; - L : Lista todas as regras da chain; - Z : Zera os contadores de pacotes e bytes de todas as regras de uma chain. Exemplo é: # iptables – P INPUT DROP Que muda a política de segurança da chain INPUT, sgnificando que todo trafego entrante deve ser bloqueado. (SILVA, 2007). Boa parte das atividades do administrador estará envolvida na manipulação das regras dentro das chains. Para operar a manipulação das regras de filtragem geralmente se segue um formato padrão que são compostas da seguinte maneira: # iptables [-t tabela] [opção] [chain] [dados] -j [ação] Operações: - A. Adiciona uma nova regra na chain; - I. Inseri uma nova regra em alguma posição da chain; - R. Substitui uma regra em alguma posição da chain; - D. Apaga uma regra em uma posição da chain ou a primeira regra associada a uma condição na chain; Exemplo: # iptables -A FORWARD -d 192.168.1.1 -j DROP Na linha acima é determinado que todos os pacotes destinados a maquina 192.168.1.1 serão descartados. Note que neste caso a regra não especifica a tabela, o iptables assume a tabela filter como default (padrão). Analisando este exemplo temos que a tabela é a filter (padrão), a opção é – A, a Chain é a FORWARD, a ação é de DROP (bloqueio) e os dados são -d 192.168.1.1 (local de destino). (SILVA, 2007).


33

2.6.4 TABELA NAT Segundo Neto (2004), essa tabela está dividida em três partes, prerouting destination-NAT (DNAT): é a regra usada para processar alterações em pacotes antes do roteamento; como um exemplo pode se citar um firewall de borda que deverá encaminhar as requisições do HTTP, porta 80, para o servidor de paginas que esta na DMZ, então a regra a ser usada é nessa chain, pois ela trata o destino do NAT, que faz a tradução de endereços. Postrouting source-NAT (SNAT): é a regra usada para fazer as alterações nos pacotes depois do roteamento. Por exemplo, o servidor de paginas HTTP, porta 80, não deve retornar seu IP de origem na DMZ, mas sim um endereço IP valido na internet, que está na interface de rede do firewall de borda. Sendo assim essa é a regra a ser usada por ela tratar a origem de endereços IP.

OUTPUT (NAT): é a regra que bloqueia ou libera todos os

pacotes com origem no host firewall. Por exemplo, a saída do serviço de SSH. O esquema da tabela NAT esta representado na figura 08. (SILVA, 2007).

Figura 09. Esquema da tabrla NAT. Fonte: ERIBERTO, (2010)

2.6.5 TABELA MANGLE Essa tabela que faz alterações especiais nos pacotes em um nível de complexidade maior, permitindo alterar a prioridade do pacote, seja ele de entrada


34 ou saída, conforme seu ToS (Tipo de seviço). Esta tabela é composta por cinco chains e pode ser utiliza independente do tipo de firewall implementado. Prerouting: altera ou marca os pacotes antes do roteamento. Input: altera ou marca os pacotes de entrada no host firewall, Forward: altera ou marca os pacotes que são redirecionados a outro host ou interface de rede, Output: altera ou marca os pacotes gerados localmente antes de serem roteados, Postrouting: altera ou marca os pacotes após o roteamento. Todas as chains ou regras mencionadas da tabela mangle, são interpretadas antes da tabela filter e NAT, sempre correspondendo diretamente à regra das tabelas seguintes, fazendo a alteração ou marcação do pacote conforme seu ToS. Por exemplo, se for alterado o ToS do tráfego de saída do host firewall, na regra postrouting, ele primeiro passará pela tabela mangle e depois pela tabela NAT na regra correspondente, no caso a regra postrouting. (NETO, 2004). O tipo de serviço, ToS, é um campo no cabeçalho do protocolo IP versão 4, que tem a finalidade de especificar qual a prioridade do pacote, conforme definição do algoritmo FIFO, ou fila, do próprio kernel do Linux. A vantagem de utilizar o ToS é a priorização dos serviços. Todos os pacotes têm a prioridade normal de serviço no cabeçalho, mas este campo pode ser alterado, que é o que a tabela mangle sugere, ou seja, um pacote pode ser marcado com um nível de prioridade maior, conforme o tipo de serviço. Os valores aceitos pelo campo no cabeçalho do protocolo IP com suas definições são: • 0 ou 0x00: é a especificação para prioridade normal ou Normal-Service; • 2 ou 0x02: é a especificação para custo mínimo ou Minimize-Cost; • 4 ou 0x04: é a especificação para máxima confiança ou MaximizeReability; • 8 ou 0x08: é a especificação para máximo processamento ou MaximizeThroughput; • 16 ou 0x10: é a especificação para espera mínima ou Minimize-Delay; Sendo assim a tabela mangle marca ou altera o campo no cabeçalho do protocolo IP, conforme a prioridade especificada pelo administrador do sistema firewall. (SILVA, 2007).


35

2.6.6 ALGUMAS CARACTERISTICAS DO IPTABLES Especificação de portas/endereço de origem/destino; Suporte a protocolos TCP/UDP/ICMP (incluindo tipos de mensagens icmp); Suporte a interfaces de origem/destino de pacotes; Manipula serviços de proxy na rede; Tratamento de tráfego dividido em chains (para melhor controle do tráfego que entra/sai da máquina e tráfego redirecionado); Permite um número ilimitado de regras por chain; Muito rápido, estável e seguro; Possui

mecanismos

internos

para

rejeitar

automaticamente

pacotes

duvidosos ou mal formados; Suporte completo a roteamento de pacotes, tratadas em uma área diferente de tráfegos padrões; Suporte a especificação de tipo de serviço para priorizar o tráfego de determinados tipos de pacotes; Redirecionamento de portas; Masquerading; Suporte a SNAT (modificação do endereço de origem das máquinas para um único IP ou faixa de IP's); Suporte a DNAT (modificação do endereço de destino das máquinas para um único IP ou fixa de IP's); Limitação de passagem de pacotes/conferência de regra (muito útil para criar proteções contra, syn flood, ping flood, DoS, etc). (SILVA, 2007).

O iptables é uma ferramenta versátil que possibilita ao administrador uma maior flexibilidade para configurar as regras ditadas pela política de segurança predefinida pela empresa. Esta ferramenta tem um manuseio razoável, porém é preciso um conhecimento sobre sua sintaxe e linhas de comando. O usuário pode encontrar alguma dificuldade em gerenciar as regras devido a quantidade de regras para se configurar um firewall.


36

3 TRABALHOS RELACIONADOS Foi encontrado na pesquisa um trabalho já publicado que tem uma relação próxima com o objetivo deste trabalho. O titulo do trabalho é “Gerenciamento de regras de firewall iptables em ambiente Linux” e foi escrito por Claydson Jonathas Esquivel, no ano de 2006 como trabalho de final de curso para obtenção de grau de bacharel em sistemas de informação na UNIMINAS. O trabalho de Esquivel (2006) tem como objetivo o desenvolvimento de uma ferramenta para facilitar o gerenciamento das regras de configuração do firewall iptables permitindo que o administrador do sistema gerencie vários servidores, adicionando ou modificando as regras para o firewall em um ambiente gráfico amigável. O projeto teve como foco usuários que atuam como administradores de redes em empresas e que tem um conhecimento avançado sobre redes de computadores, protocolos de comunicação, administração de servidores Linux e conceitos de segurança. Foi definido nos requisitos o que fez e o que não fez parte do sistema na versão apresentada. Nesta descrição contém os requisitos funcionais, nãofuncionais e os não-requisitos. Entre os requisitos funcionais tem-se que o sistema deve permitir o acesso a cadastro e manutenção dos usuários, controle sobe login e senha, cadastro e manutenção de portas, o sistema deve permitir a adição e manutenção das regras do iptables e exportar em arquivo-texto regras já criadas para outro servidor. Após a apresentação dos requisitos funcionais Esquivel (2006) fez o modelo de casos de uso apresentando telas, o fluxo de eventos relacionados e também suas prioridades. Nos não-requisitos Esquivel mostra que o sistema não irá gerenciar o iptables com versão abaixo da 2.4 ou qualquer outro tipo de firewall. Diz também que não funcionará no sistema operacional Linux. Após os casos de uso foi feita uma modelagem dos dados da ferramenta (firewall construtor). O fluxo de utilização do sistema informa que o usuário deve se cadastrar e configurar algumas informações como (protocolos, portas, hosts). Depois do cadastro básico realizado iniciam-se as atividades que tem como objetivo principal a criação de configuração e a aplicação das regras. As atividades começam com login e senha no aplicativo e depois com uma configuração para o usuário, o passo seguinte é modelar a interface de rede fazendo depois a seleção da configuração criada e dar inicio a


37 criação das regras. Ao final pode-se solicitar a exportação das regras para arquivo ou a aplicação direta no servidor. Segue abaixo algumas images da interface da ferramenta. Outro trabalho encontrado foi um artigo escrito por Éder Novaes Silva com o titulo “SQUID MANAGEMENT TOOL: Uma ferramenta de gerencia remota para o servidor Proxy”, apresentado na instituição de ensino FTC (Faculdade de Tecnologia e Ciências) campus de Vitória da Conquista – BA, apresentado com trabalho de conclusão do curso de Sistemas de informação. Este artigo teve como objetivo a criação de uma ferramenta que apresente um layout de configuração e criação de um servidor Proxy através de uma interface gráfica amigável. A ferramenta deve auxiliar o administrador de redes a gerenciar o acesso dos usuários e na geração de relatórios. Segundo Éder (2007) foi feito um estudo para verificar se existia alguma ferramenta no mercado. Os requisitos foram levantados por meio de entrevistas ao público-alvo levando em consideração as regras que já são trabalhadas na gerencia remota, a entrada e saída de dados e a geração de relatórios a partir das informações coletadas. Éder evidenciou em seu artigo os conceitos de redes de computadores, gerenciamento de redes e gerenciamento remoto, o serviço Proxy e suas características e mostrou algumas ferramentas com suas funcionalidades. Foram apresentadas ainda as telas da ferramenta desenvolvida. No artigo publicado por Luciana Fernandes Correia Santos como trabalho de conclusão de curso na Faculdade de Tecnologia e Ciencias (FTC), campus de Vitória da Conquista-BA, foi proposto o desenvolvimento de uma ferramenta alternativa de gerenciamento remoto de servidores GNU/Linux. A ferramenta é baseada em várias interfaces, tendo cada uma delas uma finalidade especifica. Segundo Luciana (2007) a ferramenta será instalada em um servidor central e deverá ter cadastrados todos os IP‟s dos servidores espalhados em cada cliente. De acordo com um tempo estipulado pelo administrador da rede, ela envia mensagens ICMP (pings) para todos os servidores e aguarda o retorno de cada uma. Caso exista naquele momento algum servidor desligado e que não responda ao comando da ferramenta, será acionado um alerta ao setor responsável e será enviado via email. Essa ferramenta tem como função principal prever, diagnosticar e resolver pequenos problemas de parada de serviços, de forma automática, eliminando o


38 período de tempo existente entre a parada do serviço, o diagnóstico e a solução do problema por um gerente de rede. Todos esses trabalhos mosntram de alguma maneira problemas relacionados ao gerenciamento de redes ou de mecanismos de controles de acesso e a complexidade envolvida na configuraçao desses mecanismos, outro ponto em comum é a proposta de desenvolvimento de ferramentas para solucionar estes problemas.


39

4 PROJETO E ANÁLISE DA FERRAMENTA Neste capitulo será apresentada a descrição do projeto apresentado mostrando as especificaçoes do sistema a ser desenvolvido para resolução do problema anteriormente descrito relativo a configuração do firewall iptables.

4.1 VISÃO GERAL DO SISTEMA O sistema foi chamado de IF (IPTABLES FACIL) e tem como objetivo principal a finalidade de simplificar e facilitar a configuração do mecanismo de controle de acesso (firewall iptables) do sistema operacional Linux. O sistema irá permitir ao usuário definir as interfaces de rede, especificar o bloco de regras, escolher a política de segurança, e selecionar os serviços a serem liberados ou bloqueados em um ambiente gráfico de fácil utilização.

4.2 DESCRIÇÃO DOS USUÁRIOS O IF tem como foco todos os tipos de usuários que tenham alguma preocupação na segurança das informações que trafegam na sua rede. Para utilizar o sistema o usuário necessitará dispor de conhecimentos basicos em redes de computadores, Linux, conceitos de segurança e firewalls.

4.3 DESCRIÇÃO DOS REQUISITOS Neste tópico será apresentado o diagrama de caso de uso do sistema mostrando as funcionalidades da ferramenta, seus requisitos funcionais, requisitos não-funcionais, não requisitos e a descrição dos seus fluxos de eventos.


40

Figura 10. Diagrama de caso de uso do sistema.

4.3.1 REQUISITOS FUNCIONAIS [RF001]. O sistema deve permitir a criação de interfaces de rede e possibilitar o cadastramento das informações das mesmas. Atores: Usuário Prioridade: Essencial (X)

Importante ( ) Desejável ( )

Pré-condições: Acionar o botão de interfaces na barra de ferramentas e escolher o local na área de trabalho. Fluxo de eventos principais: 1) O usuário clica no botão de interfaces. 2) O usuário define o local na área de trabalho onde será inserido o ícone da interface. 3) O sistema exibe uma janela para que o usuário possa inserir os dados referente a interface. 4) O sistema desenha o ícone da interface indicando seu tipo (interna ou DMZ).


41 [RF002]. O sistema deve permitir a criação de blocos de regras e possibilitar a escolha das informações para a configuração do mesmo. Atores: Usuários Prioridade: Essencial (X)

Importante ( ) Desejável ( )

Pré-condições: Acionar o botão de regras na barra de ferramentas e definir a premissa da política de segurança. Fluxo de eventos principais: 1) O usuário seleciona a premissa da política de segurança desejada no botão de premissa indicado na barra de ferramentas. 2) O usuário clica no botão de regras. 3) O usuário define o local na área de trabalho onde será inserido o ícone do bloco de regras. 4) O sistema desenha o ícone do bloco de regras. 5) O usuário clica em cima do ícone do bloco de regras e o sistema exibirá uma janela para que o usuário possa fazer a configuração. 6) O usuário seleciona um serviço na lista de serviço exibida pelo sistema. 7) O usuário determina qual o tipo de regras será inseridas.

[RF003]. O sistema deve permitir que seja feita a ligação entre os blocos de regras e as interfaces de redes. Atores: Usuário Prioridade: Essencial (X)

Importante ( ) Desejável ( )

Pré-condições: Acionar o botão de ligação na barra de ferramentas. Fluxo de eventos principais: 1) O usuário clica no botão de ligação. 2) O usuário seleciona o primeiro item com um clique sobre o ícone da interface. 3) O usuário seleciona o segundo item com um clique sobre o ícone do bloco de regras. 4) O sistema desenha a ligação entre os ícones.


42 Fluxo secundário: 1) O usuário clica no botão apagar ligação na barra de ferramentas. 2) O usuário seleciona o primeiro item com um clique sobre o ícone do mesmo. 3) O usuário seleciona o segundo item com um clique sobre o ícone do mesmo. 4) O sistema irá excluir a ligação entre os ícones selecionados. [RF004]. O sistema deve permitir que a configuração seja salva em um arquivo XML para que possa ser carregado posteriormente pelo usuário. Atores: Usuário Prioridade: Essencial (X)

Importante ( ) Desejável ( )

Pré-condições: Existir uma configuração a ser salva ou carregada. Fluxo de eventos principais: 1) O usuário clica na barra de menu e seleciona a opção salvar. 2) O sistema abre uma janela para que o usuário possa escolher o nome do arquivo e o local onde será guardado o mesmo. 3) O sistema salva o arquivo XML com nome e local especificado. Fluxo secundário: 1) O usuário clica na barra de menu e seleciona a opção abrir. 2) O sistema abre uma janela para que o usuário possa escolher o arquivo selecionado. 3) O sistema carrega o arquivo e monta a visualmente a configuração na tela. [RF005]. O sistema deve criar scripts contendo regras e interfaces e possibilitar a aplicação dos mesmos. Atores: Usuário Prioridade: Essencial (X)

Importante ( ) Desejável ( )

Pré-condições: Existir uma configuração a ser salva ou que esteja carregada. Fluxo de eventos principais: 1) O usuário clica no botão aplicar. 2) O sistema gera o script contendo a configuração a ser aplicada.


43

4.3.2 REQUISITOS NÃO-FUNCIONAIS Usabilidade: [NF001]. O sistema deverá apresentar uma interface gráfica de fácil utilização para o usuário. Confiabilidade: [NF002]. O sistema deve se manter estável e confiável em todo processo. Hardware e Software: [NF003]. O sistema será desenvolvido com a tecnologia Java. [NF004]. O sistema será desenvolvido para funcionar em sistema operacional Linux. [NF005]. O sistema deve funcionar em ambientes com configuração mínima de 256MB de memória, Processado 1Ghz e 7GB de HD.

4.3.3 NÃO REQUISITOS [NR001]. O sistema não funcionará para firewalls com versões de iptables inferiores a 2.4. [NR002]. O sistema não funcionará para outros tipos de firewalls a não ser o iptables. [NR003]. O sistema não será desenvolvido para funcionar em outros sistemas operacionais. [NR004]. O sistema não disponibilizará todos os serviços abaixo da porta 1023.

4.3.4 DIAGRAMAS DE SEQUÊNCIA Será apresentado os diagramas de sequencia da criação de regras, criação das interfaces de rede, criação das ligações entre elas e o diagrama de sequencia de gerar e aplicar o script.


44 Diagrama de sequencia para criar interface de rede:

Figura 11. Diagrama de sequencia de interfaces de rede.


45 Diagrama de sequencia para criar regras:

Figura 12. Diagrama de sequencia Regras


46 Diagrama de sequencia de ligação entre as interfaces e regras:

Figura 13. Diagrama de sequencia de Ligaçao


47 Diagrama de sequencia para gerar e aplicar script:

Figura 14. Diagrama de sequencia de Aplicaรงao


48

5. APRESENTAÇÃO DA FERRAMENTA E TESTES REALIZADOS Neste capitulo será apresentado um ambiente de teste para que possa ser apresentada a ferramenta. O ambiente de teste tem o objetivo de demonstrar as funcionalidades contidas na ferramenta com o intuito de solucionar os problemas descritos anteriormente.

5.1 CENARIO DE TESTE O cenário de teste foi montado com três interfaces de redes, sendo duas interfaces internas e uma interface sendo a DMZ. Todas as interfaces internas bem como o firewall utilizam o sistema operacional Linux. A figura 10 mostra como foi montado o esquema da rede.

Figura 15. Esquema do cenário de teste.

Para a interface de rede 1 foi colocado o endereço de IP 192.168.0.3 e a mascara de rede 255.255.0.0, para esta interface deverá ser liberados os serviços de SMTP, POP3 e IMAP. Para a interface de rede 2 foi atribuído o IP 100.0.0.5 e mascara de rede 255.0.0.0, para esta interface será liberado o serviço FTP e SSH. Para todas será liberado o HTTP. A interface 3 terá o IP 200.50.118.35 e mascara de rede 255.255.255.255 e será a DMZ. A ferramenta só funcionará com os privilégios de super-usuário para executar sua funçoes, para isso foi feito um script contendo o comando indicando o


49 caminho da pasta do executável (cd /home/administrado/mikescript), e o comando para executá-lo (sudo Java –jar teste.jar). Depois foi acessado o terminal para dar permissão para o script ser executado (sudo chmod a+x /home/administrador/ mikescript/Script_root), em seguida foi criado um lançador na área de trabalho do Linux com o nome (teste) e o comando para executar o script (gksu /home/ administrador/mikescript/Script_root). Com esse procedimento feito o usuário sempre terá que inserir a senha de super-usuário para poder iniciar a ferramenta garantindo assim um nível de segurança mais elevado.

5.2 APRESENTAÇAO DA FERRAMENTA Este tópico mostrará os passos que o usuário deve seguir para configurar o firewall de acordo com o cenário de teste, será também mostrada a tela associada ao final dos passos. O usuário irá clicar no ícone na area de trabalho e o sistema irá solicitar a senha de super-usuário para confirmar se o usuário tem ou não permissão para utilizar a ferramenta.

Figura 16. Tela pedido de autorizaçao.


50 Após a permissão dada a ferramenta irá iniciar com permissão de superusuário e estará apta a fazer as modificações no sistema. A figura 13 mostra a tela inicial da ferramenta.

Figura 17. Tela inicial.

O usuário da inicio ao processo de criação de interfaces de rede clicando no botão (Nova Interface) na barra de ferramentas e depois clica no local onde deseja que o ícone da interface seja desenhado na área de trabalho, imediatamente o programa exibe uma tela para o usuário digitar as informações da interface.

Figura 18. Configuraçao da interface de rede.


51 O ícone será desenhado com a cor verde se o usuário escolher o tipo de interface “interna” e com a cor azul se for do tipo “DMZ”. Este procedimento pode ser repetido varias vezes de acordo com a necessidade da configuração que o usuário deseja criar.

Figura 19. Tela de interfaces.

Após a criação das interfaces o usuário deverá especificar a premissa do bloco de regras, selecionando o tipo de premissa desejada na barra de ferramentas, por padrão a premissa estará setada em fechada assumindo a política de segurança em que tudo deve ser bloqueado menos o que seja explicitamente liberado. Para iniciar o processo de criação do bloco de regras o usuário deve clicar no botão Nova regra e escolher o local onde será inserido o ícone do bloco de regras, após o clique na área de trabalho será exibida uma janela onde o usuário deverá configurar o serviço. Na janela de configuração o usuário poderá escolher o serviço em uma lista de seleção no canto superior esquerdo, ao seu lado será exibida a ação que a regra ira aplicar e ao lado da informação uma opção para a escolha do tipo de aplicação da regra. Abaixo do lado direito tem uma caixa com as interfaces de redes que o usuário quer associar o serviço, ao lado desta caixa uma outra contendo as


52 interfaces já associadas, abaixo tem uma caixa de texto que mostrar o código das regras do serviço já com as interfaces associadas e por fim os botões de salvar e cancelar.

Figura 20. Configuração do bloco de regra do serviço.

Após este passo será desenhado na área de trablho uma caixa vermelha com o nome do serviço selecionado e uma caixa em tom azul claro simbolizando que o serviço faz parte do firewall.

Figura 21. Firewall inserido.


53 Para inserir novos serviços ao firewall o usuário deve setar o botão nova regra na barra de ferramentas e clicar dentro ou proxmo a área do firewall que a janela de configuração de serviços será exibida possibilitando a configuração de um novo serviço.

Figura 22. Configuraçao do firewall.

Se o usuário desejar inserir/remover uma ligação de uma interface a um serviço ele poderá clicar com o botão direito do mouse em cima do serviço desejado e incluir/remover a interface através da janela de configuração do serviço, ou pode clicar no botão de ligação (para adicionar ligação) ou remover ligação (retirar uma ligaçao), na barra de ferramentas e clicar no serviço desejado e na interface que deseja associar o serviço. Para salvar o arquivo de configuração o usuário de clicar no botão na barra de menu e selecionar salvar, será exibida uma janela solicitando que o usuário especifique o nome e o local do aquivo para salva-lo.


54

Figura 23. Salvar configuração.

Após salvar o arquivo de configuração a ferramenta mostrará uma mensagem dizendo se ocorreu tudo bem ou se ocorreu um erro.

Figura 24. Configuração salva.

Para carregar uma configuração feita anteriormente o usuário deve clicar na barra de menu em arquivo e selecionar abrir, selecionar o arquivo desejado e clicar em open, a ferramenta mostrará a configuração na tela. Por fim para exportar o arquivo de configuração para o firewall o ususario deve clicar em exportar configuração na barra de menu e depos selecionar aplicar, a ferramenta então exibirá uma janela para que o usuário possa indcar o local e o


55 nome do arquivo (script) para ser gravado e aplicado.A ferramenta aplicará o script e enviará uma mensagem de sucesso ou erro.

Figura 25. Script aplicado.

5.3 RESULTADOS Após a aplicação do script no sistema foi feito alguns procedimentos par verificar se a ferramenta realmente funcionou. A fim de obter a confirmação de que as interfaces de redes foram criadas abriu-se o terminal do Linux (Aplicativos -> Acessórios -> Terminal) e digitou-se o comando (sudo ifconfig), após colocar a senha solicitada obteve-se a confirmação da criação das interfaces como mostrado na figura 19.

Figura 26. Verificaçao das interfaces.


56 Ainda no terminal usou-se o comando (sudo iptables -L) para listar as regras do firewall iptables. A figura 20 comprova o funcionamento da ferramenta mostrando que foram inseridas as regras referentes a configuração do firewall.

Figura 27. Regras inseridas.

5.4 ANALISE DOS RESULTADOS Depois de confirmar a execução do script pela ferramenta fez-se uma analise do script para avaliar o grau de eficiência e satisfação do mesmo. Essa analise levou em consideração a quantidade de regras geradas e o nível de detalhamento que as regras permitem. Quanto a quantidade de regras originadas pela ferramenta obteve-se no script o mesmo número de regras que se conseguiria se o firewall fosse configurado


57 diretamente no terminal através de linhas de comandos, obtedo assim um nível de eficiência satisfatório. Porém quanto ao nível de detalhamento das regras geradas no script, observou-se que as regras possuem um nível de detalhamento intermediário quando comparadas com as regras inseridas diretamente no terminal atravez de linha de comando. As regras no script não permitem, por exemplo, a liberação de um serviço entre as interfaces internas somente, se algum serviço for liberado este será liberado da interface interna para todas as outras interfaces inclusive a interface DMZ. Foi observado também que a ferramenta não faz a configuração da tabela mangle que muda a prridade dos pacotes no firewall.


58

6 CONCLUSÃO No sistema operacional Linux o firewall iptables constitui-se em um dos principais meios de segura dos dados trafegados na rede. Esse firewall funciona através dea filtragem de pacotes de acordo com as regras e configurações previamente estabelecidas. A criação e o gerenciamento da configuração das regras de um firewall iptables são tarefas trabalhosas, realizadas em sua maioria em ambiente texto, com linhas de comando, exigindo uma atenção adicional dos administradores de rede. O objetivo deste trabalho foi apresentar uma alternativa para facilitar esta tarefa de criação e configuração de regras, através de uma ferramenta com interface gráfica de fácil manuseio para os usuários. Com a ferramenta proposta o usuário pode utilizar os recursos gráficos da interface (como clicar e selecionar) para criar interfaces de rede e bloco de regras de maneira fácil e ágil. Além disso, a ferramenta pode salvar a configuração em um arquivo para que possa ser carregada posteriormente. A partir dos resultados obtidos verificou-se que foram criadas as interfaces de rede e as regras no iptables, confirmando a funcionalidade da ferramenta. Com essa confirmação ficou evidenciado que para o usuário configurar seu firewall através do IF só é preciso saber a lógica da sua configuração, ou seja, saber qual serviço será bloqueado ou liberado a depender da política de segurança desejada, tornado a configuração do firewal mais simples. A ferramenta tornou a escrita das regras do iptables invisível para o usuário, isso significa que o mesmo não precisa ter o conhecimento aprofundado da sintaxe para configurar seu firewall, este fato se concretiza na solução do problema do elevado grau de conhecimento requerido pelos administradores de redes exposto na problematização deste trabalho. Outra vantagem que a ferramenta proporcionou foi a visualização da configuração de uma forma geral e simplificada; é muito mais fácil e rápido para um usuário interpretar e compreender objetos e suas ligações por meio de cliques do que ler um extenso texto de regras, esta visualização facilitada caracteriza-se em uma solução para o problema da complexidade no gerenciamento das regras.


59 Também foi verificado através dos resultados que esta primeira versão da ferramenta contém limitações no detalhamento das regras, limitações na flexibilidade na ecolha das premissas e da não configuração da tabela mangle. Como

trabalhos futuros pode-se implementar

um

modulo

para

a

configuração da tabela mangle, pode-se tornar a escolha da política de segurança mais flexível adicionando componentes para escolha das chains e também acrecentar um componente indicador da interface de destino para que o nível de detalhamento das regras seja maior, tornando a ferramenta ainda melhor e mais versátil para que ela possa auxiliar os usuários nas configurações de redes.


60

REFERENCIAS BRENTON Chris, HUNT Cameron. Mastering network security 2ª ediçao. San Francisco: Sybex 2003. CERT - Centro de Estudos, Respostas e Tratamento de Incidentes de Segurança do Brasil <http://www.cert.br/stats/incidentes/> Data de acesso 05/12/2009. CHAPMAN, Brent. ZWICHY, Elizbeth. Building Internet Firewalls. 1.ed. ÓReilly & Associates. Junho de 2000. CHESWICK William R., BELLOVIN Steven M., RUBIN Aviel D. Firewalls e Segurança na Internet. 2ª edição. Porto Alegre: Bookman, 2005. CLARK David Leon. Enterprise Security: The manager’s defense guides. Bostom. Estados Unidos: Pearson Education 2003. COMER Douglas E. Redes de computadores e internet. 4ª edição. Porto Alegre: Bookman 2007. GTA/UFRJ - Grupo de teleinformática e automação da Universidade Federal do Rio de Janeiro. < http://www.gta.ufrj.br/grad/07_1/ firewall> Data de acesso em 05/10/2009. KUROSE James F., ROSS Keith W.. Redes de computadores e a internet. 3ª edição. São Paulo: Pearson Addison Wesley, 2006. NETO, Urubatan. Dominando Linux Firewall Iptables. Rio de Janeiro: Ciência Moderna,2004. POHLMANN Norbert, CORTHERS Tim. Firewall Architecture for the Enterprise. Editor Wiley Publishing, Inc. Indianapolis, Indiana, 2002. SALDANHA Leônidas Klein, Firewall de baixo custo. Disponivel em: <http://tconline.feevale.br/tc/files/995.pdf > Data de acesso 20/10/2009. SCRIMGER Rob, LASALLE Paul, PARIHAR Mridula, GUPTA Meeta, TCP/IP A Bíblia. Rio de Janeiro Elsevier. 2002. SILVA, Gleydson Mazioli. Guia Foca GNU/Linux. Versão 6.42 Novembro 2007. < http://focalinux.cipsga.org.br/guia/avancado/index.html > Data de acesso em 25/10/2009. STREBE, Matthew; PERKINS Charles. Firewalls. São Paulo: Makron Books, 2002.


61 TANENBAUM, Andrew S. Redes de Computadores. 4ª edição. Rio de Janeiro: Elsevier Editora LTDA, 2003. UFMG, Firewalls. Disponível em:<http://homepages.dcc.ufmg.br/~mlbc/ cursos/internet/firewall> Data de acesso 21/05/2010.


62

APENDICE 1

DIAGRAMA DE CLASSES


63

APENDICE 2 SCRIPT GERADO PELA FERRAMENTA Abaixo segue o Script gerado pela ferramenta: #!/bin/sh sudo ifconfig eth0:0 192.168.0.3 netmask 255.255.0.0 sudo ifconfig eth0:1 100.0.0.5 netmask 255.0.0.0 sudo ifconfig eth0:2 200.50.118.35 netmask 255.255.255.255 # #Modulo IPV4 modprobe ip_tables # # #Modulo Para Aceitar Logs Limitados modprobe ipt_limit # Aceita logs limitados # # #Modulos Para Checar Estado de Pacotes modprobe ipt_state # # #Modulo Para Permitir Pacotes/Desfragmentados modprobe ip_conntrack # # #Modulo Para Ativar FTP/Requer IP_Conntrack modprobe ip_conntrack_ftp # # #Modulo Para Aceitar Pacotes de Varias Portas modprobe ipt_multiport # # #Modulo Para Abilitar Tabela de Filtros modprobe iptable_filter # # #Modulo Para Abilitar Busca de Pacotes modprobe ip_queue # # #Modulo Para Uso de TTL modprobe ipt_ttl # # #Modulo Para Ativar Mac Address Especificos modprobe ipt_mac # # #Modulo Que Permite Usuario/Grupo Checar os Pacotes de Saida modprobe ipt_owner # # #Modulo Para Checar Pacotes TCP/MSS Ativos modprobe ipt_tcpmss # # #Modulo Para Ativar NAT modprobe iptable_nat # # #Modulo Para o Uso da Tabela Mangle modprobe iptable_mangle #


64 # #Modulo Para Pacotes/TOS modprobe ipt_tos iptables -F iptables -X iptables -t nat -F iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -t nat -A POSTROUTING -d 200.50.118.35/255.255.255.255 -j MASQUERADE echo "1" >/proc/sys/net/ipv4/ip_forward iptables -A INPUT -p tcp --dport 110 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A FORWARD -p tcp --dport 110 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A OUTPUT -p tcp --dport 110 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A INPUT -p udp --dport 110 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A FORWARD -p udp --dport 110 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A OUTPUT -p udp --dport 110 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A INPUT -p tcp --dport 143 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A FORWARD -p tcp --dport 143 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A OUTPUT -p tcp --dport 143 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A INPUT -p udp --dport 143 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A FORWARD -p udp --dport 143 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A OUTPUT -p udp --dport 143 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A INPUT -p tcp --dport 25 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A FORWARD -p tcp --dport 25 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A OUTPUT -p tcp --dport 25 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A INPUT -p udp --dport 25 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A FORWARD -p udp --dport 25 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A OUTPUT -p udp --dport 25 -s 192.168.0.3/255.255.0.0 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A FORWARD -p tcp --dport 22 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A OUTPUT -p tcp --dport 22 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A INPUT -p udp --dport 22 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A FORWARD -p udp --dport 22 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A OUTPUT -p udp --dport 22 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A INPUT -p tcp --dport 20:21 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A FORWARD -p tcp --dport 20:21 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A OUTPUT -p tcp --dport 20:21 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A INPUT -p udp --dport 20:21 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A FORWARD -p udp --dport 20:21 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A OUTPUT -p udp --dport 20:21 -s 100.0.0.5/255.0.0.0 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p udp --dport 80 -j ACCEPT iptables -A FORWARD -p udp --dport 80 -j ACCEPT iptables -A OUTPUT -p udp --dport 80 -j ACCEPT


65

ANEXO 1 Exemplo de um script de configuração:

#Script Simples para Firewall com opção de proxy transparente # #!/bin/sh modprobe ip_tables modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe iptable_nat modprobe ip_nat_ftp # Definicoes das Variaveis # Variavel das interfaces de rede IR0="eth0" IR1="eth1" # Estes são os endereços de sua rede RINTERNA="192.168.0.0/24" RFILIAL1="192.168.1.0/24" RFILIAL2="192.168.2.0/24" # Portas Altas e baixas UP_PORTS="1024:" D_PORTS=":1024" ##### Definição de Policiamento ##### # Tabela filter iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT ACCEPT iptables -t filter -P FORWARD ACCEPT # Tabela nat iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t nat -P POSTROUTING ACCEPT ##### Proteçaõ contra IP Spoofing ##### for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 >$i done ##### Ativamos o redirecionamento de pacotes (requerido para NAT) ##### echo "1" >/proc/sys/net/ipv4/ip_forward echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max ############################################################## # Tabela filter # ############################################################### ##### Chain INPUT ##### # Aceita todo o trafego vindo do loopback e indo pro loopback iptables -A INPUT -i lo -j ACCEPT # Todo trafego vindo da rede interna e das Filiais tambem sao aceitos iptables -A INPUT -s $RINTERNA -i $IR0 -j ACCEPT iptables -A INPUT -s $RFILIAL1 -i $IR0 -j ACCEPT iptables -A INPUT -s $RFILIAL2 -i $IR0 -j ACCEPT


66 # Liberacao de PING (ICMP) na Interface Externa com certa limitacao iptables -A INPUT -i $IR1 -p icmp -m limit --limit 2/s -j ACCEPT # Liberacao de Portas de Servico para interface externa # Porta 22 (SSH) iptables -A INPUT -i $IR1 -p tcp --sport 22 -j ACCEPT # Liberando Portas Altas e DNS para interface externa iptables -A INPUT -i $IR1 -p udp --sport 53 -j ACCEPT iptables -A INPUT -i $IR1 -p udp --dport 53 -j ACCEPT iptables -A INPUT -i $IR1 -p udp --dport $UP_PORTS -j ACCEPT iptables -A INPUT -i $IR1 -p tcp --dport $UP_PORTS -j ACCEPT # Qualquer outra conexao desconhecida é imediatamente registrada e derrubada iptables -A INPUT -j LOG --log-level 6 --log-prefix "FIREWALL: INPUT " iptables -A INPUT -j DROP # A tentativa de acesso externo a estes serviços serão registrados no syslog # do sistema e serão bloqueados regras abaixo. iptables -A INPUT -i $IR1 -p tcp --dport 23 -j LOG --log-level 6 --log-prefix "FIREWALL: telnet" iptables -A INPUT -i $IR1 -p tcp --dport 110 -j LOG --log-level 6 --log-prefix "FIREWALL: pop3 " iptables -A INPUT -i $IR1 -p tcp --dport 113 -j LOG --log-level 6 --log-prefix "FIREWALL: identd " iptables -A INPUT -i $IR1 -p tcp --sport 21 -j LOG --log-level 6 --log-prefix "FIREWALL: ftp " iptables -A INPUT -i $IR1 -p udp --dport 111 -j LOG --log-level 6 --log-prefix "FIREWALL: rpc" iptables -A INPUT -i $IR1 -p tcp --dport 111 -j LOG --log-level 6 --log-prefix "FIREWALL: rpc" iptables -A INPUT -i $IR1 -p tcp --dport 137:139 -j LOG --log-level 6 --log-prefix "FIREWALL: samba " iptables -A INPUT -i $IR1 -p udp --dport 137:139 -j LOG --log-level 6 --log-prefix "FIREWALL: samba " # Bloqueia qualquer tentativa de nova conexão de fora para esta maquina iptables -A INPUT -i $IR1 -m state --state ! ESTABLISHED,RELATED -j LOG --log-level 6 -log-prefix "FIREWALL: IN eth1 " iptables -A INPUT -i $IR1 -m state --state ! ESTABLISHED,RELATED -j DROP # Qualquer outro tipo de trafego é aceito iptables -A INPUT -i $IR1 -j ACCEPT ####################################################### # Tabela nat # ####################################################### ##### Chain PREROUTING ##### # Redirecionando Porta 80 para SQUID Transparente iptables -t nat -A PREROUTING -p tcp -i $IR0 --dport 80 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -p udp -i $IR0 --dport 80 -j REDIRECT --to-port 3128 # Masquerade (NAT) iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE


M806  

Monografia FAINOR

Advertisement
Read more
Read more
Similar to
Popular now
Just for you