monografia pos seguranca sistema embarcado openwrt

102
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

Upload: reginaldo-fernandes

Post on 31-Dec-2015

128 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: Monografia Pos Seguranca Sistema Embarcado Openwrt

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

Page 2: Monografia Pos Seguranca Sistema Embarcado Openwrt

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.

Orientador: Prof. M.Sc. Sérgio Nery Simões.

Co-orientador: Prof. M.Sc. Sérgio Teixeira.

VITÓRIA 2007

Page 3: Monografia Pos Seguranca Sistema Embarcado Openwrt

Dados Internacionais de Catalogação-na-publicação (CIP)

(Biblioteca da Faculdade Salesiana de Vitória, Espírito Santo, Brasil)

Deboni, Felipe Loureiro, 1982 D287s 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

Page 4: Monografia Pos Seguranca Sistema Embarcado Openwrt

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)

Page 5: Monografia Pos Seguranca Sistema Embarcado Openwrt

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.

Page 6: Monografia Pos Seguranca Sistema Embarcado Openwrt

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.

Page 7: Monografia Pos Seguranca Sistema Embarcado Openwrt

“A persistência é o caminho do êxito.”

(Chaplin)

Page 8: Monografia Pos Seguranca Sistema Embarcado Openwrt

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.

Page 9: Monografia Pos Seguranca Sistema Embarcado 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.

Page 10: Monografia Pos Seguranca Sistema Embarcado 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 

Page 11: Monografia Pos Seguranca Sistema Embarcado Openwrt

LISTA DE TABELAS

Tabela 1: Características de hardware do sistema embarcado Linksys WRT54G. ................. 61 

Page 12: Monografia Pos Seguranca Sistema Embarcado Openwrt

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 

Page 13: Monografia Pos Seguranca Sistema Embarcado Openwrt

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 

Page 14: Monografia Pos Seguranca Sistema Embarcado Openwrt

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 

Page 15: Monografia Pos Seguranca Sistema Embarcado Openwrt

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

embarcados1 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

switches2 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 Sistema Embarcado. Embedded System. É um sistema operacional especializado dedicado para tarefas

especificas. 2 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.

Page 16: Monografia Pos Seguranca Sistema Embarcado Openwrt

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 Microsoft3, a Wind River Systems4 e a Red Hat5, 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.

Page 17: Monografia Pos Seguranca Sistema Embarcado Openwrt

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

NAT6 e Firewall7 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.

Page 18: Monografia Pos Seguranca Sistema Embarcado Openwrt

18

Focados nesta dificuldade é desenvolvido esse trabalho, ou seja, ao invés de um computador

dedicado apenas a estas tarefas utilizaremos um roteador Linksys WRT54G8, que possui

limitações, mas graças a contribuição da comunidade Open Source9 foi desenvolvido com

base no Sistema Embarcado uClinux10 a distribuição OpenWRT11, 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

iptables12, apache13, 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 uClinux. Sistema Embarcado de código aberto criado em 1998 e completamente voltado a Sistemas

Embarcados. 11 OpenWRT. Distribuição Linux baseada no uClinux. Este sistema terá um destaque, pois será utilizado

nesta monografia. 12 Iptables. Firewall em nível de pacotes. 13 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.

Page 19: Monografia Pos Seguranca Sistema Embarcado Openwrt

19

net.

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 SSH14 e Telnet15,

isso tudo através da comodidade de sua rede, ou pela inter

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.

Page 20: Monografia Pos Seguranca Sistema Embarcado Openwrt

20

O Linksys WRT54G é um roteador wireless16, padrão 802.11b/g17, 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.

Page 21: Monografia Pos Seguranca Sistema Embarcado Openwrt

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 screenshots18 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.

Page 22: Monografia Pos Seguranca Sistema Embarcado Openwrt

22

1.4 Organização do trabalho

Esse trabalho segue a seguinte organização:

Capítulo 2 – Sistemas Embarcados – Apresenta conceitos, tipos de sistemas, kernel19 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.

Page 23: Monografia Pos Seguranca Sistema Embarcado Openwrt

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édia20, 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

Page 24: Monografia Pos Seguranca Sistema Embarcado Openwrt

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 Moore21, 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.

Page 25: Monografia Pos Seguranca Sistema Embarcado Openwrt

25

Operacional(S.O) leve, tolerante a falhas e que suporte o desenvolvimento de aplicações de

forma simples é muito importante.

Entre as vantagens do uso desse tipo de sistema, o reuso de componentes empregados na

computação 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 várias

arquiteturas, dispositivos e protocolos e é excelente para usuários Linux;

• Kernels livres para sistemas embarcados uClinux: Usado principalmente para

sistemas embarcados menores e de baixo custo, é utilizado em aplicações padrões

para Linux embarcado com patches22 para atender restrições especiais de memória

e é muito próximo do Linux embarcado tradicional;

• Kernels livres para sistemas embarcados NetBSD23: Sistema BSD24 altamente

portável, requisitos mínimos de armazenamento e RAM25 similares aos do Linux;

• Kernels livres para sistemas embarcados eCos26: Sistema embarcado de tempo real

22 Patches. Ou no singular Patch. É uma diferença entre dois elementos, leia-se atualização, sendo que

esses elementos podem ser códigos fontes, binários, textos, etc. 23 NetBSD. Foi a primeira distribuição livre, versão Open Source do BSD, sistema operacional Unix-like,

lançando 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 Califórnia, durante os anos 70 e 80. Atualmente, o BSD não é um único Sistema

Operacional, mas sim uma larga família derivada do original, sendo os mais conhecidos membros da família:

4.4BSD (última versão do BSD original), 386BSD, FreeBSD, NetBSD, OpenBSD, BSDI (anteriormente

BSD/OS), e Darwin (que serve como base ao Mac OS X). 25 RAM. Do inglês Random Acess Memory. É a memória disponível para uso das aplicações e

processamentos. Seu conteúdo volátil é 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 aplicações com apenas um processo derivando multiplas

threads.

Page 26: Monografia Pos Seguranca Sistema Embarcado Openwrt

26

bem leve, provido pela Red Hat / Cygnus solutions27, é compatível com a maioria

das aplicações Unix e Linux.

2.1 Sistema Embarcado: o que é?

Sistemas Embarcados são sistemas computacionais especialistas. Estes sistemas são

constituídos por um conjunto hardware-software-periférico e, de um modo geral, são

responsáveis por uma função específica ou um conjunto restrito de funções específicas e co-

relacionadas (GUPTA, 2000).

A denominação "embarcado" vem do fato de que estes sistemas são 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 característica é

potencialmente a mais restritiva para um Sistema Embarcado. Um projeto para essa classe de

sistema computacional deve levar principalmente em consideração questões 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 restrições da mesma;

• Memória pequena se comparada às memórias 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 acrônimo recursivo para "Cygnus, Your GNU Support".

Page 27: Monografia Pos Seguranca Sistema Embarcado Openwrt

27

2.2 Pequeno Histórico

Segundo a enciclopédia Wikipédia28, o primeiro sistema embarcado moderno reconhecido foi

o Apollo Guidance Computer desenvolvido por Charles Stark Draper no laboratório

instrumental do Massachusetts Institute of Technology(MIT) na década de 60. Cada vôo para

a lua possuíam dois dele, que controlam o sistema de orientação inercial.

Já o primeiro sistema embarcado produzido em massa foi o “computador guia” (computer

guidance) produzido para o míssil Minuteman29 também na década de 60. Este sistema tem

como principal função orientar o míssil, tornando-o mais preciso.

Nessa época também existia um pequeno programa de controle funcional de telefones. Logo

este pequeno programa estava sendo utilizado em outros dispositivos, entretanto de forma

customizada, e não somente destinado para o dispositivo original do projeto.

Posteriormente, com o advento de microprocessadores especialistas, foi possível desenvolver

software específico para os variados tipos de processador. Os programas eram escritos em

linguagem de máquina. (MAXWELL, 1999)

Já na década de 1970 começavam a surgir bibliotecas de códigos e pacotes de sistemas

operacionais direcionados para Sistemas Embarcados específicos, com processadores

específicos. Neste período linguagem C começou a ser utilizada para construção de Sistemas

Operacionais, como viria a acontecer com o Linux.

Este foi o trampolim para o avanço tecnológico subseqüente. O avanço tecnológico,

principalmente em telecomunicações, ocorrido nos anos seguintes tornou de fundamental

28 Wikipédia. Desenvolvido pela Wikimedia Foundation. Apresenta conteúdo enciclopédico. Disponível

em: <http://en.wikipedia.org/wiki/Apollo_Guidance_Computer>. Acesso em: 04 Abr 2007 29 Míssil Minuteman. Míssil nuclear norte americano contendo o primeiro sistema embarcado produzido

em escala, teve inicio de sua produção em 1962 (Minuteman I), 1965 (Minuteman II), 1970 (Minuteman III),

hoje possui cerca de 500 Minuteman III em silos de mísseis 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

produção aproximado de $7,000,000.

Page 28: Monografia Pos Seguranca Sistema Embarcado Openwrt

28

importância a implementação de Sistemas Embarcados para as mais variadas tarefas. Desde o

controle de um robô em uma montadora de automóveis aos cada vez mais minúsculos

celulares, o Sistema Operacional tem papel crucial para a performance do sistema como um

todo no mundo atual. (PETERSON, 1981)

2.3 Características

Como dito anteriormente, Sistemas Embarcados são especialistas. Conseqüentemente, o

número e as particularidades dos sistemas operacionais correspondentes variam na mesma

proporção.

O projeto de um sistema especialista, entretanto, apresenta a característica de otimização

potencialmente próxima do ótimo, em todos os "planos" do projeto. Em decorrência dessa

característica os Sistemas Embarcados avançam no sentido de maximização da performance e

processamento em tempo real.

Uma preocupação constante em um projeto de Sistema Embarcado aborda a questão de

energia utilizada pelo sistema. Como já foi citado, as arquitetura dos Sistemas Embarcados

são tipicamente baseadas em fontes de energia rapidamente esgotáveis como pilhas e baterias.

Nesse sentido, projetar um Sistema Operacional (S.O) para tal sistema deve implementar:

• Políticas de paralelismo de execução restritas como o pipeline30 clássico em que

são executados simultaneamente estágios distintos de instruções distintas (REIS,

1999);

• O tamanho da memória é fator fundamental na performance de um Sistema

Embarcado como um todo. Neste aspecto, por uma questão de limitação

tecnológica, os dispositivos envolvidos não podem dispor de muita memória, o que

pode acarretar em um impacto negativo em tarefas corriqueiras do Sistema

Operacional (S.O) como alocação de memória para processos;

30 Pipeline. Linha de canalizações; seqüência de programas encadeados, funcionando em conjunto.

Page 29: Monografia Pos Seguranca Sistema Embarcado Openwrt

29

• Memórias potencialmente velozes acarretam problemas de desperdício de potência

pelo aparecimento da "capacitância parasita31" criada. (ROSA JÚNIOR, 2002)

Assim como num PC, os Sistemas Embarcados também devem gerenciar um conjunto de

entidades de hardware. Entre outras temos: CPU, ROM32/RAM, memória não-volátil, relógio

temporizador e dispositivos de I/O.

Não existe padrão na construção de Sistema Embarcado, já que cada software básico deve ser

capaz de suportar as características peculiares do Sistema Embarcado ao qual se destina.

Dispositivos de hardware utilizados em um sistema comumente não são utilizados por um

outro sistema. Além disso, muitas vezes o próprio hardware é específico do sistema, não

sendo padronizado.

2.4 Tempo Real em Sistemas Embarcados Linux

As particularidades de um sistema de tempo real não são necessárias em todos os

equipamentos que empregam um sistema embarcado, porém, elas podem tornar-se desejáveis

uma vez que o mesmo pode ser utilizado em equipamentos e dispositivos que tenham a

necessidade de atender a rápidas requisições. Portanto, nem todos os sistemas embarcados são

sistemas de tempo real, porém, é desejável que os sistemas embarcados possam implementar

as características de real-time.

31 Capacitância Parasita. A capacitância parasita está presente sempre que houver uma diferença de

potencial entre dois materiais condutores separados por um dielétrico. Pelo fato de a capacitância parasita poder

causar acoplamento indesejado entre circuitos, um extremo cuidado deve ser tomado na disposição dos sistemas

eletrônicos em placas de circuitos impressos. 32 ROM. A memória ROM (acrónimo para a expressão inglesa Read-Only Memory) é um tipo de

memória que permite apenas a leitura, ou seja, as suas informações são gravadas pelo fabricante uma única vez e

após isso não podem ser alteradas ou apagadas, somente acessadas. São memórias cujo conteúdo é gravado

permanentemente. Mas possivelmente podem ser escritas por meio de mecanismos especiais.

Page 30: Monografia Pos Seguranca Sistema Embarcado Openwrt

30

Temos dois tipos de Sistemas em Tempo Real:

• Hard Real Time;

• Soft Real Time.

Os sistemas operacionais de tempo real são aqueles empregados em dispositivos e

equipamentos que necessitam de uma garantia de tempo máximo de resposta, ou seja, são

utilizados no suporte às aplicações submetidas a requisitos de natureza temporal.

Vários produtos, que apresentam processadores embarcados, não necessitam que o tempo de

processamento e resposta do sistema seja rigorosamente bem definido, não 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 execução e o processamento. Aplicações com requisitos de tempo

real são cada vez mais comuns nos dias de hoje, variando muito com relação ao tamanho e

complexidade. Entre os sistemas mais simples estão os controladores embarcados em

utilidades domésticas, tais como lavadoras de roupa e videocassetes. Na outra extremidade do

espectro, onde sistemas de real-time são empregados, encontram-se os sistemas militares de

defesa e o controle de tráfego aéreo. (OLIVEIRA, 2001)

Podemos citar como exemplos típicos de utilização 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 é construído para reagir o mais rápido

possível aos estímulos. Entretanto, caso haja perda de eventos ou não consiga processar a

tempo, não haverá nenhuma conseqüência catastrófica em sua operação e sim um degradação

na qualidade. Podemos citar como exemplos típicos de Tempo Real Soft, sistemas de áudio,

vídeo e de voz sobre IP.

Page 31: Monografia Pos Seguranca Sistema Embarcado Openwrt

31

Tal qual o Unix é um sistema operacional de tempo compartilhado projetado para maximizar

o throughput33 e dar uma parte do compartilhamento da CPU ao ambiente multiusuário.

Existe ainda um comportamento não determinístico do sincronismo de alguns serviços do

kernel como, alocação de memória 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 não foi projetado para ser um sistema operacional para uso em sistemas

real-time (FARINES, 2000), até porque, alguns serviços do referido sistema operacional

rendem atrasos imprevisíveis.

Um verdadeiro sistema operacional de tempo real precisa ser determinístico, para que possa

garantir, assim, um tempo máximo de resposta (BARABANOV, 1996) (SANTO, 2001)

(KADIONIK, 2002). Esta característica define que o número de ciclos para a execução de

uma operação deve ser sempre o mesmo, podendo ocorrer uma interrupção caso necessário.

Por exemplo, suponhamos que existam 20 pessoas em uma discussão moderada, e que elas

apenas possam falar e expor suas idéias em seqüência. Digamos, também, que o sistema

operacional seja o moderador da discussão. Agora, suponhamos que o participante número 5

esteja falando e a pessoa número 3 tenha alguma coisa muito importante para acrescentar. Em

um sistema não-determinístico, ela terá que esperar que todos participantes falem, do número

6 até o número 20, que a vez seja passada novamente para os participantes número 1 e

número 2, na seqüência, até que ela possa novamente assumir a palavra. Por outro lado, se o

sistema operacional fosse determinístico, ele seria capaz de interromper a seqüência e passar a

33 Throughput. Velocidade com que um computador processa dados. É uma combinação da velocidade de

processamento interno, velocidade dos periféricos (I/O) e eficiência do sistema operacional e outros software do

sistema, todos funcionando juntos.

Page 32: Monografia Pos Seguranca Sistema Embarcado Openwrt

32

palavra para a pessoa número 3, permitindo que ela permanecesse com a mesma durante um

período de tempo pré-estabelecido, tornando o sistema mais ágil e mais eficiente.

Então, o que realmente é um sistema operacional de tempo real? A definição 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 exigências para adequar-se as necessidades

dos sistemas em tempo real. Esperar a previsibilidade de 100% em kernel padrão é um fato

certo em poucos anos. (LINUXDEVICES, 2007)

2.5 Alguns Sistemas Embarcados Disponíveis

Apesar da peculiaridade típica dos Sistemas Embarcados, existem no mercado algumas

soluções prontas. E, devido às suas características, este mercado se apresenta sem um "líder

de vendas", pois ainda não existe o conceito de Sistema Embarcado de uso geral, apenas

pequenos nichos de concorrência.

A seguir têm-se pequenos textos a respeito de alguns Sistemas Embarcados disponíveis no

mercado. (ROSA JÚNIOR, 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 interrupção. Este sistema é normalmente

Page 33: Monografia Pos Seguranca Sistema Embarcado Openwrt

33

utilizado em dispositivos de pouca memória como players de áudio e impressoras laser.

Vantagem: suporte a várias arquiteturas (REDHAT, 2003).

2.5.2 NetBSD

Baseado em Unix. Este também é um sistema embarcado Open Source. Uma desvantagem em

relação a outros Sistemas Embarcados é a sua relativa necessidade de memória podendo

chegar até 16Mb de RAM. Desta forma, ele se apresenta como uma boa opção para "rodar"

em roteadores e outros dispositivos de rede que possuem, de modo geral, boa quantidade de

memória disponível.

2.5.3 Windows CE Embedded

Lançado em 1996 pela Microsoft, interessada num nicho sem líderes de mercado até então.

Utiliza o Windows34 como base de desenvolvimento e não é Open Source. Tamanho

relativamente compacto e possibilidade de incorporar novos módulos/componentes

(WINDOWS EMBEDDED, 2007).

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

Microsoft. A Microsoft começou o desenvolvimento de um Gerenciador de Interface (subseqüente renomeado

Microsoft Windows) em setembro de 1981. O Windows só começa a ser tecnicamente considerado como um SO

a partir da versão Windows NT, lançada em Agosto de 1993. O que havia antes eram sistemas gráficos sendo

executados sobre alguma versão dos sistemas compatíveis com DOS, como MS-DOS, PC-DOS ou DR-DOS.

Somente o MS-DOS era produzido pela própria Microsoft.

Page 34: Monografia Pos Seguranca Sistema Embarcado Openwrt

34

2.5.4 Windows NT Embedded

Sistema Operacional também baseado em Windows, de código fechado. Consideravelmente

grande ocupação de memória, não sendo indicado para dispositivos com memória restrita

como aparelhos de mão.

2.5.5 uClinux

O Embedded Linux Microcontroller é um Sistema Embarcado de código 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, além de sistemas de arquivos

diversos como NFS35 e FAT16/3236, entre outros (UCLINUX, 2007).

Este sistema, por ser baseado em Linux, mantém sua estabilidade e portabilidade. Outra

vantagem do uClinux é o suporte a várias 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, execução de programas e visualizar estatísticas do

computador remoto. 36 FAT16/32. A File Allocation Table (FAT, ou Tabela de Alocação de Ficheiros(Arquivos)) é um

sistema de arquivos desenvolvido para o MS-DOS e usado em versões do Microsoft Windows até (e inclusive) o

Windows Me. A Tabela de Alocação de Ficheiros(Arquivos) é um mapa de utilização do disco ou disquete.

Graças a ele, o Sistema Operacional é capaz de saber exatamente onde um determinado ficheiro está

armazenado. Existem duas versões do sistema FAT: FAT16 (para OS 16 bits ou 32 bits) e FAT32 (só para SO a

32 bits); a diferença mais visível entre as duas versões é que FAT32 suporta nomes de ficheiros longos (atá 256

caracteres), enquanto o FAT16 suporta apenas nomes de arquivos curtos (até 8 caracteres + extensão).

Page 35: Monografia Pos Seguranca Sistema Embarcado Openwrt

35

2.5.6 OpenWRT

A distribuição 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 distribuição Linux para Sistemas Embarcados, em que seu

desenvolvimento dispõe de um sistema de arquivos totalmente escrito com gerenciamento de

pacotes, e não apenas um firmware simples com um único processo, isso propicia uma grande

facilidade na seleção e configuração das aplicações fornecidas e permite que o

colaborador/usuário customize o dispositivo usando apenas pacotes. Para o colaborador o

OpenWRT é a estrutura ideal para construir uma aplicação sem ter a preocupação de construir

um firmware completo em torno dela. Para o usuário isto significa a habilidade de total

customização, para utilizar o dispositivo de maneira nunca antes vista.

Com a liberação dos códigos fontes Linux da série de roteadores Linksys WRT54G/GS

surgiram um grande numero de firmwares modificados para estender as funcionalidades em

várias maneiras. Esses firmwares continham 99% de códigos conservados e 1% de

funcionalidades adicionadas, e cada projeto tentou seguir um determinado segmento de

mercado com as funcionalidades que forneceu.

Abaixo duas motivações para inicialização do projeto OpenWRT:

• Era freqüentemente difícil encontrar um firmware com a combinação 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 invés de começar a partir dos

fontes do Linksys, o desenvolvimento começou em um estado limpo dos códigos fontes, com

apenas códigos fontes base. Peça por peça o software foi montado trazendo as funcionalidades

de volta, como no firmware padrão da Linksys, usando versões recentemente disponíveis.

Page 36: Monografia Pos Seguranca Sistema Embarcado Openwrt

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 características extras.

2.5.6.1 Por que utilizar o OpenWRT?

Porque GNU/Linux nos dá o poder fazer o que nós necessitamos com ferragem barata e evitar

o software proprietário, de código fechado. O OpenWRT é o firmware baseado no Linux mais

rápido disponível para vários roteadores sem fio. No momento a distribuição contem mais de

100 pacotes de software. Além disso, a comunidade de OpenWRT fornece os mais variados

pacotes add-on.

2.5.6.2 OpenWRT, um breve histórico

O projeto começou em janeiro 2004. As primeiras versões de OpenWrt foram baseadas em

fontes de Linksys GPL para WRT54G e no buildroot do projeto uclibc. Esta versão foi

definida como OpenWrt “versão estável” e estava própria para uso. Há ainda muitas

aplicações de OpenWrt, como os Freifunk-Firmware ou o Sip@Home, que são baseados nesta

versão.

No começo de 2005 alguns novos desenvolvedores se juntaram a equipe. Após alguns meses

de desenvolvimento fechado a equipe decidiu publicar as primeiras versões “experimentais”

do OpenWrt. As versões experimentais usam um sistema bastante customizado da construída

baseada na versão 2 do buildroot, o buildroot2, também 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 liberação de OpenWrt é “White

Page 37: Monografia Pos Seguranca Sistema Embarcado Openwrt

37

Russian”, um cocktail popular. Atualmente, o desenvolvimento da linha White Russian

terminou com a liberação de OpenWrt 0.9.

O desenvolvimento da próxima versão já está ocorrendo no repositório de códigos 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 usuários vem até hoje desenvolvendo novas ferramentas e sistemas que são 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 fácil integração entre o código Java e a linguagem nativa. Isto o torna sistemas

simples, orientados ao objeto, com suporte a protocolos de rede, robusto, seguro, de

arquitetura neutra, portátil, de alta performance, multithreaded e dinâmico.

Algumas características naturais do Java são:

• O Java esconde as especificações dos dispositivos e do sistema embarcado;

• Fornece um numero de características além do oferecido pelo sistema embarcado;

• Ferramentas de rede interoperável;

• Simplifica o desenvolvimento de produto. O software pode facilmente ser

desenvolvido em estações de trabalho;

• Pode-se reutilizar o código;

• Bytecode mais compacto.

Sua interface nativa (JNI – Java Native Interface) interage com o hardware através do JVM e

operado com aplicações e bibliotecas escritas em outras.

Page 38: Monografia Pos Seguranca Sistema Embarcado Openwrt

38

Mas o Java também tem suas desvantagens;

• Não possui código fonte aberto;

• Licenças de uso comercial e suporte são pagos;

• Não depende somente do JVM para funcionamento. Necessite-se de outros

módulos como as bibliotecas JDK;

• Metodologia sem documentação.

Contudo, o Java ainda é considerado “pesado” para algumas aplicações devido ao overhead

gerado por este sistema.

2.7 Sobre licenças em sistemas embarcados livres

Sobre licenças em sistemas embarcados livres, temos os sistemas que permitem e os sistemas

que não permitem aplicações proprietárias. Entre os sistemas que permitem aplicações

proprietárias, podemos citar: Biblioteca C (LGPL), Bibliotecas compartilhadas (LGPL /

BSD), Aplicações do tipo BSD (podem ser proprietárias) e GPL (podem coexistir sem

modificações com aplicações proprietárias, mas é necessário fornecer o código fonte para o

usuário). Entre os sistemas que não permitem aplicações proprietárias, temos o Kernel Linux

GPL (apesar de ser cada vez menos tolerados aplicações proprietárias, não impõe restrições

de licença em bibliotecas ou aplicações) e bibliotecas compartilhadas ou GPL. (WARFIELD,

1999)(GNU LICENSES, 2007)

Page 39: Monografia Pos Seguranca Sistema Embarcado Openwrt

39

2.8 Software livre em Sistemas Embarcados

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

• Inovação e valores agregados. A possibilidade de focar o uso no diferencial do

produto, por ter vários componentes prontos para uso em grande parte do sistema;

• Implementação das características críticas necessárias. Não é necessário aguardar a

implementação de alguém;

• Inovação constante. As características evoluem algumas vezes antes mesmo que

você precise delas. Logo é possível portar o Linux para uma nova arquitetura

inovadora;

• Qualidade de Software. Desenvolvedores de componentes chaves e códigos são

excelentes programadores;

• Software proprietários. Com isso o desenvolvimento de software é completamente

fechado;

• Controle para os desenvolvedores. Liberdade irrestrita para uso do software, para

tomar decisões a respeito do sistema, para escolher entre várias alternativas

técnicas e sem caixas pretas no sistema que não podem ser corrigidas, modificadas

ou melhoradas;

• Flexibilidade. Possibilidade de personalização, múltiplas aplicações disponíveis,

possibilidade de realização de tarefas especializadas com baixo custo;

• Escolhas. Possibilidades de substituição de componentes mesmo após o término

das etapas do desenvolvimento, muitas possibilidades de escolha para a mesma

função, 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.

Além dessas vantagens citadas, você terá acesso às fontes e interfaces de baixo nível,

conhecendo detalhes a respeito do seu próprio sistema, chances reais de encontrar a causa

principal dos problemas; você terá facilidade de desenvolvimento, possibilidade de modificar

e reusar código existente se estiverem desenvolvendo com uma licença compatível; recursos e

Page 40: Monografia Pos Seguranca Sistema Embarcado Openwrt

40

suportes on-line disponíveis; você tem acesso direto aos desenvolvedores, com possibilidade

de tirar dúvidas em tempo real e entender as tomadas de decisões. (WARFIELD, 1999)

Nos sistemas proprietários, ao final do período de avaliação você tem que pagar ou perder

tudo que implementou, já nas contribuições para projetos abertos, você não tem que fazer

nova implementação em caso de mudança para outra companhia.

Com isso, você tem custos reduzidos, liberdade e iniciativa para iniciar o projeto

imediatamente, sem a necessidade de aprovação da gerência ou compra de software,

requisição de versões de avaliação, etc.

Outra diferença entre sistemas proprietários e projetos abertos, é que no primeiro, sempre vem

com seus próprios termos de licenciamento. Não é necessário perder tempo tentando entende-

los ou procurando por armadilhas antes de aceitá-lo. Já licenças softwares livres (SL) são mais

fáceis de entender. A GPL foi escrita por um programador (e então revista por um advogado).

(GNU LICENSES, 2007)

Vantagens para gerentes de sistemas embarcados:

• Você dispõe de controle em suas decisões técnicas, em suas criações, aplicações e

dispositivos e escolha de fornecedores e vendedores;

• Tem redução de custo, pois não tem royalties para pagar, tem reuso máximo de

códigos e menor tempo para chegar ao mercado;

• Além disso, tem posse de sua plataforma, desde que você respeite os termos da

licença SL, ninguém jamais será capaz de revogar seus direitos para continuar a

usar a sua plataforma ou ferramentas. Sem possibilidade de perder o seu

investimento devido à “violação de licença”.

Vantagens para empresas de sistemas embarcados:

• Inclua todas as vantagens relacionadas para gerentes de sistemas embarcados, além

dessas, menos trabalho para o departamento de compras de software, e menor

custo de litígio;

Page 41: Monografia Pos Seguranca Sistema Embarcado Openwrt

41

• Construir dispositivos abertos baseados SL pode gerar uma imagem muito positiva

da sua empresa para a comunidade de desenvolvedores de SL Facilita a atração de

desenvolvedores talentosos;

• SL garante que seus investimentos de logo prazo são seguros e podem lhe levar

adiante.

Vantagens para os fornecedores de conteúdo:

• Redução no custo de produção, possibilidade de criar e testar a produção com

ferramentas usando os mesmos codecs37 ou bibliotecas que estão nos players

embarcados (codecs sem patentes ou royalties).

Vantagens para consumidores e usuários finais:

• Propriedades dos dados, graças aos formatos abertos e aos SL;

• Qualidade e confiabilidade;

• Segurança e privacidade;

• Dispositivos cheios de características e uso agradável. Biblioteca de software

relativamente grande;

• Sistemas personalizados (se atualização de firmware38 estiver disponível).

Desafios com Software Livre

• Mudança de gerenciamento com atualizações e versões freqüentes de SL (“alvo

móvel”). Críticas a congelar componente cedo demais;

• Freqüentemente precisa-se escolher entre várias soluções. Falta de tempo dos

desenvolvedores para investigar soluções e seguir as novidades do SL;

• Necessidade de escolher soluções duradouras. Necessidade de estimar o tamanho

da comunidade de desenvolvedores e usuários quão ativos é o desenvolvimento, a

importância da tecnologia subjacente, disponibilidade de prestadores de serviço;

37 Codecs. Contração do termo "COder-DECoder". Algoritmo de compressão/descompressão. 38 Firmware. Programação em hardware, programa ou dados de computador que são armazenados

permanentemente em um chip de memória de hardware, como uma ROM ou EPROM.

Page 42: Monografia Pos Seguranca Sistema Embarcado Openwrt

42

• Freqüentemente muitos recursos e documentação espalhados. Requer experiência

em procura.

Desafios com Linux:

• Linux é um sistema operacional de propósito geral, suportando sistemas que vão

do pequeno ao enorme. Desta forma, ele pode não ser ótimo e pode não ser capaz

de bater uma solução personalizada bem ajustada;

• Linux pode requerer uma quantia significativa de ajustes pra fazê-lo suportar os

requerimentos específicos do seu sistema embarcado. Por outro lado, não ser ótimo

pode ser valorizado devido aos custos menores de desenvolvimento;

• Questões legais: validade da GPL no país local, código misto, legitimidade dos

donos da propriedade, patentes de software;

• Excesso de atração: engenheiros desejam usar SL, mesmo quando ele não é a

melhor solução.

2.9 Considerações

Notamos que os sistemas embarcados sofrem restrições que não são tão relevantes como em

sistemas de computação convencionais, principalmente os que dizem respeito a consumo de

energia, disponibilidade de memória e espaço utilizado. Devido as restrições, os sistemas

embarcados precisam ser ágeis e enxutos.

Não existe um sistema embarcado dominante. Existem sistemas que atendem aplicações

específicas. Por exemplo, o OpenWRT se destaca nesse tipo de sistema, pois possui uma

maior abrangência em aplicações e que vem se tornando de fato, uma grande oportunidade de

tornar seu roteador em uma solução completa.

Hoje os sistemas embarcados se encontram em vários elementos de nosso cotidiano e

tendência é de aumentar cada vez mais.

Page 43: Monografia Pos Seguranca Sistema Embarcado Openwrt

43

3. FUNDAMENTOS DE SEGURANÇA DA INFORMAÇÃO

A troca de informações pela internet representa uma forma de sobrevivência para os negócios

nos dias atuais. Pequenas e médias empresas estão cada vez mais utilizando a Internet como

uma forma de expansão. O sistema de Firewall é uma das possibilidades para conseguir

proteger as redes destas corporações conectadas, de ataques. O Linux é um sistema

operacional gratuito que possibilita a configuração 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 máquina contra acessos não

permitidos, tráfego indesejado, proteger serviços que estejam rodando na máquina e bloquear

a passagem de coisas que você ou sua empresa não deseja receber (como conexões 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 são largamente utilizados hoje em dia, sendo imprescindível em basicamente todas

as soluções que utilizam conexão direta ou indireta com a grande rede internet, sendo

primordial e necessário a utilização em máquinas pessoais, junto com o sistema operacional

da mesma, com o grande aumento de técnicas de invasão, de vírus, worms39, spywares40 e

39 Worms. O worm, ou verme, é um programa que, explorando deficiências de segurança de

computadores, propaga-se de forma autônoma, o vírus infecta um programa e necessita deste programa

hospedeiro para se propagar, o worm é um programa completo e não 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 usuário. Também conhecido como Software Espião.

Page 44: Monografia Pos Seguranca Sistema Embarcado Openwrt

44

outros, é praticamente impossível sentir que suas informações digitais estão seguras sem um

firewall. (GARFINKEL, 1996)

O firewall agrupa um conjunto de técnicas como tradução de endereços (Network Address

Translation – NAT), serviços de Proxy41, Filtragem de pacotes e redes virtuais privadas

(Virtual Private Network – VPN) que somadas constroem um sistema definido através de uma

política de segurança 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

três: Dual-Homed Host, Screened Host e Screened Subnet. A seguir, será falado um pouco

sobre cada uma delas, pois são as arquiteturas de firewalls mais comuns, entretanto há muitas

outras variações que podem ser usadas. (RANUM, 1992)

3.2.1 Arquitetura Dual-Homed Host

Esta arquitetura é construída sob uma máquina denominada Dual-Homed Host, que se conecta

as redes interna e externa (Internet), e poderia atuar como roteador entre elas, mas possui a

função de roteamento desabilitada. Assim, sistemas dentro de uma das redes podem se

comunicar com o Dual-Homed Host, mas não podem se comunicar diretamente com outra

41 Proxy. Um servidor que atua como intermediário entre um cliente e outro servidor. Normalmente é

utilizado em empresas para aumentar a performance de acesso a determinados serviços ou permitir que mais de

uma máquina se conecte à Internet. Proxies mal configurados podem ser abusados por atacantes e utilizados

como uma forma de tornar anônimas algumas ações na Internet, como atacar outras redes ou enviar SPAM.

Page 45: Monografia Pos Seguranca Sistema Embarcado Openwrt

45

rede. Portanto, um Dual-Homed Host pode fornecer serviços apenas através de servidores

proxy, ou permitir que usuários conectem-se diretamente a ele.

3.2.2 Arquitetura Screened Host,

Nesta arquitetura, o firewall é composto por um roteador e uma máquina – chamada bastion

host. Os serviços são 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 segurança principal é feita por filtragem de pacotes. A filtragem de pacotes do

screening router é configurada de tal maneira que o bastion host seja a única máquina da rede

interna que recebe conexões da Internet. Portanto, o bastion host é uma máquina que deve

prover um alto nível de segurança, já que poderá sofrer constantes ataques.

3.2.3 Arquitetura Screened Subnet

Nesta arquitetura é adicionada uma camada extra de segurança através 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 vários serviços, permitindo que clientes internos acessem

servidores externos indiretamente. Ele também atua como servidor de email, ou os envia para

determinados hosts da rede interna.

O roteador interno protege a rede interna da Internet e também da rede DMZ. Ele faz a maior

parte da filtragem de pacotes do firewall, permitindo o estabelecimento de serviços a partir de

Page 46: Monografia Pos Seguranca Sistema Embarcado Openwrt

46

clientes internos para servidores da Internet. Estes são serviços que o seu site pode

seguramente fornecer usando filtragem de pacotes ao invés 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 através dele, e, em geral, faz pouca filtragem de pacotes. As

regras de filtragem de pacotes para proteger as máquinas internas deverão ser basicamente as

mesmas em ambos os roteadores. As únicas regras de filtragem de pacotes que são realmente

especiais no roteador externo são aquelas que protegem a rede DMZ. Mas geralmente não é

necessário tanta proteção, pois o bastion host é bem protegido com métodos de segurança de

host.

3.3 Política de Segurança

Uma política de segurança típica para uma empresa conectada a Internet com servidores de

FTP, SMTP, POP, HTTP, HTTPS e DNS, segue os requisitos de segurança abaixo: (ZWICK,

2000)

• Todos os pacotes serão negados, a não ser que seja explicitamente especificado o

contrário;

• Bloqueio de todas as conexões iniciadas externamente, exceto os serviços

permitidos que serão redirecionados para seus respectivos servidores;

• Os serviços de FTP, SMTP, POP utilizarão o IP Security para comunicação;

• Permissão de tráfego ilimitado a partir da interface de loopback;

• Permissão de conexões iniciadas a partir da rede interna;

• Pacotes destinados ao firewall serão descartados exceto os da rede interna para o

serviço ssh;

• A rede interna sofrerá Source Network Address Translation (SNAT42) 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).

Page 47: Monografia Pos Seguranca Sistema Embarcado Openwrt

47

• Impedirá ataques do tipo:

o Syn flood43;

o IP spoofing44;

o Source Routed Options;

o ICMP (redirect e destination unreachable), entre outros.

• Rejeitará pacotes com endereços reservados exceto os definidos em suas

interfaces;

• Pacotes ICMP terão tamanho máximo limitado quando destinados à rede interna.

3.4 Iptables

O iptables é um firewall em nível de pacotes e funciona baseado no endereço/porta de

origem/destino do pacote, prioridade, etc. Ele funciona através da comparação de regras para

saber se um pacote tem ou não permissão 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 também pode ser usado para modificar e monitorar o tráfego da rede, fazer NAT

(masquerading45, source nat, destination nat), redirecionamento de pacotes, marcação de

pacotes, modificar a prioridade de pacotes que chegam/saem do seu sistema, contagem de

bytes, dividir tráfego entre máquinas, criar proteções anti-spoofing, contra syn flood, DoS, e

43 SYN flood. SYN flood ou ataque SYN é uma forma de ataque de negação de serviço (também conhecido

como Denial of Service - DoS) em sistemas computadorizados, na qual o atacante envia uma seqüência de

requisições SYN para um sistema-alvo e não retorna o ACK confirmando a conexão. 44 IP Spoofing. IP spoofing é uma técnica de subversão de sistemas informáticos que consiste em

mascarar (spoof) pacotes IP com endereços remetentes falsificados. 45 Masquerading. O IP Masquerading é uma maneira de utilizar uma máquina 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 doméstica ou do escritório, com computadores usando Windows, MacOS, Linux ou qualquer outro

sistema operacional que ofereça conexão TCP/IP, à Internet, sem grandes investimentos.

Page 48: Monografia Pos Seguranca Sistema Embarcado Openwrt

48

outros. O tráfego vindo de máquinas desconhecidas da rede pode também ser

bloqueado/registrado através do uso de simples regras. As possibilidades oferecidas pelos

recursos de filtragem iptables como todas as ferramentas UNIX maduras dependem de sua

imaginação, pois ele garante uma grande flexibilidade na manipulação das regras de acesso ao

sistema, precisando apenas conhecer quais interfaces o sistema possui, o que deseja bloquear,

o que tem acesso garantido, quais serviços devem estar acessíveis para cada rede, e iniciar a

construção de seu firewall. (GUIA FOCA, 2007)

O iptables ainda tem a vantagem de ser modularizável, funções podem ser adicionadas ao

firewall ampliando as possibilidades oferecidas. Este é um firewall que tem possibilidades de

gerenciar tanto a segurança em máquinas isoladas como roteamento em grandes organizações,

onde a passagem de tráfego entre redes deve ser minuciosamente controlada.

Um firewall não funciona de forma automática (instalando e esperar que ele faça as coisas por

você), é necessário pelo menos conhecimentos básicos de rede tcp/ip, roteamento e portas

para criar as regras que farão a segurança de seu sistema. A segurança do sistema depende do

controle das regras que serão criadas por você, as falhas humanas são garantia de mais de

95% de sucesso nas invasões.

Enfim o iptables é um firewall que agradará tanto a pessoas que desejam uma segurança

básica em seu sistema, quando administradores de grandes redes que querem ter um controle

minucioso sobre o tráfego que passam entre suas interfaces de rede (controlando tudo o que

pode passar de uma rede a outra), controlar o uso de tráfego, monitoração, etc.

3.4.1 Características do iptables

As características do iptables são:

• Especificação de portas/endereço de origem/destino;

• Suporte a protocolos TCP/UDP/ICMP (incluindo tipos de mensagens ICMP);

Page 49: Monografia Pos Seguranca Sistema Embarcado Openwrt

49

• Suporte a interfaces de origem/destino de pacotes;

• Manipula serviços de proxy na rede;

• Tratamento de tráfego dividido em chains (para melhor controle do tráfego que

entra/sai da máquina e tráfego redirecionado);

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

• Muito rápido, estável e seguro;

• Possui mecanismos internos para rejeitar automaticamente pacotes duvidosos ou

mal formados;

• Suporte a módulos externos para expansão das funcionalidades padrões oferecidas

pelo código de firewall;

• Suporte completo a roteamento de pacotes, tratadas em uma área diferente de

tráfegos padrões;

• Suporte a especificação de tipo de serviço para priorizar o tráfego de determinados

tipos de pacotes;

• Permite especificar exceções para as regras ou parte das regras;

• Suporte a detecção de fragmentos;

• Permite enviar alertas personalizados ao syslog sobre o tráfego aceito/bloqueado;

• Redirecionamento de portas;

• Masquerading;

• Suporte a SNAT (modificação do endereço de origem das máquinas para um único

IP ou faixa de IPs);

• Suporte a DNAT (modificação do endereço de destino das máquinas para um

único IP ou fixa de IPs);

• Contagem de pacotes que atravessaram uma interface/regra;

• Limitação de passagem de pacotes/conferência de regra (muito útil para criar

proteções contra syn flood, ping flood, DoS, etc).

Page 50: Monografia Pos Seguranca Sistema Embarcado Openwrt

50

3.4.2 Conhecendo as tabelas

Existem três tabelas possíveis de serem utilizadas no iptables (IPTABLES, 2007): filter, nat e

mangle. A tabela filter, é a tabela padrão, utilizada nos tráfegos de dados comuns, sem

ocorrência de NAT. A tabela nat, é utilizada para dados que geram outra conexão (exemplo:

masquerading, source nat, destination nat, port forwarding, proxy transparente). A tabela

mangle, é utilizada para alterações especiais de pacotes (exemplo: modificar o tipo de serviço

– TOS). Na prática, a tabela mangle não é muito utilizada.

Cada tabela possui chains, e através delas podemos especificar a situação do tratamento dos

pacotes, seja qual tabela for.

As chains da tabela filter são:

INPUT – Consultado para dados que chegam à máquina. Exemplo, pacotes cujo destino final

é a própria máquina firewall.

OUTPUT – Consultado para dados que saem da máquina. Exemplo, pacotes que saem da

máquina firewall.

FORWARD – Consultado para dados que são redirecionados para outra interface de rede ou

outra máquina. Exemplo, pacote que atravessa a máquina firewall, cujo destino é uma outra

máquina. Este pacote não sai da máquina firewall e sim de outra máquina da rede ou fonte.

Neste caso a máquina firewall está repassando o pacote.

As chains da tabela nat são:

PREROUTING – Consultado para pacotes que precisam ser modificados antes de serem

roteados. É o chain ideal para realização de DNAT e redirecionamento de portas.

POSTROUTING - Consultado quando os pacotes precisam ser modificados após o

tratamento de roteamento. É o chain ideal para realização de SNAT e IP Masquerading.

Page 51: Monografia Pos Seguranca Sistema Embarcado Openwrt

51

OUTPUT - Consultado quando os pacotes gerados localmente precisam ser modificados

antes de serem roteados. Este chain somente é consultado para conexões 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 critérios de ataques, e como permitir

acesso a determinados serviços. Maiores descrições diretamente no script.

1: IPTABLES=/sbin/iptables

2:

3: # Protege contra os "Ping of Death":

4: $ IPTABLES -A FORWARD -p icmp --icmp-type echo-request

-m limit --limit 1/s -j ACCEPT

5:

6: # Protege contra os ataques do tipo "Syn-flood, DoS, etc":

7: $IPTABLES -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

8:

9: # Permite repasse (NAT,DNAT,SNAT) de pacotes com o estado

10: # e de estabelecidos e relacionados:

11: $ IPTABLES -A FORWARD -m state --state

ESTABLISHED,RELATED -j ACCEPT ESTABLISHED,RELATED -j

ACCEPT

12:

13: # Loga os pacotes mortos por inatividade:

Page 52: Monografia Pos Seguranca Sistema Embarcado Openwrt

52

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

--limit-burst 3 -j LOG

15:

16: # Protege contra port scanners avançados (ex.: nmap):

17: $ IPTABLES -A FORWARD -p tcp --tcp-flags

SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

18:

19: # Estou redirecionando a porta ZZ do ip

20: # xxx.xxx.xxx.xxx para a porta zz do ip

21: # yyy.yyy.yyy.yyy.

22: # Iptables na inicialização do sistema

23: $ iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx

-p 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 inicialização 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: $ mv firewall /etc/init.d/

2: $ chmod +x /etc/init.d/firewall

3: $ cd /etc/rc2.d/

4: $ ln -s /etc/firewall.sh /etc/rc2.d/S99firewall

Quadro 2: Comando para adicionar o firewall à inicialização automática.

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. Serão criados e/ou modificados

três arquivos, firewall.sh, que carregará as regras propriamente ditas, hosts, que possuirá a

Page 53: Monografia Pos Seguranca Sistema Embarcado Openwrt

53

relação de nome versus ip de cada maquina que deverá ser conhecida pelo roteador, fwlib.sh,

que é a biblioteca de funções utilizadas pelo firewall.sh, conforme quadro 3.

1: #!/bin/sh

2: . /etc/fwlib.sh

3: flush_firewall

4:

5: ### Ports accessible on the router from the WAN

6: # allow_tcp_port 22 # SSH

7: # allow_tcp_port 465 # HTTPS

8:

9: ### Ports accessible from specific hosts to the

10: # router from the WAN

11: allow_tcp_port_fromhost 80 remote_access # HTTP

12: allow_tcp_port_fromhost 22 remote_access # HTTP

13:

14: ### Ports accessible to client machines.

15: # forward_port 22 server

16: forward_port 9100 printer_01

17:

18: ### if we really need _all_ ports...

19: # register_dmz server

20:

21: # forward workstation port for application

22: # development forward_port 8080 workstation1

23:

24: # forward a few utility port-ranges to make it easier

25: # to deal with bittorrent configurations and the like

26: # forward_port 10000:10099 workstation1

27: # forward_port 10100:10199 laptop1

28: # forward_port 10200:10299 laptop2

29:

30: ### Translate port for client machines.

31: translate_port 8080 printer_01 80

Page 54: Monografia Pos Seguranca Sistema Embarcado Openwrt

54

32:

33: ### Trusted hosts, full access to router

34: # 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, não é

obrigatório 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: 127.0.0.1 localhost OpenWrt

2: 192.168.1.100 server

3: 192.168.1.50 workstation1

4: 192.168.1.80 laptop1

5: 192.168.1.81 laptop2

6: 195.xxx.xxx.xxx my_support_company

7: 192.168.1.55 printer_01

8: 195.xxx.xxx.xxx remote_access

Quadro 4: Arquivo: /etc/hosts

No quadro 5 temos as funções utilizadas no script principal de firewall, citada no quadro 3.

1: #!/bin/sh

2:

3: . /etc/functions.sh

4:

5: WAN=$(nvram get wan_ifname)

6: LAN=$(nvram get lan_ifname)

7:

8: flush_firewall () {

9: iptables -F input_rule

10: iptables -F output_rule

11: iptables -F forwarding_rule

12: iptables -t nat -F prerouting_rule

13: iptables -t nat -F postrouting_rule

Page 55: Monografia Pos Seguranca Sistema Embarcado Openwrt

55

14: }

15:

16: ### BIG FAT DISCLAIMER

17: ### The "-i $WAN" literally means packets that came

18: ### in over the $WAN interface;

19: ### this WILL NOT MATCH packets sent from the LAN to

20: ### the WAN address.

21:

22: allow_tcp_port () {

23: ALLOWPORT=$1

24: 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: allow_tcp_port_fromhost () {

29: ALLOWPORT=$1

30: ALLOWHOSTNAME=$2

31: ALLOWHOST=`sucky_resolve $ALLOWHOSTNAME`

32: echo "Allowing tcp from $ALLOWHOSTNAME to

port $ALLOWPORT"

33: iptables -t nat -A prerouting_rule -i $WAN -p

tcp -s $ALLOWHOST --dport $ALLOWPORT -j ACCEPT

34: iptables -A input_rule -i $WAN -p

tcp -s $ALLOWHOST --dport $ALLOWPORT -j ACCEPT

35: }

36:

37: sucky_resolve () {

38: HOSTNAME=$1

39: ###

40: grep $HOSTNAME /etc/hosts | awk '{ print $1 }'

41: }

42:

Page 56: Monografia Pos Seguranca Sistema Embarcado Openwrt

56

43: forward_port() {

44: ALLOWPORT=$1

45: ALLOWHOSTNAME=$2

46: ALLOWHOST=`sucky_resolve $ALLOWHOSTNAME`

47: echo "FORWARDING $ALLOWPORT TO

$ALLOWHOSTNAME ($ALLOWHOST)"

48: iptables -t nat -A prerouting_rule -i $WAN -p

tcp --dport $ALLOWPORT -j DNAT --to $ALLOWHOST

49: iptables -A forwarding_rule -i $WAN -p

tcp --dport $ALLOWPORT -d $ALLOWHOST -j ACCEPT

50: }

51:

52: translate_port() {

53: ALLOWPORT=$1

54: ALLOWHOSTNAME=$2

55: ALLOWHOSTPORT=$3

56: ALLOWHOST=`sucky_resolve $ALLOWHOSTNAME`

57: echo "TRANSLATING $ALLOWPORT TO $ALLOWHOSTNAME

($ALLOWHOST:$ALLOWHOSTPORT)"

58: iptables -t nat -A prerouting_rule -i $WAN -p

tcp --dport $ALLOWPORT -j DNAT –to

$ALLOWHOST:$ALLOWHOSTPORT

59: iptables -A forwarding_rule -i $WAN -p tcp

--dport $ALLOWHOSTPORT -d $ALLOWHOST -j ACCEPT

60: }

61:

62:

63: trusted_host (){

64: ALLOWHOSTNAME=$1

65: TRUSTEDHOST=`sucky_resolve $ALLOWHOSTNAME`

66: iptables -t nat -A prerouting_rule -i $WAN -p

tcp -s $TRUSTEDHOST -j ACCEPT

Page 57: Monografia Pos Seguranca Sistema Embarcado Openwrt

57

67: iptables -A input_rule -i $WAN -p tcp

-s $TRUSTEDHOST -j ACCEPT

68: }

Quadro 5: Arquivo: /etc/fwlib.sh

3.5 Considerações

O iptables implementa vetores de regras na memória 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 são utilizadas respectivamente para filtragem de

pacotes, tradução de endereços de rede (Network Address Translation) e manipulação dos

pacotes.

A troca de informações sobre a Internet representa uma questão de sobrevivência para os

negócios nos dias atuais. Pequenas e médias empresas estão cada vez mais utilizando a

Internet como uma forma de expansão. O sistema de firewall é uma das possibilidades para

conseguir proteger as redes destas corporações conectadas, de ataques. O Linux é um sistema

operacional gratuito que possibilita a configuração 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 utilização e configuração de um firewall Linux,

em um sistema embarcado, possibilitando ao leitor a customização das regras propostas.

Page 58: Monografia Pos Seguranca Sistema Embarcado Openwrt

58

4. CONHECENDO O LINKSYS WRT54G

O Access Point46 roteador Wi-Fi47 Linksys WRT54G reúne 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 divisão de equipamentos soho48 da Cisco,

renomada fabricante mundial de equipamentos de rede. Destina-se a compartilhar sua rede

local ethernet com clientes Wi-Fi e também distribuir sua conexão de banda larga entre as

diversas máquinas de uma rede (LINKSYS, 2007).

Entre suas características de funcionamento podemos encontrar as funções normais para um

aparelho de sua categoria. Ele trabalha como roteador para sua conexão web de banda larga

distribuindo pacotes entre vários clientes da rede. Suas configurações permitem ajustar o

roteador para efetuar o login via PPPoE49 sobre o modem, dispensando o procedimento

manual que você executa hoje para poder navegar na web, caso seja este método de

autenticação usado por seu sistema de banda larga. Ele também pode estabelecer uma

conexão direta pelo modem e receber o endereço IP diretamente do servidor de seu provedor

de banda larga, via DHCP50. Também é possível utilizar no modo bridge51, ou ip estático.

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. 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 e abrindo novas oportunidades para EAD por meio de telecomunicações. 48 Soho. Divisão da Cisco para desenvolvimento de equipamentos para uso doméstico e pequenas redes. 49 PPPoE. É uma especificação para conectar os usuários em um ethernet a Internet através de um meio,

tal como uma única linha do DSL, de um dispositivo wireless ou de um modem de cabo broadband comum.

Todos os usuários sobre o ethernet compartilham de uma conexão comum, assim que dos princípios do ethernet

que suportam usuários múltiplos em uma LAN com os princípios do PPP, que se aplicam às conexões em série. 50 DHCP. Dynamic Host Configuration Protocol, é um protocolo de serviço TCP/IP seguro, que oferece

configuração dinâmica com concessão de endereços IP de host e distribui outros parâmetros de configuração

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.

Page 59: Monografia Pos Seguranca Sistema Embarcado Openwrt

59

O equipamento também permite ajustar características avançadas de gerenciamento de rede,

como definir horários nos quais as conexões externas estarão disponíveis e quais portas ou

serviços podem ser utilizados. Poucos equipamentos dessa classe possuem tais ajustes. As

funções de gerenciamento de portas são avançadas, mas ainda assim a documentação do

equipamento é farta e permite o entendimento mesmo para usuários pouco habituados aos

procedimentos técnicos das redes. É possível definir em detalhes para qual IP interno da rede

cada porta será direcionada, permitindo que serviços específicos sejam disponibilizados para a

web a partir de servidores da rede local sem colocar em risco o resto da rede. Usuários

avançados irão apreciar as funções de VPN que são amigáveis e acessíveis. Há também

suporte para que o roteador faça a atualização de IP em serviços de DNS dinâmico

(DynDNS.org e TZO.com) para que você sempre encontre sua rede quando estiver em

trânsito, não importando qual IP sua conexão usa naquele momento.

A parte wireless do dispositivo merece destaque pela simples configuração. Apenas

pressionando um botão 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 conexão com bom nível de sinal e rápidas transmissões de dados. Além da

simplicidade de configuração o equipamento fornece uma interface avançada que permite

configurar, desde os endereços MAC que terão permissão ou proibição de acesso até

parâmetros avançados do wireless.

Outro ponto alto do equipamento é a facilidade para salvar suas configurações em arquivos

locais de alguma máquina na rede e poder restaurá-las posteriormente. Isso permite que você

possa explorar diferentes configurações de serviço e acesso e depois retornar ao estado

original de sua rede com apenas alguns cliques. Um destaque fica para o fácil 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 várias características que originalmente ele não possui. Buscando pelo modelo

do dispositivo você pode encontrar vários firmwares de terceiros que adicionam coisas como

seções SSH e até mesmo VoIP ao WRT54G.

Page 60: Monografia Pos Seguranca Sistema Embarcado Openwrt

60

As figuras 1 e 2 apresentam a imagens externa do Linksys WRT54G e de sua placa-mãe

(motherboard), respectivamente.

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

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

Page 61: Monografia Pos Seguranca Sistema Embarcado Openwrt

61

O hardware deste sistema é baseado numa motherboard que integra todos os componentes

funcionais: CPU, RAM, memória FLASH52, transdutores e switch Ethernet e transdutor

wireless. Maiores informações serão visualizadas na tabela 1.

Tabela 1: Características de hardware do sistema embarcado Linksys WRT54G.

Ainda existe o uClinux. Este sistema foi desenvolvido com base num kernel Linux 2.0 com

otimizações para sistemas embarcados sem Memory Management Unit (MMU) que passam

pela redução da necessidade de recursos. Por exemplo, este sistema não possui proteção de

memória entre processos, o que pode ser um problema de segurança visto que qualquer

processo pode acessar o espaço de memória de qualquer outro processo. Por outro lado, não

existe uma chamada de sistema fork() tendo esta chamada sido substituída pela chamada

vfork() que obriga a que o processo pai espere pela terminação do processo filho para

continuar a sua execução. Este tipo de funcionamento impossibilita a utilização em sistemas

multiusuário.

4.1 Trabalhos e soluções correlatas

O Linksys WRT54G é um dispositivo de rede de destaque, pois foi o primeiro que teve o

código fonte do firmware aberto sob a licença GNU GPL. Isto permitiu a evolução e

customização do firmware padrão, pois os profissionais da área puderam adaptar o sistema às 52 Memória Flash. Um tipo de chip de memória que retém as informações quando a energia elétrica é

interrompida (memória não-volátil). Usado em alguns computadores para armazenar as informações relativas ao

BIOS.

Page 62: Monografia Pos Seguranca Sistema Embarcado Openwrt

62

suas necessidades. Com isso, surgiram novos projetos de desenvolvimento e evolução de

firmwares customizados para o Linksys WRT54G. Inicialmente as customizações foram

projetadas para o Linksys WRT54G, entretanto, é possível utilizar o firmware em Embora as

customizações do firmware em outros tipos de dispositivos baseados no Linux, tais como a

série de equipamentos da marca Buffalo e NetGear.

Lista dos principais projetos de customização do firmware do Linksys WRT54G baseados no

firmware padrão:

• DD-WRT (http://www.dd-wrt.com/) – Versões pagas e livres disponíveis;

(Linux/GPL)

• HyperWRT Thibor (http://www.thibor.co.uk/) – Baseados nos firmwares do

WRT54GS, junto do HyperWRT +tofu e nas outras modificações do Thibor;

• OpenWRT (http://openwrt.org/) – Firmware com o sistema de arquivos

SquashFS53 para gerenciamento de pacotes. Destaque desta monografia;

(Linux/GPL)

• Sveasoft (http://www.sveasoft.com/) – Versões pagas e livres disponíveis. As

ultimas versões estão disponíveis através de inscrições;

• Tomato (http://www.polarcloud.com/tomato) – Firmware livre que caracterizam

pelo número de recentes inovações web tais como Ajax54 e de SVG55.

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 é necessário

pouco overhead. Hoje este sistema de arquivos esta estável, e já foi testado em PowerPC, em i586, em Sparc e

em arquiteturas ARM. 54 Ajax. Asynchronous JavaScript and XML, é uma técnica de desenvolvimento de aplicações web

interativas. A intenção é fazer com que as paginas web respondam trocando pequenas quantidades de dados em

background, de modo que não necessite recarregar toda a pagina a cada solicitação do usuário. 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 inglês como Gráficos

Vetoriais Escaláveis. Trata-se de uma linguagem XML para descrever de forma vetorial desenhos e gráficos

bidimensionais. Umas das principais características dos gráficos vetoriais é que não perdem a qualidade ao

serem ampliados. A grande diferença entre o SVG e outros formatos vetoriais é o fato de ser um formato aberto,

não sendo propriedade de nenhuma empresa.

Page 63: Monografia Pos Seguranca Sistema Embarcado Openwrt

63

disponível em Wikibooks56. (Linux/GPL)

Lista de outros projetos que se basearam nos projetos principais:

• BatBox – Distribuição baseada na RAM para experimentos, não 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 captura57 que funciona em WRT54G e em outras

plataformas, disponível sob GPL;

• CoovaAP (http://coova.org/wiki/index.php/CoovaAP) – Baseado no firmware

OpenWRT especifico para hotspots58, possui o patch Coova com Chillispot e

Wifidog (GPL);

• Earthlink's IPv6 Firmware – Adicionado suporte ao IPv659 no firmware original

Linksys (versão beta-test);

• EWRT – Enhanced WRT, com integração 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 alemão com suporte a redes Mesh60 com OLSR61, baseado no

56 Wikibooks. A Wikilivros (do Inglês Wikibooks) é dedicada ao desenvolvimento e livre disseminação de

livros e textos didáticos de conteúdo aberto. Também faz parte da Fundação Wikimedia como a Wikipédia. 57 Portal de Captura. Captive Portal. É uma técnica utilizada onde clientes HTTP de uma rede são

forçados a visualizar uma pagina web especial, normalmente para autenticação, antes de poder navegar

normalmente na internet. 58 Hotspot. Um ponto ou uma área de acesso Wi-Fi, particularmente para conectar-se a Internet. 59 IPv6. É a versão 6 do protocolo IP. O IPv6 tem como objetivo substituir o padrão anterior, o IPv4, que

só suporta cerca de 4 bilhões ( 4 * 109) de endereços, enquanto que o IPv6 suporta ( 3.4 * 10^38 ) endereços. A

previsão atual para a exaustão de todos os endereços IPv4 livres para atribuição a operadores é de Janeiro de

2014, o que significa que a transição da versão do IPv4 para o IPv6 é inevitável num futuro próximo. O governo

dos Estados Unidos da América determinou que todas as suas agências federais devem suportar o protocolo IPv6

até 2008. 60 Redes Mesh. É uma maneira de distribuir dados, voz e instruções entre nós. Permite conexões e a

reconfiguração contínua em torno dos trajetos obstruídos do nó até que uma conexão possa ser estabelecida. Nas

redes Mesh, cada nó trabalha como propagador do sinal do ponto de acesso.

Page 64: Monografia Pos Seguranca Sistema Embarcado Openwrt

64

OpenWrt;

• Meraki – Wi-Fi AP para redes Mesh desenvolvido através do projeto de Roofnet,

baseado em OpenWRT;

• OpennetFirmware – Firmware baseado no OpenWRT e em partes de Freifunk;

• PacketProtector – Baseado no OpenWRT, distribuição enfatizando a segurança

incluindo facilidades de IDS62, IPS63, VPN, e web antivírus;

• TinyPEAP – Adicionado a facilidade de autenticação de segurança wireless no

firmware Linksys padrão;

• WiFi-Box (http://sourceforge.net/projects/wifi-box/) – (Sem documentação

disponível em Abril de 2007);

• Neighbornode;

• Tarifa (http://tarifa.sourceforge.net/) – Baseado no firmware padrão 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/) – Solução hotspot para residência ou

pequenas empresas. Caracteriza-se pelo faturamento no cartão de crédito.

Funciona na plataforma OpenWRT;

• Wirds.net – Um projeto que utiliza o firmware Freifunk como base, com o portal

de captura do Chillispot e autenticação gratuita no Worldspot.net;

• X-Wrt End user extensions para OpenWRT – Fornece uma agradável interface

web para gerenciamento do OpenWRT. (Linux/GPL);

61 OLSR. Optimized Link State Routing Protocol. É um protocolo para conectar as redes ad-hoc móveis,

também 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 então uma tabela otimizada de roteamento. 62 IDS. Intrusin Detection System, em português Sistema de Detecção de Intrusão, são 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 serviços. 63 IPS. Intrusion Prevention System, um sistema da prevenção de intrusão é um dispositivo de segurança e

controle de acesso das atividades para proteger computadores de explorações. A tecnologia da prevenção de

intrusão é considerada por alguns ser uma extensão da tecnologia da detecção do intrusão (IDS) mas é realmente

um outro sistema de controle de acesso, como um firewall da camada de aplicação.

Page 65: Monografia Pos Seguranca Sistema Embarcado Openwrt

65

Projetos descontinuados:

• HyperWRT – Firmware original para ligação rápida projetada por Avenger 2.0

permanecendo perto do firmware oficial WRT54G e WRT54GS, porem

adicionada características como transmissão power, port triggers, scripts, Telnet,

etc.

o HyperWRT +tofu – Baseado no firmware WRT54GS, HyperWRT e com

algumas customizações;

o Rupan HyperWRT – Baseado no firmware WRT54GS e HyperWRT.

4.2 Considerações

O Linksys WRT54G é um grande exemplo da utilização de Linux em sistemas embarcados. É

um ponto de acesso sem fios IEEE64 802.11b/g (wireless access point) com função 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 Eletrônicos, Institute of Electrical and Electronics

Engineers, ou IEEE (pronuncia-se I-3-E ) é uma organização profissional sem fins lucrativos, fundada nos

Estados Unidos. É a maior (em número de sócios) organização profissional do mundo. O IEEE foi formado em

1963 pela fusão do Instituto de Engenheiros de Rádio (IRE) com o Instituto Americano de Engenheiros

Eletricistas (AIEE). Um de seus papéis mais importantes é o estabelecimento de padrões para formatos de

computadores e dispositivos.

Page 66: Monografia Pos Seguranca Sistema Embarcado Openwrt

66

5. UMA PROPOSTA DE APLICAÇÃO DO OPENWRT EM REDES DE

PEQUENO E MÉDIO PORTE

Como visto conceitualmente, é possível – e as vezes necessário – a personalização do

firmware padrão do roteador Linksys WRT54G, possibilitando uma abordagem mais

especializada, criando possibilidades de substituir em pequenas e médias empresas servidores

NAT, Proxies e Firewalls, tudo apenas com a solução 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

instalação até sua configuração.

5.1 Instalando o OpenWRT e atualizando o firmware do roteador WRT54G

O sistema embarcado OpenWRT possui diversas compilações 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

versão 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/.

Page 67: Monografia Pos Seguranca Sistema Embarcado Openwrt

67

5.1.1 Equipamento utilizado:

O equipamento utilizado nesta monografia é o Linksys WRT54G v2.2 / CPU 200Mhz, e

roteadores Linksys WRT54G versões anteriores a v.4 são suportadas por esse mesmo

firmware.

5.1.2 Preparando para atualizar:

Reinicie o Access Point, deixando o mesmo com ip padrão "192.168.1.1".

Conecte o cabo de rede na porta número 1 "RJ45" do roteador.

Configure a placa de rede do micro que vai acessar o Access Point como DHCP para obter ip

automático.

ATENÇÃO: Não faça esse procedimento com outros roteadores que não sejam WRT54G,

pois o processo envolve habilitar o boot_want=on e o firmware é outro.

5.1.3 Atualizando

Mostraremos neste tópico as varias formas de atualizar seu roteador Linksys WRT54G, sendo

possível a atualização nas diversas plataformas, e mostraremos no Windows e Linux via

TFTP, ou Windows e Linux via browser.

Page 68: Monografia Pos Seguranca Sistema Embarcado Openwrt

68

5.1.3.1 Atualização por TFTP (Windows)

Se você é usuário Windows baixe o programa abaixo e utilize-o para atualizar o firmware

seguinte as instruções.

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

Execute o programa “tftp” e coloque as informações:

Server: 192.168.1.1

Por padrão do roteador o campo “Login” fica em branco, no campo “Password” a senha é

“admin”, caso possua outra senha utilize-a.

File: [...] no botão procure o firmware

Upgrade [click]

Aguarde a atualização, a luz power fica piscando, espere ela parar de piscar para concluir a

atualização, não interrompa.

5.1.3.2 Atualização por TFTP (Linux)

Caso seja usuário Linux é necessário verificar se já não possui o TFTP instalado, não citarei

os comandos de verificação pois difere de acordo com as distribuições.

No quadro 6 verificaremos os comandos utilizados para abrir o TFTP cliente, mostraremos

também a forma correta de conectar e enviar o arquivo ao roteador.

Page 69: Monografia Pos Seguranca Sistema Embarcado Openwrt

69

1: $ tftp

2: tftp> connect 192.168.1.1

3: tftp> put openwrt-wrt54g-squashfs.bin

4: Sent 2746882 bytes in 6.8 seconds

5: tftp> quit

Quadro 6: Atualização por TFTP.

Aguarde a atualização, a luz power fica piscando, espere ela parar de piscar para concluir a

atualização, não interrompa.

5.1.3.3 Atualização por browser (Firefox ou IExplorer)

Entre no navegador na página de configuração 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 atualização do firmware

pela interface web padrão do roteador, esta é a maneira mais simples de fazer a atualização.

Page 70: Monografia Pos Seguranca Sistema Embarcado Openwrt

70

Figura 3: Ilustração da atualização via browser.

Aguarde a atualização, a luz power fica piscando, espere ela parar de piscar para concluir a

atualização, não interrompa.

5.2 Configurando OpenWRT

Neste tópico será descrito as varias formas de acessar seu roteador Linksys WRT54G, sendo

possível 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 atualização, é precisamos desligar o equipamento e ligar novamente, para que

consigamos passar para o próximo passo, que é colocar senha.

Pronto, atualizado/reiniciado, agora vamos acessar via telnet para colocar senha no root para

podermos continuar com nossas configurações.

Page 71: Monografia Pos Seguranca Sistema Embarcado Openwrt

71

1: $ telnet 192.168.1.1

Quadro 7: Atualização 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 não

é solicitada senha, porem a mensagem adverte da importância 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 obteríamos ao acessar o OpenWRT via telnet.

Page 72: Monografia Pos Seguranca Sistema Embarcado Openwrt

72

Por questões de segurança coloque uma senha maior que 5 caracteres, repita a senha duas

vezes para confirmar a alteração. Após 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 obteríamos ao conectar no OpenWRT via Putty(SSH).

Através 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.

Page 73: Monografia Pos Seguranca Sistema Embarcado Openwrt

73

Se for usuário do Linux:

1: $ ssh 192.168.1.1

Quadro 9: Comando para acessar por ssh.

Os usuários Linux não necessitam do Putty, o acesso pode ser feito pelo próprio 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 memória.

Veja todos os parâmetros configurados utilizando o comando mostrado no quadro 11.

1: $ nvram show | more

Quadro 11: Comando para visualizar o conteúdo da memória.

Configurando o roteador como ssid “Wserver”, modo AP, canal 11, como demonstrado os

comandos no quadro 12.

Page 74: Monografia Pos Seguranca Sistema Embarcado Openwrt

74

1: $ nvram set wl0_ssid=Wserver

2: $ nvram set wl0_mode=ap

3: $ nvram set wl0_channel=11

Quadro 12: Comando para setarmos as configurações do roteador.

Caso queira checar o conteúdo das variáveis basta utilizar o comando “get” como

demonstrado no quadro 13.

1: $ nvram get wl0_channel

2: 11 Retorno do comando

Quadro 13: Comando para pegar a informação do canal utilizado.

Lembrando que temos que gravar as informações pois podemos desligar o roteador e perder

essas informações aplicadas, como mostrado no quadro 14, utilize este comando com

moderação, memórias 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 informações setadas na memória.

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

no quadro 15.

1: $ nvram set wan_proto=static

2: $ nvram set wan_ipaddr=200.200.0.2

3: $ 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

configurações, conforme os quadros 16, 17 e 18.

Page 75: Monografia Pos Seguranca Sistema Embarcado Openwrt

75

1: $ nvram get lan_proto

2: Static Retorno do comando

Quadro 16: Pegando a informação do método de utilizado na configuração ip.

1: $ nvram get lan_ipaddr

2: 192.168.1.1 Retorno do comando

Quadro 17: Pegando a informação do ip da LAN.

1: $ nvram get lan_netmask

2: 255.255.255.0 Retorno do comando

Quadro 18: Pegando a informação da mascara da LAN.

Pronto, finalizamos nossa configuração, agora vamos salvar, para que as configurações feitas

permaneçam após o boot com o comando do quadro 19.

1: $ nvram commit

Quadro 19: Comando para gravar as informações setadas na memória.

Agora faremos a atualização 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 seção

de arquivos de configurações e será utilizada a legenda abaixo para demonstrar os locais onde

foram feitas alterações, inclusões ou foi mantido o script original do site.

Original Incluído Alterado

1: #!/bin/bash

2: #======================= *** ========================

3: #

4: # Autor: Fabricio Beltram

5: # Data de Criação: 16/11/2006

6: #

7: #=========================================================

8: # Script: Firewall - iptables

Page 76: Monografia Pos Seguranca Sistema Embarcado Openwrt

76

9: #

10: #====================================================

11: # Descrição: Este script ira limpar todas as

12: # regras de firewall e subir as novas regras de

13: # acordo com as regras do script - este script possui

14: # a função de flush que e' a limpeza das regras e faz

15: # um full NAT como e' conhecido por ai. O script esta

16: # bem comentado para facilitar eventuais consultas e

17: # alterações.

18: #====================================================

19: # Este script esta sobre licença GPL pode ser

20: # alterado e distribuído livremente.

21: #====================================================

22: # Versão: 1.01

23: #====================================================

24: # Alterações Realizadas:

25: # - Correções dos comentários

26: # - Ajustes de IPs e aliases.

27: # - Regra de liberação de TELNET para a rede local

28: # - Regra de liberação de acesso a TELNET

29: # - Regra de estabilização e relacionamento de

30: # conexões

31: # Autor: Felipe Deboni

32: # Data : 15/12/2006

33: #

34: #####################################################

35:

36: #MODPROBE

37: # Carrega os módulos de iptables + NAT no Kernel

38: # Estas linhas não são necessárias se você já tem os

39: # módulos do kernel compilado.

40: #

41: modprobe ip_nat_ftp

42: modprobe iptable_nat

Page 77: Monografia Pos Seguranca Sistema Embarcado Openwrt

77

43:

44: # ============================

45: # === Declaração das variáveis

46: # ============================

47: # Definir a variável INTRA com a interface que esta

48: # ligada com a rede interna/local.

49: # Ex

50: # INTRA=eth0

51: INTRA=eth1

52:

53: # Definir a variável INTER com a interface que esta

54: # ligada com a rede externa (INTERNET)

55: # Ex

56: # INTER=eth1

57: # INTER=ppp0

58: INTER=eth0

59:

60: # Definir a variável LAN com o range de IP utilizado

61: # por sua rede local, não esquecer mascara da rede

62: # Ex

63: # LAN=10.0.0.0/24

64: LAN=192.168.1.0/24

65:

66: # ====================== *** ========================

67: # Inicia as regras

68: # Verifica se o parâmetro = flush

69: # Se igual, então, limpa todas as regras e seta as

70: # políticas padrões para ACCEPT e também deixa a rede

71: # como full nat. "Sem Bloqueios"

72: if [ "$1" = "flush" ]; then

73:

74: echo "Limpando as regras, setando as Políticas

padrões..."

75:

Page 78: Monografia Pos Seguranca Sistema Embarcado Openwrt

78

76: # Seta as políticas padrões para accept

77: iptables -P INPUT ACCEPT

78: iptables -P FORWARD ACCEPT

79: iptables -P OUTPUT ACCEPT

80: iptables -F

81: iptables -t nat -F

82: iptables -X

83: iptables -Z

84:

85: # Faz o mascaramento completo da rede

86: iptables -t nat -A POSTROUTING -o $INTER

-j MASQUERADE

87: echo "Firewall - Desativado... Mascaramento

completo."

88:

89: # ELSE - Se o parâmetro != flush

90: else

91:

92: echo "Firewall iptables starting..."

93:

94: # Seta as políticas padrões para DROP Bloqueia

95: # tudo que não for OUTPUT

96: iptables -P INPUT DROP

97: iptables -P FORWARD DROP

98: iptables -P OUTPUT ACCEPT

99: iptables -F

100: iptables -t nat -F

101: iptables -X

102: iptables -Z

103:

104: #======================***======================

105: # Inicio das regras que já defino como padrão

106: # Liberação do loopback

107: iptables -A INPUT -i lo -j ACCEPT

Page 79: Monografia Pos Seguranca Sistema Embarcado Openwrt

79

108:

109: # ======== *** =========

110: # INTERNET ---> FIREWALL

111: # Setaremos as portas q serão acessíveis via

112: # internet

113:

114: # SSH - Para mim imprescindível

115: # Obs: comente esta linha para não aceitar ssh

116: iptables -A INPUT -p tcp --dport 22 -j ACCEPT

117:

118: # PING - Se não quiser ser alvo de ping mantenha

119: # comentadas as 2 linhas abaixo

120: # iptables -A INPUT -p icmp --icmp-type 0 -j

ACCEPT

121: # iptables -A INPUT -p icmp --icmp-type 8 -j

ACCEPT

122:

123: # HTTP/HTTPS - Apache e outros webservers

124: iptables -A INPUT -p tcp --dport 80 -j ACCEPT

125: iptables -A INPUT -p tcp --dport 443 -j ACCEPT

126:

127: # Por padrão só é aceito conexões na porta 22

128: # que e' SSH

129: # Obs. não deixe ssh direto como root. para isso

130: # altere o arquivo sshd_conf

131: # set a linha PermitRootLogin no

132:

133: # ======== *** =========

134: # LAN ---> FIREWALL

135: # Setaremos as portas que poderemos acessar via

136: # rede local no servidor

137:

138: # TELNET - Permitindo apenas acesso telnet a lan

Page 80: Monografia Pos Seguranca Sistema Embarcado Openwrt

80

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

-j ACCEPT

140:

141: # NETBIOS - Estas 3 portas são usadas pelo

142: # protocolo de compartilhamento de arquivos em

143: # redes Microsoft.

144: # Cada uma das portas tem uma função especial

145: # (nome, datagrama e sessão) mas é necessário

146: # que as 3 estejam abertas no firewall para que

147: # a visualizações dos compartilhamentos e acesso

148: # aos arquivos funcione corretamente

149: 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: # DNS - Libera a resolução de nomes

153: iptables -A INPUT -p tcp -s $LAN --dport 53

-j ACCEPT

154: iptables -A INPUT -p udp -s $LAN --dport 53

-j ACCEPT

155:

156:

157: #======== *** =========

158: # LAN ---> INTERNET

159: # Setaremos as portas comuns que devem ser

160: # acessadas da rede local para a internet Portas

161: # comuns que devem ser acessadas na Internet

162:

163: # FTP-DATA(20) FTP(21) SSH(22) TELNET(23)

164: iptables -A FORWARD -i $INTRA -p tcp

--dport 20:23 -j ACCEPT

165:

166: # SMTP

Page 81: Monografia Pos Seguranca Sistema Embarcado Openwrt

81

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

25 -j ACCEPT

168:

169: # POP3

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

110 -j ACCEPT

171:

172: # DNS tcp/udp

173: iptables -A FORWARD -i $INTRA -p udp --dport

53 -j ACCEPT

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

53 -j ACCEPT

175:

176: # HTTP/HTTPS

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

80 -j ACCEPT

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

443 -j ACCEPT

179:

180: # ========= *** =======

181: # Faz o mascaramento da rede local

182: iptables -t nat -A POSTROUTING -o $INTER

-j MASQUERADE

183:

184: # Statefull inspection

185: # Aceita pacotes de conexões já estabelecidas ou

186: # relacionadas

187: 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

Page 82: Monografia Pos Seguranca Sistema Embarcado Openwrt

82

191: # estável e confiável

192: #======================***======================

193: #

194: # A partir desta linha chamo meus scripts de

195: # exceções.

196: # Ex: Proxy Transparente, Regra acesso ao TED,

197: # Regra acesso a CONECTIVIDADE SOCIAL, etc...

198: #

199: # obs. Aqui em regras especiais você pode

200: # configurar algum tipo de DNAT ou FORWARD que

201: # sua empresa ira precisar. É só criar os

202: # scripts e chamá-los abaixo que ele startará

203: # junto com o firewall.

204: echo "Carregando as regras especiais

utilizadas por Empresa 1."

205:

206: # Coloque aqui as suas regras especiais, Caso

207: # exista

208: # Start fw-squid.sh

209: #/root/bin/fw-squid.sh

210:

211: # Start fw-infib.sh

212: #/root/bin/fw-infib.sh

213:

214: echo "Firewall - running - OK !!"

215:

216: # Fim do Script e do IF

217: fi

Quadro 20: Script firewall. Arquivo: /etc/firewall-up.sh

Page 83: Monografia Pos Seguranca Sistema Embarcado Openwrt

83

5.2.3 Acessando via interface web (WebIf)

Com a chegada de novos releases, uma facilidade tão esperada por todos os utilizadores,

principalmente os que não possuem domínio da linha de comando é a interface web, com ela

o administrador poderá acessar a principais configuração de seu roteador através do conforto

de um browser, o projeto é chamado de WebIf, e é desenvolvido pela mesma equipe que

desenvolve o OpenWRT, abaixo poderemos ter uma noção das facilidade encontradas.

Figura 6: Tela de informações do OpenWRT na interface web.

Deve-se deixar claro que a interface web não possibilita total interatividade com as

possibilidades que o sistema embarcado OpenWRT oferece, apenas trás as informações e

configurações básicas para o mesmo, podendo o administrador utilizar a conexão SSH para

configurações avançadas, ou mesmo desenvolver paginas web capaz de oferecer-lhe a

necessidade faltante.

Page 84: Monografia Pos Seguranca Sistema Embarcado Openwrt

84

Figura 7: Tela sobre o WebIf do OpenWRT.

Na figura 7 é mostrado as informações sobre o WebIf, tal como dados sobre sua licença GPL

(GNU LICENSES, 2007), de utilização, distribuição e redistribuição, sendo mostrado também

a lista de contribuintes.

Page 85: Monografia Pos Seguranca Sistema Embarcado Openwrt

85

Já na figura 8 podemos observar o status das conexões, que mostra as maquinas que estão

utilizando o roteador como gateway65, e as conexões estabelecidas com seus respectivos

status.

Figura 8: Status de conexão do OpenWRT na interface web.

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

de comunicação internos diferentes, ou, computador que interliga uma rede local à Internet.

Page 86: Monografia Pos Seguranca Sistema Embarcado Openwrt

86

Na figura 9 poderemos consultar todas as maquinas que solicitaram ip ao serviço de DHCP de

nosso router, conseguindo obter algumas informações da maquina cliente, como endereço

MAC, endereço ip, nome da maquina e em ate qual data e hora que estas informações terão

validade.

Figura 9: Clientes DHCP do OpenWRT na interface web.

Page 87: Monografia Pos Seguranca Sistema Embarcado Openwrt

87

Obteremos informações sobre o status de nossa rede wireless, a figura 10 trás exatamente o

retorno do comando “iwconfig” do Linux, nele constam o ESSID66, chave de encryptação,

canal utilizado, e outros.

Figura 10: Status wireless do OpenWRT na interface web.

66 ESSID. Extended Service Set Identifier (ESSID). É o código de identificação da rede sem fio. Este

código é anexado a todos os pacotes que trafegam em redes sem fio, possibilitando a identificação da rede em

que cada pacote faz parte.

Page 88: Monografia Pos Seguranca Sistema Embarcado Openwrt

88

Figura 11: Configurações do sistema do OpenWRT na interface web.

Na Figura 11 poderemos observar a tela de configuração do sistema, nela é possível 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 alteração da senha do

administrador, é sempre aconselhado que a senha do administrador tenha mais que cinco

caracteres, contendo letras e números.

Figura 12: Alterações de senha do OpenWRT na interface web.

Page 89: Monografia Pos Seguranca Sistema Embarcado Openwrt

89

É possível observar na figura 13 a tela de instalação de pacotes, uma facilidade de grande

importância na interface web, através dela é possível consultar os pacotes disponíveis, instalá-

los, ou se necessário desinstalá-los, com grande rapidez.

Figura 13: Instalação ou desinstalação de pacotes do OpenWRT na interface web.

Page 90: Monografia Pos Seguranca Sistema Embarcado Openwrt

90

A atualização de firmware também poderá ser feita pela interface web, conforme figura 14,

basta baixar a atualização no site, salvar em seu computador, e acessar a interface web para

fazer o upgrade.

Figura 14: Atualização de firmware do OpenWRT na interface web.

Page 91: Monografia Pos Seguranca Sistema Embarcado Openwrt

91

Figura 15: Configurações de rede do OpenWRT na interface web.

Na tela de configuração de rede, figura 15, colocaremos o ip que utilizaremos para o roteador,

essa definição deverá ser feita pelo administrador de redes, de posse das informações da rede

local e do servidor DNS, basta colocar nos campos destinados e salvar as alterações.

Figura 16: Configurações da WAN do OpenWRT na interface web.

Demonstrado na figura 16 as configurações WAN, que são de grande importância para um

bom funcionamento da conexão com a internet, é possível configurar em diversos tipos de

Page 92: Monografia Pos Seguranca Sistema Embarcado Openwrt

92

conexões WAN, PPPoE, obter ip automaticamente, ip estático, entre outros, fica a cargo do

administrador buscar a configuração correta.

Figura 17: Configurações wireless do OpenWRT na interface web.

Conforme demonstrado na figura 17 é possível habilitar ou desabilitar a interface sem fio na

pagina de configurações wireless, é também onde setaremos o ESSID da nossa rede sem fio, o

canal utilizado poderá depender do cenário em que encontra sua rede, procure canais com

menos ruídos, essa medição poderá ser feita utilizando softwares ou de forma empírica,

testando os canais e vendo qual o consegue o melhor desempenho, o modo de operação

aconselhamos utilizar o “Access Point”, e o mais importante, a criptográfica utilizada, fica a

cargo do administrador da rede optar pela melhor cryptagem, sendo aconselhada aqui a

utilização da criptografia WEP67, apesar de ser facilmente quebrado, é de fácil configuração

dos clientes. É aconselhado que no futuro essa criptografia seja mudada para WPA268, que

possui maior robustez e menor vulnerabilidade. Apenas se deve utilizar o WEP se não for

67 WEP. Do inglês Wired Equivalent Privacy. Protocolo de segurança para redes sem fio que implementa

criptografia para a transmissão dos dados. Este protocolo apresenta algumas falhas de segurança. 68 WPA2. É uma certificação de produto disponibilizada pela Wi-Fi Alliance. A WPA2 certifica que o

equipamento sem fio é compatível com o padrão IEEE 802.11i. A certificação de produto WPA2 substitui

formalmente a WEP (Wired Equivalent Privacy) e os outros recursos de segurança do padrão IEEE 802.11

original. A meta da certificação WPA2 é oferecer suporte aos recursos de segurança obrigatórios adicionais do

padrão IEEE 802.11i ainda não inclusos nos produtos com suporte a WPA.

Page 93: Monografia Pos Seguranca Sistema Embarcado Openwrt

93

possível utilizar nos equipamentos WPA69 ou WPA2. Porem lembre-se, ter WEP é melhor do

que não ter qualquer proteção.

Esta interface web ainda proporciona a descrição e funcionalidades dos campos mais

importantes da configuração, note o lado direito da figura acima.

Figura 18: Configurações wireless avançadas do OpenWRT na interface web.

Uma funcionalidade de grande importância fica nas configurações avançadas da rede sem fio,

conforme figura 18, nela é possível conceder acesso apenas aos endereços MAC ali

discriminados, e ate fazer as configurações Wireless Distribution System70 (WDS) se

necessário.

69 WPA. Também chamado de WEP2, ou TKIP (Temporal Key Integrity Protocol), essa primeira versão

do WPA (Wi-Fi Protected Access) surgiu de um esforço conjunto de membros da Wi-Fi Aliança e de membros

do IEEE, empenhados em aumentar o nível de segurança das redes sem fio no ano de 2003, combatendo algumas

das vulnerabilidades do WEP. 70 Wireless Distribution System, WDS. É um sistema que permite a interconexão de Access Points sem

necessidade de fios. Como descrita em IEEE 802.11, permite que uma rede wireless seja expandida usando

múltiplos pontos de acesso sem a necessidade de ligá-los via cabo.

Page 94: Monografia Pos Seguranca Sistema Embarcado Openwrt

94

Figura 19: Configurações de hosts do OpenWRT na interface web.

Na figura 19 mostra outra facilidade muito apreciada que é a configuração de ips estáticos

para certos endereços MAC, é possível informar qual ip devera ser dado pelo serviço DHCP a

determinado endereço MAC, nesta tela também é possível informar qual o nome das

maquinas referente a determinado ip, esta ultima funcionalidade alimenta o arquivo /etc/hosts.

Page 95: Monografia Pos Seguranca Sistema Embarcado Openwrt

95

Figura 20: Configuração firewall do OpenWRT na interface web.

Também é possível adicionar regras de firewall através da interface web, caso seja do gosto

do administrador, é necessário um domínio das tabelas e chains do iptables para construir

estas regras, demonstrada da figura 20.

5.3 Proposta de utilização

A solução proposta apresenta uma boa relação custo x benefício, pois tem um baixo consumo

de energia e custo de aquisição. Além disso, é versátil e totalmente customizável. com apenas

um roteador Linksys WRT54G, é possível transformá-lo num grande e robusto servidor para

compartilhamento de internet com firewall.

Page 96: Monografia Pos Seguranca Sistema Embarcado Openwrt

96

5.3.1 Vantagem do OpenWRT para sua empresa:

• Parque de ate 40 maquinas, pelas especificações da Linksys, o roteador WRT54G

funciona bem com ate 50 maquinas, calculamos uma margem de 20% para que não

trabalhe no limite.

• Redução do consumo de energia elétrica sempre é um item que agrada os

administradores de empresa, mas tem empresas que realmente necessitam deste

diferencial classificando-o como uma prioridade.

• Roteamento avançado. Esta solução possui o mais avançado sistema de

roteamento, possibilitando ao administrador da rede total controle.

• Firewall avançado. Todas as possibilidades encontradas em um sistema Linux

instalado num maquina comum é possível transportar para esta solução.

• Possibilidade de criação de VPNs.

• Possibilidade de controle com login por usuário. Com alguns pacotes é possível

implantar o sistema de login por usuário, que possibilita políticas mais severas de

acordo com o usuário logado, podendo bloquear determinados sites, ou ate liberar

para usuários especiais.

5.3.2 Desvantagem do OpenWRT para sua empresa:

• Parque de maquinas maior que 40 maquinas.

• Demanda de um profissional ou prestadora de serviço com capacitação para

implementar as políticas e exercer configurações.

• Não possui disco rígido para armazenamento, impossibilitando que o roteador seja

utilizado para backup de arquivos da empresa, porem isso pode ser contornado

pela adaptação de uma porta USB71 no roteador, não entraremos neste mérito pelo

71 USB. Sigla de Universal Serial Bus, ou seja, Barramento Serial Universal, é um tipo de conexão Plug

and Play que permite a conexão de periféricos sem a necessidade de desligar o computador.

Page 97: Monografia Pos Seguranca Sistema Embarcado Openwrt

97

fato desta adaptação ser de grande complexidade e acarretará o desvio do foco

inerente nesta monografia.

5.4 Considerações

Os recursos limitados comuns em sistemas embarcados obrigam a uma escolha mais criteriosa

do sistema operacional e aplicações. É de grande importante esta escolha, deve ser flexível e

modular, e que sejam de fácil adaptação a diferentes hardwares, com funções diferentes, sem

grandes alterações ou custos.

Neste trabalho ficou bem definido a facilidade de adaptação do OpenWRT a estes requisitos.

Com baixos encargos financeiros (ou pelo menos, custos não imputáveis diretamente à

utilização do sistema), grande poder de customização possibilitam que cada empresa destaque

em seu roteador suas prioridades, facilitando o controle dos administradores de redes para

aplicação das regras definidas pela diretoria da empresa.

Page 98: Monografia Pos Seguranca Sistema Embarcado Openwrt

98

6. CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS

A procura por soluções customizáveis e com baixo custo tem sido uma realidade vivenciada

nas empresas. A substituição de um computador que funciona como firewall por um roteador

customizável é uma solução interessante e atrativa, principalmente para empresas de pequeno

e médio porte.

A utilização do sistema embarcado OpenWRT no roteador Linksys WRT54G é uma solução

interessante que apresenta uma boa relação Custo x Benefício. Essa solução permite a

utilização de todos os recursos disponíveis em um firewall tradicional baseado no Linux com

a utilização do iptables. Com isso, é possível alcançar um bom nível de segurança na rede.

Esse trabalho apresenta um roteiro detalhado de configuração e customização do roteador

Linksys WRT54G (trabalhando como Firewall). Com os testes e pesquisas realizadas é

possível afirmar que a utilização do OpenWRT é uma solução eficaz e de baixo custo que

consegue substituir o Firewall tradicional utilizado em empresas de pequeno e médio porte.

Uma alternativa de continuação desse trabalho seria pesquisar a possibilidade de substituição

de um servidor de firewall mais robusto e com regras mais complexas pelo Linksys WRT54G.

Além disso, a implementação de autenticação e controle de acesso. Com isso, o equipamento

trabalharia como um portal de captura.

Page 99: Monografia Pos Seguranca Sistema Embarcado Openwrt

99

7. REFERÊNCIAS BIBLIOGRÁFICAS

GARFINKEL, Simpson. SPAFFORD, and Gene. Pratical Unix e Internet Security. O’Reilly & 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. O’Reilly & 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. Disponível 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.

Page 100: Monografia Pos Seguranca Sistema Embarcado Openwrt

100

DUTTA, S. Jensen, R. e Rieckmann, A. Viper: A Multiprocessor SoC for Advanced Set-Top 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 Automação e Sistemas, Universidade Federal de Santa Catarina. Julho 2000.

DEMMELER, T. e Giusto, P. A Universal Communication Model for an Automotive System Integration Platform. DATE’01 – 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 edição).

VSIA. Virtual Socket Interface Alliance, 2003. Disponível em: http://www.vsi.org

OpenWRT. Disponível em: http://openwrt.org/, acesso em Fevereiro de 2007.

uClinux. Disponível em: http://www.uclinux.org/, acesso em Fevereiro de 2007.

Windows Embedded. Disponível em: http://www.microsoft.com/windows/embedded/, acesso em Fevereiro de 2007.

HTC Smart Mobile. Disponível em: http://www.htc.com/, acesso em Junho de 2007.

LinuxDevices. Disponível em: http://linuxdevices.com/articles/AT8073314981.html, acesso em Junho de 2007.

Java SE Embedded. Disponível em: http://java.sun.com/javase/embedded/index.jsp, acesso em Fevereiro de 2007.

GNU. Disponível em: http://www.gnu.org, acesso em Fevereiro de 2007.

GNU Licenses. Disponível em: http://www.gnu.org/licenses/, acesso em Fevereiro de 2007.

Page 101: Monografia Pos Seguranca Sistema Embarcado Openwrt

101

CARRO, Luigi, Wagner, Flávio Rech., Gervini, Alexandre I e Corrêa, Edgard de F . Avaliação de Desempenho, Área, e Potência de Mecanismos de Comunicação em Sistemas Embarcados, 2003.

CARRO, Luigi, Sistemas Computacionais Embarcados, chapter 2, 2004.

ROSA JÚNIOR, 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. Disponível em:http://sources.redhat.com/ ecos/docslatest/ref/ecos-ref.html, acesso em Fevereiro de 2007. Technical Reference Manual, RedHat, Mar.

IPTABLES. Disponível em: http://www.iptables.org/, acesso em Fevereiro de 2007.

Viva o Linux. Disponível em: http://www.vivaolinux.com.br, acesso em Fevereiro de 2007.

Guia Foca. Disponível em: http://focalinux.cipsga.org.br/, acesso em Junho de 2007.

Linksys. Disponível em: http://www.linksys.com/, acesso em Fevereiro de 2007.

CHAPMAN, D. Brent e ZWICKY, Elizabeth D. Building Internet Firewalls. 1. ed. O’Reilly, 1995. Disponível 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.

Page 102: Monografia Pos Seguranca Sistema Embarcado Openwrt

102

OLIVEIRA, R.; Carissimi, A; Toscani, S. Sistemas Operacionais. Segunda Edição. 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.