Prévia do material em texto
INSTITUTO DE ESTUDOS SUPERIORES DA AMAZÔNIA- IESAM CURSO DE ESPECIALIZAÇÃO EM ENGENHARIA DE REDES E TELECOMUNICAÇÕES MICHERLAN LOBATO MIRANDA VALDEMIR CALVO DE GALIZA FILHO DESENVOLVENDO O PROJETO MIKROOPENBSD: CUSTOMIZANDO PARA APLICAÇÕES EMBARCADAS EM REDES DE COMPUTADORES BASEADO NO OPENBSD BELÉM – PA 2013 INSTITUTO DE ESTUDOS SUPERIORES DA AMAZÔNIA- IESAM CURSO DE ESPECIALIZAÇÃO EM ENGENHARIA DE REDES E TELECOMUNICAÇÕES MICHERLAN LOBATO MIRANDA VALDEMIR CALVO DE GALIZA FILHO DESENVOLVENDO O PROJETO MIKROOPENBSD: CUSTOMIZANDO PARA APLICAÇÕES EMBARCADAS EM REDES DE COMPUTADORES BASEADO NO OPENBSD Monografia apresentada ao curso de Especialização em Engenharia de Redes e Telecomunicações como requisito de avaliação para obtenção do titulo de Especialista em Engenharia de Redes e Telecomunicações. Orientador: Prof. Dr. Ronaldo Oliveira dos Santos BELÉM – PA 2013 INSTITUTO DE ESTUDOS SUPERIORES DA AMAZÔNIA- IESAM CURSO DE ESPECIALIZAÇÃO EM ENGENHARIA DE REDES E TELECOMUNICAÇÕES MICHERLAN LOBATO MIRANDA VALDEMIR CALVO DE GALIZA FILHO DESENVOLVENDO O PROJETO MIKROOPENBSD: CUSTOMIZANDO PARA APLICAÇÕES EMBARCADAS EM REDES DE COMPUTADORES BASEADO NO OPENBSD Esta Monografia foi julgada adeguada para a obtenção do Titulo de Especialista em Engenharia de Redes e Telecomunicações, e aprovada na sua forma final pelo Instituto de Estudos Superiores da Amazônia Data: ____/____/____ Nota: _____________ ________________________________________________ Prof. Dr. Ronaldo Oliveira dos Santos Orientador – IESAM __________________________________________________ Avaliador - IESAM BELÉM - PA 2013 Agradeço a minha esposa Niedja Miranda, pelos momentos em que apoiou nos momentos em que pensei desistir e sempre esteve ao meu lado nos momentos mais difíceis dedico a você por ter conquistado tudo isso e aos meus filhos por todo o carinho recebido. (Micherlan Miranda) AGRADECIMENTOS A Deus pela presença espiritual em nossas vidas por ter estado ao nosso lado iluminando a estrada da vida percorrida pelos nossos passos, por vezes obscura; quando nos momentos difíceis, nos fez provar de sua misericórdia e de seu infinito amor. Obrigada Senhor, por me conceder o Dom divino de minha existência e com ela a busca pelo saber. A todos os nossos familiares e amigos que se mantiveram ao nosso lado, lutando conosco, pela concretização desta conquista. RESUMO Este trabalho tem como objetivo desenvolver um Sistema Embarcado MikroOpenBSD baseado no OpenBSD que será usado como Sistema Operacional de Rede. Totalmente customizável e instalável em qualquer arquitetura i386. Sendo umas das tecnologias mais crescente do mercador, o Sistema Embarcado. O projeto em estudo foi desenvolvido localmente e a sua manutenção é regional sendo assim uma segurança ao cliente quanto à disponibilidade de mão de obra. O hardware utilizado é o Soekris Engineering net5501, esta monografia não tem a pretensão de apresentar todos os serviços que pode ser implementado em uma rede com o Sistema Embarcado, pois a dinâmica do tempo é um fator crucial, para tanto iremos nos limitar a alguns, este foram escolhidos como os serviços mais básicos e eficientes em uma rede: DHCP (Dynamic Host Configuration Protocol), PF (Pachet Filter) e GATEWAY (port connection). O Sistema Embarcado ficará armazenado em uma memória secundária não sendo o Disco Rígido, mas tem a flexibilidade para ter em toda uma gama de diferentes funções como um dispositivo de comunicação. Palavras-chave: Sistema Embarcado. Soekris Engineering. Rede. ABSTRACT This work aims to develop an embedded system based on OpenBSD MikroOpenBSD to be used as Network Operating System. Fully customizable and installable in any i386. Being one of the most technologically growing merchant, the Embedded System. The project under study was developed locally and its maintenance is therefore a regional security to the client and the availability of manpower. The hardware used is the Soekris Engineering net5501, this article does not pretend to present all services that can be implemented in a network with embedded systems, since the dynamics of time is a crucial factor, so we will limit ourselves to a few, this was chosen as the most basic services and efficient in a network: DHCP (Dynamic Host Configuration Protocol), PF (Pachet Filter) and GATEWAY (port connection). Embedded System will be stored in a secondary memory but no hard drive, but has the flexibility to take on a whole range of different functions as a communication device. Keywords: Embedded System. Soekris Engineering. Network. LISTA DE ILUSTRAÇÔES Figura 01 – Diferenças Entre o Microprocessador e o Microcontrolador ................... 20 Figura 02 – Apresentação do lançamento do OpenBSD4.7 ...................................... 23 Figura 03 – Soekris Engineering net5501 sem a arquitetura..................................... 27 Figura 04 – Soekris Engineering net5501 ................................................................. 28 Tabela 01 – tabela demonstrativa das especificações técnicas do Net5501 ............ 28 Figura 05 - Imagem de apresentação do lançamento do OpenBSD 4.5 ................... 29 Figura 06 - Demonstrando a ideia do funcionamento do firewall............................... 32 Figura 07 - Atuação do PF na pilha TCP/IP .............................................................. 33 LISTA DE ABREVIATURAS E/OU SIGLAS ADSL - Asymmetric Digital Subscriber Line, Linha Digital Assimétrica de Assinantes. CPU - Central Processing Unit, Unidade Central de Processamento. DDR - Double Data Rate ou Taxa de Transferência Dobrada. DHCP - Dynamic Host Configuration Protocol, protocolo de serviço TCP/IP. HTML - HyperText Markup Language, Linguagem de Marcação de Hipertexto. Mp3 PLAYER - é a sigla de Moving Picture Experts Group 1 (MPEG) Audio Layer 3. MSN - Windows Live Messenger, mensagens instantâneas. NAT - Network Address Translation, Tradução de Endereços de Rede. PDAs - Assistente Pessoal Digital, também conhecido como computador de bolso. RAM - Random Access Memory, Memória de Acesso Randômico. ROM - Read-Only Memory, Memória Somente de Leitura. SDRAM - Synchronous Dynamic Random Access Memory. SE - Sistema Embarcado ou Embutido. USB - Universal Serial Bus, Barramento Serial Universal. VOIP - Voice over Internet Protocol. VPN - Virtual Private Network, Rede Privada Virtual. WWW - World Wide Web, ou Web. Meta-rede. http://pt.wikipedia.org/wiki/Protocolo http://pt.wikipedia.org/wiki/TCP http://pt.wikipedia.org/wiki/IP http://en.wikipedia.org/wiki/Instant_messaging http://pt.wikipedia.org/wiki/PDA http://www.clubedohardware.com.br/artigos/1046 SUMÁRIO 1 INTRODUÇÃO ....................................................................................................... 10 2 PROBLEMA ........................................................................................................... 11 3 HIPÓTESE ............................................................................................................. 11 3.1 RELEVÂNCIAS DO ESTUDO ............................................................................. 12 4 OBJETIVOS ...........................................................................................................12 4.1 OBJETIVO GERAL ............................................................................................. 12 4.2 OBJETIVOS ESPECÍFICOS ............................................................................... 12 5 METODOLOGIA .................................................................................................... 13 5.1 TIPO DE PESQUISA ........................................................................................... 13 5.2 QUANTO AOS OBJETIVOS ............................................................................... 13 5.3 QUANTO À ABORDAGEM ................................................................................. 13 6 FUNDAMENTAÇÃO TEÓRICA ............................................................................. 14 7 SISTEMAS EMBARCADOS .................................................................................. 15 7.1 HISTÓRICO ........................................................................................................ 16 7.2 CONCEITOS ....................................................................................................... 17 7.3 CARACTERÍSTICAS ........................................................................................... 17 8 SISTEMA OPENBSD 4.7 ..................................................................................... 203 8.1 HISTÓRICO ........................................................................................................ 23 8.2 CONCEITOS ....................................................................................................... 21 8.3 CARACTERÍSTICAS ........................................................................................... 21 9 SOEKRIS ENGINEERING NET5501 ..................................................................... 23 9.1 CONFIGURAÇÕES PADRÃO ............................................................................. 24 9.2 ESPECIFICAÇÕES ............................................................................................. 24 9.3 HARDWARE ....................................................................................................... 25 10 PROJETO MickoOpenBSD ................................................................................ 27 10.1 HISTÓRICO ...................................................................................................... 27 10.2 CARACTERÍSTICAS ......................................................................................... 27 10.3 SERVIÇOS ........................................................................................................ 28 10.3.1 Configuração da rede ................................................................................... 28 10.3.2 A rede será configura com os seguintes serviços .................................... 29 11 CONSIDERAÇÕES FINAIS ................................................................................. 34 REFERÊNCIAS ......................................................................................................... 35 ANEXO ..................................................................................................................... 36 10 1 INTRODUÇÃO A indústria eletrônica tem crescido a uma taxa impressionante nos últimos anos, e um dos principais motivos para tal crescimento é a incorporação de sistemas eletrônicos numa grande variedade de produtos tais como, automóveis, eletrodomésticos e equipamentos de comunicação pessoal. Sistemas de computação estão presentes em todo lugar e não é surpresa que anualmente são produzidos milhões de sistemas destinados a computadores pessoais (desktop), estações de trabalho, servidores e computadores de grande porte. O que pode surpreender, no entanto, é que bilhões de sistemas são produzidos anualmente para as mais diferentes propostas; tais sistemas estão embutidos em equipamentos eletrônicos maiores e executam repetidamente uma função específica de forma transparente para o usuário do equipamento. Como resultado da introdução de sistemas eletrônicos em aplicações tradicionais tem produtos mais eficientes, de melhor qualidade e mais baratos. Dentre os componentes eletrônicos mais utilizados temos os componentes digitais que permitem algum tipo de computação tais como microprocessadores e microcontroladores. Torna-se importante empregar novas alternativas no emprego de Redes de Computadores no sentido de otimizar projetos reduzindo custos, sem afetar sua eficiência conquistada com os tradicionais recursos computacionais. A única diferença é que utilizaremos o Sistema Embarcado que é um sistema microprocessado, no qual o computador é completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Diferente de computadores de propósito geral, como o computador pessoal que pode assumir várias funções. O sistema Embarcado realiza um conjunto de tarefas predefinidas, geralmente com requisitos específicos, sendo assim possível através de engenharia otimizar o projeto reduzindo tamanho, recursos computacionais e custo. Este trabalho demonstrará o Sistema Embarcado com um resumo redundade da sua história e as suas principais características e, em seguida, apresentará o sistema OpenBSD e as suas peculiaridades. Logo após a ferramenta net 5501 e o MikroOpenBSD são apresentados com o seu processo de customização e os serviços que foram disponibilizados. 11 O trabalho proposto usará o Sistema Operacional OpenBSD que por suas vezes é um sistema desenvolvido do UNIX de código aberto originalmente desenvolvido na Universidade da Califórnia em Berkley. Foi desenhado para ter uma capacidade de segurança e criptografia extremamente alta e para ser muito resistente a ataques. A ferramenta a qual irá receber o Sistema Embutido será o Soekris Engineering net5501, é um equipamento compacto de baixa potência e baixo custo. Têm quatro portas Ethernet 10/100Mbit, até 512 megabytes de memória DDR- SDRAM principal e usa um módulo de CompactFlash para o programa e armazenamento de dados. O hardware pode ser expandido usando um tipo de placa MiniPCI III, um disco rígido e uma placa PCI padrão ou duas de baixa potência. (http://www.soekris.com/net5501.htm, 2010) 1.1 PROBLEMA Utilização somente de Sistemas de computação de propósito geral em Redes de Computadores, que incluem computadores tradicionais, abrangendo desde laptops até supercomputadores. 1.2 HIPÓTESE Utilizar-se do Sistema Embarcado em Redes de Computadores no sentido de otimizar os projetos, reduzindo tamanho dos recursos computacionais e custo do produto, já que nos Sistemas embarcados existem restrições bem rígidas a serem satisfeitas, como por exemplo, o custo de um sistema não pode ser muito alto para não onerar o custo do equipamento, o tempo de resposta deve permitir em várias aplicações processamento em tempo real e devem dissipar pouca potência para permitir uma maior duração da bateria ou não necessitar de um sistema de refrigeração. http://www.soekris.com/net5501.htm 12 1.3 RELEVÂNCIAS DO ESTUDO As redes de computadores crescentes no mundo inteiro trazem consigo as vantagens e desvantagens quanto ao seu planejamento, resultando desta forma na possibilidade de acréscimo em sua estrutura tanto em nível de hardware quanto em nível de software. Ao referenciar sobre sistema embarcado sem analisar as possibilidades crescentes de que quase todo equipamento elétrico e eletrônico possui um SE é uma incoerência no atual mundo técnico – informacional. O estudo sobre sistema embarcado remete a um verdadeiro mundo tecnológico de microprocessadores e microcontroladores, programados com as suas funções especificas e quase sempre inacessíveis aos usuários. O estudo em questão traz a motivação de extensão ao mundo das redes de computadores onde os principais fatores impulsionadoressão os custos reduzidos, velocidade de processamento, desempenho, escalabilidade e segurança. E por se tratar de um sistema embarcado, é de suma importância o estudo desde por todo um contexto mundial onde cada vez mais é crescente o numero de aparelhos com esse tipo de característica. E agora, contemplando a Redes de Computadores dando um valor acadêmico e técnico cientifico. 1.4 OBJETIVOS 1.4.1 Objetivo Geral Aplicar a customização do Sistema Operacional OpenBSD 4.5, para Sistema Embarcado em redes de computadores. 1.4.2 Objetivos Específicos Apresentar os Conceitos de Sistema Embarcados; Analisar o Sistema Operacional OpenBSD e suas principais características; Referenciar Net 5501 da Soekris Engineering como a ferramenta que irá receber o Sistema Embutido; 13 Desenvolver o Projeto MikroOpenBSD como sistema embarcado em uma estrutura de rede computadores sobre o hardware Soekris Engineering net 5501, baseado no Sistema OpenBSD 4.5; Demonstrar no apêndice - “A”, os passos da instalação e locação do sistema embarcado, para que o mesmo fique como material de consulta acadêmica e para os profissionais da área ou não; Implementar os serviços de redes: DHCP, FIREWALL e GATEWAY – como demonstração da funcionalidade do sistema embarcado na funcionalidade em redes de computadores. 1.5 METODOLOGIA 1.5.1 Tipo de Pesquisa A metodologia de pesquisa é Aplicada: objetivando gerar conhecimento para aplicação prática. Mas também se fundamenta na pesquisa experimental no desenvolvimento de usabilidade da ferramenta aqui apresentada. 1.5.2 Quanto aos objetivos Quanto aos objetivos à pesquisa ganha uma duplicidade pelo fenômeno da revolução tecno-informacional, tanto a pesquisa exploratória que assume, em geral, as formas de pesquisas bibliográficas e estudos de caso e a pesquisa explicativa que assume, em geral, a forma de pesquisa experimental e pesquisa expost-facto, o estudo aqui traz consigo está duas características explicitamente. 1.5.3 Quanto à abordagem A forma de aborda é qualitativa por se fundamentar na relação dinâmica entre o mundo real e o sujeito. 14 2 FUNDAMENTAÇÃO TEÓRICA O referencial teórico desta pesquisa se fundamenta na própria observação da tecnologia móvel e os sistemas embarcados. Foi a base primária do projeto em sistema embarcado para redes de computadores e o fato de ter aplicabilidade de uma pesquisa de qual sistema operacional haveria esta possibilidade com maior dinamismo, segurança, documentação e contribuindo com praticamente 90% para o 15 sucesso deste projeto ao OpenBSD por ser de código livre e de fácil acesso, pequeno e com uma segurança extremante forte a customização do ambiente embarcado e as práticas para incorporara em ambiente de kernel personalizado. Segundo De Micheli existem três classes básicas de sistemas digitais: emulação e sistemas de prototipação, sistemas de computação de propósito geral e sistemas embarcados (embedded systems). Sistemas de emulação e prototipação são baseados em tecnologias de hardware reprogramáveis, onde o hardware pode ser reconfigurado pela utilização de ferramentas de síntese. Tais sistemas requerem usuários especialistas e são utilizados para a validação de sistemas digitais. Segundo a BARROS, Edna; CAVALCANTE, Sérgio, um sistema embarcado ou embutido (embedded system) pode ser definido como um sistema computacional especializado que faz parte de uma máquina ou sistema maior. Sistemas embarcados são encontrados numa variedade de equipamentos eletrônicos do nosso dia a dia: (a) Produtos de consumo: telefones celulares, pagers, câmeras digitais, video-cassete, vídeo games portáteis, calculadores, etc.; (b) eletrodomésticos: forno de microondas, secretárias eletrônicas, equipamentos de segurança, termostatos, máquinas de lavar e sistemas de iluminação; (c) automação de escritório: máquinas de fax, copiadoras, impressoras e scanners; (d) automóveis: controle de transmissão, injeção eletrônica, suspensão ativa, freio ABS. 2.1 SISTEMAS EMBARCADOS Um sistema embarcado (ou sistema embutido) é um sistema microprocessado no qual o computador é completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Diferente de computadores de propósito geral, como o computador pessoal que pode assumir várias funções, um sistema embarcado realiza um conjunto de tarefas predefinidas, geralmente com requisitos http://pt.wikipedia.org/wiki/Microprocessador http://pt.wikipedia.org/wiki/Computador http://pt.wikipedia.org/wiki/Computador_pessoal 16 específicos. Já que o sistema é dedicado a tarefas específicas, através de engenharia pode-se otimizar o projeto reduzindo tamanho, recursos computacionais e custo do produto. Pergunte a algum amigo quantos computadores ele tem em casa. Provavelmente ele vai responder "tenho só um", ou talvez "tenho dois". Involuntariamente ele estará mentindo, pois na verdade ele tem 10, 20 ou quem sabe 50 computadores em casa. Os demais estão escondidos, dentro do celular, TV, aparelho de som, modem ADSL, ponto de acesso, brinquedos, câmeras digitais, mp3 players, fornos de microondas e outros aparelhos domésticos, controles remotos e assim por diante. Seja bem- vindo ao fantástico mundo dos sistemas embarcados. (MORIMOTO, 2007, p. 116). 2.1.1 Histórico O computador de orientação da nave espacial Apollo (Apollo Guidance computador) por Charles StarkDraper no MIT. É considerado o primeiro sistema embutido moderno de orientação de inércia (inertialguidance system, autonetcs D- 17), em tempo real, a implementação destes circuitos monolíticos para compactar o tamanho e peso do dispositivo aumentou tal risco. O sistema embarcado de produção em grande escala, foi também o primeiro computador guia do míssil nuclear LGM-30 Míssil Minuteman, lançado em 1961. Ele possuía um disco rígido para a memória principal. Já o segundo com um volume de circuitos integrados com essa tecnologia o preço reduziu de mil para três dólares. Possibilitando o seu uso em sistemas comerciais. Décadas de 30 e 40 – Primeiros computadores possuíam funções específicas. Na década de 60 - O primeiro micro-processador para o mercado, Intel 4004(4bits) foi usado em calculadoras. Década de 70 - O microprocesador de Intel 8008 (8bits) foi usado em instrumentação e dispositivos mais caros. Década de 80 - Microcontraladores foram usados em vários dispositivos eletrônicos. Década de 90 até os dias de hoje, os sistemas embarcados sofreram enormes adaptações quanto ao seu desenvolvimento para atingir os objetivos http://pt.wikipedia.org/wiki/Engenharia http://pt.wikipedia.org/wiki/LGM-30_Míssil_Minuteman http://pt.wikipedia.org/wiki/1961 http://pt.wikipedia.org/wiki/Disco_rígido 17 principais de um sistema embutido em função geral: velocidade de execução e custo mínimo. 2.1.2 Conceitos Nos últimos anos tem-se visto uma crescente utilização de sistemas embarcados em praticamente todos os dispositivos eletrônicos. Antes eles eram utilizados apenas em sistemas complexos como sistemas industriais, aeronaves e navios. Hoje, têm-se sistemas embarcados em geladeiras, televisores entre outros. (OLEQUES, 2002). Um sistema embutido (SE) é um computador de propósito especial. Os sistemas embutidos são aqueles completamente encapsulados nos dispositivos por eles controlados. Um sistema embutido realiza tarefas Pré-definidas na maioria dos casos, realiza uma única tarefa (REIS, 2004). Sistemas como PDAs, Mp3 player a semáforos, são geralmente considerados sistemas embarcados pela natureza de seu hardware, apesar de serem muito mais flexíveis em termos de software. 2.1.3 Características Segundo alguns dados estimados por pesquisasem alta tecnologia, mais de 90% dos microprocessadores fabricados mundialmente são destinados a máquinas que usualmente não são chamadas de computadores. Dentre alguns destes dispositivos estão aparelhos celulares, fornos microondas, automóveis, aparelhos de DVD e PALM´s. O que diferencia este conjunto de dispositivos de um computador “convencional” (PC – Desktop, notebook), conhecido por todos é o seu projeto baseado em um conjunto dedicado e especialista constituído por hardware, software e periféricos – um Sistema Embarcado (CHAS, 2007). Os sistemas Embarcados estão em dois grupos: os de tempo real e os sistemas mais simples - Os de tempo de real – são todos os equipamentos com o tempo mínimo de resposta. http://pt.wikipedia.org/wiki/PDA http://pt.wikipedia.org/wiki/Hardware http://pt.wikipedia.org/wiki/Software 18 Os de sistemas mais simples – não necessitam ou possuem essa característica de resposta em tempo real. Em se tratando de sistemas embarcados há duais variações de Kernels de tempo real: – homegrown: aplicação especifica desenvolvimento e manutenção de alto custo e os comerciais: alta qualidade, desestimulando o surgimento de novos kernelshomegrown por ser mais barata. Outro ponto a ser enfatizado dos Sistemas Embarcados são os processadores embarcados que podem ser separados em duas categorias: microprocessador e microcontrolador. Figura 1 – Diferenças entre o Microprocessador e o Microcontrolador Fonte: Barros e Cavalcante, 2012 Os microprocessadores são circuitos integrados dedicados ao processamento de informações com capacidade de cálculos matemáticos e endereçamento de memória externa. Utilizam barramentos de dados, controle e endereços para fazer acesso aos periféricos de entrada e saída e depende de circuitos integrados externos como memória para armazenamento de dados e execução do programa. A vantagem dos microprocessadores é que ainda possuem maior velocidade de processamento e são usados em soluções mais complexas, geralmente são utilizados nos. Os microcontroladores são pequenos sistemas computacionais bastante poderosos que englobam em um único chip: interfaces de entrada/saída digitais e analógicas, periféricos importantes como a memória RAM, memória FLASH, interfaces de comunicação serial, conversores analógico-digitais e temporizadores/contadores. A vantagem dos microcontroladores é que além de possuir os periféricos integrados a um único chip, são responsáveis por executar e http://pt.wikipedia.org/wiki/Processador http://pt.wikipedia.org/wiki/Microprocessador http://pt.wikipedia.org/wiki/Microcontrolador 19 armazenar os programas escritos para eles (firmware), assim como a capacidade de absorver mais funções com o incremento de periféricos, através de CL´s “driver´s, como comunicação USB, pilha do TCP/IP, comunicação RF e porta PS/2. Com o advento dos microcontroladores de 16 e 32 bits, a capacidade de gerenciar soluções mais complexas e maior velocidade de processamento se iguala ao do microprocessador. “O crescimento dos sistemas embarcados muito se deve a este componente” (REIS, 2004). Muitos microcontroladores podem ser conectados a dispositivos analógicos, permitindo o uso de sensores diversos. Isto faz com que seja possível a criação de dispositivos simples, que monitoram temperatura, unidade intensidade da luz, aceleração e assim por diante, executando ações pré-definidas em caso de mudanças, como ligar o ar condicionado, abrir ou fechar as persianas, ou mesmo disparar o air-bag em um carro, caso este venha colidir. Aqui se pode de uma maneira mais simplificada pontuar as características preponderantes dos sistemas embarcados, fazendo referência ao momento e reservando o direito legal que tais características são frutos das constantes mudanças que ditas às regras: a) São dedicadas às tarefas especificas; b) Usam ampla variedade de “array processors” e arquiteturas de processador; c) São sensíveis ao custo; d)4 - Possuem restrições de tempo real; e) Possuem restrições de alimentação; f) Operam com sistemas operacionais em tempo real, se usarem; g) Operam em condições ambientais extremas; h) Todo o software é armazenado em ROM; i) Possuem menos recursos que um PC; j) Requerem métodos e ferramentas específicas; k) Usam circuitos de depuração dedicados; l) Falhas no Software tem implicações severas; m) O consumo de energia é pequeno; n) Não requer processadores de última geração; 20 o) Processadores mais simples e robustos que atendam as necessidades de forma bem dimensionada, para que não haja desperdício de recursos num ambiente onde eles normalmente são escassos; p) Um sistema embutido geralmente reside dentro de dispositivos que não devem parar de funcionar durante anos; q) Sistemas embutidos estão geralmente fora do alcance de humanos e por isso devem poder se auto-reinicializar em caso de corrompimento dos dados; r) Geralmente, incluem um temporizador eletrônico padrão, chamado WATchdog, que reinicializar o sistema a menos que o software o reinicialize periodicamente. 2.2 SISTEMA OPENBSD 4.7 2.2.1 Histórico A versão atual é o OpenBsd 4.7, que foi lançado 19 de maio, 2010, nesta versão o seu mascote Puffy vem com um novo visual, demonstrado superioridade a versões anteriores, sendo que neste o sistema ganha suporte para netbooks com processadores MIPS, e outras melhorias no suporte de hardware e etc. Este sistema é desenvolvido inteiramente por voluntários, o projeto do OpenBSD, possui um projeto que paga o ambiente de desenvolvimento e eventos para desenvolvedores com a venda de CDs através de um conjunto de lojas e aceitando doações de organizações e indivíduos. Estas finanças asseguram que o projeto OpenBSD irá continuar a existir e permanecerá livre para toda a utilização e reutilização conforme suas necessidades. Figura 2 - Imagem de apresentação do lançamento do OpenBSD 4. 7 21 Fonte: http://www.openbsd.org 2.2.2 Conceitos Sistema OpenBSD como já descrito anteriormente é um sistema de código aberto descendente do NetBSD que por sua vez descendente do UNIX. O OpenBSD tem como principal foco a qualidade de código, e é desenhado para adquirir uma grande capacidade de segurança usando uma criptografia extremamente segura o que lhe proporciona ser resistente a ataques e estabilidade do sistema. 2.2.3 Características O projeto OpenBSD é considerado pelos seus desenvolvedores do site: www.openbsd.com, como sendo o sistema mais seguro do mundo, sendo catalogadas atualmente duas falhas de segurança remotas em um período de mais de 10 anos de existência. 22 O OpenBSD é considerado por muitos profissionais de segurança como o mais seguro sistema operacional do tipo UNIX, resultado de uma intensa e contínua auditoria de segurança no código fonte, e, é um sistema operacional completo do tipo UNIX, disponível em código fonte sem custos. Integra tecnologia de segurança de última geração, adequada para construir firewalls e serviços de rede privada em ambiente distribuído. E se beneficia de um forte processo de desenvolvimento em muitas áreas, oferecendo a oportunidade de se trabalhar com tecnologias emergentes com uma comunidade internacional de programadores e usuários finais. Suas principais características: a)É um sistema livre, ou seja, de código aberto. b)Suportável em variáveis arquiteturas, sendo que o objeto de estudo deste será aplicável na arquitetura i386 - Plataforma PC que é clones baseadas na arquitetura Intel i386 e processadores compatíveis. c)É desenvolvido é mantido por voluntários de todo o mundo. d)É um sistema em Multiplataforma. e)Foi fundado e liderado por Theo de Raadt. f)Sendo que seu principal foco é segurança e criptografia. Possui segurançaProativa, quando uma falha e descoberta, ela é anunciada e corrigida rapidamente, pois da mesma forma que os invasores sempre procuram brechas, os desenvolvedores também o fazem, para tentar encontrar antes e corrigir. Possui criptografia integrada até mesmo no swap, todas as alterações de segurança na criptografia ou outras falhas de sistema são revisadas por pelo menos Dois outros desenvolvedores. g)Possui sistema base de versões lançado a cada seis meses, sendo que neste período é disponibilizada imediatamente a atualização sempre que correções de falhas de segurança existir. h)É aplicável em varias aplicações de redes como: i)Firewall, Firewall autenticado, VPN, Roteadores, Balanceamento de carga (entrada e saída), Criptografia via hardware, Servidor www, Servidor de arquivos, Proxy e em Sistema embarcados que é o objeto de estudo deste. http://www.openbsd.org/security.html http://www.openbsd.org/pt/crypto.html#hardware 23 j)É de fácil instalação, pois há muito tempo o OpenBSD é respeitado pelo seu processo de instalação simples e direto, consistente entre todas as plataformas de arquiteturas. E em cada versão disponível esse processo estar sendo melhorado para ser ainda mais simples e rápido para a vasta maioria dos usuários, mas sem perder a flexibilidade. k)Conforme Salvatti (2010). O OpenBSD não foi desenvolvido nem desenhado para ser Desktop. Mas ele pode ser usado como uma estação de trabalho perfeitamente bem. Ele possui suporte a editores de texto como Abiword e OpenOffice (Este último com emulação binário ativada), possuem diversos clientes de msn, jabber e outras redes, possui editores html muito bons como é o caso do Bluefish, possui um navegador excelente, o Mozilla Firefox, possui o editor de imagens Gimp entre muitas outras coisas. Porém, só quem vai poder dizer se ele serve como desktop é o usuário, dependo da sua necessidade de trabalho e se ele tem suporte aquele software que se necessita. 3 SOEKRIS ENGINEERING NET5501 A ferramenta a qual irá receber o SE será o Soekris Engineering net5501, este compacto, de baixa potência, baixo custo, computador de comunicação avançados é baseado em um máximo de 500Mhz, processador de classe. Têm 24 quatro portas Ethernet 10/100Mbit, até 512 megabytes de memória DDR-SDRAM principal e usa um módulo de CompactFlash para o programa e armazenamento de dados. O hardware pode ser expandido usando um tipo de placa MiniPCI III, um disco rígido e uma placa PCI padrão ou duas de baixa potência. Ele está disponível em qualquer volume, na versão standard. A placa pode ser personalizada de acordo com exigências ao requisitar maior volume. 3.1 CONFIGURAÇÕES PADRÃO Neste processo as configurações do equipamento seguem a esses padrões no mercador, mas como já foi dito pode ser personalizada conforme a demanda da rede de computadores e do objetivo a ser atingido: Net5501-60: 433 MHz, 256 Mbytes, DDR-SDRAM, 4 Ethernet, 2 Serial, conector USB, CF socket, 44 pinos conector IDE, SATA, 1 soquete Mini-PCI, conector PCI 3.3V. Net5501-70: CPU de 500 MHz, 512 MB DDR-SDRAM, 4 Ethernet, 2 Serial, conector USB, CF socket, 44 pinos conector IDE, SATA, 1 soquete Mini-PCI, conector PCI 3.3V. 3.2 ESPECIFICAÇÕES Aqui as especificações podem e devem ser usadas como parâmetros de embasamento na tomada de decisões tanto ao processamento, carga e balanço de banda que é esperado e/ou pretendido – devemos ressaltar que o equipamento não se mostra com limitações de conexões, mas é prudente um estudo das requisições e da demanda da rede. Informações detalhada do processador, memória e dos socket 433-500 Mhz AMD Geode LX processador chip único com chip CS5536 companheiro. 128-512 Mbyte DDR-SDRAM, soldadas na placa 4Mbit Flash BIOS BOOT CompactFlash Tipo I / II socket. 25 3.3 HARDWARE Inicialmente projetado para sistema operacionais baseado do UNIX como: FreeBSD, NetBSD, OpenBSD e Linux, e hoje com uma gama bem maior. Com BIOS para o funcionamento pleno pela porta serial PXE ROM de inicialização para inicializar diskless, funciona na maioria dos sistemas operacionais em tempo real. Figura 3 – Soekris Engineering net5501 sem a arquitetura Fonte: (http://www.soekris.com/pictures/net5501/net5501_70_BO_front_big.jpg) Figura 4 – Soekris Engineering net5501 http://www.soekris.com/pictures/net5501/net5501_70_BO_front_big.jpg 26 Fonte: http://www.soekris.com/pictures/net5501/net5501_BC_front_big.jpg De modo geral podemos resumidamente demonstrar as especificações técnicas deste equipamento apresentado na Figura 3 – Soekris Engineering net5501 Quadro 1 – Tabela demonstrativa das especificações técnicas do Net 5501 CPU 433-600 Mhz AMD Geode LX chip único com chip CS5536 companheiro Memória 128-1024 Mbyte DDR-SDRAM, soldadas na placa Memória 4Mbit Flash BIOS BOOT / A memória adicional CompactFlash Tipo I / II socket, 8 megabytes para 32 Gbytes FLASH ou Micro-driver USB 2.0, uma interna, uma porta externa Entrada / Saída 12 bits de propósito geral de I / O, header 20 pinos Dimensões Câmara tamanho 6,3 "x 6,5" Poder Fonte de alimentação externa DC-6 25V, max 20 Watt, protegido com TVS Poder Opção para 5V usando o conector interno Ethernet 04/01 VIA VT6105M Auto MDIX 10/100 Mbit RJ-45 protegidos com 2KW/100A TVS Interfaces UltraDMA-100 com 44 pinos de 2.5 "Hard Drive” Interfaces Serial ATA 1.0 para Hard Drive, com +5 V e +12 V de alimentação cabeçalho Fonte: http://www.soekris.com/pictures/net5501/net5501_BC_front_big.jpg 27 4 PROJETO MICKOOPENBSD 4.1 HISTÓRICO O projeto MikroOpenBSD nasceu em 15/02/2010, baseado no OpenBSD 4.5, para ser apresentado como Trabalho de Conclusão de Curso da Faculdade de Castanhal-FCAT, tem como principal objetivo a produção de uma versão extremamente pequena (50MB) do Sistema Operacional OpenBSD para ser utilizado como um SO de rede para sistemas embarcados. Ele é totalmente customizável e pode ser instalado em qualquer hardware que tenha uma arquitetura i386. Figura 5 - Imagem de apresentação do lançamento do OpenBSD 4.5 Fonte: http://www.openbsd.org 4.2 CARACTERÍSTICAS O MikroOpenBSD trás consigo todas as características do sistema operacional OpenBSD sendo apenas customizável em seus pacotes para que o mesmo adquirisse potencial de sistema embarcado, mantendo o Kernel original. http://www.openbsd.org/ 28 O MikroOpenBSD é uma versão reduzida do sistema OpenBSD, porém só existem modificações na infra-estrutura do sistema, nenhum arquivo fonte do mesmo é modificado, logo o sistema mantém o mesmo nível de segurança oferecido pelo OpenBSD. A versão utilizada para a criação do MikroOpenBSD é a versão estável do OpenBSD e todos os patchs de segurança e bugfix que estão disponíveis para programas e para o kernel que fazem parte do OpenBSD são aplicados ao MikroOpenBSD. A customização do Sistema Operacional OpenBSD como sistema embarcado em redes de computadores é o principal objetivo deste Projeto. Os serviços aqui apresentado é uma demonstração aplicada em nível de redes de computadores embarcada no hardware Net5501 da Soekris Engineering, com os seguintes serviços: DHCP, PF e GATEWAY, é de suma importância o esclarecimento de que tais serviços são apenas uma demonstração em nível de TCC, pois, o hardware tem a disponibilidade de todo uma gama de serviços se fazendo análogo ao de um servidor de redes propriamente dito. 4.3 SERVIÇOS Normalmente, o OpenBSD é inicialmente configurado pelo processo de instalação. No entanto, é bom entender o que acontece nesse processo e como ele funciona. 4.3.1 Configuração da rede Todas as configurações de redes são feitas usando arquivos de texto simples no diretório /etc.29 4.3.2 A rede será configura com os seguintes serviços DHCP, FIREWALL e GATEWAY: DHCP é a sigla para Dynamic Host ConfigurationProtocol. Trata-se de um protocolo utilizado em redes de computadores que permite a estes obterem um endereço IP automaticamente. O protocolo DHCP é eficiente servidor de endereços IP na medida em que as máquinas solicitam conexão à rede. Quando um computador desconecta, seu IP fica livre para uso de outra máquina. Para isso, o Soekris net5501 será configurado para fazer uma checagem da rede em intervalos pré-definidos. Funcionamento do DHCP: Quando um computador se conecta a uma rede, ele geralmente não sabe quem é o servidor DHCP e, então, envia uma solicitação à rede em broadcast para que o servidor DHCP "veja" que uma máquina-cliente está querendo fazer parte da rede e, portanto, deverá receber os parâmetros necessários. O servidor DHCP responde informando os dados cabíveis, principalmente um número IP livre até então. Caso o cliente aceite, esse número ficará indisponível a outros computadores que se conectarem a rede, já que um endereço IP só pode ser utilizado por uma única máquina por vez. O administrador da rede pode configurar o protocolo DHCP para funcionar nas seguintes formas: automática, dinâmica e manual: Automática: neste modo, uma determinada quantidade de endereços IP é definida para ser usada na rede, por exemplo, de 192.168.0.1 a 192.168.0.50. Assim, quando um computador fizer uma solicitação de inclusão na rede, um dos endereços IPs em desuso é oferecido a ele; Dinâmica: este modo é muito semelhante ao automático, exceto no fato de que a conexão à rede é feita por um tempo pré-determinado. Por exemplo, uma máquina só poderá ficar conectada por no máximo duas horas; Manual: este modo funciona da seguinte forma: cada placa de rede possui um parâmetro exclusivo conhecido por MAC (Medium Access Control). Trata-se de uma seqüência numérica que funciona como um recurso para identificar placas de rede. Como esse valor é único, o administrador pode reservar um endereço IP para o computador que possui um determinado valor de MAC. Assim, só este computador http://www.infowester.com/internetprotocol.php 30 utilizará o IP em questão. Esse recurso é interessante para quando é necessário que o computador tenha um endereço IP fixo, ou seja, que não muda a cada conexão. PF - FIREWALL: FILTRO DE PACOTES PF (PACKET FILTER) Quando se pensou no desenvolvimento de um Sistema embarcado para Redes de computadores o firewall foi levado em consideração que esse sistema seria crítico, pois provavelmente seria colocado na fronteira entre uma rede interna e a Internet, ou seja, seria um gateway de borda. Como gateway de borda da rede, este sistema estaria de frente para a Internet, recebendo todo o tipo de tráfego e ataque que por ventura poderiam desferir contra ele, logo o sistema operacional escolhido deveria ser um sistema ultra-seguro, estável, performático e que possuísse um filtro de pacote completo exigido pelos administradores de rede/segurança atuais. Figura 6 - demonstração do funcionamento do firewall Fonte: Manual de configuração da Microsoft 2002 O FILTRO DE PACOTES PF (PACKET FILTER) DO OPENBSD: Em seu kernel o OpenBSD possui um filtro pacotes chamado PF (PacketFilter). O PF possui todas as características que um firewall moderno deve possuir, entre estas características: ● Filtro de pacotes que interage com as camadas 3 (rede) e 4 (transporte) da pilha TCP/IP. O PF pode filtrar tráfego baseado em endereço/porta de origem, endereço/porta de destino, protocolo da camada de transporte (TCP, UDP, ICMP), flags que indicam o estado da conexão (SYN, SYN+ACK), pacotes marcados na camada de enlace, etc. ● Filtro de pacotes statefull, ou seja, mantém o estado das conexões estabelecidas e leva isso em conta na hora de filtrar o tráfego. Um exemplo da 31 utilização desta tecnologia é na melhora substancial da performance do firewall, uma vez que uma conexão foi estabelecida, foi criado um estado para a mesma e os próximos pacotes que pertencem a esta conexão podem passar direto sem serem checados contra as regras de firewall. Isso aumenta bastante o desempenho do firewall principalmente em redes com grande tráfego e muitas regras para serem conferidas. ● O PF é capaz de realizar NAT (Network Address Translation), BINAT (Bi Network Address Translation), NAPT (Network Address Port Translation). Todas essas tecnologias são utilizadas pelos administradores de rede. O NAT, por exemplo, é utilizado para permitir que uma rede utilizando endereços não permitidos na Internet, como por exemplo, 10.0.0.0/8 e 192.168.0.0/16, possam sair para ela através da tradução do endereço de origem. Essa técnica é comumente conhecida como Source NAT. ● Filas de pacotes e priorização, tecnologia esta muito utilizada para prática de QOS (Qualityof Service). ● Normalização de pacotes, tecnologia que impede o ataque por pacotes mal formados. Um pacote só pode ser enviado para a camada de cima do protocolo TCP/IP se ele puder ser montado completamente no buffer de recepção de pacotes. Se este não puder ser montado, ou for mal formado o mesmo será descartado. Figura 7 - Atuação do PF na pilha TCP/IP Fonte: Manual de configuração da Microsoft 2002 É importante ter em mente como o PF processa os pacotes que chegam ou que saem pelas interfaces de rede. As regras de firewall são consultadas da esquerda para a direita de cima para baixo e a última regra que combina é a que será utilizada. 32 Toda vez que um pacote precisa entrar passar, ou sair por uma interface de rede, primeiramente é verificado junto às regras de firewall se o pacote pode executar tal ação. As ações estão detalhadas a seguir: ● Entrar (INPUT), quando o endereço de destino do pacote é o próprio firewall. ● Sair (OUTPUT), quando o endereço de origem do pacote é o próprio firewall. ● Passar (FORWARD), quando o pacote não é para o firewall e nem se origina dele, mas tem que passar por suas interfaces de rede para chegar ao seu destino. GATEWAY No OpenBSD para trabalhar como um Gateway de uma rede, importante entender a funcionalidade de um gateway numa rede, ele se comporta como uma porta de ligação, servindo como uma ponte de acesso informações de fora ou de dentro de sua rede, ou o acesso a rede da internet, no entanto como se ele fosse uma máquina intermediária geralmente destinada a interligar redes, separando domínios de colisão, ou mesmo traduzir protocolos. Podemos citar como exemplos de gateway os equipamentos de routers (ou roteadores) e firewalls, já que ambos servem de intermediários entre o utilizador e a rede. Os gateways são componentes indispensáveis para alcançar as comunicações entre terminais ligados a redes heterogêneas que usam protocolos diferentes. São equipamentos que podem ser um computador com duas (ou mais) placas de rede, ou um dispositivo dedicado, cujo objetivo é permitir a comunicação entre duas redes com arquiteturas diferentes, como também compartilhar uma conexão com a Internet entre várias estações. Esse equipamento permite traduzir os endereços e os formatos de mensagens presentes em redes diferentes. Um gateway de rede pode ser completamente implementado em software, totalmente em hardware, ou como uma combinação de ambos. Atua em todas as camadas do modelo OSI. O gateway é divido em dois tipos: gateways conversores do meio e gateways tradutores de protocolos. O primeiro tipo é bem simples e muito utilizado em inter- redes que oferecem o serviço de datagrama e funcionam basicamente em receber um pacote do nível inferior, tratar o cabeçalho inter-redes do pacote, descobrindo o http://pt.wikipedia.org/wiki/Computador http://pt.wikipedia.org/wiki/Rede_de_computadores http://pt.wikipedia.org/wiki/Dom%C3%ADnio_de_colis%C3%A3ohttp://pt.wikipedia.org/wiki/Protocolo http://pt.wikipedia.org/wiki/Router http://pt.wikipedia.org/wiki/Roteador http://pt.wikipedia.org/wiki/Firewall 33 roteamento necessário, construir novo cabeçalho inter-redes (quando necessário) e enviar esse novo pacote ao próximo destino. O segundo é mais complexo e muito utilizado em inter-redes que utilizam circuitos virtuais passo a passo e atuam traduzindo as mensagens de uma rede, em mensagens de outra rede, com a mesma semântica de protocolo. 34 5 CONSIDERAÇÕES FINAIS O que não é sistema embutido um dia será – este trabalho traz consigo a convicção da inevitável dominação dos sistemas embarcados em todos os aparelhos elétricos e eletrônicos de um modo geral são por excelência potencial campo de propagação aos sistemas embarcados, embora os holofotes da mídia dêem destaques aos computadores, já são estimados 90% das tecnologias computacionais serem sistemas embarcados até 2020 (International Business Machines, Integrated Electronics Corporation e Apple, 2010). A implementação a redes de computadores é uma inovação dos Sistemas Embarcados, com a criação do projeto MikroOpenBSD encapsulado no hardware net5501, e tendo função análoga aos dos servidores demonstrando que é possível toda uma gama de serviços. Portando, o desenvolvimento desde sistema embutido MikroOpenBSD que tem as mesmas ou com poucas limitações de um sistema operacional de redes de computadores. Desta forma, abrimos aqui a possibilidade de estudos e desenvolvimentos futuros, de facilitar a configuração com a criação de uma interface web e não mais só via console com comandos de Unix, e traz também a idéia de extensão aos hardwares nacional. Este trabalho contribui para o aperfeiçoamento, conhecimento e desenvolvimento dos sistemas embarcados dando um valor acadêmico - cientifico imensurável, possibilitando o embasamento de futuras pesquisas nesta área extremamente grande. 35 REFERÊNCIAS BARROS, Edna; CAVALCANTE, Sérgio. Introdução aos sistemas embarcados. Universidade Federal de Pernambuco – UFPE, 2012. MORIMOTO, Carlos E.Hardware II O Guia Definitivo. Editora: Sul Editores, 2007. CHAS, Otavio. Sistemas Embarcados. Disponível em: <http:// www.sbajovem.org>. Acesso em: 07 de Novembro 2012. soekris engineering, Inc. net5501. Disponível em: <http://www.soekris.com/net5501.htm>. Acesso em: 10 de Novembro 2012. International Business Machines, Integrated Electronics Corporation e Apple, Serviços Convergentes de Telecomunicações. Agência Brasileira de Desenvolvimento Industrial - ABDI, Brasilia – DF, 2010. MIRANDA, Micherlan Lobato. Projeto mikroopenbsd, Faculdade de Castanhal – FCAT, 2010. OLEQUES, Ernesto Schimidt. Sistemas Embarcados. Universidade da Região da Campanha – Alegrete-RS, 2002. REIS, Claiton. Sistemas operacionais para sistemas embarcados. Bahia: UFBA, 2004. SALVATTI, João. PFADMIN – UMA FERRAMENTA WEB PARA GERÊNCIA DE FIREWALL UTILIZANDO O PACKET FILTER DO OPENBSD. Universidade Federal do Pará - UFPA, 2010. http://www.soekris.com/net5501.htm http://www.soekris.com/net5501.htm http://www.soekris.com/net5501.htm 36 ANEXO PROCEDIMENTO DE INSTALAÇÃO DO OPENBSD E O PROCESSO DE CUSTOMIZAÇÃO E PERSONALIZAÇÃO PARA O SISTEMA EMBARCADO MIKROOPENBSD. 1 INTRODUÇÃO O material aqui apresentado demonstrará o processo de instalação SO OpenBSD 4.5 (Sistema Operacional OpenBSD 4.5) sendo este baseado no manual de guia de instalação do OpenBSD, disponibilizado no site oficial do OpenBsd conforme o link (http://openbsd.com/ ) no site na 37 aba de instalação do OpenBSD temos a visão geral do processo de instalação deste sistema. No entanto não enfatizaremos todo esse processo de instalação, cabe ressaltar que este é um pequeno tutorial e se limitará a essa abordagem completa, sendo este utilizado para servir de apoio para pesquisas do processo instalação simples deste sistema. Neste tutorial também estaremos trazendo o processo de criação de um OpenBSD Embedded (Embarcado) neste caso o MikroOpenBSD, que será customizável em um hardware Soekris Engineering net5501, este artigo não tem a pretensão de apresentar todos os serviços que pode ser implementado em uma rede com o SE, pois a dinâmica do tempo é um fator crucial, para tanto iremos nos limitar a alguns, este foram escolhidos como os serviços mais básicos e eficientes em uma rede: firewall via protocolo , Router, Gateway de Internet, serviços DHCP, o instrumento de estudo deste processo de criação e configuração tem como base o tutorial disponibilizado no link: (http://www.kernel-panic.it/openbsd/embedded/) Neste processo de criação de um Kernel personalizado, comparando o tutorial citado acima, somente foi modificado o nome da etiqueta do equipamento no caso ficando este como netXXxx, que foi utilizado para embarcar o sistema MikroOpenBSD. 2 GUIA SIMPLIFICADO DE INSTALAÇÃO DO OPENBSD 4.5 2.1 VISÃO GERAL DESSE PROCESSO DE INSTALAÇÃO “O OpenBSD há muito tempo é respeitado pelo seu processo de instalação simples e direto, consistente entre todas as plataformas. Todas as plataformas utilizam um procedimento de instalação parecido, no entanto existem alguns pequenos detalhes diferentes em certas plataformas. Em todo caso, é aconselhável que você leia o documento INSTALL, específico da sua plataforma, no diretório plataforma do CD-ROM ou no sítio FTP (por exemplo, i386/INSTALL.i386, mac68k/INSTALL.mac68k ou sparc/INSTALL.sparc)”. pois o processo de instalação aqui apresentado utilizará a plataforma de i386. As imagens aqui apresentadas foram retiradas do processo de instalação do klmOpenBSD, instalado em uma maquina virtual neste caso VMware Workstation que é um software /máquina virtual que permite a instalação e utilização de um sistema operacional dentro de outro dando suporte real a software de outros sistemas operativos.( http://pt.wikipedia.org/wiki/VMware_Workstation ), para mais detalhes de como utilizar este software consulte o tutorial do BABOO!!! Disponibilizado no site (http://www.baboo.com.br/). 2.2 INSTALAÇÃO SIMPLES O processo de instalação e configurar do OpenBSD aqui apresentado é um uma configuração padrão útil e com pouca intervenção do usuário. De fato, frequentemente você notará que pode simplesmente digitar ENTER um determinado número de vezes para conseguir uma boa instalação do OpenBSD, para mais detalhe do processo de instalação e configuração consulte o manual completo disponibilizado no site (http://openbsd.com/) na aba de instalação do OpenBSD. 2.3 INÍCIO DA INSTALAÇÃO O meio de inicialização que foi utilizado foi um CD de instalação do OpenBSD 4.5 disponibilizado para dowloand no site (http://openbsd.com/) . É importante ressaltar que durante o processo de inicialização, o kernel e todos os programas usados para a instalação do OpenBSD são carregados na memória. Assim que o kernel de instalação estiver inicializado, a mídia de inicialização não é mais necessária, pois tudo executa a partir do disco de RAM. Neste ponto você pode realmente remover o CD ou outro meio de que você usou para inicializar, assumindo que você não precisa do CD para obter os arquivos de instalação. 2.4 ILUSTRAÇÃO DA INSTALAÇÃO As imagens aqui apresentadas segue uma seqüência simples de instalação: Figura 1 - Espere o sistema iniciar o boot 38 Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 2 - Após os arquivos serem carregados automaticamente, irá aparecer o MENU, onde se encontra 3 opções, selecione a primeira (i) para INSTALAR O SISTELA Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 39 Figura 3 – Nesta janela se escolheo tipo de terminal, vamos escolher o padrão pressionando ENTER na próxima tela escolha o layout do teclado (no nosso caso iremos usar o padrão).ENTER. Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 4 – Continuar o processo de instalação?(y) Yes=sim Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 40 Figura 5 – A primeira pergunta é qual o disco raiz, vamos escolher o padrão pressione ENTER, a próxima pergunta é se vai usar o disco inteiro para instalar o OpenBSD (Yes). Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 6 – Você está no PARTICIONADOR, HELP para AJUDA Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 41 Figura 7- Digite P para exibir partições. Você pode ver as partições de duas formas: p m = partições em MB e p g = partições em GB Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 8 - Digite a a para adicionar partição A Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 42 Figura 9 - Pressione ENTER depois lhe pergunta qual será o tamanho dessa partição, no caso como exemplo 3GB ENTER. Escolha o tipo de Sistema de Arquivos vamos usar o 4.2BSD, então pressione ENTER, depois informar qual é o ponto de montagem, no caso: / = raiz Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 10 - Digite a b para adicionar uma partição B. Digite o tamanho da partição: 1g, depois informe qual será o File System, no caso SWAP, Digite Q para SALVAR E SAIR, Digite Y para ESCREVER Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 43 Figura 11 - Digite Y para CONFIRMAR Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 12 - Aguarde os arquivos serem carregados,depois informe qual será o nome do seu HOST? (klmOpenBSD) Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 44 Figura 13 - Você quer configurar a internet? No nosso caso, estávamos com internet no local, mas o assistente é praticamente automático, veja o exemplo abaixo Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 14 – Bastar você pressionar ENTER que o sistema vai configurando automaticamente Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 45 Figura 15 - Usar CD para instalação de PACOTES. Pressione ENTER Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 16 – Antes dessa tela será mostrado uma pergunta a respeito do caminho do Arquivo - Pressione ENTER já nesta tela os pacotes que deseja instalar,você precisa, no mínimo, de um kernel (bsd) e dos pacotes de arquivos base46.tgz e etc46.tgz. Você pode adicionar ou remover pacotes de arquivos usando os caracteres "+" e "-" na frente do nome do pacote de arquivos, e também pode usar os caracteres curinga Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 46 Figura 17 – Depois de escolhido os pacotes que você deseja, digite done para instalar os pacotes padrões em seguida Y e espere os pacotes serem instalados Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 18 - Pressione ENTER Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 47 Figura 19 - Neste ponto seu sistema está instalado e pronto para ser inicializado e configurado para o serviço. Antes disso, entretanto, é melhor você verificar a PÁGINA ERRATA para ver se existe alguma falha que possa causar-lhe algum dano Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 20- O OpenBSD está instalado sem erros digite HALT ou reboot para reinicia Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 48 3 GUIA SIMPLIFICADO DA CRIAÇÃO OPENBSD EMBEDDED (EMBARCADO) 3.1 INSTALAÇÃO SIMPLES O processo de criação e configurar de um OpenBSD Embedded(Embarcado) neste caso klmOpenBSD que será customizável em um hardware Soekris Engineering net5501 aqui apresentado é uma configuração totalmente baseada no manual disponibilizado no site (http://www.kernel- panic.it/openbsd/embedded/) Conforme relatado anteriormente na introdução, este artigo não tem a pretensão de apresentar todos os serviços que pode ser implementado em uma rede com o SE, pois a dinâmica do tempo é um fator crucial. No processo de criação de um Kernel personalizado, comparando o manual disponibilizado acima, somente foi modificado o nome da etiqueta do equipamento no caso ficando este como net5501, que foi utilizado para embarcar o sistema MikroOpenBSD. 3.2 FERRAMENTAS UTILIZADAS NA CRIAÇÃO As ferramentas básicas que foram utilizadas foram o Sistema Operacional OpenBSD já mostrado neste, um simples processo de instalação, a escolha deste sistema se deu por razões de sua simplicidade de instalação e por ser um sistema seguro por padrão, particularmente bem adaptado para "ultra-light" instalações e aplicações de segurança crítica, um computador embutido para ser preciso um net5501, fabricado pela Soekris Engineering, Inc e um cartão de memória de 64MB Compact que é usada como memória de massa. 3.3 ILUSTRAÇÃO DA INSTALAÇÃO As imagens aqui apresentadas são retiradas do processo de instalação virtualizada pelo VMware Workstation máquina virtual e as linha de comando do manual do OpenBSD Embedded, seguindo uma seqüência simples de instalação. Segundo o manual OpenBSD Embedded, há muitas maneiras de instalar o sistema operacional, cada um com suas peculiaridades e, portanto, mais adequados para diferentes situações e necessidades. No nosso caso a maneira de instalação escolhida foi de a de escrever diretamente para o disco, possibilitando personalizar totalmente o sistema, usando o mínimo de espaço em disco (o sistema em grande parte se encaixa em um cartão compact flash 32 MB). No entanto o cartão Compact Flash de memória de massa,tem um número limitado de ciclos de escrita e, portanto, deve ser montado read-only. Neste caso criamos um disco virtual é nele montamos o sistema inteiro somente leitura, exceto para o diretórios ( /tmp, /root e /Var ), diretórios, que são mapeados para a memória. De qualquer forma, isso não significa que você não será capaz de fazer alterações no sistema de arquivos, mas só que toda vez que você precisará editar um arquivo no disco você terá que montar primeiro a leitura-escrita. 49 Figura 21- Ilustração do Sistema Virtualizado Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Figura 22 - Linha de Comando Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Na figura 22 - Mostra as linhas de comando usados para editar o arquivo do disco (# mount -o rw,noatime /dev/wd0a /) já na linha ((# mount -o ro /dev/wd0a/ ) estamos montamos de volta para somente leitura e escrita. 3.4 INSTALAÇÃO DIRETAMENTE NO DISCO. Antes de entrar no amplo da instalação, precisamos recuperar os valores de geometria do disco, e para obter essa informação, basta inserir o cartão Compact Flash em um soquete, plugue um cabo serial no aparelho e ligue o aparelho. Você deve obter algo como: 50 Figura 23 – Obtendo informações do disco Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Na figura acima podemos obter informações do número do cilindro, os números 490, 8 e 32 são, respectivamente essa informação do cilindro (ou seja, faixas por cilindro) e setores (por faixa) do disco. Bem agora iremos criar um sistema de arquivos de inicialização do cartão flash e copiar os arquivos que precisamos do OS. Este procedimento nos permitiu fazer menos operações de gravação no cartão de memória, neste caso criaremos um arquivo de imagem de disco do tamanho do cartão CF (ver vnd (4) para mais detalhes) e, eventualmente, copiá-lopara o dispositivo. Para criar uma imagem de disco virtual de 64MB, você pode digitar: Figura 24 – Ilustração do Sistema Virtualizado Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 51 Figura 25 - Linha de comando e resposta do sistema Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Na figura 25 como podemos observar apôs digitar a linha de comando (# dd IF=/dev/zero of=net5501.img bs=512 count= 125440) o sistema retorna automaticamente os numero 125440+0 de registro de entrada e os números de registro de saída e os números transferência por segundos. O parâmetro bs define o bloco (sector) tamanho (geralmente 512 bytes), e contar o número de setores, que obtido pela multiplicação dos valores da geometria do disco que são os números (32 * 8 * 490) resultando em um total 125440 de setores. Uma observação: se você deseja escrever diretamente para o disco, sem se preocupar com a imagem de disco virtual, basta substituir svnd0 com o disco adequado (por exemplo sd0). Depois de criar o disco virtual, precisamos do disklabel (8), para construir o sistema de arquivos e torná-lo inicializável, mas para compreender essa etapa, é preciso primeiro entender como OpenBSD trabalha na arquitetura i386. Então vamos dar uma olhada, em paralelo, no processo de boot e como ele reflete sobre o nosso processo de instalação (para obter mais informações, consulte [FAQ14]) disponibilizado no site do OpenBSD. 3.5 GRAVAÇÃO NO CÓDIGO DO BOOT O Master Boot Record é o primeiro setor físico (512 bytes) no disco, que é carregada pelo BIOS após o POST e que contém a tabela de partição primária (Master Partition Table) em uma tradução literal significa (Tabela de Partição Mestre), e um pequeno programa (Master Boot Code) código de Boot para carregar o Partition Boot Record em uma tradução livre seria o mesmo que gravar na partição de boot. OpenBSD fornece um "modelo de arquivo MBR" (/ usr / mdec / mbr) que podemos instalar com fdisk (8). Figura 26- Linha de comando com a resposta do sistema Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 52 Neste momento precisamos especificar a geometria do disco (que já vimos antes como recuperar esses dados) sabendo que não estamos instalando diretamente para o disco, e sim em uma imagem de disco virtual. 3.6 CARREGANDO A SEGUNDA FASE DE INICIALIZAÇÃO O processo de boot do OpenBSD passa por duas fases que são: • No primeiro processo ou etapa, o MBR carrega a PBR (Partition Boot Record ou primeira fase de carregamento do boot), que é o primeiro setor físico (512 bytes) na partição do OpenBSD primária. Ele contém um pequeno programa, biosboot (8), que tem a tarefa de carregar o boot de segundo estágio (/boot). • Na segunda etapa, (/ boot), que é o gerenciador de boot de segundo estágio, tem a tarefa de acessar o sistema de arquivos através do OpenBSD BIOS da máquina, e localizar e carregar o kernel atual. Antes de instalar o boot de inicialização, é preciso criar o disklabel (5), que contém informações detalhadas sobre a geometria do disco e partições que atua como uma interface entre o disco e os drivers de disco contidas no kernel. O disklabel (8) utilitário permite que você escreva o rótulo do disco (mais uma vez, informação sobre a geometria do disco virá ser útil). Figura 27 - Linha de comando e configuração para criação disco, disklabel, que terá as informações detalhadas da geometria do disco etc Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 53 Figura 28 - Imagem ampliada da figura 27 Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Na figura 28 podemos visualizar o comando de criação do disco ( # Disklabel -E svnd0), escolhendo a letra e que permiti mudar os parâmetros do dispositivo para o / dev/rsvnd0c:, configuramos para o tipo de disco [vdn] para ESD, configuramos o nome fictício da etiqueta como : net5501 os setores para 32, trilhas 8 ,cilindro 256 e os números de cilindro 490, no total de setores foi escolhido o padrão assim como as informações de RPM e etc. Criamos a partição a a tamanho padrão e o tipo 4.2BSD, salvamos e saímos com a letra q e escrevemos com a letra y. Agora nós podemos construir o sistema de arquivos: Figura 29 - Linha de comando e resposta do sistema Fonte: Manual do OpenBSD Embedded(http://www.kernel-panic.it/openbsd/embedded/) Iremos montar e instalar os dois gestores de arranque com o installboot (8) no usando o seguinte comando: Figura 30 - Linha de comando e resposta do sistema 54 Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Agora podemos configurar alguns parâmetros de inicialização no / etc / boot.conf (5) arquivo de configuração. Vamos usá-lo para configurar o console serial, que tem uma taxa de transmissão padrão de 19.200 (ou 38.400 para WRAP e placas ALIX). Figura 31 - Linha de comando e configuração Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 3.7 CONSTRUINDO UM KERNEL PERSONALIZADO Agora que o disco está pronto, só temos que preenchê-lo. Vamos começar com o kernel, para o qual temos duas opções: se o cartão CF não é muito pequeno, a solução mais fácil e copiar o padrão do kernel BSD para o CF para use o comando: Figura 32 - Linha de comando para copiar Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Vale ressaltar que na figura 29 apresenta um comando que possibilitará copiar o kernel do BSD para o CF. Ou então, se você deseja que o kernel, possa ser menor e mais rápido na hora da inicialização, você pode criar um kernel personalizado com apenas os recursos mínimos. O seguinte é um exemplo de configuração adequada para o caso. Figura 33 – Personalizando o kernel Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Na figura acima mostra um pequeno exemplo de configuração manual de um kernel personalizado retirado do manual do OpenBSD, no nosso caso configuramos com apenas algumas configurações de “Opções de Networking” etc. 55 Agora iremos usar o comando para compilar o kernel e instalá-lo: Figura 34 – Comando para copilar o kernel Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 3.8 PREENCHENDO O SISTEMA DE ARQUIVOS É necessário criarmos os arquivos de configuração necessária no arquivo( / etc) (/ Mnt/net5501/etc /). Vamos apenas ver os principais aqui: a lista completa vai depender muito da utilização do dispositivo. / etc / fstab (5) Neste arquivo contém as informações do arquivo de sistema. Figura 35–Criação do arquivo de configuração Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Foi feito o mapeamos o sistema de arquivos( /tmp) para a memória. Os diretórios (/var e / root), de lida e escrita, poderão ser links simbólicos para /tmp /var. Vamos também criar um diretório ( /tmplate) diretório que contém a árvore de diretórios que mount_mfs (8) que será usado para preencher o ( / tmp) após a sua criação (Iremos colocar pseudo-dispositivos e os arquivos necessários pelo syslogd (8) para este diretório mais tarde). Figura 36 – Criação de diretórios do sistema Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Nos arquivos de rede foram configurados os diretórios: / etc / hosts (5) (nome do host do banco de dados), / etc / hostname. if (5) (arquivos de configuração de interface específica), / etc / myname (5) (nome do host padrão), / etc / mygate (5) (gateway padrão), / etc / resolv.conf (5) (arquivo de configuração de resolução. Já os arquivos de usuários foram configurados os diretorios: / etc / group (5) (permissões de grupo de arquivos) e / etc / master.passwd (5) (arquivo de senhas); os outros arquivos como ( /etc / passwd (5), /pwd.db /etc, /etc /spwd.db) será gerado pelo pwd_mkdb (8) pela linha de comando: Figura37 – Criação de diretórios do sistema Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Você pode adicionar todos os usuários e grupos administrativos do sistema você irá precisar. Se você quiser usar o sudo (8), que normalmente é uma boa idéia, você precisa criar o sudoers (5) arquivo (usando o "visudo-f / mnt /net551 /etc /sudoers em linha de comando). Os arquivos pf (4) os arquivos de configuração / etc / pf.conf (5) (configuração e regras) e / etc / pf.os (5) (impressões digitais OS), cliente ssh arquivos (1) de configuração / etc / ssh / 56 ssh_config (SSH arquivo de configuração), / moduli etc / ssh / sshd_config (arquivo de configuração do SSH), / etc / módulos (5) (sistema de Diffie-Hellman de arquivo). Também podemos gerar as chaves de host privado na linha de comando. Figura 38 – Linha de comando para os arquivos de configuração Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda No diretório / etc / syslog.conf (5), contém o syslogd (8) de configuração. Todos os arquivos de log têm que ser criados, caso contrário, o syslogd (8) se queixa de boot, ou seja, ele precisa desse diretórios criados para poder levantar os serviços . Figura 39 – Linha de comando para os arquivos de configuração Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda O diretório (/ var) irá residir na memória volátil, recomenda-se a transmitir mensagens de log para um host remoto log; / etc / ttys (5),que é o arquivo de inicialização do terminal, que será modificado de acordo com a nossa configuração. Figura 40 – Linha de comando para os arquivos de configuração Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda No arquivo diretório /etc / sysctl.conf(5), contem o arquivo sysctl (8) que servirá para definir as variáveis na inicialização do sistema, por exemplo. Figura 41 – Arquivo de configuração de inicialização Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Em seguida, precisamos copiar o script de inicialização (rc (8), rc.local (8), rc.securelevel (8), rc.conf (8), rc.conf.local (8), rc.shutdown (8), netstart (8)) e criar os arquivos de dispositivo como. Figura 42 – Copia do script de inicialização 57 Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Obs: rc (8) apaga o diretório /tmp da inicialização, removendo o conteúdo do /var e /root que são diretórios, portanto, e recomendável que se exclua as seguintes linhas do /mnt /net5501 /etc /rc, conforme abaixo: Figura 43 – Removendo o diretório de inicialização Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda O diretório /dev, /log, usado por syslogd (8), deve ser escrito: por isso, transformá-lo em um link para o diretório /var /run /dev / log. O mesmo se aplica os de terminais, que devem ser capazes de mudar as permissões de administrador. Figura 44 – Removendo o diretório de inicialização Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Finalmente, podemos instalar os binários e bibliotecas. A maneira mais simples é copiando- as do sistema atualmente em uso, ou você pode retirá-los do arquivo de instalação set (baseXX.tgz). Para poupar algum tempo, você pode criar um arquivo com a lista dos binários para copiar (um bom ponto de partida é flashsmall.txt de flashdist). Figura 45 – Instalando os arquivos binários Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Se você quiser diminuir ainda mais o espaço em discos binários, você pode dar uma olhada crunchgen (8), que criá-los todos em um único arquivo binário que modifica seu comportamento segundo argv [0], ou remover os símbolos de depuração comum das bibliotecas utilizando o comando strip (1). Figura 47 – Comando strip 58 Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Feito a remoção de depuração dos arquivos comum da biblioteca binária, só temos que transferir o sistema de arquivo que criamos para o cartão de memória conforme o comando: Figura 48 – Comando para transferir o sistema de arquivo Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Coloque o cartão de memória no dispositivo e ligue o mesmo e acompanhe o carregamento do sistema. 3.9 INSTALANDO NOS DISCOS Criar um sistema integrado com memória de massa não oferece muitos benefícios. • Não há necessidade de usar cartões Compact Flash ou 2,5 "como opção de poupar dinheiro. • Usando NFS, você provavelmente terá maiores discos disponível. • Você pode gerenciar centralmente os discos. • Sistemas de arquivos que você pode compartilhar (normalmente os / usr, o que raramente muda), entre vários hosts, fazendo manutenção e atualização mais fáceis e mais rápidas, porem há algumas desvantagens. • Um novo servidor torna-se necessário, para fornecer todos os serviços necessários para a inicialização dos dispositivos. • Em sistemas de segurança crítica, como firewalls, usando o NFS é uma opção não aconselhável. • Configuração do servidor de boot pode não ser trivial. Sabendo dessas informações, vamos começar a configuração. Precisamos configurar um servidor de boot, na qual a maioria da instalação necessita de um lugar, para esta instalação necessitamos do dispositivo embutido é as informações do seu endereço MAC. Para obtê-lo, basta ligá-lo e adquirir via console você deve obter algo como. Figura 49 – Obtendo informações do endereço MAC do dispositivo 59 Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Após ter essas informações mostradas na tela, vamos para o procedimento de como compilar um kernel sem disco rígido, e depois mostraremos o processo de inicialização do sistema para entender quais serviços de rede que será necessário para criar no servidor de boot. 3.40 CONSTRUINDO UM KERNEL PERSONALIZADO Tudo o que vimos antes sobre a configuração do kernel e compilação ainda e aplicável, apenas não se esqueça de especificar no arquivo de configuração, que o sistema deve apontar para a raiz e o sistemas de arquivos swap de NFS. Figura 50 – Informações dos sistemas de arquivos swap e NFS Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 3.41 RARPD (8) Na inicialização, o dispositivo tenta definir as configurações da sua rede. Uma vez que só conhece o seu endereço MAC, ele gera um pedido RARP para obter um endereço IP. Portanto, devemos permitir que o rarpd (8) no servidor de boot no diretório /etc / rc.conf.local (8) no seguinte arquivo: Figura 51 – Habilitando o pedido RARP Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 60 Se você não quer este pedido possa escutar todas as interfaces, basta substituir o "parâmetro -a" com o nome da interface para escutar. Para utilizar os pedidos RARP, o servidor utiliza dois arquivos: • / etc / ethers (5) que mapeia endereços Ethernet para nomes de host. /etc/ethers Figura 52– Mapeando endereço de ethernet Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda • / etc / hosts (5), que mapeia endereços IP para nomes de host: /etc/hosts Figura 53– Mapeando endereço IP Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Se o host solicitante não existe em ambos os arquivos, o servidor não será capaz de enviar uma resposta. 3.42 DHCPD Agora que o dispositivo tem seu próprio endereço IP, o dispositivo incorporado irá procurar o arquivo de inicialização. Para obter o nome do arquivo, ele irá enviar um pedido de DHCP, para que o nosso servidor possa com eficaz responder. Portanto, precisamos habilitar o dhcpd (8) no servidor de boot /etc /rc.conf.local conforme a figura. Figura 54 Habilitando o Dhcpd Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Agora devemos configurá-lo. Figura 55– Configurando o Dhcpd.conf Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda3.43 TFTPD Ok, agora que o dispositivo já sabe o nome do arquivo de inicialização, o dispositivo diskless tentará baixá-lo, via tftp (1), a partir do servidor em "next-server" ou a partir do servidor DHCP do sistema. Para ativar o tftpd (8) no nosso servidor de boot, é preciso descomentar a seguinte linha no diretório / 61 Figura 56– Habilitando o arquivo ftpd.conf Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Devemos criar o diretório /tftpboot e preenchê-lo com os arquivos apropriados como, pxeboot (8) (que será o segundo estágio do carregador de boot PXE), BSD (o kernel personalizado) e o /tftpboot /etc /boot.conf (8), que contém os principais parâmetro de boot. Figura 57 – Preenchendo o diretório tftpboot Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda 3.44 PARÂMETRO DE BOOT Agora, o sistema irá inicializar, até que aja a necessidades de montar o sistema de arquivos NFS. Para encontrá-lo, ele irar transmitir um pedido bootparams, esperando por algum rpc.bootparamd (8) para dizer que os parâmetros do sistema de arquivos NFS necessita montar. Por isso, precisamos iniciar o bootparamd (8) no nosso servidor. Mais uma vez, temos que editar um par de variáveis em /etc / rc.conf.local (8) com forme a ilustração. Figura 58 – Configuração do parâmetro boot Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Como você pode observar que para fazer bootparamd (8) funcionar, precisamos iniciar o portmap (8) também, que converte os números de programas RPC em números de porta do protocolo DARPA. bootparamd (8) que tem o seu próprio arquivo de configuração que é / etc / bootparams (5), que deve conter uma entrada para cada cliente, indicando os caminhos para a sua raiz e (opcionalmente) a área de swap (campos são delimitados comentradas em branco ou tabulação, e pode abranger várias linhas usando uma barra invertida). Figura 59 – Linha de comando para iniciar o portmap Fonte: Manual do OpenBSD Embedded(http://www.kernel-panic.it/openbsd/embedded/ ) 3.45 NFS O último passo para completar o processo de boot é montar os sistemas de arquivos NFS. Portanto, devemos configurar o servidor NFS, vamos editar o arquivo / etc / rc.conf.local (8) novamente para definir um par de variáveis. Figura 60 – Montando o arquivo NFS 62 Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda No arquivo /exports /net5501 /root, nestes diretórios iram conter todo os sistemas de arquivos do incorporado dispositivo (exceto o diretorio /usr, que na verdade, o sistemas terá a mesma arquitetura,e o servidor pode guardar um monte de espaço em disco seus próprios exportadores no arquivo de diretório /usr, que vimos como preencher o sistema de arquivos. No arquivo /exports /net5501 /swap, o arquivo que irá conter sistema de permuta a área, você pode construir através da execução. Figura 61 – Criação do arquvo de swap de 128MB Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda No servidor NFS, o /etc /exports (5) o arquivo de sistema será exportados é definirá os hosts e as opções de exportação para cada um: Figura 62 – Montando o arquivo NFS Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda A tabela de arquivos do cliente no diretório, /etc /fstab (5) (que, para ser preciso, reside no servidor, no diretório /exports /net5501 /root /etc /fstab, será algo como. Figura 63 – Montando o arquivo NFS Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Agora só temos que ligar o aparelho e, acompanhar o carregamento. 3.46 Instalação de rede A instalação da rede tem muitos passos em comum com a instalação do disco, mais uma vez, teremos de configurar o serviços rarpd (8), dhcpd (8) e tftpd (8) servidores. Desta vez, porém, o kernel de boot é bsd.rd em vez de bsd. É um kernel do disco RAM que, após o arranque, prevê um sistema de arquivos baseado em RAM contendo vários utilitários interessantes para a manutenção do sistema e instalação. Portanto, o arquivo de configuração do boot irá conter uma linha adicional como. Figura 64 – Configuração da rede Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda Para inicializar a partir da rede, os sistemas do Soekris, você deve pressionar as teclas Ctrl- P na inicialização do sistema para entrar no menu da BIOS e, em seguida, digite" F0 boot". Um boot normal da instalação do processo a seguir: 63 Figura 65 – Configuração de Rede 64 65 Fonte: Projeto mikroopenbsd, FCAT 2010, Micherlan Lobato Miranda GLOSSÁRIO ABIWORD: é um livre e open source software processador de texto. Foi originalmente iniciado por SourceGear Corporation como a primeira parte de um AbiSuite proposta ADSL: Tecnologia pela qual a transmissão de dados do servidor para o cliente, embora feita por linhas telefônicas normais, é muito mais rápida do que a transmissão do cliente para o servidor. Este tipo de conexão é vantajoso tanto para aplicativos, quanto para interações de TV e vídeo, pois a quantidade de dados que o servidor envia é muito maior do que a enviada pelo cliente. A ADSL usa uma faixa que não é usada pela voz, de modo que dados e voz podem ser transmitidos ao mesmo tempo. CompactFlash: é um dispositivo de armazenamento em massa formato usado em dispositivos eletrônicos portáteis. Para o armazenamento, CompactFlash normalmente usa memória flash em um gabinete padrão. CPU: O processador central de um sistema de computador. Contém a memória principal, unidade aritmética e um grupo de registros especiais. Todo o sistema de computador, excluindo as unidades de entrada e saída, unidades periféricas e unidades de armazenamento intermediário (discos, fitas magnéticas, disquetes etc.). DDR: Memórias desta categoria transferem dois dados por pulso de clock. Traduzindo: elas conseguem obter o dobro do desempenho de memórias sem este recurso trabalhando com o mesmo clock (memórias SDRAM, que não estão mais disponíveis para PCs). DHCP: É um protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host e outros parâmetros de configuração para clientes de rede. Este protocolo é o sucessor do BOOTP que, embora mais simples, tornou-se limitado para as exigências atuais. O DHCP surgiu como standard em Outubro de 1993. O RFC 2131 contém as especificações mais atuais (Março de 1997). O último standard para a especificação do DHCP sobre IPv6 (DHCPv6) foi publicado a Julho de 2003 como RFC 3315. ETHERNET: Um padrão muito usado para a conexão física de redes locais, originalmente desenvolvido pelo Palo Alto Research Center (PARC) da Xerox nos EUA. Descreve protocolo, cabeamento, topologia e mecanismos de transmissão. FIREWALL: Um sistema de segurança de rede, cujo principal objetivo é filtrar o acesso a uma rede FIRMWARE: Suporte lógico inalterável. Tipo específico de dotação lógica consistindo de um sistema de exploração ou de um programa de aplicação integrados na memória para executar as funções de processamento pela técnica de microprogramação ou de um programa previamente definido relacionado com: read only storage e microprogramming. Sistema de armazenamento interno de tipo específico que se destina a armazenar um programa constituído por micro instruções, que tem por finalidade realizar adaptação entre o software. FORWARDING: Extração antecipada. Meio ou recurso para reduzir o tempo que a unidade central de processamento gasta para recuperar informações que acabaram de ser armazenadas na memória principal. GATEWAY: Sistema que possibilita o intercâmbio de serviços entre redes com tecnologias completamente distintas, como FidoNet e Internet; Sistema e convenções de interconexão entre duas redes de mesmo nível e idêntica tecnologia, mas sob administrações distintas; Roteador (terminologiaTCP/IP) HARDWARE: Os componentes eletrônicos, placas, periféricos e outros equipamentos que formam um computador – em contraste com os programas (softwares) que controlam o funcionamento desses componentes; Conceito global que compreende fatores e elementos físicos, tais como equipamentos, tempo de CPU, tempo de canal de E/S, espaço de memória, etc. http://en.wikipedia.org/wiki/Free_and_open_source_software http://en.wikipedia.org/wiki/Word_processor http://en.wikipedia.org/wiki/Mass_storage_device http://en.wikipedia.org/wiki/Flash_memory http://pt.wikipedia.org/wiki/Protocolo http://pt.wikipedia.org/wiki/TCP http://pt.wikipedia.org/wiki/IP http://pt.wikipedia.org/wiki/Endere%C3%A7o_IP http://pt.wikipedia.org/wiki/Rede_de_computadores http://pt.wikipedia.org/wiki/BOOTP http://pt.wikipedia.org/wiki/Standard http://pt.wikipedia.org/wiki/1993 http://tools.ietf.org/html/rfc2131 http://pt.wikipedia.org/wiki/IPv6 http://pt.wikipedia.org/wiki/DHCPv6 http://pt.wikipedia.org/wiki/2003 http://tools.ietf.org/html/rfc3315 66 HDD: É um dispositivo de armazenamento de dados que armazena dados em superfícies magnéticas que giram a uma velocidade rápida. HOST: Em português, hospedeiro. Computador que hospeda, guarda as informações para uma rede, no caso, a Internet. HTML: Linguagem que permite criar programas que trabalham com textos e imagens numa mesma tela simultaneamente. i386: Plataforma PC e clones baseadas na arquiteura Intel i386, foi introduzido pela Intel em 1985. JABBER: Protocolo open-source que podem ser usados para mensagens instantâneas. KERNEL: Em computação, o núcleo ou cerne (em inglês: kernel) é o componente central do sistema operativo da maioria dos computadores; ele serve de ponte entre aplicativos e o processamento real de dados feito em nível de hardware. MIKROOPENBSD: Projeto de sistema embarcado baseado no OpenBSD para redes de computadores. MOZILLA FIREFOX: É um navegador livre e multi-plataforma desenvolvido pela Mozilla Foundation (em português: Fundação Mozilla) com ajuda de centenas de colaboradores. A intenção da fundação é desenvolver um navegador leve, seguro, intuitivo e altamente extensível. Baseado no componente de navegação da Mozilla Suite (continuada pela comunidade como Seamonkey). Mp3 PLAYER: Trata-se de um arquivo de computador extremamente comprimido (“assim como um arquivo do tipo. zip”). Este formato é utilizado para a gravação de áudio (músicas). Mp3 Player é um aparelho eletrônico capaz de armazenar e reproduzir arquivos de áudio do tipo mp3. NAT: Tradução de Endereços de Rede. Sistema incluído em vários roteadores e alguns sistemas operacionais. Vários hospedeiros “atrás”do roteador, ou hospedeiro firewall são traduzidos para um único endereço IP (Internet Protocol) real. NETBOOKS: Às vezes também chamado de mini notebooks ou ultra-portáteis) são um ramo de sub notebooks, a rápida evolução das categorias de pequeno, leve e barato computadores portáteis adaptados para computação geral e acessar aplicações baseadas na Web, que são freqüentemente comercializados como companheiro de dispositivos, ou seja, para aumentar o acesso do usuário do outro um computador. NETBSD: É um livremente disponível open source versão do Unix, derivado Berkeley Software Distribution (BSD) de computador do sistema operacional. Foi à segunda fonte aberto BSD descendente a ser formalmente lançado, após 386 BSD, e continua a ser ativamente desenvolvido. O projeto NetBSD é essencialmente focado em design de alta qualidade, estabilidade e desempenho do sistema. Devido à licença conveniente e portabilidade, o NetBSD é freqüentemente usado em sistemas embarcados. NOTEBOOK: Um computador portátil que, em geral, pesa menos que 3 quilos e cabe em uma pasta. OPEN OFFICE: Software de open-source suíte de aplicativos disponíveis para um número de diferentes computadores sistemas operacionais. Ele é distribuído como software livre e escrito com seu próprio conjunto de ferramentas GUI. OpenBSD: Open- sistema de codigo aberto, BSD- significa Distribuição do Sistema de Benkeley. É o nome da distribuição de códigos fonte proveniente da Universidade da Califónia, Berkeley, as quais foram originalmente extensões para o sistema operacional UNIX do departamento de Pesquisas da AT&T. http://en.wikipedia.org/wiki/Intel http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o http://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa http://pt.wikipedia.org/wiki/Sistema_operativo http://pt.wikipedia.org/wiki/Sistema_operativo http://pt.wikipedia.org/wiki/Navegador http://pt.wikipedia.org/wiki/Software_livre http://pt.wikipedia.org/wiki/Mozilla_Foundation http://pt.wikipedia.org/wiki/Portugu%C3%AAs http://pt.wikipedia.org/wiki/Mozilla_Suite http://pt.wikipedia.org/wiki/Seamonkey http://pt.wikipedia.org/wiki/Armazenamento http://pt.wikipedia.org/wiki/Reprodu%C3%A7%C3%A3o http://pt.wikipedia.org/wiki/Arquivo http://pt.wikipedia.org/wiki/%C3%81udio http://pt.wikipedia.org/wiki/Mp3 http://en.wikipedia.org/wiki/Subnotebook http://en.wikipedia.org/wiki/Subnotebook http://en.wikipedia.org/wiki/Laptop http://en.wikipedia.org/wiki/Web_application http://en.wikipedia.org/wiki/386BSD http://en.wikipedia.org/wiki/Embedded_systems 67 PC – DESKTOP: Um computador de mesa é um computador pessoal (PC) em um formulário destinado ao uso regular em um único local, ao contrário de um móvel portátil ou computador portátil. PDA: Também conhecido como computador de bolso, funciona como gerenciador de informações pessoais e tem a capacidade de se conectar à internet. O PDA tem um visual display eletrônico que lhe permite incluir um navegador web, mas alguns modelos mais recentes também têm capacidades de áudio, permitindo que sejam usados como telefones celulares ou players de mídia portáteis. PROXY: Um programa de segurança utilizado para acessar a Internet que tem a função intermediária entre uma rede interna e a Internet, interceptando solicitações externas. Impede que usuários externos acessem diretamente recursos existentes na rede interna ou saibam onde estão localizados. Em geral, o proxy integra um firewall (parede corta-fogo), colocado para garantir maior segurança de um sistema de uma rede interna. PUFFY: É o mascote do sistema operacional livre do OpenBSD, Puffy é um porcupinefish, que é usado para indicar a intenção dos desenvolvedores para fazer um sistema operacional seguro inexpugnável. RAM: Memória de Acesso Randômico (Aleatório).A memória de acesso randômico (aleatório), em geral, constitui a memória principal de um computador. Representa a verdadeira memória, que é acessível para leitura e gravação de dados. REDE: Conjunto de computadores interligados entre si e a um computador principal, o servidor. No caso da Internet, são vários servidores interligados em todo o mundo. RJ-45: Tipo de conector para dados em cabos UTP de fácil manuseio e instalação. ROM: Memória Somente de Leitura. A parte da memória principal do computador, cujo conteúdo não se perde quando a corrente elétrica é desligada, e que contém programas essenciais, que não podem ser apagados pelo usuário, nem pelo próprio computador ROUTER: Router, roteador, dispositivo responsável pelo encaminhamento de pacotes de comunicação em uma rede ou entre redes. Tipicamente, uma instituição, ao se conectar à Internet, deverá adquirir um roteador para conectar sua Rede Local (LAN) ao ponto de presença mais próximo. SERVIDOR: No modelo cliente-servidor, é o programa responsável pelo atendimento a determinado serviço solicitado por um cliente. Serviços como archie, Gopher, WAIS e WWW são providos por servidores; Referindo-se a equipamento, o servidor é um sistema que provê recursos tais como armazenamento de dados, impressão e acesso dial up para usuários de uma rede de computadores. SITE: Espaço ou local de uma empresa ou instituição na Internet. Um site é composto de uma Home Page e várias outras páginas. SOEKRIS ENGINEERING NET5501: SoekrisEngineeringnet5501, é um hardware compacto, de baixa potência, baixo custo, computador de comunicação avançados é baseado em um máximo de 500 586 Mhz Processador de classe. SOFTWARE: Suporte lógico, suporte de programação. Conjunto de programas, métodos e procedimentos, regras e documentação relacionados com o funcionamento e manejo de um sistema de dados. SWAP: Troca, permuta, transferência. Em sistemas com Opção Time Sharing (TSO), é a transcrição de uma imagem (caractere) de uma região foreground da memória principal para um armazenamento auxiliar, e a leitura de outro job para a mesma região na memória principal. TCP/IP: É um conjunto de protocolos de comunicação entre computadores em rede (também chamado de pilha de protocolos TCP/IP). UNIX: É um sistema operativo (ou sistema operacional) portátil (ou portável), multi-tarefa, multi- utilizador (ou multi-usuário) originalmente criado por Ken Thompson, que trabalhava nos Laboratórios http://en.wikipedia.org/wiki/Personal_information_manager http://en.wikipedia.org/wiki/Personal_information_manager http://en.wikipedia.org/wiki/Internet http://en.wikipedia.org/wiki/Electronic_visual_display http://en.wikipedia.org/wiki/Web_browser http://en.wikipedia.org/wiki/Mobile_phone http://pt.wikipedia.org/wiki/Software http://pt.wikipedia.org/wiki/Sistema_operativo http://pt.wikipedia.org/wiki/Portabilidade http://pt.wikipedia.org/wiki/Multitarefa http://pt.wikipedia.org/wiki/Multiutilizador http://pt.wikipedia.org/wiki/Multiutilizador http://pt.wikipedia.org/wiki/Multiusu%C3%A1rio http://pt.wikipedia.org/wiki/Ken_Thompson 68 Bell (Bell Labs) da AT&T. A marca UNIX é uma propriedade do The Open Group, um consórcio formado por empresas de informática. USB: Uma tecnologia de barramento externo disponível nos sistemas Macintosh e PC para a conexão de alguns dispositivos periféricos com os computadores. VoIP: A tecnologia utilizada para fazer chamadas telefônicas através da Internet. VPN: É uma rede “virtual” composta de um conjunto de nós em uma rede pública como a Internet, os quais se comunicam entre si usando a criptografia (encryption), de forma que usuários não- autorizados não possam entender as mensagens transmitidas se os nós forem conectados por linhas privadas. World Wide Web: ou Web. Meta-rede, baseada em hipertextos, que integra diversos serviços Internet, através de uma interface que possibilita o acesso a informações multimídia. http://pt.wikipedia.org/wiki/Bell_Labs http://pt.wikipedia.org/wiki/AT%26T http://pt.wikipedia.org/wiki/The_Open_Group