Anda di halaman 1dari 102

FACULDADE SALESIANA DE VITRIA PS-GRADUAO EM SEGURANA DE REDES DE COMPUTADORES

FELIPE LOUREIRO DEBONI RAFAEL FERREIRA BORBA

SISTEMAS EMBARCADOS EM SEGURANA DE REDES OPENWRT

VITRIA 2007

FELIPE LOUREIRO DEBONI RAFAEL FERREIRA BORBA

SISTEMAS EMBARCADOS EM SEGURANA DE REDES OPENWRT

Monografia apresentada ao Curso de Psgraduao em Segurana de Redes de

Computadores da Faculdade Salesiana de Vitria, como requisito parcial para obteno do ttulo de Especialista em Segurana de Redes de Computadores. Orientador: Prof. M.Sc. Srgio Nery Simes. Co-orientador: Prof. M.Sc. Srgio Teixeira.

VITRIA 2007

Dados Internacionais de Catalogao-na-publicao (CIP) (Biblioteca da Faculdade Salesiana de Vitria, Esprito Santo, Brasil)

D287s

Deboni, Felipe Loureiro, 1982 Sistemas Embarcados em Segurana de Redes - OPENWRT / Felipe Loureiro Deboni, Rafael Ferreira Borba. 2007. 102 f. : il. Orientador: Srgio Nery Simes. Monografia (ps-graduao em Segurana de Redes de Computadores) Faculdade Salesiana de Vitria. 1.Redes de Computadores - Segurana. 2. Sistemas Embarcados. 3. OpenWRT. I. Rafael Ferreira Borba. II. Simes, Srgio Nery. III. Faculdade Salesiana de Vitria. IV. Ttulo. CDU: 004.7

FELIPE LOUREIRO DEBONI RAFAEL FERREIRA BORBA

SISTEMAS EMBARCADOS EM SEGURANA DE REDES OPENWRT

Monografia apresentada ao Curso de Ps-graduao em Segurana de Redes de Computadores da Faculdade Salesiana de Vitria, como requisito parcial para obteno do ttulo de Especialista em Segurana de Redes de Computadores. Aprovada em 11 de junho de 2007.

COMISSO EXAMINADORA

_____________________________________ Prof. M.Sc. Srgio Nery Simes Orientador

_____________________________________ Prof. M.Sc. Srgio Teixeira Co-orientador

_____________________________________ Prof. M.Sc. Joo Gomes da Silveira Centro Federal de Educao Tecnolgica do Esprito Santo (CEFETES)

Eu, Felipe Loureiro Deboni, dedico este trabalho a minha famlia por acreditarem no meu potencial e por me disponibilizar toda ajuda no decorrer do curso, e por toda minha formao acadmica. --Eu, Rafael Ferreira Borba, dedico este trabalho a minha noiva, que me ajudou a permanecer forte nos perodos em que a fraqueza se abatia sobre mim em relao ao curso e aos amigos que aqui conquistei, cuja alegria, fora de vontade e companheirismo me incentivaram seguir a diante nesta batalha.

AGRADECIMENTOS

Agradecemos aos professores Srgio Nery Simes e Srgio Teixeira pela colaborao e apoio no desenvolvimento desse trabalho. Aos nossos pais, irmos, companheiras e amigos, pelo apoio dado desde o inicio do curso.

A persistncia o caminho do xito. (Chaplin)

RESUMO

Este trabalho apresenta conceitos e fundamentos sobre a customizao do roteador Linksys WRT54G com o firmware e mini distribuio Linux, OpenWRT, o que vem a ser um sistema embarcado, mostrando histrico e exemplos, e tambm falando sobre segurana, comentando as premissas de uma boa regra de firewall, buscando demonstrar ao longo do texto de forma didtica o passo-a-passo para instalao e configurao dos roteadores com o OpenWRT, no intuito de aperfeioar as funes e limitaes impostas pelo fabricante deste equipamento nos servios de NAT e Firewall. Palavras-chave: Redes de Computadores Segurana, Sistemas Embarcados, OpenWRT.

ABSTRACT

This paper presents bases and concepts about Linksys WRT54G customization with firmware and Linux mini distribution, OpenWRT, what is embedded system, showing history and samples, and saying about security, also commenting the premises of a good firewall rules, looking to demonstrate trough the text step-by-step the installation and configuration the OpenWRT in routers, available to help added functions and remove imposed manufacturer limitations of this equipment in the services of NAT and Firewall. Keywords: Computer networks - Security, Embedded Systems, OpenWRT.

LISTA DE FIGURAS

Figura 1: Ponto de acesso sem fios e encaminhador Linksys WRT54G. ................................. 60 Figura 2: Motherboard do sistema embebido Linksys WRT54G v1.1. .................................... 60 Figura 3: Ilustrao da atualizao via browser..................................................................... 70 Figura 4: Tela que obteramos ao acessar o OpenWRT via telnet. ......................................... 71 Figura 5: Tela que obteramos ao conectar no OpenWRT via Putty(SSH). ............................ 72 Figura 6: Tela de informaes do OpenWRT na interface web. .............................................. 83 Figura 7: Tela sobre o WebIf do OpenWRT. ........................................................................... 84 Figura 8: Status de conexo do OpenWRT na interface web. ................................................. 85 Figura 9: Clientes DHCP do OpenWRT na interface web. ..................................................... 86 Figura 10: Status wireless do OpenWRT na interface web. .................................................... 87 Figura 11: Configuraes do sistema do OpenWRT na interface web. ................................... 88 Figura 12: Alteraes de senha do OpenWRT na interface web. ............................................ 88 Figura 13: Instalao ou desinstalao de pacotes do OpenWRT na interface web. ............. 89 Figura 14: Atualizao de firmware do OpenWRT na interface web. ..................................... 90 Figura 15: Configuraes de rede do OpenWRT na interface web. ........................................ 91 Figura 16: Configuraes da WAN do OpenWRT na interface web. ...................................... 91 Figura 17: Configuraes wireless do OpenWRT na interface web. ....................................... 92 Figura 18: Configuraes wireless avanadas do OpenWRT na interface web...................... 93 Figura 19: Configuraes de hosts do OpenWRT na interface web. ....................................... 94 Figura 20: Configurao firewall do OpenWRT na interface web. ......................................... 95

LISTA DE TABELAS

Tabela 1: Caractersticas de hardware do sistema embarcado Linksys WRT54G. ................. 61

LISTA DE QUADROS

Quadro 1: Arquivo: /etc/firewall.sh ......................................................................................... 52 Quadro 2: Comando para adicionar o firewall inicializao automtica............................ 52 Quadro 3: Arquivo: /etc/firewall.sh ......................................................................................... 54 Quadro 4: Arquivo: /etc/hosts .................................................................................................. 54 Quadro 5: Arquivo: /etc/fwlib.sh .............................................................................................. 57 Quadro 6: Atualizao por TFTP. ........................................................................................... 69 Quadro 7: Atualizao por telnet. ............................................................................................ 71 Quadro 8: Comando para sair do acesso telnet. ..................................................................... 72 Quadro 9: Comando para acessar por ssh. ............................................................................. 73 Quadro 10: Comando de acesso a memria. ........................................................................... 73 Quadro 11: Comando para visualizar o contedo da memria............................................... 73 Quadro 12: Comando para setarmos as configuraes do roteador....................................... 74 Quadro 13: Comando para pegar a informao do canal utilizado........................................ 74 Quadro 14: Comando para gravar as informaes setadas na memria. ............................... 74 Quadro 15: Configurando com ip fixo a interface wan. .......................................................... 74 Quadro 16: Pegando a informao do mtodo de utilizado na configurao ip. .................... 75 Quadro 17: Pegando a informao do ip da LAN. .................................................................. 75 Quadro 18: Pegando a informao da mascara da LAN......................................................... 75 Quadro 19: Comando para gravar as informaes setadas na memria. ............................... 75 Quadro 20: Script firewall. Arquivo: /etc/firewall-up.sh ......................................................... 82

SUMRIO

1. INTRODUO ................................................................................................................... 15 1.1 Motivao....................................................................................................................... 17 1.2 Objetivo ......................................................................................................................... 20 1.3 Metodologia ................................................................................................................... 20 1.4 Organizao do trabalho ................................................................................................ 22 2. SISTEMAS EMBARCADOS.............................................................................................. 23 2.1 Sistema Embarcado: o que ? ........................................................................................ 26 2.2 Pequeno Histrico .......................................................................................................... 27 2.3 Caractersticas ................................................................................................................ 28 2.4 Tempo Real em Sistemas Embarcados Linux................................................................ 29 2.5 Alguns Sistemas Embarcados Disponveis .................................................................... 32 2.5.1 eCos ........................................................................................................................ 32 2.5.2 NetBSD................................................................................................................... 33 2.5.3 Windows CE Embedded ......................................................................................... 33 2.5.4 Windows NT Embedded......................................................................................... 34 2.5.5 uClinux ................................................................................................................... 34 2.5.6 OpenWRT............................................................................................................... 35 2.5.6.1 Por que utilizar o OpenWRT? ......................................................................... 36 2.5.6.2 OpenWRT, um breve histrico ....................................................................... 36 2.6 Java em Sistemas embarcados ....................................................................................... 37 2.7 Sobre licenas em sistemas embarcados livres .............................................................. 38 2.8 Software livre em Sistemas Embarcados ....................................................................... 39 2.9 Consideraes ................................................................................................................ 42 3. FUNDAMENTOS DE SEGURANA DA INFORMAO ............................................. 43 3.1 Firewall ......................................................................................................................... 43 3.2 Arquiteturas de Firewall ................................................................................................ 44 3.2.1 Arquitetura Dual-Homed Host ............................................................................... 44 3.2.2 Arquitetura Screened Host,..................................................................................... 45 3.2.3 Arquitetura Screened Subnet .................................................................................. 45 3.3 Poltica de Segurana ..................................................................................................... 46 3.4 Iptables ......................................................................................................................... 47

3.4.1 Caractersticas do iptables ...................................................................................... 48 3.4.2 Conhecendo as tabelas ............................................................................................ 50 3.4.3 Regras teis, modelo I ............................................................................................ 51 3.4.4 Regras teis, modelo II ........................................................................................... 52 3.5 Consideraes ................................................................................................................ 57 4. CONHECENDO O LINKSYS WRT54G ............................................................................. 58 4.1 Trabalhos e solues correlatas...................................................................................... 61 4.2 Consideraes ................................................................................................................ 65 5. UMA PROPOSTA DE APLICAO DO OPENWRT EM REDES DE PEQUENO E MDIO PORTE ....................................................................................................................... 66 5.1 Instalando o OpenWRT e atualizando o firmware do roteador WRT54G .................... 66 5.1.1 Equipamento utilizado: ........................................................................................... 67 5.1.2 Preparando para atualizar: ...................................................................................... 67 5.1.3 Atualizando............................................................................................................. 67 5.1.3.1 Atualizao por TFTP (Windows) .................................................................. 68 5.1.3.2 Atualizao por TFTP (Linux) ........................................................................ 68 5.1.3.3 Atualizao por browser (Firefox ou IExplorer)............................................. 69 5.2 Configurando OpenWRT ............................................................................................... 70 5.2.1 Acessando via SSH ou Telnet ................................................................................ 70 5.2.2 Configurando em modo AP .................................................................................... 73 5.2.3 Acessando via interface web (WebIf) .................................................................... 83 5.3 Proposta de utilizao .................................................................................................... 95 5.3.1 Vantagem do OpenWRT para sua empresa:........................................................... 96 5.3.2 Desvantagem do OpenWRT para sua empresa: ..................................................... 96 5.4 Consideraes ................................................................................................................ 97 6. CONSIDERAES FINAIS E TRABALHOS FUTUROS ............................................... 98 7. REFERNCIAS BIBLIOGRFICAS ................................................................................. 99

15

1. INTRODUO

Vivemos em uma era de constantes mudanas tecnolgicas com a evoluo dos sistemas eletrnicos, seja para uso pessoal, como celulares, ou na indstria automotiva. Os sistemas embarcados 1 esto cada vez mais presentes em nosso cotidiano (ORTIZ, 2001).

A utilizao de sistemas embarcados de fundamental importncia para o funcionamento de vrios equipamentos da vida moderna. Eles so encontrados nos mais variados dispositivos e sistemas, desde simples brinquedos at equipamentos de ltima gerao da indstria eletroeletrnica. Alguns exemplos de aplicao de sistemas embarcados so os roteadores e switches 2 de gerenciamento de redes em laboratrios de alto desempenho, os fornos de microondas, os controles remoto de TVs, as impressoras e mquinas copiadoras, os players de MP3, os sistemas de automao, os sistemas automotivos inteligentes, os telefones celulares, e at mesmo os brinquedos falantes (CARRO, 2004). Em geral, qualquer novo sistema ou produto que possui a caracterstica de funcionar automaticamente apresenta um sistema embarcado controlando e gerenciando o funcionamento e a performance dos componentes e dispositivos envolvidos.

Sistemas embarcados apresentam caractersticas em comum com os sistemas computacionais de propsitos gerais, mas no possuem a uniformidade desses. Cada aplicao pode apresentar requisitos diferentes de desempenho, consumo de potncia e rea ocupada, o que vai acarretar em uma combinao distinta de mdulos de hardware e software para atender estes requisitos. (CARRO, 2003)

A demanda por equipamentos inteligentes e solues dedicadas, capazes de apresentar resultados eficientes para os problemas cotidianos, transforma a utilizao de

microprocessadores e sistemas embarcados em uma fatia muito atraente da computao.

Sistema Embarcado. Embedded System. um sistema operacional especializado dedicado para tarefas

especificas.
2

Switches. Ou no singular switch. Tambm chamados de comutadores, possuem diversas portas assim

como os hub. A diferena que, internamente, ele segmenta a rede, sendo que cada porta um segmento diferente.

16

Desta forma, a demanda por sistemas embarcados, capazes de orquestrar os novos dispositivos e equipamentos, crescente e irreversvel. Esta necessidade tem atrado novas companhias e empresas interessadas no desenvolvimento de sistemas embarcados. Estimou-se que o rendimento com a venda de sistemas embarcados dobraria, passando de 752 milhes de dlares em 2001 para 1.59 bilhes em 2005. (ORTIZ, 2001) Contudo no possumos mensuraes sobre a afirmao de ORTIZ em 2001 para confirmar se suas estimativas se concretizaram.

O mercado de sistemas embarcados possui a particularidade de ser mais competitivo, se comparado ao mercado de sistemas computacionais tradicionais. Isso ocorre porque no existe uma nica empresa que domine uma larga fatia no mercado, como acontece com os sistemas operacionais para computadores pessoais, dominado por poucos. Esta peculiaridade tem atrado a ateno de vrias empresas de desenvolvimento j consagradas no ramo de sistemas operacionais, dentre elas a Microsoft 3 , a Wind River Systems 4 e a Red Hat 5 , por exemplo.

Os sistemas embarcados sofrem certas restries que no so to relevantes aos sistemas computacionais convencionais, como os computadores pessoais. Restries como o uso de energia sem prejudicar o desempenho, pouca memria disponvel e previsibilidade so algumas delas.

A arquitetura em que os sistemas embarcados residem tambm pode variar bastante, contendo um ou mais processadores, memrias e interfaces para perifricos. Tomando como exemplos os celulares, estes podem ter mais de uma memria: a do chip e a do prprio aparelho, e mais

Microsoft. A Microsoft Corporation a maior e mais conhecida empresa de software do mundo. Foi

fundada em 1975 por Bill Gates e Paul Allen com o objetivo de desenvolver e comercializar interpretadores da linguagem BASIC.
4

Wind River Systems. A Wind River Systems, Inc. Fornecedora de sistemas embarcados, ferramentas

de desenvolvimento para sistemas embarcados, middleware, e outros tipos de software. A companhia foi fundada em Berkeley, Califrnia em 1981 por Jerry Fiddler.
5

Red Hat. A Red Hat, Inc. Fundada em 1993, uma empresa dos Estados Unidos, que disponibiliza

solues baseadas no sistema operacional GNU/Linux, incluindo vrias distribuies. Em 2004 iniciou uma separao do ambiente desktop em detrimento do ambiente empresarial, de onde nasceu o projeto afiliado Fedora Core.

17

de uma interface: para cmera fotogrfica integrada e outra para conect-lo a um computador pessoal. A estrutura de comunicao de um sistema pode variar de um barramento a uma rede interna (NoC network on a chip). Em alguns casos um sistema operacional de tempo real (SOTR) pode ser necessrio, como exemplo, podemos citar os sistemas de controle de freios ABS ou os air-bags utilizados na indstria automotiva.

Vrios fornecedores e pesquisadores de sistemas embarcados esto desenvolvendo novas arquiteturas e aperfeioando seus sistemas, num esforo de melhorar a performance dos mesmos, e assim, conquistar um lugar de destaque no mercado com novas tecnologias e solues. (SANTO, 2001) O que vem se concretizando nos dias atuais. (WINDOWS EMBEDDED, 2007)(HTC SMART MOBILE, 2007)

1.1 Motivao

Profissionais de TI tm grande dificuldade em dedicar um computador apenas para fazer NAT 6 e Firewall 7 em pequenas e mdias empresas com verbas bem restritas. Uma soluo seria comprar um roteador para este fim, que realizaria apenas tarefas bsicas. Porm, este possui limitaes, no sendo possvel em seu padro de fabrica exercer tarefas como um firewall avanado.

NAT. Network Address Translation - Mecanismo que permite a conexo de redes privadas rede

Internet sem alterao dos endereos reservados. Atravs de um NAT server os endereos de rede reservados so convertidos para endereos pblicos quando se torna necessrio o acesso rede Internet. Com este mecanismo, diversos computadores com endereos internos podem compartilhar um nico endereo IP.
7

Firewall. o nome dado ao dispositivo de rede que tem por funo regular o trfego de rede entre redes

distintas. Impedir a transmisso de dados nocivos ou no autorizado de uma rede a outra. Dentro deste conceito incluem-se, geralmente, os filtros de pacotes e os proxy de protocolos. Existe na forma de software e hardware, ou na combinao de ambos. A instalao depende do tamanho da rede, da complexidade das regras que autorizam o fluxo de entrada e sada de informaes e do grau de segurana desejado.

18

Focados nesta dificuldade desenvolvido esse trabalho, ou seja, ao invs de um computador dedicado apenas a estas tarefas utilizaremos um roteador Linksys WRT54G 8 , que possui limitaes, mas graas a contribuio da comunidade Open Source 9 foi desenvolvido com base no Sistema Embarcado uClinux 10 a distribuio OpenWRT 11 , que possui toda robustez e segurana do Linux.

Com a soluo proposta poderemos converter um simples roteador Linksys WRT54G que desempenha tarefas bsicas de roteamento e controle de web para um avanado servidor Linux que possibilita a instalao dos mais conceituados pacotes de aplicativos, como iptables 12 , apache 13 , ftp e outros.

O baixo consumo de energia outro fator importante e que muito motivou na escolha do roteador ao invs de um computador tradicional, sem a necessidade de monitor, teclado nem mouse, que contribui para manter seu baixo consumo de energia, funcionando apenas com uma fonte de 12 volts, e consumindo apenas 10 Watts de energia, enquanto um computador com monitor consome em media 150 Watts de energia.

Linksys WRT54G. um dos mais famosos roteadores sem fio da Linksys. Por seu firmware ter cdigo

aberto, desenvolveu-se toda uma comunidade de desenvolvedores de firmwares alternativos, agregando funes adicionais ao equipamento. O equipamento possui as variantes WRT54GL e WRT54GS, ambas em produo.
9

Open Source. Conceito de distribuio de software, que estabelece como fundamentais, os princpios de

desenvolvimento compartilhado, distribuio na forma de cdigo fonte e licenciamento gratuito. Qualquer trabalho desenvolvido em Open Source pode ser modificado para atender novas necessidades desde que o trabalho derivado seja disponibilizado a todos, tambm de forma gratuita. A integridade e notoriedade dos autores preservada, sendo registrado o nome de cada um dos colaboradores nas verses subseqentes.
10

uClinux. Sistema Embarcado de cdigo aberto criado em 1998 e completamente voltado a Sistemas

Embarcados.
11

OpenWRT. Distribuio Linux baseada no uClinux. Este sistema ter um destaque, pois ser utilizado

nesta monografia.
12 13

Iptables. Firewall em nvel de pacotes. Apache. O mais conhecido dos servidores da Internet. responsvel pela hospedagem de mais de 50%

dos sites existentes no mundo inteiro. O nome um trocadilho, com a similaridade fontica da expresso a patchy server (um servidor remendado, em ingls). Isto porque, seu programa foi sendo aperfeioado pela contribuio (patches/remendos) de diversos colaboradores.

19

Ainda comparando com um computador tradicional, nota-se a diferena no espao ocupado pelas solues, enquanto o roteador consegue ocupar apenas o espao de um livro, o gabinete de um computador tradicional necessita de um espao bem maior, e se consideramos o monitor, teclado e mouse, o espao aumenta ainda mais.

Como um grande diferencial entre o Linksys WRT54G com firmware padro e o firmware customizado com o OpenWRT, a possibilidade de configur-lo de forma bem simples, atravs da interface web, ou se necessrio de forma avanada atravs de SSH 14 e Telnet 15 , isso tudo atravs da comodidade de sua rede, ou pela internet.

Agregando ainda mais s facilidades disponveis, temos a manuteno, reinstalao e substituio do equipamento de forma simples, possvel configurar controles de excees, de forma que ao detectar alguma anomalia em seu funcionamento, o equipamento capaz de avisar o administrador, gerar seu prprio backup, e restaur-lo automaticamente em um segundo roteador para que o funcionamento da sua rede no tenha grandes impactos, passando assim o controle da mesma para este segundo roteador.

A ausncia de hard disk(HD) beneficia, na medida em que restringe o nmero de aplicaes que rodam neste roteador, sendo menos portas abertas, menos falhas e menos excees, alm disso, ele capaz de montar uma partio de qualquer pasta compartilhada em uma maquina remota.

Portabilidade e baixo investimento contribuem ainda mais para aumentar o diferencial desta soluo. Devido ao baixo valor de investimento, torna-se fcil manter uma estrutura de backup, tanto pela parte dos softwares, quanto pela parte do hardware. Por ser uma distribuio Linux a configurao do OpenWRT pode ser padronizada por scripts, facilitando ainda mais a administrao desses equipamentos.
14

SSH. O Secure Shell, simultaneamente, um programa de computador e um protocolo de rede que

permite a conexo com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do Telnet, com a vantagem da conexo entre o cliente e o servidor ser criptografada.
15

Telnet. Um protocolo/programa de rede, que permite o login remoto, tornando possvel a um

microcomputador atuar como terminal de computadores de qualquer parte do mundo. O Telnet atua no modo texto e permite usar um computador, que est longe, como se fosse o seu prprio micro. Suas transmies so feitas em texto claro, sendo aconselhada a utilizao do SSH.

20

O Linksys WRT54G um roteador wireless 16 , padro 802.11b/g 17 , e um switch. Ele permite a interao entre a rede sem fio e a rede cabeada, possibilitando a substituio da estrutura tradicional composta por um computador.

1.2 Objetivo

O objetivo geral desse trabalho de pesquisa implementar o sistema OpenWRT e customizlo, utilizando regras de segurana avanadas para se obter maior eficcia no dia-a-dia e economia a curto e mdio prazo.

Objetivos especficos so:

Implementao do Iptables no OpenWRT; Utilizao do Linksys WRT54G em redes de pequeno e mdio porte; Conhecimento dos sistemas embarcados; Possibilidades de utilizao do Linksys WRT54G.

1.3 Metodologia

Foi constatado por meio da interao com profissionais da rea de segurana de redes em listas de discusses, fruns e artigos, que sistemas embarcados esto sendo muito utilizados

16

Wireless. Da traduo do ingls, sem fio. Transmisso via ondas de rdio ou satlite, sem a necessidade

de conexo fsica por meio de cabos. Provavelmente ser usada em redes de computadores do futuro, permitindo maior flexibilidade de uso.
17

802.11b/g. Padro de conexo sem fio padronizada pelo IEEE que opera na freqncia de 2.4 GHz, o

802.11b alcana velocidades de 11 Mbps, no 802.11g a velocidade alcanada de 54 Mpbs.

21

pelas empresas, pois trazem diversas possibilidades para a interconexo de redes. Por meio de pesquisas na Internet foi constado que o roteador Linksys WRT54G um dos mais utilizados para interconexo de redes sem fio. Alm disso, o fabricante desse equipamento foi o primeiro a disponibilizar os fontes do firmware com licena GPL (OPENWRT, 2007). Diante disso, foram pesquisadas alternativas para uma maior eficcia do uso desse equipamento, pois existem limitaes na configurao padro do firmware.

Devido falta de publicaes sobre sistemas embarcados foi utilizado o material disponvel na Internet. Foram identificados e pesquisados firmwares customizados. Foi constatado por meio de pesquisas em sites especializados na Internet que o OpenWRT uma opo eficaz para a customizao de compartilhamento seguro de redes que utilizam ou pretendem utilizar dispositivos que so compatveis com sistemas embarcados. Aps a definio do uso do OpenWRT como o firmware customizado a ser utilizado, foi elaborado um roteiro de instalao e configurao, passo-a-passo, juntando varias informaes obtidas em pesquisas em diversos sites, fruns e listas de discusses. Foi obtido screenshots 18 para enriquecer o trabalho e facilitar o entendimento na hora de instalar o firmware customizado, que de fato uma operao delicada, que gera duvidas e demanda ateno redobrada. Nos screenshots da interface web, procurou-se demonstrar a facilidade de sua configurao, alguns desses foram gerados na prpria maquina do autor, outros foram obtidos na internet e inseridos neste trabalho com autorizao de seus autores.

Em segurana foi pesquisado alem dos livros adquiridos nas bibliotecas, vrios sites da comunidade Linux, pelo fato do OpenWRT ser uma mini distribuio Linux todos os scripts que funcionam no Linux para computadores tradicionais, funcionaram no OpenWRT com o mnimo de modificao, foi utilizado o script desenvolvido por Fabricio Beltram, com algumas modificaes, como o principal script de iptables deste trabalho.

18

ScreenShot. Um screenshot uma imagem do contedo do monitor feita pelo prprio computador.

Geralmente esta uma imagem digital feita pelo sistema operacional ou por um software instalado no computador.

22

1.4 Organizao do trabalho

Esse trabalho segue a seguinte organizao: Captulo 2 Sistemas Embarcados Apresenta conceitos, tipos de sistemas, kernel 19 e funcionalidades de um sistema embarcado, bem como a sua histria, desde seu surgimento na dcada de 60 at os dias atuais, suas caractersticas retratadas sob uma ampla viso da aplicao deste recurso em um vasto universo de hardware e software.

Captulo 3 Segurana Neste capitulo apresentado recursos de segurana baseados em mltiplos protocolos, bem como uma ampla informao sobre regras e tabelas visando maior eficcia e eficincia do Linksys WRT54G, dando um destaque especial ao iptables, que ser utilizado para criar as regras de firewall utilizadas nesta monografia.

Captulo 4 Conhecendo o Linksys WRT54G Apresenta um dos mais famosos roteadores sem fios da Linksys, com suas especificaes tcnicas, mostrando as possibilidades de customizaes que sero utilizadas para este trabalho.

Captulo 5 Uma proposta de utilizao Mostra uma proposta de aplicao dos mtodos, utilizando o OpenWRT em um roteador Linksys WRT54G, mostrando passo a passo sua instalao em vrios mtodos, e configurao por SSH, Telnet ou via interface web nos moldes propostos.

Captulo 6 Consideraes finais e Trabalhos futuros Consideraes finais do trabalho e abordagem de futuros trabalhos que possam ser realizado para dar continuidade proposta apresentada.

Captulo 7 - Referncias Bibliogrficas referncias bibliogrficas utilizadas na elaborao deste projeto de pesquisa.

19

Kernel. O Kernel de um sistema operacional entendido como o ncleo deste ou, numa traduo literal,

cerne. Ele representa a camada mais baixa de interface com o Hardware, sendo responsvel por gerenciar os recursos do sistema computacional como um todo.

23

2. SISTEMAS EMBARCADOS

Os sistemas computacionais embarcados esto presentes em praticamente todas as atividades humanas e, com os baixos custos tecnolgicos atuais, tendem a aumentar sua presena no cotidiano das pessoas. Exemplos de tais sistemas so as mquinas de lavar, o sistema de controle dos carros e nibus, os computadores portteis palm-top, em roteadores, os fornos de microondas com controle de temperatura inteligente e outros eletrodomsticos. (CARRO, 2004) De acordo com a definio encontrada na Wikipdia 20 , sistema embarcado um computador de propsito especial, que completamente encapsulado pelo dispositivo que controla. Grande parte dos microprocessadores fabricados mundialmente destinada a mquinas que usualmente no so chamadas de computadores. O que diferencia este conjunto de dispositivos de um computador "convencional", como conhecido pela maioria das pessoas, o seu projeto baseado em um conjunto dedicado e especialista constitudo por hardware, software e perifricos.

Um Sistema Embarcado (Embedded System), pela sua natureza especialista, pode ter inmeras aplicaes. Podem-se ter sistemas embarcados para controle de freios de um veculo automvel, em que esse sistema deve gerenciar certos perifricos de controle como um sensor. Em outro extremo funcional tm-se os terminais de atendimento do Sistema nico de Sade (SUS) que fazem leitura do Sistema Carto Nacional de Sade (SCNS) ou os terminais de leitura do SMARTCARD empregado no sistema de transporte urbano de Salvador.

O projeto deste tipo de sistema computacional extremamente complexo, por envolver conceitos at agora pouco analisados pela computao de propsitos gerais. Por exemplo, as questes da portabilidade e do limite de consumo de potncia sem perda de desempenho, a baixa disponibilidade de memria, a necessidade de segurana e confiabilidade, a possibilidade de funcionamento em uma rede maior, e o curto tempo de projeto tornam o

20

Wikipdia. Desenvolvido pela Wikimedia Foundation. Apresenta contedo enciclopdico. Disponvel

em: <http://en.wikipedia.org/wiki/Embedded_system>. Acesso em: 04 Abr 2007

24

desenvolvimento de sistemas computacionais embarcados uma rea especfica de pesquisa (WOLF, 2001). No contexto atual de competitividade industrial, seguindo-se a lei de Moore 21 , tem-se disposio o dobro de transistores a cada 18 meses (MOORE, 1965). Conseqentemente, sistemas dedicados com milhes de transistores devem ser projetados em poucos meses (MAGARSHACK, 2002). Para isto, tem sido adotado o paradigma de projeto baseado em plataformas (KEUTZER, 2000). Uma plataforma uma arquitetura de hardware e software especfica para um domnio de aplicao (DUTTA, 2001) (DEMMELER, 2001)(PAULIN, 1997), mas altamente parametrizvel (no nmero de componentes de cada tipo, na estrutura de comunicao, no tamanho da memria, nos tipos de dispositivos de E/S, etc.). Esta estratgia viabiliza o reuso (KEATING, 2002) de componentes (ou ncleos)

(BERGAMASCHI, 2001) previamente desenvolvidos e testados, o que reduz o tempo de projeto. O reuso pode ser ainda reforado pela adoo de padres (VSIA, 2003) na arquitetura e projeto dos sistemas.

O projeto de sistemas embarcados toma sempre como base um ou mais processadores. Embora esta soluo parea extremamente conservadora do ponto de vista de inovao, ela traz enormes vantagens do ponto de vista operacional. Primeiro, o fator de escala. Como os microprocessadores so encontrados em milhares de projetos, seu custo dilui-se entre muitos clientes, s vezes at competidores entre si. Mais ainda, uma vez que uma plataforma baseada em processador esteja disponvel dentro de uma empresa, novas verses de produtos podem ser feitas pela alterao do software da plataforma. A personalizao do sistema d-se atravs do software de aplicao, que toma atualmente a maior parte do tempo de projeto. Alm destas vantagens competitivas, h ainda o fator treinamento de engenheiros, j que estes geralmente se formam com conhecimentos de programao de microprocessadores.

Como pde-se perceber, os Sistemas Embarcados encontram-se cada vez mais presentes em nosso dia-a-dia e com uma utilizao e importncia crescente torna-se necessrio estudos na rea de software bsico suportado. No mesmo sentido, a escolha de um Sistema

21

Lei de Moore. Formulada por Gordon Moore em 1965, trs anos antes que ele ajudasse a criar a

fabricante de chips Intel. Moore afirmou que o nmero de transistores que poderiam ser alojados em uma determinada rea de silcio duplicaria a cada dois anos. Posteriormente, reduziu o prazo a 18 meses.

25

Operacional(S.O) leve, tolerante a falhas e que suporte o desenvolvimento de aplicaes de forma simples muito importante.

Entre as vantagens do uso desse tipo de sistema, o reuso de componentes empregados na computao tradicional, um de seus principais atrativos, pois aproveitam toda a vantagem da modularidade e versatilidade de sistemas embarcados livres para desktops e servidores. Esses sistemas utilizam bibliotecas compartilhadas, ferramentas de desenvolvimento como compiladores e depuradores e Kernel do sistema operacional. Existem alguns tipos de Kernel podem ser utilizados, por exemplo.

Kernels livres para sistemas embarcados Linux: o mais popular, suporta vrias arquiteturas, dispositivos e protocolos e excelente para usurios Linux; Kernels livres para sistemas embarcados uClinux: Usado principalmente para sistemas embarcados menores e de baixo custo, utilizado em aplicaes padres para Linux embarcado com patches 22 para atender restries especiais de memria e muito prximo do Linux embarcado tradicional;

Kernels livres para sistemas embarcados NetBSD 23 : Sistema BSD 24 altamente portvel, requisitos mnimos de armazenamento e RAM 25 similares aos do Linux; Kernels livres para sistemas embarcados eCos 26 : Sistema embarcado de tempo real

22

Patches. Ou no singular Patch. uma diferena entre dois elementos, leia-se atualizao, sendo que

esses elementos podem ser cdigos fontes, binrios, textos, etc.


23

NetBSD. Foi a primeira distribuio livre, verso Open Source do BSD, sistema operacional Unix-like,

lanando em Maio de 1993, o NetBSD 0.8 como primeiro release oficial.


24

BSD. O Berkeley Software Distribution (BSD) um Sistema Operacional UNIX desenvolvido pela

Universidade de Berkeley, na Califrnia, durante os anos 70 e 80. Atualmente, o BSD no um nico Sistema Operacional, mas sim uma larga famlia derivada do original, sendo os mais conhecidos membros da famlia: 4.4BSD (ltima verso do BSD original), 386BSD, FreeBSD, NetBSD, OpenBSD, BSDI (anteriormente BSD/OS), e Darwin (que serve como base ao Mac OS X).
25

RAM. Do ingls Random Acess Memory. a memria disponvel para uso das aplicaes e

processamentos. Seu contedo voltil perdido sempre que o computador desligado. A quantidade de RAM, cujo limite determinado pelo sistema operacional, um dos componentes que contribuem para a capacidade de processamento de um computador.
26

eCos. embedded Configurable operating system. Open Source, livre de royalty, sistema operacional

de tempo real direcionado para sistemas embarcados e aplicaes com apenas um processo derivando multiplas threads.

26

bem leve, provido pela Red Hat / Cygnus solutions 27 , compatvel com a maioria das aplicaes Unix e Linux.

2.1 Sistema Embarcado: o que ?

Sistemas Embarcados so sistemas computacionais especialistas. Estes sistemas so constitudos por um conjunto hardware-software-perifrico e, de um modo geral, so responsveis por uma funo especfica ou um conjunto restrito de funes especficas e corelacionadas (GUPTA, 2000).

A denominao "embarcado" vem do fato de que estes sistemas so projetados geralmente para serem independentes de uma fonte de energia fixa como uma tomada ou gerador. Estes sistemas podem ser projetados para pequenos dispositivos. Entretanto, essa caracterstica potencialmente a mais restritiva para um Sistema Embarcado. Um projeto para essa classe de sistema computacional deve levar principalmente em considerao questes de consumo de energia, uma vez que a arquitetura utilizada utiliza baterias como fonte de energia.

Dois dos aspectos mais importantes em projeto de sistemas embarcados:

Energia deve ser consumida otimizadamente, pois, como citado, a arquitetura envolvida possui restries da mesma; Memria pequena se comparada s memrias utilizadas em PCs.

27

Cygnus Solutions, originalmente Cygnus Support, foi fundada em 1989 por John Gilmore, Michael

Tiemann e David Henkel-Wallace para fornecer suporte comercial para software livre. Seu lema era: "Making free software affordable". Cygnus um acrnimo recursivo para "Cygnus, Your GNU Support".

27

2.2 Pequeno Histrico

Segundo a enciclopdia Wikipdia 28 , o primeiro sistema embarcado moderno reconhecido foi o Apollo Guidance Computer desenvolvido por Charles Stark Draper no laboratrio instrumental do Massachusetts Institute of Technology(MIT) na dcada de 60. Cada vo para a lua possuam dois dele, que controlam o sistema de orientao inercial.

J o primeiro sistema embarcado produzido em massa foi o computador guia (computer guidance) produzido para o mssil Minuteman 29 tambm na dcada de 60. Este sistema tem como principal funo orientar o mssil, tornando-o mais preciso.

Nessa poca tambm existia um pequeno programa de controle funcional de telefones. Logo este pequeno programa estava sendo utilizado em outros dispositivos, entretanto de forma customizada, e no somente destinado para o dispositivo original do projeto.

Posteriormente, com o advento de microprocessadores especialistas, foi possvel desenvolver software especfico para os variados tipos de processador. Os programas eram escritos em linguagem de mquina. (MAXWELL, 1999)

J na dcada de 1970 comeavam a surgir bibliotecas de cdigos e pacotes de sistemas operacionais direcionados para Sistemas Embarcados especficos, com processadores especficos. Neste perodo linguagem C comeou a ser utilizada para construo de Sistemas Operacionais, como viria a acontecer com o Linux.

Este foi o trampolim para o avano tecnolgico subseqente. O avano tecnolgico, principalmente em telecomunicaes, ocorrido nos anos seguintes tornou de fundamental
28

Wikipdia. Desenvolvido pela Wikimedia Foundation. Apresenta contedo enciclopdico. Disponvel

em: <http://en.wikipedia.org/wiki/Apollo_Guidance_Computer>. Acesso em: 04 Abr 2007


29

Mssil Minuteman. Mssil nuclear norte americano contendo o primeiro sistema embarcado produzido

em escala, teve inicio de sua produo em 1962 (Minuteman I), 1965 (Minuteman II), 1970 (Minuteman III), hoje possui cerca de 500 Minuteman III em silos de msseis espalhados em F.E. Warren Air Force Base, Wyoming, Malmstrom Air Force Base, Montana, e Minot Air Force Base, North Dakota. Tem o custo de produo aproximado de $7,000,000.

28

importncia a implementao de Sistemas Embarcados para as mais variadas tarefas. Desde o controle de um rob em uma montadora de automveis aos cada vez mais minsculos celulares, o Sistema Operacional tem papel crucial para a performance do sistema como um todo no mundo atual. (PETERSON, 1981)

2.3 Caractersticas

Como dito anteriormente, Sistemas Embarcados so especialistas. Conseqentemente, o nmero e as particularidades dos sistemas operacionais correspondentes variam na mesma proporo.

O projeto de um sistema especialista, entretanto, apresenta a caracterstica de otimizao potencialmente prxima do timo, em todos os "planos" do projeto. Em decorrncia dessa caracterstica os Sistemas Embarcados avanam no sentido de maximizao da performance e processamento em tempo real.

Uma preocupao constante em um projeto de Sistema Embarcado aborda a questo de energia utilizada pelo sistema. Como j foi citado, as arquitetura dos Sistemas Embarcados so tipicamente baseadas em fontes de energia rapidamente esgotveis como pilhas e baterias. Nesse sentido, projetar um Sistema Operacional (S.O) para tal sistema deve implementar: Polticas de paralelismo de execuo restritas como o pipeline 30 clssico em que so executados simultaneamente estgios distintos de instrues distintas (REIS, 1999); O tamanho da memria fator fundamental na performance de um Sistema Embarcado como um todo. Neste aspecto, por uma questo de limitao tecnolgica, os dispositivos envolvidos no podem dispor de muita memria, o que pode acarretar em um impacto negativo em tarefas corriqueiras do Sistema Operacional (S.O) como alocao de memria para processos;
30

Pipeline. Linha de canalizaes; seqncia de programas encadeados, funcionando em conjunto.

29

Memrias potencialmente velozes acarretam problemas de desperdcio de potncia pelo aparecimento da "capacitncia parasita 31 " criada. (ROSA JNIOR, 2002)

Assim como num PC, os Sistemas Embarcados tambm devem gerenciar um conjunto de entidades de hardware. Entre outras temos: CPU, ROM 32 /RAM, memria no-voltil, relgio temporizador e dispositivos de I/O.

No existe padro na construo de Sistema Embarcado, j que cada software bsico deve ser capaz de suportar as caractersticas peculiares do Sistema Embarcado ao qual se destina. Dispositivos de hardware utilizados em um sistema comumente no so utilizados por um outro sistema. Alm disso, muitas vezes o prprio hardware especfico do sistema, no sendo padronizado.

2.4 Tempo Real em Sistemas Embarcados Linux

As particularidades de um sistema de tempo real no so necessrias em todos os equipamentos que empregam um sistema embarcado, porm, elas podem tornar-se desejveis uma vez que o mesmo pode ser utilizado em equipamentos e dispositivos que tenham a necessidade de atender a rpidas requisies. Portanto, nem todos os sistemas embarcados so sistemas de tempo real, porm, desejvel que os sistemas embarcados possam implementar as caractersticas de real-time.

31

Capacitncia Parasita. A capacitncia parasita est presente sempre que houver uma diferena de

potencial entre dois materiais condutores separados por um dieltrico. Pelo fato de a capacitncia parasita poder causar acoplamento indesejado entre circuitos, um extremo cuidado deve ser tomado na disposio dos sistemas eletrnicos em placas de circuitos impressos.
32

ROM. A memria ROM (acrnimo para a expresso inglesa Read-Only Memory) um tipo de

memria que permite apenas a leitura, ou seja, as suas informaes so gravadas pelo fabricante uma nica vez e aps isso no podem ser alteradas ou apagadas, somente acessadas. So memrias cujo contedo gravado permanentemente. Mas possivelmente podem ser escritas por meio de mecanismos especiais.

30

Temos dois tipos de Sistemas em Tempo Real:

Hard Real Time; Soft Real Time.

Os sistemas operacionais de tempo real so aqueles empregados em dispositivos e equipamentos que necessitam de uma garantia de tempo mximo de resposta, ou seja, so utilizados no suporte s aplicaes submetidas a requisitos de natureza temporal.

Vrios produtos, que apresentam processadores embarcados, no necessitam que o tempo de processamento e resposta do sistema seja rigorosamente bem definido, no apresentando, portanto, a necessidade de um sistema operacional de tempo real. Por outro lado, alguns outros dispositivos necessitam que os resultados processados sejam gerados no momento correto, sob pena de comprometer o funcionamento total do sistema caso ocorra algum atraso ou imprevisto durante a execuo e o processamento. Aplicaes com requisitos de tempo real so cada vez mais comuns nos dias de hoje, variando muito com relao ao tamanho e complexidade. Entre os sistemas mais simples esto os controladores embarcados em utilidades domsticas, tais como lavadoras de roupa e videocassetes. Na outra extremidade do espectro, onde sistemas de real-time so empregados, encontram-se os sistemas militares de defesa e o controle de trfego areo. (OLIVEIRA, 2001)

Podemos citar como exemplos tpicos de utilizao dos sistemas em Tempo Real Hard os controles de processos industriais, nos transportes e na medicina, no marca-passo e etc.

Um sistema considerado Tempo-Real Soft quando construdo para reagir o mais rpido possvel aos estmulos. Entretanto, caso haja perda de eventos ou no consiga processar a tempo, no haver nenhuma conseqncia catastrfica em sua operao e sim um degradao na qualidade. Podemos citar como exemplos tpicos de Tempo Real Soft, sistemas de udio, vdeo e de voz sobre IP.

31

Tal qual o Unix um sistema operacional de tempo compartilhado projetado para maximizar o throughput 33 e dar uma parte do compartilhamento da CPU ao ambiente multiusurio.

Existe ainda um comportamento no determinstico do sincronismo de alguns servios do kernel como, alocao de memria e chamadas de sistema.

Temos no mercado alguns sistemas em tempo real Linux como:

Montavista Linux Professional Edition (http://www.mvista.com); TimeSys (http://timesys.com) Include the latest Linux RT patches; In their LinuxLink platform; Koan Software (http://koansoftware.com); Hardreal time support with RTAI; SysGo (http://sysgo.com) Hardreal time support with RTAI.

No entanto, o Linux no foi projetado para ser um sistema operacional para uso em sistemas real-time (FARINES, 2000), at porque, alguns servios do referido sistema operacional rendem atrasos imprevisveis.

Um verdadeiro sistema operacional de tempo real precisa ser determinstico, para que possa garantir, assim, um tempo mximo de resposta (BARABANOV, 1996) (SANTO, 2001) (KADIONIK, 2002). Esta caracterstica define que o nmero de ciclos para a execuo de uma operao deve ser sempre o mesmo, podendo ocorrer uma interrupo caso necessrio. Por exemplo, suponhamos que existam 20 pessoas em uma discusso moderada, e que elas apenas possam falar e expor suas idias em seqncia. Digamos, tambm, que o sistema operacional seja o moderador da discusso. Agora, suponhamos que o participante nmero 5 esteja falando e a pessoa nmero 3 tenha alguma coisa muito importante para acrescentar. Em um sistema no-determinstico, ela ter que esperar que todos participantes falem, do nmero 6 at o nmero 20, que a vez seja passada novamente para os participantes nmero 1 e nmero 2, na seqncia, at que ela possa novamente assumir a palavra. Por outro lado, se o sistema operacional fosse determinstico, ele seria capaz de interromper a seqncia e passar a

33

Throughput. Velocidade com que um computador processa dados. uma combinao da velocidade de

processamento interno, velocidade dos perifricos (I/O) e eficincia do sistema operacional e outros software do sistema, todos funcionando juntos.

32

palavra para a pessoa nmero 3, permitindo que ela permanecesse com a mesma durante um perodo de tempo pr-estabelecido, tornando o sistema mais gil e mais eficiente.

Ento, o que realmente um sistema operacional de tempo real? A definio mais coerente sobre um sistema operacional real-time parece ser a que o define como um sistema capaz de tratar os eventos do mundo real, com um tempo de resposta definido, previsto e relativamente pequeno.

Contudo, o Linux est cumprindo firmemente as exigncias para adequar-se as necessidades dos sistemas em tempo real. Esperar a previsibilidade de 100% em kernel padro um fato certo em poucos anos. (LINUXDEVICES, 2007)

2.5 Alguns Sistemas Embarcados Disponveis

Apesar da peculiaridade tpica dos Sistemas Embarcados, existem no mercado algumas solues prontas. E, devido s suas caractersticas, este mercado se apresenta sem um "lder de vendas", pois ainda no existe o conceito de Sistema Embarcado de uso geral, apenas pequenos nichos de concorrncia.

A seguir tm-se pequenos textos a respeito de alguns Sistemas Embarcados disponveis no mercado. (ROSA JNIOR, 2002)

2.5.1 eCos

Embedded Configurable Operating System. Sistema Open Source desenvolvido pela Red Hat. um Sistema Operacional de Tempo Real, possuindo dispositivos de gerenciamento de processos tais como timers, schedulers e controle de interrupo. Este sistema normalmente

33

utilizado em dispositivos de pouca memria como players de udio e impressoras laser. Vantagem: suporte a vrias arquiteturas (REDHAT, 2003).

2.5.2 NetBSD

Baseado em Unix. Este tambm um sistema embarcado Open Source. Uma desvantagem em relao a outros Sistemas Embarcados a sua relativa necessidade de memria podendo chegar at 16Mb de RAM. Desta forma, ele se apresenta como uma boa opo para "rodar" em roteadores e outros dispositivos de rede que possuem, de modo geral, boa quantidade de memria disponvel.

2.5.3 Windows CE Embedded

Lanado em 1996 pela Microsoft, interessada num nicho sem lderes de mercado at ento. Utiliza o Windows 34 como base de desenvolvimento e no Open Source. Tamanho relativamente compacto e possibilidade de incorporar novos mdulos/componentes (WINDOWS EMBEDDED, 2007).

34

Windows. Microsoft Windows ou Windows um Sistema Operacional muito popular, criado pela

Microsoft. A Microsoft comeou o desenvolvimento de um Gerenciador de Interface (subseqente renomeado Microsoft Windows) em setembro de 1981. O Windows s comea a ser tecnicamente considerado como um SO a partir da verso Windows NT, lanada em Agosto de 1993. O que havia antes eram sistemas grficos sendo executados sobre alguma verso dos sistemas compatveis com DOS, como MS-DOS, PC-DOS ou DR-DOS. Somente o MS-DOS era produzido pela prpria Microsoft.

34

2.5.4 Windows NT Embedded

Sistema Operacional tambm baseado em Windows, de cdigo fechado. Consideravelmente grande ocupao de memria, no sendo indicado para dispositivos com memria restrita como aparelhos de mo.

2.5.5 uClinux

O Embedded Linux Microcontroller um Sistema Embarcado de cdigo aberto criado em 1998 e completamente voltado a Sistemas Embarcados. Possui kernel de apenas 900Kb e suporte ao protocolo TCP/IP, entre outros protocolos de rede, alm de sistemas de arquivos diversos como NFS 35 e FAT16/32 36 , entre outros (UCLINUX, 2007).

Este sistema, por ser baseado em Linux, mantm sua estabilidade e portabilidade. Outra vantagem do uClinux o suporte a vrias arquiteturas (MAXWELL, 1999).

35

NFS. Network File System. Sistema de compartilhamento de arquivos em rede criado pela Sun

Microsystems para Unix. Permite: acesso a arquivos, execuo de programas e visualizar estatsticas do computador remoto.
36

FAT16/32. A File Allocation Table (FAT, ou Tabela de Alocao de Ficheiros(Arquivos)) um

sistema de arquivos desenvolvido para o MS-DOS e usado em verses do Microsoft Windows at (e inclusive) o Windows Me. A Tabela de Alocao de Ficheiros(Arquivos) um mapa de utilizao do disco ou disquete. Graas a ele, o Sistema Operacional capaz de saber exatamente onde um determinado ficheiro est armazenado. Existem duas verses do sistema FAT: FAT16 (para OS 16 bits ou 32 bits) e FAT32 (s para SO a 32 bits); a diferena mais visvel entre as duas verses que FAT32 suporta nomes de ficheiros longos (at 256 caracteres), enquanto o FAT16 suporta apenas nomes de arquivos curtos (at 8 caracteres + extenso).

35

2.5.6 OpenWRT

A distribuio OpenWRT e baseada no Embedded Linux Microcontroller Project (www.uclinux.org). Este sistema ter um destaque, pois ser utilizado nesta monografia. (OPENWRT, 2007)

O OpenWRT uma distribuio Linux para Sistemas Embarcados, em que seu desenvolvimento dispe de um sistema de arquivos totalmente escrito com gerenciamento de pacotes, e no apenas um firmware simples com um nico processo, isso propicia uma grande facilidade na seleo e configurao das aplicaes fornecidas e permite que o colaborador/usurio customize o dispositivo usando apenas pacotes. Para o colaborador o OpenWRT a estrutura ideal para construir uma aplicao sem ter a preocupao de construir um firmware completo em torno dela. Para o usurio isto significa a habilidade de total customizao, para utilizar o dispositivo de maneira nunca antes vista.

Com a liberao dos cdigos fontes Linux da srie de roteadores Linksys WRT54G/GS surgiram um grande numero de firmwares modificados para estender as funcionalidades em vrias maneiras. Esses firmwares continham 99% de cdigos conservados e 1% de funcionalidades adicionadas, e cada projeto tentou seguir um determinado segmento de mercado com as funcionalidades que forneceu.

Abaixo duas motivaes para inicializao do projeto OpenWRT:

Era freqentemente difcil encontrar um firmware com a combinao da funcionalidade desejada; Todos os firmwares foram baseados nas fontes originais de Linksys que seguiam o desenvolvimento GNU/Linux.

O desenvolvimento do OpenWRT se deu de forma diferente, ao invs de comear a partir dos fontes do Linksys, o desenvolvimento comeou em um estado limpo dos cdigos fontes, com apenas cdigos fontes base. Pea por pea o software foi montado trazendo as funcionalidades de volta, como no firmware padro da Linksys, usando verses recentemente disponveis.

36

Com o OpenWRT os pequenos dispositivos tornam-se mini PC Linux, possuindo praticamente todos os comandos Linux tradicionais e com um sistema de gerenciamento de pacotes para facilmente carregar um software ou caractersticas extras.

2.5.6.1 Por que utilizar o OpenWRT?

Porque GNU/Linux nos d o poder fazer o que ns necessitamos com ferragem barata e evitar o software proprietrio, de cdigo fechado. O OpenWRT o firmware baseado no Linux mais rpido disponvel para vrios roteadores sem fio. No momento a distribuio contem mais de 100 pacotes de software. Alm disso, a comunidade de OpenWRT fornece os mais variados pacotes add-on.

2.5.6.2 OpenWRT, um breve histrico

O projeto comeou em janeiro 2004. As primeiras verses de OpenWrt foram baseadas em fontes de Linksys GPL para WRT54G e no buildroot do projeto uclibc. Esta verso foi definida como OpenWrt verso estvel e estava prpria para uso. H ainda muitas aplicaes de OpenWrt, como os Freifunk-Firmware ou o Sip@Home, que so baseados nesta verso.

No comeo de 2005 alguns novos desenvolvedores se juntaram a equipe. Aps alguns meses de desenvolvimento fechado a equipe decidiu publicar as primeiras verses experimentais do OpenWrt. As verses experimentais usam um sistema bastante customizado da construda baseada na verso 2 do buildroot, o buildroot2, tambm do projeto uclibc. OpenWrt usa fontes oficiais do kernel GNU/Linux e apenas adiciona patches para o sistema de chip e drivers de interface de rede. O codename da primeira liberao de OpenWrt White

37

Russian, um cocktail popular. Atualmente, o desenvolvimento da linha White Russian terminou com a liberao de OpenWrt 0.9.

O desenvolvimento da prxima verso j est ocorrendo no repositrio de cdigos fontes da equipe OpenWRT. Conter suporte a muitas outras placas embarcadas. Seu codename Kamikaze.

2.6 Java em Sistemas embarcados

A Sun, que em 1991 iniciou seus projetos de olho na nova era de computadores sob controle dos usurios vem at hoje desenvolvendo novas ferramentas e sistemas que so utilizados em nosso dia-a-dia. Compilados em Java Virtual Machines (JVM) bytecode, o mesmo somente roda em sistemas com o JVM implementado. (JAVA SE EMBEDDED, 2007)

Possui fcil integrao entre o cdigo Java e a linguagem nativa. Isto o torna sistemas simples, orientados ao objeto, com suporte a protocolos de rede, robusto, seguro, de arquitetura neutra, porttil, de alta performance, multithreaded e dinmico.

Algumas caractersticas naturais do Java so:

O Java esconde as especificaes dos dispositivos e do sistema embarcado; Fornece um numero de caractersticas alm do oferecido pelo sistema embarcado; Ferramentas de rede interopervel; Simplifica o desenvolvimento de produto. O software pode facilmente ser desenvolvido em estaes de trabalho; Pode-se reutilizar o cdigo; Bytecode mais compacto.

Sua interface nativa (JNI Java Native Interface) interage com o hardware atravs do JVM e operado com aplicaes e bibliotecas escritas em outras.

38

Mas o Java tambm tem suas desvantagens;

No possui cdigo fonte aberto; Licenas de uso comercial e suporte so pagos; No depende somente do JVM para funcionamento. Necessite-se de outros mdulos como as bibliotecas JDK; Metodologia sem documentao.

Contudo, o Java ainda considerado pesado para algumas aplicaes devido ao overhead gerado por este sistema.

2.7 Sobre licenas em sistemas embarcados livres

Sobre licenas em sistemas embarcados livres, temos os sistemas que permitem e os sistemas que no permitem aplicaes proprietrias. Entre os sistemas que permitem aplicaes proprietrias, podemos citar: Biblioteca C (LGPL), Bibliotecas compartilhadas (LGPL / BSD), Aplicaes do tipo BSD (podem ser proprietrias) e GPL (podem coexistir sem modificaes com aplicaes proprietrias, mas necessrio fornecer o cdigo fonte para o usurio). Entre os sistemas que no permitem aplicaes proprietrias, temos o Kernel Linux GPL (apesar de ser cada vez menos tolerados aplicaes proprietrias, no impe restries de licena em bibliotecas ou aplicaes) e bibliotecas compartilhadas ou GPL. (WARFIELD, 1999)(GNU LICENSES, 2007)

39

2.8 Software livre em Sistemas Embarcados

Vantagens existentes para desenvolvedores de sistemas embarcados (GNU, 2007):

Inovao e valores agregados. A possibilidade de focar o uso no diferencial do produto, por ter vrios componentes prontos para uso em grande parte do sistema; Implementao das caractersticas crticas necessrias. No necessrio aguardar a implementao de algum; Inovao constante. As caractersticas evoluem algumas vezes antes mesmo que voc precise delas. Logo possvel portar o Linux para uma nova arquitetura inovadora;

Qualidade de Software. Desenvolvedores de componentes chaves e cdigos so excelentes programadores; Software proprietrios. Com isso o desenvolvimento de software completamente fechado; Controle para os desenvolvedores. Liberdade irrestrita para uso do software, para tomar decises a respeito do sistema, para escolher entre vrias alternativas tcnicas e sem caixas pretas no sistema que no podem ser corrigidas, modificadas ou melhoradas;

Flexibilidade. Possibilidade de personalizao, mltiplas aplicaes disponveis, possibilidade de realizao de tarefas especializadas com baixo custo; Escolhas. Possibilidades de substituio de componentes mesmo aps o trmino das etapas do desenvolvimento, muitas possibilidades de escolha para a mesma funo, muitas ferramentas de desenvolvimento teste, escolha do S.O para desenvolvimento, GNU/Linux, Unix e Windows, sem necessidade de trocar o S.O do desktop.

Alm dessas vantagens citadas, voc ter acesso s fontes e interfaces de baixo nvel, conhecendo detalhes a respeito do seu prprio sistema, chances reais de encontrar a causa principal dos problemas; voc ter facilidade de desenvolvimento, possibilidade de modificar e reusar cdigo existente se estiverem desenvolvendo com uma licena compatvel; recursos e

40

suportes on-line disponveis; voc tem acesso direto aos desenvolvedores, com possibilidade de tirar dvidas em tempo real e entender as tomadas de decises. (WARFIELD, 1999)

Nos sistemas proprietrios, ao final do perodo de avaliao voc tem que pagar ou perder tudo que implementou, j nas contribuies para projetos abertos, voc no tem que fazer nova implementao em caso de mudana para outra companhia.

Com isso, voc tem custos reduzidos, liberdade e iniciativa para iniciar o projeto imediatamente, sem a necessidade de aprovao da gerncia ou compra de software, requisio de verses de avaliao, etc.

Outra diferena entre sistemas proprietrios e projetos abertos, que no primeiro, sempre vem com seus prprios termos de licenciamento. No necessrio perder tempo tentando entendelos ou procurando por armadilhas antes de aceit-lo. J licenas softwares livres (SL) so mais fceis de entender. A GPL foi escrita por um programador (e ento revista por um advogado). (GNU LICENSES, 2007)

Vantagens para gerentes de sistemas embarcados:

Voc dispe de controle em suas decises tcnicas, em suas criaes, aplicaes e dispositivos e escolha de fornecedores e vendedores; Tem reduo de custo, pois no tem royalties para pagar, tem reuso mximo de cdigos e menor tempo para chegar ao mercado; Alm disso, tem posse de sua plataforma, desde que voc respeite os termos da licena SL, ningum jamais ser capaz de revogar seus direitos para continuar a usar a sua plataforma ou ferramentas. Sem possibilidade de perder o seu investimento devido violao de licena.

Vantagens para empresas de sistemas embarcados:

Inclua todas as vantagens relacionadas para gerentes de sistemas embarcados, alm dessas, menos trabalho para o departamento de compras de software, e menor custo de litgio;

41

Construir dispositivos abertos baseados SL pode gerar uma imagem muito positiva da sua empresa para a comunidade de desenvolvedores de SL Facilita a atrao de desenvolvedores talentosos;

SL garante que seus investimentos de logo prazo so seguros e podem lhe levar adiante.

Vantagens para os fornecedores de contedo:

Reduo no custo de produo, possibilidade de criar e testar a produo com ferramentas usando os mesmos codecs 37 ou bibliotecas que esto nos players embarcados (codecs sem patentes ou royalties).

Vantagens para consumidores e usurios finais:

Propriedades dos dados, graas aos formatos abertos e aos SL; Qualidade e confiabilidade; Segurana e privacidade; Dispositivos cheios de caractersticas e uso agradvel. Biblioteca de software relativamente grande; Sistemas personalizados (se atualizao de firmware 38 estiver disponvel).

Desafios com Software Livre

Mudana de gerenciamento com atualizaes e verses freqentes de SL (alvo mvel). Crticas a congelar componente cedo demais; Freqentemente precisa-se escolher entre vrias solues. Falta de tempo dos desenvolvedores para investigar solues e seguir as novidades do SL; Necessidade de escolher solues duradouras. Necessidade de estimar o tamanho da comunidade de desenvolvedores e usurios quo ativos o desenvolvimento, a importncia da tecnologia subjacente, disponibilidade de prestadores de servio;

37 38

Codecs. Contrao do termo "COder-DECoder". Algoritmo de compresso/descompresso. Firmware. Programao em hardware, programa ou dados de computador que so armazenados

permanentemente em um chip de memria de hardware, como uma ROM ou EPROM.

42

Freqentemente muitos recursos e documentao espalhados. Requer experincia em procura.

Desafios com Linux:

Linux um sistema operacional de propsito geral, suportando sistemas que vo do pequeno ao enorme. Desta forma, ele pode no ser timo e pode no ser capaz de bater uma soluo personalizada bem ajustada;

Linux pode requerer uma quantia significativa de ajustes pra faz-lo suportar os requerimentos especficos do seu sistema embarcado. Por outro lado, no ser timo pode ser valorizado devido aos custos menores de desenvolvimento;

Questes legais: validade da GPL no pas local, cdigo misto, legitimidade dos donos da propriedade, patentes de software; Excesso de atrao: engenheiros desejam usar SL, mesmo quando ele no a melhor soluo.

2.9 Consideraes

Notamos que os sistemas embarcados sofrem restries que no so to relevantes como em sistemas de computao convencionais, principalmente os que dizem respeito a consumo de energia, disponibilidade de memria e espao utilizado. Devido as restries, os sistemas embarcados precisam ser geis e enxutos.

No existe um sistema embarcado dominante. Existem sistemas que atendem aplicaes especficas. Por exemplo, o OpenWRT se destaca nesse tipo de sistema, pois possui uma maior abrangncia em aplicaes e que vem se tornando de fato, uma grande oportunidade de tornar seu roteador em uma soluo completa.

Hoje os sistemas embarcados se encontram em vrios elementos de nosso cotidiano e tendncia de aumentar cada vez mais.

43

3. FUNDAMENTOS DE SEGURANA DA INFORMAO

A troca de informaes pela internet representa uma forma de sobrevivncia para os negcios nos dias atuais. Pequenas e mdias empresas esto cada vez mais utilizando a Internet como uma forma de expanso. O sistema de Firewall uma das possibilidades para conseguir proteger as redes destas corporaes conectadas, de ataques. O Linux um sistema operacional gratuito que possibilita a configurao de um firewall. Apresenta-se um sistema de firewall baseado no Linux com o kernel reduzido.

3.1 Firewall

O Firewall um programa que tem como objetivo proteger a mquina contra acessos no permitidos, trfego indesejado, proteger servios que estejam rodando na mquina e bloquear a passagem de coisas que voc ou sua empresa no deseja receber (como conexes vindas da Internet para sua segura rede local, evitando acesso aos dados corporativos de uma empresa ou a seus dados pessoais). (RUSSEL, 2000) (SCHUBA, 1997)

Firewalls so largamente utilizados hoje em dia, sendo imprescindvel em basicamente todas as solues que utilizam conexo direta ou indireta com a grande rede internet, sendo primordial e necessrio a utilizao em mquinas pessoais, junto com o sistema operacional da mesma, com o grande aumento de tcnicas de invaso, de vrus, worms 39 , spywares 40 e

39

Worms. O worm, ou verme, um programa que, explorando deficincias de segurana de

computadores, propaga-se de forma autnoma, o vrus infecta um programa e necessita deste programa hospedeiro para se propagar, o worm um programa completo e no precisa de outro programa para se propagar, contaminando diversos computadores geralmente conectados em rede. O worm mais conhecido (e cujo nome deu origem ao termo) atacou quantidades imensas de computadores na Internet durante os anos 80.
40

Spyware. uma categoria de software malicioso que objetiva interceptar ou fazer exame das atividades

de computador sem o consentimento do usurio. Tambm conhecido como Software Espio.

44

outros, praticamente impossvel sentir que suas informaes digitais esto seguras sem um firewall. (GARFINKEL, 1996)

O firewall agrupa um conjunto de tcnicas como traduo de endereos (Network Address Translation NAT), servios de Proxy 41 , Filtragem de pacotes e redes virtuais privadas (Virtual Private Network VPN) que somadas constroem um sistema definido atravs de uma poltica de segurana da rede. (RUSSEL, 2000)

3.2 Arquiteturas de Firewall

Existem diversas formas de juntar estes componentes formando o que denominado de arquiteturas de firewall (CHAPMAN, 1995)(SCHUBA, 1997), que podem ser basicamente trs: Dual-Homed Host, Screened Host e Screened Subnet. A seguir, ser falado um pouco sobre cada uma delas, pois so as arquiteturas de firewalls mais comuns, entretanto h muitas outras variaes que podem ser usadas. (RANUM, 1992)

3.2.1 Arquitetura Dual-Homed Host

Esta arquitetura construda sob uma mquina denominada Dual-Homed Host, que se conecta as redes interna e externa (Internet), e poderia atuar como roteador entre elas, mas possui a funo de roteamento desabilitada. Assim, sistemas dentro de uma das redes podem se comunicar com o Dual-Homed Host, mas no podem se comunicar diretamente com outra

41

Proxy. Um servidor que atua como intermedirio entre um cliente e outro servidor. Normalmente

utilizado em empresas para aumentar a performance de acesso a determinados servios ou permitir que mais de uma mquina se conecte Internet. Proxies mal configurados podem ser abusados por atacantes e utilizados como uma forma de tornar annimas algumas aes na Internet, como atacar outras redes ou enviar SPAM.

45

rede. Portanto, um Dual-Homed Host pode fornecer servios apenas atravs de servidores proxy, ou permitir que usurios conectem-se diretamente a ele.

3.2.2 Arquitetura Screened Host,

Nesta arquitetura, o firewall composto por um roteador e uma mquina chamada bastion host. Os servios so fornecidos a partir do bastion host que conectado apenas a rede interna, usando o roteador para separ-la da Internet, chamado screening router. Nesta arquitetura, a segurana principal feita por filtragem de pacotes. A filtragem de pacotes do screening router configurada de tal maneira que o bastion host seja a nica mquina da rede interna que recebe conexes da Internet. Portanto, o bastion host uma mquina que deve prover um alto nvel de segurana, j que poder sofrer constantes ataques.

3.2.3 Arquitetura Screened Subnet

Nesta arquitetura adicionada uma camada extra de segurana atravs da demilitarized network (DMZ), uma rede que isola a rede interna da externa (Internet). Nela, h dois roteadores screening routers. Um entre a rede DMZ e a rede interna, e outro entre a rede DMZ e a rede externa. Para atacar a rede interna nesta arquitetura o atacante teria que passar pelos dois roteadores. E mesmo que o atacante consiga invadir o bastion host, que fica isolado na rede DMZ, ele ainda ter que passar pelo roteador interno. O bastion host basicamente atua como servidor proxy para vrios servios, permitindo que clientes internos acessem servidores externos indiretamente. Ele tambm atua como servidor de email, ou os envia para determinados hosts da rede interna.

O roteador interno protege a rede interna da Internet e tambm da rede DMZ. Ele faz a maior parte da filtragem de pacotes do firewall, permitindo o estabelecimento de servios a partir de

46

clientes internos para servidores da Internet. Estes so servios que o seu site pode seguramente fornecer usando filtragem de pacotes ao invs de proxies.

O roteador externo protege a rede DMZ e a rede interna da Internet. Ele permite quase tudo que venha da rede DMZ passe atravs dele, e, em geral, faz pouca filtragem de pacotes. As regras de filtragem de pacotes para proteger as mquinas internas devero ser basicamente as mesmas em ambos os roteadores. As nicas regras de filtragem de pacotes que so realmente especiais no roteador externo so aquelas que protegem a rede DMZ. Mas geralmente no necessrio tanta proteo, pois o bastion host bem protegido com mtodos de segurana de host.

3.3 Poltica de Segurana

Uma poltica de segurana tpica para uma empresa conectada a Internet com servidores de FTP, SMTP, POP, HTTP, HTTPS e DNS, segue os requisitos de segurana abaixo: (ZWICK, 2000)

Todos os pacotes sero negados, a no ser que seja explicitamente especificado o contrrio; Bloqueio de todas as conexes iniciadas externamente, exceto os servios permitidos que sero redirecionados para seus respectivos servidores; Os servios de FTP, SMTP, POP utilizaro o IP Security para comunicao; Permisso de trfego ilimitado a partir da interface de loopback; Permisso de conexes iniciadas a partir da rede interna; Pacotes destinados ao firewall sero descartados exceto os da rede interna para o servio ssh; A rede interna sofrer Source Network Address Translation (SNAT 42 ) do tipo mascaramento;

42

SNAT. NAT de origem, utilizado junto as regras do Iptables na origem do pacote NAT, da mesma

forma que existe o SNAT, existe o DNAT (Destination Network Address Translation, ou NAT de destino).

47

Impedir ataques do tipo: o Syn flood 43 ; o IP spoofing 44 ; o Source Routed Options; o ICMP (redirect e destination unreachable), entre outros.

Rejeitar pacotes com endereos reservados exceto os definidos em suas interfaces; Pacotes ICMP tero tamanho mximo limitado quando destinados rede interna.

3.4 Iptables

O iptables um firewall em nvel de pacotes e funciona baseado no endereo/porta de origem/destino do pacote, prioridade, etc. Ele funciona atravs da comparao de regras para saber se um pacote tem ou no permisso para passar. Em firewalls mais restritivos, o pacote bloqueado e registrado para que o administrador do sistema tenha conhecimento sobre o que est acontecendo em seu sistema. (GARFINKEL, 1996)

Ele tambm pode ser usado para modificar e monitorar o trfego da rede, fazer NAT (masquerading 45 , source nat, destination nat), redirecionamento de pacotes, marcao de pacotes, modificar a prioridade de pacotes que chegam/saem do seu sistema, contagem de bytes, dividir trfego entre mquinas, criar protees anti-spoofing, contra syn flood, DoS, e
43

SYN flood. SYN flood ou ataque SYN uma forma de ataque de negao de servio (tambm conhecido

como Denial of Service - DoS) em sistemas computadorizados, na qual o atacante envia uma seqncia de requisies SYN para um sistema-alvo e no retorna o ACK confirmando a conexo.
44

IP Spoofing. IP spoofing uma tcnica de subverso de sistemas informticos que consiste em

mascarar (spoof) pacotes IP com endereos remetentes falsificados.


45

Masquerading. O IP Masquerading uma maneira de utilizar uma mquina rodando Linux, com um

modem e uma placa de rede, como um roteador para redes de pequeno porte. Desta forma, voc pode conectar a sua rede domstica ou do escritrio, com computadores usando Windows, MacOS, Linux ou qualquer outro sistema operacional que oferea conexo TCP/IP, Internet, sem grandes investimentos.

48

outros. O trfego vindo de mquinas desconhecidas da rede pode tambm ser bloqueado/registrado atravs do uso de simples regras. As possibilidades oferecidas pelos recursos de filtragem iptables como todas as ferramentas UNIX maduras dependem de sua imaginao, pois ele garante uma grande flexibilidade na manipulao das regras de acesso ao sistema, precisando apenas conhecer quais interfaces o sistema possui, o que deseja bloquear, o que tem acesso garantido, quais servios devem estar acessveis para cada rede, e iniciar a construo de seu firewall. (GUIA FOCA, 2007)

O iptables ainda tem a vantagem de ser modularizvel, funes podem ser adicionadas ao firewall ampliando as possibilidades oferecidas. Este um firewall que tem possibilidades de gerenciar tanto a segurana em mquinas isoladas como roteamento em grandes organizaes, onde a passagem de trfego entre redes deve ser minuciosamente controlada.

Um firewall no funciona de forma automtica (instalando e esperar que ele faa as coisas por voc), necessrio pelo menos conhecimentos bsicos de rede tcp/ip, roteamento e portas para criar as regras que faro a segurana de seu sistema. A segurana do sistema depende do controle das regras que sero criadas por voc, as falhas humanas so garantia de mais de 95% de sucesso nas invases.

Enfim o iptables um firewall que agradar tanto a pessoas que desejam uma segurana bsica em seu sistema, quando administradores de grandes redes que querem ter um controle minucioso sobre o trfego que passam entre suas interfaces de rede (controlando tudo o que pode passar de uma rede a outra), controlar o uso de trfego, monitorao, etc.

3.4.1 Caractersticas do iptables

As caractersticas do iptables so:

Especificao de portas/endereo de origem/destino; Suporte a protocolos TCP/UDP/ICMP (incluindo tipos de mensagens ICMP);

49

Suporte a interfaces de origem/destino de pacotes; Manipula servios de proxy na rede; Tratamento de trfego dividido em chains (para melhor controle do trfego que entra/sai da mquina e trfego redirecionado); Permite um nmero ilimitado de regras por chain; Muito rpido, estvel e seguro; Possui mecanismos internos para rejeitar automaticamente pacotes duvidosos ou mal formados; Suporte a mdulos externos para expanso das funcionalidades padres oferecidas pelo cdigo de firewall; Suporte completo a roteamento de pacotes, tratadas em uma rea diferente de trfegos padres; Suporte a especificao de tipo de servio para priorizar o trfego de determinados tipos de pacotes; Permite especificar excees para as regras ou parte das regras; Suporte a deteco de fragmentos; Permite enviar alertas personalizados ao syslog sobre o trfego aceito/bloqueado; Redirecionamento de portas; Masquerading; Suporte a SNAT (modificao do endereo de origem das mquinas para um nico IP ou faixa de IPs); Suporte a DNAT (modificao do endereo de destino das mquinas para um nico IP ou fixa de IPs); Contagem de pacotes que atravessaram uma interface/regra; Limitao de passagem de pacotes/conferncia de regra (muito til para criar protees contra syn flood, ping flood, DoS, etc).

50

3.4.2 Conhecendo as tabelas

Existem trs tabelas possveis de serem utilizadas no iptables (IPTABLES, 2007): filter, nat e mangle. A tabela filter, a tabela padro, utilizada nos trfegos de dados comuns, sem ocorrncia de NAT. A tabela nat, utilizada para dados que geram outra conexo (exemplo: masquerading, source nat, destination nat, port forwarding, proxy transparente). A tabela mangle, utilizada para alteraes especiais de pacotes (exemplo: modificar o tipo de servio TOS). Na prtica, a tabela mangle no muito utilizada.

Cada tabela possui chains, e atravs delas podemos especificar a situao do tratamento dos pacotes, seja qual tabela for.

As chains da tabela filter so:

INPUT Consultado para dados que chegam mquina. Exemplo, pacotes cujo destino final a prpria mquina firewall.

OUTPUT Consultado para dados que saem da mquina. Exemplo, pacotes que saem da mquina firewall.

FORWARD Consultado para dados que so redirecionados para outra interface de rede ou outra mquina. Exemplo, pacote que atravessa a mquina firewall, cujo destino uma outra mquina. Este pacote no sai da mquina firewall e sim de outra mquina da rede ou fonte. Neste caso a mquina firewall est repassando o pacote.

As chains da tabela nat so:

PREROUTING Consultado para pacotes que precisam ser modificados antes de serem roteados. o chain ideal para realizao de DNAT e redirecionamento de portas.

POSTROUTING - Consultado quando os pacotes precisam ser modificados aps o tratamento de roteamento. o chain ideal para realizao de SNAT e IP Masquerading.

51

OUTPUT - Consultado quando os pacotes gerados localmente precisam ser modificados antes de serem roteados. Este chain somente consultado para conexes que se originam de IPs de interfaces locais.

3.4.3 Regras teis, modelo I

Segue abaixo alguns exemplos de regras teis no iptables (VIVA O LINUX, 2007).

No arquivo firewall.sh , quadro 1, ser mostrado como se proteger do ping da morte, contra ataques de Syn-flood, DoS e outros seguindo os mesmos critrios de ataques, e como permitir acesso a determinados servios. Maiores descries diretamente no script.

1: 2: 3: 4:

IPTABLES=/sbin/iptables

# Protege contra os "Ping of Death": $ IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

5: 6: 7: 8: 9: 10: 11: # Permite repasse (NAT,DNAT,SNAT) de pacotes com o estado # e de estabelecidos e relacionados: $ IPTABLES -A FORWARD -m state --state # Protege contra os ataques do tipo "Syn-flood, DoS, etc": $IPTABLES -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

ESTABLISHED,RELATED -j ACCEPT ESTABLISHED,RELATED -j ACCEPT 12: 13: # Loga os pacotes mortos por inatividade:

52

14:

$ IPTABLES -A FORWARD -m limit --limit 3/minute

--limit-burst 3 -j LOG 15: 16: 17: # Protege contra port scanners avanados (ex.: nmap): $ IPTABLES -A FORWARD -p tcp --tcp-flags

SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT 18: 19: 20: 21: 22: 23: -p # Estou redirecionando a porta ZZ do ip # xxx.xxx.xxx.xxx para a porta zz do ip # yyy.yyy.yyy.yyy. # Iptables na inicializao do sistema $ iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx tcp -m tcp --dport ZZ -j DNAT

--to-destination yyy.yyy.yyy.yyy:zz
Quadro 1: Arquivo: /etc/firewall.sh

Para colocar suas regras na inicializao do sistema preciso que voc crie um arquivo e salve como um nome qualquer, no meu caso uso como "firewall", demonstrado no quadro 2.

1: 2: 3: 4:

$ mv firewall /etc/init.d/ $ chmod +x /etc/init.d/firewall $ cd /etc/rc2.d/ $ ln -s /etc/firewall.sh /etc/rc2.d/S99firewall


Quadro 2: Comando para adicionar o firewall inicializao automtica.

3.4.4 Regras teis, modelo II

Ser mostrado outra forma de utilizarmos os scripts de firewall, neste melhor estruturado e utilizando uma maneira mais clara de programar as regras. Sero criados e/ou modificados trs arquivos, firewall.sh, que carregar as regras propriamente ditas, hosts, que possuir a

53

relao de nome versus ip de cada maquina que dever ser conhecida pelo roteador, fwlib.sh, que a biblioteca de funes utilizadas pelo firewall.sh, conforme quadro 3.

1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:

#!/bin/sh . /etc/fwlib.sh flush_firewall

### Ports accessible on the router from the WAN # allow_tcp_port 22 # SSH # allow_tcp_port 465 # HTTPS

### Ports accessible from specific hosts to the # router from the WAN allow_tcp_port_fromhost 80 remote_access # HTTP allow_tcp_port_fromhost 22 remote_access # HTTP

### Ports accessible to client machines. # forward_port 22 server forward_port 9100 printer_01

### if we really need _all_ ports... # register_dmz server

# forward workstation port for application # development forward_port 8080 workstation1

# forward a few utility port-ranges to make it easier # to deal with bittorrent configurations and the like # forward_port 10000:10099 workstation1 # forward_port 10100:10199 laptop1 # forward_port 10200:10299 laptop2

### Translate port for client machines. translate_port 8080 printer_01 80

54

32: 33: 34: ### Trusted hosts, full access to router # trusted_host my_support_company
Quadro 3: Arquivo: /etc/firewall.sh

Como dito acima o arquivo hosts carrega os nomes de cada ip conhecido pelo roteador, no obrigatrio cadastr-los no arquivo pois poder ser utilizado o ip diretamente nas regras do firewall. No quadro 4 mostrado como se deve configurar o arquivo hosts.

1: 2: 3: 4: 5: 6: 7: 8:

127.0.0.1 localhost OpenWrt 192.168.1.100 server 192.168.1.50 workstation1 192.168.1.80 laptop1 192.168.1.81 laptop2 195.xxx.xxx.xxx my_support_company 192.168.1.55 printer_01 195.xxx.xxx.xxx remote_access
Quadro 4: Arquivo: /etc/hosts

No quadro 5 temos as funes utilizadas no script principal de firewall, citada no quadro 3.

1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:

#!/bin/sh

. /etc/functions.sh

WAN=$(nvram get wan_ifname) LAN=$(nvram get lan_ifname)

flush_firewall () { iptables -F input_rule iptables -F output_rule iptables -F forwarding_rule iptables -t nat -F prerouting_rule iptables -t nat -F postrouting_rule

55

14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:

### BIG FAT DISCLAIMER ### The "-i $WAN" literally means packets that came ### in over the $WAN interface; ### this WILL NOT MATCH packets sent from the LAN to ### the WAN address.

allow_tcp_port () { ALLOWPORT=$1 iptables -t nat -A prerouting_rule -i $WAN -p

tcp --dport $ALLOWPORT -j ACCEPT 25: iptables -A input_rule -i $WAN -p tcp --dport $ALLOWPORT -j ACCEPT 26: 27: 28: 29: 30: 31: 32: 33: allow_tcp_port_fromhost () { ALLOWPORT=$1 ALLOWHOSTNAME=$2 ALLOWHOST=`sucky_resolve $ALLOWHOSTNAME` echo "Allowing tcp from $ALLOWHOSTNAME to }

port $ALLOWPORT" iptables -t nat -A prerouting_rule -i $WAN -p -i $WAN -p

tcp -s $ALLOWHOST --dport $ALLOWPORT -j ACCEPT 34: iptables -A input_rule tcp -s $ALLOWHOST --dport $ALLOWPORT -j ACCEPT 35: 36: 37: 38: 39: 40: 41: 42: } sucky_resolve () { HOSTNAME=$1 ### grep $HOSTNAME /etc/hosts | awk '{ print $1 }' }

56

43: 44: 45: 46: 47:

forward_port() { ALLOWPORT=$1 ALLOWHOSTNAME=$2 ALLOWHOST=`sucky_resolve $ALLOWHOSTNAME` echo "FORWARDING $ALLOWPORT TO

$ALLOWHOSTNAME ($ALLOWHOST)" 48: iptables -t nat -A prerouting_rule -i $WAN -p -A forwarding_rule -i $WAN -p tcp --dport $ALLOWPORT -j DNAT --to $ALLOWHOST 49: iptables tcp --dport $ALLOWPORT -d $ALLOWHOST -j ACCEPT 50: 51: 52: 53: 54: 55: 56: 57: translate_port() { ALLOWPORT=$1 ALLOWHOSTNAME=$2 ALLOWHOSTPORT=$3 ALLOWHOST=`sucky_resolve $ALLOWHOSTNAME` echo "TRANSLATING $ALLOWPORT TO $ALLOWHOSTNAME iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport $ALLOWPORT -j DNAT to }

($ALLOWHOST:$ALLOWHOSTPORT)" 58:

$ALLOWHOST:$ALLOWHOSTPORT 59: iptables -A forwarding_rule -i $WAN -p tcp --dport $ALLOWHOSTPORT -d $ALLOWHOST -j ACCEPT 60: 61: 62: 63: 64: 65: 66: trusted_host (){ ALLOWHOSTNAME=$1 TRUSTEDHOST=`sucky_resolve $ALLOWHOSTNAME` iptables -t nat -A prerouting_rule -i $WAN -p }

tcp -s $TRUSTEDHOST -j ACCEPT

57

67:

iptables

-A

input_rule

-i

$WAN

-p

tcp

-s $TRUSTEDHOST -j ACCEPT 68: }


Quadro 5: Arquivo: /etc/fwlib.sh

3.5 Consideraes

O iptables implementa vetores de regras na memria utilizadas para verificar o que cada hook deve fazer com os pacotes que passam por eles. Este gerencia tabelas que indicam quais regras devem ser consideradas quando os pacotes ultrapassam cada um dos pontos de checagem. As tabelas filter, nat e mangle so utilizadas respectivamente para filtragem de pacotes, traduo de endereos de rede (Network Address Translation) e manipulao dos pacotes.

A troca de informaes sobre a Internet representa uma questo de sobrevivncia para os negcios nos dias atuais. Pequenas e mdias empresas esto cada vez mais utilizando a Internet como uma forma de expanso. O sistema de firewall uma das possibilidades para conseguir proteger as redes destas corporaes conectadas, de ataques. O Linux um sistema operacional gratuito que possibilita a configurao de um firewall. Apresenta-se um sistema de firewall baseado no Linux com o kernel reduzido.

Com o iptables fizemos uma abordagem das chains de todas tabelas, mostrando de uma maneira simples, com exemplos, formas de utilizao e configurao de um firewall Linux, em um sistema embarcado, possibilitando ao leitor a customizao das regras propostas.

58

4. CONHECENDO O LINKSYS WRT54G

O Access Point 46 roteador Wi-Fi 47 Linksys WRT54G rene em um mesmo equipamento um roteador de rede com firewall, capacidades de port forwarding e acesso Wi-Fi para redes 802.11b/g sob a marca da Linksys. A Linksys a diviso de equipamentos soho 48 da Cisco, renomada fabricante mundial de equipamentos de rede. Destina-se a compartilhar sua rede local ethernet com clientes Wi-Fi e tambm distribuir sua conexo de banda larga entre as diversas mquinas de uma rede (LINKSYS, 2007).

Entre suas caractersticas de funcionamento podemos encontrar as funes normais para um aparelho de sua categoria. Ele trabalha como roteador para sua conexo web de banda larga distribuindo pacotes entre vrios clientes da rede. Suas configuraes permitem ajustar o roteador para efetuar o login via PPPoE 49 sobre o modem, dispensando o procedimento manual que voc executa hoje para poder navegar na web, caso seja este mtodo de autenticao usado por seu sistema de banda larga. Ele tambm pode estabelecer uma conexo direta pelo modem e receber o endereo IP diretamente do servidor de seu provedor de banda larga, via DHCP 50 . Tambm possvel utilizar no modo bridge 51 , ou ip esttico.

46

Access Point. Um Wireless Access Point (WAP ou AP) um dispositivo que conecta dispositivos

wireless uma rede sem fios. O AP conectado geralmente a uma rede cabeada, e pode repetir dados entre dispositivos em cada lado, na rede cabeada para rede sem fio ou vice versa.
47

Wi-fi. Wireless Fidelity. Transmisso via ondas de rdio ou satlite, sem a necessidade de conexo

fsica por meio de cabos. Provavelmente ser usada em redes de computadores do futuro, permitindo maior flexibilidade de uso e abrindo novas oportunidades para EAD por meio de telecomunicaes.
48 49

Soho. Diviso da Cisco para desenvolvimento de equipamentos para uso domstico e pequenas redes. PPPoE. uma especificao para conectar os usurios em um ethernet a Internet atravs de um meio,

tal como uma nica linha do DSL, de um dispositivo wireless ou de um modem de cabo broadband comum. Todos os usurios sobre o ethernet compartilham de uma conexo comum, assim que dos princpios do ethernet que suportam usurios mltiplos em uma LAN com os princpios do PPP, que se aplicam s conexes em srie.
50

DHCP. Dynamic Host Configuration Protocol, um protocolo de servio TCP/IP seguro, que oferece

configurao dinmica com concesso de endereos IP de host e distribui outros parmetros de configurao para clientes de rede.
51

Bridge. um equipamento que conecta duas redes locais (LANs) ou dois segmentos de uma mesma

LAN. Diferentemente dos roteadores ou routers, bridges trabalham enviando pacotes sem a capacidade de otimizar rotas, isso lhes d velocidade, porem menos versatilidade.

59

O equipamento tambm permite ajustar caractersticas avanadas de gerenciamento de rede, como definir horrios nos quais as conexes externas estaro disponveis e quais portas ou servios podem ser utilizados. Poucos equipamentos dessa classe possuem tais ajustes. As funes de gerenciamento de portas so avanadas, mas ainda assim a documentao do equipamento farta e permite o entendimento mesmo para usurios pouco habituados aos procedimentos tcnicos das redes. possvel definir em detalhes para qual IP interno da rede cada porta ser direcionada, permitindo que servios especficos sejam disponibilizados para a web a partir de servidores da rede local sem colocar em risco o resto da rede. Usurios avanados iro apreciar as funes de VPN que so amigveis e acessveis. H tambm suporte para que o roteador faa a atualizao de IP em servios de DNS dinmico (DynDNS.org e TZO.com) para que voc sempre encontre sua rede quando estiver em trnsito, no importando qual IP sua conexo usa naquele momento.

A parte wireless do dispositivo merece destaque pela simples configurao. Apenas pressionando um boto pode-se configurar com um assistente toda a rede Wi-Fi, inclusive a criptografia com passos simples. O equipamento possui duas antenas Wi-Fi externas que permitem uma conexo com bom nvel de sinal e rpidas transmisses de dados. Alm da simplicidade de configurao o equipamento fornece uma interface avanada que permite configurar, desde os endereos MAC que tero permisso ou proibio de acesso at parmetros avanados do wireless.

Outro ponto alto do equipamento a facilidade para salvar suas configuraes em arquivos locais de alguma mquina na rede e poder restaur-las posteriormente. Isso permite que voc possa explorar diferentes configuraes de servio e acesso e depois retornar ao estado original de sua rede com apenas alguns cliques. Um destaque fica para o fcil upgrade de firmware do equipamento, que pode ser realizado com apenas alguns cliques de mouse. Como o firmware desse dispositivo baseado em software livre ele foi disponibilizado pela Linksys em seu site. Isso permitiu que variantes de firmware fossem criadas adicionando ao equipamento vrias caractersticas que originalmente ele no possui. Buscando pelo modelo do dispositivo voc pode encontrar vrios firmwares de terceiros que adicionam coisas como sees SSH e at mesmo VoIP ao WRT54G.

60

As figuras 1 e 2 apresentam a imagens externa do Linksys WRT54G e de sua placa-me (motherboard), respectivamente.

Figura 1: Ponto de acesso sem fios e encaminhador Linksys WRT54G.

Figura 2: Motherboard do sistema embebido Linksys WRT54G v1.1.

61

O hardware deste sistema baseado numa motherboard que integra todos os componentes funcionais: CPU, RAM, memria FLASH 52 , transdutores e switch Ethernet e transdutor wireless. Maiores informaes sero visualizadas na tabela 1.

Tabela 1: Caractersticas de hardware do sistema embarcado Linksys WRT54G.

Ainda existe o uClinux. Este sistema foi desenvolvido com base num kernel Linux 2.0 com otimizaes para sistemas embarcados sem Memory Management Unit (MMU) que passam pela reduo da necessidade de recursos. Por exemplo, este sistema no possui proteo de memria entre processos, o que pode ser um problema de segurana visto que qualquer processo pode acessar o espao de memria de qualquer outro processo. Por outro lado, no existe uma chamada de sistema fork() tendo esta chamada sido substituda pela chamada vfork() que obriga a que o processo pai espere pela terminao do processo filho para continuar a sua execuo. Este tipo de funcionamento impossibilita a utilizao em sistemas multiusurio.

4.1 Trabalhos e solues correlatas

O Linksys WRT54G um dispositivo de rede de destaque, pois foi o primeiro que teve o cdigo fonte do firmware aberto sob a licena GNU GPL. Isto permitiu a evoluo e customizao do firmware padro, pois os profissionais da rea puderam adaptar o sistema s
52

Memria Flash. Um tipo de chip de memria que retm as informaes quando a energia eltrica

interrompida (memria no-voltil). Usado em alguns computadores para armazenar as informaes relativas ao BIOS.

62

suas necessidades. Com isso, surgiram novos projetos de desenvolvimento e evoluo de firmwares customizados para o Linksys WRT54G. Inicialmente as customizaes foram projetadas para o Linksys WRT54G, entretanto, possvel utilizar o firmware em Embora as customizaes do firmware em outros tipos de dispositivos baseados no Linux, tais como a srie de equipamentos da marca Buffalo e NetGear.

Lista dos principais projetos de customizao do firmware do Linksys WRT54G baseados no firmware padro:

DD-WRT (http://www.dd-wrt.com/) Verses pagas e livres disponveis; (Linux/GPL) HyperWRT Thibor (http://www.thibor.co.uk/) Baseados nos firmwares do WRT54GS, junto do HyperWRT +tofu e nas outras modificaes do Thibor; OpenWRT (http://openwrt.org/) Firmware com o sistema de arquivos SquashFS 53 para gerenciamento de pacotes. Destaque desta monografia; (Linux/GPL)

Sveasoft (http://www.sveasoft.com/) Verses pagas e livres disponveis. As ultimas verses esto disponveis atravs de inscries; Tomato (http://www.polarcloud.com/tomato) Firmware livre que caracterizam pelo nmero de recentes inovaes web tais como Ajax 54 e de SVG 55 . Desenvolvida por programadores de HyperWRT +tofu. O manual do Tomato est

53

SquashFS, um compacto sistema de arquivos somente leitura para o Linux. geralmente utilizado

em montando arquivos compactos somente leitura tipo .tar.gz, e em sistemas embarcados onde necessrio pouco overhead. Hoje este sistema de arquivos esta estvel, e j foi testado em PowerPC, em i586, em Sparc e em arquiteturas ARM.
54

Ajax. Asynchronous JavaScript and XML, uma tcnica de desenvolvimento de aplicaes web

interativas. A inteno fazer com que as paginas web respondam trocando pequenas quantidades de dados em background, de modo que no necessite recarregar toda a pagina a cada solicitao do usurio. Isto permite aumentar a interatividade, a velocidade, e a usabilidade das paginas Web.
55

SVG. a abreviatura de Scalable Vectorial Graphics que pode ser traduzido do ingls como Grficos

Vetoriais Escalveis. Trata-se de uma linguagem XML para descrever de forma vetorial desenhos e grficos bidimensionais. Umas das principais caractersticas dos grficos vetoriais que no perdem a qualidade ao serem ampliados. A grande diferena entre o SVG e outros formatos vetoriais o fato de ser um formato aberto, no sendo propriedade de nenhuma empresa.

63

disponvel em Wikibooks 56 . (Linux/GPL)

Lista de outros projetos que se basearam nos projetos principais:

BatBox Distribuio baseada na RAM para experimentos, no muda o firmware; Bluebox Abre automaticamente o software que scaneia e cria uma ponte para Internet que funciona em WRT54G com OpenWRT; Chillispot Software portal de captura 57 que funciona em WRT54G e em outras plataformas, disponvel sob GPL; CoovaAP (http://coova.org/wiki/index.php/CoovaAP) Baseado no firmware OpenWRT especifico para hotspots 58 , possui o patch Coova com Chillispot e Wifidog (GPL);


56

Earthlink's IPv6 Firmware Adicionado suporte ao IPv6 59 no firmware original Linksys (verso beta-test); EWRT Enhanced WRT, com integrao a portal de captura, baseado no NoCatSplash; FON Worldwide Hotspot com compartilhamento patrocinado pelo Google e Skype. FON Firmware (com 2 SSIDs) para WRT54G; FreeWRT Firmware experimental baseado no OpenWRT; Freifunk Software alemo com suporte a redes Mesh 60 com OLSR 61 , baseado no

Wikibooks. A Wikilivros (do Ingls Wikibooks) dedicada ao desenvolvimento e livre disseminao de

livros e textos didticos de contedo aberto. Tambm faz parte da Fundao Wikimedia como a Wikipdia.
57

Portal de Captura. Captive Portal. uma tcnica utilizada onde clientes HTTP de uma rede so

forados a visualizar uma pagina web especial, normalmente para autenticao, antes de poder navegar normalmente na internet.
58 59

Hotspot. Um ponto ou uma rea de acesso Wi-Fi, particularmente para conectar-se a Internet. IPv6. a verso 6 do protocolo IP. O IPv6 tem como objetivo substituir o padro anterior, o IPv4, que

s suporta cerca de 4 bilhes ( 4 * 109) de endereos, enquanto que o IPv6 suporta ( 3.4 * 10^38 ) endereos. A previso atual para a exausto de todos os endereos IPv4 livres para atribuio a operadores de Janeiro de 2014, o que significa que a transio da verso do IPv4 para o IPv6 inevitvel num futuro prximo. O governo dos Estados Unidos da Amrica determinou que todas as suas agncias federais devem suportar o protocolo IPv6 at 2008.
60

Redes Mesh. uma maneira de distribuir dados, voz e instrues entre ns. Permite conexes e a

reconfigurao contnua em torno dos trajetos obstrudos do n at que uma conexo possa ser estabelecida. Nas redes Mesh, cada n trabalha como propagador do sinal do ponto de acesso.

64

OpenWrt; Meraki Wi-Fi AP para redes Mesh desenvolvido atravs do projeto de Roofnet, baseado em OpenWRT; OpennetFirmware Firmware baseado no OpenWRT e em partes de Freifunk; PacketProtector Baseado no OpenWRT, distribuio enfatizando a segurana incluindo facilidades de IDS 62 , IPS 63 , VPN, e web antivrus; TinyPEAP Adicionado a facilidade de autenticao de segurana wireless no firmware Linksys padro; WiFi-Box (http://sourceforge.net/projects/wifi-box/) (Sem documentao

disponvel em Abril de 2007); Neighbornode; Tarifa (http://tarifa.sourceforge.net/) Baseado no firmware padro do WRT54GL; WiFiDog Captive Portal WiFi Dog por Ile Sans Fil, um software portal de captura que roda sob plataforma OpenWRT; WifiTastic (http://www.wifitastic.com/) Soluo hotspot para residncia ou pequenas empresas. Caracteriza-se pelo faturamento no carto de crdito. Funciona na plataforma OpenWRT; Wirds.net Um projeto que utiliza o firmware Freifunk como base, com o portal de captura do Chillispot e autenticao gratuita no Worldspot.net; X-Wrt End user extensions para OpenWRT Fornece uma agradvel interface web para gerenciamento do OpenWRT. (Linux/GPL);

61

OLSR. Optimized Link State Routing Protocol. um protocolo para conectar as redes ad-hoc mveis,

tambm chamadas de redes Mesh wireless. um protocolo do roteamento do Link-state. Coleta os dados sobre que membros da rede que podem se comunicar, e calcula ento uma tabela otimizada de roteamento.
62

IDS. Intrusin Detection System, em portugus Sistema de Deteco de Intruso, so ferramentas que

trabalha em conjunto com o sistema, integrando seus logs com o do Linux, com o objetivo de registrar, proteger e manter a integridade de dados e servios.
63

IPS. Intrusion Prevention System, um sistema da preveno de intruso um dispositivo de segurana e

controle de acesso das atividades para proteger computadores de exploraes. A tecnologia da preveno de intruso considerada por alguns ser uma extenso da tecnologia da deteco do intruso (IDS) mas realmente um outro sistema de controle de acesso, como um firewall da camada de aplicao.

65

Projetos descontinuados:

HyperWRT Firmware original para ligao rpida projetada por Avenger 2.0 permanecendo perto do firmware oficial WRT54G e WRT54GS, porem adicionada caractersticas como transmisso power, port triggers, scripts, Telnet, etc. o HyperWRT +tofu Baseado no firmware WRT54GS, HyperWRT e com algumas customizaes; o Rupan HyperWRT Baseado no firmware WRT54GS e HyperWRT.

4.2 Consideraes

O Linksys WRT54G um grande exemplo da utilizao de Linux em sistemas embarcados. um ponto de acesso sem fios IEEE 64 802.11b/g (wireless access point) com funo de encaminhamento integrada e um switch Ethernet de 4 portas. O firmware deste aparelho baseado no kernel Linux e em outros projetos Open Source.

Grande precursor do desenvolvimento de sistemas embarcados customizados para pequenos roteadores, possui atualmente dezenas de firmwares modificados para atender as mais variadas especialidades.

64

IEEE. O Instituto de Engenheiros Eletricistas e Eletrnicos, Institute of Electrical and Electronics

Engineers, ou IEEE (pronuncia-se I-3-E ) uma organizao profissional sem fins lucrativos, fundada nos Estados Unidos. a maior (em nmero de scios) organizao profissional do mundo. O IEEE foi formado em 1963 pela fuso do Instituto de Engenheiros de Rdio (IRE) com o Instituto Americano de Engenheiros Eletricistas (AIEE). Um de seus papis mais importantes o estabelecimento de padres para formatos de computadores e dispositivos.

66

5. UMA PROPOSTA DE APLICAO DO OPENWRT EM REDES DE PEQUENO E MDIO PORTE

Como visto conceitualmente, possvel e as vezes necessrio a personalizao do firmware padro do roteador Linksys WRT54G, possibilitando uma abordagem mais especializada, criando possibilidades de substituir em pequenas e mdias empresas servidores NAT, Proxies e Firewalls, tudo apenas com a soluo proposta, e somente um equipamento.

Mostraremos uma aplicabilidade dos conceitos abordados mostrando em um estudo de caso a usabilidade e a robustez do conjunto Linksys WRT54G mais OpenWRT, indo desde sua instalao at sua configurao.

5.1 Instalando o OpenWRT e atualizando o firmware do roteador WRT54G

O sistema embarcado OpenWRT possui diversas compilaes exclusivas para cada tipo de roteador, neste exemplo utilizaremos o firmware especifico para o roteador Linksys WRT54G que poder ser baixado em http://downloads.openwrt.org/whiterussian/newest/, que possui a verso mais recente do sistema.

Lembre-se de verificar a compatibilidade do OpenWRT com seu dispositivo. A listagem completa dos dispositivos suportados poder ser visualizada em http://toh.openwrt.org/.

67

5.1.1 Equipamento utilizado:

O equipamento utilizado nesta monografia o Linksys WRT54G v2.2 / CPU 200Mhz, e roteadores Linksys WRT54G verses anteriores a v.4 so suportadas por esse mesmo firmware.

5.1.2 Preparando para atualizar:

Reinicie o Access Point, deixando o mesmo com ip padro "192.168.1.1". Conecte o cabo de rede na porta nmero 1 "RJ45" do roteador. Configure a placa de rede do micro que vai acessar o Access Point como DHCP para obter ip automtico.

ATENO: No faa esse procedimento com outros roteadores que no sejam WRT54G, pois o processo envolve habilitar o boot_want=on e o firmware outro.

5.1.3 Atualizando

Mostraremos neste tpico as varias formas de atualizar seu roteador Linksys WRT54G, sendo possvel a atualizao nas diversas plataformas, e mostraremos no Windows e Linux via TFTP, ou Windows e Linux via browser.

68

5.1.3.1 Atualizao por TFTP (Windows)

Se voc usurio Windows baixe o programa abaixo e utilize-o para atualizar o firmware seguinte as instrues.

ftp://ftp.linksys.com/pub/network/tftp.exe

Execute o programa tftp e coloque as informaes:

Server: 192.168.1.1

Por padro do roteador o campo Login fica em branco, no campo Password a senha admin, caso possua outra senha utilize-a.

File: [...] no boto procure o firmware

Upgrade [click]

Aguarde a atualizao, a luz power fica piscando, espere ela parar de piscar para concluir a atualizao, no interrompa.

5.1.3.2 Atualizao por TFTP (Linux)

Caso seja usurio Linux necessrio verificar se j no possui o TFTP instalado, no citarei os comandos de verificao pois difere de acordo com as distribuies.

No quadro 6 verificaremos os comandos utilizados para abrir o TFTP cliente, mostraremos tambm a forma correta de conectar e enviar o arquivo ao roteador.

69

1: 2: 3: 4: 5:

$ tftp tftp> connect 192.168.1.1 tftp> put openwrt-wrt54g-squashfs.bin Sent 2746882 bytes in 6.8 seconds tftp> quit
Quadro 6: Atualizao por TFTP.

Aguarde a atualizao, a luz power fica piscando, espere ela parar de piscar para concluir a atualizao, no interrompa.

5.1.3.3 Atualizao por browser (Firefox ou IExplorer)

Entre no navegador na pgina de configurao do seu WRT54G exemplo:

http://192.168.1.1

Procure o link "system / firmware upgrade", procure o firmware que voc baixou do site acima e atualize.

A figura 3 mostra exatamente como se deve proceder para fazer a atualizao do firmware pela interface web padro do roteador, esta a maneira mais simples de fazer a atualizao.

70

Figura 3: Ilustrao da atualizao via browser.

Aguarde a atualizao, a luz power fica piscando, espere ela parar de piscar para concluir a atualizao, no interrompa.

5.2 Configurando OpenWRT

Neste tpico ser descrito as varias formas de acessar seu roteador Linksys WRT54G, sendo possvel acessar por telnet, ssh e via interface web, esta ultima ensinaremos de forma mais detalhada, pela facilidade em administrar o sistema.

5.2.1 Acessando via SSH ou Telnet

Terminada a atualizao, precisamos desligar o equipamento e ligar novamente, para que consigamos passar para o prximo passo, que colocar senha.

Pronto, atualizado/reiniciado, agora vamos acessar via telnet para colocar senha no root para podermos continuar com nossas configuraes.

71

1:

$ telnet 192.168.1.1
Quadro 7: Atualizao por telnet.

Ilustrado na figura 4 a mensagem de boas vindas recebida pelo administrador do roteador em seu primeiro acesso depois de atualizado para o OpenWRT, note que este primeiro acesso no solicitada senha, porem a mensagem adverte da importncia que isso tem, e que depois que a senha for setada o acesso Telnet passa a ser desabilitado e ao SSH passa a ser habilitado automaticamente.

Figura 4: Tela que obteramos ao acessar o OpenWRT via telnet.

72

Por questes de segurana coloque uma senha maior que 5 caracteres, repita a senha duas vezes para confirmar a alterao. Aps feito isso, basta utilizar o comando mencionado no quadro 8 para sair do acesso Telnet.

1:

$ exit
Quadro 8: Comando para sair do acesso telnet.

Agora voc s ter acesso linha de comando pelo ssh. Baixe o putty para acessar pelo Windows:

http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

Figura 5: Tela que obteramos ao conectar no OpenWRT via Putty(SSH).

Atravs do Putty, como mostra a figura 5, poderemos configurar de forma segura o OpenWRT, note que ao acessar via SSH solicitada a senha a qual setamos via Telnet no primeiro acesso.

73

Se for usurio do Linux:

1:

$ ssh 192.168.1.1
Quadro 9: Comando para acessar por ssh.

Os usurios Linux no necessitam do Putty, o acesso pode ser feito pelo prprio comando ssh, como mostrado no quadro 9, e receberemos as mesmas mensagem que as do acesso via Putty.

5.2.2 Configurando em modo AP

Nossa rede/roteador ficariam assim:

IP porta RJ45 internet: wan_ipaddr=200.200.0.2 Gateway: wan_gateway=200.200.0.1 IP acesso roteador (Wserver): lan_ipaddr=192.168.1.1

O comando utilizado nvram, digite-o e veja a sintaxe do comando, como mostrado no quadro 10.

1:

$ nvram
Quadro 10: Comando de acesso a memria.

Veja todos os parmetros configurados utilizando o comando mostrado no quadro 11.

1:

$ nvram show | more


Quadro 11: Comando para visualizar o contedo da memria.

Configurando o roteador como ssid Wserver, modo AP, canal 11, como demonstrado os comandos no quadro 12.

74

1: 2: 3:

$ nvram set wl0_ssid=Wserver $ nvram set wl0_mode=ap $ nvram set wl0_channel=11


Quadro 12: Comando para setarmos as configuraes do roteador.

Caso queira checar o contedo das variveis basta utilizar o comando get como demonstrado no quadro 13.

1: 2:

$ nvram get wl0_channel 11 Retorno do comando


Quadro 13: Comando para pegar a informao do canal utilizado.

Lembrando que temos que gravar as informaes pois podemos desligar o roteador e perder essas informaes aplicadas, como mostrado no quadro 14, utilize este comando com moderao, memrias flash tem um tempo de vida de escrita limitado a algo entre 1.000 e 10.000 vezes.

1:

$ nvram commit
Quadro 14: Comando para gravar as informaes setadas na memria.

Configurando a porta que entra a internet, vamos colocar ip fixo (static), como demonstrado no quadro 15.

1: 2: 3:

$ nvram set wan_proto=static $ nvram set wan_ipaddr=200.200.0.2 $ nvram set wan_gateway=200.200.0.1


Quadro 15: Configurando com ip fixo a interface wan.

Vamos agora para rede wireless e LAN, vamos somente checar, pois j vem com ip 192.168.1.1. Querendo mudar o ip s mudar o "get" por "set" e colocar o novo ip e demais configuraes, conforme os quadros 16, 17 e 18.

75

1: 2:

$ nvram get lan_proto Static Retorno do comando


Quadro 16: Pegando a informao do mtodo de utilizado na configurao ip.

1: 2:

$ nvram get lan_ipaddr 192.168.1.1 Retorno do comando


Quadro 17: Pegando a informao do ip da LAN.

1: 2:

$ nvram get lan_netmask 255.255.255.0 Retorno do comando


Quadro 18: Pegando a informao da mascara da LAN.

Pronto, finalizamos nossa configurao, agora vamos salvar, para que as configuraes feitas permaneam aps o boot com o comando do quadro 19.

1:

$ nvram commit
Quadro 19: Comando para gravar as informaes setadas na memria.

Agora faremos a atualizao das regras de firewall, salve o script do quadro 20 em um arquivo chamado /etc/firewall-up.sh. Este script foi baixado no site Viva o Linux, na seo de arquivos de configuraes e ser utilizada a legenda abaixo para demonstrar os locais onde foram feitas alteraes, incluses ou foi mantido o script original do site.

Original

Includo

Alterado

1: 2: 3: 4: 5: 6: 7: 8:

#!/bin/bash #======================= *** ======================== # # Autor: Fabricio Beltram # Data de Criao: 16/11/2006 # #========================================================= # Script: Firewall - iptables

76

9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:

# #==================================================== # Descrio: Este script ira limpar todas as

# regras de firewall e subir as novas regras de # acordo com as regras do script - este script possui # a funo de flush que e' a limpeza das regras e faz # um full NAT como e' conhecido por ai. O script esta # bem comentado para facilitar eventuais consultas e # alteraes. #==================================================== # Este script esta sobre licena GPL pode ser

# alterado e distribudo livremente. #==================================================== # Verso: 1.01 #==================================================== # # # # # # # # # # ##################################################### Alteraes Realizadas: - Correes dos comentrios - Ajustes de IPs e aliases. - Regra de liberao de TELNET para a rede local - Regra de liberao de acesso a TELNET - Regra de estabilizao e relacionamento de conexes Autor: Felipe Deboni Data : 15/12/2006

#MODPROBE # Carrega os mdulos de iptables + NAT no Kernel # Estas linhas no so necessrias se voc j tem os # mdulos do kernel compilado. # modprobe ip_nat_ftp modprobe iptable_nat

77

43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: echo "Limpando as regras, setando as Polticas padres..." 75: # ====================== *** ======================== # Inicia as regras # Verifica se o parmetro = flush # Se igual, ento, limpa todas as regras e seta as # polticas padres para ACCEPT e tambm deixa a rede # como full nat. "Sem Bloqueios" if [ "$1" = "flush" ]; then # Definir a varivel LAN com o range de IP utilizado # por sua rede local, no esquecer mascara da rede # Ex # LAN=10.0.0.0/24 LAN=192.168.1.0/24 # Definir a varivel INTER com a interface que esta # ligada com a rede externa (INTERNET) # Ex # INTER=eth1 # INTER=ppp0 INTER=eth0 # ============================ # === Declarao das variveis # ============================ # Definir a varivel INTRA com a interface que esta # ligada com a rede interna/local. # Ex # INTRA=eth0 INTRA=eth1

78

76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86:

# Seta as polticas padres para accept iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F iptables -t nat -F iptables -X iptables -Z

# Faz o mascaramento completo da rede iptables -t nat -A POSTROUTING -o $INTER

-j MASQUERADE 87: echo "Firewall - Desativado... Mascaramento completo." 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: #======================***====================== # Inicio das regras que j defino como padro # Liberao do loopback iptables -A INPUT -i lo -j ACCEPT # Seta as polticas padres para DROP Bloqueia # tudo que no for OUTPUT iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -F iptables -t nat -F iptables -X iptables -Z echo "Firewall iptables starting..." # ELSE - Se o parmetro != flush else

79

108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: ACCEPT 121: ACCEPT 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: # TELNET - Permitindo apenas acesso telnet a lan # ======== *** ========= # LAN ---> FIREWALL # Setaremos as portas que poderemos acessar via # rede local no servidor # Por padro s aceito conexes na porta 22 # que e' SSH # Obs. no deixe ssh direto como root. para isso # altere o arquivo sshd_conf # set a linha PermitRootLogin no # HTTP/HTTPS - Apache e outros webservers iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT # iptables -A INPUT -p icmp --icmp-type 8 -j # PING - Se no quiser ser alvo de ping mantenha # comentadas as 2 linhas abaixo # iptables -A INPUT -p icmp --icmp-type 0 -j # SSH - Para mim imprescindvel # Obs: comente esta linha para no aceitar ssh iptables -A INPUT -p tcp --dport 22 -j ACCEPT # ======== *** ========= # INTERNET ---> FIREWALL # Setaremos as portas q sero acessveis via # internet

80

139: -j ACCEPT 140: 141: 142: 143: 144: 145: 146: 147: 148: 149:

iptables -A INPUT -p tcp -s $LAN --dport 23

# NETBIOS - Estas 3 portas so usadas pelo # protocolo de compartilhamento de arquivos em # redes Microsoft. # Cada uma das portas tem uma funo especial # (nome, datagrama e sesso) mas necessrio # que as 3 estejam abertas no firewall para que # a visualizaes dos compartilhamentos e acesso # aos arquivos funcione corretamente iptables -A INPUT -p tcp -s $LAN --dport

137:139 -j ACCEPT 150: iptables -A INPUT -p udp -s $LAN --dport 137:139 -j ACCEPT 151: 152: 153: -j ACCEPT 154: -j ACCEPT 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: # FTP-DATA(20) FTP(21) SSH(22) TELNET(23) iptables -A FORWARD -i $INTRA -p tcp #======== *** ========= # LAN ---> INTERNET # Setaremos as portas comuns que devem ser # acessadas da rede local para a internet Portas # comuns que devem ser acessadas na Internet iptables -A INPUT -p udp -s $LAN --dport 53 # DNS - Libera a resoluo de nomes iptables -A INPUT -p tcp -s $LAN --dport 53

--dport 20:23 -j ACCEPT 165: 166: # SMTP

81

167:

iptables -A FORWARD -i $INTRA -p tcp --dport

25 -j ACCEPT 168: 169: 170: # POP3 iptables -A FORWARD -i $INTRA -p tcp --dport

110 -j ACCEPT 171: 172: 173: # DNS tcp/udp iptables -A FORWARD -i $INTRA -p udp --dport iptables -A FORWARD -i $INTRA -p tcp --dport

53 -j ACCEPT 174: 53 -j ACCEPT 175: 176: 177: # HTTP/HTTPS iptables -A FORWARD -i $INTRA -p tcp --dport iptables -A FORWARD -i $INTRA -p tcp --dport

80 -j ACCEPT 178: 443 -j ACCEPT 179: 180: 181: 182: # ========= *** ======= # Faz o mascaramento da rede local iptables -t nat -A POSTROUTING -o $INTER

-j MASQUERADE 183: 184: 185: 186: 187: # Statefull inspection # Aceita pacotes de conexes j estabelecidas ou # relacionadas iptables -A FORWARD -m state --state

ESTABLISHED,RELATED -j ACCEPT 188: iptables -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT 189: 190: # FIM - Ate aqui nos temos um firewall seguro

82

191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204:

# estvel e confivel #======================***====================== # # A partir desta linha chamo meus scripts de # excees. # Ex: Proxy Transparente, Regra acesso ao TED, # Regra acesso a CONECTIVIDADE SOCIAL, etc... # # obs. Aqui em regras especiais voc pode # configurar algum tipo de DNAT ou FORWARD que # sua empresa ira precisar. s criar os # scripts e cham-los abaixo que ele startar # junto com o firewall. echo "Carregando as regras especiais

utilizadas por Empresa 1." 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: # Fim do Script e do IF fi
Quadro 20: Script firewall. Arquivo: /etc/firewall-up.sh

# Coloque aqui as suas regras especiais, Caso # exista # Start fw-squid.sh #/root/bin/fw-squid.sh

# Start fw-infib.sh #/root/bin/fw-infib.sh

echo "Firewall - running - OK !!"

83

5.2.3 Acessando via interface web (WebIf)

Com a chegada de novos releases, uma facilidade to esperada por todos os utilizadores, principalmente os que no possuem domnio da linha de comando a interface web, com ela o administrador poder acessar a principais configurao de seu roteador atravs do conforto de um browser, o projeto chamado de WebIf, e desenvolvido pela mesma equipe que desenvolve o OpenWRT, abaixo poderemos ter uma noo das facilidade encontradas.

Figura 6: Tela de informaes do OpenWRT na interface web.

Deve-se deixar claro que a interface web no possibilita total interatividade com as possibilidades que o sistema embarcado OpenWRT oferece, apenas trs as informaes e configuraes bsicas para o mesmo, podendo o administrador utilizar a conexo SSH para configuraes avanadas, ou mesmo desenvolver paginas web capaz de oferecer-lhe a necessidade faltante.

84

Figura 7: Tela sobre o WebIf do OpenWRT.

Na figura 7 mostrado as informaes sobre o WebIf, tal como dados sobre sua licena GPL (GNU LICENSES, 2007), de utilizao, distribuio e redistribuio, sendo mostrado tambm a lista de contribuintes.

85

J na figura 8 podemos observar o status das conexes, que mostra as maquinas que esto utilizando o roteador como gateway 65 , e as conexes estabelecidas com seus respectivos status.

Figura 8: Status de conexo do OpenWRT na interface web.

65

Gateway. Computador ou dispositivo que serve para interligar duas ou mais redes que usem protocolos

de comunicao internos diferentes, ou, computador que interliga uma rede local Internet.

86

Na figura 9 poderemos consultar todas as maquinas que solicitaram ip ao servio de DHCP de nosso router, conseguindo obter algumas informaes da maquina cliente, como endereo MAC, endereo ip, nome da maquina e em ate qual data e hora que estas informaes tero validade.

Figura 9: Clientes DHCP do OpenWRT na interface web.

87

Obteremos informaes sobre o status de nossa rede wireless, a figura 10 trs exatamente o retorno do comando iwconfig do Linux, nele constam o ESSID 66 , chave de encryptao, canal utilizado, e outros.

Figura 10: Status wireless do OpenWRT na interface web.

66

ESSID. Extended Service Set Identifier (ESSID). o cdigo de identificao da rede sem fio. Este

cdigo anexado a todos os pacotes que trafegam em redes sem fio, possibilitando a identificao da rede em que cada pacote faz parte.

88

Figura 11: Configuraes do sistema do OpenWRT na interface web.

Na Figura 11 poderemos observar a tela de configurao do sistema, nela possvel setar o nome do host, o boot_wait que dever sempre ficar em enable, e a linguagem da interface web, que fica a escolha do utilizador. E na figura 12 mostra a tela para alterao da senha do administrador, sempre aconselhado que a senha do administrador tenha mais que cinco caracteres, contendo letras e nmeros.

Figura 12: Alteraes de senha do OpenWRT na interface web.

89

possvel observar na figura 13 a tela de instalao de pacotes, uma facilidade de grande importncia na interface web, atravs dela possvel consultar os pacotes disponveis, installos, ou se necessrio desinstal-los, com grande rapidez.

Figura 13: Instalao ou desinstalao de pacotes do OpenWRT na interface web.

90

A atualizao de firmware tambm poder ser feita pela interface web, conforme figura 14, basta baixar a atualizao no site, salvar em seu computador, e acessar a interface web para fazer o upgrade.

Figura 14: Atualizao de firmware do OpenWRT na interface web.

91

Figura 15: Configuraes de rede do OpenWRT na interface web.

Na tela de configurao de rede, figura 15, colocaremos o ip que utilizaremos para o roteador, essa definio dever ser feita pelo administrador de redes, de posse das informaes da rede local e do servidor DNS, basta colocar nos campos destinados e salvar as alteraes.

Figura 16: Configuraes da WAN do OpenWRT na interface web.

Demonstrado na figura 16 as configuraes WAN, que so de grande importncia para um bom funcionamento da conexo com a internet, possvel configurar em diversos tipos de

92

conexes WAN, PPPoE, obter ip automaticamente, ip esttico, entre outros, fica a cargo do administrador buscar a configurao correta.

Figura 17: Configuraes wireless do OpenWRT na interface web.

Conforme demonstrado na figura 17 possvel habilitar ou desabilitar a interface sem fio na pagina de configuraes wireless, tambm onde setaremos o ESSID da nossa rede sem fio, o canal utilizado poder depender do cenrio em que encontra sua rede, procure canais com menos rudos, essa medio poder ser feita utilizando softwares ou de forma emprica, testando os canais e vendo qual o consegue o melhor desempenho, o modo de operao aconselhamos utilizar o Access Point, e o mais importante, a criptogrfica utilizada, fica a cargo do administrador da rede optar pela melhor cryptagem, sendo aconselhada aqui a utilizao da criptografia WEP 67 , apesar de ser facilmente quebrado, de fcil configurao dos clientes. aconselhado que no futuro essa criptografia seja mudada para WPA2 68 , que possui maior robustez e menor vulnerabilidade. Apenas se deve utilizar o WEP se no for

67

WEP. Do ingls Wired Equivalent Privacy. Protocolo de segurana para redes sem fio que implementa

criptografia para a transmisso dos dados. Este protocolo apresenta algumas falhas de segurana.
68

WPA2. uma certificao de produto disponibilizada pela Wi-Fi Alliance. A WPA2 certifica que o

equipamento sem fio compatvel com o padro IEEE 802.11i. A certificao de produto WPA2 substitui formalmente a WEP (Wired Equivalent Privacy) e os outros recursos de segurana do padro IEEE 802.11 original. A meta da certificao WPA2 oferecer suporte aos recursos de segurana obrigatrios adicionais do padro IEEE 802.11i ainda no inclusos nos produtos com suporte a WPA.

93

possvel utilizar nos equipamentos WPA 69 ou WPA2. Porem lembre-se, ter WEP melhor do que no ter qualquer proteo.

Esta interface web ainda proporciona a descrio e funcionalidades dos campos mais importantes da configurao, note o lado direito da figura acima.

Figura 18: Configuraes wireless avanadas do OpenWRT na interface web.

Uma funcionalidade de grande importncia fica nas configuraes avanadas da rede sem fio, conforme figura 18, nela possvel conceder acesso apenas aos endereos MAC ali discriminados, e ate fazer as configuraes Wireless Distribution System 70 (WDS) se necessrio.

69

WPA. Tambm chamado de WEP2, ou TKIP (Temporal Key Integrity Protocol), essa primeira verso

do WPA (Wi-Fi Protected Access) surgiu de um esforo conjunto de membros da Wi-Fi Aliana e de membros do IEEE, empenhados em aumentar o nvel de segurana das redes sem fio no ano de 2003, combatendo algumas das vulnerabilidades do WEP.
70

Wireless Distribution System, WDS. um sistema que permite a interconexo de Access Points sem

necessidade de fios. Como descrita em IEEE 802.11, permite que uma rede wireless seja expandida usando mltiplos pontos de acesso sem a necessidade de lig-los via cabo.

94

Figura 19: Configuraes de hosts do OpenWRT na interface web.

Na figura 19 mostra outra facilidade muito apreciada que a configurao de ips estticos para certos endereos MAC, possvel informar qual ip devera ser dado pelo servio DHCP a determinado endereo MAC, nesta tela tambm possvel informar qual o nome das maquinas referente a determinado ip, esta ultima funcionalidade alimenta o arquivo /etc/hosts.

95

Figura 20: Configurao firewall do OpenWRT na interface web.

Tambm possvel adicionar regras de firewall atravs da interface web, caso seja do gosto do administrador, necessrio um domnio das tabelas e chains do iptables para construir estas regras, demonstrada da figura 20.

5.3 Proposta de utilizao

A soluo proposta apresenta uma boa relao custo x benefcio, pois tem um baixo consumo de energia e custo de aquisio. Alm disso, verstil e totalmente customizvel. com apenas um roteador Linksys WRT54G, possvel transform-lo num grande e robusto servidor para compartilhamento de internet com firewall.

96

5.3.1 Vantagem do OpenWRT para sua empresa:

Parque de ate 40 maquinas, pelas especificaes da Linksys, o roteador WRT54G funciona bem com ate 50 maquinas, calculamos uma margem de 20% para que no trabalhe no limite.

Reduo do consumo de energia eltrica sempre um item que agrada os administradores de empresa, mas tem empresas que realmente necessitam deste diferencial classificando-o como uma prioridade.

Roteamento avanado. Esta soluo possui o mais avanado sistema de roteamento, possibilitando ao administrador da rede total controle. Firewall avanado. Todas as possibilidades encontradas em um sistema Linux instalado num maquina comum possvel transportar para esta soluo. Possibilidade de criao de VPNs. Possibilidade de controle com login por usurio. Com alguns pacotes possvel implantar o sistema de login por usurio, que possibilita polticas mais severas de acordo com o usurio logado, podendo bloquear determinados sites, ou ate liberar para usurios especiais.

5.3.2 Desvantagem do OpenWRT para sua empresa:

Parque de maquinas maior que 40 maquinas. Demanda de um profissional ou prestadora de servio com capacitao para implementar as polticas e exercer configuraes. No possui disco rgido para armazenamento, impossibilitando que o roteador seja utilizado para backup de arquivos da empresa, porem isso pode ser contornado pela adaptao de uma porta USB 71 no roteador, no entraremos neste mrito pelo

71

USB. Sigla de Universal Serial Bus, ou seja, Barramento Serial Universal, um tipo de conexo Plug

and Play que permite a conexo de perifricos sem a necessidade de desligar o computador.

97

fato desta adaptao ser de grande complexidade e acarretar o desvio do foco inerente nesta monografia.

5.4 Consideraes

Os recursos limitados comuns em sistemas embarcados obrigam a uma escolha mais criteriosa do sistema operacional e aplicaes. de grande importante esta escolha, deve ser flexvel e modular, e que sejam de fcil adaptao a diferentes hardwares, com funes diferentes, sem grandes alteraes ou custos.

Neste trabalho ficou bem definido a facilidade de adaptao do OpenWRT a estes requisitos. Com baixos encargos financeiros (ou pelo menos, custos no imputveis diretamente utilizao do sistema), grande poder de customizao possibilitam que cada empresa destaque em seu roteador suas prioridades, facilitando o controle dos administradores de redes para aplicao das regras definidas pela diretoria da empresa.

98

6. CONSIDERAES FINAIS E TRABALHOS FUTUROS

A procura por solues customizveis e com baixo custo tem sido uma realidade vivenciada nas empresas. A substituio de um computador que funciona como firewall por um roteador customizvel uma soluo interessante e atrativa, principalmente para empresas de pequeno e mdio porte.

A utilizao do sistema embarcado OpenWRT no roteador Linksys WRT54G uma soluo interessante que apresenta uma boa relao Custo x Benefcio. Essa soluo permite a utilizao de todos os recursos disponveis em um firewall tradicional baseado no Linux com a utilizao do iptables. Com isso, possvel alcanar um bom nvel de segurana na rede.

Esse trabalho apresenta um roteiro detalhado de configurao e customizao do roteador Linksys WRT54G (trabalhando como Firewall). Com os testes e pesquisas realizadas possvel afirmar que a utilizao do OpenWRT uma soluo eficaz e de baixo custo que consegue substituir o Firewall tradicional utilizado em empresas de pequeno e mdio porte.

Uma alternativa de continuao desse trabalho seria pesquisar a possibilidade de substituio de um servidor de firewall mais robusto e com regras mais complexas pelo Linksys WRT54G. Alm disso, a implementao de autenticao e controle de acesso. Com isso, o equipamento trabalharia como um portal de captura.

99

7. REFERNCIAS BIBLIOGRFICAS

GARFINKEL, Simpson. SPAFFORD, and Gene. Pratical Unix e Internet Security. OReilly & Associates, Inc. Second Edition, 1996 RANUM, M. J. An Internet Firewall, proceedings of World Conference on Systems Management and Security, 1992. ftp://decuac.dec.com/pub/docs/firewall.ps ZWICK, Elizabeth D. Bulding Internet Firewalls. OReilly & Associates, Inc., Second Edition, 2000. WARFIELD, Michael H. Security and the Open Source Model . Atlanta Linux Showcase, 1999. http://www.wittsend.com/mhw/1999/oss_security/ SCHUBA, Christoph Ludwig. Design, and Implementation of Firewall Technology. Purdue University, 1997. PETERSON, James L. Petri Net Theory and Modeling of System. Prentice-Hall, 1981. RUSSEL, Rusty. Linux netfilter Hacking, 2000. Disponvel para download em http://www.netfilter.org/documentation/HOWTO//netfilter-hacking-HOWTO.html, acesso em Fevereiro de 2007. MAXWELL, Scott. Linux Core Kernel commentary. Coriolis Open Press, 1999. WOLF, W. Computers as Componentes. McGraw-Hill, 2001. MOORE, G.E. Cramming More Components Onto Integrated Circuits. Electronics Magazine, Vol. 38, Abr. 1965. pp 114-117. MAGARSHACK, P. Improving SOC Design Quality through a Reproducible Design Flow. IEEE Design & Test of Computers, Vol. 19, No. 1, Jan-Fev. 2002, pp 76-83. KEUTZER, K. et alii. System-Level Design: Orthogonalization of Concerns and Platform-Based Design. IEEE Transactions on Computer-Aided Design of Integrated Circuits, Vol. 19, No. 12, Dez. 2000. pp 1523-1543.

100

DUTTA, S. Jensen, R. e Rieckmann, A. Viper: A Multiprocessor SoC for Advanced SetTop Box and Digital TV Systems. IEEE Design & Test of Computers, Vol. 18, No. 5, Set/Out. 2001. pp 21-31 J. FARINES, J. S. Fraga, R. S. Oliveira. Sistemas de Tempo Real. Departamento de Automao e Sistemas, Universidade Federal de Santa Catarina. Julho 2000. DEMMELER, T. e Giusto, P. A Universal Communication Model for an Automotive System Integration Platform. DATE01 Design, Automation and Test in Europe, Munich, Alemanha, Mar. 2001. Proceedings, IEEE Computer Society Press, 2001. PAULIN, P. et alii. Embedded Software in Real-time Signal Processing Systems: Application and Architecture Trends. Proceedings of the IEEE, Vol. 85, No. 3, Mar. 1997. pp 419-435. KEATING, M. e Bricaud, P. Reuse Methodology Manual for System-on-a-Chip Designs. Kluwer Academic Publishers, 2002 (terceira edio). VSIA. Virtual Socket Interface Alliance, 2003. Disponvel em: http://www.vsi.org OpenWRT. Disponvel em: http://openwrt.org/, acesso em Fevereiro de 2007. uClinux. Disponvel em: http://www.uclinux.org/, acesso em Fevereiro de 2007. Windows Embedded. Disponvel em: http://www.microsoft.com/windows/embedded/, acesso em Fevereiro de 2007. HTC Smart Mobile. Disponvel em: http://www.htc.com/, acesso em Junho de 2007. LinuxDevices. Disponvel em: http://linuxdevices.com/articles/AT8073314981.html, acesso em Junho de 2007. Java SE Embedded. Disponvel em: http://java.sun.com/javase/embedded/index.jsp, acesso em Fevereiro de 2007. GNU. Disponvel em: http://www.gnu.org, acesso em Fevereiro de 2007. GNU Licenses. Disponvel em: http://www.gnu.org/licenses/, acesso em Fevereiro de 2007.

101

CARRO, Luigi, Wagner, Flvio Rech., Gervini, Alexandre I e Corra, Edgard de F . Avaliao de Desempenho, rea, e Potncia de Mecanismos de Comunicao em Sistemas Embarcados, 2003. CARRO, Luigi, Sistemas Computacionais Embarcados, chapter 2, 2004. ROSA JNIOR, Leomar Soares da. Um estudo sobre sistemas operacionais embarcados de tempo real, 2002. REIS, Cleinton Peres. Embedded system applications, 1999. GUPTA, Prof. Rajesh K. Introduction to embedded systems, 2000. BERGAMASCHI, R.A. et alii. Automating the Design of SOCs Using Cores. IEEE Design & Test of Computers, Vol. 18, No. 5, Set/Out. 2001. pp 32-45. REDHAT. eCos Reference Manual, 2003. Disponvel em:http://sources.redhat.com/ ecos/docslatest/ref/ecos-ref.html, acesso em Fevereiro de 2007. Technical Reference Manual, RedHat, Mar. IPTABLES. Disponvel em: http://www.iptables.org/, acesso em Fevereiro de 2007. Viva o Linux. Disponvel em: http://www.vivaolinux.com.br, acesso em Fevereiro de 2007. Guia Foca. Disponvel em: http://focalinux.cipsga.org.br/, acesso em Junho de 2007. Linksys. Disponvel em: http://www.linksys.com/, acesso em Fevereiro de 2007. CHAPMAN, D. Brent e ZWICKY, Elizabeth D. Building Internet Firewalls. 1. ed. OReilly, 1995. Disponvel em: http://www.unix.org.ua/orelly/networking/firewall/, acesso em Fevereiro de 2007. ORTIZ, S. JR. Embedded OSs Gain the Inside Track. IEEE: Computer, n. 11, vol. 34, pag. 14-16, Nov. 2001. SANTO, B. Embedded Battle Royale. IEEE: Spectrum, n. 12, vol. 38, pag. 36-41, Dec.2001.

102

OLIVEIRA, R.; Carissimi, A; Toscani, S. Sistemas Operacionais. Segunda Edio. Sagra Luzzatto, 2001. BARABANOV, M.; Yodaikien, V. Real-Time Linux. New Mexico Institute of Technology, Mar. 1996 KADIONIK, P. Linux Embarqu: Le Project uClinux. Linux Magazine, France, n. 36, pag. 16-23, Fev. 2002.

Anda mungkin juga menyukai