Furin e Machado Junior (2011).

ANÁLISE DE USABILIDADE DA FERRAMENTA IPFIREWALL PARA

Marcelo Antonio Ferreira Furin Graduado em Sistemas de Informação pela LIBERTAS Faculdades Integradas. Dorival Moreira Machado Junior Mestra em Sistemas de Informação e professor da LIBERTAS Faculdades Integradas.

1. INTRODUÇÃO A importância do firewall evidencia-se pela expansão da internet e o consequente aumento de usuários, muitas vezes, sem o conhecimento acerca da proteção de sua rede e sua máquina. Com isso, por meio da ferramenta IPFIREWALL, um filtro de pacotes do sistema operacional FreeBSD, será analisado suas funcionalidades nativas. Outro ponto de destaque para a importância do firewall é evitar que o craker (é o termo usado para designar quem pratica a quebra (ou cracking) de um sistema de segurança, de forma ilegal ou sem ética) invadam os arquivos não autorizados. Dentre as razões para se utilizar o firewall é ajudar a proteger à rede ou computador do usuário de acessos maliciosos de hacker (são indivíduos que elaboram e modificam software e hardware de computadores, seja desenvolvendo funcionalidades novas, seja adaptando as antigas).

2. PROBLEMA DE PESQUISA Utilizando a ferramenta IPFIREWALL para firewall, sem usar quaisquer, ferramentas para auxílio, tem-se o ambiente no qual se origina a pergunta de pesquisa que norteará o presente estudo: No que é possível fazer com as funcionalidades nativas do IPFW?

2.1 OBJETIVO GERAL O objetivo deste trabalho é descrever todas as funcionalidades nativas do IPFW, o qual vem como firewall padrão no sistema operacional FreeBSD, e comprovar que é

100

Furin e Machado Junior (2011).

possível fazer o mesmo trabalho realizado pelo gerando um script com as regras.

2.2 JUSTIFICATIVA Uma proposta de utilizar a ferramentas IPFW para ser desenvolvido um script utilizando as mesmas regras propostas no gerenciado através do Iptables.

3. REFERENCIAL TEÓRICO O objetivo desse referencial teórico é analisar a ferramenta IPFIREWALL com firewall, analisando os conceitos de funcionalidades de portas de comunicação, o uso de protocolos de comunicação, a estrutura de um firewall, os tipos, analisando sua segurança.

3.1. SISTEMA OPERACIONAL FREEBSD O nome FreeBSDé compostopela sigla Free (de software livre) e BSD (BerkeleySoftwareDistribuition, (software de distribuição da universidade Berkeley ),foi desenvolvido a partir d a versão 4.4BSD-Lite do Grupo de Pesquisa em Sistemas Computacionais (CSRG) da Universidade da Califórnia Berkeley. O projeto FreeBSD teve seu nascimento no início de 1993, em parte como uma consequência do conjunto de manutenção não-oficial do 386BSD (Unofficial 386BSD Patchkit) pelos seus 3 últimos coordenadores, O time de responsáveis pelo desenvolvimento deste patchkit, formado por Nate Williams. Rod Grimes e Jordan, da universidade Berkeley na Califórnia, resolveram levá-la ao conhecimento do mantenedor do projeto Bill Jolite e lynneJolitz,desenvolvedores do sistema operacional 386BSD. O nome 386 originou-se pelo motivo de abranger a arquitetura da Intel, que não teve adequada aceitação as intenções dos desenvolvedores. (386bsd). É tem um código fonte disponibilizado pela universidade de Berkeley, disponível para arquitetura x86 (incluindo Intel e Amd), e arquitetura 64 (Amd64 e Intel64). O sistema FreeBSD tem o termo de licença com software Open Source, é um software de utilização livre, para qualquer usuário ou pessoa. E todos podem contribuir com ele, seja no seu desenvolvimento, na correção de erros ou na documentação, desde que a condição de liberdade seja mantida.

101

Furin e Machado Junior (2011).

Este paradigma revolucionou a maneira com que softwares são desenvolvidos, baixando os custos de desenvolvimento e aumentando à agilidade, resultando em softwares de excelente qualidade e em constante evolução. Essas restrições não definem regras a respeito de como o código deve ser utilizado, mas de como deve tratar o Projeto FreeBSD ao utilizar código distribuído pelo mesmo. (FreeBSD, 2011).

3.2PROTOCOLOS Protocolo é um padrão de comunicação, para que dois ou mais computadores consigam se comunicar. Ex. a linguagem de comunicação entre duas pessoas e a linguagem em que elas se comunicam, existem vários tipos de protocolos tais como TCP, UDP, ICMP.

O protocolo de rede é a linguagem usada para a comunicação entre um computador e outro. Existem vários tipos de protocolos usados para a comunicação de dados, alguns são projetados para pequenas redes (como é o caso do NetBios) outros para redes mundiais (TCP/IP que possui características de roteamento). Dentre os protocolos, o que mais se destaca atualmente é o TCP/IP devido ao seu projeto, velocidade e capacidade de roteamento. (FOCA, 2007).

3.2.1 Protocolo TCP O protocolo TCP (TransmissionControlProtocol), foi desenvolvido para estabelecer uma conexão confiável em uma Inter-rede não confiável e também para se adaptar dinamicamente ás propriedades Inter-redes, e se adaptar a muitas falhas encontradas que pode ocorrer. O TCP foi definido na RFC 793, depois de encontrada erros, foram definidos os erros e correções na RCF 1122, com extensões fornecidas na RCF 1323. (TANENBAUM 2003, p.568). O protocolo TCP é um protocolo confiável, pelo motivo dos pacotes de reconhecimento. Esse protocolo é um pouco mais lento que o UDP,um dos aplicativos que utiliza ele é o FTP. (SCRIMGER, LA SALLE, PARINHAR, GUPTA, 2002, p. 11).

O protocolo básico utilizado pelas entidades TCP é o protocolo de janelas deslizante. Quando envia um segmento, o transmissor também dispara um timer, quando o segmento chega ao destino, a entidade TCP receptora retorna um segmento (com ou sem dados, de acordo com as circunstancias) com um numero de confirmação igual ao próximo numero de sequencia que espera que receber. Se o timer do transmissor expirar antes de a confirmação ser recebida, o segmento será retransmitido. (TANENBAUM 2003, p.570)

102

Furin e Machado Junior (2011).

3.2.2 Protocolo UDP Protocolo UDP (UserDatagramProtocol), é um protocolo de transporte sem conexão, fornecendo um meio para as aplicações enviarem datagramas IP encapsuladas sem que seja necessário estabelecer uma conexão, sendo descrito na RFC 768, o UDP é utilizado em situação de cliente servidor, umas das aplicações que utiliza o UDP e o DNS (Domain Name System), sistema de nomes de domínios, sendo responsável por converter o endereço digitado no navegador pelo IP. (TANENBAUM 2003, p.590 - 560).

O UDP é um protocolo simples e tem alguns usos específicos, como interação cliente/servidor e multimídia, porém para a maioria das aplicações de internet, é necessária uma entrega confiável e em sequencia. O UDP não pode proporcionar isso, e assim foi preciso criar outro protocolo. (TANENBAUM 2003, p.556).

O protocolo UDP, é um protocolo não confiável, apesar de mais rápido que o TCP, pois não possui o protocolo de reconhecimento. Exemplo: um aplicativo que usa esse protocolo é o telefone.

O UDP não garante a entrega de pacotes, mas oferece um pacote de integridade. Tanto o TCP como o UDP realizarão verificações de erros no recebimento dos pacotes de dados. Se um pacote tiver erros ele será descartado. O UDP é normalmente mais rápido que o TCP porque o UDP tem alguns overheads mais baixos para a transmissão de dados. Um exemplo de um aplicativo que utiliza o UDP é o serviço de TFTP. (SCRIMGER, SALLE, PARINHAR, GUPTA, P. 11).

3.2.3 Protocolo ICMP O protocolo ICMP (Internet ControlMessageProtocol), ao contrário de outros protocolos como UDP e o TCP, não transmite dado, sendo responsável por enviar relatórios. Um dos principais comandos desse protocolo é o PING (packet internet groper), responsável por verificar a conectividade entre dois hosts de IP e também realizando a função de monitorar e informar erros entre máquinas.

As redes devem funcionar adequadamente o tempo todo, mas elas não funcionam. Quando algo está errado na camada Inter-rede, a Internet ControlMessagingProtocol (ICMP) age como um solucionador de problemas. O ICMP é um protocolo de manutenção que informa erros de host para host. O ICMP está documentado na RCF 792. (SCRIMGER, LA SALLE, GUPTA, 2002, p.119).

103

Furin e Machado Junior (2011).

3.3 FIREWALL Firewall é o nome dado ao dispositivo de rede que tem por função regular o tráfego de pacotes entre redes distintas e filtrar os dados entre uma rede e outra, aplicando regras ao tráfego de dados entre um e outro baseado nelas, o firewall decide o que deve ou não passar. É justamente por isso que nenhum firewall é 100% seguro, já que precisa fazer seu trabalho sem prejudicar o computador da rede. (MORIMOTO 2008, p. 396). O firewall não faz a verificação de vírus, ou trojans, ele faz a verificação dos endereços de origem ou destino e portas destinadas. Essa parte de verificação dos conteúdos dos pacotes é designada pelo antivírus. O firewall é um software que contém uma seqüência de regras, que dizem o que ele deve fazer ou não, e os pacotes que não se encaixarem em umas das regras, devem ser aceitos ou recusados de acordo com a política de segurança implantada na empresa. O firewall e implementado em regras, em dispositivos que fazem a separação da rede interna e externa, chamados de estações guardiões os bastion hosts. São máquinas configuradas para desempenhar algum papel crítico na segurança da rede interna. Quando o bastion host cai, a conexão entre a rede interna e externa para de funcionar. Os firewall podem ser classificados como, Stateless e Stateful.(INFOWESTER, 2004). STATELESS: Esse tipo de filtragem define os filtros, cada um dos pacotes, à medida que são transmitidos, e são definidas as regras, indicando os endereços de rede origem e destino, e as portas TCP/IP usadas na transmissão, essa análise é mais rápida e não causa o atraso (delay), na retransmissão dos pacotes, sendo um modo transparente para rede.FirewallsStateless podem observar o tráfego da rede, e restringir ou bloquear pacotes com base em endereços de origem e destino, ou regras configuradas pelo usuário. (FreeBSD, IPFW). Exemplo: usando o IPFW, adicionando a regra Stateless.

ipfw add allow tcp from 192.168.1.1 to 10.10.10.1. 80

Essa regra consente que o IP 19.168.1.1 de uma máquina local, permita o envio de pacote para o IP 10.10.10.1, um servidor HTTP, na porta 80.

104

Furin e Machado Junior (2011).

STATEFUL: Esse tipo de filtro trata o tráfego como sendo composto de determinadas conexões, ou seja, os pacotes pertencem a uma dada conexão, negada ou permitida, e não trata pacotes como individuais. Toda a comunicação através de qualquer protocolo usa números de sequência que indicam em que ordem os pacotes serão lidos em um socket. Esse é o primeiro princípio básico das informações que um firewallStateful precisa conhecer. O segundo é que, conexões orientadas a protocolos como TCP, geram tráfego de pacotes especiais que indicam o início de uma conexão (SYN) e o fim da mesma (FIN). Esse ponto também é essencial a um firewall do tipo Stateful. (FreeBSD, IPFW) Usando a regras no IPFW para definir Stateful, basta apenas adicionar o comando keepstate na frente da regra.

ipfw add allow tcp from 192.168.0.1 to 10.10.10.2 80 keep state

A figura 2.5. mostra o funcionamento do firewall:

Figura 2.5. Funcionamento do Firewall.

3.4 FUNCIONAMENTO DO IPFW IPfirewall atua como um firewall por filtragem de pacotes, ele atua monitorando pacote a pacote de todas as conexões, a parir da serie 4.0 o IPfirewall também pode gerenciar filtragens de pacotes estateful, O IPfirewall não funciona como antivírus.

105

Furin e Machado Junior (2011).

O IPFW pode se iniciado por duas formas, adicionando o módulo KLDLOAD para carregar dinamicamente do módulo do IPFW usando o comando #KLDLOAD IPFW, dessa forma apenas seria necessário reiniciar o computador para carregar o novo firewall. A forma dinâmica seria editar o firewall - /etc/rc.conf, ou criar um novo script com seu nome, com esse módulo, a configuração contém certo cuidado, pois se o firewall trabalha com a política fechada, todo tráfego da rede será fechado, e nenhum pacote será roteado. Antes de inicializar o KERNEL, o correto é definir as configurações antes de compilar, para não ser bloqueado pelo seu próprio firewall. (FreeBSD, HOWTO, 2010). Para carregar o IPFW de forma dinâmica, é preciso adicionar.

“ipfw_load=”YES” no arquivo /boot/loader.conf useoscomandos;

root@user~# kldloadipfw root@user~# reboot

Pra acionar o IPFIREWALL de forma estática, o equivalente seria adicionar a seguinte linha no arquivo de configurações do seu KERNEL:

#IPFW firewall options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=100 options IPFIREWALL_FORWARD options IPFIREWALL_DEFAULT_TO_ACCEPT options IPSTEALTH optionsIPFIREWALL_NAT optionsIPFIREWALL IP_ALIAS  A primeira linha ativa o IPFW no kernel.  A segunda linha ativa o registro de pacotes que passam pelo IPFW, e ter o log.  (palavra-chave) especificada no conjunto de regras.  A terceira linha limita o número de pacotes logado através do syslogd, em uma base por entrada.

106

Furin e Machado Junior (2011).

 A quarta opção ativa a opção FWD (forward), do firewall.  A quinta linha irá deixar que tudo liberado por meio do firewall por padrão, que é recomendado quando o firewall está sendo montado pela primeira vez.  A sexta linha ativa a camuflagem do IPFW.  A sétima linha permite a ativação do NAT.  Na oitava linha, este recurso permite configurar uma interface de rede para responder por um ou mais IPs. Em seguida no diretório /etc/rc.conf adicionar os seguinte linhas, na primeira opção esta habilitando o firewall, na segunda esta definindo o tipo de firewall, no exemplo esta aberto. firewall_enable="YES" firewall_type="CLOSED" Em seguida a compilação e instalação acionariam o IPFIREWALL estático no KERNEL, logo após a próxima inicialização do sistema. Compilando o kernell. Entre no diretório: # cd /usr/src Compile o seu kernel; # makebuildkernel KERNCONF=NOMEDO KERNEL Instalação do kernel # makeinstallkernel KERNCONF=NOMEDO KERNEL Tipos de Firewall pré-definidos Existem também algumas configurações de firewall opcionais. CLIENT, SIMPLE, CLOSED. CLIENTE – Essa opção é colocada no rc/conf,na opção (firwall_type = “CLIENT”), permitindo que todo o tráfego de uma rede local atrás dela mesma, ela bloqueia os pacote fragmentados. Essa opção permite que E-mail, DNS, seja enviado para fora e para dentro, e não permite que outro computador inicie uma conexão TCP, com outra maquina dentro da rede interna, funcionando tanto com a política aberta quanto com a fechada, e definida no kernel, não importa se está definido IPFIREWALL_DEFAULT_TO ACCEPT ou IPFIREWALL_FEFAULT_TO_DENY.

107

Furin e Machado Junior (2011).

SIMPLE – Essa opção é mais complexa do que a definição CLIENT, requerendo que quem a utilize tenha conhecimento dos padrões RFC (Request for Comments) de internetpara definições de regras. Essa opção bloqueia spoofing(o IP de origem muda quando chega ao destino), e também todo o tráfego para fora e dentro da rede, redes não roteadas, e todos os pacotes endereçados com endereço de IP de rede privada. Esse firewall vai permitir o tráfego de e-mail, conexão com a porta 80, o DNS, pacotes fragmentados, e para conexões iniciadas TCP fora da rede, o firewall não vai apenas bloquear, mais também logar todas as tentativas. CLOSED – Essa alternativa não é recomendada por usar uma política fechada, negando todo e qualquer tráfego da rede (exceto o tráfego via lo0). Desabilita todos os serviços IP na rede, a não ser que no seu kernel, o usuário tenha adicionado à regra de política aberta. Então, deve-se ajustar o firewall para CLOSED quando for bloquear a rede.Ele funciona em (F.M.W.) first match wins, a primeira regra encontrada que vale. A figura2.6. Demostrasuaestrutura:

Figura 2.6. Estrutura do IPFW.

3.4.1 Proteções comuns A proteção utilizada no firewall depende muito de como é a política de segurança do local onde esta sendo empregado e um dos mais usados são contrao Spoofing. Exemplo: o atacante com o IP 202.202.202.200, envia uma requisição TCP para o servidor

108

Furin e Machado Junior (2011).

189.36.144.20, quando chega à requisição o IP não é mais 202.202.202.200, sendo convertido para 192.168.0.2. Como é uma conexão TCP, o servidor envia um SYM ACK para este IP e como não o acha, fica com uma conexão aberta por certo período, esse processo consome memória e hardware da máquina, então o atacante envia várias requisições, deixando várias conexões abertas, podendo causar vulnerabilidade na rede. Outra proteção é bloquear os pacotes que entram e saem da rede (tanto na rede interna quando na rede externa), e determinados sites não desejáveis. O IPFW contém vários modos de proteção, à utilidade vai depender muito do administrador de rede ou do modo de políticaa ser implantado.

3.5 MÓDULOS E FERRAMENTAS AUXILIARES O IPFW trabalha com várias ferramentas que auxiliam em sua execução, com finalidade de aumentar sua segurança, demostrando suas finalidades e suas funcionalidades. O Wireshark é um analisador de pacotes de rede. Trabalha com um sniffer, capturando todos os pacotes da rede e também a origem e destino. Um analisador de pacotes de rede irá tentar capturar pacotes da rede e tenta mostrar que os pacotes de dados o mais detalhado possível. (wireshark, 2011). O Nessus é uma ferramenta de auditoria muito usada para detectar e corrigir vulnerabilidades nos PCs da rede local. Ele realiza uma varredura de portas, detectando servidores ativos e simulando invasões para detectar vulnerabilidades. Uma característica importante é ele procura por servidores ativos não apenas nas portas padrão, mas em todas as portas TCP. Ele é capaz de detectar uma vulnerabilidade em um servidor Apache escondido na porta por exemplo46580. (Nessus, 2011). O Nmapé um portscan, (escanceia portas) componente usado pelo Nessus, é responsável por verificar portas rapidamente em determinado host, tanto em uma rede local ou na internet. O Nmap (“Network Mapper”) é uma ferramenta de código aberto para exploração de rede e auditoria de segurança. Ela foi desenhada para escanear rapidamente redes amplas, embora também funcione muito bem contra hosts individuais.(Nmap, 2011).

O Firewall Builder é um gerenciador de firewalls que ajuda a criar e gerenciar as configurações, podendo gerenciar vários firewalls ao mesmo tempo, com código fonte

109

Furin e Machado Junior (2011).

aberto (Open Sorce). Com ele você pode gerar scripts que estabelecem interfaces, endereços IPs, SNMP, e NTP parâmetros de registro e outros aspectos da configuração geral da máquina firewall. (Firewall Builder, 2011).

3.6 A UTILIZAÇÃO DO IPFW NO MEIO EMPRESARIAL Com o grande crescimento da tecnologia, as grandes empresas necessitam de mais segurança para integridade de seus dados, para não caírem em mãos de pessoas maliciosas. O IPFW consiste um uma arquitetura robusta e segura, proporcionando um alto desempenho. Numa empresa em geral, pode haver a necessidade da segmentação de rede interna, para aumentar a segurança ou a velocidade das informações, ou seja, determinados departamentos passam a ter acesso a determinados servidores, de modo que os demais servidores tornem–se invisíveis aos demais usuários. Exemplos do beneficio do firewall:  Otimização da banda de acesso à internet, distribuindo melhor a rede reduzindo custo.  Navegação em horário permitido, e ou sites.  Verificação de sites acessados pelos usuários para melhor monitoramento de conteúdo, acessado de cada usuário.  E a lista negra, que bloqueia os sites não permitidos, e alista branca, que libera os sites permitidos. O FreeBSD é o sistema operacional utilizado pelas principais e maiores empresas de tecnologia atualmente. Mesmo algumas empresas que oferecem soluções próprias na área de sistemas operacionais, muitas vezes fazem uso do FreeBSD para conseguir atender a demanda de alguns de seus serviços. O principal, e um dos clássicos exemplos disso é a própria Microsoft, que desde que assumiu o controle das operações do Hotmail, maior portal de correio eletrônico gratuito do mundo, não conseguiu, até os dias de hoje, substituir completamente a tecnologia FreeBSD implantada, e ainda depende da qualidade desse sistema Open Source para atender a total demanda dos serviços do portal Hotmail, que hoje é parte da rede MSN (Microsoft Networks). (FreeBSD, home, 2011).

110

Furin e Machado Junior (2011).

Algumas empresas que utilizam o FreeBSD.  FUNCATE - Fundação de Ciência, Aplicações e Tecnologia Espaciais.  Empresa Brasileira de Pesquisa Agropecuária.  Fazenda - Ministério da Fazenda.  COPASA - Companhia de Saneamento S/A.  USP - Universidade de São Paulo. (FreeBSD, home, 2011).  Yahoo - servidor de e-mail  Apache – servidor web  Sophos – antivírus  Uol – servidor de e-mail (Imasters, 2011).

4 METODOLOGIA

4.1. ANÁLISE COMPARATIVA COM SCRIPT FEITO UTILIZANDO IPTABLES Esta análise tem como objetivo demostrar as funcionalidades do IPFW, mantendo a linha de pesquisa do trabalho, (BARBOSA, REIS FILHO, 2010), será analisado e feito um script comparativo demostrando as regras feitos em IPTABLES, foi utilizado o sistema operacional FreeBSD, na sua versão 8.1, utilizando a ferramenta editor de texto VI, visando os requisitos das regras em IPTABLES. Analisando configurações de ambiente de rede, definição de variáveis, definição de politica de policiamento padrão, ativando roteamento do kernel, bloqueio contra spoofing, regras de loopback, compartilhamento de conexão (NAT), dropando (rejeitando) os pacotes TCP indesejáveis, liberando os pacotes de retorno de internet, liberação do acesso externo e interno para SSH e apache e liberar POP3, SMTP para OUTLOOK e INCRD-MAIL eliberação da conectividade social, serviço disponibilizado pela caixa econômica federal. No anexo A, está demostrando o script em IPTABLES e o apêndice A,M_Firewall.sh. está feito em IPFW.

111

Furin e Machado Junior (2011).

5 CONSIDERAÇÕES FINAIS

5.1. CONCLUSÃO A conclusão sobre o trabalho de análise de usabilidade da ferramenta para firewallipfw, conclui que ela á capaz de realizar todas as tarefas propostas no trabalho de (BARBOSA E FILHO 2010), mesmo lembrando que essa ferramenta não é considerada um antivírus, a ferramenta IPFW demostrou fácil acesso aos comandos do terminal tais como inicialização do firewall, adição do dos scripts, e aos seus comandos para adicionar ou para remover as regras.

5.2. LIMITAÇÃO DO TRABALHO  Não foi testado em ambiente empresarial.  Não ter interface gráfica.

REFERÊNCIAS

386BSD, 2011. Disponível em: Acessado 09h17min, Dia 10/03/2011. FIREWALL BUILDER. . Acessado 08h48min, Dia 18/01/2011. FreeBSD, HOWTO. Acessado 09h49min, Dia 10/03/2011. FreeDSD, Disponívelem: 1995- 2011 The FreeBSD Project. All rights reserved.Acessado 12h14min, Dia 03/03/2011. FOCA GNU/ . Acessado 12h42min, Dia 25/02/2011. Versão 6.42 - domingo, 18 de novembro de 2007. GleydsonMazioli da Silva. INFOWESTER, 2011.. Acessado 10h32min, Dia 11/03/2011. MORIMOTO, Carlos, E, Redes Guia Pratico, meridional, Porto Alegre Sul, 2008. NESSUS, 2011. Acessado 16h12min, Dia 17/01/2011. NMAP.. Acessado 17h24min, Dia 17/01/2011.

112

Furin e Machado Junior (2011).

SCRIMGER Rob, LA SALLE Paul, PARINHAR Mridula, GUPTA Meeta, TCP/IP A BIBLIA, segunda tiragem, campus Ltda., Rio de Janeiro R.J., 2002.. TANENBAUM, Andrew, S, Redes de Computadores, 4° edição, Campus, Rio de Janeiro R.J, 2003. WIRESHARK, 2011. Disponível em: Acessado 17h47min, Dia 17/01/2011.

113