30
A REVISTA DO PROFISSIONAL DE TI MEDIALINX WWW.LINUXMAGAZINE.COM.BR # 101 Abril 2013 MADDOG p.24 Como o Raspberry Pi reacendeu o interesse pelo hardware CEZAR TAURION p.26 O futuro dos pacotes de aplicativos AUGUSTO CAMPOS p.8 A eterna briga entre marcas e propriedades VIRTUALIZAÇÃO A TECNOLOGIA BASE DA COMPUTAÇÃO EM NUVEM NÃO PARA DE EVOLUIR. CONHEÇA AS NOVAS FERRAMENTAS DISPONÍVEIS PARA TIRAR O MÁXIMO PROVEITO DESSA EVOLUÇÃO p.33 » Clusters de máquinas virtuais com o Proxmox p.34 » Desktops virtuais com phpVirtualBox p.40 » Monitoramento VMware com OpenNMS p.46 SIMON p.56 Linux controlado por voz SEGURANÇA p.50 Use túneis SSH reversos para garantir a segurança de acesso a medidores inteligentes ANDROID p.62 Como garantir sua segurança sem deixar de lado os melhores recursos da tecnologia VEJA TAMBÉM NESTA EDIÇÃO: » Entrevista com Eben Upton da Raspberry Pi Foundation p.29 » Novidades do Apache HTTP Server 2.4 p.65 » Armazenamento flash para Linux p.70

Linux Magazine Community Edition 101

  • Upload
    dinhdan

  • View
    266

  • Download
    8

Embed Size (px)

Citation preview

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

#44 07/08

R$ 13,90 € 7,50

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWW.LINUXMAGAZINE.COM.BR

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

LINUX PARK 2008 p.28Iniciada em Porto Alegre a temporada de seminários Linux Park de 2008

CEZAR TAURION p.34O Código Aberto como incentivo à inovação

GOVERNANÇA COM

» O que dizem os profissionais certificados p.24

» Cobit, CMMI, ITIL. Quais as melhores práticas? p.36

» ITIL na prática p.39

» Novidades do ITIL v3. p.44

SEGURANÇA: DNSSEC p.69

Com o DNSSEC, a resolução de nomes fica protegida de ataques. Mas seupreço vale a pena?

REDES: IPV6 p.64

Conheça as vantagens da nova versão do Internet Protocol, e veja por queé difícil adotá-la

VEJA TAMBÉM NESTA EDIÇÃO:

» Relatórios do Squid com o SARG p.60

» Java, Ruby e Rails: conheça o JRuby on Rails p.74

» Benchmarks do GCC 4.3? p.58

» Becape de bancos de dados com a Libferris p.46

» LPI nível 2: Servidores NIS e DHCP p.52

A REVISTA DO PROFISSIONAL DE TI

MEDIALINX

WWW.LINUXMAGAZINE.COM.BR

# 101 Abril 2013

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

CEZAR TAURION p.26O futuro dos pacotes de aplicativos

AUGUSTO CAMPOS p.8A eterna briga entre marcas e propriedades

VIRTUALIZAÇÃOA TECNOLOGIA BASE DA COMPUTAÇÃO EM NUVEM NÃO PARA DE EVOLUIR. CONHEÇA AS NOVAS FERRAMENTAS DISPONÍVEIS PARA TIRAR O MÁXIMO PROVEITO DESSA EVOLUÇÃO p.33

» Clusters de máquinas virtuais com o Proxmox p.34

» Desktops virtuais com phpVirtualBox p.40

» Monitoramento VMware com OpenNMS p.46

SIMON p.56Linux controlado por voz

SEGURANÇA p.50Use túneis SSH reversos para garantir a segurança de acesso a medidores inteligentes

ANDROID p.62Como garantir sua segurança sem deixar de lado os melhores recursos da tecnologia

VEJA TAMBÉM NESTA EDIÇÃO:» Entrevista com Eben Upton da Raspberry Pi Foundation p.29

» Novidades do Apache HTTP Server 2.4 p.65

» Armazenamento flash para Linux p.70

SEJA

UM

BOM

GES

TOR

E UT

ILIZ

E AS

M

ELHO

RES

PRÁT

ICAS

ADO

TADA

S E

RECO

MEN

DADA

S PE

LOS

PROF

ISSI

ONAI

S M

AIS

EXPE

RIEN

TES

NESS

A ÁR

EA p.

36

#44

07/0

8

R$

13,9

0

7,50

7 908179 640029

4 4 0 0 0

A R

EV

ISTA

DO

PR

OFI

SS

ION

AL

DE

TI

WW

W.L

INU

XM

AG

AZI

NE

.CO

M.B

R

CASE

ALF

RESC

O p

.26

A Co

nstr

ucap

agi

lizou

seu

s pr

ojet

os c

om o

Alfr

esco

LIN

UX P

ARK

2008

p.2

8In

icia

da e

m P

orto

Ale

gre

a te

mpo

rada

de

sem

inár

ios

Linu

x Pa

rk d

e 20

08

CEZA

R TA

URIO

N p

.34

O Có

digo

Abe

rto

com

o in

cent

ivo

à in

ovaç

ão

GOVE

RNAN

ÇA C

OM

» O

que

dize

m o

s pr

ofiss

iona

is

cert

ifica

dos

p.24

» Co

bit,

CMM

I, IT

IL. Q

uais

as

mel

hore

s pr

átic

as?

p.36

» IT

IL n

a pr

átic

a p.

39

» N

ovid

ades

do

ITIL

v3.

p.4

4

SEGU

RAN

ÇA: D

NSS

EC p.

69

Com

o D

NSS

EC, a

reso

luçã

o de

nom

es fi

ca p

rote

gida

de

ata

ques

. Mas

seu

preç

o va

le a

pen

a?

REDE

S: IP

V6 p.

64

Conh

eça

as v

anta

gens

da

nova

ver

são

do In

tern

et

Prot

ocol

, e v

eja

por q

ueé

difíc

il ad

otá-

la

VEJA

TAM

BÉM

NES

TA E

DIÇÃ

O:

» Re

lató

rios

do

Squi

d co

m o

SAR

G p.

60

» Ja

va, R

uby

e Ra

ils: c

onhe

ça o

JRu

by o

n Ra

ils p

.74

» Be

nchm

arks

do

GCC

4.3?

p.5

8

» Be

cape

de

banc

os d

e da

dos

com

a L

ibfe

rris

p.4

6

» LP

I nív

el 2

: Ser

vido

res

NIS

e D

HCP

p.52

MEDIALINX

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

#44 07/08

R$ 13,90 € 7,50

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWW.LINUXMAGAZINE.COM.BR

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

LINUX PARK 2008 p.28Iniciada em Porto Alegre a temporada de seminários Linux Park de 2008

CEZAR TAURION p.34O Código Aberto como incentivo à inovação

GOVERNANÇA COM

» O que dizem os profissionais certificados p.24

» Cobit, CMMI, ITIL. Quais as melhores práticas? p.36

» ITIL na prática p.39

» Novidades do ITIL v3. p.44

SEGURANÇA: DNSSEC p.69

Com o DNSSEC, a resolução de nomes fica protegida de ataques. Mas seupreço vale a pena?

REDES: IPV6 p.64

Conheça as vantagens da nova versão do Internet Protocol, e veja por queé difícil adotá-la

VEJA TAMBÉM NESTA EDIÇÃO:

» Relatórios do Squid com o SARG p.60

» Java, Ruby e Rails: conheça o JRuby on Rails p.74

» Benchmarks do GCC 4.3? p.58

» Becape de bancos de dados com a Libferris p.46

» LPI nível 2: Servidores NIS e DHCP p.52

WWW.LINUXMAGAZINE.COM.BR

A REVISTA DO PROFISSIONAL DE TI

# 101 Abril 2013

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

CEZAR TAURION p.26O futuro dos pacotes de aplicativos

AUGUSTO CAMPOS p.8A eterna briga entre marcas e propriedades

VIRTUALIZAÇÃO

#101 04/13

R$ 14,90 € 7,50

9 771806 942009

0 0 1 0 1

A TECNOLOGIA BASE DA COMPUTAÇÃO EM NUVEM NÃO PARA DE EVOLUIR. CONHEÇA AS NOVAS FERRAMENTAS DISPONÍVEIS PARA TIRAR O MÁXIMO PROVEITO DESSA EVOLUÇÃO p.33

» Clusters de máquinas virtuais com o Proxmox p.34

» Desktops virtuais com phpVirtualBox p.40

» Monitoramento VMware com OpenNMS p.46

SIMON p.56Linux controlado por voz

SEGURANÇA p.50Use túneis SSH reversos para garantir a segurança de acesso a medidores inteligentes

ANDROID p.62Como garantir sua segurança sem deixar de lado os melhores recursos da tecnologia

VEJA TAMBÉM NESTA EDIÇÃO:» Entrevista com Eben Upton da Raspberry Pi Foundation p.29

» Novidades do Apache HTTP Server 2.4 p.65

» Armazenamento flash para Linux p.70

SEJA

UM

BOM

GES

TOR

E UT

ILIZ

E AS

M

ELHO

RES

PRÁT

ICAS

ADO

TADA

S E

RECO

MEN

DADA

S PE

LOS

PROF

ISSI

ONAI

S M

AIS

EXPE

RIEN

TES

NESS

A ÁR

EA p.

36

#44

07/0

8

R$

13,9

0

7,50

7 908179 640029

4 4 0 0 0

A R

EV

ISTA

DO

PR

OFI

SS

ION

AL

DE

TI

WW

W.L

INU

XM

AG

AZI

NE

.CO

M.B

R

CASE

ALF

RESC

O p

.26

A Co

nstr

ucap

agi

lizou

seu

s pr

ojet

os c

om o

Alfr

esco

LIN

UX P

ARK

2008

p.2

8In

icia

da e

m P

orto

Ale

gre

a te

mpo

rada

de

sem

inár

ios

Linu

x Pa

rk d

e 20

08

CEZA

R TA

URIO

N p

.34

O Có

digo

Abe

rto

com

o in

cent

ivo

à in

ovaç

ão

GOVE

RNAN

ÇA C

OM

» O

que

dize

m o

s pr

ofiss

iona

is

cert

ifica

dos

p.24

» Co

bit,

CMM

I, IT

IL. Q

uais

as

mel

hore

s pr

átic

as?

p.36

» IT

IL n

a pr

átic

a p.

39

» N

ovid

ades

do

ITIL

v3.

p.4

4

SEGU

RAN

ÇA: D

NSS

EC p.

69

Com

o D

NSS

EC, a

reso

luçã

o de

nom

es fi

ca p

rote

gida

de

ata

ques

. Mas

seu

preç

o va

le a

pen

a?

REDE

S: IP

V6 p.

64

Conh

eça

as v

anta

gens

da

nova

ver

são

do In

tern

et

Prot

ocol

, e v

eja

por q

ueé

difíc

il ad

otá-

la

VEJA

TAM

BÉM

NES

TA E

DIÇÃ

O:

» Re

lató

rios

do

Squi

d co

m o

SAR

G p.

60

» Ja

va, R

uby

e Ra

ils: c

onhe

ça o

JRu

by o

n Ra

ils p

.74

» Be

nchm

arks

do

GCC

4.3?

p.5

8

» Be

cape

de

banc

os d

e da

dos

com

a L

ibfe

rris

p.4

6

» LP

I nív

el 2

: Ser

vido

res

NIS

e D

HCP

p.52

www.supermicro.com/Brazil© Super Micro Computer, Inc. - As con�gurações estão sujeitas a mudança sem aviso prévio.

Intel, the Intel logo, Xeon, and Xeon Inside are trademarks or registered trademarks of Intel Corporation in the U.S. and/or other countries.

All other brands and names are the property of their respective owners.

Melhor linha de soluções de infraestrutura corporativa para Hadoop• Plataforma corporativa para análise de Big Data de alta con�abilidade, qualidade e desempenho• Hot-Swap 4x, 6x, 8x, and 12x 3.5” HDs por lâmina / 1U• Fontes redundantes de e�ciência nível Platinum (> 95%)• Gerenciamento remoto de clusters e sistemas com IPMI integrado• Switches Layer 3 10GbE/1GbE de excelente custo/benefício com Uplink de 10GbE• Suporte à família de processadores Intel® Xeon® Processor E5-2600

SSG-5017R-iHDP12x 3.5” HDs por U

SC826 12x 3.5” HDs

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

10GbE/1GbE Switches Software de GerenciamentoMonitoramento / Controle de Energia

Soluções Hadoopem rack

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

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

SSE-X24S (10G - 24 Portas)SC8258x 3.5” HDs

SYS-F617H6-FT+4 DP Nodes, Front I/O12x 3.5” HDs por lâmina ou nó

2U Twin SC827HD 6 HDDs por lâmina ou nó6x 3.5” HDs por lâmina ou nó

SYS-F627R3-RTB+/R72B+8x 3.5” HDs por U

(Visão traseira)

E N T E R P R I S E

I N F R A E S T R U T U R A

72x 3.5” HDs18 HDs por U

SSG-6047R-E1R72LDouble-Sided Storage72x 3.5” HDs; 18 HDs por U

Avnet Embedded Brasil

Tel: +5511 2107 [email protected]

SM_ERP_20130416_Print_LinuxBrazil.indd 1 4/26/2013 3:08:50 PM

Alameda Mamoré 989, 18º AndarCEP 06454-040 | Barueri/SP

3Linux Magazine #101 | Abril de 2013

ED

ITO

RIA

L

Em abril de 2013, foi realizada pela sétima vez a pesquisa anual in-titulada “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 importância do Software Livre e de Código Aberto (SL/CA) no setor corporativo. Segundo os organizadores, par-ticiparam da pesquisa mais de 800 decisores, revendedores, arquitetos de sistemas, desenvolvedores e especialistas em marketing. 42% dos participantes da pesquisa eram funcionários de fabricantes de software.

Os resultados refletem mais a situação de empresas norte-americanas, mas também seriam de interesse para a indústria em outros mercados, como a Europa e a América Latina, conforme declarou a Open Source Business Foundation. Na atual edição da pesquisa, os quesitos segu-rança e qualidade ocuparam o primeiro lugar enquanto motivo para a utilização de software de código aberto. Nos dois anos anteriores a independência de fornecedor havia sido o motivo mais citado para a adoção do Software Livre no mercado corporativo. A pesquisa indica ainda uma redução acentuada na preocupação do mercado com o su-porte comercial a soluções Open Source, algo que foi por muito tempo considerado um critério de rejeição para essa modalidade de software.

Mas o dado mais interessante dessa pesquisa na opinião do autor deste editorial é que 61% dos seus participantes enxergam o software de código aberto como um fator de inovação, como algo que, em conjunto com as parcerias colaborativas, faz avançar a indústria de tecnologia. Open Source também resolve os maiores desafios de tecnologia corporativos e governamentais, o que gera um impacto cultural onipresente na nossa sociedade. 57% dos participantes também concordam que suas empresas deverão colaborar com seus concorrentes através de comunidades nos próximos três anos. Governo, saúde e mídia são setores que estão au-mentando o uso de tecnologias de código aberto mais acentuadamente.

Entre os desafios corporativos mais importantes enfrentados pelos participantes da pesquisa através do uso de software de código aberto estão, além da onipresente redução de custos, projetos de integração de sistemas e Big Data. 62% deles acreditam que em cinco anos mais da metade do software adquirido por empresas será de código aberto. Vale notar que, enquanto os serviços de suporte/atualização via subs-crição ainda são a principal fonte de receita de fabricantes de SL/CA, a modalidade de software como serviço (o famoso SaaS –– Software as a Service) ficou em segundo lugar nesse quesito (ocupando nas edições de 2011 e 2012 da mesma pesquisa as posições 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 de-senvolvimento padrão do mundo civilizado. Está na nossa mão quando telefonamos e nos data centers que processam todo tipo de comunicação na sociedade hodierna. Está no banco, no carro e até na sua televisão. No avião, no submarino e até na Estação Espacial Internacional. Você está preparado para encarar essa realidade? n

Rafael Peregrino da Silva Diretor de Redação

Inovação corporativaExpediente editorialDiretor Geral Rafael Peregrino da Silva [email protected]

Editores Flávia Jobstraibizer [email protected]

Laura Loenert Lopes [email protected]

Editor de Arte Hunter Lucas Fonseca [email protected]

ColaboradoresAlan Holt, Falko Benthin, Bruce Byfield, Rich Bowen, Thomas Drilling, Christian Pape, Trommer Ronny, Peter Schulik, Kurt Seifried, Zack Brown, Jon “maddog” Hall, Alexandre Borges, Cezar Taurion, Gilberto Magalhães, Klaus Knopper, Augusto Campos.

Tradução Laura Loenert Lopes

Revisão Flávia Jobstraibizer

Editores internacionais Uli Bantle, Andreas Bohle, Jens-Christoph Brendel, Hans-Georg Eßer, Markus Feilner, Oliver Frommel, Marcel Hilzinger, Mathias Huber, Anika Kehrer, Kristian Kißling, Jan Kleinert, Daniel Kottmair, Thomas Leichtenstern, Jörg Luther, Nils Magnus.

Anúncios: Rafael Peregrino da Silva (Brasil) [email protected] Tel.: +55 (0)11 3675-2600

Penny Wilby (Reino Unido e Irlanda) [email protected]

Amy Phalen (América do Norte) [email protected]

Hubert Wiest (Outros países) [email protected]

Diretor de operações Claudio Bazzoli [email protected]

Na Internet: www.linuxmagazine.com.br – Brasil www.linux-magazin.de – Alemanha www.linux-magazine.com – Portal Mundial www.linuxmagazine.com.au – Austrália www.linux-magazine.es – Espanha www.linux-magazine.pl – Polônia www.linux-magazine.co.uk – Reino Unido www.linuxpromagazine.com – América do Norte

Apesar de todos os cuidados possíveis terem sido tomados durante a produção desta revista, a editora não é responsável por eventuais imprecisões nela contidas ou por consequências que advenham de seu uso. A utilização 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 permissão expressa da editora. Assu-me-se que qualquer correspondência recebida, tal como car-tas, emails, faxes, fotografias, artigos e desenhos, sejam for-necidos para publicação ou licenciamento a terceiros de forma mundial não-exclusiva pela Linux New Media do Brasil, a me-nos que explicitamente indicado.

Linux é uma marca registrada de Linus Torvalds.

Linux Magazine é publicada mensalmente por:

Linux New Media do Brasil Editora Ltda. Rua São Bento, 500 Conj. 802 – Sé 01010-001 – São Paulo – SP – Brasil Tel.: +55 (0)11 3675-2600

Direitos Autorais e Marcas Registradas © 2004 - 2013:Linux New Media do Brasil Editora Ltda. Impressão e Acabamento: EGB

Atendimento Assinante

www.linuxnewmedia.com.br/atendimentoSão 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

4 www.linuxmagazine.com.br

CAPA

No mundo virtual 33

Até onde a virtualização poderá nos levar?

Clusters virtualizados 34

O Proxmox Virtual Environment foi desenvolvido a partir de uma dica interna para um clone livre ESXi/vSphere da VMware. Neste artigo, mostramos como configurar um cluster PVE de alta disponibilidade.

Desktops virtuais com phpVirtualBox 40

Com o phpVirtualBox é possível criar, configurar, gerenciar e usar máquinas virtuais remotas em uma janela do navegador.

Monitoramento VMware com OpenNMS 46

Apresentamos uma nova versão da ferramenta de gerenciamento de rede em código aberto OpenNMS, que agora inclui uma opção para o monitoramento baseada em infraestruturas VMware.

ÍND

ICE

5

ANDROIDSeu dispositivo a salvo 62

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

ANÁLISE

Novidades do Apache HTTP Server 2.4 65

O Apache HTTP Server versão 2.4 é cheio de novos recursos. Neste artigo, compartilharemos alguns deles.

Execução silenciosa 70

Os elegantes tablets e smartphones da atual geração digital abrigam memória Flash, que economiza espaço e energia. Neste artigo, explicamos suas características e sugerimos sistemas apropriados para o Linux.

SEGURANÇA

Acesso seguro a medidores inteligentes 50

Neste artigo, mostraremos um projeto prático para monitorar o uso de energia doméstica com SSH e OpenWrt.

SERVIÇOS Editorial 03

Emails 06

Linux.local 78

Preview 82

Linux Magazine #101 | Abril de 2013

| ÍNDICELinux Magazine 101

COLUNASAugusto Campos 08

Klaus Knopper 09

Charly Kühnast 12

Alexandre Borges 14

Zack Brown 16

NOTÍCIASGeral 21

➧ UOL Host lança nova plataforma de hospedagem de sites

➧ Arduino lança placa WiFi e plataforma robótica prontas para uso

➧ Hitachi e o grande enigma do hardware

➧ Raspberry Pi: módulo de câmera já está disponível

CORPORATEColuna: Jon “maddog” Hall 24

Coluna: Cezar Taurion 26

Coluna: Gilberto Magalhães 28

Entrevista: Eben Upton 29

Notícias 32➧ Sem energia, São Paulo corre risco de perder datacenters

➧ Nuvem do Serpro será 100% em código aberto

TUTORIALLinux controlado por voz 56

Simon é uma ferramenta de reconhecimento de voz sofisticada e de fácil acesso a dois poderosos motores de reconhecimento de voz, o Julius e o CMU Sphinx.

8

CO

LU

NA

www.linuxmagazine.com.br

Coluna do Augusto

Marca registrada

Ao longo do primeiro trimestre tivemos um exem-plo clássico da importância de registrar marcas associadas a projetos comunitários e abertos: a

Python Software Foundation (PSF) – que é o guarda-chuva 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, vá-lida para todos os mercados da Europa.

Embora seja clássico no sentido de que é a mesma história de sempre no que diz respeito ao uso de um nome que é notório no mundo do código aberto mas que não foi registrado como marca pela comunidade interessada, este caso em particular teve algumas pecu-liaridades, sendo a primeira delas o fato de que a PSF havia registrado a marca em questão nos EUA, mas não lembrou de fazê-lo na Europa.

Outra peculiaridade é que não foi uma ação intei-ramente súbita. A empresa em questão, que se interes-sou em batizar como “Python” uma linha de produtos para servidores, já tinha o registro do domínio inglês python.co.uk há mais de uma década.

Após 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 resul-tado raro em situações do gênero: um acordo. Após ver a reação e tomar conhecimento da contestação, a empresa em questão abriu mão do uso do nome Python para sua nova linha de produtos e não vai prosseguir com o registro.

Mas nem sempre o resultado é favorável à comu-nidade. Um exemplo é o OpenOffice, que durante anos usava no Brasil a marca BrOffice porque seu

nome oficial tinha sido registrado antes por uma empresa brasileira que atuava em outro ramo de ferramentas de software.

Não são só os projetos comunitários os atingidos por (ou sujeitos a) essa situação: no começo do ano pudemos acompanhar o caso da popular marca in-ternacional de smartphones que teve seu registro contestado no Brasil por uma empresa que registrou o mesmo nome anos antes – e a mesma marca en-frenta situação similar em outros mercados, como o do México.

A marca Linux já passou por situação semelhante: ninguém tinha registrado, e em 1994 um indivíduo o fez, e a partir daí passou a exigir royalties dos distri-buidores comerciais de Linux. A incerteza a respeito durou algum tempo, mas em 1996 Linus Torvalds e al-gumas das empresas afetadas processaram o indivíduo em questão, e no ano seguinte o registro da marca foi transferido a Linus Torvalds.

Ao longo dos anos desde então, a marca Linux foi gerenciada de formas variadas, culminando com o modelo atual, na qual uma instituição indicada por Torvalds (o Linux Mark Institute) a gerencia, oferecendo aos interessados os termos de adesão nos quais é oferecida uma licença gratuita, perpétua e mundial para seu uso.

Provavelmente a marca do seu projeto não precisa de uma estruturação tão grande, mas você não deve descuidar dela mesmo assim. Considere os exemplos acima, e consulte apoio profissional especializado para conhecer suas opções! n

Augusto César Campos é administrador de TI e, desde 1996, mantém o site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo.

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

14 www.linuxmagazine.com.br

Coluna do Alexandre Borges

Metasploit – parte IUma visão geral sobre a versão Community, do framework de detecção de vulnerabilidade de segurança Metasploit no Ubuntu. por Alexandre Borges

Outra dia um aluno comentou comigo que estava estudando alguns livros de segurança e que, invariavelmente, em todos eles sem-

pre havia um capítulo no qual o autor se dedicava a ensinar como efetuar uma invasão, mas o que era mostrado sempre era feito de modo superficial, pois partiam de premissas muito generosas (quase todas elas com acesso local à máquina) e nunca demons-travam técnicas de fato interessantes. Disse então que isto o desestimulava a aprender sobre segurança, já que havia a impressão de sempre estar faltando algo. Expliquei a ele que não há uma fórmula pronta para se aprender uma área tão complexa e que ele deveria insistir e continuar lendo. Sem dúvida, os pré-requisitos de aprendizado que um profissional de segurança necessita saber são: C, Assembly, di-versas técnicas de coleta de dados, escaneamento, craqueamento de senhas, debugging, engenharia reversa etc., o que talvez torne pouco mais difícil e moroso aprender sobre segurança. É assim mesmo. Na ocasião, mencionei se, por acaso, ele já teria tentado explorar o Metasploit; porém, como mui-tos, ele me disse que já tinha lido algo a respeito e desistido, pois não entendia o mecanismo de forma clara. Neste momento percebi que deveria escrever a respeito do Metasploit. Não é minha intenção 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 tão fascinante.

O projeto Metasploit foi desenvolvido primeira-mente em Perl (depois totalmente reescrito em Ruby, sendo que a parte fundamental é a biblioteca Ruby Extension – Rex) por HD Moore por volta de 2003

(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 visão mais comercial ao framework, sendo que atualmente existem a versão “Metasploit Community” (sem custos), “Metasploit Express” (pro-prietária, que oferece uma maneira robusta de reali-zar a exploração remota de forma simples e automa-tizada, além de possibilitar uma auditoria de senhas quebradas e fornecer múltiplos modelos de relatórios de invasão) e a versão Metasploit Pro (também pro-prietária, incluindo todos os itens da versão Express e outros diversos recursos, como escaneamento de aplicativos web, módulos de engenharia social, pi-voteamento de VPNs, técnicas de ataques a IDS/IPS e total integração com o Nexpose).

Aliás, já que mencionamos as versões do fra-mework, tomaremos uma linha diferente: nos exem-plos que mostrarei nesta coluna e nas próximas, o foco da nossa abordagem será o Metasploit Com-munity, porém ao invés de explicá-lo em cima do BackTrack 5 (que é uma ferramenta de hacking e análise forense extraordinária), vamos instalar o Me-tasploit no Ubuntu aproveitando a instalação que provavelmente o leitor já possui (a minha versão é a 11.10 – caso o leitor não esteja seguro de qual versão está usando, poderá executar o comando lsb_rele-ase -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 também instalar o Metasploit no Windows (com o antivirus e o antispy desabilitado), masnão falaremos a respeito disto nesta coluna.

CO

LU

NA

15Linux Magazine #101 | Abril de 2013

O framework do Metasploit traz embutido o banco de dados PostgreSQL para que seja factível usar e guardar os resultados obtidos; mas não se engane, esta base será muito importante para nós nas próximas colunas. Normalmente, quando en-tramos no console de operação do Metasploit, já estamos conectados à base, porém, mesmo assim pode ser útil, em algumas ocasiões, saber qual a senha de conexão. Para descobrir, digite:

# more /opt/metasploit/apps/pro/ui/config/database.yml

Procure pelo campo “password” da configuração de produção (production). Desta forma, facilmente conseguiremos a senha necessária.

Por enquanto é isso. No mês que vem volto com mais novidades sobre o Metasploit. Até lá. n

Uma vez feito o download, para instalar o Me-tasploit são necessários os comandos:# chmod u+x metasploit-latest-linux-x64-installer.run# ./metasploit-latest-linux-x64-installer.run

Com isso, a instalação do Metasploit ocorre sem qualquer problema e, por padrão, o local de sua ins-talação é /opt/metasploit. Para ter certeza de que tudo correu bem, digite msfconsole -v. Se obtiver a versão (a minha é a 4.6.0-dev), significa que a instala-ção ocorreu sem problemas. Como o projeto Metas-ploit está constantemente incluindo técnicas novas de ataque e exploração, recomendo fortemente que o leitor sempre mantenha a instalação o mais atu-alizada possível executando o comando msfupdate.

Existem outras maneiras de instalar e atualizar o Metasploit. Por exemplo, o leitor pode escolher fazer tudo através do subversion. Mesmo que seja elegante, ainda tenho a preferência 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

Alexandre Borges (linkedin: br.linkedin.com/in/aleborges) é instrutor e especia-lista sênior em sistemas operacionais Unix, Linux, Banco de Dados, Virtualiza-ção, Cluster, Storage, Servidores, Backup, Desempenho e Segurança, além de possuir profundo envolvimento com assuntos relacionados ao kernel Linux.

Mais informações[1] Download do Metasploit Community http://

www.metasploit.com/download/

ERP – SISTEMA DE GESTÃO

Agora você tem o controle sobre o desempenho do seu negócio

sempre à sua mão.

SOFTWARE

Saiba mais em:www.vectory.com.br

+55 11 3104 6652

Compras

Estoques

Clientes

Vendas

Finanças

NF-e

Fornecedores

A micro e pequena empresa ganha uma solução de classe mundial de sistemas de gestão ERP. O Kontroller dispensa aquisição de hardware, licenças de software, técnicos de suporte ou sistema de backup. Garante alta disponibilidade e oferece fácil acesso via browser.

33Linux Magazine #101 | Abril de 2013

Virtualização

No mundo virtualAté onde a virtualização poderá nos levar? por Flávia Jobstraibizer

Não se trata mais de ficção científica. A vir-tualização e as tecnologias que as fomen-tam agora fazem parte da nossa realida-

de. Chegamos a um ponto onde podemos utilizar "no mundo virtual" o nosso computador pessoal, através de aplicativos para acesso remoto, utilizar servidores em nuvem, utilizando hipervisores e ou-tras plataformas virtualizadas e acessar de qualquer lugar, computadores, sistemas e plataformas sem a necessidade da presença física e sem descuidar da segurança, uma vez que, mesmo em ambien-tes virtualizados, a camada de segurança continua sendo tão presente e confiável quanto um usuário presente fisicamente inserindo sua impressão di-gital em um leitor biométrico.

O paraíso para as empresas, no que tange à virtu-alização e computação em nuvem, chama-se eco-nomia. Ao invés de gastos exorbitantes com com-putadores físicos, que possuem alta obsolescência, com sistemas de resfriamento, fontes alternativas de energia e sistemas de contingência (ou mesmo pagando empresas terceirizadas para prover toda esta infraestrutura), os computadores e sistemas pas-sam a ser instâncias virtuais presentes em menores quantidades de máquinas físicas. A preocupação com backup, refrigeração, contingência, recupe-ração em caso de desastres ou outros problemas é cada vez menor. Existem atualmente diversos apli-cativos para a restauração de uma máquina virtual

em poucos minutos, aumentando a produtividade e resiliência de sistemas virtualizados.

Nesta edição da Linux Magazine, você vai aprender a utilizar seu desktop comum de forma virtualizada através do phpVirtualBox, sistema que, através de um simples navegador torna possível acessar e gerenciar seu computador virtualmente.

Ainda nesta edição, conheça o Proxmox, solução completa para virtualizar servidores em pequenas e médias infraestruturas, garantindo ainda que seja possível gerenciar as instâncias virtualizadas, replicá-las e dividir suas cargas de trabalho de forma facilitada.

Não perca ainda o artigo sobre monitoramen-to de infraestruturas virtualizadas com VMware e OpenNMS, projeto open source para gerenciamen-to e monitoramento, provisionamento e gerencia-mento de sistemas.

Em um mundo cada vez mais virtualizado, não perca a oportunidade de informar-se e melhorar seus conhecimentos acerca das tecnologias de vir-tualização que somente a Linux Magazine traz para você e boa leitura! n

Matérias de capaClusters virtualizados 34

Desktops virtuais com phpVirtualBox 40

Monitoramento VMware com OpenNMS 46

CA

PA

56 www.linuxmagazine.com.br

TUTORIAL | Linux por voz

Linux por voz

Linux controlado por voz

Simon é uma ferramenta de reconhecimento de voz sofisticada e de fácil acesso a dois poderosos motores de reconhecimento de voz, o Julius e o CMU Sphinx. por Falko Benthin

No Windows e Mac OS X, os usuários estão há muito tem-po acostumados a controlar o

PC não apenas com teclado e mouse, mas por voz. Durante vários anos, o Linux tem acompanhado o atraso. A organização sem fins lucrativos “Simon Listens” [1], fundada por Franz Stieger, é a força motriz por trás do software de reconhecimento de voz Simon.

O aplicativo, desenvolvido original-mente para oferecer às pessoas portadoras de necessidades especiais o uso do PC sem barreiras, existe há vários anos. A

organização ainda possui este objetivo, mas os desenvolvedores descobriram alguns usos adicionais para o software, incluindo sistemas de controle verbais que facilitam a utilização de moder-nas tecnologias de comunicação por idosos ou permite que seres humanos controlem robôs, cadeiras de rodas e elevadores. No entanto, se o usuário quiser ditar um texto para Simon, não 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 vários componentes e elaboração de vários 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 dicioná-rio de pronúncia Hadi-Bomp [6]. Os componentes de aplicativos incluem a interface Simon, o daemon Simon (Si-mond), o Simon Acoustic Modeler (sam), e o Simon Sample Collector (SSC).

Inicialização do SimonApós a instalação (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 inicialização, um assis-tente aparece para guiar o usuário na ins-talação do programa (figura 1). Podemos decidir aqui quais cenários e modelos de linguagem o Simon carregará mais tarde, por padrão, onde reside o reco-nhecimento de voz do servidor Simond, e se deve iniciar automaticamente. O Simond garante que a entrada de voz dos clientes seja avaliada. Por padrão, ele é executado no mesmo computador que o Simon e escuta na porta 4444. Como é apropriado para um servidor,

TU

TO

RIA

L

Figura 1 Um assistente de configuração torna a configuração de Simon uma tarefa bastante simples.

57

| TUTORIALLinux controlado por voz

Linux Magazine #101 | Abril de 2013

ele pode também executar em um computador separado e atender vários clientes; assim, podemos precisar criar contas de usuário protegidas por senha mais tarde. Em uma etapa posterior, configure a placa de som (figura 2); o usuário é, então, levado de volta para a janela principal do aplicativo (figura 3).

FaceliftPara reconhecer palavras faladas, o Si-mon baseia-se em modelos acústicos (“base models”) disponíveis em três ca-tegorias: estática, adaptada, ou gerada completamente pelo usuário. Os mo-delos estáticos predefinidos não podem ser adaptados para usuários individuais: para estes modelos funcionarem corre-tamente, o usuário deve falar como o criador do modelo pretendido.

Modelos adaptados predefinidos também estão disponíveis, e os usuários podem treiná-los para compreender a voz e a maneira de falar para aumentar a precisão. Embora o ideal seja a criação de modelos totalmente gerados pelo u-suário, eles oferecem a maior taxa de sucesso e são ideais para pessoas com dificuldades de fala ou dialetos fortes.

O uso de modelos adaptados e gera-dos pelo usuário requer um mecanis-mo de reconhecimento de voz como CMU Sphinx e Julius. Atenção: os dois não usam modelos compatíveis, razão

pela qual mudar o mecanismo não é recomendado se o usuário possuir um modelo bem treinado. A versão atual do Simon reconhece o mode-lo utilizado pelo usuário e seleciona automaticamente o backend correto. Um bom lugar para procurar modelos adaptáveis é na função de download

do Simon – Settings/Configure Simon/Language models/Open model/Down-load - 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 usuário deve baixar o modelo do VoxForge e descompac-tá-lo. Em seguida, na configuração do modelo de linguagem, em vez de selecionar download, selecione Create from model files (Criar a par-tir de modelos de arquivos) e digite o caminho para os arquivos exigidos. O processo funciona da mesma forma para todos os outros idiomas dispo-níveis ou para os modelos de Julius.

CenáriosDentro do Simon, aplicativos específicos para o reconhecimento de fala podem ser definidos como cenários. Cenários típicos poderão controlar o mouse ou o navegador com entrada de voz. A equipe do Simon já coletou algumas situações comuns que o usuário pode

Figura 2 Várias placas de som e microfones em webcams USB não são problema para Simon.

Quadro 1: Como instalar o Simon

Usuários da versão para desenvolvedor do openSUSE podem instalar o Simon facilmente: basta apenas baixar pacotes binários do openSUSE Build Service [7] e completar a instalação utilizando ferramentas de pacotes da distribuição.

Se o usuário optar por utilizar qualquer outra distribuição, deve clonar o código fonte do KDE Git:

$ git clone git://anongit.kde.org/ simon simonsource

ou pegue o tarball [8] e descompacte-o, mude para o diretório recém-criado, e execute build.sh ou o script build_ubuntu.sh. Para concluir a instalação sem erros, pode ser necessário resolver algumas dependências [9] com antecedência.

Para desbloquear todos os recursos de interface de reconhecimento de voz completamente, também vamos precisar do CMU Sphinx (sphinxbase, pocketsphinx e sphinxtrain, cada um em uma versão mais recente que a 0.8) ou Julius com o HTK e os pacotes de desenvolvimento do OpenCV (libsam-plerate, QAccessibilityClient e libkdepimlibs4). A partir da versão 0.4, Si-mon usa o mecanismo de reconhecimento de voz CMU Sphinx como backend por padrão, mas ainda suporta completamente o Julius e o HTK proprietário.

58 www.linuxmagazine.com.br

TUTORIAL | Linux por voz

carregar em Manage scenarios/Open/Download (Gerenciar cenários/Abrir/Baixar). Certifique-se de que o idioma de destino e o modelo acústico com-binam se estiver usando um modelo básico estático ou adaptado. É impor-tante para o cenário e modelo básico usar o mesmo conjunto de fonemas.

O usuário provavelmente irá de-sejar criar os próprios cenários – por exemplo, porque não pode encontrar o que precisa na seção de download ou porque os cenários existentes uti-lizam o modelo de base errada. Al-ternativamente, podemos adicionar novas palavras a cenários existentes, tais como Standard. Podemos adicio-nar novos cenários, selecionando Ma-nage scenarios (Gerenciar cenários). Para preenchê-los com suas próprias palavras, basta clicar em Open “<sce-nario_name>”. Em seguida, Simon mostrará a lista de vocabulário exis-tente, que o usuário precisará preen-cher, na maioria dos casos (figura 4).

Ao contrário de muitos sistemas comerciais de reconhecimento de voz com modelos de linguagem pré-fa-bricados, os problemas de linguagem não são um grande problema para Simon. Além dos modelos acústicos e de linguística pré-compilados, os usuários também podem gerar ver-

sões personalizadas ensinando a Si-mon as palavras de que necessitam.

O treinamento em si é bastante sim-ples. A dificuldade é que as palavras precisam ser atribuídas a “terminals” (verbos, pronomes, etc. também são chamados de categorias no Simon) e divididas em fonemas. Como indivíduos não profissionais em linguística pode-riam ter problemas aqui, o Simon se oferece para importar dicionários. Além de conter muitas palavras, os dicionários incluem a informação necessária nos terminais e pronúncia básica de fone-mas. As palavras disponíveis aqui são

facilmente adicionadas ao vocabulário do sistema. Se uma palavra específica estiver faltando, outras palavras existentes podem ser utilizadas como exemplos.

O Simon suporta dicionários nos formatos Hadifix, HTK, PLS, CMU Sphinx e Julius, que o usuário pode carregar, pressionando o botão “Import Dictionary” (Importar dicionário). O programa geralmente espera que haja um caminho para um arquivo localizado no computador, mas, no caso do dicionário de alemão Hadi-fix, um acordo com a Universidade de Bonn permite aos usuários fazer o download diretamente do dicionário Hadifix Bomp. Para fazer isso, o usuário precisa especificar o nome e endereço de email e aceitar a licença Bomp.

TreinamentoPara adicionar uma nova palavra a um cenário (figura 5), o usuário pre-cisa treinar pelo menos duas vezes – isto é, falar a palavra ao microfone – para introduzir voz e pronúncia ao programa. Se o cenário só pre-cisa de poucas palavras, a taxa de reconhecimento torna-se bastante aceitável após apenas duas rodadas de treinamento. Entretanto, o trei-namento adicional aumenta a taxa de sucesso e é especialmente útil na medida em que o vocabulário

Figura 3 Cenários disponíveis, palavras reconhecidas, status de conexão: o Simon apresenta uma visão clara e abrangente na janela principal. Podemos acessar muitos recursos com apenas um clique.

Figura 4 Em primeiro lugar, o usuário precisa preencher seus próprios cená-rios com o vocabulário necessário.

59

| TUTORIALLinux controlado por voz

Linux Magazine #101 | Abril de 2013

aumenta, ou quando há palavras com sonoridades similares.

Podemos treinar palavras de forma orientada, pressionando Train Individual Words para adicioná-las a uma sessão de treinamento (figura 6). Se quiser exportar o cenário mais tarde e, assim, torná-lo disponível para a comunidade Simon, vale definitivamente a pena criar textos especiais de treinamento. Basta alterar para a seção Training (Treinamento) e clicar no botão Add Text (Adicionar tex-to). O usuário pode importar ou digitar manualmente o texto para treinar todo o vocabulário para o cenário.

Uma vez que o usuário tenha o tex-to de treinamento, poderá começar a treinar na janela principal, ou no cená-rio aberto, pressionando o botão apro-priado. Por padrão, o Simon registra separadamente as linhas do texto, en-tre uma ou várias palavras. Se parecer muito complicado pressionar o botão Record (Gravar) duas vezes para cada palavra (iniciar e parar a gravação), ve-rifique a caixa Power Training. Agora só precisamos pressionar os botões Next para seguir para o texto de treinamen-to, sem a necessidade de clicar muito.

A gramática de um cenário faz exa-tamente o que o nome sugere: define as regras que determinam a maneira como o vocabulário pode ocorrer de forma que Simon possa interpretá-lo

de forma significativa. O usuário não precisa ficar com as estruturas da lin-guagem falada, mas pode criar uma gramática própria, como Verb noun ou Enumeration noun. Apenas certi-fique-se de que tenha feito o vínculo a categorias que realmente ocorrem no vocabulário existente.

Mais uma vez, as categorias não são imutáveis, mas podem ser adicio-nadas e alteradas para que, além de substantivos, verbos etc., o usuário possa se valer de triggers, comandos

e outros artifícios. Podemos até fundir categorias existentes para simplificar a estrutura gramatical do vocabulário no dicionário e o dicionário sombra.

ComandosA última seção no cenário compreende os comandos. Aqui o usuário determina o que o programa fará com as palavras reconhecidas. Vários plugins de coman-do permitem controlar o computador, e podemos facilmente vincular uma série de atividades diferentes com comandos de voz. O computador, então, execu-tará programas (Program), emulará as teclas digitadas, ou abrirá pastas e sites. Além 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 números, usar uma calculadora, ou ainda praticar a pronúncia e verificar a conformidade com um modelo básico.

Comandos compostos executam várias ações uma após a outra. Des-crever todos os plugins de comando em detalhe vai muito além do esco-po deste artigo, portanto verifique o manual Simon detalhado para mais informações. Ao selecionar Manage

Figura 5 Após o treinamento individual, as palavras são reconhecidas de forma confiável.

Figura 6 As sessões de treinamento especificamente concebidas para um cenário ajudam o Simon a aprender todo o vocabulário necessário.

60 www.linuxmagazine.com.br

TUTORIAL | Linux por voz

Plugins (Gerenciar plugins) (figura 7), o usuário pode carregar e usar plugins e depois utilizar o New Command para vincular ações apropriadas para uma ou mais palavras. Quando o Simon reconhece uma palavra, ele trabalha seu caminho através dos plugins de comando até encontrar um que possa processar a entrada para, em seguida, executar a ação apropriada.

Na seção opcional Context (Con-texto), podemos definir as condições nas quais o Simon permite um cená-rio. Por exemplo, é possível estipular que o cenário Firefox só é ativado se o navegador Mozilla estiver em execução. Assim, podemos usar co-mandos idênticos em diferentes ce-nários para iniciar ações diferentes.

Condições possíveis incluem, por exemplo, se uma determinada janela está em primeiro plano na área de traba-lho (Active Window Condition), se uma webcam reconhece um rosto na frente do computador (requer OpenCV), se certos processos estão em execução, ou quais status de programas reportam para a D-Bus. Além disso, podemos ve-rificar os arquivos de conteúdo especí-fico. Quando alteramos alguma coisa em um cenário ou palavras treinadas, Simond atualiza a compilação do mode-lo acústico, e as novas palavras ficam imediatamente disponíveis.

A janela principal sempre mostra as últimas palavras reconhecidas, estejam elas vinculadas (ou não) a um comando (figura 8). Enquanto Simon escuta, está impaciente para reconhecer palavras. Por isso, uma respiração profunda poderia ser in-terpretada como um comando de voz, ou uma conversa com outra pessoa poderia fazer com que o com-putador aplicasse todos os tipos de “brincadeiras” no usuário. 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

de interpretá-la, é necessário modi-ficar a gramática.

Além disso, os desenvolvedores es-tão atualmente trabalhando em queries a partir de movimentos labiais para minimizar comandos do tipo falso po-sitivo: se o Simon não visualizar um rosto ou movimento labial durante a entrada de voz, a ideia é que a pala-vra seria, provavelmente, o ruído de fundo que o programa deve ignorar.

CMU Sphinx e JuliusComo já mencionado, o Simon pode trabalhar com os mecanismos de re-conhecimento de voz Julius e CMU Sphinx. Ao configurar o Sphinxbase, o Pocketsphinx e o Sphinx-training, o usuário deve mudar o prefixo de /usr/local para /usr, ou pelo menos adicionar links simbólicos apropria-dos. Assistentes, como links simbó-licos, também são obrigatórios se o usuário instalar Sphinxtrain em um sistema de 64 bits. Neste caso, scripts e outros arquivos que são im-portantes para a geração de modelo acústico terminam em /usr/[local/]lib64/sphinxtrain, mas o Simon os aguarda em /usr/lib/sphinxtrain. O CMU Sphinx apresentou alguns problemas de compilação do modelo acústico em nosso laboratório; não conseguimos solucioná-lo antes do fechamento desta edição. Se o u-

Figura 7 Plugins de comando versáteis permitem um grande controle sobre os recursos de vários computadores. O Simon sequencialmente verifica qual plugin pode lidar com uma palavra reconhecida

Figura 8 O Simon mostra as combinações na janela principal, independente-mente de estas estarem vinculadas a um comando.

61

| TUTORIALLinux controlado por voz

Linux Magazine #101 | Abril de 2013

suário passar por erros semelhantes, utilize o Julius em seu lugar.

Para cenários pré compilados, o Simon escolhe o backend de reco-nhecimento de voz automaticamente. Quando criamos modelos acústicos e de linguagem gerados pelo usuário, podemos configurar o backend pre-ferido em Settings/Configure Simon/Recognition/Configure server/Speech model compilation/Backend.

PerspectivaO Simon mudou drasticamente desde seu último lançamento, há dois anos, e tem melhorado significativamente em termos de facilidade de uso. A versão 0.4 atual oferece uma experiência de uso muito melhor: o mecanismo adi-cional de reconhecimento de voz e de contexto CMU Sphinx na forma do Afaras e Simonoid. O Afaras permite identificar gravações ruins e padrões destruídos em grandes coleções. O Simonoid KDE plasmoid gera o esta-do de detecção e pode ser usado para iniciar ou parar o Simon rapidamente.

Para o futuro próximo, a equipe de desenvolvimento liderada pelo CTO Peter Grasch tem planos ambiciosos, como o de completar características previamente experimentais como a detecção de lábios. Além disso, a equipe está colaborando com diversos parceiros, como as universidades de Bonn e Graz. O Instituto alemão-austríaco (Institut für Österreichisches Deutsch) permitiu que o projeto acessasse o banco de dados Adaba [11], o que pode levar à criação de um modelo básico alemão livremente disponível. Como outro importante marco no caminho para a versão 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 in-teressantes do projeto e Simon Lis-tens são SAM, uma ferramenta que permite aos usuários criar e testar

modelos acústicos que Simon pode depois importar, e SSC, que é usado para coletar amostras de diferentes falas e ambientes de usuário para desenvolver novos modelos básicos.

Além disso, o aplicativo Simone, do MeeGo, permite aos usuários con-trolar o computador através de um smartphone. O Meego é um sistema operacional móvel de código aberto baseado em Linux que foi criado em 2010, após uma fusão de seus ances-trais Maemo (Nokia) e Moblin (In-tel). Atualmente ele se encontra sob os auspícios da Linux Foundation, mas a médio prazo deverá se fundir com o smartphone Tizen OS.

A motivada equipe de desen-volvimento do Simon se manteve bastante administrável ao longo dos anos e recebe membros adicionais: além de programadores (C++ e Qt), pessoas que gostariam de criar ce-nários, estender a documentação ou localizar o Simon em sua língua nativa também podem se envolver com o projeto.

ConclusãoSimon é uma ferramenta de reconhe-cimento de voz que pode ser instala-da e utilizada por novatos no assunto. O único obstáculo no processo de instalação são as numerosas depen-dências. Durante vários dias de testes de laboratório, o sistema se manteve completamente estável, e o aplicativo não quebrou sequer uma vez. Como a cereja no bolo, Simon permite fácil acesso aos sofisticados mecanismos de reconhecimento de voz Julius e CMU Sphinx, que, por sua vez, estão em de-senvolvimento há vários anos. Embora eles ainda não sejam capazes de gravar letras ou achados médicos, quando se trata de controles, Simon já contempla o computador para desvendá-las. n

Mais informações[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] Hadifix Bomp: http://www.sk.uni-bonn.de/forschung/phonetik/sprachsynthese/bomp/ (em alemão)

[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 compilação e dependências: 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/

Gostou do artigo?Queremos ouvir sua opinião. Fale conosco em [email protected]

Este artigo no nosso site: http://lnm.com.br/article/8489

62 www.linuxmagazine.com.br

ANDROID | Medidas de segurança

Medidas de segurança

Seu dispositivo a salvo

Diariamente são descobertas novas vulnerabilidades em dispositivos móveis, princi-

palmente no que se refere ao sistema operacional mais utilizado atualmen-te, o Google Android. São criados ví-rus, cavalos de tróia e vulnerabilidades extras para coletar informações dos usuários incautos. Tais problemas de segurança ocorrem devido a popu-laridade da ferramenta, que a cada dia ganha novos adeptos, dos mais variados lugares do globo terrestre (e até mesmo fora dele [1]).

Não surpreendentemente, novas for-mas de proteção dos dispositivos surgem na mesma velocidade em que os pro-blemas são encontrados. Há empresas trabalhando freneticamente na correção de vulnerabilidades nas mais diversas versões do kernel Android, assim como criando novas ferramentas e formas de prevenir potenciais problemas.

Mas como ter a certeza de que um aplicativo não é malicioso ou mesmo que não irá realizar tarefas à revelia do usuário? Este é o assun-to que vamos abordar neste artigo.

Quem manda aqui?É sabido que muitos aplicativos efetu-am tarefas em nome do usuário. Por exemplo: o aplicativo para mídias sociais Facebook possui permissão para publi-car em nome do usuário, compartilhar qualquer documento presente no dis-

positivo e até mesmo enviar relatórios de uso do usuário para a equipe de desenvolvimento do aplicativo.

É importante salientar que o u-suário deve estar atento às permis-sões que cada aplicativo exige do usuário no momento da instalação. Um programa pode ser considerado suspeito (lembre-se de que suspeito não significa culpado), se:

➧ Um jogo não deve solicitar permissões para efetuar ligações a partir do telefone.

➧ Um aplicativo de descoberta de pontos de interesse não deve solicitar permissões para modificar ou alterar conteúdos do cartão de memória do aparelho.

➧ Um aplicativo de GPS não deve solicitar permissões para ler mensa-gens 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 confiável, é possível aceitar o grupo de permissões (mesmo que estranhas) e prosseguir ou mesmo declinar da instalação. Em último caso, é pos-sível ainda entrar em contato com o desenvolvedor da ferramenta e questioná-lo sobre os motivos de determinada permissão.

As permissões que um aplicativo ou jogo exigem são exibidas um mo-

mento antes do início da instalação (figura 2). Neste momento é possí-vel aceitar ou cancelar a instalação caso entenda que o jogo ou aplica-tivo exige mais permissões do que realmente deveria.

Encontre o problemaMuitos usuários culpam o sistema operacional (ou até mesmo o fabri-cante do aparelho) por um início de mal funcionamento inesperado, como

AN

DR

OID

Figura 1 Um apicativo de GPS não precisa ler seus SMSs.

0

90

Como garantir a segurança de um dispositivo Android sem privar-se dos mais modernos aplicativos e sem deixar de lado os melhores recursos da tecnologia. por Flávia Jobstraibizer

63

| ANDROIDMedidas de segurança

Linux Magazine #101 | Abril de 2013

loops de reinicialização, travamentos, congelamentos momentâneos etc. No entanto, tais problemas podem ser obra de um aplicativo que apre-senta alguma falha de segurança.

O seguinte cenário é válido e deve ser considerado:

➧ Um determinado aplicativo instala-do em um aparelho de celular recebeu uma atualização na semana passada.

➧ Como o aplicativo não é mui-to utilizado, somente ontem o u-suário proprietário do aparelho executou o aplicativo.

➧ Após o uso do aplicativo, o u-suário voltou à suas atividades nor-mais. No entanto, o aparelho passou a reiniciar sozinho. Sim, a falha está no tal aplicativo que recebeu uma atualização que possuía uma falha de segurança qualquer.

Talvez não seja tão simples encontrar o problema caso o usuário seja novato ou inexperiente. De qualquer forma, é importante lembrar que os dispositivos móveis atuais são modernos o suficiente para não começarem a apresentar pro-blemas “do nada”.

Atualizações em diaO cenário exemplificado anterior-mente não quer dizer que o leitor não deve atualizar seus aplicativos, mesmo porque, com as novas políticas de atualização automática do Google Play, será muito difícil manter um apli-cativo desatualizado. As atualizações são importantes para evitar potenciais problemas ou mesmo corrigir outros que a equipe de desenvolvimento pos-sa ter encontrado na versão atual do software em execução no dispositivo.

Antivirus e proteção extraAplicativos antivirus, removedores e bloqueadores de propagandas (conhe-cidos como ad blockers) também são alternativas viáveis para a proteção de dispositivos Android. Comumente, propagandas em aplicativos podem conter vírus, cavalos de tróia, exploits ou outras ameaças que comprome-tem o dispositivo.

Backup garantidoManter uma solução de backup bem configurada, sendo este realizado preferencialmente em uma mídia externa (o que ajudaria no caso de roubo ou danos ao aparelho) é outra boa pedida quando se trata de segu-rança. Atualmente existem diversos sistemas em nuvem que permitem armazenar dados remotamente, sem

a necessidade de um pendrive ou qualquer mídia removível (também sujeita a falhas, roubo ou danos) e de onde é possível recuperar rapidamen-te os dados em caso de necessidade.

Perdi, e agora?Já imaginou o que aconteceria se o leitor perdesse seu precioso smar-tphone ou tablet novinho em fo-lha ou mesmo se o esquecesse em algum lugar? E se fosse roubado? Em qualquer um destes casos todos os dados presentes no aparelho es-tariam sujeitos a serem utilizados por qualquer pessoa, inclusive de formas maliciosas.

Para prevenir este problema, existem no Google Play diversos aplicativos que efetuam buscas ge-oreferenciadas do dispositivo (loca-lizando-o via satélite GPS) para que seja possível encontrá-lo. Alguns destes aplicativos ainda enviam emails para um endereço cadastrado previamente contendo valores de latitude e longitude para que seja mais fácil localizar o aparelho em um mapa como o Google Maps.

Outros aplicativos vão mais além e abordam o impensável cenário do caso de não obtermos sucesso em re-cuperar o aparelho: auxiliar o usuário a apagar os dados, travar o sistema e até mesmo a danificar remotamen-

Figura 2 Verifique as permissões antes de instalar o aplicativo.

Figura 3 Vulnerabilidades listadas no CVE.

64 www.linuxmagazine.com.br

ANDROID | Medidas de segurança

te de forma permanente o aparelho para que o ladrão não possa utilizá-lo.

Root pra que?Se o leitor não é um usuário avança-do, não é desenvolvedor de aplicati-vos nem nada do gênero, não faça o root do aparelho (garantir permissões administrativas no sistema de forma que seja possível alterá-lo completa-mente). Usuários inexperientes po-dem danificar o aparelho de forma

que seja impossível sua recuperação, ou ainda oferecer gratuitamente as chaves para que um invasor entre pela porta da frente, sequestre dados, informações e danifique o dispositivo.

ConclusãoEste artigo aborda apenas alguns dos diversos cenários nos quais seu dispo-sitivo pode estar vulnerável 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 correções, visite o site da CVE [2], o maior repositório de vulnerabilidades disponível na Internet (figura 3).

Fique sempre atento a qualquer mudança em seu aparelho, mal comportamento após atualizações, remova aplicativos que possam estar comprometendo o sistema e lembre-se de que segurança é sem-pre a palavra de ordem quando se trata dos seus preciosos dados! n

Mais informações

[1] Satélites 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/Google-Android.html?vendor_id=1224/

Gostou do artigo?Queremos ouvir sua opinião. Fale conosco em [email protected]

Este artigo no nosso site: http://lnm.com.br/article/8469

O autor

Flávia Jobstraibizer ([email protected], twitter: @flaviajobs) é gerente de projetos e analista de sistemas. Trabalha com TI desde 1998 ten-do atuado em multinacionais e empresas de diversos segmentos, trabalhan-do com tecnologias livres e proprietárias. Atualmente é editora-chefe das re-vistas Linux Magazine, Admin Magazine e c’t.

A Linux Magazine oferece estas edições revisadas e ampliadas dos livros que te preparam para as Certificações LPIC-1 e 2, com as seguintes novidades:

• Exercícios em todos os tópicos

• Todo conteúdo ampliado para a nova versão da prova, atualizada em agosto/2012.

Garanta já os seus pelo site da Linux Magazine www.linuxmagazine.com.br

Livros para Certificação LPI-1 e 2!

70 www.linuxmagazine.com.br

ANÁLISE | Armazenamento Flash para Linux

Armazenamento Flash para Linux

Execução silenciosaOs elegantes tablets e smartphones da atual geração digital abrigam memória Flash, que economiza espaço e energia. Neste artigo, explicamos suas características e sugerimos sistemas apropriados para o Linux. por Michael Opdenacker

Computadores mais antigos com discos e ventoinhas cada vez mais têm sido escondidos

em centros de dados, blindados pela nuvem. Desta forma, os usuários não notam quanto calor produzem ou quanto barulho eles fazem. E novos computadores como smartphones e tablets permeiam muitas áreas atualmente: afinal, são dispositivos móveis, silenciosos e eficientes em termos de energia.

Uma razão pela qual são mais eficientes vem do fato de que siste-mas de armazenamento embarcado utilizam chips em vez de discos ro-tativos. Memória Flash em estado sólido não possui partes móveis e é, portanto, muito robusta por não pos-suir estresse mecânico. Além disso, a memória sem disco acessa os dados desejados mais rapidamente por não exigir um cabeçote em movimento.

Um dispositivo sem disco tam-bém produz menos calor, tornando desnecessário o barulho provocado pela vetoinha. Neste artigo, descre-veremos alguns sistemas de arquivos Linux e ferramentas que operam com uma enorme variedade de dis-positivos de armazenamento Flash suportados pelo Linux.

Armazenamento FlashO armazenamento Flash, também chamado de “estado sólido” (solid state), possui muitas vantagens em

relação ao armazenamento rotativo (rotating storage). Em primeiro lu-gar, a ausência de peças mecânicas e em movimento elimina o ruído, aumenta a resistência e segurança a choques e vibrações, e reduz a dissi-pação de calor e consumo de energia. Segundo, o acesso aleatório a dados é muito mais rápido, pois já não é preciso mover um cabeçote de disco para o local correto no dispositivo, o que pode levar alguns milissegundos.

O Flash também tem suas deficiên-cias. Primeiro, pelo mesmo preço, temos apenas um décimo da capacidade de armazenamento. Segundo, escrever armazenamento Flash possui restrições especiais; não podemos escrever para o mesmo local de um bloco Flash várias vezes sem apagar todo o bloco, chama-do de “bloco de apagar” (erase block). Esta restrição também pode fazer com que a velocidade de escrita seja muito menor que a de leitura. Terceiro, os blo-

AN

ÁLIS

E

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.

71

| ANÁLISEArmazenamento Flash para Linux

Linux Magazine #101 | Abril de 2013

cos Flash podem suportar apenas um número limitado de erases – de alguns milhares de chips NAND mais densos a um milhão, no máximo. Hardware e

software, portanto, precisam espalhar as operações de escrita em um proces-so conhecido como “nivelamento de desgaste” (wear leveling).

NAND/NORA memória 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 di-retamente e em ordem aleatória. Deste modo, o processador pode executar o código diretamente da NOR, permitin-do que seja utilizado em bootloaders, e não necessita ser copiado para a RAM antes de ser executado.

O tipo mais popular de arma-zenamento é a memória Flash NAND (Not AND) (figura 1), que oferece maior capacidade de ar-mazenamento pelo menor preço. A desvantagem é que, como um dispositivo externo, o armazena-mento NAND está conectado via controlador, através do qual é pos-sível acessar os dados. A CPU não pode executar código da NAND sem copiar o código para a memó-ria RAM primeiro. Outra restrição é que os dispositivos Flash NAND podem possuir blocos defeituosos (bad blocks) fora da caixa, exigindo soluções de hardware ou software que funcionam em torno desta li-mitação durante a operação.

Dois tipos de armazenamento Flash NAND estão disponíveis hoje. O primeiro tipo emula um bloco padrão de interface e contém um hardware “Flash Translation Layer” (camada de tradução Flash) que cuida de apagar blocos e im-plementar nivelamento de desgaste, assim como o gerenciamento de blocos defeituosos. Dispositivos deste tipo incluem drives USB Flash, cartões de mídia, cartões multimídia embutidos (eMMCs), e discos de estado sólido (da sigla SSDs, de solid state disks). O siste-ma operacional não tem controle sobre a forma como são geridos os setores Flash pois só considera um dispositivo emulado de bloco.

Embora esta abordagem reduza a complexidade do software do lado

Listagem 1: Partições definidas no kernel01 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 read‐only */08 },09 {10 .name = "U‐Boot",11 .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */12 .size = 15 * NAND_BLOCK_SIZE,13 .mask_flags = MTD_WRITEABLE, /* force read‐only */14 },15 {16 .name = "U‐Boot 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 };

Módulos de usuário MTD

Chip de drivers MTD

Dispositivos hardware

Interface de sistema de arquivos linux

UBI +UBIFS JFFS2 Dispositivo de bloco

Dispositivo de bloco somente

leituraYAFFS2 Char device

�ash NOR RAM chips ROM chips

�ash NAND DiskOnChip �ash

Figura 2 A arquitetura MTD do kernel Linux permite o gerenciamento inde-pendente de hardware de armazenamento Flash.

72 www.linuxmagazine.com.br

ANÁLISE | Armazenamento Flash para Linux

do sistema operacional, os fabrican-tes de hardware costumam manter em segredo os algoritmos da cama-da de tradução Flash, deixando os desenvolvedores de sistemas sem alternativas para verificar e ajustar estes algoritmos ou corrigir imple-mentações pobres.

O segundo tipo de memória NAND é a raw Flash. O sistema operacional tem acesso ao contro-lador de Flash e pode gerenciar di-retamente seus blocos. O raw Flash pode usar um “block erase count” para determinar com qual frequência um bloco tem sido sobrescrito. O kernel Linux implementa um subsistema Memory Technology Device (MTD) que permite o acesso e controle de vários tipos de dispositivos Flash com uma interface comum (figura 2).

PartiçõesAcesso bruto (raw access) significa que nenhum sistema de arquivo é necessário, a menos que o usuário deseje armazenar muitos arquivos; um único e grande arquivo binário é suficiente para alguns aplicativos. Dispositivos MTD geralmente são particionados para definir áreas com fins específicos, como o gerenciador de inicialização (bootloader) ou o sistema de arquivos raiz. Acessar as partições e o armazenamento raw flash é algo semelhante a acessar dispositivos brutos do bloco (raw block devices) através de arquivos de dispositivos (por exemplo, todo o dispositivo com /dev/sda ou par-tições com /dev/sda1, /dev/sda2 etc.

Declarar partições somente lei-tura (da sigla RO, read-only) pode proteger o sistema contra erros e tentativas de modificação não au-torizadas. Observe também que as partições não podem ser ignoradas, acessando todo o dispositivo como compensação, uma vez que o Li-nux não possui nenhum arquivo de dispositivo para este tipo de acesso.

A figura 3 mostra um esquema de particionamento típico. Em con-traste com os discos rígidos, a tabela de partição não é salva no ambiente

MTD – um local inseguro por con-ta dos blocos potencialmente ruins. Em vez disso, uma estrutura de dados no kernel Linux define as partições.

A listagem 1 mostra o trecho relevante do arquivo arch/arm/mach‐OMAP2/board--OMAP3Beagle.c, que define as partições para o Flash NAND na BeagleBoard. Felizmente, podemos substituir estas configurações padrão sem necessidade de recompilar o kernel. Para identificar o nome do dispositivo MTD, percor-ra as mensagens de inicialização do kernel. Neste exemplo de BeagleBo-ard, a listagem 2 mostra que o nome do dispositivo NAND é omap2-nand.0.

Logo que o nome do dispositivo é conhecido, o parâmetro de boot mtdparts passa no particionamento com (tudo em uma única linha):

mtdparts=omap2-nand.0:128k(X- Loader)ro,256k(U-Boot) ro,128k(Environment),4m(Kernel) ro,32m(RootFS)ro,-(Data)

O código acima define seis partições:➧ Primeiro estágio do bootloader

(128KB, RO)➧ Bootloader U-Boot (256KB, RO)➧ Variáveis de ambiente U-Boot

(128KB)➧ Kernel Linux (4MB, RO)➧ Sistema de arquivos raiz (16MB,

RO)➧ Dados (espaço de armazena-

mento restante)O tamanho da partição deve ser

um múltiplo do tamanho do erase block, que pode ser encontrado no sistema de destino em /sys/class/mtd/mtdx/erasesize. Os tamanhos das partições recém-criadas, que o usuário pode ver em /proc/mtd estão em hexadecimal (listagem 3).

Listagem 2: Mensagens de inicialização01 omap2-nand driver initializing02 ONFI flash detected03 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"

Listagem 3: /proc/mtd01 dev: size erasesize name02 mtd0: 00020000 00020000 "X‐Loader"03 mtd1: 00040000 00020000 "U‐Boot"04 mtd2: 00020000 00020000 "Environment"05 mtd3: 00400000 00020000 "Kernel"06 mtd4: 02000000 00020000 "File System"07 mtd5: 0dbc0000 00020000 "Data"

Figura 3 O armazenamento MTD é normalmente dividido em partições graváveis e somente leitura.

73

| ANÁLISEArmazenamento Flash para Linux

Linux Magazine #101 | Abril de 2013

Nomes de arquivos para partições de dispositivo de bloco se referem ao nome completo do dispositivo (por exemplo, /dev/sda1 para a primeira partição /dev/sda), mas note que as partições MTD são mostradas como dispositivos MTD independentes; portanto, o mtd1 poderia ser a se-gunda partição do primeiro dispo-sitivo Flash ou a primeira partição do segundo dispositivo Flash. Não é possível perceber a diferença de nomes dos dispositivos.

A partição "Environment” é onde as variáveis de ambiente U-Boot bootloader são armazenadas. Estas variáveis podem ser alteradas a partir do U-Boot Shell mas também a partir do Linux, piscan-do (flashing) uma nova imagem para a partição. Os desenvolvedores da Free Electrons têm contribuído de forma bastante útil para gerar tal imagem [1].

Manipulação de dispositivos MTDOs dispositivos MTD podem ser en-dereçados através de duas interfaces. A primeira utiliza o identificador (letra) do dispositivo dev/mtd//N// (onde N é o número do dispositivo MTD) e o driver mtdchar. Em par-ticular, este identificador fornece os comandos ioctl, que são ge-ralmente 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 siste-mas 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 não é sofisticado o suficiente para uso em produção por não suportar nivelamento de desgaste; uma série de gravações para a mesma parte do dispositivo de bloco poderia danificar

muito rapidamente os corresponden-tes 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 não são levados em conta. Portanto, a maneira ideal de manipular dispositivos MTD é através do identificador de interface (character interface) e mtd-utils [2].

Os comandos mais importantes são:➧ mtdinfo: informações detalhadas

sobre um dispositivo MTD➧ flash_eraseall: apaga por com-

pleto um dado dispositivo MTD➧ flashcp: escreve para Flash NOR➧ nandwrite: escreva para Flash

NAND➧ Utilitários UBI (veja o tópico

“UBI e UIFS”)➧ mkfs.jffs2, mkfs.ubifs: ferra-

mentas de criação de imagem de sistema de arquivo Flash

Estes comandos estão disponíveis através do pacote mtd‐utils em distri-buições GNU/Linux e também po-dem 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 implementações dos co-mandos mais comuns também estão disponíveis no BusyBox [5], tornando muito mais fácil de fazer a compila-ção cruzada em sistemas embarcados menos complexos.

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

armazenamento Flash. Como é es-perado para um sistema de arquivos Flash, ele implementa a detecção e gestão do bloco danificado, bem como o nivelamento de desgaste. Também é projetado para ficar em um estado consistente após falhas abruptas de energia e quebras do sistema. Por último, mas não menos importante, o JFFS2 também arma-zena dados compactados.

Diversos esquemas de compressão estão disponíveis de acordo com o que é mais importante: desempenho para ler/escrever ou taxa de compressão. Por exemplo, o zlib comprime melhor que o lzo, mas também é muito mais lento.

A implementação de arquivos de sistemas em Flash possui restrições especiais. Para modificar um arquivo existente, não podemos simplesmente copiar os blocos correspondentes para a RAM, apagá-los e piscar (flash) os blocos com a nova versão. Primeiro, uma falha de energia durante este procedimento poderia causar perda de dados irrecuperáveis. Segundo, podemos rapidamente desgastar blocos específicos, fazendo várias atualizações 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 modificações até que a referência root fosse alcançada.

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 número de versão associado. Em

Figura 4 O armazenamento MTD é normalmente dividido em partições gravá-veis e somente leitura.

74 www.linuxmagazine.com.br

ANÁLISE | Armazenamento Flash para Linux

vez de fazer alterações locais, a ideia é escrever uma versão mais recente do nó em outra parte do erase block com espaço livre. Isto simplifica as operações de escrita, mas complica as operações de leitura, pois o sistema de arquivos precisa localizar o nó mais recente.

Para otimizar o desempenho, o JFFS2 mantém um mapa de memó-ria dos nós mais recentes para cada arquivo; no momento da montagem, digitaliza os nós, cria e armazena o mapa. Uma vez que o tempo de montagem do JFFS2 é proporcional ao número de nós, sistemas embar-cados utilizando JFFS2 em grandes partições Flash poderão incorrer em enormes sanções no momento da inicialização. Felizmente, foi adicio-nada uma opção da kernel: CONFIG_JFFS2_SUMMARY, que confere ao Linux o armazenamento do mapa entre as ações de montagem no dispositivo Flash, reduzindo drasticamente o tempo de montagem. No entanto, esta opção não é ativada por padrão.

Nós mais velhos devem ser recu-perados em algum ponto para man-ter o espaço livre para novas escri-tas. Um nó é criado como “válido” e é considerado “obsoleto” quando uma nova versão é criada. O JFFS2 gerencia três tipos de blocos Flash:

➧ Blocos limpos, que contêm ape-nas nós válidos

➧ Blocos sujos, que contêm pelo menos um nó obsoleto

➧ Blocos livres, que não contêm nenhum nó

O JFFS2 executa um coletor de lixo em segundo plano, que recicla blocos sujos transformando-os em blocos li-vres. Faz isso através do recolhimento de todos os nós válidos em um bloco sujo e os copia para um bloco limpo (com o espaço que restar) ou para um bloco livre. O antigo bloco sujo é então apagado e marcado como livre. Para fazer todos os erase blocks participarem do nivelamento de desgaste, o coletor de lixo ocasionalmente também con-some blocos limpos.

Há duas maneiras de criar uma partição JFFS2. A primeira é apagar a partição, formatá-la para JFFS2, e depois montá-la:

flash_eraseall -j /dev/mtd2mount -t jffs2 /dev/mtdblock2 / mnt/flash

O flash_eraseall e o -j apagam a partição Flash as formata para JFFS2. A segunda opção é geralmente uma melhor combinação para o fluxo in-tegrado de trabalho do desenvolvedor pois cria a imagem JFFS2 no compu-tador desktop e escreve a imagem na partição. Para criar a imagem, use o comando mkfs.jffs2 fornecido pelo mtd-utils, mas não se confunda com seu nome: ao contrário de alguns outros comandos mkfs, ele não 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 parâmetro -d indica o diretório com o conteúdo desejado para o sis-tema de arquivos e o --pad cria uma imagem que é de tamanho múltiplo ao do erase block; o --no-cleanmarkers só deve ser utilizado para o Flash NAND. Para formatar a partição alvo e escrever a imagem, utilize:

flash_eraseall /dev/mtd2nandwrite -p /dev/mtd2 rootfs. jffs2

Se a imagem é menor do que a par-tição, o JFFS2 ainda pode utilizar todo o espaço posteriormente, fornecido pela partição que foi completamente apagada anteriormente. Para preparar dispositivos de produção, é muito mais conveniente escrever as partições MTD do bootloader, utlizando um comando que pode lidar com os blocos danificados sem inicializar o Linux. Desta forma, utilitários de desenvolvimento como o flash_eraseall não precisam estar na raiz do sistema de arquivos Linux, que é outra razão pela qual as imagens do sistema de arquivos são úteis.

Normalmente, baixamos a ima-gem do sistema de arquivos para a memória RAM e copiamos a imagem para o Flash. Quando fazemos isso, apenas temos que nos certificar de

Figura 5 Tempo de CPU necessário para montar sistemas de arquivos. As longas barras vermelhas mostram o demorado processo de mount no JFFS2.

75

| ANÁLISEArmazenamento Flash para Linux

Linux Magazine #101 | Abril de 2013

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

YAFFS2Uma alternativa ao JFFS2 é o YAFFS2 [8] (sigla para Yet Another Flash Fi-lesystem) encontrado em smartphones com as primeiras versões do Android. O YAFFS2 não usa compressão, mas apresenta tempos de montagem muito mais rápidos, bem como melhor desem-penho de escrita e leitura. O código é duplamente licenciado, sob a GPL e uma licença proprietária (ou seja, GPL para uso no kernel Linux e a licença para sistemas operacionais proprietá-rios). A receita da licença proprietária tem financiado seu desenvolvimento.

O YAFFS2 é menos popular do que o JFFS2, provavelmente por não fazer parte do planejamento do kernel Linux. Em vez disso, está disponível como um patch externo com um conjunto de scripts auxiliares. Um esforço foi feito para tê-lo na linha de frente cerca de um ano atrás, mas esta tentativa falhou pois as alterações soli-citadas pelos mantenedores do kernel teriam quebrado a portabilidade para outros sistemas operacionais.

Depois de fazer o patch do kernel, o usuário pode criar um novo sistema de arquivos YAFFS2 com o comando:

flash_eraseall /dev/mtd2

O sistema de arquivos é formatado au-tomaticamente na primeira montagem:

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

Outra opção consiste em utilizar a ferramenta mkyaffs, dos utilitários YAFFS2 [9].

UBI e UBIFSO JFFS2 e o YAFFS2 têm um pro-blema em comum: eles implemen-tam o nivelamento de desgaste, res-

tringindo-o a partições individuais. No entanto, os níveis de utilização podem ser muito diferentes. Parti-ções são montadas muitas vezes no modo somente leitura, enquanto as partições de dados estão expostas a muitas escritas – razão pela qual são conhecidas como partições “quentes”. Para evitar o desgaste de partições quentes muito rapidamente, todas as áreas da memória Flash precisam participar do nivelamento de desgas-te. 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 também suporta partições ou volumes flexíveis, que podem ser criados e redi-mensionados dinamicamente, parecido com o que o Logical Volume Manager faz para dispositivos de bloco.

O UBI implementa o Logical Era-se 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 ação, o UBI pode trocar os ponteiros, substituin-do 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 espaço.

Um sistema de arquivos para UBI, chamado UBIFS, foi criado pelo projeto MTD Linux como sucessor do JFFS2. O UBIFS suporta a compressão e apre-senta desempenhos de mount, escrita e leitura muito melhores. No Linux, o UBI e o UBIFS são iniciados com alguns comandos. Primeiro, o usuá-rio root precisa montar o diretório do dispositivo como um pseudo sistema de arquivos devtmpfs. O comando:

ubiformat /dev/mtd1

exclui uma partição Flash sem preci-sar reiniciar a contagem erase (erase

count). Para habilitar o UBI na par-tição MTD, digite:

ubiattach /dev/ubi_ctrl -m 1

Isto cria uma nova identidade (letra) para o dispositivo, /dev/ubi0. Agora podemos criar um ou vários volumes sobre o dispositivo,

ubimkvol /dev/ubi0 -N test -s 116MiB

ubimkvol /dev/ubi0 -N test -m

onde o -m é o tamanho máximo dis-ponível. 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 al-ternativa é 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 espaço UBI, que pode ser escrito do bootloa-der com o comando que pode lidar com blocos danificados (bad blocks). Para fazer isso, primeiro crie um ar-quivo ubi.ini descrevendo o espaço UBI, seus volumes e seus conteúdos. Um exemplo é mostrado na listagem 4.

Este arquivo descreve quais volu-mes 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 também especifica erase blocks físicos 128KB e um tamanho mínimo

Listagem 4: ubi.ini01 [RFS‐volume]02 mode=ubi03 image=rootfs.ubifs04 vol_id=105 vol_size=30MiB06 vol_type=dynamic07 vol_name=rootfs08 vol_flags=autoresize09 vol_alignment=1

76 www.linuxmagazine.com.br

ANÁLISE | Armazenamento Flash para Linux

de I/O de 4096 bytes. Para transfe-rir a imagem, use uma ferramenta bootloader que possa lidar com os bad blocks. Além disso, a linha de comando do kernel precisa da opção ubi.mtd=1 (equivalente ao ubiattach).

Se quiser que o UBIFS controle a partição root, adicione:

rootfstype=ubifs root=ubi0:rootfs

ao comando boot.

LogFSO LogFS [10] é outro sistema de arquivos estruturado em log para a memória Flash que possui um design inovador e tem sido parte principal do kernel Linux desde a versão 2.6.34. O inovador sistema de arquivos poderia ter influência sobre o UBIFS mas, infelizmente, mostrou-se instável, causando pro-blemas no kernel no momento de desmontagem, quando testado pela Free Electrons. Graças à integração com o kernel Linux oficial, há boas chances de que o desenvolvedor venha a resolver estes problemas.

SquashFSPartições somente leitura podem usar o sistema de arquivos de blocos SquashFS em dispositivos MTD. Copiar uma imagem SquashFS di-retamente para o dispositivo /dev/mtdblock//N// funciona bem – afinal, não temos que nos preocupar com o nivelamento de desgaste – até encon-trar bad blocks no dispositivo. Mais uma vez, o driver mtdblock não pode lidar com bad blocks, então outra solução se faz necessária.

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 segurança.

Uma segunda possibilidade é usar o driver ubiblk, que implementa um dispositivo de bloco somente leitura diretamente acima da UBI. A Free

Electrons apresentou o ubiblk à Li-nux Kernel Mailing List [11], mas ainda não foi considerado (mainli-ned). Os benchmarks mostram que o ubiblk é uma solução eficiente, por não precisar emular um dispositivo intermediário MTD.

BenchmarksCom financiamento da Linux Foun-dation, a Free Electrons testou o desempenho de vários sistemas de arquivos Flash em diferentes versões do kernel. Os resultados (figura 5) es-tão descritos online [12]. Em resumo, o JFFS2 teve o pior desempenho e deve ser compilado com CONFIG_SUM-MARY para um tempo de inicialização aceitável. No entanto, o JFFS2 ainda é a melhor promessa para dispositivos com partições Flash pequenas que necessitam de compressão e onde o UBI teria muita sobrecarga. Esta é a razão pela qual o JFFS2 ainda está em uso no OpenWRT, uma distribuição focada principalmente em dispositivos embarcados, como gateways residenciais e roteadores, geralmente com 4MB a 16MB de armazenamento Flash.

Graças a melhorias nos últimos anos, o YAFFS2 apresenta desem-penho muito bom, senão o me-lhor, em muitos cenários de teste. No entanto, a falta de compressão continua sendo uma desvantagem, assim como sua ausência no kernel Linux. O YAFFS2 também mostra problemas de desempenho incomuns na gestão de diretórios. O UBIFS é agora a melhor solução em termos de desempenho e espaço. A neces-sidade de espaço adicional será um problema somente em partições muito pequenas. A implementação também requer um pouco mais de trabalho do que os outros candidatos.

No momento da publicação deste artigo, o LogFS ainda é muito expe-rimental para ser usado em sistemas de produção, embora possamos es-perar que seus bugs sejam corrigidos

com o tempo. O SquashFS exibe boa compressão e tempo de montagem, assim como desempenho de leitura no Flash MTD em sistemas com partições somente leitura. A neces-sidade 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 operação ubiattach).

A boa notícia é que é muito ba-rato mudar sistemas de arquivos. Os aplicativos nem sequer notarão a diferença. Como os benchmarks mostram, podemos obter resultados de desempenho notável, dependen-do do tamanho e número das parti-ções e arquivos, da leitura e escrita padrões do sistema, e da necessidade de compressão. Tudo o que o usuário precisa fazer é tentar vários sistemas de arquivos, executar seus aplicativos e testes de sistema, e manter a solu-ção que maximiza o desempenho do seu sistema particular.

SovinasA memória Flash em seu estado natural (raw) oferece aos desenvol-vedores de sistemas embarcados muitas oportunidades de otimização. A tendência entre os fabricantes de hardware, no entanto, está longe da memória flexível NAND incor-porada ao MMC. Estas superfícies montadas de cartões de memória 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 acessíveis, provavelmente irão derrubar o Flash mais caro.

Felizmente, o eMMC não é to-talmente opaco. Arnd Bergmann, desenvolvedor do kernel, escreveu uma ferramenta chamada Flashbench [13] que permite determinar expe-

77

| ANÁLISEArmazenamento Flash para Linux

Linux Magazine #101 | Abril de 2013

rimentalmente as características da mídia de armazenamento, tais como o tamanho dos blocos de apagar. Com a ajuda destes resultados, podemos também otimizar os parâmetros do sistema de arquivos que estivermos utilizando. Bergmann descreve seu trabalho em um artigo online [14].

ConclusãoAlgumas simples regras de ouro são necessárias para trabalhar com me-mória Flash, incluindo não criar uma partição swap em Flash. Sempre que possível, devemos montar partições somente leitura. Dados voláteis, tais como arquivos de log, podem ser mantidos na memória RAM, usando o pseudo sistema de arquivos tmpfs. n

Mais informações[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 filesystem: 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 filesystem 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/

Gostou do artigo?Queremos ouvir sua opinião. Fale conosco em [email protected] artigo no nosso site: http://lnm.com.br/article/7768

A certi�cação LPI cada vez mais próxima de você!

Kit de certi�cação LPI-1 Kit de certi�cação LPI-2

Adquira já o seu kit de certi�cação LPI, faça o curso intensivo e as provas no �sl14 e garanta a sua vaga entre os especialistas Linux mais procurados do mercado!

Conteúdo do kit:1 livro contendo o guia de estudos para a certi�cação LPI-1 ou 2Curso preparatório intensivo2 provas para certi�cação LPI-1 ou LPI-2: Exames 101/102 ou Exames 201/202

Por R$650,00

ou 6x de R$108,33

sem ju

ros Para aquisição e mais informações:https://www.linuxnewmedia.com.br/lm/certi�cacao_�sl14

82 www.linuxmagazine.com.br

Linux Magazine #102

PR

EVIE

W

Admin Magazine #09

Samba 4Conheça as fantásticas novidades da tão esperada nova versão da mais popular plataforma de compatibilidade entre sistemas operacionais do mercado.Após muitos anos de expectativas e com desenvolvimento constante, a ferramenta ganhou sua nova versão em grande estilo. Na próxima edição 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ê! Não perca! n

OpenStackCapaz de gerenciar os componentes de múltiplas instâncias virtualizadas, o OpenStack é um dos queridinhos dos profissionais de infraestrutura e virtualização da atualidade. É li-vre, não possui restrições quanto à quantidade de instâncias e é uma plataforma robusta, extremamente útil nestes tempos onde o adven-to da computação em nuvem já é uma realidade. Na próxima edi-ção da Admin Magazine você vai conhecer tudo o que essa incrível ferramenta pode fazer por você! Não perca! n

80

SE

RV

IÇO

S

www.linuxmagazine.com.br

Índice de anunciantesEmpresa Pág.

Supermicro 02

Senac 07

Impacta 11

Uol Cloud 13

Plus Server 18,19

Central Server 23

CloudConf 25

Fisl 81

Watchguard 83

IBM 84

Calendário de eventos

Evento Data Local Informações

Web Expo Forum 3 e 4 de abril São Paulo, SP http://www.webexpoforum.com.br/

Gartner Data Center Summit 9 e 10 de abril São Paulo, SP

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

BITS 2013 14 a 16 de maio Porto Alegre, RS http://www.bitsouthamerica.com.br/

Forum Analytics 16 de julho São Paulo, SP https://www.linuxnewmedia.com.br/fan/

Cloudconf 10 e 11 de setembro São Paulo, SP http://www.cloudconf.com.br/

Veja o regulamentoda promoção no site:

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

Quer ganhar essa

mochila Targus®

personalizada

de presente da

Linux Magazine?

A LINUX MAGAZINE TEM UM PRESENTE PARA VOCÊ!

 

Alugue  um  Firewall  gerenciado  a  partir  de  R$  300,00/mês.  

[email protected] (11) 3393.3340

Não pule no vazio! Achar que a segurança é simples é o começo de seus problemas! É um erro, total e comum, achar que qualquer um na sua TI pode fazer gestão de segurança da sua

Controle de Conteúdo e Antivírus, Soluções Antispam, implementadas localmente ou na nuvem, Proteção de Invasões e Ataques,

Conectividade entre Sites, Fornecedores, etc. Conectividade Segura para Usuários Móveis,

Balanceamento de Links e Servidores, Análise de Vulnerabilidades e Riscos,

Otimização de Links, Controle de Navegação, Controle de Aplicações,

Você é refém da Operadora de Telecom? Altos custos de conectividade impedem sua empresa de ter l inks redundantes.