Вы находитесь на странице: 1из 30

AUGUSTO CAMPOS p.

8
A eterna briga entre marcas e propriedades

MADDOG p.24
Como o Raspberry Pi reacendeu o interesse pelo hardware

CEZAR TAURION p.26


O futuro dos pacotes de aplicativos

MEDIALINX
# 101 Abril 2013

A REVISTA DO PROFISSIONAL DE TI
#44 07/08 R$ 13,90 7,50

CEZAR TAURION p.34 O Cdigo Aberto como incentivo inovao

Java, Ruby e Rails: conhea o JRuby on Rails p.74

Becape de bancos de dados com a Libferris p.46

LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminrios Linux Park de 2008

GOVERNANA COM

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA REA p.36

CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco

A REVISTA DO PROFISSIONAL DE TI

LPI nvel 2: Servidores NIS e DHCP p.52

Relatrios do Squid com o SARG p.60

VEJA TAMBM NESTA EDIO:

Benchmarks do GCC 4.3? p.58

SEGURANA: DNSSEC p.69

O que dizem os prossionais certicados p.24

Cobit, CMMI, ITIL. Quais as melhores prticas? p.36

Novidades do ITIL v3. p.44

Com o DNSSEC, a resoluo de nomes ca protegida de ataques. Mas seu preo vale a pena?

A TECNOLOGIA BASE DA COMPUTAO EM NUVEM NO PARA DE EVOLUIR. CONHEA AS NOVAS FERRAMENTAS DISPONVEIS PARA TIRAR O MXIMO PROVEITO DESSA EVOLUO p.33
GOVERNANA COM
SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA REA p.36

A REVISTA DO PROFISSIONAL DE TI

Clusters de mquinas virtuais com o Proxmox p.34


Cobit, CMMI, ITIL. Quais as melhores prticas? p.36 ITIL na prtica p.39 Novidades do ITIL v3. p.44
Com o DNSSEC, a resoluo de nomes ca protegida de ataques. Mas seu preo vale a pena?

O que dizem os prossionais certicados p.24

SEGURANA: DNSSEC p.69

VEJA TAMBM NESTA EDIO:

Relatrios do Squid com o SARG p.60 Java, Ruby e Rails: conhea o JRuby on Rails p.74 Benchmarks do GCC 4.3? p.58 Becape de bancos de dados com a Libferris p.46 LPI nvel 2: Servidores NIS e DHCP p.52

Desktops virtuais com phpVirtualBox p.40


Conhea as vantagens da nova verso do Internet Protocol, e veja por que difcil adot-la
WWW.LINUXMAGAZINE.COM.BR

REDES: IPV6 p.64

Monitoramento VMware com OpenNMS p.46

SEGURANA p.50

Use tneis SSH reversos para garantir a segurana de acesso a medidores inteligentes

SIMON p.56

Linux controlado por voz

ANDROID p.62

Como garantir sua segurana sem deixar de lado os melhores recursos da tecnologia

VEJA TAMBM NESTA EDIO:


Entrevista com Eben Upton da Raspberry Pi Foundation p.29 Novidades do Apache HTTP Server 2.4 p.65 Armazenamento ash para Linux p.70

WWW.LINUXMAGAZINE.COM.BR

9 771806 942009

VIRTUALIZAO
CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminrios Linux Park de 2008 CEZAR TAURION p.34 O Cdigo Aberto como incentivo inovao
#44 07/08 R$ 13,90 7,50

00044

Conhea as vantagens da nova verso do Internet Protocol, e veja por que difcil adot-la

ITIL na prtica p.39

REDES: IPV6 p.64

WWW.LINUXMAGAZINE.COM.BR

9 771806 942009 00044

AUGUSTO CAMPOS p.8


A eterna briga entre marcas e propriedades

MADDOG p.24
Como o Raspberry Pi reacendeu o interesse pelo hardware

CEZAR TAURION p.26


O futuro dos pacotes de aplicativos

MEDIALINX
# 101 Abril 2013

E N T E R P R I S E
A REVISTA DO PROFISSIONAL DE TI
#44 07/08 R$ 13,90 7,50

INFRAESTRUTURA

CEZAR TAURION p.34 O Cdigo Aberto como incentivo inovao

Java, Ruby e Rails: conhea o JRuby on Rails p.74

Becape de bancos de dados com a Libferris p.46

LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminrios Linux Park de 2008

GOVERNANA COM

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA REA p.36

CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco

A REVISTA DO PROFISSIONAL DE TI

LPI nvel 2: Servidores NIS e DHCP p.52

Relatrios do Squid com o SARG p.60

VEJA TAMBM NESTA EDIO:

Benchmarks do GCC 4.3? p.58

SEGURANA: DNSSEC p.69

O que dizem os prossionais certicados p.24

Cobit, CMMI, ITIL. Quais as melhores prticas? p.36

Novidades do ITIL v3. p.44

Com o DNSSEC, a resoluo de nomes ca protegida de ataques. Mas seu preo vale a pena?

A REVISTA DO PROFISSIONAL DE TI

GOVERNANA COM

9 771806 942009

VIRTUALIZAO
SYS-F627R3-RTB+/R72B+
8x 3.5 HDs por U
CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminrios Linux Park de 2008 CEZAR TAURION p.34 O Cdigo Aberto como incentivo inovao

Conhea as vantagens da nova verso do Internet Protocol, e veja por que difcil adot-la

ITIL na prtica p.39

REDES: IPV6 p.64

WWW.LINUXMAGAZINE.COM.BR

72x 3.5 HDs 18 HDs por U A TECNOLOGIA BASE DA COMPUTAO EM NUVEM NO PARA DE EVOLUIR. CONHEA AS NOVAS 2U Twin SC827HDPARA TIRAR O MXIMO PROVEITO DESSA EVOLUO p.33 FERRAMENTAS DISPONVEIS 6 HDDs por lmina ou n
#44 07/08 R$ 13,90 7,50

00044

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA REA p.36
O que dizem os prossionais certicados p.24 Cobit, CMMI, ITIL. Quais as melhores prticas? p.36 ITIL na prtica p.39 Novidades do ITIL v3. p.44
Com o DNSSEC, a resoluo de nomes ca protegida de ataques. Mas seu preo vale a pena?

SEGURANA: DNSSEC p.69

Clusters de mquinas virtuais com o Proxmox p.34 SYS-F617H6-FT+


VEJA TAMBM NESTA EDIO:
Relatrios do Squid com o SARG p.60 Benchmarks do GCC 4.3? p.58 Becape de bancos de dados com a Libferris p.46 LPI nvel 2: Servidores NIS e DHCP p.52 Java, Ruby e Rails: conhea o JRuby on Rails p.74

REDES: IPV6 p.64

Conhea as vantagens da nova verso do Internet Protocol, e veja por que difcil adot-la

Desktops virtuais com phpVirtualBox p.40


12x 3.5 HDs

WWW.LINUXMAGAZINE.COM.BR

SC826 Monitoramento VMware com OpenNMS p.46


Double-Sided Storage 72x 3.5 HDs; 18 HDs por U

SEGURANA p.50
8x 3.5 HDs

SC825

Use tneis SSH reversos para garantir a segurana de acesso a medidoresSSG-5017R-iHDP inteligentes
12x 3.5 HDs por U

SIMON p.56

Linux controlado por voz

Plataforma corporativa para anlise de Big Data de alta confiabilidade, qualidade e desempenho Hot-Swap 6x, 8x, Como garantir sua segurana sem 4x, deixar de and lado12x os 3.5 HDs por lmina / 1U Fontes redundantes de eficincia nvel Platinum (> 95%) melhores recursos da tecnologia Gerenciamento remoto de clusters e sistemas com IPMI integrado Switches Layer 3 10GbE/1GbE de excelente custo/benefcio com Uplink de 10GbE Suporte famlia de processadores Intel Xeon Processor E5-2600

ANDROID p.62

VEJA TAMBM NESTA EDIO:

www.supermicro.com/Brazil Entrevista com Eben Upton da Raspberry Pi Foundation p.29


Armazenamento ash para Linux p.70
All other brands and names are the property of their respective owners.

Intel, the Intel logo, Xeon, and Xeon Inside are trademarks or registered trademarks Novidades do Apache HTTP Server 2.4 p.65 of Intel Corporation in the U.S. and/or other countries.

WWW.LINUXMAGAZINE.COM.BR

9 771806 942009 00044

(Viso traseira)

6x 3.5 HDs por lmina ou n

4 DP Nodes, Front I/O 12x 3.5 HDs por lmina ou n

SSG-6047R-E1R72L

SSE-X24S (10G - 24 Portas)

SSE-G24-TG4 (1G - 24 Portas)

SYS-6017R-73(T)HDP+
12x 3.5 HDs por U

SSE-G48-TG4 (1G - 48 Portas)

10GbE/1GbE Switches

Software de Gerenciamento Solues Hadoop Monitoramento / Controle de Energia em rack

Melhor linha de solues de infraestrutura corporativa para Hadoop

Super Micro Computer, Inc. - As configuraes esto sujeitas a mudana sem aviso prvio.

Avnet Embedded Brasil Alameda Mamor 989, 18 Andar CEP 06454-040 | Barueri/SP Tel: +5511 2107 7954 ricardo.pereira@avnet.com 00101
#10104/13 R$ 14,90 7,50

9 771806 942009

Expediente editorial
Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br Editores Flvia Jobstraibizer fjobs@linuxmagazine.com.br Laura Loenert Lopes llopes@linuxmagazine.com.br Editor de Arte Hunter Lucas Fonseca hfonseca@linuxnewmedia.com.br Colaboradores Alan Holt, Falko Benthin, Bruce Byeld, Rich Bowen, Thomas Drilling, Christian Pape, Trommer Ronny, Peter Schulik, Kurt Seifried, Zack Brown, Jon maddog Hall, Alexandre Borges, Cezar Taurion, Gilberto Magalhes, Klaus Knopper, Augusto Campos. Traduo Laura Loenert Lopes Reviso Flvia Jobstraibizer Editores internacionais Uli Bantle, Andreas Bohle, Jens-Christoph Brendel, Hans-Georg Eer, Markus Feilner, Oliver Frommel, Marcel Hilzinger, Mathias Huber, Anika Kehrer, Kristian Kiling, Jan Kleinert, Daniel Kottmair, Thomas Leichtenstern, Jrg Luther, Nils Magnus. Anncios: Rafael Peregrino da Silva (Brasil) anuncios@linuxmagazine.com.br Tel.: +55 (0)11 3675-2600 Penny Wilby (Reino Unido e Irlanda) pwilby@linux-magazine.com Amy Phalen (Amrica do Norte) aphalen@linuxpromagazine.com Hubert Wiest (Outros pases) hwiest@linuxnewmedia.de

Inovao corporativa
Em abril de 2013, foi realizada pela stima vez a pesquisa anual intitulada O Futuro do Open Source, conduzida pelas empresas de consultoria North Bridge Venture Partners e Black Duck. Trata-se de um estudo sobre o uso e a importncia do Software Livre e de Cdigo Aberto (SL/CA) no setor corporativo. Segundo os organizadores, participaram da pesquisa mais de 800 decisores, revendedores, arquitetos de sistemas, desenvolvedores e especialistas em marketing. 42% dos participantes da pesquisa eram funcionrios de fabricantes de software. Os resultados refletem mais a situao de empresas norte-americanas, mas tambm seriam de interesse para a indstria em outros mercados, como a Europa e a Amrica Latina, conforme declarou a Open Source Business Foundation. Na atual edio da pesquisa, os quesitos segurana e qualidade ocuparam o primeiro lugar enquanto motivo para a utilizao de software de cdigo aberto. Nos dois anos anteriores a independncia de fornecedor havia sido o motivo mais citado para a adoo do Software Livre no mercado corporativo. A pesquisa indica ainda uma reduo acentuada na preocupao do mercado com o suporte comercial a solues Open Source, algo que foi por muito tempo considerado um critrio de rejeio para essa modalidade de software. Mas o dado mais interessante dessa pesquisa na opinio do autor deste editorial que 61% dos seus participantes enxergam o software de cdigo aberto como um fator de inovao, como algo que, em conjunto com as parcerias colaborativas, faz avanar a indstria de tecnologia. Open Source tambm resolve os maiores desafios de tecnologia corporativos e governamentais, o que gera um impacto cultural onipresente na nossa sociedade. 57% dos participantes tambm concordam que suas empresas devero colaborar com seus concorrentes atravs de comunidades nos prximos trs anos. Governo, sade e mdia so setores que esto aumentando o uso de tecnologias de cdigo aberto mais acentuadamente. Entre os desafios corporativos mais importantes enfrentados pelos participantes da pesquisa atravs do uso de software de cdigo aberto esto, alm da onipresente reduo de custos, projetos de integrao de sistemas e Big Data. 62% deles acreditam que em cinco anos mais da metade do software adquirido por empresas ser de cdigo aberto. Vale notar que, enquanto os servios de suporte/atualizao via subscrio ainda so a principal fonte de receita de fabricantes de SL/CA, a modalidade de software como servio (o famoso SaaS Software as a Service) ficou em segundo lugar nesse quesito (ocupando nas edies de 2011 e 2012 da mesma pesquisa as posies 5 e 4, respectivamente). Entre os participantes da pesquisa que trabalham para fabricantes de software, SaaS foi classificado em primeiro lugar como fonte de receita. Fato consumado: Open Source se cristalizou como modelo de desenvolvimento padro do mundo civilizado. Est na nossa mo quando telefonamos e nos data centers que processam todo tipo de comunicao na sociedade hodierna. Est no banco, no carro e at na sua televiso. No avio, no submarino e at na Estao Espacial Internacional. Voc est preparado para encarar essa realidade? n
Rafael Peregrino da Silva Diretor de Redao 3

EDITORIAL

Diretor de operaes Claudio Bazzoli cbazzoli@linuxmagazine.com.br Na Internet: www.linuxmagazine.com.br Brasil www.linux-magazin.de Alemanha www.linux-magazine.com Portal Mundial www.linuxmagazine.com.au Austrlia www.linux-magazine.es Espanha www.linux-magazine.pl Polnia www.linux-magazine.co.uk Reino Unido www.linuxpromagazine.com Amrica do Norte Apesar de todos os cuidados possveis terem sido tomados durante a produo desta revista, a editora no responsvel por eventuais imprecises nela contidas ou por consequncias que advenham de seu uso. A utilizao de qualquer material da revista ocorre por conta e risco do leitor. Nenhum material pode ser reproduzido em qualquer meio, em parte ou no todo, sem permisso expressa da editora. Assume-se que qualquer correspondncia recebida, tal como cartas, emails, faxes, fotograas, artigos e desenhos, sejam fornecidos para publicao ou licenciamento a terceiros de forma mundial no-exclusiva pela Linux New Media do Brasil, a menos que explicitamente indicado. Linux uma marca registrada de Linus Torvalds. Linux Magazine publicada mensalmente por: Linux New Media do Brasil Editora Ltda. Rua So Bento, 500 Conj. 802 S 01010-001 So Paulo SP Brasil Tel.: +55 (0)11 3675-2600 Direitos Autorais e Marcas Registradas 2004 - 2013: Linux New Media do Brasil Editora Ltda. Impresso e Acabamento: EGB Atendimento Assinante www.linuxnewmedia.com.br/atendimento So Paulo: +55 (0)11 3675-2600 Rio de Janeiro: +55 (0)21 3512 0888 Belo Horizonte: +55 (0)31 3516 1280 ISSN 1806-9428 Impresso no Brasil

Linux Magazine #101 | Abril de 2013

NDICE

CAPA
No mundo virtual At onde a virtualizao poder nos levar? Clusters virtualizados  O Proxmox Virtual Environment foi desenvolvido a partir de uma dica interna para um clone livre ESXi/vSphere da VMware. Neste artigo, mostramos como congurar um cluster PVE de alta disponibilidade. Desktops virtuais com phpVirtualBox Com o phpVirtualBox possvel criar, congurar, gerenciar e usar mquinas virtuais remotas em uma janela do navegador. Monitoramento VMware com OpenNMS Apresentamos uma nova verso da ferramenta de gerenciamento de rede em cdigo aberto OpenNMS, que agora inclui uma opo para o monitoramento baseada em infraestruturas VMware. 46 40 34 33

www.linuxmagazine.com.br

Linux Magazine 101 |NDICE

COLUNAS
Augusto Campos Klaus Knopper Charly Khnast Zack Brown 08 09 12 16

ANDROID
Seu dispositivo a salvo Como garantir a segurana de um dispositivo Android sem privar-se dos mais modernos aplicativos e sem deixar de lado os melhores recursos da tecnologia. 62

Alexandre Borges14

NOTCIAS
Geral21 UOL Host lana nova plataforma de hospedagem de sites Arduino lana placa WiFi e plataforma robtica prontas para uso Hitachi e o grande enigma do hardware

ANLISE

Novidades do Apache HTTP Server 2.4 O Apache HTTP Server verso 2.4 cheio de novos recursos. Neste artigo, compartilharemos alguns deles.

65

Raspberry Pi: mdulo de cmera j est disponvel

CORPORATE
Coluna: Jon maddog Hall Coluna: Cezar Taurion Coluna: Gilberto Magalhes 24 26 28 Execuo silenciosa 70

Os elegantes tablets e smartphones da atual gerao digital abrigam memria Flash, que economiza espao e energia. Neste artigo, explicamos suas caractersticas e sugerimos sistemas apropriados para o Linux.

SEGURANA
Entrevista: Eben Upton 29

Notcias32 Sem energia, So Paulo corre risco de perder datacenters Nuvem do Serpro ser 100% em cdigo aberto

Acesso seguro a medidores inteligentes

50

Neste artigo, mostraremos um projeto prtico para monitorar o uso de energia domstica com SSH e OpenWrt.

TUTORIAL
Linux controlado por voz Simon uma ferramenta de reconhecimento de voz sosticada e de fcil acesso a dois poderosos motores de reconhecimento de voz, o Julius e o CMU Sphinx. 56

SERVIOS
Editorial03 Emails06 Linux.local78 Preview82

Linux Magazine #101 | Abril de 2013

Coluna do Augusto

COLUNA

Marca registrada
A eterna briga entre marcas e propriedades uma constante em todo o mercado de software. por Augusto Campos

o longo do primeiro trimestre tivemos um exemplo clssico da importncia de registrar marcas associadas a projetos comunitrios e abertos: a Python Software Foundation (PSF) que o guardachuva administrativo que cobre o desenvolvimento da linguagem Python teve que lidar com uma empresa inglesa que solicitou o registro da marca Python, para uso associado a quaisquer sistemas informatizados, vlida para todos os mercados da Europa. Embora seja clssico no sentido de que a mesma histria de sempre no que diz respeito ao uso de um nome que notrio no mundo do cdigo aberto mas que no foi registrado como marca pela comunidade interessada, este caso em particular teve algumas peculiaridades, sendo a primeira delas o fato de que a PSF havia registrado a marca em questo nos EUA, mas no lembrou de faz-lo na Europa. Outra peculiaridade que no foi uma ao inteiramente sbita. A empresa em questo, que se interessou em batizar como Python uma linha de produtos para servidores, j tinha o registro do domnio ingls python.co.uk h mais de uma dcada. Aps o pedido de registro pela empresa inglesa, entretanto, a PSF ainda teve tempo de agir para contestar o procedimento, e o fez com ajuda de seus associados europeus, o que levou a um resultado raro em situaes do gnero: um acordo. Aps ver a reao e tomar conhecimento da contestao, a empresa em questo abriu mo do uso do nome Python para sua nova linha de produtos e no vai prosseguir com o registro. Mas nem sempre o resultado favorvel comunidade. Um exemplo o OpenOffice, que durante anos usava no Brasil a marca BrOffice porque seu
8

nome oficial tinha sido registrado antes por uma empresa brasileira que atuava em outro ramo de ferramentas de software. No so s os projetos comunitrios os atingidos por (ou sujeitos a) essa situao: no comeo do ano pudemos acompanhar o caso da popular marca internacional de smartphones que teve seu registro contestado no Brasil por uma empresa que registrou o mesmo nome anos antes e a mesma marca enfrenta situao similar em outros mercados, como o do Mxico. A marca Linux j passou por situao semelhante: ningum tinha registrado, e em 1994 um indivduo o fez, e a partir da passou a exigir royalties dos distribuidores comerciais de Linux. A incerteza a respeito durou algum tempo, mas em 1996 Linus Torvalds e algumas das empresas afetadas processaram o indivduo em questo, e no ano seguinte o registro da marca foi transferido a Linus Torvalds. Ao longo dos anos desde ento, a marca Linux foi gerenciada de formas variadas, culminando com o modelo atual, na qual uma instituio indicada por Torvalds (o Linux Mark Institute) a gerencia, oferecendo aos interessados os termos de adeso nos quais oferecida uma licena gratuita, perptua e mundial para seu uso. Provavelmente a marca do seu projeto no precisa de uma estruturao to grande, mas voc no deve descuidar dela mesmo assim. Considere os exemplos acima, e consulte apoio profissional especializado para conhecer suas opes! n
Augusto Csar Campos administrador de TI e, desde 1996, mantm o site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo.

www.linuxmagazine.com.br

Metasploit parte I
Uma viso geral sobre a verso Community, do framework de deteco de vulnerabilidade de segurana Metasploit no Ubuntu. por Alexandre Borges

Coluna do Alexandre Borges

COLUNA

utra dia um aluno comentou comigo que estava estudando alguns livros de segurana e que, invariavelmente, em todos eles sempre havia um captulo no qual o autor se dedicava a ensinar como efetuar uma invaso, mas o que era mostrado sempre era feito de modo superficial, pois partiam de premissas muito generosas (quase todas elas com acesso local mquina) e nunca demonstravam tcnicas de fato interessantes. Disse ento que isto o desestimulava a aprender sobre segurana, j que havia a impresso de sempre estar faltando algo. Expliquei a ele que no h uma frmula pronta para se aprender uma rea to complexa e que ele deveria insistir e continuar lendo. Sem dvida, os pr-requisitos de aprendizado que um profissional de segurana necessita saber so: C, Assembly, diversas tcnicas de coleta de dados, escaneamento, craqueamento de senhas, debugging, engenharia reversa etc., o que talvez torne pouco mais difcil e moroso aprender sobre segurana. assim mesmo. Na ocasio, mencionei se, por acaso, ele j teria tentado explorar o Metasploit; porm, como muitos, ele me disse que j tinha lido algo a respeito e desistido, pois no entendia o mecanismo de forma clara. Neste momento percebi que deveria escrever a respeito do Metasploit. No minha inteno varrer o assunto de ponta a ponta, mas ao menos mostrar como as tarefas mais simples podem ser executadas para, quem sabe, incentivar interessados a investigar mais a fundo este framework to fascinante. O projeto Metasploit foi desenvolvido primeiramente em Perl (depois totalmente reescrito em Ruby, sendo que a parte fundamental a biblioteca Ruby Extension Rex) por HD Moore por volta de 2003
14

(Spoonm e Matt Miller entraram pouco depois, e hoje em dia existem cerca de 21 colaboradores). Em 2009, a Rapid7 adquiriu o projeto Metasploit e, com isso, trouxe uma viso mais comercial ao framework, sendo que atualmente existem a verso Metasploit Community (sem custos), Metasploit Express (proprietria, que oferece uma maneira robusta de realizar a explorao remota de forma simples e automatizada, alm de possibilitar uma auditoria de senhas quebradas e fornecer mltiplos modelos de relatrios de invaso) e a verso Metasploit Pro (tambm proprietria, incluindo todos os itens da verso Express e outros diversos recursos, como escaneamento de aplicativos web, mdulos de engenharia social, pivoteamento de VPNs, tcnicas de ataques a IDS/IPS e total integrao com o Nexpose). Alis, j que mencionamos as verses do framework, tomaremos uma linha diferente: nos exemplos que mostrarei nesta coluna e nas prximas, o foco da nossa abordagem ser o Metasploit Community, porm ao invs de explic-lo em cima do BackTrack 5 (que uma ferramenta de hacking e anlise forense extraordinria), vamos instalar o Metasploit no Ubuntu aproveitando a instalao que provavelmente o leitor j possui (a minha verso a 11.10 caso o leitor no esteja seguro de qual verso est usando, poder executar o comando lsb_release -a para descobrir) e, ao mesmo tempo, saindo um pouco do lugar comum ao usar o Backtrack. O download do Metasploit Community pode ser feito em [1]. De modo adicional, o leitor pode tambm instalar o Metasploit no Windows (com o antivirus e o antispy desabilitado), mas no falaremos a respeito disto nesta coluna.

www.linuxmagazine.com.br

Uma vez feito o download, para instalar o Metasploit so necessrios os comandos:


# chmod u+x metasploit-latest-linux-x64-installer.run # ./metasploit-latest-linux-x64-installer.run

Com isso, a instalao do Metasploit ocorre sem qualquer problema e, por padro, o local de sua instalao /opt/metasploit. Para ter certeza de que tudo correu bem, digite msfconsole -v. Se obtiver a verso (a minha a 4.6.0-dev), significa que a instalao ocorreu sem problemas. Como o projeto Metasploit est constantemente incluindo tcnicas novas de ataque e explorao, recomendo fortemente que o leitor sempre mantenha a instalao o mais atualizada possvel executando o comando msfupdate. Existem outras maneiras de instalar e atualizar o Metasploit. Por exemplo, o leitor pode escolher fazer tudo atravs do subversion. Mesmo que seja elegante, ainda tenho a preferncia pela maneira que mostrei acima. Seguem os passos com subversion:
# apt-get install subversion # mkdir /opt/metasploit ; cd /opt/metasploit # svn co https://www.metasploit.com/svn/framework3/ trunk/ # cd trunk ; ls ; svn update

O framework do Metasploit traz embutido o banco de dados PostgreSQL para que seja factvel usar e guardar os resultados obtidos; mas no se engane, esta base ser muito importante para ns nas prximas colunas. Normalmente, quando entramos no console de operao do Metasploit, j estamos conectados base, porm, mesmo assim pode ser til, em algumas ocasies, saber qual a senha de conexo. Para descobrir, digite:
# more /opt/metasploit/apps/pro/ui/config/database.yml

Procure pelo campo password da configurao de produo ( production). Desta forma, facilmente conseguiremos a senha necessria. Por enquanto isso. No ms que vem volto com mais novidades sobre o Metasploit. At l. n

Mais informaes
[1] Download do Metasploit Community http:// www.metasploit.com/download/
Alexandre Borges (linkedin: br.linkedin.com/in/aleborges) instrutor e especialista snior em sistemas operacionais Unix, Linux, Banco de Dados, Virtualizao, Cluster, Storage, Servidores, Backup, Desempenho e Segurana, alm de possuir profundo envolvimento com assuntos relacionados ao kernel Linux.

Agora voc tem o controle sobre o desempenho do seu negcio sempre sua mo.
Compras Estoques Finanas NF-e

Vendas Fornecedores Clientes


SOFTWARE

ERP SISTEMA DE GESTO

A micro e pequena empresa ganha uma soluo de classe mundial de sistemas de gesto ERP. O Kontroller dispensa aquisio de hardware, Linux Magazine #101 | Abril de 2013 licenas de software, tcnicos de suporte ou sistema de backup. Garante alta disponibilidade e oferece fcil acesso via browser.

Saiba mais em: www.vectory.com.br 15 +55 11 3104 6652

Virtualizao

No mundo virtual
At onde a virtualizao poder nos levar? por Flvia Jobstraibizer

CAPA

o se trata mais de fico cientfica. A virtualizao e as tecnologias que as fomentam agora fazem parte da nossa realidade. Chegamos a um ponto onde podemos utilizar "no mundo virtual" o nosso computador pessoal, atravs de aplicativos para acesso remoto, utilizar servidores em nuvem, utilizando hipervisores e outras plataformas virtualizadas e acessar de qualquer lugar, computadores, sistemas e plataformas sem a necessidade da presena fsica e sem descuidar da segurana, uma vez que, mesmo em ambientes virtualizados, a camada de segurana continua sendo to presente e confivel quanto um usurio presente fisicamente inserindo sua impresso digital em um leitor biomtrico. O paraso para as empresas, no que tange virtualizao e computao em nuvem, chama-se economia. Ao invs de gastos exorbitantes com computadores fsicos, que possuem alta obsolescncia, com sistemas de resfriamento, fontes alternativas de energia e sistemas de contingncia (ou mesmo pagando empresas terceirizadas para prover toda esta infraestrutura), os computadores e sistemas passam a ser instncias virtuais presentes em menores quantidades de mquinas fsicas. A preocupao com backup, refrigerao, contingncia, recuperao em caso de desastres ou outros problemas cada vez menor. Existem atualmente diversos aplicativos para a restaurao de uma mquina virtual

em poucos minutos, aumentando a produtividade e resilincia de sistemas virtualizados. Nesta edio da Linux Magazine , voc vai aprender a utilizar seu desktop comum de forma virtualizada atravs do phpVirtualBox, sistema que, atravs de um simples navegador torna possvel acessar e gerenciar seu computador virtualmente. Ainda nesta edio, conhea o Proxmox, soluo completa para virtualizar servidores em pequenas e mdias infraestruturas, garantindo ainda que seja possvel gerenciar as instncias virtualizadas, replic-las e dividir suas cargas de trabalho de forma facilitada. No perca ainda o artigo sobre monitoramento de infraestruturas virtualizadas com VMware e OpenNMS, projeto open source para gerenciamento e monitoramento, provisionamento e gerenciamento de sistemas. Em um mundo cada vez mais virtualizado, no perca a oportunidade de informar-se e melhorar seus conhecimentos acerca das tecnologias de virtualizao que somente a Linux Magazine traz para voc e boa leitura! n
 Matrias de capa Clusters virtualizados Desktops virtuais com phpVirtualBox Monitoramento VMware com OpenNMS 34 40 46

Linux Magazine #101 | Abril de 2013

33

TUTORIAL| Linux por voz

Linux por voz

TUTORIAL

Linux controlado por voz


Simon uma ferramenta de reconhecimento de voz sosticada e de fcil acesso a dois poderosos motores de reconhecimento de voz, o Julius e o CMU Sphinx. por Falko Benthin

o Windows e Mac OS X, os usurios esto h muito tempo acostumados a controlar o PC no apenas com teclado e mouse, mas por voz. Durante vrios anos, o Linux tem acompanhado o atraso. A organizao sem fins lucrativos Simon Listens [1], fundada por Franz Stieger, a fora motriz por trs do software de reconhecimento de voz Simon. O aplicativo, desenvolvido originalmente para oferecer s pessoas portadoras de necessidades especiais o uso do PC sem barreiras, existe h vrios anos. A

organizao ainda possui este objetivo, mas os desenvolvedores descobriram alguns usos adicionais para o software, incluindo sistemas de controle verbais que facilitam a utilizao de modernas tecnologias de comunicao por idosos ou permite que seres humanos controlem robs, cadeiras de rodas e elevadores. No entanto, se o usurio quiser ditar um texto para Simon, no ficar feliz com os resultados e ter de procurar outro lugar. O Simon tornou-se um projeto oficial do KDE em abril de 2012 [2]

e, portanto, utiliza a infraestrutura do KDE. O software de reconhecimento de voz segue o modelo cliente servidor, que consiste de vrios componentes e elaborao de vrios outros programas, tais como o pacote de freemantas de reconhecimento de voz CMU Sphinx [3], do motor de reconhecimento de voz Julius [4], com o Hidden Markov Model Toolkit (HTK) [5], e o dicionrio de pronncia Hadi-Bomp [6]. Os componentes de aplicativos incluem a interface Simon, o daemon Simon (Simond), o Simon Acoustic Modeler (sam), e o Simon Sample Collector (SSC).

Inicializao do Simon

Figura 1 Um assistente de congurao torna a congurao de Simon uma


tarefa bastante simples.

Aps a instalao (quadro 1), o Simon aparece no menu Start (Iniciar) do ambiente de trabalho, logo abaixo de Accessibility (Acessibilidade). Alternativamente, podemos iniciar o aplicativo com o comando simon na linha de comando. Na primeira inicializao, um assistente aparece para guiar o usurio na instalao do programa (figura 1). Podemos decidir aqui quais cenrios e modelos de linguagem o Simon carregar mais tarde, por padro, onde reside o reconhecimento de voz do servidor Simond, e se deve iniciar automaticamente. O Simond garante que a entrada de voz dos clientes seja avaliada. Por padro, ele executado no mesmo computador que o Simon e escuta na porta 4444. Como apropriado para um servidor,

56

www.linuxmagazine.com.br

Linux controlado por voz | TUTORIAL

Quadro 1: Como instalar o Simon


Usurios da verso para desenvolvedor do openSUSE podem instalar o Simon facilmente: basta apenas baixar pacotes binrios do openSUSE Build Service [7] e completar a instalao utilizando ferramentas de pacotes da distribuio. Se o usurio optar por utilizar qualquer outra distribuio, deve clonar o cdigo fonte do KDE Git: $ git clone git://anongit.kde.org/ simon simonsource ou pegue o tarball [8] e descompacte-o, mude para o diretrio recm-criado, e execute build.sh ou o script build_ubuntu.sh. Para concluir a instalao sem erros, pode ser necessrio resolver algumas dependncias [9] com antecedncia. Para desbloquear todos os recursos de interface de reconhecimento de voz completamente, tambm vamos precisar do CMU Sphinx (sphinxbase, pocketsphinx e sphinxtrain, cada um em uma verso mais recente que a 0.8) ou Julius com o HTK e os pacotes de desenvolvimento do OpenCV (libsamplerate, QAccessibilityClient e libkdepimlibs4). A partir da verso 0.4, Simon usa o mecanismo de reconhecimento de voz CMU Sphinx como backend por padro, mas ainda suporta completamente o Julius e o HTK proprietrio.

do Simon Settings/Configure Simon/ Language models/Open model/Download - ou no projeto VoxForge [10]. Depois de baixar um modelo do VoxForge, precisamos import-lo. Por exemplo, para usar o modelo English CMU Sphinx, o usurio deve baixar o modelo do VoxForge e descompact-lo. Em seguida, na configurao do modelo de linguagem, em vez de selecionar download, selecione Create from model files (Criar a partir de modelos de arquivos) e digite o caminho para os arquivos exigidos. O processo funciona da mesma forma para todos os outros idiomas disponveis ou para os modelos de Julius.

ele pode tambm executar em um computador separado e atender vrios clientes; assim, podemos precisar criar contas de usurio protegidas por senha mais tarde. Em uma etapa posterior, configure a placa de som (figura 2); o usurio , ento, levado de volta para a janela principal do aplicativo (figura 3).

pela qual mudar o mecanismo no recomendado se o usurio possuir um modelo bem treinado. A verso atual do Simon reconhece o modelo utilizado pelo usurio e seleciona automaticamente o backend correto. Um bom lugar para procurar modelos adaptveis na funo de download

Cenrios

Dentro do Simon, aplicativos especficos para o reconhecimento de fala podem ser definidos como cenrios. Cenrios tpicos podero controlar o mouse ou o navegador com entrada de voz. A equipe do Simon j coletou algumas situaes comuns que o usurio pode

Facelift

Para reconhecer palavras faladas, o Simon baseia-se em modelos acsticos (base models) disponveis em trs categorias: esttica, adaptada, ou gerada completamente pelo usurio. Os modelos estticos predefinidos no podem ser adaptados para usurios individuais: para estes modelos funcionarem corretamente, o usurio deve falar como o criador do modelo pretendido. Modelos adaptados predefinidos tambm esto disponveis, e os usurios podem trein-los para compreender a voz e a maneira de falar para aumentar a preciso. Embora o ideal seja a criao de modelos totalmente gerados pelo usurio, eles oferecem a maior taxa de sucesso e so ideais para pessoas com dificuldades de fala ou dialetos fortes. O uso de modelos adaptados e gerados pelo usurio requer um mecanismo de reconhecimento de voz como CMU Sphinx e Julius. Ateno: os dois no usam modelos compatveis, razo

Figura 2 Vrias placas de som e microfones em webcams USB no so


problema para Simon.

Linux Magazine #101 | Abril de 2013

57

TUTORIAL| Linux por voz

Figura 3 Cenrios disponveis, palavras reconhecidas, status de conexo: o


Simon apresenta uma viso clara e abrangente na janela principal. Podemos acessar muitos recursos com apenas um clique.

carregar em Manage scenarios/Open/ Download (Gerenciar cenrios/Abrir/ Baixar). Certifique-se de que o idioma de destino e o modelo acstico combinam se estiver usando um modelo bsico esttico ou adaptado. importante para o cenrio e modelo bsico usar o mesmo conjunto de fonemas. O usurio provavelmente ir desejar criar os prprios cenrios por exemplo, porque no pode encontrar o que precisa na seo de download ou porque os cenrios existentes utilizam o modelo de base errada. Alternativamente, podemos adicionar novas palavras a cenrios existentes, tais como Standard. Podemos adicionar novos cenrios, selecionando Manage scenarios (Gerenciar cenrios). Para preench-los com suas prprias palavras, basta clicar em Open <scenario_name>. Em seguida, Simon mostrar a lista de vocabulrio existente, que o usurio precisar preencher, na maioria dos casos (figura 4). Ao contrrio de muitos sistemas comerciais de reconhecimento de voz com modelos de linguagem pr-fabricados, os problemas de linguagem no so um grande problema para Simon. Alm dos modelos acsticos e de lingustica pr-compilados, os usurios tambm podem gerar ver58

ses personalizadas ensinando a Simon as palavras de que necessitam. O treinamento em si bastante simples. A dificuldade que as palavras precisam ser atribudas a terminals (verbos, pronomes, etc. tambm so chamados de categorias no Simon) e divididas em fonemas. Como indivduos no profissionais em lingustica poderiam ter problemas aqui, o Simon se oferece para importar dicionrios. Alm de conter muitas palavras, os dicionrios incluem a informao necessria nos terminais e pronncia bsica de fonemas. As palavras disponveis aqui so

facilmente adicionadas ao vocabulrio do sistema. Se uma palavra especfica estiver faltando, outras palavras existentes podem ser utilizadas como exemplos. O Simon suporta dicionrios nos formatos Hadifix, HTK, PLS, CMU Sphinx e Julius, que o usurio pode carregar, pressionando o boto Import Dictionary (Importar dicionrio). O programa geralmente espera que haja um caminho para um arquivo localizado no computador, mas, no caso do dicionrio de alemo Hadifix, um acordo com a Universidade de Bonn permite aos usurios fazer o download diretamente do dicionrio Hadifix Bomp. Para fazer isso, o usurio precisa especificar o nome e endereo de email e aceitar a licena Bomp.

Treinamento

Para adicionar uma nova palavra a um cenrio (figura 5), o usurio precisa treinar pelo menos duas vezes isto , falar a palavra ao microfone para introduzir voz e pronncia ao programa. Se o cenrio s precisa de poucas palavras, a taxa de reconhecimento torna-se bastante aceitvel aps apenas duas rodadas de treinamento. Entretanto, o treinamento adicional aumenta a taxa de sucesso e especialmente til na medida em que o vocabulrio

Figura 4 Em primeiro lugar, o usurio precisa preencher seus prprios cenrios com o vocabulrio necessrio.

www.linuxmagazine.com.br

Linux controlado por voz | TUTORIAL

e outros artifcios. Podemos at fundir categorias existentes para simplificar a estrutura gramatical do vocabulrio no dicionrio e o dicionrio sombra.

Comandos

Figura 5 Aps o treinamento individual, as palavras so reconhecidas de


forma convel.

aumenta, ou quando h palavras com sonoridades similares. Podemos treinar palavras de forma orientada, pressionando Train Individual Words para adicion-las a uma sesso de treinamento (figura 6). Se quiser exportar o cenrio mais tarde e, assim, torn-lo disponvel para a comunidade Simon, vale definitivamente a pena criar textos especiais de treinamento. Basta alterar para a seo Training (Treinamento) e clicar no boto Add Text (Adicionar texto). O usurio pode importar ou digitar manualmente o texto para treinar todo o vocabulrio para o cenrio. Uma vez que o usurio tenha o texto de treinamento, poder comear a treinar na janela principal, ou no cenrio aberto, pressionando o boto apropriado. Por padro, o Simon registra separadamente as linhas do texto, entre uma ou vrias palavras. Se parecer muito complicado pressionar o boto Record (Gravar) duas vezes para cada palavra (iniciar e parar a gravao), verifique a caixa Power Training. Agora s precisamos pressionar os botes Next para seguir para o texto de treinamento, sem a necessidade de clicar muito. A gramtica de um cenrio faz exatamente o que o nome sugere: define as regras que determinam a maneira como o vocabulrio pode ocorrer de forma que Simon possa interpret-lo

de forma significativa. O usurio no precisa ficar com as estruturas da linguagem falada, mas pode criar uma gramtica prpria, como Verb noun ou Enumeration noun. Apenas certifique-se de que tenha feito o vnculo a categorias que realmente ocorrem no vocabulrio existente. Mais uma vez, as categorias no so imutveis, mas podem ser adicionadas e alteradas para que, alm de substantivos, verbos etc., o usurio possa se valer de triggers, comandos

A ltima seo no cenrio compreende os comandos. Aqui o usurio determina o que o programa far com as palavras reconhecidas. Vrios plugins de comando permitem controlar o computador, e podemos facilmente vincular uma srie de atividades diferentes com comandos de voz. O computador, ento, executar programas (Program), emular as teclas digitadas, ou abrir pastas e sites. Alm disso, podemos mover o cursor do mouse sobre a rea de trabalho, selecionar os itens em listas ou inserir blocos de texto com a ajuda de plugins, bem como ditar letras e nmeros, usar uma calculadora, ou ainda praticar a pronncia e verificar a conformidade com um modelo bsico. Comandos compostos executam vrias aes uma aps a outra. Descrever todos os plugins de comando em detalhe vai muito alm do escopo deste artigo, portanto verifique o manual Simon detalhado para mais informaes. Ao selecionar Manage

Figura 6 As sesses de treinamento especicamente concebidas para um

cenrio ajudam o Simon a aprender todo o vocabulrio necessrio.

Linux Magazine #101 | Abril de 2013

59

TUTORIAL| Linux por voz

de interpret-la, necessrio modificar a gramtica. Alm disso, os desenvolvedores esto atualmente trabalhando em queries a partir de movimentos labiais para minimizar comandos do tipo falso positivo: se o Simon no visualizar um rosto ou movimento labial durante a entrada de voz, a ideia que a palavra seria, provavelmente, o rudo de fundo que o programa deve ignorar. Como j mencionado, o Simon pode trabalhar com os mecanismos de reconhecimento de voz Julius e CMU Sphinx. Ao configurar o Sphinxbase, o Pocketsphinx e o Sphinx-training, o usurio deve mudar o prefixo de /usr/local para /usr, ou pelo menos adicionar links simblicos apropriados. Assistentes, como links simblicos, tambm so obrigatrios se o usurio instalar Sphinxtrain em um sistema de 64 bits. Neste caso, scripts e outros arquivos que so importantes para a gerao de modelo acstico terminam em /usr/[local/] lib64/sphinxtrain, mas o Simon os aguarda em /usr/lib/sphinxtrain. O CMU Sphinx apresentou alguns problemas de compilao do modelo acstico em nosso laboratrio; no conseguimos solucion-lo antes do fechamento desta edio. Se o u-

CMU Sphinx e Julius

Figura 7 Plugins de comando versteis permitem um grande controle sobre


os recursos de vrios computadores. O Simon sequencialmente verica qual plugin pode lidar com uma palavra reconhecida

Plugins (Gerenciar plugins) (figura 7), o usurio pode carregar e usar plugins e depois utilizar o New Command para vincular aes apropriadas para uma ou mais palavras. Quando o Simon reconhece uma palavra, ele trabalha seu caminho atravs dos plugins de comando at encontrar um que possa processar a entrada para, em seguida, executar a ao apropriada. Na seo opcional Context (Contexto), podemos definir as condies nas quais o Simon permite um cenrio. Por exemplo, possvel estipular que o cenrio Firefox s ativado se o navegador Mozilla estiver em execuo. Assim, podemos usar comandos idnticos em diferentes cenrios para iniciar aes diferentes. Condies possveis incluem, por exemplo, se uma determinada janela est em primeiro plano na rea de trabalho (Active Window Condition), se uma webcam reconhece um rosto na frente do computador (requer OpenCV), se certos processos esto em execuo, ou quais status de programas reportam para a D-Bus. Alm disso, podemos verificar os arquivos de contedo especfico. Quando alteramos alguma coisa em um cenrio ou palavras treinadas, Simond atualiza a compilao do modelo acstico, e as novas palavras ficam imediatamente disponveis.
60

A janela principal sempre mostra as ltimas palavras reconhecidas, estejam elas vinculadas (ou no) a um comando (figura 8). Enquanto Simon escuta, est impaciente para reconhecer palavras. Por isso, uma respirao profunda poderia ser interpretada como um comando de voz, ou uma conversa com outra pessoa poderia fazer com que o computador aplicasse todos os tipos de brincadeiras no usurio. Para evitar um falso positivo, faz sentido iniciar todos os comandos de voz com uma palavra que acione a escuta, como computador ou abracadabra. Para que o computador seja capaz

Figura 8 O Simon mostra as combinaes na janela principal, independentemente de estas estarem vinculadas a um comando.

www.linuxmagazine.com.br

Linux controlado por voz | TUTORIAL

surio passar por erros semelhantes, utilize o Julius em seu lugar. Para cenrios pr compilados, o Simon escolhe o backend de reconhecimento de voz automaticamente. Quando criamos modelos acsticos e de linguagem gerados pelo usurio, podemos configurar o backend preferido em Settings/Configure Simon/ Recognition/Configure server/Speech model compilation/Backend.

Perspectiva

O Simon mudou drasticamente desde seu ltimo lanamento, h dois anos, e tem melhorado significativamente em termos de facilidade de uso. A verso 0.4 atual oferece uma experincia de uso muito melhor: o mecanismo adicional de reconhecimento de voz e de contexto CMU Sphinx na forma do Afaras e Simonoid. O Afaras permite identificar gravaes ruins e padres destrudos em grandes colees. O Simonoid KDE plasmoid gera o estado de deteco e pode ser usado para iniciar ou parar o Simon rapidamente. Para o futuro prximo, a equipe de desenvolvimento liderada pelo CTO Peter Grasch tem planos ambiciosos, como o de completar caractersticas previamente experimentais como a deteco de lbios. Alm disso, a equipe est colaborando com diversos parceiros, como as universidades de Bonn e Graz. O Instituto alemoaustraco (Institut fr sterreichisches Deutsch) permitiu que o projeto acessasse o banco de dados Adaba [11], o que pode levar criao de um modelo bsico alemo livremente disponvel. Como outro importante marco no caminho para a verso 0.5, os desenvolvedores buscam integrar a AT SPI2 ( do framework Assistive Technology Service Provider Interface 2) [12] com o Simon. Neste artigo, s olhamos para o frontend Simon. Outras partes interessantes do projeto e Simon Listens so SAM, uma ferramenta que permite aos usurios criar e testar

modelos acsticos que Simon pode depois importar, e SSC, que usado para coletar amostras de diferentes falas e ambientes de usurio para desenvolver novos modelos bsicos. Alm disso, o aplicativo Simone, do MeeGo, permite aos usurios controlar o computador atravs de um smartphone. O Meego um sistema operacional mvel de cdigo aberto baseado em Linux que foi criado em 2010, aps uma fuso de seus ancestrais Maemo (Nokia) e Moblin (Intel). Atualmente ele se encontra sob os auspcios da Linux Foundation, mas a mdio prazo dever se fundir com o smartphone Tizen OS. A motivada equipe de desenvolvimento do Simon se manteve bastante administrvel ao longo dos anos e recebe membros adicionais: alm de programadores (C++ e Qt), pessoas que gostariam de criar cenrios, estender a documentao ou localizar o Simon em sua lngua nativa tambm podem se envolver com o projeto.

Concluso

Simon uma ferramenta de reconhecimento de voz que pode ser instalada e utilizada por novatos no assunto. O nico obstculo no processo de instalao so as numerosas dependncias. Durante vrios dias de testes de laboratrio, o sistema se manteve completamente estvel, e o aplicativo no quebrou sequer uma vez. Como a cereja no bolo, Simon permite fcil acesso aos sofisticados mecanismos de reconhecimento de voz Julius e CMU Sphinx, que, por sua vez, esto em desenvolvimento h vrios anos. Embora eles ainda no sejam capazes de gravar letras ou achados mdicos, quando se trata de controles, Simon j contempla o computador para desvend-las. n

Gostou do artigo?
Queremos ouvir sua opinio. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8489

Mais informaes
[1] Simon Listens Association: http://www.simon-listens.org/ [2] Simon: https://projects.kde.org/projects/ extragear/accessibility/simon/ [3] CMU Sphinx: http://cmusphinx.sourceforge.net/ [4] Julius: http://julius.sourceforge.jp/en_index.php/ [5] HTK: http://htk.eng.cam.ac.uk/ [6] Hadix Bomp: http://www.sk.uni-bonn.de/forschung/ phonetik/sprachsynthese/bomp/ (em alemo) [7] Simon para openSUSE Factory: http://software. opensuse.org/package/simon/ [8] Simon tarball download: http://anongit.kde. org/simon/simon-latest.tar.gz/ [9] Guia de compilao e dependncias: http://userbase. kde.org/Simon/Development_Environment#Compiling/ [10] VoxForge: http://www.voxforge.org/home/ [11] Adaba: http://www-oedt.kfunigraz.ac.at/ADABA/index.html [12] AT SPI2: http://www.linuxfoundation.org/collaborate/ workgroups/accessibility/atk/at-spi/at-spi_on_d-bus/

Linux Magazine #101 | Abril de 2013

61

ANDROID| Medidas de segurana

Medidas de segurana

ANDROID

Seu dispositivo a salvo


Como garantir a segurana de um dispositivo Android sem privar-se dos mais modernos aplicativos e sem deixar de lado os melhores recursos da tecnologia. por Flvia Jobstraibizer

0
90

iariamente so descobertas novas vulnerabilidades em dispositivos mveis, principalmente no que se refere ao sistema operacional mais utilizado atualmente, o Google Android. So criados vrus, cavalos de tria e vulnerabilidades extras para coletar informaes dos usurios incautos. Tais problemas de segurana ocorrem devido a popularidade da ferramenta, que a cada dia ganha novos adeptos, dos mais variados lugares do globo terrestre (e at mesmo fora dele [1]). No surpreendentemente, novas formas de proteo dos dispositivos surgem na mesma velocidade em que os problemas so encontrados. H empresas trabalhando freneticamente na correo de vulnerabilidades nas mais diversas verses do kernel Android, assim como criando novas ferramentas e formas de prevenir potenciais problemas. Mas como ter a certeza de que um aplicativo no malicioso ou mesmo que no ir realizar tarefas revelia do usurio? Este o assunto que vamos abordar neste artigo.

Quem manda aqui?

sabido que muitos aplicativos efetuam tarefas em nome do usurio. Por exemplo: o aplicativo para mdias sociais Facebook possui permisso para publicar em nome do usurio, compartilhar qualquer documento presente no dis62

positivo e at mesmo enviar relatrios de uso do usurio para a equipe de desenvolvimento do aplicativo. importante salientar que o usurio deve estar atento s permisses que cada aplicativo exige do usurio no momento da instalao. Um programa pode ser considerado suspeito (lembre-se de que suspeito no significa culpado), se: Um jogo no deve solicitar permisses para efetuar ligaes a partir do telefone. Um aplicativo de descoberta de pontos de interesse no deve solicitar permisses para modificar ou alterar contedos do carto de memria do aparelho. Um aplicativo de GPS no deve solicitar permisses para ler mensagens de texto do aparelho (figura 1). Vale a pena lembrar que outro ponto importante e que vale ser ressaltado a confiabilidade do desenvolvedor da ferramenta. Se a ferramenta possui um desenvolvedor confivel, possvel aceitar o grupo de permisses (mesmo que estranhas) e prosseguir ou mesmo declinar da instalao. Em ltimo caso, possvel ainda entrar em contato com o desenvolvedor da ferramenta e question-lo sobre os motivos de determinada permisso. As permisses que um aplicativo ou jogo exigem so exibidas um mo-

mento antes do incio da instalao (figura 2). Neste momento possvel aceitar ou cancelar a instalao caso entenda que o jogo ou aplicativo exige mais permisses do que realmente deveria.

Encontre o problema

Muitos usurios culpam o sistema operacional (ou at mesmo o fabricante do aparelho) por um incio de mal funcionamento inesperado, como

Figura 1 Um apicativo de GPS no


precisa ler seus SMSs.

www.linuxmagazine.com.br

Medidas de segurana | ANDROID

loops de reinicializao, travamentos, congelamentos momentneos etc. No entanto, tais problemas podem ser obra de um aplicativo que apresenta alguma falha de segurana. O seguinte cenrio vlido e deve ser considerado: Um determinado aplicativo instalado em um aparelho de celular recebeu uma atualizao na semana passada. Como o aplicativo no muito utilizado, somente ontem o usurio proprietrio do aparelho executou o aplicativo. Aps o uso do aplicativo, o usurio voltou suas atividades normais. No entanto, o aparelho passou a reiniciar sozinho. Sim, a falha est no tal aplicativo que recebeu uma atualizao que possua uma falha de segurana qualquer. Talvez no seja to simples encontrar o problema caso o usurio seja novato ou inexperiente. De qualquer forma, importante lembrar que os dispositivos mveis atuais so modernos o suficiente para no comearem a apresentar problemas do nada.

Figura 3 Vulnerabilidades listadas no CVE.

Atualizaes em dia

O cenrio exemplificado anteriormente no quer dizer que o leitor no deve atualizar seus aplicativos, mesmo porque, com as novas polticas de atualizao automtica do Google Play, ser muito difcil manter um aplicativo desatualizado. As atualizaes so importantes para evitar potenciais problemas ou mesmo corrigir outros que a equipe de desenvolvimento possa ter encontrado na verso atual do software em execuo no dispositivo.

a necessidade de um pendrive ou qualquer mdia removvel (tambm sujeita a falhas, roubo ou danos) e de onde possvel recuperar rapidamente os dados em caso de necessidade.

Perdi, e agora?

Antivirus e proteo extra

Aplicativos antivirus, removedores e bloqueadores de propagandas (conhecidos como ad blockers) tambm so alternativas viveis para a proteo de dispositivos Android. Comumente, propagandas em aplicativos podem conter vrus, cavalos de tria, exploits ou outras ameaas que comprometem o dispositivo.

Backup garantido

Figura 2 Verique as permisses

antes de instalar o aplicativo.

Manter uma soluo de backup bem configurada, sendo este realizado preferencialmente em uma mdia externa (o que ajudaria no caso de roubo ou danos ao aparelho) outra boa pedida quando se trata de segurana. Atualmente existem diversos sistemas em nuvem que permitem armazenar dados remotamente, sem

J imaginou o que aconteceria se o leitor perdesse seu precioso smartphone ou tablet novinho em folha ou mesmo se o esquecesse em algum lugar? E se fosse roubado? Em qualquer um destes casos todos os dados presentes no aparelho estariam sujeitos a serem utilizados por qualquer pessoa, inclusive de formas maliciosas. Para prevenir este problema, existem no Google Play diversos aplicativos que efetuam buscas georeferenciadas do dispositivo (localizando-o via satlite GPS) para que seja possvel encontr-lo. Alguns destes aplicativos ainda enviam emails para um endereo cadastrado previamente contendo valores de latitude e longitude para que seja mais fcil localizar o aparelho em um mapa como o Google Maps. Outros aplicativos vo mais alm e abordam o impensvel cenrio do caso de no obtermos sucesso em recuperar o aparelho: auxiliar o usurio a apagar os dados, travar o sistema e at mesmo a danificar remotamen63

Linux Magazine #101 | Abril de 2013

ANDROID| Medidas de segurana

te de forma permanente o aparelho para que o ladro no possa utiliz-lo.

Root pra que?

Se o leitor no um usurio avanado, no desenvolvedor de aplicativos nem nada do gnero, no faa o root do aparelho (garantir permisses administrativas no sistema de forma que seja possvel alter-lo completamente). Usurios inexperientes podem danificar o aparelho de forma

que seja impossvel sua recuperao, ou ainda oferecer gratuitamente as chaves para que um invasor entre pela porta da frente, sequestre dados, informaes e danifique o dispositivo.

Concluso

Este artigo aborda apenas alguns dos diversos cenrios nos quais seu dispositivo pode estar vulnervel e algumas formas de prevenir-se destes problemas. Caso queira ficar por dentro de todas

as vulnerabilidades encontradas, seus potenciais riscos e o andamento de suas correes, visite o site da CVE [2], o maior repositrio de vulnerabilidades disponvel na Internet (figura 3). Fique sempre atento a qualquer mudana em seu aparelho, mal comportamento aps atualizaes, remova aplicativos que possam estar comprometendo o sistema e lembre-se de que segurana sempre a palavra de ordem quando se trata dos seus preciosos dados! n

Gostou do artigo?
Queremos ouvir sua opinio. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8469

Mais informaes
[1] Satlites da NASA com Android: http://www.linuxmag.com. br/lm/noticia/satelite_da_ nasa_com_android_comeca_a_ enviar_imagens_do_espaco/ [2] Vulnerabilidades encontradas no Google Android: http:// www.cvedetails.com/ product/19997/GoogleAndroid.html?vendor_id=1224/

O autor
Flvia Jobstraibizer (fjobs@linuxnewmedia.com.br, twitter: @aviajobs) gerente de projetos e analista de sistemas. Trabalha com TI desde 1998 tendo atuado em multinacionais e empresas de diversos segmentos, trabalhando com tecnologias livres e proprietrias. Atualmente editora-chefe das revistas Linux Magazine, Admin Magazine e ct.

2 ! e 1 I P L o a Livros c i f para Certi


A Linux Magazine oferece estas edies revisadas e ampliadas dos livros que te preparam para as Certificaes LPIC-1 e 2, com as seguintes novidades: Exerccios em todos os tpicos Todo contedo ampliado para a nova verso da prova, atualizada em agosto/2012.

Garanta j os seus pelo site da Linux Magazine


www.linuxmagazine.com.br
64
www.linuxmagazine.com.br

ANLISE | Armazenamento Flash para Linux

Armazenamento Flash para Linux

ANLISE

Execuo silenciosa
Os elegantes tablets e smartphones da atual gerao digital abrigam memria Flash, que economiza espao e energia. Neste artigo, explicamos suas caractersticas e sugerimos sistemas apropriados para o Linux. por Michael Opdenacker

omputadores mais antigos com discos e ventoinhas cada vez mais tm sido escondidos em centros de dados, blindados pela nuvem. Desta forma, os usurios no notam quanto calor produzem ou quanto barulho eles fazem. E novos computadores como smartphones e tablets permeiam muitas reas atualmente: afinal, so dispositivos mveis, silenciosos e eficientes em termos de energia. Uma razo pela qual so mais eficientes vem do fato de que sistemas de armazenamento embarcado utilizam chips em vez de discos rotativos. Memria Flash em estado slido no possui partes mveis e , portanto, muito robusta por no possuir estresse mecnico. Alm disso, a memria sem disco acessa os dados desejados mais rapidamente por no exigir um cabeote em movimento. Um dispositivo sem disco tambm produz menos calor, tornando desnecessrio o barulho provocado pela vetoinha. Neste artigo, descreveremos alguns sistemas de arquivos Linux e ferramentas que operam com uma enorme variedade de dispositivos de armazenamento Flash suportados pelo Linux.

relao ao armazenamento rotativo (rotating storage). Em primeiro lugar, a ausncia de peas mecnicas e em movimento elimina o rudo, aumenta a resistncia e segurana a choques e vibraes, e reduz a dissipao de calor e consumo de energia. Segundo, o acesso aleatrio a dados muito mais rpido, pois j no preciso mover um cabeote de disco para o local correto no dispositivo, o que pode levar alguns milissegundos.

O Flash tambm tem suas deficincias. Primeiro, pelo mesmo preo, temos apenas um dcimo da capacidade de armazenamento. Segundo, escrever armazenamento Flash possui restries especiais; no podemos escrever para o mesmo local de um bloco Flash vrias vezes sem apagar todo o bloco, chamado de bloco de apagar (erase block). Esta restrio tambm pode fazer com que a velocidade de escrita seja muito menor que a de leitura. Terceiro, os blo-

Armazenamento Flash

O armazenamento Flash, tambm chamado de estado slido (solid state), possui muitas vantagens em
70

Figura 1 O bloco grande no meio do computador de placa nica

BeagleBoard um sistema OMAP-on-a-chip da Texas Instruments, sob o qual o Flash NAND montado.

www.linuxmagazine.com.br

Armazenamento Flash para Linux | ANLISE

Interface de sistema de arquivos linux


UBI +UBIFS JFFS2 Dispositivo de bloco Dispositivo de bloco somente leitura

NAND/NOR

Mdulos de usurio MTD

YAFFS2

Char device

Chip de drivers MTD

flash NOR

RAM chips DiskOnChip flash

ROM chips

flash NAND

Dispositivos hardware
Figura 2 A arquitetura MTD do kernel Linux permite o gerenciamento independente de hardware de armazenamento Flash.

cos Flash podem suportar apenas um nmero limitado de erases de alguns milhares de chips NAND mais densos a um milho, no mximo. Hardware e

software, portanto, precisam espalhar as operaes de escrita em um processo conhecido como nivelamento de desgaste (wear leveling).

Listagem 1: Parties denidas no kernel


01 static struct mtd_partition omap3beagle_nand_partitions[] = { 02 /* All the partition sizes are listed in terms of NAND block size */ 03 { 04 .name = "X-Loader", 05 .offset = 0, 06 .size = 4 * NAND_BLOCK_SIZE, 07 .mask_flags = MTD_WRITEABLE, /* force readonly */ 08 }, 09 { 10 .name = "UBoot", 11 .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */ 12 .size = 15 * NAND_BLOCK_SIZE, 13 .mask_flags = MTD_WRITEABLE, /* force readonly */ 14 }, 15 { 16 .name = "UBoot Env", 17 .offset = MTDPART_OFS_APPEND, /* Offset = 0x260000 */ 18 .size = 1 * NAND_BLOCK_SIZE, 19 }, 20 { 21 .name = "Kernel", 22 .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */ 23 .size = 32 * NAND_BLOCK_SIZE, 24 }, 25 { 26 .name = "File System", 27 .offset = MTDPART_OFS_APPEND, /* Offset = 0x680000 */ 28 .size = MTDPART_SIZ_FULL, 29 }, 30 };

A memria Flash NOR (Not OR), que nomeia as portas usadas no chip, foi o primeiro tipo de armazenamento Flash inventado. O NOR conveniente pois a CPU pode acessar qualquer byte diretamente e em ordem aleatria. Deste modo, o processador pode executar o cdigo diretamente da NOR, permitindo que seja utilizado em bootloaders, e no necessita ser copiado para a RAM antes de ser executado. O tipo mais popular de armazenamento a memria Flash NAND (Not AND) (figura 1), que oferece maior capacidade de armazenamento pelo menor preo. A desvantagem que, como um dispositivo externo, o armazenamento NAND est conectado via controlador, atravs do qual possvel acessar os dados. A CPU no pode executar cdigo da NAND sem copiar o cdigo para a memria RAM primeiro. Outra restrio que os dispositivos Flash NAND podem possuir blocos defeituosos (bad blocks) fora da caixa, exigindo solues de hardware ou software que funcionam em torno desta limitao durante a operao. Dois tipos de armazenamento Flash NAND esto disponveis hoje. O primeiro tipo emula um bloco padro de interface e contm um hardware Flash Translation Layer (camada de traduo Flash) que cuida de apagar blocos e implementar nivelamento de desgaste, assim como o gerenciamento de blocos defeituosos. Dispositivos deste tipo incluem drives USB Flash, cartes de mdia, cartes multimdia embutidos (eMMCs), e discos de estado slido (da sigla SSDs, de solid state disks). O sistema operacional no tem controle sobre a forma como so geridos os setores Flash pois s considera um dispositivo emulado de bloco. Embora esta abordagem reduza a complexidade do software do lado
71

Linux Magazine #101 | Abril de 2013

ANLISE | Armazenamento Flash para Linux

Listagem 2: Mensagens de inicializao


01 omap2-nand driver initializing 02 ONFI flash detected 03 NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit) 04 Creating 5 MTD partitions on "omap2-nand.0": 05 0x000000000000-0x000000080000 : "X-Loader" 06 0x000000080000-0x000000260000 : "U-Boot" 07 0x000000260000-0x000000280000 : "U-Boot Env" 08 0x000000280000-0x000000680000 : " 09 0x000000680000-0x000010000000 : "File System"

do sistema operacional, os fabricantes de hardware costumam manter em segredo os algoritmos da camada de traduo Flash, deixando os desenvolvedores de sistemas sem alternativas para verificar e ajustar estes algoritmos ou corrigir implementaes pobres. O segundo tipo de memria NAND a raw Flash. O sistema operacional tem acesso ao controlador de Flash e pode gerenciar diretamente seus blocos. O raw Flash pode usar um block erase count para determinar com qual frequncia um bloco tem sido sobrescrito. O kernel Linux implementa um subsistema Memory Technology Device (MTD) que permite o acesso e controle de vrios tipos de dispositivos Flash com uma interface comum (figura 2).

Parties

Acesso bruto (raw access) significa que nenhum sistema de arquivo necessrio, a menos que o usurio deseje armazenar muitos arquivos; um nico e grande arquivo binrio suficiente para alguns aplicativos. Dispositivos MTD geralmente so particionados para definir reas com fins especficos, como o gerenciador de inicializao (bootloader) ou o sistema de arquivos raiz. Acessar as parties e o armazenamento raw flash algo semelhante a acessar dispositivos brutos do bloco (raw block devices) atravs de arquivos de dispositivos (por exemplo, todo o dispositivo com /dev/sda ou parties com /dev/sda1, /dev/sda2 etc. Declarar parties somente leitura (da sigla RO, read-only) pode proteger o sistema contra erros e tentativas de modificao no autorizadas. Observe tambm que as parties no podem ser ignoradas, acessando todo o dispositivo como compensao, uma vez que o Linux no possui nenhum arquivo de dispositivo para este tipo de acesso. A figura 3 mostra um esquema de particionamento tpico. Em contraste com os discos rgidos, a tabela de partio no salva no ambiente

MTD um local inseguro por conta dos blocos potencialmente ruins. Em vez disso, uma estrutura de dados no kernel Linux define as parties. A listagem 1 mostra o trecho relevante do arquivo arch/arm/machOMAP2/board-OMAP3Beagle.c, que define as parties para o Flash NAND na BeagleBoard. Felizmente, podemos substituir estas configuraes padro sem necessidade de recompilar o kernel. Para identificar o nome do dispositivo MTD, percorra as mensagens de inicializao do kernel. Neste exemplo de BeagleBoard, a listagem 2 mostra que o nome do dispositivo NAND omap2-nand.0. Logo que o nome do dispositivo conhecido, o parmetro de boot mtdparts passa no particionamento com (tudo em uma nica linha):
mtdparts=omap2-nand.0:128k(XLoader)ro,256k(U-Boot) ro,128k(Environment),4m(Kernel) ro,32m(RootFS)ro,-(Data)

O cdigo acima define seis parties: Primeiro estgio do bootloader (128KB, RO) Bootloader U-Boot (256KB, RO) Variveis de ambiente U-Boot (128KB) Kernel Linux (4MB, RO) Sistema de arquivos raiz (16MB, RO) Dados (espao de armazenamento restante) O tamanho da partio deve ser um mltiplo do tamanho do erase block, que pode ser encontrado no sistema de destino em /sys/class/ mtd/mtdx/erasesize. Os tamanhos das parties recm-criadas, que o usurio pode ver em /proc/mtd esto em hexadecimal (listagem 3).

Listagem 3: /proc/mtd
Figura 3 O armazenamento MTD
01 02 03 04 05 06 07 dev: mtd0: mtd1: mtd2: mtd3: mtd4: mtd5: size 00020000 00040000 00020000 00400000 02000000 0dbc0000 erasesize name 00020000 "XLoader" 00020000 "UBoot" 00020000 "Environment" 00020000 "Kernel" 00020000 "File System" 00020000 "Data"

normalmente dividido em parties gravveis e somente leitura.

72

www.linuxmagazine.com.br

Armazenamento Flash para Linux | ANLISE

Nomes de arquivos para parties de dispositivo de bloco se referem ao nome completo do dispositivo (por exemplo, /dev/sda1 para a primeira partio /dev/sda), mas note que as parties MTD so mostradas como dispositivos MTD independentes; portanto, o mtd1 poderia ser a segunda partio do primeiro dispositivo Flash ou a primeira partio do segundo dispositivo Flash. No possvel perceber a diferena de nomes dos dispositivos. A partio "Environment onde as variveis de ambiente U-Boot bootloader so armazenadas. Estas variveis podem ser alteradas a partir do U-Boot Shell mas tambm a partir do Linux, piscando (flashing) uma nova imagem para a partio. Os desenvolvedores da Free Electrons tm contribudo de forma bastante til para gerar tal imagem [1].

Figura 4 O armazenamento MTD normalmente dividido em parties gravveis e somente leitura.

Manipulao de dispositivos MTD


Os dispositivos MTD podem ser endereados atravs de duas interfaces. A primeira utiliza o identificador (letra) do dispositivo dev/mtd//N// (onde N o nmero do dispositivo MTD) e o driver mtdchar. Em particular, este identificador fornece os comandos ioctl, que so geralmente utilizados por mtd-utils para manipular e apagar blocos de um dispositivo MTD. A segunda interface fornece o dispositivo de bloco dev/mtdblock//N// e o driver mtdblock. Este dispositivo usado principalmente para montar sistemas de arquivos MTD, como JFFS2 e YAFFS2, pois o comando mount s funciona com dispositivos de bloco. Embora possamos ser tentados a usar este dispositivo para gravar no MTD, o driver correspondente no sofisticado o suficiente para uso em produo por no suportar nivelamento de desgaste; uma srie de gravaes para a mesma parte do dispositivo de bloco poderia danificar

muito rapidamente os correspondentes erase blocks. Pior, se copiarmos uma imagem de sistema de arquivos para /dev/mtdblock//N//, o sistema de arquivos poderia ser corrompido pois os blocos danificados no so levados em conta. Portanto, a maneira ideal de manipular dispositivos MTD atravs do identificador de interface (character interface) e mtd-utils [2]. Os comandos mais importantes so: mtdinfo: informaes detalhadas sobre um dispositivo MTD flash_eraseall: apaga por completo um dado dispositivo MTD flashcp: escreve para Flash NOR nandwrite: escreva para Flash NAND Utilitrios UBI (veja o tpico UBI e UIFS) mkfs.jffs2, mkfs.ubifs: ferramentas de criao de imagem de sistema de arquivo Flash Estes comandos esto disponveis atravs do pacote mtdutils em distribuies GNU/Linux e tambm podem ser compilados de forma cruzada (cross-compiled) a partir da fonte por sistemas embarcados Linux, tais como o BuildRoot [3] e o OpenEmbedded [4]. Simples implementaes dos comandos mais comuns tambm esto disponveis no BusyBox [5], tornando muito mais fcil de fazer a compilao cruzada em sistemas embarcados menos complexos.

JFFS2

O Journaling Flash File System verso 2 (JFFS2) [6], que foi adicionado ao kernel Linux em 2001, um sistema de arquivos muito popular para o

armazenamento Flash. Como esperado para um sistema de arquivos Flash, ele implementa a deteco e gesto do bloco danificado, bem como o nivelamento de desgaste. Tambm projetado para ficar em um estado consistente aps falhas abruptas de energia e quebras do sistema. Por ltimo, mas no menos importante, o JFFS2 tambm armazena dados compactados. Diversos esquemas de compresso esto disponveis de acordo com o que mais importante: desempenho para ler/escrever ou taxa de compresso. Por exemplo, o zlib comprime melhor que o lzo, mas tambm muito mais lento. A implementao de arquivos de sistemas em Flash possui restries especiais. Para modificar um arquivo existente, no podemos simplesmente copiar os blocos correspondentes para a RAM, apag-los e piscar (flash) os blocos com a nova verso. Primeiro, uma falha de energia durante este procedimento poderia causar perda de dados irrecuperveis. Segundo, podemos rapidamente desgastar blocos especficos, fazendo vrias atualizaes para o mesmo arquivo. Uma alternativa seria escrever os novos dados para um novo bloco e atualizar os indicadores (pointers) para os dados antigos. Contudo, isto implicaria outra escrita, que poderia provocar outras modificaes at que a referncia root fosse alcanada. O JFFS2 resolve estes problemas com uma abordagem de log estruturado [7]. Cada arquivo mapeado para um n com dados e metadados, e cada n tem um nmero de verso associado. Em
73

Linux Magazine #101 | Abril de 2013

ANLISE | Armazenamento Flash para Linux

vez de fazer alteraes locais, a ideia escrever uma verso mais recente do n em outra parte do erase block com espao livre. Isto simplifica as operaes de escrita, mas complica as operaes de leitura, pois o sistema de arquivos precisa localizar o n mais recente. Para otimizar o desempenho, o JFFS2 mantm um mapa de memria dos ns mais recentes para cada arquivo; no momento da montagem, digitaliza os ns, cria e armazena o mapa. Uma vez que o tempo de montagem do JFFS2 proporcional ao nmero de ns, sistemas embarcados utilizando JFFS2 em grandes parties Flash podero incorrer em enormes sanes no momento da inicializao. Felizmente, foi adicionada uma opo da kernel: CONFIG_ JFFS2_SUMMARY, que confere ao Linux o armazenamento do mapa entre as aes de montagem no dispositivo Flash, reduzindo drasticamente o tempo de montagem. No entanto, esta opo no ativada por padro. Ns mais velhos devem ser recuperados em algum ponto para manter o espao livre para novas escritas. Um n criado como vlido e considerado obsoleto quando uma nova verso criada. O JFFS2 gerencia trs tipos de blocos Flash: Blocos limpos, que contm apenas ns vlidos Blocos sujos, que contm pelo menos um n obsoleto Blocos livres, que no contm nenhum n O JFFS2 executa um coletor de lixo em segundo plano, que recicla blocos sujos transformando-os em blocos livres. Faz isso atravs do recolhimento de todos os ns vlidos em um bloco sujo e os copia para um bloco limpo (com o espao que restar) ou para um bloco livre. O antigo bloco sujo ento apagado e marcado como livre. Para fazer todos os erase blocks participarem do nivelamento de desgaste, o coletor de lixo ocasionalmente tambm consome blocos limpos.
74

Figura 5 Tempo de CPU necessrio para montar sistemas de arquivos. As longas


barras vermelhas mostram o demorado processo de mount no JFFS2.

H duas maneiras de criar uma partio JFFS2. A primeira apagar a partio, format-la para JFFS2, e depois mont-la:
flash_eraseall -j /dev/mtd2 mount -t jffs2 /dev/mtdblock2 / mnt/flash

O flash_eraseall e o -j apagam a partio Flash as formata para JFFS2. A segunda opo geralmente uma melhor combinao para o fluxo integrado de trabalho do desenvolvedor pois cria a imagem JFFS2 no computador desktop e escreve a imagem na partio. Para criar a imagem, use o comando mkfs.jffs2 fornecido pelo mtd-utils, mas no se confunda com seu nome: ao contrrio de alguns outros comandos mkfs, ele no cria um sistema de arquivos, mas uma imagem de sistema de arquivos. O comando seguinte cria um arquivo de imagem com o nome rootfs.jffs2. Para este exemplo, vamos assumir que o tamanho do erase block de 256MB.
mkfs.jffs2 --pad --no-cleanmarkers --eraseblock=256 -d rootfs/ -o rootfs.jffs2

O parmetro -d indica o diretrio com o contedo desejado para o sistema de arquivos e o --pad cria uma imagem que de tamanho mltiplo ao do erase block; o --no-cleanmarkers s deve ser utilizado para o Flash NAND. Para formatar a partio alvo e escrever a imagem, utilize:
flash_eraseall /dev/mtd2 nandwrite -p /dev/mtd2 rootfs. jffs2

Se a imagem menor do que a partio, o JFFS2 ainda pode utilizar todo o espao posteriormente, fornecido pela partio que foi completamente apagada anteriormente. Para preparar dispositivos de produo, muito mais conveniente escrever as parties MTD do bootloader, utlizando um comando que pode lidar com os blocos danificados sem inicializar o Linux. Desta forma, utilitrios de desenvolvimento como o flash_eraseall no precisam estar na raiz do sistema de arquivos Linux, que outra razo pela qual as imagens do sistema de arquivos so teis. Normalmente, baixamos a imagem do sistema de arquivos para a memria RAM e copiamos a imagem para o Flash. Quando fazemos isso, apenas temos que nos certificar de

www.linuxmagazine.com.br

Armazenamento Flash para Linux | ANLISE

haver copiado o tamanho exato da imagem. Com as imagens JFFS2, se copiarmos mais bytes da RAM para o Flash, acabaremos escrevendo bytes aleatrios no final da imagem, o que ir corromper o sistema de arquivos.

YAFFS2

Uma alternativa ao JFFS2 o YAFFS2 [8] (sigla para Yet Another Flash Filesystem) encontrado em smartphones com as primeiras verses do Android. O YAFFS2 no usa compresso, mas apresenta tempos de montagem muito mais rpidos, bem como melhor desempenho de escrita e leitura. O cdigo duplamente licenciado, sob a GPL e uma licena proprietria (ou seja, GPL para uso no kernel Linux e a licena para sistemas operacionais proprietrios). A receita da licena proprietria tem financiado seu desenvolvimento. O YAFFS2 menos popular do que o JFFS2, provavelmente por no fazer parte do planejamento do kernel Linux. Em vez disso, est disponvel como um patch externo com um conjunto de scripts auxiliares. Um esforo foi feito para t-lo na linha de frente cerca de um ano atrs, mas esta tentativa falhou pois as alteraes solicitadas pelos mantenedores do kernel teriam quebrado a portabilidade para outros sistemas operacionais. Depois de fazer o patch do kernel, o usurio pode criar um novo sistema de arquivos YAFFS2 com o comando:
flash_eraseall /dev/mtd2

O sistema de arquivos formatado automaticamente na primeira montagem:


mount -t yaffs2 /dev/mtdblock2/ mnt/flash

Outra opo consiste em utilizar a ferramenta mkyaffs, dos utilitrios YAFFS2 [9].

UBI e UBIFS

tringindo-o a parties individuais. No entanto, os nveis de utilizao podem ser muito diferentes. Parties so montadas muitas vezes no modo somente leitura, enquanto as parties de dados esto expostas a muitas escritas razo pela qual so conhecidas como parties quentes. Para evitar o desgaste de parties quentes muito rapidamente, todas as reas da memria Flash precisam participar do nivelamento de desgaste. Isto exatamente o que o projeto Unsorted Block Images (UBI) oferece. O UBI uma camada acima do MTD que gerencia erase blocks e bad blocks e implementa o nivelamento de desgaste, tirando estas tarefas dos ombros do sistema de arquivos. O UBI tambm suporta parties ou volumes flexveis, que podem ser criados e redimensionados dinamicamente, parecido com o que o Logical Volume Manager faz para dispositivos de bloco. O UBI implementa o Logical Erase Blocks (LEBs), que o mapeia para o Physical Erase Blocks (PEBs) (figura 4). Camadas superiores, tais como sistemas de arquivos, apenas visualizam os LEBs. Se uma LEB visualiza muita ao, o UBI pode trocar os ponteiros, substituindo o PEB quente por um frio. Este mecanismo requer alguns PEBs livres para trabalhar de forma eficiente, e a sobrecarga faz a UBI menos apropriada para dispositivos menores com apenas alguns megabytes de espao. Um sistema de arquivos para UBI, chamado UBIFS, foi criado pelo projeto MTD Linux como sucessor do JFFS2. O UBIFS suporta a compresso e apresenta desempenhos de mount, escrita e leitura muito melhores. No Linux, o UBI e o UBIFS so iniciados com alguns comandos. Primeiro, o usurio root precisa montar o diretrio do dispositivo como um pseudo sistema de arquivos devtmpfs. O comando:
ubiformat /dev/mtd1

count). Para habilitar o UBI na partio MTD, digite:


ubiattach /dev/ubi_ctrl -m 1

Isto cria uma nova identidade (letra) para o dispositivo, /dev/ubi0. Agora podemos criar um ou vrios volumes sobre o dispositivo,
ubimkvol /dev/ubi0 -N test -s 116MiB ubimkvol /dev/ubi0 -N test -m

onde o -m o tamanho mximo disponvel. Para montar um sistema de arquivos UBIFS vazio no novo volume de teste, insira
mount -t ubifs ubi0:test /mnt/ flash

e para popular o sistema de arquivos com os arquivos. Uma abordagem alternativa primeiro criar uma imagem do sistema de arquivos UBIFS com o comando mkfs.ubifs e copiar a imagem com ubiupdatevol. Outra abordagem criar uma imagem de todo o espao UBI, que pode ser escrito do bootloader com o comando que pode lidar com blocos danificados (bad blocks). Para fazer isso, primeiro crie um arquivo ubi.ini descrevendo o espao UBI, seus volumes e seus contedos. Um exemplo mostrado na listagem 4. Este arquivo descreve quais volumes devem ser criados, juntamente com seus tamanhos. A imagem UBI criada com o comando:
ubinize -o ubi.img -p 128KiB -m 4096 ubi.ini

que tambm especifica erase blocks fsicos 128KB e um tamanho mnimo

Listagem 4: ubi.ini
01 02 03 04 05 06 07 08 09 [RFSvolume] mode=ubi image=rootfs.ubifs vol_id=1 vol_size=30MiB vol_type=dynamic vol_name=rootfs vol_flags=autoresize vol_alignment=1

O JFFS2 e o YAFFS2 tm um problema em comum: eles implementam o nivelamento de desgaste, res-

exclui uma partio Flash sem precisar reiniciar a contagem erase (erase

Linux Magazine #101 | Abril de 2013

75

ANLISE | Armazenamento Flash para Linux

de I/O de 4096 bytes. Para transferir a imagem, use uma ferramenta bootloader que possa lidar com os bad blocks. Alm disso, a linha de comando do kernel precisa da opo ubi.mtd=1 (equivalente ao ubiattach). Se quiser que o UBIFS controle a partio root, adicione:
rootfstype=ubifs root=ubi0:rootfs

Electrons apresentou o ubiblk Linux Kernel Mailing List [11], mas ainda no foi considerado (mainlined). Os benchmarks mostram que o ubiblk uma soluo eficiente, por no precisar emular um dispositivo intermedirio MTD. Com financiamento da Linux Foundation, a Free Electrons testou o desempenho de vrios sistemas de arquivos Flash em diferentes verses do kernel. Os resultados (figura 5) esto descritos online [12]. Em resumo, o JFFS2 teve o pior desempenho e deve ser compilado com CONFIG_SUMMARY para um tempo de inicializao aceitvel. No entanto, o JFFS2 ainda a melhor promessa para dispositivos com parties Flash pequenas que necessitam de compresso e onde o UBI teria muita sobrecarga. Esta a razo pela qual o JFFS2 ainda est em uso no OpenWRT, uma distribuio focada principalmente em dispositivos embarcados, como gateways residenciais e roteadores, geralmente com 4MB a 16MB de armazenamento Flash. Graas a melhorias nos ltimos anos, o YAFFS2 apresenta desempenho muito bom, seno o melhor, em muitos cenrios de teste. No entanto, a falta de compresso continua sendo uma desvantagem, assim como sua ausncia no kernel Linux. O YAFFS2 tambm mostra problemas de desempenho incomuns na gesto de diretrios. O UBIFS agora a melhor soluo em termos de desempenho e espao. A necessidade de espao adicional ser um problema somente em parties muito pequenas. A implementao tambm requer um pouco mais de trabalho do que os outros candidatos. No momento da publicao deste artigo, o LogFS ainda muito experimental para ser usado em sistemas de produo, embora possamos esperar que seus bugs sejam corrigidos

Benchmarks

ao comando boot.

LogFS

O LogFS [10] outro sistema de arquivos estruturado em log para a memria Flash que possui um design inovador e tem sido parte principal do kernel Linux desde a verso 2.6.34. O inovador sistema de arquivos poderia ter influncia sobre o UBIFS mas, infelizmente, mostrou-se instvel, causando problemas no kernel no momento de desmontagem, quando testado pela Free Electrons. Graas integrao com o kernel Linux oficial, h boas chances de que o desenvolvedor venha a resolver estes problemas.

SquashFS

com o tempo. O SquashFS exibe boa compresso e tempo de montagem, assim como desempenho de leitura no Flash MTD em sistemas com parties somente leitura. A necessidade de parear o SquashFS com o UBI, no entanto, compromete o desempenho do tempo de mount. Em sistemas de arquivos de bloco, o SquashFS exibe o melhor tempo de mount, mas perde muito tempo com a UBI, o que leva a uma quantidade substancial de tempo para inicializar (a operao ubiattach). A boa notcia que muito barato mudar sistemas de arquivos. Os aplicativos nem sequer notaro a diferena. Como os benchmarks mostram, podemos obter resultados de desempenho notvel, dependendo do tamanho e nmero das parties e arquivos, da leitura e escrita padres do sistema, e da necessidade de compresso. Tudo o que o usurio precisa fazer tentar vrios sistemas de arquivos, executar seus aplicativos e testes de sistema, e manter a soluo que maximiza o desempenho do seu sistema particular.

Parties somente leitura podem usar o sistema de arquivos de blocos SquashFS em dispositivos MTD. Copiar uma imagem SquashFS diretamente para o dispositivo /dev/ mtdblock//N// funciona bem afinal, no temos que nos preocupar com o nivelamento de desgaste at encontrar bad blocks no dispositivo. Mais uma vez, o driver mtdblock no pode lidar com bad blocks, ento outra soluo se faz necessria. Uma possibilidade consiste em utilizar o driver gluebi, que emula um dispositivo MTD em cima de um volume UBI. Como o UBI descarta bad blocks, o mdtblock pode agora ser usado com segurana. Uma segunda possibilidade usar o driver ubiblk, que implementa um dispositivo de bloco somente leitura diretamente acima da UBI. A Free
76

Sovinas

A memria Flash em seu estado natural (raw) oferece aos desenvolvedores de sistemas embarcados muitas oportunidades de otimizao. A tendncia entre os fabricantes de hardware, no entanto, est longe da memria flexvel NAND incorporada ao MMC. Estas superfcies montadas de cartes de memria usam uma interface mais parecida com a de uma placa externa. Elas escondem os detalhes dos blocos ruins e de nivelamento de desgaste do sistema operacional. Por serem muito acessveis, provavelmente iro derrubar o Flash mais caro. Felizmente, o eMMC no totalmente opaco. Arnd Bergmann, desenvolvedor do kernel, escreveu uma ferramenta chamada Flashbench [13] que permite determinar expe-

www.linuxmagazine.com.br

Armazenamento Flash para Linux | ANLISE

rimentalmente as caractersticas da mdia de armazenamento, tais como o tamanho dos blocos de apagar. Com a ajuda destes resultados, podemos tambm otimizar os parmetros do sistema de arquivos que estivermos utilizando. Bergmann descreve seu trabalho em um artigo online [14].

Mais informaes
[1] Image tool for U-Boot environment: http://free-electrons. com/blog/mkenvimage-uboot-binary-env-generator/ [2] mtd-utils: http://git.infradead.org/mtd-utils.git [3] BuildRoot: http://buildroot.uclibc.org/ [4] OpenEmbedded: http://www.openembedded.org/ [5] BusyBox: http://www.busybox.net/ [6] JFFS2: http://www.linux-mtd.infradead.org/faq/jffs2.html [7] Log-structured lesystem: http://en.wikipedia. org/wiki/Log-structured_file_system/ [8] YAFFS2: http://www.yaffs.net/ [9] yaffs2utils: http://code.google.com/p/yaffs2utils/ [10] LogFS: https://github.com/prasad-joshi/logfs/ [11] biblk: Read-only block layer on top of UBI: https://lkml.org/lkml/2011/6/24/122/ [12] Flash lesystem benchmarks: http://elinux. org/Flash_Filesystem_Benchmarks/ [13] Flashbench benchmark tool: http://git.linaro.org/ gitweb?p=people/arnd/flashbench.git;a=summary [14] Optimizing Linux with Cheap Flash Drives by Arnd Bergmann, http://lwn.net/Articles/428584/

Concluso

Algumas simples regras de ouro so necessrias para trabalhar com memria Flash, incluindo no criar uma partio swap em Flash. Sempre que possvel, devemos montar parties somente leitura. Dados volteis, tais como arquivos de log, podem ser mantidos na memria RAM, usando o pseudo sistema de arquivos tmpfs. n

Gostou do artigo?
Queremos ouvir sua opinio. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/7768

A certificao LPI cada vez mais prxima de voc!


Adquira j o seu kit de certificao LPI, faa o curso intensivo e as provas no fisl14 e garanta a sua vaga entre os especialistas Linux mais procurados do mercado!

Kit de certificao LPI-1

Kit de certificao LPI-2

Contedo do kit:

1 livro contendo o guia de estudos para a certificao LPI-1 ou 2 Curso preparatrio intensivo 2 provas para certificao LPI-1 ou LPI-2: Exames 101/102 ou Exames 201/202 Para aquisio e mais informaes: Linux Magazine #101 | Abril de 2013 https://www.linuxnewmedia.com.br/lm/certificacao_fisl14

0 ,0 ,33 0 8 65 10 $ $ r R e R ros o P ju xd m 77 6 e ou s

PREVIEW

Linux Magazine #102


Samba 4
Conhea as fantsticas novidades da to esperada nova verso da mais popular plataforma de compatibilidade entre sistemas operacionais do mercado. Aps muitos anos de expectativas e com desenvolvimento constante, a ferrament a ganhou sua nova verso em grande estilo. Na prxima edio da Linux Magazine voc ir conhecer seus novos recursos e melhorias, saber o que mudou e o que o novo Samba poder fazer por voc! No perca! n

Admin Magazine #09


OpenStack
Capaz de gerenciar os componentes de mltiplas instncias virtualizadas, o OpenStack um dos queridinhos dos profissionais de infraestrutura e virtualizao da atualidade. livre, no possui restries quanto quantidade de instncias e uma plataforma robusta, extremamente til nestes tempos onde o advento da computao em nuvem j uma realidade. Na prxima edio da Admin Magazine voc vai conhecer tudo o que essa incrvel ferramenta pode fazer por voc! No perca! n

82

www.linuxmagazine.com.br

Calendrio de eventos
Evento Data
3 e 4 de abril

ndice de anunciantes
Local
So Paulo, SP

Informaes
http://www.webexpoforum. com.br/

Empresa
Supermicro

Pg.
02

SERVIOS

Web Expo Forum

Senac

07

Gartner Data Center Summit

9 e 10 de abril

So Paulo, SP

http://www.gartner.com/ technology/summits/ la/data-center/

Impacta

11

Uol Cloud

13

Plus Server

18,19

BITS 2013

14 a 16 de maio

Porto Alegre, RS

http://www.bitsouthamerica. com.br/

Central Server

23

CloudConf

25

Forum Analytics

16 de julho

So Paulo, SP

https://www.linuxnewmedia. com.br/fan/

Fisl

81

Watchguard

83

Cloudconf

10 e 11 de setembro

So Paulo, SP

http://www.cloudconf.com.br/
IBM 84

A LINUX MAGAZINE TEM UM PRESENTE PARA VOC!

Quer ganhar essa mochila Targus personalizada de presente da Linux Magazine?


Veja o regulamento da promoo no site:

http://www.linuxmagazine.com.br/hotsite/mochila_natal
80
www.linuxmagazine.com.br

Voc refm da Operadora de Telecom?

Altos custos de conectividade impedem sua empresa de ter links redundantes.


No pule no vazio! Achar que a segurana simples o comeo de seus problemas! um erro, total e comum, achar que qualquer um na sua TI pode fazer gesto de segurana da sua

Alugue um Firewall gerenciado a partir de R$ 300,00/ms.

Controle de Contedo e Antivrus, Solues Antispam, implementadas localmente ou na nuvem, Proteo de Invases e Ataques, Balanceamento de Links e Servidores, Anlise de Vulnerabilidades e Riscos,

Conectividade entre Sites, Fornecedores, etc. Conectividade Segura para Usurios Mveis, Otimizao de Links, Controle de Navegao, Controle de Aplicaes,

vendas@altermedios.com.br

(11) 3393.3340

Вам также может понравиться