FACULDADE SALESIANA DE VITÓRIA PÓS-GRADUAÇÃO EM SEGURANÇA DE REDES DE COMPUTADORES FELIPE LOUREIRO DEBONI RAFAEL FERREIRA BORBA SISTEMAS EMBARCADOS EM



Documentos relacionados
Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Sistemas Operacionais

4 Estrutura do Sistema Operacional Kernel

A LIBERDADE DO LINUX COM A QUALIDADE ITAUTEC

IW10. Rev.: 02. Especificações Técnicas

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Manual do Usuário Android Neocontrol

Sistemas Distribuídos

No mercado atual, podemos encontrar vários tipos de sistemas operacionais que fazem parte das seguintes classes:

ESTUDO DE CASO WINDOWS VISTA

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60

Entendendo como funciona o NAT

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio

Prof. Esp. Lucas Cruz

Sistemas Operacionais Introdução. Professora: Michelle Nery

Introdução a Computação

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

1. CAPÍTULO COMPUTADORES

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

BlackBerry Mobile Voice System

Gerenciamento de Redes de Computadores. Pfsense Introdução e Instalação

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Introdução à Computação

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Pré-requisitos para Instalação Física e Lógica do Sisloc

AULA 5 Sistemas Operacionais

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

SOBRE A CALLIX. Por Que Vantagens

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

Aula Prática Wi-fi Professor Sérgio Teixeira

Pré-requisitos para Instalação Física e Lógica do SISLOC

Manual do usuário. Mobile Auto Download

Sistema Operacional Saber Gnu/Linux Prefeitura de São Paulo

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

FIREWALL. Prof. Fabio de Jesus Souza. Professor Fabio Souza

Instalar o MarkVision

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Soluções de Gerenciamento de Clientes e de Impressão Universal

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

Prof.: Roberto Franciscatto. Capítulo 1 Introdução

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

Arquitetura de Rede de Computadores

Disciplina: Introdução à Informática Profª Érica Barcelos

gladiador INTERNET CONTROLADA

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Profs. Deja e Andrei

UNIVERSIDADE FEDERAL DA PARAÍBA PRÓ REITORIA DE EXTENSÃO E ASSUNTOS COMUNITÁRIOS

INTERNET HOST CONNECTOR

INTRODUÇÃO: 1 - Conectando na sua conta

da mão-de-obra de TI da América Latina está no Brasil (considerado o maior empregador do setor) seguido pelo México com 23%.

Professor: Roberto Franciscatto. Curso: Engenharia de Alimentos 01/2010 Aula 3 Sistemas Operacionais

Distribuidor de Mobilidade GUIA OUTSOURCING

SISTEMA OPERACIONAL & SOFTWARE LIVRE

Curso de Instalação e Gestão de Redes Informáticas

Fundamentos da Informática. História dos Computadores Prof. Hélder Almeida

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

DELL POWERVAULT SÉRIE MD ARMAZENAMENTO DE DADOS MODULAR ARMAZENAMENTO DE DADOS DELL POWERVAULT SÉRIE MD

Introdução aos Computadores

INTRODUÇÃO BARRAMENTO PCI EXPRESS.

KVM CPU Switch 4 Portas Manual do Usuário

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER.

Governança de TI. ITIL v.2&3. parte 1

Desenvolvendo Websites com PHP

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

1

Orientação a Objetos

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Programa de Instalação do Lince GPS

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

1. Introdução. 2. Conteúdo da embalagem

NetEye Guia de Instalação

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Considerações no Projeto de Sistemas Cliente/Servidor

FAT32 ou NTFS, qual o melhor?

GESTÃO DE SISTEMAS OPERACIONAIS II

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Sistema Operacional Correção - Exercício de Revisão


Corporativo. Transformar dados em informações claras e objetivas que. Star Soft.

Noções de Software. André Aziz Francielle Santos

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Universidade Federal de Goiás. Alexandre Ferreira de Melo CERCOMP / UFG

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

Roteamento e Comutação

Soluções Completas. Fundada em 1991, a.compos é pioneira na área de soluções em tecnologia, atuando nas áreas de:

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

Transcrição:

FACULDADE SALESIANA DE VITÓRIA PÓS-GRADUAÇÃO EM SEGURANÇA DE REDES DE COMPUTADORES FELIPE LOUREIRO DEBONI RAFAEL FERREIRA BORBA SISTEMAS EMBARCADOS EM SEGURANÇA DE REDES OPENWRT VITÓRIA 2007

FELIPE LOUREIRO DEBONI RAFAEL FERREIRA BORBA SISTEMAS EMBARCADOS EM SEGURANÇA DE REDES OPENWRT Monografia apresentada ao Curso de Pósgraduação em Segurança de Redes de Computadores da Faculdade Salesiana de Vitória, como requisito parcial para obtenção do título de Especialista em Segurança de Redes de Computadores. Orientador: Prof. M.Sc. Sérgio Nery Simões. Co-orientador: Prof. M.Sc. Sérgio Teixeira. VITÓRIA 2007

Dados Internacionais de Catalogação-na-publicação (CIP) (Biblioteca da Faculdade Salesiana de Vitória, Espírito Santo, Brasil) D287s Deboni, Felipe Loureiro, 1982 Sistemas Embarcados em Segurança de Redes - OPENWRT / Felipe Loureiro Deboni, Rafael Ferreira Borba. 2007. 102 f. : il. Orientador: Sérgio Nery Simões. Monografia (pós-graduação em Segurança de Redes de Computadores) Faculdade Salesiana de Vitória. 1.Redes de Computadores - Segurança. 2. Sistemas Embarcados. 3. OpenWRT. I. Rafael Ferreira Borba. II. Simões, Sérgio Nery. III. Faculdade Salesiana de Vitória. IV. Título. CDU: 004.7

FELIPE LOUREIRO DEBONI RAFAEL FERREIRA BORBA SISTEMAS EMBARCADOS EM SEGURANÇA DE REDES OPENWRT Monografia apresentada ao Curso de Pós-graduação em Segurança de Redes de Computadores da Faculdade Salesiana de Vitória, como requisito parcial para obtenção do título de Especialista em Segurança de Redes de Computadores. Aprovada em 11 de junho de 2007. COMISSÃO EXAMINADORA Prof. M.Sc. Sérgio Nery Simões Orientador Prof. M.Sc. Sérgio Teixeira Co-orientador Prof. M.Sc. João Gomes da Silveira Centro Federal de Educação Tecnológica do Espírito Santo (CEFETES)

Eu, Felipe Loureiro Deboni, dedico este trabalho a minha família por acreditarem no meu potencial e por me disponibilizar toda ajuda no decorrer do curso, e por toda minha formação acadêmica. --- Eu, Rafael Ferreira Borba, dedico este trabalho a minha noiva, que me ajudou a permanecer forte nos períodos em que a fraqueza se abatia sobre mim em relação ao curso e aos amigos que aqui conquistei, cuja alegria, força de vontade e companheirismo me incentivaram seguir a diante nesta batalha.

AGRADECIMENTOS Agradecemos aos professores Sérgio Nery Simões e Sérgio Teixeira pela colaboração e apoio no desenvolvimento desse trabalho. Aos nossos pais, irmãos, companheiras e amigos, pelo apoio dado desde o inicio do curso.

A persistência é o caminho do êxito. (Chaplin)

RESUMO Este trabalho apresenta conceitos e fundamentos sobre a customização do roteador Linksys WRT54G com o firmware e mini distribuição Linux, OpenWRT, o que vem a ser um sistema embarcado, mostrando histórico e exemplos, e também falando sobre segurança, comentando as premissas de uma boa regra de firewall, buscando demonstrar ao longo do texto de forma didática o passo-a-passo para instalação e configuração dos roteadores com o OpenWRT, no intuito de aperfeiçoar as funções e limitações impostas pelo fabricante deste equipamento nos serviços de NAT e Firewall. Palavras-chave: Redes de Computadores Segurança, 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: Ilustração da atualização via browser.... 70 Figura 4: Tela que obteríamos ao acessar o OpenWRT via telnet.... 71 Figura 5: Tela que obteríamos ao conectar no OpenWRT via Putty(SSH).... 72 Figura 6: Tela de informações do OpenWRT na interface web.... 83 Figura 7: Tela sobre o WebIf do OpenWRT.... 84 Figura 8: Status de conexão 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: Configurações do sistema do OpenWRT na interface web.... 88 Figura 12: Alterações de senha do OpenWRT na interface web.... 88 Figura 13: Instalação ou desinstalação de pacotes do OpenWRT na interface web.... 89 Figura 14: Atualização de firmware do OpenWRT na interface web.... 90 Figura 15: Configurações de rede do OpenWRT na interface web.... 91 Figura 16: Configurações da WAN do OpenWRT na interface web.... 91 Figura 17: Configurações wireless do OpenWRT na interface web.... 92 Figura 18: Configurações wireless avançadas do OpenWRT na interface web.... 93 Figura 19: Configurações de hosts do OpenWRT na interface web.... 94 Figura 20: Configuração firewall do OpenWRT na interface web.... 95

LISTA DE TABELAS Tabela 1: Características 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 à inicialização automática.... 52 Quadro 3: Arquivo: /etc/firewall.sh... 54 Quadro 4: Arquivo: /etc/hosts... 54 Quadro 5: Arquivo: /etc/fwlib.sh... 57 Quadro 6: Atualização por TFTP.... 69 Quadro 7: Atualização 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 memória.... 73 Quadro 11: Comando para visualizar o conteúdo da memória.... 73 Quadro 12: Comando para setarmos as configurações do roteador.... 74 Quadro 13: Comando para pegar a informação do canal utilizado.... 74 Quadro 14: Comando para gravar as informações setadas na memória.... 74 Quadro 15: Configurando com ip fixo a interface wan.... 74 Quadro 16: Pegando a informação do método de utilizado na configuração ip.... 75 Quadro 17: Pegando a informação do ip da LAN.... 75 Quadro 18: Pegando a informação da mascara da LAN.... 75 Quadro 19: Comando para gravar as informações setadas na memória.... 75 Quadro 20: Script firewall. Arquivo: /etc/firewall-up.sh... 82

SUMÁRIO 1. INTRODUÇÃO... 15 1.1 Motivação... 17 1.2 Objetivo... 20 1.3 Metodologia... 20 1.4 Organização do trabalho... 22 2. SISTEMAS EMBARCADOS... 23 2.1 Sistema Embarcado: o que é?... 26 2.2 Pequeno Histórico... 27 2.3 Características... 28 2.4 Tempo Real em Sistemas Embarcados Linux... 29 2.5 Alguns Sistemas Embarcados Disponíveis... 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 histórico... 36 2.6 Java em Sistemas embarcados... 37 2.7 Sobre licenças em sistemas embarcados livres... 38 2.8 Software livre em Sistemas Embarcados... 39 2.9 Considerações... 42 3. FUNDAMENTOS DE SEGURANÇA DA INFORMAÇÃO... 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 Política de Segurança... 46 3.4 Iptables... 47

3.4.1 Características 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 Considerações... 57 4. CONHECENDO O LINKSYS WRT54G... 58 4.1 Trabalhos e soluções correlatas... 61 4.2 Considerações... 65 5. UMA PROPOSTA DE APLICAÇÃO DO OPENWRT EM REDES DE PEQUENO E MÉDIO 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 Atualização por TFTP (Windows)... 68 5.1.3.2 Atualização por TFTP (Linux)... 68 5.1.3.3 Atualização 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 utilização... 95 5.3.1 Vantagem do OpenWRT para sua empresa:... 96 5.3.2 Desvantagem do OpenWRT para sua empresa:... 96 5.4 Considerações... 97 6. CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS... 98 7. REFERÊNCIAS BIBLIOGRÁFICAS... 99

15 1. INTRODUÇÃO Vivemos em uma era de constantes mudanças tecnológicas com a evolução dos sistemas eletrônicos, seja para uso pessoal, como celulares, ou na indústria automotiva. Os sistemas embarcados 1 estão cada vez mais presentes em nosso cotidiano (ORTIZ, 2001). A utilização de sistemas embarcados é de fundamental importância para o funcionamento de vários equipamentos da vida moderna. Eles são encontrados nos mais variados dispositivos e sistemas, desde simples brinquedos até equipamentos de última geração da indústria eletroeletrônica. Alguns exemplos de aplicação de sistemas embarcados são os roteadores e switches 2 de gerenciamento de redes em laboratórios de alto desempenho, os fornos de microondas, os controles remoto de TVs, as impressoras e máquinas copiadoras, os players de MP3, os sistemas de automação, 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 característica de funcionar automaticamente apresenta um sistema embarcado controlando e gerenciando o funcionamento e a performance dos componentes e dispositivos envolvidos. Sistemas embarcados apresentam características em comum com os sistemas computacionais de propósitos gerais, mas não possuem a uniformidade desses. Cada aplicação pode apresentar requisitos diferentes de desempenho, consumo de potência e área ocupada, o que vai acarretar em uma combinação distinta de módulos de hardware e software para atender estes requisitos. (CARRO, 2003) A demanda por equipamentos inteligentes e soluções dedicadas, capazes de apresentar resultados eficientes para os problemas cotidianos, transforma a utilização de microprocessadores e sistemas embarcados em uma fatia muito atraente da computação. 1 especificas. 2 Sistema Embarcado. Embedded System. É um sistema operacional especializado dedicado para tarefas Switches. Ou no singular switch. Também chamados de comutadores, possuem diversas portas assim como os hub. A diferença é 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 irreversível. Esta necessidade tem atraído 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 milhões de dólares em 2001 para 1.59 bilhões em 2005. (ORTIZ, 2001) Contudo não possuímos mensurações sobre a afirmação 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 não 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 atraído a atenção de várias 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 restrições que não são tão relevantes aos sistemas computacionais convencionais, como os computadores pessoais. Restrições como o uso de energia sem prejudicar o desempenho, pouca memória disponível e previsibilidade são algumas delas. A arquitetura em que os sistemas embarcados residem também pode variar bastante, contendo um ou mais processadores, memórias e interfaces para periféricos. Tomando como exemplos os celulares, estes podem ter mais de uma memória: a do chip e a do próprio aparelho, e mais 3 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, Califórnia em 1981 por Jerry Fiddler. 5 Red Hat. A Red Hat, Inc. Fundada em 1993, é uma empresa dos Estados Unidos, que disponibiliza soluções baseadas no sistema operacional GNU/Linux, incluindo várias distribuições. Em 2004 iniciou uma separação do ambiente desktop em detrimento do ambiente empresarial, de onde nasceu o projeto afiliado Fedora Core.

17 de uma interface: para câmera fotográfica integrada e outra para conectá-lo a um computador pessoal. A estrutura de comunicação 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 necessário, como exemplo, podemos citar os sistemas de controle de freios ABS ou os air-bags utilizados na indústria automotiva. Vários fornecedores e pesquisadores de sistemas embarcados estão desenvolvendo novas arquiteturas e aperfeiçoando seus sistemas, num esforço de melhorar a performance dos mesmos, e assim, conquistar um lugar de destaque no mercado com novas tecnologias e soluções. (SANTO, 2001) O que vem se concretizando nos dias atuais. (WINDOWS EMBEDDED, 2007)(HTC SMART MOBILE, 2007) 1.1 Motivação Profissionais de TI têm grande dificuldade em dedicar um computador apenas para fazer NAT 6 e Firewall 7 em pequenas e médias empresas com verbas bem restritas. Uma solução seria comprar um roteador para este fim, que realizaria apenas tarefas básicas. Porém, este possui limitações, não sendo possível em seu padrão de fabrica exercer tarefas como um firewall avançado. 6 NAT. Network Address Translation - Mecanismo que permite a conexão de redes privadas à rede Internet sem alteração dos endereços reservados. Através de um NAT server os endereços de rede reservados são convertidos para endereços públicos quando se torna necessário o acesso à rede Internet. Com este mecanismo, diversos computadores com endereços internos podem compartilhar um único endereço IP. 7 Firewall. É o nome dado ao dispositivo de rede que tem por função regular o tráfego de rede entre redes distintas. Impedir a transmissão de dados nocivos ou não 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 combinação de ambos. A instalação depende do tamanho da rede, da complexidade das regras que autorizam o fluxo de entrada e saída de informações e do grau de segurança desejado.

18 Focados nesta dificuldade é desenvolvido esse trabalho, ou seja, ao invés de um computador dedicado apenas a estas tarefas utilizaremos um roteador Linksys WRT54G 8, que possui limitações, mas graças a contribuição da comunidade Open Source 9 foi desenvolvido com base no Sistema Embarcado uclinux 10 a distribuição OpenWRT 11, que possui toda robustez e segurança do Linux. Com a solução proposta poderemos converter um simples roteador Linksys WRT54G que desempenha tarefas básicas de roteamento e controle de web para um avançado servidor Linux que possibilita a instalação 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 invés 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. 8 Linksys WRT54G. É um dos mais famosos roteadores sem fio da Linksys. Por seu firmware ter código aberto, desenvolveu-se toda uma comunidade de desenvolvedores de firmwares alternativos, agregando funções adicionais ao equipamento. O equipamento possui as variantes WRT54GL e WRT54GS, ambas em produção. 9 Open Source. Conceito de distribuição de software, que estabelece como fundamentais, os princípios de desenvolvimento compartilhado, distribuição na forma de código 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, também de forma gratuita. A integridade e notoriedade dos autores é preservada, sendo registrado o nome de cada um dos colaboradores nas versões subseqüentes. 10 Embarcados. 11 uclinux. Sistema Embarcado de código aberto criado em 1998 e completamente voltado a Sistemas OpenWRT. Distribuição Linux baseada no uclinux. Este sistema terá um destaque, pois será utilizado nesta monografia. 12 13 Iptables. Firewall em nível de pacotes. Apache. O mais conhecido dos servidores da Internet. É responsável pela hospedagem de mais de 50% dos sites existentes no mundo inteiro. O nome é um trocadilho, com a similaridade fonética da expressão a patchy server ( um servidor remendado, em inglês). Isto porque, seu programa foi sendo aperfeiçoado pela contribuição (patches/remendos) de diversos colaboradores.

19 Ainda comparando com um computador tradicional, nota-se a diferença no espaço ocupado pelas soluções, enquanto o roteador consegue ocupar apenas o espaço de um livro, o gabinete de um computador tradicional necessita de um espaço bem maior, e se consideramos o monitor, teclado e mouse, o espaço aumenta ainda mais. Como um grande diferencial entre o Linksys WRT54G com firmware padrão e o firmware customizado com o OpenWRT, é a possibilidade de configurá-lo de forma bem simples, através da interface web, ou se necessário de forma avançada através de SSH 14 e Telnet 15, isso tudo através da comodidade de sua rede, ou pela internet. Agregando ainda mais às facilidades disponíveis, temos a manutenção, reinstalação e substituição do equipamento de forma simples, é possível configurar controles de exceções, de forma que ao detectar alguma anomalia em seu funcionamento, o equipamento é capaz de avisar o administrador, gerar seu próprio backup, e restaurá-lo automaticamente em um segundo roteador para que o funcionamento da sua rede não tenha grandes impactos, passando assim o controle da mesma para este segundo roteador. A ausência de hard disk(hd) beneficia, na medida em que restringe o número de aplicações que rodam neste roteador, sendo menos portas abertas, menos falhas e menos exceções, além disso, ele é capaz de montar uma partição de qualquer pasta compartilhada em uma maquina remota. Portabilidade e baixo investimento contribuem ainda mais para aumentar o diferencial desta solução. Devido ao baixo valor de investimento, torna-se fácil manter uma estrutura de backup, tanto pela parte dos softwares, quanto pela parte do hardware. Por ser uma distribuição Linux a configuração do OpenWRT pode ser padronizada por scripts, facilitando ainda mais a administração desses equipamentos. 14 SSH. O Secure Shell, simultaneamente, um programa de computador e um protocolo de rede que permite a conexão com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do Telnet, com a vantagem da conexão entre o cliente e o servidor ser criptografada. 15 Telnet. Um protocolo/programa de rede, que permite o login remoto, tornando possível 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 próprio micro. Suas transmições são feitas em texto claro, sendo aconselhada a utilização do SSH.

20 O Linksys WRT54G é um roteador wireless 16, padrão 802.11b/g 17, e um switch. Ele permite a interação entre a rede sem fio e a rede cabeada, possibilitando a substituição da estrutura tradicional composta por um computador. 1.2 Objetivo O objetivo geral desse trabalho de pesquisa é implementar o sistema OpenWRT e customizálo, utilizando regras de segurança avançadas para se obter maior eficácia no dia-a-dia e economia a curto e médio prazo. Objetivos específicos são: Implementação do Iptables no OpenWRT; Utilização do Linksys WRT54G em redes de pequeno e médio porte; Conhecimento dos sistemas embarcados; Possibilidades de utilização do Linksys WRT54G. 1.3 Metodologia Foi constatado por meio da interação com profissionais da área de segurança de redes em listas de discussões, fóruns e artigos, que sistemas embarcados estão sendo muito utilizados 16 Wireless. Da tradução do inglês, sem fio. Transmissão via ondas de rádio ou satélite, sem a necessidade de conexão física por meio de cabos. Provavelmente será usada em redes de computadores do futuro, permitindo maior flexibilidade de uso. 17 802.11b/g. Padrão de conexão sem fio padronizada pelo IEEE que opera na freqüência de 2.4 GHz, o 802.11b alcança velocidades de 11 Mbps, no 802.11g a velocidade alcançada é de 54 Mpbs.

21 pelas empresas, pois trazem diversas possibilidades para a interconexão de redes. Por meio de pesquisas na Internet foi constado que o roteador Linksys WRT54G é um dos mais utilizados para interconexão de redes sem fio. Além disso, o fabricante desse equipamento foi o primeiro a disponibilizar os fontes do firmware com licença GPL (OPENWRT, 2007). Diante disso, foram pesquisadas alternativas para uma maior eficácia do uso desse equipamento, pois existem limitações na configuração padrão do firmware. Devido à falta de publicações sobre sistemas embarcados foi utilizado o material disponível na Internet. Foram identificados e pesquisados firmwares customizados. Foi constatado por meio de pesquisas em sites especializados na Internet que o OpenWRT é uma opção eficaz para a customização de compartilhamento seguro de redes que utilizam ou pretendem utilizar dispositivos que são compatíveis com sistemas embarcados. Após a definição do uso do OpenWRT como o firmware customizado a ser utilizado, foi elaborado um roteiro de instalação e configuração, passo-a-passo, juntando varias informações obtidas em pesquisas em diversos sites, fóruns e listas de discussões. Foi obtido screenshots 18 para enriquecer o trabalho e facilitar o entendimento na hora de instalar o firmware customizado, que de fato é uma operação delicada, que gera duvidas e demanda atenção redobrada. Nos screenshots da interface web, procurou-se demonstrar a facilidade de sua configuração, alguns desses foram gerados na própria maquina do autor, outros foram obtidos na internet e inseridos neste trabalho com autorização de seus autores. Em segurança foi pesquisado alem dos livros adquiridos nas bibliotecas, vários sites da comunidade Linux, pelo fato do OpenWRT ser uma mini distribuição Linux todos os scripts que funcionam no Linux para computadores tradicionais, funcionaram no OpenWRT com o mínimo de modificação, foi utilizado o script desenvolvido por Fabricio Beltram, com algumas modificações, como o principal script de iptables deste trabalho. 18 ScreenShot. Um screenshot é uma imagem do conteúdo do monitor feita pelo próprio computador. Geralmente esta é uma imagem digital feita pelo sistema operacional ou por um software instalado no computador.

22 1.4 Organização do trabalho Esse trabalho segue a seguinte organização: Capítulo 2 Sistemas Embarcados Apresenta conceitos, tipos de sistemas, kernel 19 e funcionalidades de um sistema embarcado, bem como a sua história, desde seu surgimento na década de 60 até os dias atuais, suas características retratadas sob uma ampla visão da aplicação deste recurso em um vasto universo de hardware e software. Capítulo 3 Segurança Neste capitulo é apresentado recursos de segurança baseados em múltiplos protocolos, bem como uma ampla informação sobre regras e tabelas visando maior eficácia e eficiência do Linksys WRT54G, dando um destaque especial ao iptables, que será utilizado para criar as regras de firewall utilizadas nesta monografia. Capítulo 4 Conhecendo o Linksys WRT54G Apresenta um dos mais famosos roteadores sem fios da Linksys, com suas especificações técnicas, mostrando as possibilidades de customizações que serão utilizadas para este trabalho. Capítulo 5 Uma proposta de utilização Mostra uma proposta de aplicação dos métodos, utilizando o OpenWRT em um roteador Linksys WRT54G, mostrando passo a passo sua instalação em vários métodos, e configuração por SSH, Telnet ou via interface web nos moldes propostos. Capítulo 6 Considerações finais e Trabalhos futuros Considerações finais do trabalho e abordagem de futuros trabalhos que possam ser realizado para dar continuidade à proposta apresentada. Capítulo 7 - Referências Bibliográficas referências bibliográficas utilizadas na elaboração deste projeto de pesquisa. 19 Kernel. O Kernel de um sistema operacional é entendido como o núcleo deste ou, numa tradução literal, cerne. Ele representa a camada mais baixa de interface com o Hardware, sendo responsável por gerenciar os recursos do sistema computacional como um todo.

23 2. SISTEMAS EMBARCADOS Os sistemas computacionais embarcados estão presentes em praticamente todas as atividades humanas e, com os baixos custos tecnológicos atuais, tendem a aumentar sua presença no cotidiano das pessoas. Exemplos de tais sistemas são as máquinas de lavar, o sistema de controle dos carros e ônibus, os computadores portáteis palm-top, em roteadores, os fornos de microondas com controle de temperatura inteligente e outros eletrodomésticos. (CARRO, 2004) De acordo com a definição encontrada na Wikipédia 20, sistema embarcado é um computador de propósito especial, que é completamente encapsulado pelo dispositivo que controla. Grande parte dos microprocessadores fabricados mundialmente é destinada a máquinas que usualmente não são 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 constituído por hardware, software e periféricos. Um Sistema Embarcado (Embedded System), pela sua natureza especialista, pode ter inúmeras aplicações. Podem-se ter sistemas embarcados para controle de freios de um veículo automóvel, em que esse sistema deve gerenciar certos periféricos de controle como um sensor. Em outro extremo funcional têm-se os terminais de atendimento do Sistema Único de Saúde (SUS) que fazem leitura do Sistema Cartão Nacional de Saúde (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 computação de propósitos gerais. Por exemplo, as questões da portabilidade e do limite de consumo de potência sem perda de desempenho, a baixa disponibilidade de memória, a necessidade de segurança e confiabilidade, a possibilidade de funcionamento em uma rede maior, e o curto tempo de projeto tornam o 20 Wikipédia. Desenvolvido pela Wikimedia Foundation. Apresenta conteúdo enciclopédico. Disponível em: <http://en.wikipedia.org/wiki/embedded_system>. Acesso em: 04 Abr 2007

24 desenvolvimento de sistemas computacionais embarcados uma área específica de pesquisa (WOLF, 2001). No contexto atual de competitividade industrial, seguindo-se a lei de Moore 21, tem-se à disposição o dobro de transistores a cada 18 meses (MOORE, 1965). Conseqüentemente, sistemas dedicados com milhões 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 específica para um domínio de aplicação (DUTTA, 2001) (DEMMELER, 2001)(PAULIN, 1997), mas altamente parametrizável (no número de componentes de cada tipo, na estrutura de comunicação, no tamanho da memória, nos tipos de dispositivos de E/S, etc.). Esta estratégia viabiliza o reuso (KEATING, 2002) de componentes (ou núcleos) (BERGAMASCHI, 2001) previamente desenvolvidos e testados, o que reduz o tempo de projeto. O reuso pode ser ainda reforçado pela adoção de padrões (VSIA, 2003) na arquitetura e projeto dos sistemas. O projeto de sistemas embarcados toma sempre como base um ou mais processadores. Embora esta solução pareça extremamente conservadora do ponto de vista de inovação, ela traz enormes vantagens do ponto de vista operacional. Primeiro, o fator de escala. Como os microprocessadores são 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 disponível dentro de uma empresa, novas versões de produtos podem ser feitas pela alteração do software da plataforma. A personalização do sistema dá-se através do software de aplicação, que toma atualmente a maior parte do tempo de projeto. Além destas vantagens competitivas, há ainda o fator treinamento de engenheiros, já que estes geralmente se formam com conhecimentos de programação de microprocessadores. Como pôde-se perceber, os Sistemas Embarcados encontram-se cada vez mais presentes em nosso dia-a-dia e com uma utilização e importância crescente torna-se necessário estudos na área de software básico suportado. No mesmo sentido, a escolha de um Sistema 21 Lei de Moore. Formulada por Gordon Moore em 1965, três anos antes que ele ajudasse a criar a fabricante de chips Intel. Moore afirmou que o número de transistores que poderiam ser alojados em uma determinada área de silício duplicaria a cada dois anos. Posteriormente, reduziu o prazo a 18 meses.