Você está na página 1de 84

LINUX NA GLOBO p.

21 Sergio Amadeu e Julio Neves entrevistados no Programa do J

DIRECIONANDO INVESTIMENTOS p.26 Linux em agncia de fomento a pequenas empresas

CEZAR TAURION p.28 Cdigo Aberto impacta indstria do software


#25 11/06

# 25 Novembro 2006

R$ 13,90 7,50

00025

A REVISTA DO PROFISSIONAL DE TI

SISTEMAS DE

CRIPTOGRAFIA
SISTEMAS DE ARQUIVOS CRIPTOGRAFADOS OFERECEM UMA PODEROSA PROTEO PARA A ATUAL CULTURA DA COMPUTAO CASUAL. MANTENHA SEUS DADOS A SALVO DE OLHOS CURIOSOS E CRIMINOSOS VIRTUAIS. Sistemas de arquivos criptogrcos: qual o melhor? p.30 Cifragem de discos rgidos: proteja todo o sistema p.38 Criptograa avanada de CDs e DVDs p.44

p.29

UDEV p.56
O fantstico sistema de administrao de hardware do Linux

BRIDGE COM SQUID p.68


Use um proxy e ltre contedo ao mesmo tempo sem recongurar nada!

VEJA TAMBM NESTA EDIO:


SLED 10: todas as novidades p.52 Temas para o terminal com Bashish p.66 Monte um grid com o BOINC p.61 Xara LX: desenhos vetoriais 3D p.49 Programao: Meta-python p.73
WWW.LINUXMAGAZINE.COM.BR COM DVD SLACKWARE 11 PARA ASSINANTES

9 771806 942009

Expediente editorial
Diretor Editorial Rafael Peregrino da Silva peregrino@linuxmagazine.com.br Coordenador Editorial e Diretor de Arte Luciano Hagge Dias lhagge@linuxmagazine.com.br Editores Tadeu Carmona tcarmona@linuxmagazine.com.br Pablo Hess phess@linuxmagazine.com.br Traduo e Reviso Livea Marchiori lmarchiori@linuxnewmedia.com.br Design da Capa Luciano Hagge Dias lhagge@linuxmagazine.com.br Centros de Competncia Centro de Competncia em Software: Oliver Frommel ofrommel@linux-magazine.com Centro de Competncia em Hardware: Mirko Dlle mdoelle@linux-magazine.com Centro de Competncia em Redes e Segurana: Achim Leitner aleitner@linux-magazine.com Correspondentes & Colaboradores Augusto Campos, Cezar Taurion, Charly Khnast, Christian Ney, Frank Wieduwilt, Jens Christoph Brendel, Joe Casad, Jose Maria Ruiz, Klaus Knopper, Marc Seil, Mathias Jansen, Michael Nerb, Peter Gutmann, Peter Kreussel, Oliver Frommel e Rene Rebe. Diretor Comercial Claudio Bazzoli cbazzoli@linuxmagazine.com.br Anncios: Claudio Bazzoli (Brasil) anuncios@linuxmagazine.com.br Tel.: +55 (0)11 2161 5400 Fax: +55 (0)11 2161 5410 Osmund Schmidt (Alemanha, ustria e Sua) anzeigen@linux-magazine.com Brian Osborn (Outros pases) ads@linux-magazine.com Assinaturas: www.linuxnewmedia.com.br assinaturas@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.ca Canad www.linux-magazine.es Espanha www.linux-magazine.pl Polnia www.linux-magazine.co.uk Reino Unido www.linux-magazin.ro Romnia 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 conseqncias que advenham de seu uso. A utilizao de qualquer material da revista ocorre por conta e risco do leitor. Nenhum material pode ser reproduzido em qualquer meio, em parte ou no todo, sem permisso expressa da editora. Assume-se que qualquer correspondncia recebida, tal como cartas, emails, faxes, fotograas, artigos e desenhos, so 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 Arizona, 1349 Conj. 5B Cidade Mones 04567-003 So Paulo SP Brasil Tel.: +55 (0)11 2161 5400 Fax: +55 (0)11 2161 5410 Direitos Autorais e Marcas Registradas 2004 - 2006: Linux New Media do Brasil Editora Ltda. Distribuio: Distmag Impresso e Acabamento: Parma ISSN 1806-9428 Impresso no Brasil

Idias derrubam imprios


Prezado leitor, prezada leitora da Linux Magazine, no dia 5 de outubro de 2006 o Brasil pde nalmente assistir, em TV aberta, um programa de massa e relevncia nacional abordando o tema Linux e Software Livre: Jlio Cezar Neves e Srgio Amadeu da Silveira foram os entrevistados do programa de J Soares, na Rede Globo. Sem entrar no mrito do desempenho dos entrevistados durante o programa, algo que muitos leitores questionaram enviando emails para a Redao, a entrevista um episdio importante no cenrio nacional no que tange notoriedade do Software Livre. parte do movimento de tornar conhecida uma tecnologia que, mais cedo ou mais tarde, inevitavelmente, vai fazer parte da vida de todos. A entrevista abordou, logo de incio, o uso do Software Livre pelo fenmeno Google. No vamos nos ocupar de descrever aqui o seu contedo quem quiser pode assisti-la diretamente na pgina do Programa do J , mas do novo modelo de negcios criado pelo Google, que usa a Internet e uma combinao de sistemas de cdigo aberto como infra-estrutura e , por isso mesmo, independente de plataforma. O modelo de negcios da Microsoft, por outro lado, foi criado em torno da plataforma PC. Einstein postulou que no possvel resolver problemas atravs do mesmo tipo de raciocnio usado para cri-los. Esta a razo pela qual a Microsoft se encontra em meio a uma crise sem precedentes: toda a sua estratgia de negcios baseada no controle de uma plataforma de escalabilidade questionvel. Se Redmond quisesse realmente manter a sua hegemonia, eles deveriam jogar fora os 5 bilhes de dlares investidos no desenvolvimento do Windows Vista e criar um novo sistema operacional mais simples, leve e seguro, que pudesse funcionar em qualquer mquina hoje rodando Windows 2000 ou XP, a um preo muito inferior ao praticado atualmente (em torno de 50 dlares, que mais do que a empresa recebe hoje por uma verso OEM do Windows, que j vem instalada de fbrica). O Microsoft Ofce deveria custar, no mximo, a mesma coisa. Por qu? Porque o mercado para atualizaes de sistema , hoje, no mnimo, cinco vezes maior do que o dos chamados PCs OEM . A Microsoft precisaria (mas, provavelmente, no percebe), nalmente, se concentrar mais em atender a sua base instalada. Tais mquinas seriam mais do que sucientes para usurios de sistemas cada vez mais voltados ao uso da Internet como ferramenta de trabalho. Felizmente, graas ao Linux, empresas como Canonical, Mandriva e Novell esto mais bem posicionadas para atender a essa demanda. De outro lado, os clientes atuais do Google, uma massa gigantesca formada principalmente por pequenas e mdias empresas, no fazem, de modo geral, anncios em nenhuma outra mdia. E a empresa veicula esses anncios usando algoritmos proprietrios sobre os dados coletados pelos seus robs de indexao (usados pela mquina de busca), bem como sobre os dados dos usurios de seus servios de email, grupos, chat etc. todo um novo jeito de fazer negcios. E a empresa est ainda posicionada como referncia para o que se convencionou chamar de Web 2.0, tendo como base de desenvolvimento sistemas e padres abertos. Os primeiros eles podem adaptar rapidamente de acordo com as suas necessidades, o que lhes permite concentrarem-se em seu segmento de negcios. Isso lhes confere a escalabilidade que falta hoje Microsoft, e, a nosso ver, se as coisas no mudarem rpido em Redmond, o imprio do Windows estar nalmente com os dias contados. Isso no apenas por causa da tecnologia, mas especialmente por causa do modo como a tecnologia est sendo utilizada em cada um dos modelos de negcios.

EDITORIAL

INSTITUTO VERIFICADOR DE CIRCULAO

em processo de filiao

Rafael Peregrino da Silva Diretor Editorial

Linux Magazine #25 | Novembro de 2006

NDICE

CAPA
Segredos e discos Os computadores atuais so sucientemente rpidos para algumas tcnicas criptogrcas bastante sosticadas. Veja como manter seus dados a salvo de olhos curiosos e espies. Candidatos secretos Se voc no for um especialista em segurana, mas estiver em busca de um sistema de arquivos criptografado, talvez esteja se perguntando quais so as alternativas. Conhea algumas das opes mais populares de criptograa para Linux. O disco todo Criptografar um diretrio home fcil. Criptografar seu disco rgido inteiro, incluindo a partio raiz, d um pouco mais de trabalho. Escondendo o jogo Um disco rgido criptografado no seu servidor no serve de nada se os dados condenciais de CDs ou DVDs carem nas mos erradas. Mostraremos algumas solues convenientes para criptografar seus dados em mdias removveis. 44 38 30 29

http://www.linuxmagazine.com.br

Linux Magazine 25 | NDICE

COLUNAS
Augusto Campos Charly Khnast Klaus Knopper Pablo Hess 10 12 14 16

TUTORIAL
Quem Udev no teme Depois de trs anos em segundo plano, o Udev nalmente superou o sistema legado Dev-FS. Vamos ver o que h debaixo do cap do sistema de gerenciamento de dispositivos Udev da sua mquina Linux. 56

NOTCIAS
Segurana Kernel Linux X.org OpenSSL OpenSSH Firefox, Thunderbird e SeaMonkey Geral Busca em cdigo-fonte com o Google Yahoo vai liberar cdigos Lanado Mandriva 2007 Urnas proprietrias so seguras? Interatividade realista em ambiente Linux Software Livre em cadeia nacional 20 18

SYSADMIN
Ciclos ociosos 61 A computao em grid permite que pequenos PCs resolvam grandes problemas. Voc pode usar o sistema de grid do famoso projeto SETI@home para criar suas prprias solues de grid computacional.

CORPORATE
Notcias Programas educacionais da Intel fazem 5 anos Eudora abre seu cdigo Microsoft se livra de processo por monoplio Google compra YouTube Novell oferece suporte a Red Hat virtualizado VoIP: Linux melhor que Cisco Novell lana Suse Linux Enterprise 10 no Brasil GFS2 no kernel ocial Mandriva compra Linbox Fonality adquire Trixbox SL no Poder Judicirio Entrevista: InvesteRio Coluna: Cezar Taurion 26 28 22

Shell ilustrado O Bashish d um toque de estilo linha de comando. Filtro na ponte Proxies com cache lembram-se de pginas e as servem localmente, economizando tempo e dinheiro. Os membros mais inteligentes dessa famlia tambm apagam contedo perigoso e oferecem bridging transparente.

66 68

PROGRAMAO
Metalinguagem Com a chegada do Ruby On Rails, os programadores esto redescobrindo um conceito no muito moderno, mas surpreendente...Programas que modicam programas? 73

ANLISE
Quase real Grcos vetoriais so parecidos com revistas em quadrinhos: apesar de voc conseguir usar sombras e luzes, mais ou menos impossvel atingir um realismo fotogrco. Mas tudo isso pode mudar, agora que o Xara LX foi liberado como um produto de cdigo aberto. 49

SERVIOS
Camaleo de gravata O Suse Linux Enterprise Desktop a verso corporativa da Novell baseada no Open Suse. Integra recursos de segurana avanada (AppArmor) e grandes inovaes em usabilidade. Conra se essa a distribuio certa para sua empresa. 52 Editorial Emails Linux.local Eventos ndice de anunciantes Preview 03 06 78 80 80 82

Linux Magazine #25 | Novembro de 2006

Emails para o editor

EMAILS

Se voc tem dvidas sobre o mundo Linux, crticas ou sugestes que possam ajudar a melhorar a nossa revista, escreva para o seguinte endereo: cartas@linuxmagazine.com.br. Devido ao volume de correspondncia, impossvel responder a todas as dvidas sobre aplicativos, conguraes e problemas de hardware que chegam Redao, mas garantimos que elas so lidas e analisadas. As mais interessantes so publicadas nesta seo.

Leitores autores

Venho por meio deste dar uma sugesto revista: j que na edio de setembro estava-se falando sobre os leitores publicarem artigos ou enviarem dicas sobre os assuntos que lhes interessem, gostaria de propror revista que lanasse uma campanha para estimular os leitores (principalmente os que j tenham bastante experincia no assunto) a publicarem artigos e at cases reais sobre os mais variados assuntos envolvendo Linux. Claro que, para que os artigos tenham qualidade, a revista poderia escolher um ou dois artigos de leitores por ms, e para encorajar (estimular) os leitores a mandarem artigos de qualidade, podia-se criar uma premiao para esses colaboradores, algo como a cada seis meses escolher o melhor artigo de um leitor e premi-lo com uma assinatura da revista, ou alguma outra premiao. Enm, estou enviando esta sugesto apenas para ver mais artigos bons; tambm para que as pessoas que tenham um bom conhecimento para colaborar com a comunidade Open Source e a revista Linux Magazine sejam estimuladas a enviar um artigo que ser til e tenha um certo padro de qualidade. Espero estar colaborando para que a revista continue sendo o sucesso que e tambm para que ela melhore para mim e os demais leitores. Grato, Fernando Zank Correa Evangelista Caro Fernando, a Linux Magazine est e sempre esteve aberta participao dos leitores. Ns sempre tentamos publicar artigos, relatos de eventos e casos de sucesso do Linux de autores brasileiros. O nico pr-requisito para isso que tenham o alto nvel de informao que caracteriza a revista. O endereo para envio desse tipo de material material@linuxmagazine.com.br, e reiteramos o convite a todos que estiverem dispostos a contribuir com material para a Linux Magazine. Vamos considerar a idia da premiao. Muito obrigado pela sugesto.

Aumento de preo

Prezado Editor, me tornei leitor assduo da revista Linux Magazine, mas neste ms eu levei um tremendo susto quando fui banca de jornais retirar o meu exemplar: o preo est muito alto!!! A revista deveria ser um meio para divulgar o Software Livre em geral, mas, pra que isso ocorra, necessrio que o preo dela em banca seja mais popular, pois assim atrair mais leitores e conseqentemente mais usurios de Software Livre. Andr Ricardo Gara, SP Sou comprador da revista e gostaria de saber qual o motivo do aumento de preo para a edio de n 23 Setembro de 2006. O valor de R$ 10,90 era um preo justo a se pagar por uma revista com a alta qualidade tcnica e grca como a de vocs, mas os atuais R$ 13,90 esto acima da realidade e das vantagens de se pagar por uma revista. Azevdo Neto Caros Andr, Azevdo e demais leitores da Linux Magazine , primeiramente obrigado por manifestarem sua opinio. Recentemente reformulamos a distribuio da revista. Adotamos outra poltica de incluso do CD na revista e mudamos de empresa de distribuio para solucionarmos problemas operacionais que nos impediam de chegar a todos os nossos leitores. A mudana tambm reduziu nossos custos de produo, o que permitiu que o aumento de preo repassado aos leitores fosse menos significativo. Portanto, esse pequeno aumento do preo de capa da Linux Magazine foi a nica soluo para compensarmos nossos custos que j vinham aumentando h diversos meses, sem que houvssemos repassado qualquer aumento para o leitor. Agradecemos a compreenso de todos e esperamos que continuem apreciando o contedo da Linux Magazine.

http://www.linuxmagazine.com.br

sa

nja

g je

ne

ro

ww . sx

Permisso de Escrita

c.h

SEJA LIBRIX NA RUA, SEJA LIBRIX EM CASA, SEJA LIBRIX NO TRABALHO.


Agora, alm do Librix (Linux da Itautec), a sua empresa pode contar com o melhor e mais estvel pacote de hardware e software do mercado, testado e homologado pela Itautec. Toda a liberdade que voc precisa para trabalhar com mais mobilidade, usando a internet sem fio, e ainda operar com software livre.

A soluo completa.

mais segurana, porque a Itautec oferece suporte tcnico especializado via internet ou pelo telefone, servios de tuning e configurao e ainda atendimento nacional on site. Tem alta tecnologia para os aplicativos como editor de textos, planilha eletrnica, editor de imagens e apresentaes. mais facilidade e maior flexibilidade no seu dia-a-dia. Na hora de trabalhar, no se sinta preso. Seja Librix.

Monitor LCD de 15 incluso 512 MB de memria Combo (DVD + gravador de CD)

Foto ilustrativa.

Itautec Minitorre
Cdigo da oferta: IN527LX
IDEAL PARA ACESSO INTERNET.

Processador Intel Celeron D 315 (256 KB L2 cache, 2.26 GHz, 533 MHz) LIBRIX - Distribuio Linux Itautec Monitor LCD de 15 512 MB de memria HD 40 GB Floppy Combo (DVD + CD-RW) Placa de vdeo integrada Placa de rede integrada Fax/Modem 56 Kbps Teclado Mouse 1 ano de garantia balco*

10x R$

ou R$ 1.499,00 vista

149,90

sem juros

www.itautecshop.com.br
PRESENTE EM MAIS DE 2.700 CIDADES.

0800 121 444

CO M P R E D I R E TA M E N T E D O FA B R I C A N T E

De 2 a 6, das 8h s 20h. Sbado, das 9h s 18h. Domingo, das 9h s 15h.

Oferta vlida at 5/11/2006 ou enquanto durar o estoque.Celeron,Celeron Inside,Centrino,o logotipo Centrino,Core Inside,Intel,o logotipo Intel,Intel Core,Intel Inside,o logotipo Intel Inside,Intel Viiv,Intel vPro,Itanium,Itanium Inside,Pentium,Pentium Inside, Xeon e Xeon Inside so marcas comerciais ou marcas registradas da Intel Corporation ou de suas subsidirias nos Estados Unidos e em outros pases.Microsoft e Windows so marcas registradas da Microsoft Corporation.Consulte nossa Central de Atendimento para informaes sobre outras condies de financiamento para pessoa fsica ou jurdica pelo telefone 0800-121-444. A velocidade de comunicao de 56 Kbps depende e pode variar de acordo com o tipo e a qualidade da linha telefnica utilizada. *Garantia balco de um ano para partes,peas e servios.Para possibilitar o acesso internet so necessrios uma linha telefnica ou banda larga e um provedor sua escolha.Preo com impostos inclusos para So Paulo.Frete no incluso.Demais caractersticas tcnicas e de comercializao esto disponveis em nosso site e no Televendas.Fica ressalvada eventual retificao da oferta aqui veiculada.Quantidade:10 unidades.Empresa/produto beneficiado pela Lei de Informtica.Foto meramente ilustrativa.

DPZ

EMAILS | cartas@linuxmagazine.com.br

Bom trabalho

Boa tarde, pessoal. Estou enviando este email para elogi-los pelo excelente trabalho (...). Aqui no Brasil, somos carentes de boas publicaes como Easylinux e Linux Magazine, que fornecem informao com competncia e muita qualidade. Leandro Bueno dos Santos Caro Leandro, muito obrigado pelos elogios. Eles so nossa maior recompensa. Esperamos poder sempre satisfazer assim aos nossos leitores.

Xen

Vocs j publicaram em uma edio como instalar o Xen. No entanto, eu tentei instalar no Debian 3.1 e muitos mdulos deixam de funcionar, at mesmo o sistema de arquivos XFS. Mesmo em pacotes compilados h esse problema. Deve ser uma dvida de muitos usurios. Obrigado desde j. Maurcio Coutinho Caro Maurcio, nossa matria sobre instalao e uso do Xen, publicada na edio 9, de junho de 2005, aborda uma verso um pouco mais antiga desse sistema de virtualizao. Recomendamos que voc use sempre a verso mais nova disponvel, contanto que seja estvel, pois a sua distribuio deve conter os patches necessrios a ela. A matria sobre o Xen publicada na Linux Magazine nmero 24, de setembro de 2006, examina a ltima verso (3.0) do sistema de virtualizao, e portanto deve ser preferida da edio 9.

Distribuio para servidores

Ol, amigos. Tenho uma dvida: o Fedora 5 uma distribuio de Linux que incorpora as verses mais atualizadas dos programas, mas ele tem estabilidade para trabalhar como

servidor (Samba, NFS, web, mail, banco de dados etc...)? O Debian e o Slackware so mais rpidos que ele? Willian Ricardo Firmino Ribeiro Preto, SP Willian, essa pergunta realmente muito comum, e no tem uma resposta to fcil e direta. O Fedora de fato uma distribuio bastante atualizada. Seu ciclo de desenvolvimento e lanamento fixo, e portanto previsvel, o que ajuda a planejar antecipadamente as atualizaes dos servidores. Porm, uma vez instalado o servidor, isso pode incomodar o administrador, pois h sempre uma verso mais nova que aquela instalada na mquina. Uma das maiores vantagens de se usar o Fedora em servidores o uso que ele faz, de fbrica, do Security Enhanced Linux, ou SELinux. Recentemente publicamos uma matria sobre o SELinux, inclusive comparando-o soluo de segurana desenvolvida pela Novell, o AppArmor. O SELinux consiste de um conjunto de polticas para impedir que programas faam uso indevido do hardware, dos recursos do sistema, e at mesmo probe o acesso a determinados arquivos importantes. Com isso, mesmo que um programa contenha falhas de segurana, um agressor permanecer incapaz de explorar esses defeitos, uma vez que o programa fica constantemente trancado em relao aos recursos que pode acessar. um sistema bastante complexo, mas seu resultado um aumento significativo da segurana do servidor. A primeira resposta, ento, que o Fedora adequado para trabalhar como servidor. O Debian, como muitos sabem, prima pela estabilidade do sistema. O ciclo de desenvolvimento da distribuio mais lento, o que irrita muitos administradores, e ao mesmo tempo tranqiliza diversos outros. Comparando sua segurana do Fedora Core, o Debian baseia-se mais fortemente na conana nos programas que compem a distribuio, enquanto o Fedora se utiliza do SELinux para impedir que as eventuais falhas nos programas venham a comprometer o sistema. O Slackware uma distribuio que deixa o poder (e o trabalho) todo na mo do administrador. Polticas de segurana e atualizao de pacotes cam a critrio do administrador, e ento mais difcil caracterizar esses aspectos de uma forma generalizada para toda a distribuio. Em relao velocidade, difcil estabelecer alguma regra geral. Pode-se dizer que essas trs distribuies so igualmente rpidas. Porm, enquanto o Fedora pode sofrer de uma pequena lentido devido ao uso do SELinux, ele possui um sistema de gerenciamento de pacotes mais sosticado, assim como o Debian. Entretanto, o gerenciamento de pacotes RPM pelo yum ou pelo apt-rpm, no Fedora, bastante criticado, enquanto o apt no Debian costuma ser bastante elogiado. O Slackware, por sua vez, opta por no possuir um sistema sosticado de gerenciamento de pacotes. Ele no oferece a resoluo de dependncias entre os pacotes por padro. Por isso, o administrador pode (e deve) instalar somente aqueles pacotes que sabe que so necessrios, o que pode ser difcil em sistemas com gerenciadores de pacotes. Enquanto a distribuio tende a car mais rpida com menos programas desnecessrios instalados, a tarefa de gerenciamento de pacotes pode tornar-se mais trabalhosa e demorada no Slackware. Concluindo, as trs distribuies so altamente adequadas ao uso em servidores. Cabe ao administrador escolher a que se encaixa melhor s suas necessidades e expectativas. Segurana, velocidade e facilidade de administrao devem ser sempre levadas em conta.

http://www.linuxmagazine.com.br

Voc consegue se lembrar de todos os seus afazeres?

COLUNA

Augusto Campos
Controlar as tarefas do sistema operacional em geral mais simples do que gerenciar as do administrador de sistemas.

ma de minhas obsesses pessoais o controle de tarefas. No, no estou falando do scheduling dos processos do sistema operacional nos servidores de rede, mas sim daquela atividade bsica, essencial e tantas vezes negligenciada: a manuteno da lista de pendncias e compromissos, tanto prossionais quanto pessoais. Embora alguns se saiam melhor do que outros nessa tarefa, sempre me pareceu que o controle de pendncias uma atividade que ocupa e interessa a maior parte dos administradores de sistemas, e tenho certeza de que no por acaso que as duas colunas que geraram maior nmero de respostas para mim desde que comecei a escrever mensalmente na Linux Magazine tratavam exatamente sobre esse tema e em uma delas, recebi contatos posteriores at mesmo enviados pela Redao da revista, agradecendo a dica do prtico e econmico Hipster PDA.

Sempre me pareceu que o controle de pendncias uma atividade que ocupa e interessa a maior parte dos administradores de sistemas.
Mas hoje tenho que iniciar a coluna fazendo uma consso: a data limite para a entrega deste texto venceu ontem, e eu a esqueci. Sabem por qu? Porque estava investigando minha mais recente descoberta nessa rea, e passei as horas que devia ter dedicado a escrever este artigo transpondo minha lista de pendncias para uma nova ferramenta. Quando cheguei a perceber que a coluna estava pendente, j era tarde demais. Nossa sorte que o editor camarada, e me concedeu um dia adicional. ;-) Eu sou adepto de fazer limonadas com os limes que a vida me oferece, e esta acabou sendo justamente a oportunidade perfeita para falar de uma ferramenta que se aproxima da perfeio em sua simplicidade: um script shell chamado todo.sh [1] (do ingls to do, que significa a fazer, ou pendente), que tem todos os recursos necessrios para gerenciar a sua lista de tarefas (inclusive a hierarquizao delas em projetos) e completamente gerencivel a partir da linha de comando, por intermdio de uma sintaxe simples e fcil de memorizar.

O todo.sh foi desenvolvido por Gina Trapani, editora do prestigiado site Lifehacker.com, dedicado justamente a esse tipo de ferramenta de organizao pessoal. O script feito em Bash, o que garante que funciona bem nos Macs (ambiente preferido dela) e no Linux portanto atende bem a todos ns. Usurios de Windows tambm podem us-lo se instalarem o Cygwin [2]. Mas a Gina no carrega o piano sozinha: toda uma comunidade de usurios constantemente acrescenta funcionalidades e novos recursos ao sistema sem prejudicar a sua marca registrada, que a simplicidade. Usurios avanados, o que inclui a maior parte dos administradores de sistemas e de redes, vo gostar de saber que o todo.sh armazena todos os seus dados em um simples arquivo de texto estruturado, fcil de ser pesquisado (basta um grep) e processado pelos mais diversos scripts que voc conseguir imaginar. A sintaxe simples a ponto de poder ser integralmente explicada em um vdeo de 60 segundos [3], e inclui a possibilidade de aninhar as tarefas em projetos, associ-las a contextos (por exemplo, coisas para fazer em casa, tarefas para o nal de semana ou no computador), editar tarefas diretamente, list-las de forma condicional, atribuir prioridades a cada tarefa, e muito mais. E como se trata de texto estruturado, j consigo imaginar muitos de vocs pensando em como acrescentar recursos a esse sistema usando scripts adicionais, incluso na crontab ou disponibilizao em um repositrio remotamente acessvel. E nunca mais esqueam aquela reunio com o fornecedor de servidores nem aquele arquivo de registro que voc precisa checar no nal do ms que vem! Mas lembrem-se: antes de experimentar o novo sistema, veriquem se vocs no tm uma coluna pendente para entregar no mesmo dia. ;-)

Mais Informaes
[1] Todo.sh: http://todotxt.com/ [2] Cygwin: http://www.cygwin.com/ [3] http://www.youtube.com/watch?v=LhizDEyncZU

O autor
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.

10

http://www.linuxmagazine.com.br

Nmap 4

COLUNA

Charly Khnast
Vrias ferramentas continuam crescendo a cada nova verso, mas o Nmap 4.00 perdeu peso graas ao projeto Diet-Nmap. A ltima encarnao do Nmap no somente mais rpida, como tambm mais econmica em relao memria.

ferramenta Network Mapper, ou Nmap [1], minha companheira permanente. O criador do Nmap lanou a verso 4.00 do software pouco depois de comemorar o oitavo aniversrio do produto, cujo presente foi uma nova dieta de cdigos com vrias funes novas. Uma das introdues mais interessantes foi a adio da varredura ARP. O sistema operacional usa requisies ARP para identicar endereos MAC na rede. O Nmap simplesmente se apodera dessa caracterstica do sistema operacional, usando-a em proveito prprio. O resultado a gerao de uma boa coleo de dados conveis sobre o nmero e os tipos de mquinas ativas na rede. Esse recurso elimina totalmente a necessidade de usar o ping ou outros truques parecidos. (O ping j impreciso de qualquer forma, pois a mquina remota no obrigada a responder). Nem necessrio familiarizar-se com a nova sintaxe. Ao varrer a rede local, o Nmap automaticamente escolhe a

exemplo, eu varri meu roteador na minha prpria rede do laboratrio com o comando nmap -O 10.0.0.50, usando a antiga verso do Nmap 2.70, e obtive a seguinte sada (reduzida ao essencial):
MAC Address: 00:05:5E:96:3D:00 (Cisco Systems) No exact OS matches for host

O Nmap 4.00 oferece uma mensagem bem mais precisa:


Device type: router Running: Cisco IOS 12.X OS details: Cisco 2600 router running IOS 12.2(3), Cisco router running IOS 12.1

O Nmap sempre foi um modo fantstico de incomodar as pessoas na sua rede e desperdiar toneladas de papel ao varrer impressoras de rede.
-sP

O mesmo se aplica identicao de verses. Se eu quiser descobrir qual verso do daemon IMAP est rodando num servidor, posso digitar nmap -sV 10.0.0.88 -p 143 para obter os resultados:
143/tcp open imap UW imapd 2004.352

varredura ARP mais eciente, mesmo que voc especique na linha de comando. De acordo com a pgina de manual, isso s acontece se voc usar o Nmap com privilgios de root. Para mand-lo manter seu antigo comportamento, necessrio especicar o parmetro --send-ip.

O Nmap sempre foi um modo fantstico de incomodar as pessoas na sua rede e desperdiar toneladas de papel ao varrer impressoras de rede. Essas impressoras costumam escutar na porta 9100, e vrias delas imediatamente convertem qualquer dado recebido para dados para impresso. Os desenvolvedores da ltima verso estvel do Nmap introduziram um recurso inteligente de economia de papel. Quando eu entrei nmap -sV printer -p 9100, primeiro fui consultado:
9100/tcp open jetdirect? Excluded from version scan

O parmetro --badsum tambm novo na verso 4.00. Ele manda o Nmap enviar pacotes TCP ou UDP com somas incorretas para a mquina alvo. Quase todos os computadores, ao receberem um pacote assim, largam-no imediatamente, mas, se o Nmap receber uma resposta, pode-se presumir que o alvo seja um rewall ou um IDS que no se d ao trabalho de inspecionar as somas. A ferramenta agora pode forjar facilmente seu prprio endereo MAC usando a opo de linha de comando --spoof-mac endereo_MAC. O Nmap tem suporte identicao da verso de sistemas operacionais atravs do parmetro -O, como de costume, mas agora esse recurso mais eciente. Por

Delrio do spoofer

o que evitou a avalanche de papel. Mas essa tcnica para economizar papel no signica que Fyodor seja um estraga-prazeres. Se voc realmente quiser desperdiar papel, pode usar a opo --allports, estendendo a avalanche de papel de sete anos de idade prxima gerao.

Mais Informaes
[1] Nmap: http://www.insecure.org/nmap/

O autor
Charly Khnast administrador de sistemas Unix no datacenter Moers, perto do famoso rio Reno, na Alemanha. L ele cuida, principalmente, dos rewalls.

12

http://www.linuxmagazine.com.br

Transforme o poder do MultiCore em aplicativos de alto-desempenho. Tenha seus aplicativos preparados para o processamento paralelo e escalvel.
Faa certo na primeira vez:
Intel Threading Analysis Tools Localiza os problemas de threadings latentes com visualizao em tempo real. Compiladores Intel C++ e Fortran Aumenta o desempenho sem mudar o ambiente de desenvolvimento Analisadores de Desempenho Intel VTune Identifica de forma bastante rpida gargalos de desempenho nos aplicativos Intel Integrated Performance Primitives Acesse bibliotecas de rotinas multimdia otimizadas para mltiplas plataformas Intel Math Kernel Library Aumenta o desempenho de aplicativos atravs do uso de rotinas otimizadas como BLAS, FFT, LAPACK, incluindo suporte a MPI

As ferramentas de threading da Intel tem acelerado nosso ciclo de desenvolvimento imensamente.


Dana Batalli Diretora de Desenvolvimento do RenderMan Pixar

Itautec 0800 121444 www.itautec.com.br/intel Katalogo 0800 7729897 www.katalogo.com.br/intel MStech (11) 5080-3838 www.mstech.com.br/intel Strattus (11) 3531-6550 www.strattus.com.br/intel Tech Digital (11) 5181-1852 www.techdigital.com.br/intel

2006 Intel Corporation, Intel, the Intel logo, Pentium, Itanium, Intel Xeon and VTune are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands maybe claimed as the property of others.

Pergunte ao Klaus!

COLUNA

Klaus Knopper
Esta coluna baseada na seo Ask Klaus!, publicada na Linux Magazine International.
Seria possvel usar o kwimanager e uns poucos cliques, Adquiri recentemente um laptop IBM R50e sem sistema ou simplesmente digitar: operacional para aprender a instalar e usar o Linux. Instalei o Ubuntu 5.10, e quase tudo funciona perfeitamente, iwconfig wlan0 essid sua_essid sua_chave_wep_em_hexadecimal exceto pelo fato de eu no conseguir me conectar Internet pump -i wlan0 nem enviar ou receber emails. Tenho um Live DVD do Knoppix 4.0 que funciona bem para tudo, menos para Internet e Se voc no usa criptograa na WLAN, pule a opo email. Eu inicio o sistema com vga=792 lang=us toram. J testei da chave e use somente a ESSID. tambm no meu desktop, e tive o mesmo problema. Se o iwcong sem parmetros no mostrar nenhuma Possuo um modem banda larga e roteador sem o; consi- placa de rede sem o, ento sua placa ainda no suporgo pingar meus outros computadores, e tambm pingo www. tada no Linux, ou no est instalado o driver para ela. knopper.net, alm do meu provedor, www.tiscali.co.uk. Possuo uma congurao de dual boot em meu desktop, com o Suse 10.0, pois essa a nica distribuio que eu j testei que funciona com meus dois monitores ao mesmo tempo. Vou comprar um laptop em breve, e pretendo usar Linux J gastei vrias semanas tentando compilar um programa nele. Porm, tenho medo de alguns (ou vrios) recursos em C++, porque pensei (depois de ler a documentao no funcionarem, como o gerenciamento de energia, a do GCC) que a extenso .cpp zesse o GCC pensar que rede sem o, ou at outras coisas mais incmodas. Voc estava lidando com cdigo em C++; acabei descobrindo saberia me indicar como escolher um computador porttil que o comando g++. Eu entendo que h um monte de compatvel ao mximo com o Linux? informaes irrelevantes aqui, mas espero que voc conResposta siga me mostrar a direo certa a seguir. Bem, laptops so, e sempre foram, diferentes... Devido a Resposta limitaes de espao e questes de gerenciamento de energia, Boa sorte com seu novo laptop. Sua carta na verdade laptops usam chipsets que, na melhor das hipteses, so estracontm muitas perguntas diferentes. As pginas de manu- nhos mas compatveis com chipsets de desktops. Alguns itens al dos comandos do Linux no so 100% precisas, princi- de hardware em laptops so to exticos que s vm com drivers palmente em relao a novas opes ou diferenas entre binrios, que por sua vez somente funcionam com uma nica distribuies. s vezes, compilar um programa em C++ verso do kernel de uma distribuio especca. Nesses casos, com o GCC funciona direito; s vezes no, principalmente qualquer atualizao do sistema (ou instalao de service pack, se for necessrio um certo grau de compatibilidade nos no caso do Windows) leva o hardware a parar de funcionar. arquivos de cabealho e bibliotecas. Eu escolheria o g++ Dessa forma, a nica regra geral acaba sendo: No para programas em C++, mas o GCC tambm deveria compre nada recm-lanado; espere sarem testes e relatreconhecer as extenses .cpp e .c, a menos que a verso rios de compatibilidade. da interface GCC no corresponda do g++. Dois timos lugares onde se pode procurar esse tipo Para a sua congurao com dois monitores, se o Suse de informao so http://www.linux-laptop.net e http://www. funciona, voc provavelmente poderia adaptar algumas tuxmobil.org, onde milhares de usurios relatam probleopes do /etc/X11/xorg.conf ou /etc/X11/XF86Config.conf mas e solues ocorridos em suas instalaes de Linux para a sua outra instalao. em seus laptops. Agora, quanto sua conexo de Internet, se voc conO melhor conselho, no entanto, testar um Live CD segue pingar outros computadores, at mesmo pelo nome, de Linux, como o prprio Knoppix, no computador antudo deve estar funcionando. Mas talvez voc quisesse di- tes de compr-lo. Esse o teste denitivo, e nem requer zer que estava tentando isso a partir do seu outro sistema tanto trabalho. operacional, e no funcionou no Suse nem no Knoppix. Nesse caso, por favor anote todas as conguraes que O autor funcionaram e transra-as para sua instalao do GNU/ Linux, por exemplo: Klaus Knopper o criador do Knop sua ESSID; pix e co-fundador do evento Linux se estiver presente, a chave de criptograa WEP (use o Tag. Atualmente ele trabalha como professor, programador e consultor. formato hexadecimal, pois mais fcil de transferir); DHCP ou IP esttico, dependendo de qual voc use.

Sem conexo

Qual laptop?

14

http://www.linuxmagazine.com.br

As novidades do Kernel 2.6.18

COLUNA

Pablo Hess
A
ltima verso principal do kernel Linux traz importantes mudanas e novidades. A verso 2.6.18 foi liberada trs meses aps a anterior, com as principais mudanas no sendo diretamente perceptveis pela maioria dos usurios, pois referem-se a aspectos internos do kernel. O acrscimo de novos drivers de dispositivos ocorreu como de costume, porm em nmero signicativamente maior. Vrios subsistemas tambm foram estendidos e aperfeioados em grande profundidade. que devem servir como aviso para os desenvolvedores de drivers, dando-lhes tempo suciente para pedir a manuteno das interfaces ou, preferivelmente, portar seus drivers para as interfaces mais ativas. Um atributo do sysfs para dispositivos PCI possibilita a ativao e desativao desses dispositivos, assim como a consulta a seu estado de ativao; isso pode beneciar imensamente o servidor X, capacitando-o a ativar um dispositivo de sada adicional quando este for conectado. Uma onda de unicaes de subsistemas atravs de vrias plataformas foi iniciada. O tratamento de IRQs passa a ser realizado em todas as plataformas pelo novo subsistema Os cabealhos do kernel, que residem em /usr/inclu- genrico de IRQs; a Clocksource Infrastructure nalmente foi includa, implementando uma interface genrica para a de/linux/ e so utilizados pelas bibliotecas de sistema e alguns programas do espao do usurio, tambm foram consulta hora atual no kernel; foi acrescentado ainda um aperfeioados. Como conseqncia, sees desnecessrias subsistema genrico para geradores de nmeros aleatrios puderam ser inteiramente eliminadas, e agora a instalao implementados em hardware, englobando os drivers antes com um make headers_install apaga as sees que sejam separados para diversos chips de placas-me e placas de rede relevantes somente para o kernel. de fabricantes como AMD, Broadcom, Intel e Via.

Subsistemas

Para a prxima verso do kernel, j h uma longa la de patches, muitos em teste na rvore experimental -mm, de A documentao agora tambm descreve o status de Andrew Morton, entre os quais a integrao dos drivers conana que pode ser depositado nas ABIs (Application para ATA paralelo, gerenciados por Alan Cox no framework Binary Interfaces), listando as que podem ser usadas pelos libata. Os novos drivers libata possuiro um melhor geprogramas de forma convel, quais esto em fase de testes renciamento de energia e maior suporte multiplicao ou de desenvolvimento, e quais foram aposentadas ou esto de portas, implementados por Tejun Heo. O sistema de arquivos para clusters GFS2 tambm poem vias de tornar-se obsoletas. O sistema de arquivos CIFS deu mais um passo rumo substituio completa do SM- der ser includo em breve no kernel. Ao mesmo tempo, BFS ao aceitar o envio de senhas sem criptograa, como os desenvolvedores dos drivers WLAN esto trabalhando duro na integrao da pilha WLAN Devicescape, porm necessrio na interao com Windows 95 ou OS/2. Uma mudana interessante no escalonador de processos isso ainda deve car de fora da verso 2.6.19. A integrao foi a incluso do SMPnice, que possibilita a especicao do sistema de arquivos Reiser4 tambm pode sofrer uma de prioridades distintas para um mesmo processo em dife- acelerao, agora que Andrew Morton se encarregou de rentes processadores, em sistemas multiprocessados. Outra parte das revises do cdigo. novidade permite que o escalonador distribua os processos para um processador especco em sistemas de ncleo duO autor plo (ou maiores) de forma a manter o outro processador Pablo Hess tem mestrado em Gentica e ou ncleo em estado de economia de energia. conheceu o Linux atravs da computao cienNa prxima verso do kernel, os desenvolvedores pretca. Encantado pelas semelhanas entre o tendem eliminar diversas interfaces que so exportadas, avano cientco e o desenvolvimento do Softporm jamais usadas. Para isso, essas APIs receberam etiware Livre, agora editor da Linux Magazine. quetas EXPORT_UNUSED_SYMBOL ou EXPORT_UNUSED_SYMBOL_GPL,

Drivers Na prxima verso do O kernel passa agora a suportar placas de som Sound Blaster kernel, os desenvolvedores Audigy 4, alm dos chips de udio da Apple e o ATI RS600. Os drivers de controladores SATA agora controlam hotplug, melhopretendem eliminar raram a correo de erros e j possibilitam o uso de NCQ em vrios discos rgidos modernos. O driver genrico AHCI agodiversas interfaces que ra suporta o chipset VT8251, da Via, e os da Jmicron e Nvidia. so exportadas, porm jamais usadas. Futuro

16

http://www.linuxmagazine.com.br

Hospedagem de Sites e Servidores

INTERNET PARA PROFISSIONAIS DE INTERNET

Monitoramento de Rede

Internet Data Center

Servidores de Alta Disponibilidade

4003-1001

www.plugin.com.br

Gabarito

SEGURANA

Kernel Linux
O kernel Linux lida com as funes bsicas do sistema operacional. Os seguintes problemas foram relatados recentemente: Uma falha no suporte a SCTP permitia que um usurio local causasse uma negao de servio (travamento) com um valor especco de SO_LINGER. (CVE-2006-4535, Importante) Uma falha no suporte a tabelas hugepage permite a um usurio local causar uma negao de servio (travamento). (CVE-2005-4811, Importante) Uma falha na chamada de sistema mprotect permitia que se conferisse permisso de leitura a um anexo somente-leitura pertencente memria compartilhada. (CVE-2006-2071, Moderado) Uma falha no processamento de registros HID0[31] (en_attn) em sistemas PowerPC 970 permite que um usurio local cause uma negao de servio (travamento). (CVE-20064093, Moderado) Uma falha no suporte a perform em sistemas Itanium permitia que um usurio local desencadeasse uma negao de servio ao consumir todos os descritores de arquivos. (CVE-2006-3741, Moderado)

Uma falha no sistema ATM. Em sistemas com hardware ATM instalado e congurado, um usurio remoto poderia causar negao de servio (panic) ao acessar buffers de soquete aps liber-los. (CVE-2006-4997, Moderado) Uma falha no sistema DVB. Em sistemas com hardware DVB instalado e configurado, um usurio remoto poderia ocasionar uma negao de servio ( panic ) enviando um pacote ULE SNDU de comprimento zero. (CVE-2006-4623, Baixo) Um vazamento de informao no subsistema de rede possivelmente permitiria a um usurio local ler dados importantes da memria do kernel. (CVE-2006-0039, Baixo) Este resumo lista os problemas conforme relatados pela Red Hat. Outras distribuies mostraram mais problemas. Veja a pgina de segurana de sua distribuio.
Referncia no Debian: DSA-1184-2, DSA-1183-1 Referncia no Mandriva: MDKSA-2006:182 Referncia no Red Hat: RHSA-2006:0689-15 Referncia no Suse: SUSE-SA:2006:057

O X.org uma implementao do X Window System com cdigo aberto. Ele oferece as funcionalidades bsicas de baixo nvel sobre as quais as sosticadas interfaces grcas de usurio so projetadas. O iDefense relatou duas falhas de estouro de inteiros na forma como o X.org processa arquivos de fontes CID. Um cliente malicioso autorizado poderia explorar essa caracterstica e causar uma negao de servio (travamento), ou potencialmente executar cdigo arbitrrio com privilgios de root no servidor X.org. (CVE-2006-3739, CVE-2006-3740).
Referncia no Gentoo: GLSA 200609-07, Referncia no Mandriva: MDKSA-2006:164 Referncia no Red Hat: RHSA-2006:0665-3 Referncia no Slackware: SSA:2006-259-01 Referncia no Suse: SUSE-SR:2006:023 Referncia no Ubuntu: USN-344-1

X.org

O conjunto de ferramentas do OpenSSL oferece suporte comunicao segura entre computadores. O OpenSSL inclui uma ferramenta de gerenciamento de certicados, alm de bibliotecas compartilhadas que fornecem diversos algoritmos e protocolos criptogrcos. Tavis Ormandy e Will Drewry, da equipe de segurana do Google, descobriram um estouro de buffer na funo utilitria SSL_get_shared_ciphers(). Um

OpenSSL

agressor seria capaz de enviar uma lista de algoritmos a uma aplicao que usasse essa funo e sobrescrever um buffer (CVE-2006-3738). Poucas aplicaes, no entanto, fazem uso dessa funo vulnervel, e ela geralmente s usada quando as aplicaes so compiladas para depurao. Os dois programadores descobriram ainda uma falha no cdigo do cliente SSLv2. Quando uma aplicao cliente usava o OpenSSL para criar uma conexo SSLv2 com um servidor mal intencionado, o servidor poderia levar o cliente a travar. (CVE-2006-4343) O Dr. S. N. Henson, da equipe central do OpenSSL e do Open Network Security, recentemente desenvolveu um conjunto de ferramentas de teste ASN.1 para o NISCC (www.niscc.gov.uk), que trouxeram luz algumas vulnerabilidades de negao de servio: Certos tipos de chaves pblicas podem levar intervalos de tempo desproporcionais para serem processadas, levando a uma negao de servio. (CVE-2006-2940) Durante o processamento de certas estruturas ASN.1 invlidas, uma condio de erro era mal interpretada, o que podia resultar em um lao innito, que consumia memria do sistema (CVE-2006-2937). Esse problema no afeta a verso do OpenSSL distribuda no Red Hat Enterprise Linux 2.1.

Essas vulnerabilidades podem afetar aplicaes que usem o OpenSSL para processar dados ASN.1 provenientes de fontes no conveis, incluindo servidores SSL que ativem a autenticao de clientes e aplicaes S/MIME.
Referncia no Debian: DSA-1185-1 Referncia no Gentoo: GLSA 200609-05 Referncia no Mandriva: MDKSA-2006:172-1 Referncia no Red Hat: RHSA-2006:0695-12 Referncia no Slackware: SSA:2006-272-01 Referncia no Suse: SUSE-SA:2006:058 Referncia no Ubuntu: USN-353-1

O OpenSSH a implementao do protocolo SSH (Secure Shell) feita pelo OpenBSD. Esse pacote inclui os arquivos centrais necessrios tanto para o cliente quanto para o servidor OpenSSH. Mark Down descobriu uma condio de corrida no processador de sinais do servidor sshd do OpenSSH. Um agressor remoto poderia se utilizar dessa falha para causar uma negao de servio (travamento). (CVE-2006-5051) O projeto OpenSSH acredita que a possibilidade de uma explorao efetiva levar execuo de cdigo arbitrrio remota. Tavis Ormandy, da equipe de segurana do Google, descobriu uma falha de negao de servio no servidor sshd do OpenSSH. Um agressor remoto poderia enviar ao servidor uma requisio SSH-1

OpenSSH

18

http://www.linuxmagazine.com.br

Segurana | NOTCIAS

especialmente construda, fazendo o sshd consumir grande quantidade de recursos da CPU. (CVE-2006-4924).
Referncia no Debian: DSA-1189-1 Referncia no Gentoo: GLSA 200609-17 Referncia no Mandriva: MDKSA-2006:179 Referncia no Red Hat: RHSA-2006:0697-9 Referncia no Slackware: SSA:2006-272-02 Referncia no Ubuntu: USN-355-1

Firefox, Thunderbird e SeaMonkey


O Mozilla Firefox um navegador de cdigo aberto. O Mozilla Thunderbird um cliente de email e newsgroup. Mozilla SeaMonkey um conjunto de aplicativos web que inclui um navegador web, cliente de email, cliente de notcias e um editor HTML. Duas falhas foram encontradas na forma como o Firefox processa certas expresses regulares. Uma pgina web maliciosa seria capaz de travar o navegador ou possivelmente executar cdigo arbitrrio como se fosse o usurio rodando o Firefox. (CVE-2006-4565, CVE-2006-4566)

Uma falha no processamento de eventos agendados de Javascript faz com que uma pgina web maliciosa consiga travar o navegador ou possivelmente executar cdigo arbitrrio como se fosse o usurio rodando o Firefox. (CVE-2006-4253) Daniel Bleichenbacher recentemente descreveu um erro de implementao na vericao de assinaturas RSA. Em chaves RSA com expoente 3, um agressor consegue forjar uma assinatura que seria incorretamente vericada pela biblioteca NSS. A verso no modicada do Firefox cona em diversas Autoridades Certicadoras que usam expoente 3. Um agressor poderia criar um certicado SSL adulterado, no qual o Firefox conaria incorretamente ao visitar uma pgina. (CVE-2006-4340) Uma falha foi encontrada no sistema de vericao de auto-atualizaes do Firefox. Um agressor com a capacidade de forjar o DNS de uma vtima conseguiria fazer o Firefox baixar e instalar cdigo malicioso. Para explorar essa falha, o agressor ainda precisaria fazer a vtima aceitar anteriormente um certicado invericvel. (CVE-2006-4567) O Firefox no impede de forma correta que uma frame em um domnio injete contedo em uma sub-frame que

pertena a outro domnio, o que facilita a adulterao do website e outros ataques. (CVE-2006-4568) O Firefox no carrega janelas pop-up bloqueadas e abertas intencionalmente no contexto de domnio correto, o que poderia levar a ataques cruzados (cross-site scripting). Para explorar essa falha, um agressor precisaria encontrar um site que pudesse colocar seu cdigo malicioso em uma frame e convencer o usurio a abrir intencionalmente um pop-up bloqueado. (CVE-2006-4569) Uma falha no Seamonkey e no Thunderbird acionada quando uma mensagem HTML contm uma imagem remota que aponte para um script XBL. Um agressor poderia criar uma mensagem especial que executasse Javascript caso certas aes fossem realizadas pelo destinatrio sobre o email, mesmo que o Javascript estivesse desativado. (CVE2006-4570)
Ref. no Debian: DSA-1192-1, DSA-1191-1 Ref. no Gentoo: GLSA 200609-19, GLSA 200610-01 Ref. no Mandriva: MDKSA-2006:168, MDKSA-2006:169 Referncia no Red Hat: RHSA-2006:0675-5, RHSA-2006:0677-5, RHSA-2006:0676-10 Referncia no Slackware: SSA:2006-257-03 Referncia no Suse: SUSE-SA:2006:054

Postura das principais distribuies Linux quanto segurana


Distribuio Conectiva Referncia de Segurana Info: distro2.conectiva.com.br/ Lista: seguranca-admin@distro.conectiva.com.br e distro2.conectiva.com.br/lista Referncia: CLSA-... 1 Info: www.debian.org/security Lista: lists.debian.org/debian-security-announce Referncia: DSA- 1 Info: www.gentoo.org/security/en/glsa Frum: forums.gentoo.org Lista: www.gentoo.org/main/en/lists.xml Referncia: GLSA: 1 Comentrios Possui uma pgina especca; no h link para ela na pgina principal. Os alertas so sobre segurana, mas distribudos atravs de emails assinados com a chave PGP da empresa para assegurar sua autenticidade. Contm tambm links para os pacotes atualizados e para fontes de referncia sobre o problema sendo corrigido. Alertas de segurana recentes so colocados na homepage e distribudos como arquivos HTML com links para os patches. O anncio tambm contm uma referncia lista de discusso. Os alertas de segurana so listados no site de segurana da distribuio, com link na homepage. So distribudos como pginas HTML e mostram os comandos necessrios para baixar verses corrigidas dos softwares afetados.

Debian

Gentoo

Mandriva

A Mandriva tem seu prprio site sobre segurana. Entre outras Info: www.mandriva.com/security Lista: www1.mandrdrivalinux.com/en/flists.php3#2security coisas, inclui alertas e referncia a listas de discusso. Os alertas so arquivos HTML, mas no h links para os patches. Referncia: MDKSA- 1 Info: www.redhat.com/errata Lista: www.redhat.com/mailing-lists Referncia: RHSA- 1 Info: www.slackware.com/security Lista: www.slackware.com/lists (slackware-security) Referncia: [slackware-security] 1 Info: www.novell.com/linux/security Lista: www.novell.com/linux/download/updates Referncia: suse-security-announce Referncia: SUSE-SA 1 A Red Hat classica os alertas de segurana como Erratas. Problemas com cada verso do Red Hat Linux so agrupados. Os alertas so distribudos na forma de pginas HTML com links para os patches. A pgina principal contm links para os arquivos da lista de discusso sobre segurana. Nenhuma informao adicional sobre segurana no Slackware est disponvel. Aps mudanas no site, no h mais um link para a pgina sobre segurana, que contm informaes sobre a lista de discusso e os alertas. Patches de segurana para cada verso do Suse so mostrados em vermelho na pgina de atualizaes. Uma curta descrio da vulnerabilidade corrigida pelo patch fornecida.

Red Hat

Slackware

Suse

1 Todas as distribuies indicam, no assunto da mensagem, que o tema segurana.

Linux Magazine #25 | Novembro de 2006

19

NOTCIAS

Busca em cdigo-fonte com o Google


O Google Labs lanou o Google Code Search, uma ferramenta de busca de textos em cdigos-fonte de programas abertos. Atravs dessa ferramenta, pode-se buscar, por exemplo, uma funo especca em todos os softwares de cdigo aberto indexados pelo mecanismo de busca. A ferramenta de busca indexa cdigos-fonte disponveis em sites e tambm em arquivos compactados, e seus criadores esperam que ela no seja usada somente para copiar o cdigo-fonte de programas (embora isso seja permitido por todos os programas de cdigo aberto indexados pela ferramenta), mas tambm para anlise de problemas e exemplicao de solues. Nos resultados, so mostrados um trecho do cdigo, o nome do arquivo que o contm, sua licena e a linguagem utilizada. O Google informou no ter expectativa de retorno nanceiro por esse projeto.

Yahoo vai liberar cdigos

A Yahoo anunciou que liberar, at o nal de 2006, o cdigo do processo de autenticao de seu servio de email gratuito. Segundo a empresa, mais de 250 milhes de usurios acessam diariamente o servio, e a abertura do cdigo visa permitir a construo de uma quantidade maior de servios apoiados na j madura infra-estrutura do site. O principal motivo para a liberao do cdigo, de acordo com o Yahoo, o fato de que seus desenvolvedores no conseguiriam criar

todos os aplicativos que os usurios gostariam, e o cdigofonte do esquema de autenticao permitiria que fossem criadas novas formas de usar e exibir as informaes sobre novos emails nas contas dos usurios. Embora o cdigofonte ainda no tenha sido disponibilizado, os executivos armam que a abertura ser completada at o nal do ano. O anncio foi feito ao nal do Yahoo Hack Day, um evento de escrita massiva de cdigo por mais de quinhentos programadores convidados pela empresa.

Anlise Programao Shell Linux: Trabalho bem feito


muito raro encontrar, no Brasil, livros que cheguem a vrias edies: as mazelas do mercado nacional, mormente no campo dos livros de informtica, fazem com que isso seja uma proeza digna de ser escrita com letras de ouro. Mais raro ainda encontrar livros que so atualizados sobretudo com novos captulos a cada edio. Por conta do descompasso dos calendrios editoriais, com relao evoluo do mundo tecnolgico, muito fcil ter nas mos uma obra defasada apenas um ano aps o seu lanamento e nem sempre h disposio do autor, ou mesmo da editora, para uma reviso ou revitalizao da obra. O ttulo Programao Shell Linux, da autoria de Julio Neves, uma honrosa exceo regra: com a 6 edio lanada h alguns meses, o livro traz um novo captulo, dedicado execuo de tarefas agendadas. As tarefas agendadas podem no ser um recurso novo, mas fcil descobrir, lendo o captulo, quo teis elas podem ser para a automatizao de tarefas: com menos de cinco minutos diante de um terminal de linha de comando, podemos criar uma rotina completa de agendamentos para scripts em shell. Julio Neves tem uma preocupao didtica que s presente em quem, alm de dominar uma determinada tecnologia, tambm professor. O primeiro captulo do livro uma espcie de porta de entrada, apresentando ao leitor todas as ferramentas necessrias para a utilizao de sistemas Linux a partir do terminal. Essa apresentao, que ocupa menos de um quinto do livro, satisfaz a necessidade de alguns pr-requisitos para leitores pouco familiarizados com a manipulao de comandos via terminal, alm de tornar mais clara a utilidade de ferramentas que costumam passar despercebidas, mesmo no dia-a-dia de programadores e administradores de sistemas mais experientes. A segunda parte do livro trata da programao em shell propriamente dita, utilizando os comandos vistos anteriormente para a construo de exemplos avanados. Vrias opes de construo so dadas em cada exemplo, o que obriga o leitor-aluno a prestar ateno ao desenvolvimento lgico do exerccio, em vez de simplesmente copiar trechos na shell. Dentre os apndices do livro, o de nmero 4 fecha a obra com chave de ouro. Ele mostra, com detalhes, como possvel desenhar menus com itens dinmicos e caixas de texto encadeadas utilizando a linguagem Dialog. Se voc no achava que podia fazer muita coisa com o shell do Linux, hora de revisar seus conceitos.

Lanado Mandriva 2007


A empresa franco-brasileira Mandriva lanou a verso 2007 de seu sistema operacional, o Mandriva Linux. Com as j familiares trs verses diferentes venda no mercado brasileiro (Discovery, Powerpack e Powerpack+), a distribuio ainda no oferecia uma verso gratuita para download no fechamento desta edio. As principais novidades para o usurio domstico so a incluso dos dois servidores X com recursos 3D, AIGLX e Xgl, responsveis pelo embelezamento do ambiente desktop e, conseqentemente, pela melhoria da experincia do usurio, alm de o sistema j vir com o Cedega, da Transgaming, que permite que o usurio rode jogos feitos para a plataforma Windows no Linux. Outros softwares includos so o antivrus Kaspersky e o LinDVD, da Intervideo.

20

http://www.linuxmagazine.com.br

Gerais | NOTCIAS

Urnas proprietrias so seguras?

Curtas
Qt 4.2 liberada Foi lanada a verso 4.2 da biblioteca grca Qt, da Trolltech, que traz melhorias grcas, como o recurso de uso da OpenGL para acelerar e melhorar a renderizao de fontes com antialiasing, alm da capacidade de utilizar o D-Bus para comunicao entre processos. Uma listagem das novidades est disponvel em http://doc.

Em um artigo no jornal norte-americano Washington Post, o jornalista Stan Lehman descreveu a imensa e rdua tarefa de levar as 430 mil urnas eletrnicas a todos os eleitores do Brasil, na maior votao eletrnica do planeta. Porm, o jornalista levantou um questionamento acerca da importncia da programao dos dispositivos. Ele recordou a importncia da auditabilidade do cdigo-fonte, lembrando que o atual sistema que equipa as urnas eletrnicas composto pelo Windows CE. O cdigo-fonte desse sistema operacional, assim como do programa que cuida da contagem de votos e transmisso dos resultados, fechado. Auditores especcos tm at trs meses antes da data das eleies para auditar o programa de votao, fornecido pela empresa norte-americana Diebold, responsvel tambm pelas urnas eletrnicas usadas em eleies de seu pas. Embora essa empresa arme que seu software mais seguro que qualquer votao baseada em cdulas de papel, o jornalista argumenta que, sem a possibilidade de se auditar o cdigo do sistema de votao, impossvel garantir que a mquina no adultere os resultados, voluntariamente ou no. Segundo o artigo, Athayde Fontoura, diretor geral do Superior Tribunal Eleitoral, j est estudando a implantao de um sistema de cdigo aberto, rodando sobre Linux, para equipar as urnas. O objetivo seria justamente tornar o processo o mais transparente possvel, pois os programas de cdigo aberto so mais facilmente auditveis.

trolltech.com/4.2/qt4-2-intro.html
Mais um governo adota ODF O governo francs passou a exigir a publicao de todos os documentos pblicos no formato aberto ODF. Ao mesmo tempo, sugeriu que os parceiros da Frana tambm adotem a iniciativa. Foi proposta ainda a criao de um centro de anlises de segurana de programas de cdigo aberto. SL e sade pblica A empresa gacha APOENA Software Livre apresentou Presidncia da Repblica seu sistema de marcao de consultas mdicas on-line, o SOL (Sade On-Line), desenvolvido pela empresa e utilizado pela Prefeitura Municipal de Campinas, em SP. O sistema j despertou o interesse de outros municpios, Estados e pases, e j foi apresentado na Venezuela e em Cuba. Nova verso do Skype Foi lanada uma nova verso do Skype, de nmero 1.3.0.53, sem o termo beta no nome. Essa verso contm somente correes de falhas da verso beta anterior. O recurso de videoconferncia ainda no est disponvel, e provavelmente s vir na verso 1.4 do software, apesar de j estar disponvel h tempos na verso para sistemas Windows. Suse sem ReiserFS A verso 10.2 do Open Suse no oferecer mais o ReiserFS como sistema de arquivos padro durante a instalao, embora ele ainda permanea como uma opo. O responsvel por sistemas de arquivos na distribuio, Jeff Mahoney, alegou que os principais culpados pela deciso so os problemas de desempenho e escalabilidade em sistemas multiprocessados, especialmente devido ao uso intensivo de travas do kernel (kernel locks).

Interatividade realista em ambiente Linux

A AGEIA Technologies anunciou a a disponibilidade para Linux da verso 2.6 do PhysX SDK, uma aclamadssima API fsica. Essa API acelera brutalmente o desenvolvimento de jogos complexos e modernos, que invariavelmente necessitam de movimentos em tempo real e interatividade em grande escala. A nova verso 2.6 traz novos recursos de Deformable Objects (objetos deformveis) e preveno de auto-coliso, e favorece o desenvolvimento de jogos em ambientes Windows, Vista e Linux. Os novos recursos promovem melhorias signicativas na representao grca de tecidos e de objetos dinamicamente deformveis, tanto pela acelerao em software quanto em hardware. Com isso, os objetos nos jogos podem agir e reagir a deformaes em tempo real. Um carro deformado num jogo pode ter sua dinmica afetada conforme a deformao sofrida. Em outro jogo, o carro pode bater novamente, e um dano diferente pode ser causado, com conseqncias tambm distintas dinmica do veculo, o que melhora a experincia do usurio com jogos repetidos. A nova API ainda no estreou o suporte a acelerao 3D por hardware em sistemas operacionais Linux, mas a acelerao por software j signicativa.

Software Livre em cadeia nacional


Srgio Amadeu da Silveira, ex-presidente do ITI, juntamente com Jlio Cezar Neves, professor da UniRio, importantes proponentes do Software Livre no cenrio federal, foram entrevistados no Programa do J, veiculado pela Rede Globo, no dia 5 de outubro. Os entrevistados falaram sobre o conceito de Software Livre e ten-

taram explicar a importncia das quatro liberdades do software, citando diversos exemplos de importantes usurios de sistemas abertos. A ateno dada ao SL por uma emissora de grande abrangncia no pas demonstra a o reconhecimento da crescente importncia desempenhada pelo Linux e outros softwares abertos. A repercusso da entrevista pode ser conferida em http://br-linux.org.

Linux Magazine #25 | Novembro de 2006

21

CORPORATE

Programas educacionais da Intel fazem 5 anos


No dia 21 de setembro, Craig Barrett, chairman da Intel, abriu o evento de comemorao do quinto aniversrio dos programas educacionais da Intel no Brasil, declarando que a educao a base de uma economia voltada ao conhecimento. Segundo Barrett, o programa de educao da Intel est baseado na losoa de que os computadores no so mgicos, mas que os professores so. Com professores treinados, contedo educativo para a regio, conectividade com os recursos do mundo e PCs, a juventude brasileira ter a oportunidade de perceber o potencial de suas idias. Para marcar o quinto aniversrio dos seus programas de educao no pas, a companhia anunciou a doao de 9 mil PCs para o Ministrio da Educao (MEC), que sero usados em escolas pblicas em todo o Brasil. Os PCs contaro com conexo Internet e contedo educativo fornecido pelo MEC, em colaborao com o qual a Intel informou ter treinado 90 mil professores, nos 27 Estados da Federao, no uso e aplicao de tecnologia para melhorar o aprendizado em salas de aulas. At 2011, a empresa planeja treinar outros 500 mil professores na integrao de tecnologia nos currculos escolares, por meio do Programa Intel Educao para o Futuro. Como parte da cerimnia de abertura, o chairman da Intel apresentou o Classmate PC, um laptop ao mesmo tempo robusto e de baixo custo, para ser utilizado pelo estudante em sala de aula. Foi realizada uma aula demonstrativa, de forma a ilustrar o que a empresa espera atingir com o uso de tecnologia na escola: melhor integrao entre professor e aluno, mais ateno do aluno durante a aula, por conta do uso ldico de tecnologia de ponta e de recursos multimdia. Segundo a empresa, tanto o Linux quanto o Windows devero gozar de suporte total da empresa como plataformas operacionais para os aplicativos que devero funcionar no Classmate PC. Entre outras personalidades, o evento contou com a presena do Secretrio da Educao, Cultura e Esportes de Pernambuco, Mozart Neves Ramos, e do Ministro da Educao, Fernando Haddad, que participou tambm de coletiva de imprensa aps a cerimnia de abertura da comemorao. Tambm tomaram parte da coletiva Oscar Clarke, presidente da Intel do Brasil, Brenda Musili, Diretora Mundial dos Programas de Educao da Intel e o prprio Craig Barrett. Questionados sobre o uso do Software Livre no Classmate PC, os executivos da Intel, rearmaram seu compromisso de fornecer uma plataforma operacional baseada em Linux para o laptop, que dever andar pari passu com a implementao para a plataforma operacional da Microsoft. Segundo Oscar Clarke, a escolha de qual sistema operacional dever ser utilizado car a critrio do fregus a aula demonstrativa foi realizada com Classmate PCs rodando Windows, mas aps a coletiva de imprensa, a Linux Magazine teve acesso a mquinas pr-instaladas com Linux, mais especicamente, com uma verso do sistema integrado pela MetaSys, baseado em KDE e totalmente funcional (Wi-Fi, multimdia, programas para escritrio etc.).

Curtas
Preso o desenvolvedor principal do ReiserFS Hans Reiser, presidente da Namesys e principal desenvolvedor dos sistemas de arquivos ReiserFS e Reiser4, foi preso sob acusao de assassinato de sua esposa Nina, desaparecida desde o dia 3 de setembro, em Oakland, EUA. Embora no haja provas de que Hans tenha sido de fato o autor do crime, o desenvolvedor recusa-se a cooperar com as autoridades responsveis pela investigao, o que o classica como principal suspeito. PC-BSD agora tem dono O sistema operacional PC-BSD, derivado da verso 6 do FreeBSD, foi comprado pela fornecedora de hardware corporativo iXsystems. Ela pretende us-lo em seus servidores, apesar de o sistema operacional favorecer a instalao em desktops. De acordo com a empresa, a verso 1.3 do PC-BSD deve sair em breve.

O Eudora, um dos mais tradicionais clientes de emails para a plataforma Windows, ter seu cdigo aberto. A Qualcomm, fabricante do programa, anunciou, em conjunto com a Fundao Mozilla, que as prximas verses do produto sero baseadas na mesma plataforma tecnolgica que o Thunderbird. Alm disso, a verso comercial do Eudora ser descontinuada. Mas a fabricante arma que o cliente de emails manter seu conjunto mpar de recursos. A primeira verso de cdigo aberto do programa deve ser lanada no primeiro semestre de 2007. At l, a Qualcomm continuar a vender licenas da verso proprietria, porm a uma taxa reduzida de 20 dlares. Segundo o vice-presidente de tecnologia da empresa, Steve Dorner, abrir o cdigo [do Eudora] trar mais desenvolvedores do que o programa jamais teve.

Eudora abre seu cdigo

22

http://www.linuxmagazine.com.br

Notcias | CORPORATE

Microsoft se livra de processo por monoplio


A Microsoft e sua distribuidora no Brasil, a TBA, obtiveram do Cade (Conselho Administrativo de Defesa Econmica) a autorizao para, com uma multa de R$ 5 milhes, fazerem um acordo relativo prtica de monoplio pela gigante do software. No processo, iniciado em 1998, a empresa IOS levantava a questo de a fabricante do Windows dar exclusividade TBA no fornecimento de seus softwares esfera pblica federal. Condenada em 2004 a pagar uma multa de R$ 6,4 milhes, a Microsoft ganhou todos os recursos que tentou aps a condenao, obtendo assim uma reduo no valor nal da multa, o que causou reclamaes por parte da IOS contra o Cade.

Curtas
CRM Siebel 8 agora tambm para Linux A Siebel, que foi adquirida pela Oracle, lanou seu software CRM Siebel 8 com uma verso tambm para Linux. Como a Oracle utiliza Linux internamente em suas estaes, e est gradativamente adotando o Siebel 8, essa novidade no representa uma grande surpresa, embora seja bastante interessante a disponibilizao de mais um sistema CRM para a plataforma Linux. Morre o pai das redes de computadores Ray Noorda, ex-CEO e presidente da Novell, e considerado o pai da computao em rede, morreu no ltimo dia 9 de outubro. Ele foi um dos responsveis pelo desenvolvimento do Netware, e um dos primeiros crticos hegemonia da Microsoft no mundo da computao. Calendrio no estilo Mozilla A Fundao Mozilla lanou recentemente a verso 0.3 de seu programa de calendrio, o Sunbird. Apesar de ainda estar em fase de forte desenvolvimento, o programa tem boa usabilidade. Na mesma data, foi lanada tambm a ltima verso da extenso que integra o Sunbird ao Thunderbird, chamada Lightning. Com essa extenso, tem-se uma soluo mais completa da Fundao Mozilla, possivelmente capaz de competir com o Evolution, da Novell.

A Google Inc. adquiriu o YouTube, servio gratuito de armazenamento e exibio de vdeos, por US$ 1,65 bilhes. Essa foi a maior aquisio da gigante da Internet em seus oito anos de existncia, e veio logo aps a Google assinar um contrato para a Sony e Warner Music disponibilizarem vdeos gratuitamente na Internet. O YouTube exibe mais de 100 milhes de vdeos diariamente a seus visitantes, e o custo de sua conexo supera 1 milho de dlares. As preocupaes com potenciais infraes de direitos autorais contidas nos vdeos do YouTube somam-se s reclamaes sobre a disponibilizao de contedo literrio de forma inapropriada em outro servio do Google, o Google Books.

Google compra YouTube

VoIP: Linux melhor que Cisco


A Sam Houston State University, no Texas, EUA, prefere o Linux com Asterisk para seu servio de VoIP. Os PBXs da Cisco j comearam a ser substitudos pela soluo de cdigo aberto. Ao final, todos os seis mil estudantes, professores e funcionrios passaro a usar os servidores Linux para o processamento de chamadas, voice mail e tambm para acessar o servio fixo comutado, PSTN.

Novell oferece suporte a Red Hat virtualizado


A Novell, em um movimento ousado, anunciou o suporte oficial a instncias virtualizadas de um de seus principais concorrentes na arena de sistemas operacionais, o Red Hat Enterprise Linux 4. O suporte completo (o chamado nvel 3, que inclui at questes da engenharia do ncleo do sistema, ou core engineering ) para sistemas Suse Linux Enterprise Server 9 e RHEL 4, mas tem como requisito que a base seja composta pelo SLES 10 e que se use o Xen. A mquina deve possuir um processador Intel Xeon de ncleo duplo. O CTO da Novell, Jeff Jaffe, informou ainda que os desenvolvedores j esto trabalhando no suporte tambm a verses virtualizadas do sistema operacional Netware. Teoricamente, com as novas tecnologias de virtualizao (Vanderpool, da Intel, e Pacifica , da AMD), possvel suportar at mesmo sistemas Windows, pois elas permitem uma drstica reduo da quantidade de cdigo adicional no sistema operacional hspede, um resultado da para-virtualizao.

Linux Magazine #25 | Novembro de 2006

23

CORPORATE | Notcias

Novell lana Suse Linux Enterprise 10 no Brasil


Em evento realizado no dia 04 de outubro, cerca de um ms aps o lanamento nos Estados Unidos, a Novell apresentou no Brasil a nova verso do sistema operacional da empresa, o Suse Linux Enterprise 10. Em uma verso para servidores, o Suse Linux Enterprise Server (SLES), e outra para estaes de trabalho, o Suse Linux Enterprise Desktop (SLED), ambos os sistemas desfrutam da mesma origem tecnolgica: o projeto openSUSE, do qual participam desenvolvedores da comunidade do Cdigo Aberto. Segundo a empresa, o Suse Linux Enterprise 10 o primeiro sistema Linux a dispor de suporte completo a recursos como virtualizao e segurana em nvel de aplicao, bem como desktop de usabilidade avanada esse ltimo, fruto dos resultados do projeto Better Desktop. O Suse Linux Enterprise 10 traz a verso 3.0.2 da ferramenta de virtualizao Xen totalmente integrada ao sistema, com a qual possvel consolidar mltiplos servidores em um nico hardware e, dessa forma, melhorar a utilizao do poder de processamento da mquina. De acordo com Ricardo Fernandes, presidente da Novell do Brasil, praticamente 100% dos novos clientes que nos procuram para implementar Linux nos servidores buscam a virtualizao. Demonstraes foram realizadas no intuito de ilustrar a facilidade de criar mquinas virtuais com o novo sistema, que tambm integra os recursos de segurana em nvel de aplicao oriundos do projeto AppArmor, tecnologia da Immunix, empresa adquirida pela Novell no ano passado que abriu seu cdigo no incio deste ano. O AppArmor oferece suporte para padres abertos aplicados criptograa de sistemas de arquivos, gerenciamento de rewalls, de PKIs (Public Key Infraestructures) para gesto de certicados digitais, combinados a sistemas de deteco e preveno de ataques. A congurao dessa ferramenta tambm se encontra totalmente integrada ao restante do sistema atravs da ferramenta YaST. Adicionalmente, a empresa tambm apresentou o Novell Customer Center, uma interface web desenvolvida para facilitar as interaes com a empresa, sejam elas tcnicas ou comerciais. Com esse sistema, pode-se vericar o status de produtos, servios e assinaturas adquiridas junto companhia, bem como obter atualizaes crticas e informaes de suporte. Com o Novell Customer Center, pode-se tambm controlar os nveis de acesso a informaes privilegiadas arquivadas no sistema, bem como a recursos tcnicos que ele disponibiliza.

Curtas
Computador de R$ 700 com Linux A Via Technologies anunciou um acordo para a produo de PCs de sua plataforma PC-1 no Brasil. O computador ser fabricado pela Amazon PC e vendido a R$ 699,00 a unidade, equipado com Linux. Seu processador um Via C3 de 1 GHz, e a empresa pretende atingir um mercado que atualmente no atendido nem pelo programa federal Computador Para Todos. Mozilla colabora com Microsoft A Microsoft anunciou um convite Fundao Mozilla, responsvel pelo navegador web Firefox, para visitar seu laboratrio de Cdigo Aberto. A Fundao Mozilla aceitou o convite e vem interagindo com o fabricante do Windows para melhorar o suporte mtuo entre o sistema operacional e o navegador de cdigo aberto. Evento Red Hat e IBM no Sul A Red Hat e a IBM realizam nos dias 16 e 20 de outubro, em Florianpolis e Curitiba, o evento IBM Technical Brieng, que abordar tecnologias emergentes, como a virtualizao, por exemplo. A Red Hat ministrar duas palestras nos dois eventos, intituladas Virtualizao em Linux com Xen e Alta Disponibilidade com Linux.

Linus Torvalds anunciou sua concordncia com a entrada do suporte ao GFS2 na verso 2.6.19 do kernel. O GFS2 um sistema de arquivos distribudo para uso em clusters computacionais, assim como o GFS, do qual ele um derivado. O GFS teve seu cdigo aberto pela Red Hat em 2004 e, desde ento, o GFS2 vem sendo desenvolvido, com seus responsveis j almejando a incluso no kernel. O principal concorrente do GFS2, o OCFS2 (Oracle Cluster File System 2), da Oracle, obteve a incluso no kernel h poucos meses. Pouco depois da incluso, Linus Torvalds anunciou a primeira verso de testes do kernel 2.6.19, que provavelmente levar cerca de seis semanas at atingir a estabilidade e ser ocialmente lanado.

GFS2 no kernel ocial

24

http://www.linuxmagazine.com.br

Notcias | CORPORATE

A franco-brasileira Mandriva, fabricante da distribuio de mesmo nome, adquiriu a francesa Linbox, que tem como principais clientes Renault, EADS, Arcelor e vrios ministrios franceses. Os produtos da Linbox, liderados pelo Linbox Directory Server (LDS) e pelo Linbox Rescue Server (LRS), consistem de aplicaes de administrao de infra-estrutura de software para empresas mdias e grandes. Realizam tarefas como autenticao, gerenciamento do parque de mquinas e realizao de becapes, e so liberados sob a licena GNU GPL. A transao foi efetuada por uma quantia em torno de US$ 1,74 milhes.

Mandriva compra Linbox

Curtas
Ideologia x empreendedorismo Durante o Encontro Mineiro de Software Livre, que acontecer na cidade de Ouro Preto de 10 a 12 de outubro, o presidente da Insigne Free Software do Brasil, Joo Pereira da Silva Jr., apresentar um seminrio em que trata do embate poltico entre o modelo proprietrio de desenvolvimento de software e o Software Livre, assim como seus reexos para o usurio nal e a incluso digital. Thin client brasileiro com Linux A Tecnoworld, fabricante brasileira de thin clients, notebooks e placas, apresentou o WinBox, um thin client com verses Linux e Windows CE. O modelo com Linux, chamado WinBox LNX, vem equipado com processador SIS550 de 200 MHz, 128 MB de memria, ethernet 10/100 Mbps, seis portas USB e sadas PS/2 para teclado e mouse, e traz os principais clientes para desktops remotos, como rdesktop, XDMCP, VNC viewer e outros. Binrios universais da REALbasic A REAL Software lanou a verso 2006 R4 de seu ambiente de desenvolvimento REALbasic. A nova verso oferece suporte a binrios universais, capazes de rodar em Linux (GTK+), Windows e Mac OS X (PowerPC e Intel, sem emulao). Com binrios universais, um programa somente precisa ser desenvolvido uma nica vez. Existe uma verso gratuita de demonstrao para download em www.realsoftware.com/download, e a licena custa US$ 90,00 para o programa capaz de compilar softwares para a plataforma sobre a qual ele prprio roda. A verso prossional, a nica com a funcionalidade de compilao multiplataforma, custa US$ 500,00.

A distribuio Trixbox, originalmente chamada de Asterisk@Home, foi comprada pela empresa norte-americana Fonality. O Trixbox uma distribuio em Live-CD (tambm instalvel no disco rgido) que facilita enormemente o uso de ferramentas e programas para VoIP, como o Asterisk, Apache, MySQL e outros. Com isso, uma distribuio altamente indicada para funcionar como o PABX de uma empresa, sem a necessidade de se comprar um hardware especializado para esse m. A Fonality a desenvolvedora do Hudlite, plataforma comercial de controle de ligaes e gerenciamento de presena em tempo real que funciona em conjunto com o PBXtra, da prpria Hudlite. Com a aquisio, o fundador e desenvolvedor do Trixbox, Andrew Gillis, passa a trabalhar para a Fonality, porm ainda se mantm lder da comunidade Trixbox. A distribuio continuar totalmente livre, liberada sob a licena GNU GPL, mas agora contar com o apoio nanceiro e tcnico da Fonality para seu desenvolvimento.

Fonality adquire Trixbox

O Congresso Nacional aprovou uma lei que institui a preferncia por Softwares Livres na aquisio de novos softwares. Atualmente, o Cdigo de Processo Civil ainda depende dos autos em papel, porm a nova lei pretende realizar a migrao para autos virtuais e processos eletrnicos. A lei que instituiu a possibilidade de informatizao da maioria das aes, intimaes, certicaes etc. trouxe consigo a necessidade de se estudar o melhor modelo de software a ser adotado pelos rgos do Judicirio. Reconhecendo que essa questo envolve a ecincia dos tribunais, assim como sua segurana, seus custos operacionais e a qualidade dos servios por eles prestados, a Ministra Ellen Gracie e o Conselho Nacional de Justia estimulam fortemente a adoo de Software Livre no Poder Judicirio. Atualmente, os softwares criados para algum tribunal no podem ser cedidos a outro seno mediante o pagamento de mais licenas ao fabricante dos programas. O conselheiro Douglas Rodrigues, do Conse-

SL no Poder Judicirio

lho Nacional de Justia, armou que o rgo repudia a idia de que os tribunais se tornem refns de empresas de tecnologia, acrescentando que preciso alcanar a independncia completa dos tribunais nessa rea. Embora as empresas fabricantes de softwares insistam em desmerecer o Software Livre, os representantes do Judicirio armam que essa deciso nada tem de ideolgica, mas vem da experincia positiva de diversos tribunais, como o TRF da 4 regio, por exemplo, que vm utilizando com enorme sucesso Software Livre nos juizados, com grande reduo de custos e aumento de ecincia, j que quatro funcionrios conseguem lidar com os 20 mil usurios e trs milhes de documentos.

Linux Magazine #25 | Novembro de 2006

25

Laudelino Lima, Gerente de TI do InvesteRio

Direcionando investimentos com Linux


A Agncia de Fomento do Estado do Rio de Janeiro S.A. (Investerio) uma sociedade annima de economia mista, com personalidade jurdica de direito privado, criada em 12 de dezembro de 2002 e autorizada a operar pelo Banco Central do Brasil com as mesmas obrigaes de todas as empresas que compem o Sistema Financeiro Nacional. Sua misso principal atuar no nanciamento a projetos de investimentos das micro e pequenas empresas localizadas no Estado do Rio de Janeiro, seja como Agente Financeiro do BNDES, seja com recursos prprios. Tem tambm como atribuies a Administrao de Contratos de Financiamentos, alm da Administrao de Fundos Estaduais ou Fundos Privados de Investimentos.

CORPORATE

O InvesteRio usa Software Livre e de Cdigo Aberto desde o incio de suas operaes. Com a economia gerada em mquinas e licenas, foi possvel investir em mobilirio ergonmico e no pessoal de TI, o que se reetiu em melhora da ecincia dos funcionrios e da estrutura de TI. por Pablo Hess

a todos, principalmente nosso gerente de suporte e nossa superintendente. Por esse motivo estvamos constantemente em busca de uma soluo. Assistimos ento a uma palestra da Conectiva (agora Mandriva) em nossa empresa. Eu no conhecia profundamente o Linux, pois s havia tido uma primeira experincia decepcionante em 1995. Mesmo assim, o Linux e o Software Livre me pareciam ter um futuro promissor, com uma idia muito atraente. A eliminao da dependncia do fornecedor me pa-

O que limita a rea de TI agora o seu elemento humano, o que um incentivo para que direcionemos investimento a nosso pessoal.
receu um fator importantssimo para o uso na empresa, ao menos nos servidores. Recebemos ento um curso gratuito na sede da Conectiva no Centro do Rio de Janeiro, o qual nos mostrou na prtica que o sistema Linux poderoso, veloz e estvel, mesmo sendo gratuito. Nessa mesma poca foi criada a InvesteRio, e fui contratado como Chefe do Departamento de TI. O desao era montar a infra-estrutura tecnolgica e de sistemas para uma empresa ligada ao Sistema Financeiro Nacional, com todas as suas obrigaes legais e com a

Linux Magazine Por que vocs escolheram o Linux? Laudelino Lima Em agosto de 2000, saindo do mercado privado, fui contratado pela CODIN (Companhia de Desenvolvimento Industrial do Estado do Rio de Janeiro) para assumir a Gerncia de Sistemas da empresa e, logo ao chegar, tive a percepo de que a estrutura de TI encontrava-se praticamente engessada em relao inovao. O custo das licenas era exorbitante, e a dependncia de sistemas operacionais proprietrios no nos mostrava qualquer perspectiva de melhora no quadro. Isso incomodava

maior quantidade possvel de Software Livre. Para isso, primeiro era necessrio ter conhecimento sobre as necessidades da empresa, levando-se em conta seu tamanho e sua rea de atuao. Para isso, visitei as Agncias de Fomento de Natal e do Rio Grande do Sul, onde pude avaliar qual seria o porte necessrio para o atendimento das demandas. O cenrio apresentado em relao aplicao bancria era de que realmente s existiam opes proprietrias, o que era normal diante da especicidade do produto. Entretanto, essa mesma aplicao poderia ser acessada por meio de navegadores e executadas sobre bancos de dados livres PostgreSQL. Ficamos surpresos ao receber respostas de trs fabricantes, aceitando a proposta de fazer funcionar suas aplicaes bancrias sobre bancos de dados livres e navegadores, o que j foi um avano.
LM Como foi o processo de instalao? LL Como os gastos com softwares foram

seriamente reduzidos, conseguimos investir primeiramente em infra-estrutura eltrica, de dados e de voz, o que nos diferenciou da maioria dos rgos pblicos, freqentemente carentes de recursos. A experincia em Linux, oriunda do case da CODIN, nos permitiu comear pelo mais difcil, o rewall, que exigia DMZs e IDSs, e logo a seguir DHCP, DNS, LAMP (para a intranet e nosso website),

26

http://www.linuxmagazine.com.br

Entrevista | CORPORATE

correio (incluindo webmail, antivrus e antispam), LDAP, mirror interno, becape externo, VPNs e desktops. No caso das estaes, conclu que o componente mais importante para o usurio era que seu conforto fosse o maior possvel, pois o setor de TI deve ser usado para oferecer servios aos usurios, sem que estes precisem de grandes esforos de aprendizado. Como conseqncia, um usurio confortvel em seu ambiente de TI gera menos chamados de suporte, o que reduz a demanda sobre o responsvel pelo suporte. Como eu era o nico funcionrio de TI da empresa, esse fator foi imprescindvel para que eu me concentrasse melhor na administrao dos servidores. Para a escolha da distribuio por parte dos usurios, foi montado um laboratrio com diversas mquinas e distribuies. Aps testarem cada uma das alternativas, os usurios escolheram o Mandrake Linux, que ento foi adotado em todas as estaes em 2004.
LL LM LM E as estaes? Tambm rodam Linux?

aps diversas reunies, discusses, laboratrios e simulaes consegui mostrar a todos que a soluo livre era de fato a melhor para ns. Alm disso, o funcionamento dos softwares governamentais obrigatrios tambm foi problemtico. Imaginamos que conseguiramos executar algumas aplicaes federais e proprietrias sobre o Wine, mas isso no foi possvel. Assim, conguramos uma mquina com sistema operacional Windows para executar os doze aplicativos necessrios. As estaes acessam a rea de trabalho nesse servidor atravs do rdesktop. Com isso, fomos capazes de economizar mais recursos em licenas de software. Nossos servidores rodam com uma carga bem menor, e portanto nunca cam sobrecarregados. Alm disso, nunca tivemos problemas com vrus, cavalos-detria ou outras pragas virtuais. Obtivemos
LL LM Quais foram os benefcios tcnicos?

Basta notar que nosso parque, com 50 mquinas, dispe de uma equipe de apenas dois funcionrios (sendo que o segundo recm-contratado). Esses recursos foram aplicados na compra de novos equipamentos. Uma das aplicaes mais proveitosas, no entanto, foi o mobilirio ergonmico. Com ele, nossos funcionrios trabalham de forma mais confortvel, e portanto eciente, o que um ganho indireto, perceptvel e altamente positivo. Por no termos mais restries relativas a software, o fator limitador de desenvolvimento e evoluo de sistemas na empresa passou a ser o pessoal de TI. O que limita a rea de TI agora o seu elemento humano, o que um incentivo para que direcionemos investimentos ao nosso pessoal.
LM Na sua opinio, o que falta para o LiLL Em primeiro lugar, falta apoio srio

nux ser mais utilizado nas empresas?

Como a soluo atual? LL Possumos sete servidores Intel rodando a distribuio Mandriva. Eles so responsveis pela segurana de nossa rede, rodando rewall e proxy (iptables, Squid, Snort, Nagios, ACID, MRTG, TuxFrw e outros), e tambm oferecem os servios de que necessitamos, como DNS (Bind), email (Postx, webmail, Spamassassin e ClamAV) e becape interno com sincronia externa. A distribuio das estaes, que originalmente era Mandrake, foi atualizada para Mandriva.

Ficamos surpresos ao receber respostas de trs fabricantes, aceitando a proposta de fazer funcionar suas aplicaes bancrias sobre bancos de dados livres e navegadores, o que j foi um avano.

assim uma maior conabilidade, disponibilidade e desempenho. Nosso sistema to convel que algumas instituies pblicas, quando enfrentam problemas de conexo Internet, nos telefonam para conferir se o problema de seu prprio sistema ou do acesso institucional rede. Isso mostra que temos uma soluo tecnicamente superior. Outro dia LM Quais foram as diculdades enfren- viemos a saber que boa parte dos rgos tadas ao longo da instalao? aos quais somos ligados haviam passado LL Alguns fornecedores de softwares pro- horas fora do ar devido a uma infeco prietrios, os quais dependiam somente por vrus em seus sistemas proprietrios. de plataformas proprietrias, zeram (e A InvesteRio sequer tomou conhecimenainda fazem) uma fortssima campanha to da ameaa. contra as solues livres, inclusive com bastante FUD. Isso, aliado ao j espera- LM E os outros benefcios? do conservadorismo de alguns usurios, LL Estimamos ter economizado R$ 600 dicultou minha tarefa de convenc-los mil somente na aquisio de licenas de que aquela soluo que todos eles j e contratao de pessoal no perodo de conheciam no era mais a melhor, e 2004 a 2006, pois o Linux gera menos nem mesmo a indicada quando se alia chamados tcnicos e menores esforcusto com segurana bancria. Somente os de gerenciamento e manuteno.

do poder pblico, pois programas obrigatrios a qualquer empresa no podem ser restritos a uma nica plataforma. Em segundo lugar, falta o combate pirataria. Na atual conjectura, o custo de um sistema operacional proprietrio no diferente daquele composto somente por Software Livre, pois ambos acabam sendo efetivamente gratuitos. Com um combate eciente pirataria, mais empresas perceberiam os benefcios incomparveis do Software Livre. fcil recusar-se a conhecer o Software Livre quando se tem todo um parque de softwares piratas. Quem estuda Linux hoje, assim como quem folheia a Linux Magazine, est no caminho certo. Utilizar o Linux no signica esquecer as plataformas proprietrias. Capacitando-se em Software Livre, o trabalhador de TI duplica suas possibilidades, pois ainda existem bons empregos que favorecem o modelo proprietrio de software. Porm, tm surgido cada vez mais vagas para trabalhar com Software Livre em sintonia com softwares proprietrios, geralmente com melhores salrios. Anal, mdicos costumam ser melhor remunerados que curandeiros.
LL LM Alguma palavra aos nossos leitores?

Linux Magazine #25 | Novembro de 2006

27

O impacto do Open Source na indstria de software

CORPORATE

Cezar Taurion
movimento do Cdigo Aberto j uma realidade. O Linux um sistema cuja base instalada cresce a cada dia. O Apache lder inconteste na categoria de servidores web. O PHP, Sendmail e dezenas de outros softwares j fazem parte do portflio da maioria das empresas do mundo. Alguns diretrios de projetos de Cdigo Aberto, como o Sourceforge, j armazenam mais de 130 mil projetos com mais de 1,4 milhes de usurios registrados.

Com o modelo de desenvolvimento colaborativo, tanto o esforo quanto o custo de desenvolver o software so compartilhados.
Mas o que realmente este movimento, e por que ele tem impactado tanto a indstria de software? A essncia do Cdigo Aberto no o software em si, mas o seu processo de desenvolvimento. um processo de desenvolvimento colaborativo, em que usurios colaboram para criar um software. Nesse processo no existe a necessidade de pesados investimentos prvios e, portanto, temos o poder de mudar os tradicionais modelos de negcio baseados em venda de licenas. No modelo tradicional, o desenvolvedor, na maioria das vezes, precisa vender licenas do seu software para recuperar o investimento efetuado, obter lucros e manter seus acionistas satisfeitos. Com o modelo de desenvolvimento colaborativo, tanto o esforo quanto o custo de desenvolver o software so compartilhados. Desta forma, no existem maiores investimentos anteriores, e conseqentemente no se demanda a venda de licenas. Podem-se criar outros modelos de negcios, como os que obtm receita a partir da venda de servios. Um exemplo o prprio Linux. O kernel 2.6 tem mais de 3,2 milhes de linhas de cdigo C e quase 180.000 linhas em assembly. Se fosse desenvolvido por uma nica empresa (e existiria empresa capaz de tamanha faanha?), tal volume de trabalho custaria centenas de milhes de

dlares. Essa empresa teria que conseguir escala de mercado de forma ampla e veloz o suciente para se manter viva. O modelo de Cdigo Aberto dilui os custos por meio do trabalho colaborativo de dezenas de milhares de colaboradores, j que seu custo foi distribudo. Os custos xos de pesquisa e desenvolvimento no so alocados a nenhum centro de custo ou a uma empresa. O modelo permite sobrevivncia do produto mesmo quando a escala de mercado no suciente para sustentao de um produto comercial. Sua sobrevivncia, sob essa tica, mais garantida que a de um software comercial. Existem diferenas signicativas entre modelos de negcio baseados na venda de licenas e na venda de servios. O baseado em licenas consegue obter lucros bem mais elevados, principalmente quando falamos em software de massa. Estes softwares so escritos uma vez e podem ser vendidos dezenas de milhes de vezes a custos marginais (preo de um CD) ou quase zero (downloads), com pequenos investimentos adicionais em suporte e consultoria. Por sua vez, modelos baseados em servios demandam mais recursos humanos e as lucratividades so menores e obtidas a mais longo prazo. O nmero de consultores e tcnicos cresce medida que aumenta a base instalada. Os impactos causados pelo modelo de Cdigo Aberto comeam a causar srios transtornos nas empresas extremamente dependentes de licenciamentos de softwares em seus modelos de negcio. A razo simples. As empresas de software com aes nas bolsas so continuamente monitoradas pelos investidores. As empresas so foradas a crescer mais rpido que as expectativas dos seus acionistas. Crescer no mesmo ritmo do mercado apenas evita a queda no preo das aes, mas no gera ganhos. Um novo cenrio torna o seu crescimento mais rduo, gerando reaes bastante agressivas para evitar uma eventual percepo negativa por parte dos investidores. Em resumo, Cdigo Aberto ainda no um fenmeno totalmente conhecido em suas nuances. O que acontecer nos prximos anos? Teremos que aguardar os prximos captulos...

O autor
Cezar Taurion Gerente de Novas Tecnologias Aplicadas da IBM.

28

http://www.linuxmagazine.com.br

Criptograa de discos no Linux

Segredos e discos
CAPA
Os computadores atuais so sucientemente rpidos para algumas tcnicas criptogrcas bastante sosticadas. Veja como manter seus dados a salvo de olhos curiosos e espies. por Joe Casad

spies, soldados e matemticos j brincam com criptograa h sculos. H cada ano, os usurios de computador ganham mais possibilidades de esconder seus documentos e mensagens. Obviamente, os usurios precisam dessas tcnicas novas e melhores para ocultarem seus dados, justamente porque os computadores esto cando to acessveis e portteis. E se voc esquecer seu laptop no cibercaf? Ou se um intruso conseguir entrar em um dos 100 desktops da rede do seu trabalho? Sistemas de arquivos criptografados oferecem uma poderosa proteo para a atual cultura da computao casual. Com um sistema de arquivos criptografado, seus dados permanecem seguros mesmo quando o computador desligado e o disco retirado. Se voc algum dia j se preocupou com espies, soldados, matemticos, ou curiosos do dia-a-dia tendo acesso s suas informaes valiosas, vai adorar nosso tema de capa do ms. O primeiro artigo desse ms aborda a criptograa de CDs, DVDs e outras mdias removveis, uma medida fundamental para quem carrega dados condenciais com alguma freqncia. Em seguida, O disco todo: Criptograa de discos rgidos com DM-Crypt e LUKS um tutorial que descreve como congurar a criptograa de discos rgidos no seu prprio sistema Linux. Finalizamos com um panorama das opes mais populares de sistemas de arquivos criptografados para Linux, incluindo o Loop-AES, DM-Crypt, Truescript, Crypto-FS e Enc-FS. Os especialistas em criptograa Peter Gutmann e Christian Ney vo alm dos passos de instalao e avaliam as opes baseados em fatores que talvez no estejam vista da maioria dos usurios, como a qualidade do cdigo e as tcnicas criptogrcas. Os artigos deste ms oferecem uma boa idia de como dar os prximos passos para implementar a criptograa de discos nos seus sistemas Linux. Esperamos que voc goste do tema de capa deste ms.

Sistemas de arquivos O disco todo CDs e DVDs


Linux Magazine #25 | Novembro de 2006

30 38 44
29

Escolhendo um sistema de arquivos criptogrco

Candidatos secretos
CAPA

Se voc no for um especialista em segurana, mas estiver em busca de um sistema de arquivos criptografado, talvez esteja se perguntando quais so as alternativas. Conhea algumas das opes mais populares de criptograa para Linux. por Peter Gutmann e Christian Ney

hannah jackson www.sxc.hu

s sistemas de arquivos criptograAlm de atentarmos s tecnologias e fados mantm seus dados seguros, tcnicas, tambm examinamos alguns O Loop-AES [1] o mais antigo dos mesmo que algum roube seu parmetros de desempenho dessas op- sistemas de arquivos criptogrcos aqui computador. A recente popularidade dos es de criptograa. investigados. Ele utiliza o venervel computadores portteis trouxe tona a Como poucos desses sistemas docu- mdulo de kernel loop, e roda at com necessidade de proteo, mas at mesmo mentam detalhes tcnicos exceo o kernel 2.0. A funo do Loop-AES os usurios de desktops tm motivos para (honrosa) do Truecrypt e do Enc-FS semelhante do Cryptoloop, que j se assegurar sua privacidade. uma auditoria significaria passear por mostrou insegura. O Loop-AES funciona O Linux oferece diversas opes de toneladas de cdigo-fonte (gerado por no nvel do dispositivo de blocos, e grasistemas de arquivos criptografados cada engenharia reversa). Enquanto pesqui- va arquivos criptografados num arquivo um com uma soluo diferente para o svamos este artigo, no conseguimos continer ou numa partio feita espeproblema da cifragem. Examinamos evitar o sentimento de que a anlise cicamente para esse propsito. algumas dessas alternativas, com o ob- do cdigo-fonte parecia mais uma esApesar de o Loop-AES utilizar alguns jetivo de oferecer alguma informao cavao arqueolgica do que uma au- truques de sistema de nvel bem baixo, e sobre tcnicas de criptograa, qualidade ditoria de cdigo. Funes relevantes de sua tecnologia ser no mnimo venede cdigo e os mritos relativos de cada estavam escondidas sob muitas camadas rvel, ele fcil de usar em aplicaes opo. Analisamos os seguintes sistemas de depsito de cdigo, software des- prticas. O Crosscrypt [2] acrescenta o de arquivos: cartado e experimentos criptogrficos. recurso de ler contineres Loop-AES no Loop-AES Entretanto, pelo menos esclareceram a Windows. DM-Crypt forma como os desenvolvedores tentaO nmero de opes para criar e usar Truecrypt ram vrias abordagens para solucionar o sistema de arquivos Loop-AES impede Crypt-FS os problemas da cifragem do sistema uma anlise efetiva de segurana. O de Enc-FS de arquivos. sempenho na gravao radicalmente

Loop-AES

30

http://www.linuxmagazine.com.br

Sistemas de arquivos | CAPA

diferente, dependendo da sua seleo. O cdigo-fonte bagunado tambm impede uma auditoria, dicultando uma anlise do que est acontecendo no ncleo do Loop-AES, e se o cdigo realmente cumpre o que promete. O Loop-AES no utiliza o salt (um conjunto de bits aleatrios) para fazer um hash da senha, o que impediria que uma mesma senha gerasse chaves idnticas. Alm disso, o algoritmo empregado pelo Loop-AES utiliza s uma iterao de hash (como SHA256 ou SHA512) para gerar a chave de criptograa. Essa abordagem deixa o Loop-AES aberto a ataques de dicionrio quando um invasor utiliza dicionrios e conjuntos de regras para gerar uma lista de possveis senhas e calcular o hash a priori. O resultado uma coleo de hashes que podem ser tentados, eliminando a necessidade de testar todas as combinaes possveis de nmeros (que congurariam um ataque de fora bruta). O readme do Loop-AES [3] arma que esse sistema de arquivos capaz de usar tanto o salt quanto iteraes mltiplas. Os arquivos de congurao de exemplo desse sistema que o Google retornou, no entanto, no mostram qualquer sinal de salt e xam em 100 o valor de iterao (o que corresponde a 100.000 iteraes). Por padro, o Loop-AES no usa nenhum dos dois recursos. Se um usurio selecionar iteraes explicitamente (o que s parece ser possvel com AES256), o software criptografa dois blocos de 128 bits com a chave inicial, e troca os 64 bits de maior valor do primeiro bloco de 128 bits pelos 64 bits de menor valor do segundo bloco de 128 bits. Esse algoritmo se repete quantas vezes voc quiser, para retornar o valor nal de 256 bits. Como o nome sugere, o Loop-AES utiliza o algoritmo AES em modo CBC para a cifragem. A coleo de opes para lidar com o Vetor de Inicializao (IV, na sigla em ingls) grande demais, e inclui opes para especicar o nmero

Conhecendo o Loop-AES
Instalar o Loop-AES a partir do cdigo-fonte o primeiro obstculo. O pacote requer fontes do kernel especcos, incluindo os componentes gerados pela compilao os administradores podem preferir compilar o kernel dos fontes, na maioria dos casos. Tambm ser necessrio aplicar patches e recompilar o pacote fundamental util-linux [4], que contm importantes comandos do sistema, como mount. Pelo menos o arquivo readme [3] explica o processo com relativa preciso, ao mesmo tempo fornecendo dicas teis sobre como usar o Loop-AES junto com o recurso software suspend. Como isso de nvel muito baixo, recomendamos que os leitores atenham-se aos pacotes padro de sua distribuio. Os usurios do Ubuntu desfrutam de um processo bem fcil, como mostra o exemplo 1. O comando aptitude, na linha 1, instala os pacotes necessrios. O module-assistant, nas linhas 2 a 4, ento gera um pacote do Loop-AES apropriado, a partir do cdigo-fonte. Uma pequena falha acontece nesse ponto, mas com uma soluo bastante fcil: durante a compilao, o sistema reclama que o debian/rules no possui os direitos necessrios. A soluo para esse problema abrir uma janela de terminal, mudar as permisses manualmente com o comando chmod +x /usr/src/modules/loop-aes/debian/rules, e depois repetir a compilao. A boa integrao com o sistema e uma coleo de ferramentas customizadas tornam o Loop-AES fcil de usar. A linha 7 do exemplo 1 mostra uma chamada ao Losetup , que estabelece uma conexo lgica entre o dispositivo de loop loop0 e a partio /dev/hda6. Voc tambm poderia facilmente especicar um arquivo normal como dispositivo de blocos aqui; o arquivo agiria como um continer para o dispositivo de blocos criptografado. Quando for pedido, entre uma senha com no mnimo 20 caracteres; o Losetup ento gravar na partio os cabealhos requeridos pelo Loop-AES. Um sistema de arquivos XFS criado na linha 8 para completar o dispositivo de loop, que depois pode ser montado. Depois de desmontar, um losetup -d /dev/loop0 desfaz o mapeamento da conexo lgica com o dispositivo fsico. Para automatizar a montagem, pode-se adicionar o seguinte ao /etc/fstab: /dev/hda6 /home/chris/loopaes xfs defaults,loop=/dev/loop0,encryption=AES256 0 0

de setores ou um hash MD5 desse nmero como o IV. O Loop-AES possui um importante erro de programao comum a vrios programas de criptograa: o cdigo falha ao vericar os valores de retorno das chamadas de funo. Se um erro ocorrer no clculo da chave, o software simplesmente continua sua operao, sem perceber que a chave formada por um amontoado de zeros. Isso deixa os dados praticamente sem criptograa. O cdigo to ruim em algumas partes que o programa tem mais probabilidade de travar com um de-referenciamento a um ponteiro nulo do que realmente com o uso de uma chave vazia. Mas conar numa programao desleixada para se proteger de erros mais srios parece uma atitude fortemente negligente.

Exemplo 1: Loop-AES no Ubuntu


01 02 03 04 05 06 07 08 09 sudo sudo sudo sudo sudo aptitude install loop-aes-utils loop-aes-source module-assistant update module-assistant prepare module-assistant build loop-aes dpkg -i loop-aes-2.6.15-26-686_3.1b-8+2.6.15-26.45_i386.deb

losetup -e AES256 /dev/loop0 /dev/hda6 mkfs.xfs /dev/loop0 mount /dev/loop0 /home/chris/loopaes

O DM-Crypt [5] se tornou parte ocial do mapeador de dispositivos (device mapper) na verso 2.6.4 do kernel, oferecendo um servio de cifragem transparente de dados. O sistema pode usar uma partio separada ou um continer (atravs do Losetup) para armazenamento. Diferentemente do Loop-AES, o DM-Crypt no se restringe a um nico algoritmo: os usurios podem selecionar qualquer algoritmo que o kernel conhea. Ao contrrio de seu antecessor inseguro (o Cryptoloop), a soluo usada pelo DM-Crypt til para sistemas de arquivos com journal, como o Ext3 ou o XFS. O DM-Crypt at monta contineres do Cryptoloop, o que torna essa transio da soluo antiga para a nova bem menos dolorosa. Alm do mdulo do kernel, o sistema DM-Crypt necessita de vrias ferramentas de espao de usurio. O programa cryptsetup j deve ter sido includo em todas as distribuies. Infelizmente, o Ubuntu, extremamente amigvel fora isso, mostra sua diferena e esconde esse pacote crtico no repositrio Universe. Hoje em dia, o cryptsetup normalmente visto em combinao com o LUKS (Linux Unied Key Setup, [6], [7]), de

DM-Crypt

Linux Magazine #25 | Novembro de 2006

31

CAPA | Sistemas de arquivos

Clemens Fruhwirth. Nossos testes do DM-Crypt incluram o LUKS. O LUKS armazena seus metadados no cabealho do continer, gerenciando mltiplas senhas, que o administrador pode revogar individualmente sem precisar cifrar novamente os dados. Isso garante o acesso seguro por mltiplos usurios. O Windows consegue ler formatos DM-Crypt em conexo com o Free OTFE [8]. A maior vantagem do DM-Crypt sua integrao transparente ao sistema como um todo. O Debian e o Ubuntu mostram como isso pode ser fcil para o administrador, usando um arquivo de congurao para automatizar todo o processo no momento da inicializao. Despercebido pelo usurio, ele congura uma swap criptografada de forma muito elegante:
swap /dev/hda2 /dev/random swap

Entendendo o LUKS com DM-Crypt


necessrio um pacote Cryptsetup modicado para o LUKS a maioria das distribuies modernas deve oferecer isso por padro. Se a sua distribuio for diferente, procure um pacote na coleo de [9]. fcil preparar um continer: cryptsetup luksFormat -y -c aes-cbc-essiv:sha256 /dev/hda6 cryptsetup luksOpen /dev/hda6 crypto mkfs.ext3 /dev/mapper/crypto O primeiro comando prepara o /dev/hda6 como dispositivo a ser criptografado. Ele escreve o cabealho do continer, que depois guardar as chaves, entre outras coisas. A opo -y pede a senha duas vezes. Como alternativa, o Cryptsetup tambm pode usar um arquivo de senhas. O parmetro -c aes-cbc-essiv:sha256 faz o DM-Crypt gravar os dados em modo CBC (Cipher Block Chaining) e fornecer um vetor de inicializao com hash por SHA256. Sem esses parmetros, os dados cariam suscetveis ao watermarking, uma tcnica que envolve o preparo de arquivos pelo atacante e a insero desses arquivos no continer de forma no criptografada. Se voc no conar no comprimento de chave de 128 bits, pode dobrar esse valor especicando -s 256. A opo luksOpen no segundo comando pe o dispositivo fsico nas mos do mapeador de dispositivos, e depois j pode ser acessado como crypto. Assim como em dispositivos RAID e LVM (Logical Volume Manager), a ltima linha cria um sistema de arquivos (Ext3, no nosso caso). O comando cryptsetup luskRemove crypto depois apaga o dispositivo do sistema.

Exemplo 2: Truecrypt no Ubuntu


01 02 03 04 05 06 07 08 09 10 11 sudo aptitude install build-essential linux-source gawk cd /usr/src sudo tar xvjf linux-source-2.6.15.tar.bz2 cd linux-source-2.6.15 sudo cp /boot/config-2.6.15-26-686 .config sudo make prepare cd /usr/src tar xvzf truecrypt-4.2a-source-code.tar.gz cd truecrypt-4.2a/Linux sudo ./build.sh sudo ./install.sh

Essa entrada no /etc/crypttab se aplica ao espao de swap em /dev/hda2. Na inicializao do sistema, o DM-Crypt providencia uma chave aleatria a partir do /dev/random e usa a chave para criptografar o dispositivo de swap. Mas a maior segurana tem um preo: a suspenso para o disco passa a no funcionar mais. O DM-Crypt possui muitas caractersticas em comum com o Loop-AES: ambos so mdulos do kernel, e ambos confundem o usurio com opes demais para a compilao e a execuo. A congurao padro restrita a uma nica iterao de hash do tipo RIPEMD-160, e faz isso sem salt. O modo IV padro plain, que usa o nmero de 32 bits do setor como o IV.

Figura 1

Felizmente, h um modo mais seguro conhecido como ESSIV, que criptografa o nmero do setor (para impedir que um atacante o adivinhe). Todavia, nossa busca na Web por exemplos de congurao, assim como os exemplos da pgina do projeto, nos levou a suspeitar que poucos usurios optem pelo ESSIV. Os ganhos de segurana com o modo ESSIV tambm so mnimos, pois o ESSIV mantido para todos os dados desse setor. Do ponto de vista da criptograa, todo setor deveria ter um novo IV para cada alterao. A variante LUKS do sistema DM-Crypt tem desempenho muito melhor, embora, por algum motivo, a congurao do DM-CryptO TrueCrypt oferece uma interface grca para LUKS mantenha o pagerenciar os recursos de arquivos. rmetro inseguro do

DM-Crypt por padro. Dito isso, o Cryptsetup-LUKS utiliza o nmero criptografado do setor como IV padro quando cria um dispositivo no formato do LUKS. A principal tarefa da extenso LUKS o gerenciamento de chaves, entretanto, e h algumas melhorias perceptveis nessa rea. O LUKS utiliza o mtodo j estabelecido como padro de gerao de chaves PBKDF2 para criar uma chave a partir de uma senha.

Truecrypt

O Truecrypt [10] alega ser seguro e porttil. O aplicativo Truecrypt utiliza contineres cifrados tanto em sistemas Linux quanto Windows. Os algoritmos de criptografia incluem AES, Blowfish, Cast 5, Serpent, Triple-DES e Twofish, e tambm permite combinaes de mltiplas variantes. Trs algoritmos de hash ( RIPEMD160, SHA-1 e Whirlpool) garantem a integridade. O Truecrypt (figura 1) consegue usar tanto arquivos quanto

32

http://www.linuxmagazine.com.br

Sistemas de arquivos | CAPA

Usando o Truecrypt
Dependendo do desempenho do seu sistema, o procedimento de instalao pode levar desde poucos minutos at vrias horas. O processo de compilao iniciado na linha 10 do exemplo 2 compila o kernel inteiro, sem necessidade disso, antes de continuar com a compilao do mdulo truecrypt e suas ferramentas acessrias. Se voc no tiver o pacote gawk (como o caso no Ubuntu, por exemplo), todo o processo termina com uma mensagem de erro. Os administradores podem simplesmente responder sim s trs primeiras perguntas do script de instalao (iniciado na linha 11 do exemplo 2). Se voc permitir que usurios no administradores executem o Truecrypt, respondendo sim tambm prxima pergunta, o instalador especicar o bit UID no binrio, abrindo um vetor de ataque potencial. Dito isso, a programao bastante limpa, e portanto o risco calculvel. Voc pode executar truecrypt --create para criar um novo sistema de arquivos criptografado por essa ferramenta. Se voc no fornecer todas as opes necessrias na linha de comando, a ferramenta perguntar por eles interativamente. O exemplo 3 cria um arquivo continer em /home/chris/truecrypt/test (linhas 1 e 2) e formata o continer com um sistema de arquivos FAT (linha 3). O Truecrypt usa esse menor denominador comum para o intercmbio de dados entre sistemas Windows e Linux por padro. Se voc preferir no usar FAT, pode especicar o sistema de arquivos do continer em um passo mais adiante. Se voc optar pela criptograa baseada em arquivos, a ferramenta ainda pedir que voc especique o tamanho do continer (100 MB, linha 4), antes de seguir oferecendo uma seleo de algoritmos de hash e criptograa. O RIPEMD160 e AES com comprimento de chave de 256 bits so os padres. Diferentemente dos outros dois sistemas de criptograa mostrados at agora, o Truecrypt usa a cifragem LRW manipulvel de blocos estreitos (LRW tweakable narrow-block encryption) (quadro LRW). Apesar de o Truecrypt suportar o tradicional, porm inseguro, modo CBC, seus desenvolvedores recomendam veementemente que ele no seja usado. A ferramenta depois pede uma senha; alm disso, o Truecrypt pode opcionalmente usar chaves de arquivos. Para usar s um arquivo, deixe a senha em branco. O Truecrypt coleta movimentos do mouse e entradas do teclado para gerar entropia, em vez de depender do /dev/random. Baseado no valor aleatrio, o Truecrypt sobrescreve todo o continer com uma seqncia pseudo-aleatria de nmeros para evitar tentativas de adivinhar os arquivos guardados no continer. O comando truecrypt --dismount /mnt desmonta o sistema de arquivos. bem mais difcil montar automaticamente os contineres do Truecrypt durante a inicializao do que os do DM-Crypt, por exemplo. Seria necessrio gravar seus prprios scripts para criptografar o diretrio /home. O Pamscript [11] poderia ser til nisso, para rodar scripts durante a autenticao pelo PAM (Pluggable Authentication Modules). O Truecrypt sofre de um problema fundamental, comum a mdulos externos do kernel: se o mdulo externo no funcionar logo aps uma atualizao de kernel, os usurios cam incapazes de acessar seus dados.

parties como contineres. O primeiro mtodo mais popular entre os usurios. Os desenvolvedores do nfase possibilidade de o usurio negar plausivelmente a existncia de arquivos criptografados. O Truecrypt tenta fazer isso usando um continer preparado que no d margem a especulaes sobre criptografia. O software preenche o continer com lixo aleatrio, e insere no final da shell um continer interno como bonecas russas (figura 2). Com o lanamento da verso 4.2 do Truecrypt, esse programa de cdigo aberto, desenvolvido originalmente para o Windows, introduziu o suporte criao de arquivos criptografados no Linux. O passo inicial, antes disso, s era possvel no Windows. O programa no nega suas origens, e o porte para Linux ainda est incompleto. Por

exemplo, ele no possui a interface a que os usurios de Windows esto acostumados. A documentao para esse sistema muito boa e abrangente, mas os usurios de Linux tm que se contentar com uma sucinta pgina de manual.

Os usurios tm maior probabilidade de serem desestimulados pelo uso complicado, comeando pela instalao. A pgina do projeto mostra vrios pacotes pr-compilados para distribuies de Linux comuns, mas a maioria deles falhar se voc atualizar seu kernel. Embora o changelog alegue no haver necessidade de recompilar o pacote dentro de uma mesma verso do kernel, alguns passos manuais so necessrios no Ubuntu 6.06, por exemplo. De um ponto de vista criptogrfico, o Truecrypt o programa mais sofisticado e profissional de todos os candidatos testados. Ele vem com uma til documentao, e baseado em padres como a funo de gerao de chaves PBKDF2, assim como o modo LRW (veja o quadro LRW) para a cifragem baseada no setor. O Truecrypt o nico programa com padres seguros, e o software verifica valores de retorno de funes, alertando o usurio em caso de erros. A nica desvantagem do Truecrypt foi o fato de os desenvolvedores manterem o modelo de segurana Rumpelstiltskin e disfararem o continer como uma coleo de lixo digital. Eles levam essa abordagem to a fundo que fazem o Truecrypt iniciar um ataque de fora bruta contra o cabealho do volume, ao tentar acessar os dados no continer. Apesar de a senha ser conhecida, o Truecrypt precisa tentar todos os algoritmos de hash e cifragem at encontrar dados teis. Isso nos deixou com uma impresso desnecessariamente ambgua: o programa convincente, e os programadores realmente sabem o que esto fazendo. Por outro lado, os desenvolvedores so teimosos em relao a propriedades de segurana controversas.

Volume padro

Cabealho

Espao ocupado Dados ocultos

Volume oculto

Cabealho do volume oculto

Figura 2 Um continer Truecrypt sem (acima) e com (abaixo) um volume oculto.

Linux Magazine #25 | Novembro de 2006

33

CAPA | Sistemas de arquivos

O Crypto-FS [16] o sistema de arquivos mais simples que investigamos. Ele um sistema de arquivos baseado no LUGS, mas agora tambm roda sobre o FUSE (veja o quadro Sistemas de arquivos no espao do usurio). Como nenhuma das grandes distribuies disponibilizava um pacote para o Crypto-FS no momento da confeco deste artigo, alguns passos manuais so necessrios. Diversas dependncias devem ser satisfeitas: devem ser instalados os pacotes de desenvolvimento do FUSE ou LUFS, a Libgcrypt [17] verso 1.1.44 ou mais recente, e a Glib [18] verso 2.6 ou mais nova. Seguindo o padro ./configure && make && make install, talvez voc queira adaptar a configurao de exemplo fornecida ( cryptofs.conf) s suas necessidades, armazenando-a no arquivo .cryptofs no diretrio onde sero guardados os arquivos criptografados. Na primeira vez que voc fizer isso, o Crypto-FS pedir uma senha. H duas formas de iniciar a ferramenta: a tpica do FUSE, usando um binrio separado chamado cryptofs, ou usando o mdulo do LUFS com lufsmount:

Crypto-FS

Sistemas de arquivo no espao do usurio


A introduo dos sistemas de arquivo baseados no espao de usurio, LUFS (Linux Userland Filesystem [12]) e o recente FUSE (Filesystem in Userspace [13]), levou a vrios projetos derivados interessantes, que nunca teriam conseguido chegar ao kernel por mrito prprio. Por exemplo, o GmailFS [14] e o FTPFS [15] oferecem aos usurios a possibilidade de utilizar o servio de email do Google ou um servidor FTP como se fossem diretrios locais. Parece lgico integrar a funcionalidade da criptograa de forma semelhante (gura 3). Isso oferece vantagens em comparao com solues baseadas no kernel: Sistemas de arquivos que residem no espao do usurio atuam como ltros e facilitam o armazenamento seguro dos dados em locais fora do controle do usurio. Por exemplo, o usurio de um servidor poderia guardar dados criptografados em um servidor FTP do provedor dedicado a processos de becape. Sistemas de arquivos do espao do usurio funcionam no nvel do arquivo. Diferentemente de seus equivalentes menos exveis baseados em contineres, eles usam o sistema de arquivos existente e adaptam-se a seu tamanho. Como arquivos criptografados e seus respectivos metadados cam guardados diretamente no sistema de arquivos, as ferramentas de becape detectam com facilidade os arquivos modicados, e s processam estes. Por outro lado, a visibilidade dos metadados a maior desvantagem dessa soluo. Um usurio com acesso ao sistema de arquivos automaticamente sabe o nmero de arquivos criptografados, suas permisses e seu tamanho aproximado (a 8 ou 16 bytes). Dependendo do sistema e da congurao, at os nomes de arquivos poderiam car visveis como texto limpo.

cryptofs -r /home/chris/.cryptofs /home/chris/cryptofs lufsmount cryptofs://home/chris/.cryptofs /home/chris/cryptofs

EncFS / CryptoFS

Operao de leitura e escrita

libfuse

glibc

glibc

VFS (Sistema de arquivos Virtual)

FUSE
XFS

Figura 3 Criptograa com um sistema de arquivos do espao do usurio: a Glibc passa as operaes de leitura e escrita atravs do kernel, ou a seu VFS (sistema de arquivos virtual), para ser mais preciso. O mdulo do FUSE se comunica com sua contraparte do espao do usurio.

O caminho absoluto vital, pois, caso no seja especicado, o mount apontar para um buraco negro. Para dar aos atacantes o mnimo possvel de informao sobre os arquivos criptografados, o Crypto-FS passa uma cifragem Base-64 sobre os nomes de arquivos antes de guardlos. Porm o tamanho do arquivo ainda ca visvel. O Crypto-FS criptografa arquivos individuais com um algoritmo escolhido pelo usurio, normalmente AES em modo CBC. O programa tem sua prpria abordagem para gerar o IV. Aps converter a senha do usurio para uma chave de criptograa, ele criptografa um buffer com bytes nulos para tirar n valores para o IV. Para cada ensimo bloco de arquivos, o Crypto-FS utiliza o vetor de inicializao com o nmero n. Como o nmero de blocos de arquivos facilmente exceder n em aplicaes prticas, os sistemas de arquivos usam cada IV vrias vezes um erro fatal em criptograa. Os desenvolvedores esto satisfeitos com o uso de uma nica chamada a uma funo hash, normalmente SHA1, para transformar a senha em uma chave, e at fazer isso sem um salt. Isso torna o programa suscetvel a ataques de dicionrio. Para combater isso, o programa no verica valores de retorno de funes. Se uma funo que processa chaves ou criptografa dados por acaso falhar, o Crypto-FS simplesmente continua funcionando com uma chave em branco, ou simplesmente passa a ela os dados de texto limpos.

34

http://www.linuxmagazine.com.br

Sistemas de arquivos | CAPA

Exemplo 3: Criao de um sistema de arquivos Truecrypt


01 02 03 04 05 06 07 08 09 10 11 Volume type: 1 Enter file or device name for new volume: /home/chris/truecrypt/teste Filesystem: FAT Enter volume size (bytes - size/sizeK/sizeM/sizeG): 100M Hash algorithm: 1 Encryption algorithm: 1 Enter password for new volume /home/chris/truecrypt/teste: Re-enter password: Enter keyfile path [none]: truecrypt /home/chris/truecrypt/teste /mnt

Exemplo 4: Enc-FS
01 02 03 04 05 06 07 Directory /home/chris/.encfs does not exist, create (y,n)? Directory /home/chris/encfs does not exist, create (y,n)? Creating new encrypted volume. Please choose from one of the following options: enter x for expert configuration mode, enter p for pre-configured paranoia mode, anything else, or an empty line will select standard mode.

O Enc-FS [22] outro sistema de espao do usurio baseado no moderno FUSE (Filesystem in Userspace, [13]), que se tornou parte do kernel na verso 2.6.14. As verses atuais do Enc-FS precisam pelo menos do FUSE 2.5 e do Rlog [23]. O Enc-FS depende do OpenSSL para ns de criptograa. O uso bsico realmente simples. Quando voc digita o comando encfs ~/.encfs ~/encfs, o programa pede para voc fornecer as opes mostradas no exemplo 4. Se um dos diretrios, ou ambos, estiverem faltando, o Enc-FS os criar para voc (linhas 1 e 2). Na primeira execuo, o sistema cria um arquivo .encfs5 no diretrio de origem com a informao necessria para cifrar os arquivos armazenados nesse diretrio. Quando voc zer becape de seus dados, no se esquea de incluir esse arquivo. O Enc-FS oferece as opes de operar em modo padro ou em modo paranico. O primeiro utiliza o algoritmo Blowsh

Enc-FS

com um comprimento de chave de 160 OpenSSL. Se voc preferir deixar os nomes bits, e criptografa os nomes dos arquivos. de arquivos sem criptograa, o programa O software processa blocos de 512 bytes oferece as opes para isso. durante o procedimento de criptograDiferentemente do Crypto-FS, o a, associa os vetores de inicializao, Enc-FS possui vrias funes teis que e inicializa os cabealhos dos arquivos tornam o sistema mais fcil e seguro separadamente. de usar. Uma montagem Enc-FS pode O modo paranico promete mais se- ser desmontada automaticamente aps gurana atravs do uso de AES com um um perodo de tempo pr-denido. Essa tamanho de bloco de 512 bits. Alm dos opo muito til em combinao com passos executados pelo modo padro, o a integrao ao PAM [24]. E o Enc-FS Enc-FS paranico armazena todos os consegue car em p de igualdade com blocos com um checksum para detectar seus concorrentes em relao escolha modicaes nos dados. Alm desse re- da plataforma: a verso 1.3 ou mais nova curso do checksum, o nome do arquivo do software est disponvel para o Free includo no vetor de inicializao para BSD, e tambm existe um porte para o contedo. Renomear um arquivo, en- Windows em [25]. to, leva re-cifragem completa. Esse O Enc-FS cifra cada arquivo com um processo quebra hardlinks, causando algoritmo de bloco, como AES em modo problemas para programas como o Mutt CBC, por exemplo. Entretanto, devido a ou o Procmail. um erro de programao, o software usa Alm disso, o Enc-FS possui um modo CFB (Cipher Feedback) em vez de CBC. expert que permite que os usurios sele- Cada setor de 512 bytes contm 504 bytes cionem suas prprias conguraes a de dados e um HMAC (hashed MAC) partir de uma lista de todos os algoritmos de 8 bytes do texto limpo.

Exemplo 5: Cdigo do Enc-FS


01 void CipherV3::randomize( unsigned char *buf, int len ) const 02 { 03 memset( buf, 0, len ); 04 if(RAND_bytes( buf, len ) == 0) 05 { 06 char errStr[120]; 07 unsigned long errVal = 0; 08 if((errVal = ERR_get_error()) != 0) 09 { 10 rWarning(openssl error: %s, ERR_error_string( errVal, errStr )); 11 } 12 } 13 }

Linux Magazine #25 | Novembro de 2006

35

CAPA | Sistemas de arquivos

Em vez de apagar o HMAC, o Enc-FS realiza uma operao booleana do tipo XOR (ou exclusivo) sobre os dados. O valor resultante dessa operao tambm usado como vetor de inicializao. Se um nico bit do texto limpo daquele setor mudar, o IV e conseqentemente todo o setor cifrado tambm tm que mudar. O Enc-FS protege os nomes dos arquivos primeiro criptografando-os e depois armazenando uma verso codicada por Base-64. Mais uma vez, o programa usa como IV um HMAC derivado do nome do arquivo. Para impedir que arquivos com nomes iguais retornem textos cifrados idnticos, o Enc-FS usa o caminho absoluto para calcular o MAC. O modo de criptograa um complexo de faa-voc-mesmo. O programa inicia realizando XOR em todos os bytes com o byte seguinte. Se o tamanho do setor for igual ao do bloco do algoritmo, o Enc-FS ento criptografa o setor inteiro em modo CBC. Se no, ele usa CFB. Isso parece um erro de programao, pois o CBC, que mais seguro, seria prefervel quando o volume de dados fosse um inteiro mltiplo do tamanho do bloco. O setor sempre ser maior que um bloco de criptograa, e portanto o CBC nunca usado. O Enc-FS ento inverte a ordem dos bytes em cada seo de 64 bytes. Finalmente, ele efetua mais uma rodada de XOR e operaes de cifragem. Essa rodada obviamente feita

LRW
O modo de criptograa LRW [19], batizado em homenagem a seus criadores Liskov, Rivest e Wagner, um algoritmo manipulvel de cifragem de blocos estreitos. Ele resolve alguns dos problemas do modo CBC, sem o trabalho excedente proveniente de algoritmos manipulveis de blocos largos, e tambm no sofre com questes de patentes. O LRW no produz muito mais trabalho excedente que o CBC, e o algoritmo adequado para processamento paralelo no hardware. Alm de uma chave de criptograa, o LRW precisa de um valor de manipulao (outras operaes de criptograa referem-se a valores comparveis como salts). Assim como um salt, a manipulao no precisa ser secreta. Ela simplesmente garante que o texto cifrado diferente para cada valor de manipulao, mesmo que o texto limpo seja idntico. Portanto, ele converte um nico algoritmo de cifragem de blocos em uma famlia completa de algoritmos independentes. Para criptografar discos rgidos, bom usar o nmero do setor e a posio do bloco AES dentro do setor como o valor de manipulao. Isso o torna nico para cada bloco AES. Enquanto o CBC permite que blocos criptografados sejam movidos para uma posio diferente sem comprometer a capacidade de decifragem, ataques do tipo copiar-e-colar sobre LRW esto fadados a fracassar. Criptografar com uma manipulao e decriptografar com outra retorna somente lixo. A manipulao normalmente calculada como o nmero do setor vezes 32, mais o ndice dentro do setor. O fator 32 surge ao dividirmos 512 (o nmero de bytes por setor) por 16 (bytes por bloco AES). Simplicando, a manipulao o nmero do bloco AES, contando a partir do incio do dispositivo criptografado [20]. Quem j conhece o AES de outros contextos sabe de um problema prtico com o rascunho do modo LRW padro: h alguns anos, os 16 candidatos a AES tinham seis variaes de ordem para os 128 bits de entrada e sada. O LRW une o caos. O modo de criptograa AES-GCM (Galois/Counter Mode [21], usado no padro de WLAN 802.11) e o LRW interpretam as ordens de bits e bytes no bloco de formas diferentes (Big-Endian e Little-Endian). O resultado computacionalmente caro desse engano organizacional: o GCM interpreta os dados como Little-Endian, e ento tem que inverter a ordem dos 128 bits no bloco. Como o GCM bastante difundido, por exemplo em hardware para WLAN, esses dois modos so mutuamente exclusivos, de forma geral. Ainda no se descobriu qual modo vencer no m do dia. Dos candidatos testados neste artigo, somente o Truecrypt usa o modo LRW. Enquanto trabalhava com o Cryptsetup-LUKS para o DM-Crypt, Clemens Fruhwirth escreveu um patch [7] para o LRW, e tentou fazer com que fosse aceito no kernel no incio de 2005. Infelizmente, isso no funcionou, devido a conitos tcnicos com o gerenciamento de memria.

Figura 4 O benchmark Bonnie++ mostra que a criptograa afeta o desempenho de leitura e escrita. O Loop-AES mostra o melhor desempenho de gravao de caracteres, mas o DM-Crypt l os blocos mais rpido. O Truecrypt quase vence na leitura de blocos. O Enc-FS incrivelmente rpido para um sistema de arquivos no espao do usurio.

para atingir o mesmo efeito de mascaramento de dados que um algoritmo de blocos largos, mas no oferece a mesma segurana criptogrca, embora as operaes sejam igualmente caras em termos de CPU. A transformao de senhas ocorre sem um salt no Enc-FS, e limitada a 16 operaes de hashing. Mil ou duas mil operaes so consideradas o mnimo para evitar ataques de dicionrio. Assim como muitos competidores, o Enc-FS nem se preocupa em vericar valores de retorno das funes. Se algo der errado, os dados permanecero sem criptograa. Mesmo as partes do cdigo que conferem o valor de retorno cometem erros srios. Em vez de se assegurar de que a operao tenha sido executada corretamente, o programa por padro supe que tudo tenha sado certo, e s verica algumas das possveis condies de erro. Se a funo falhar com um valor de retorno inesperado, o Enc-FS ignora o erro e continua despreocupadamente.

36

http://www.linuxmagazine.com.br

Sistemas de arquivos | CAPA

Velocidade

Mais Informaes
[1] Loop-AES: http://loop-aes.sourceforge.net [2] Crosscrypt: http://www.scherrer.cc/crypt/ [3] Readme do Loop-AES: http://loop-aes.sourceforge.net/loop-AES.README [4] Util-linux: ftp://ftp.kernel.org/pub/linux/utils/util-linux/ [5] DM-Crypt: http://www.saout.de/misc/dm-crypt/ [6] Cryptsetup-LUKS: http://luks.endorphin.org/dm-crypt [7] Clemens Fruhwirth e Markus Schuster, Mensagem secreta DMCrypt, LUKS e Cryptsetup, Linux Magazine 12/05, pg. 64

Pedimos que todos os sistemas de arquivos testados mostrassem seu desempenho em um benchmark. Nossa mquina de testes era um IBM Thinkpad T40p com 1,5 GB de RAM e um disco rgido Hitachi de 7200 RPM. Os valores foram medidos no Ubuntu 6.06 LTS com o Bonie++ [26], com conjuntos de dados de 3 GB. O XFS foi o sistema de arquivos no continer criptogrco em todos os casos. Os resultados, mostrados na gura 4, demonstram claramente a queda de desempenho causada pela criptograa. Apesar de s atingir a metade da velocidade normal, o sistema de arquivos DM-Crypt mostra velocidades de gravao e leitura razoavelmente constantes, com seu ponto forte sendo as operaes sobre blocos. O desempenho de escrita do Truecrypt ruim; ele no alcana nem o desempenho da ferramenta de espao de usurio do EncFS. Mas rpido em operaes de leitura, quase alcanando o DM-Crypt. O Loop-AES o candidato mais rpido para operaes de leitura e escrita em caracteres, apesar de perder para o DM-Crypt em operaes sobre blocos. Para um sistema no espao do usurio, o Enc-FS se sai razoavelmente bem, sendo seus pontos fortes a leitura e a escrita de blocos. Entretanto, arquivos pequenos o fazem cair para o nvel do Truecrypt, com desempenho de leitura especialmente baixo. O sistema de arquivos Crypto-FS ca em ltimo no grupo, alcanando s um tero do desempenho de um sistema de arquivos no criptografado.

[8] Free OTFE: http://www.freeotfe.org [9] LUKS para as massas: http://luks.endorphin.org/masses [10] Truecrypt: http://www.truecrypt.org [11] Pamscript: http://linux.bononline.nl/linux/pamscript/01/build.html [12] LUFS: http://lufs.sourceforge.net/lufs/ [13] FUSE: http://fuse.sourceforge.net [14] Gmail-FS: http://richard.jones.name/google-hacks/ gmail-filesystem/gmail-filesystem.html [15] FTPFS: http://ftpfs.sourceforge.net [16] Crypto-FS: http://www.reboot.animerc.de/cryptofs/ [17] Libgcrypt: ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt [18] Glib: http//www.gtk.org [19] Moses Liskov, Ron Rivest e David Wagner, Tweakable Block Ciphers: Proceedings
of Crypto 2002, Spinger-Verlag, Lecture Notes in Computer Science N. 2442

[20] Clement Kent (Editor), Draft Proposal for Tweakable Narrow-block


Encryption: IEEE P1619 Working Group, 6 de Agosto de 2004

[21] Morris Dworkin, Recommendation for Block Cipher Modes of Operation


Galois/Counter Mode (GCM) for Condentiality and Authentication, NIST Special Publication 800-38D: http://csrc.nist.gov/publications/

A maioria dos sistemas de arquivos criptografados no Linux deixa um gosto amargo na boca do usurio. Eles tropeam em armadilhas criptogrcas, e suas implementaes geralmente contm diversos erros (erros tpicos: falha ao vericar valores de retorno de funes). A exceo positiva do grupo foi o Truecrypt um programa originalmente desenvolvido para o Windows e que no se integra bem ao Linux, pelo menos por enquanto. O DM-Crypt na variante LUKS do Cryptsetup ca em segundo lugar. Seu desempenho bom, e demonstra menos erros criptogrcos que os outros concorrentes, pressupondo que o usurio opte por uma congurao segura. As conguraes padro so desnecessariamente inseguras. E decepcionante que o patch do LRW no tenha chegado ao kernel.

Cad a carne?

drafts/Draft-NIST_SP800-38D_Public_Comment.pdf [22] Enc-FS: http://arg0.net/wiki/encfs [23] Rlog: http://arg0.net/wiki/rlog [24] Pam_encfs: http://hollowtube.mine.nu;wiki/index.php?n=Projects.PamEncfs [25] Enc-FS para Windows: http://www.crc32.net/encfs [26] Bonnie++: http://www.coker.com.au/bonnie++/ [27] RFC 2898, PKCS #5 Password-Based Cryptography Specication Version 2.0: http://tools.ietf.org/html/rfc2898

Os autores
Christian Ney administrador de rewalls e sistemas Unix de uma empresa area regional, e tambm oferece consultoria sobre segurana e alta disponibilidade para mdias empresas. Peter Gutmann trabalha para o Departamento de Cincia da Computao da Universidade de Auckland, Nova Zelndia. Ele est envolvido no projeto e anlise de arquiteturas criptogrcas de segurana, co-autor do PGP e j publicou diversos artigos e RFCs sobre segurana e criptograa. Peter Gutmann tambm autor do conjunto de ferramentas de cdigo aberto Cryptlib, e de Cryptographic Security Design and Verication (Springer, 2003).

Linux Magazine #25 | Novembro de 2006

37

Tutorial: Criptograa de discos rgidos com DM-Crypt e LUKS

O disco todo
CAPA
Criptografar um diretrio home fcil. Criptografar seu disco rgido inteiro, incluindo a partio raiz, d um pouco mais de trabalho. por Michael Nerb

B ra

ndo

lin nB

b ken

er g

w -w

x w.s

c.h

riptografar sistemas de arquivos vamos mover o /boot para uma mdia /boot precisa estar em uma partio no individuais no difcil; na ver- externa um pendrive, no caso. Para ini- criptografada s dele. dade, algumas distribuies at cializar a partir do pendrive, precisaremos Neste artigo, usamos DM-Crypt [1] permitem que voc criptografe diretrios modicar as conguraes da BIOS e do para nossa criptograa de sistema de ardurante a prpria instalao. Mas crip- gerenciador de inicializao GRUB. O quivos. O DM-Crypt costuma ser a opo tografar o diretrio home de seu laptop pendrive depois cria uma outra camada preferida para criptografar sistemas de um trabalho incompleto. Invasores de segurana, pois funciona como uma arquivos desde o kernel 2.6.4. Ele usa a e bisbilhoteiros ainda conseguem tirar chave que o ladro precisar obter para infra-estrutura do mapeador de disposimuitas concluses a partir dos arquivos conseguir acessar os dados do laptop. Se tivos (Device mapper) [2], e criptografa de registro e de congurao. Se voc qui- essa soluo lhe parecer pouco prtica, dispositivos de blocos transparentemente, ser segurana real atravs da criptograa, voc pode manter a partio de inicia- baseando-se na Crypto API do kernel para precisa proteger todo o disco rgido contra lizao em seu disco rgido. Porm, o isso. O Linux Unied Key Setup (LUKS) a espionagem uma coisa que nenhuma distribuio faz por padro. As coisas comeam a car mais complexas se voc precisar proteger o sistema de arquivos raiz. Nem o Suse nem o Debian oferecem ferramentas para ajudar o usurio a criptografar o sistema raiz durante a instalao (ou depois). Isso signica que necessrio arregaar as mangas e fazer algumas conguraes na unha. Neste tutorial, comearemos instalando um sistema Linux padro, e ento prosseguiremos com a criptograa dos sistemas de arquivos existentes, um de cada vez. Terminaremos apagando a partio desprotegida e usando o espao para outras tarefas, como, por exemplo, mudar o diretrio /home para uma partio criptografada s dele. Nosso objetivo criptografar o disco rgido inteiro (com exceo da tabela de parties no Registro Mestre de InicialiFigura 1 Inicializao por um pendrive cada BIOS faz da sua forma. Nossa BIOS de exemplo zao, ou MBR). Como no possvel encontra os dispositivos removveis e um dispositivo genrico de armazenamento. criptografar a partio de inicializao,

38

http://www.linuxmagazine.com.br

Discos rgidos | CAPA

Quadro 1: Apagando dados com segurana


Sempre que arquivos so apagados pelo rm, o Linux simplesmente apaga seus respectivos inodes no diretrio. Os dados permanecem no disco e podem ser restaurados com pouco esforo. Reformatar com um mkfs no sobrescreve a partio. Para deletar os dados permanentemente, necessrio modicar ativamente a magnetizao dos setores de forma adequada. O modo mais fcil de fazer isso com um comando como dd if=/dev/zero of=/dev/hda. Mas assim como uma chuvinha normal no encobre todos os buracos no cho, alguns resduos de magnetizao ainda permanecem depois de sobrescrever o espao com zeros. Um agressor com o equipamento certo conseguiria reconstituir os dados originais. Uma soluo que demanda mais tempo, porm bem mais segura, usar o /dev/urandom em vez do /dev/zero. Dependendo do seu nvel de parania, voc pode fazer isso entre trs e 35 vezes [5] para ter alguma certeza de que apagou os dados para sempre. As ferramentas shred e wipe [7] ajudam nisso. Entretanto, tenha em mente que elas pressupem algumas condies bsicas que podem no se aplicar em sistemas RAID, sistemas de arquivos com journal (como ReiserFS, Ext3 e XFS), ou alguns drivers de discos rgidos e componentes de rmware que fazem um buffer dos dados e realizam mltiplas operaes de escrita de uma vez s. Para ter certeza absoluta, seria necessrio destruir o disco rgido e jog-lo em algum lugar onde ele nunca seria encontrado. Mas voc pode economizar esse trabalho todo implementando os mecanismos descritos neste artigo, e depois simplesmente esquecendo as senhas.

Iniciando por um pendrive


O Linux normalmente detecta pendrives como dispositivos SCSI conferindo-lhes endereos da mesma forma (/dev/sda, por exemplo). Use o fdisk para criar uma tabela de parties com no mnimo uma partio, e formate a partio (mkfs.ext2 /dev/sda1). Depois faa:
mount /dev/sda1 /mnt cp -ax /boot/* /mnt

acrescenta algumas melhorias, discutidas na Linux Magazine 15, de dezembro de 2005 [3]. O projeto do LUKS implementado sob a forma da ferramenta de congurao cryptsetup-luks [4]. Uma alternativa instalao do zero a modicao de um sistema existente, presumindo que voc tenha suciente espao livre no disco para criar uma nova partio para os dados que est criptografando. No se preocupe! Depois que voc terminar de criptografar, os patches de disco e atualizaes de kernel no devem causar qualquer problema, e as suas ferramentas de backup e recuperao devem funcionar como sempre.

(Se voc preferir no inicializar a partir de um pendrive, utilize a sugesto alternativa de particionamento mostrada na coluna 2 da tabela). Especique o tamanho e o nmero de parties de acordo com o disco do seu laptop e seu uso conguraes de dual boot so possveis. No crie um usurio title Suse Linux 9.3 (USB-Boot) kernel (hd0,0)/vmlinuz root=/dev/hda4 nessa fase da instalao; voc poder fazer initrd (hd0,0)/initrd isso depois, no sistema criptografado. Depois de completar a instalao, voc j deve ter um sistema Linux funPor ltimo, execute grub-install -cional em /dev/hda4. Se voc tiver um root-directory=/mnt /dev/sda para instalar kernel de verso mais antiga que 2.6.11 o GRUB na MBR de seu pendrive. Se (com o Debian Sarge, por exemplo), tudo funcionar, voc pode inicializar o ser necessrio atualizar o kernel agora. laptop atravs do pendrive para isso, Para os prximos passos, tambm ser congure a ordem de inicializao da necessria a ferramenta de congurao BIOS para inicializar o computador a cryptsetup-luks. partir de mdias externas primeiro. O quadro 2: Atualizaes para o Debian O equipamento necessrio para esse la- Sarge descreve como atualizar um sisteboratrio um laptop apropriado, um ma Sarge; no Suse Linux, voc s precisa pendrive de mais ou menos 64 MB e a instalar o cryptsetup-luks. A pgina do sua distribuio de Linux preferida (com LUKS [4] oferece uma verso esttica kernel 2.6.11 ou mais recente) ns testa- pr-compilada que pode ser copiada para Por motivos de segurana, alterne para o mos as verses do Suse Linux 9.3 e 10.0, /sbin/cryptsetup-luks. modo single user ou ento feche todos os alm do Debian Sarge. Verique na BIOS programas desnecessrios, pare todos os do laptop se ele suporta a inicializao por USB (gura 1). Use um Live CD Tabela 1: Particionamento para garantir que o Linux suporta seu laptop; talvez voc queira aproveitar essa Inicializao pelo pendrive Alternativa: pelo HD Contedo oportunidade para apagar todo o conte- /dev/hda1 Partio de inicializao /boot do do disco do laptop (veja o quadro 1: Partio Estendida /dev/hda2 Apagando dados com segurana). Partio swap criptografada /dev/hda1 /dev/hda5 Para a instalao inicial, divida o /dev/hda2 /dev/hda6 Sistema de arquivos /tmp criptografado disco rgido em quatro parties, con- /dev/hda3 Sistema de arquivos raiz criptografado /dev/hda7 forme mostrado na coluna 1 da tabela 1. /dev/hda4 Sistema de arquivos raiz no cripto/dev/hda8 Essa congurao aloja uma verso no grafado (a ser apagado depois) criptografada do sistema Linux em /dev/

hda4.

Isso copia o diretrio /boot para o pendrive. Se ele ainda no existir, use o comando ln -s . boot para criar um link simblico no diretrio /mnt, para evitar algum problema com o grub-install mais tarde. Agora modique a congurao do carregador de inicializao GRUB no pendrive: o arquivo /mnt/grub/device.map informa como o GRUB mapeia os nomes de dispositivos da BIOS e do Linux; necessria uma entrada (hd0) /dev/sda. Mude as entradas dos nomes de dispositivos de (hd0,3) para (hd0,0) (isso corresponde a /dev/sda1) no arquivo de congurao /mnt/grub/menu.lst:

Preparao

Criptografando parties

Linux Magazine #25 | Novembro de 2006

39

CAPA | Discos rgidos

Quadro 2: Atualizaes para o Debian Sarge


Para preparar o Debian Sarge para criptografar a partio raiz, termine a instalao e depois adicione o seguinte aos fontes do Apt (lembrando de comentar todas as outras fontes no /etc/apt/sources.list): deb http://http.us.debian.org/debian unstable contrib main Em seguida, rode apt-get update e apt-get install -f para atualizar a base de dados de pacotes, e ento faa assim: apt-get install yaird linux-image-2.6.17-2-686 apt-get install cryptsetup Isso instala uma verso atual do kernel, do cryptsetup e do yaird, uma ferramenta para criar discos RAM de inicializao (como o mkinitrd). (Note que o nmero da verso da imagem do kernel pode ter mudado desde a publicao deste artigo a verso 2.6.17-1 estava disponvel nos servidores quando esses testes comearam). Agora inicialize o computador com o novo kernel.

sitivos de loop. No Suse, recomenda-se utilizar um script do init.d para ativar o /tmp e a swap. Um script de shell que faz isso sozinho (cryptfs), e baseado em [8], est disponvel no site da Linux Magazine [9]. Depois de baix-lo (em /etc/init. d/), crie links simblicos em /etc/rcX.d para chamar o script nos runlevels apropriados. Por ltimo, apague a linha da partio swap anterior, no criptografada, do arquivo /etc/fstab.

servios que no sejam essenciais e feche Em ambos os casos, o cryptsetup-luks todas as sesses de usurios. utiliza senhas aleatrias do /dev/urandom; as Utilizaremos o sistema Linux recm- senhas residem na memria principal do instalado para criptografar as parties laptop e desaparecem quando voc o desliga. do laptop passo a passo; as parties Como ningum sabe as senhas, os dados em questo so /dev/hda1 a /dev/hda3. A guardados na swap e no /tmp so irrecupepartio /dev/hda4, que est abrigando o rveis, mas justamente essa a inteno. A sistema de arquivos raiz agora, no ser swap contm despejos (dumps) de memmais necessria depois. Pode-se recicl- ria e reiniciada sempre que voc liga seu la e criar uma partio para o diretrio computador. No h qualquer benefcio em manter a swap legvel; pior ainda, exis/home se voc quiser. Os passos bsicos (veja o quadro 3: tem vrios riscos de segurana nisso. Cada distribuio tem sua prpria soluo para Device mapper, DM-Crypt e Cryptsetup) so sempre os mesmos: use o cryptsetup- lidar com arquivos temporrios. Como reluks para criar um dispositivo de blocos gra, os programas no devem contar com a virtual com criptografia AES integrada, sobrevivncia dos dados armazenados no e mape-lo em um dispositivo de blocos /tmp a uma reinicializao. adequado (no disco rgido do laptop). Enquanto isso, voc precisar entrar uma senha que o programa usar para criar a chave simtrica. A chave ento usada para a criptografia dos dados. Finalmente, formate o dispositivo de Recomenda-se recriar esses sistemas de blocos virtual com um sistema de ar- arquivos toda vez que voc ligar a mquivos, e depois monte-o. quina. O Debian torna isso bem fcil: simplesmente especique o parmetro CRYPTDISKS_ENABLE=Yes em /etc/defaults/cryptdisks (caso ainda no esteja A partio swap e o diretrio /tmp so especicado), e adicione o seguinte a candidatos teis para nossos primeiros /etc/crypttab: experimentos com o cryptsetup-luks: eles contm dados temporrios e no causa- #<dispositivo alvo> <dispositivo fonte> <chave> <opes> riam grandes perdas em caso de erros. swap /dev/hda1 /dev/urandom swap O exemplo 1 mostra a seqncia de tmp /dev/hda2 /dev/urandom tmp comandos para ativar e desativar manualmente a criptograa da swap e do /tmp. Para a swap, deve-se congurar um Tambm necessrio modicar o dispositivo de blocos virtual /dev/mapper/ arquivo /etc/fstab; apague a entrada j swap usando o cryptsetup-luks, e depois existente da swap ou altere-a: inicializar o dispositivo com um mkswap e ativ-lo com o swapon. Da mesma forma, /dev/mapper/swap none swap sw,pri=1 crie outro dispositivo de blocos virtual, / 0 0 /dev/mapper/tmp /tmp ext2 defaults dev/mapper/tmp, formate-o com Ext2 com o 0 0 comando mkfs.ext2, e depois monte o dispositivo como /tmp. No Debian, substitua os comandos cryptsetup-luks por cryptseO Suse Linux tambm possui um tup ou crie um link apropriado. arquivo /etc/cryptotab, porm usa dispo-

Gerenciamento da raiz
Vamos reiniciar o computador, s para assegurarmos que o Linux crie e ative os sistemas de arquivos. Se tudo funcionar, podemos passar para a tarefa principal: criptografar o sistema de arquivos raiz. Ao contrrio do /tmp e da swap, o sistema de arquivos raiz permanente: isto , ele no recriado a cada reinicializao. A raiz criada uma vez e montada na inicializao. Precisamos de alguma funcionalidade estendida do LUKS (do cryptsetup-luks) nesse momento, e o procedimento um pouco diferente. Os parmetros a seguir criam um cabealho LUKS em /dev/hda3; o LUKS usa o algoritmo de criptograa AES, com um comprimento de chave de 256 bits, e especica uma senha:
cryptsetup-luks -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/hda3

Realmente temporrio

Aquecimento

Agora crie um dispositivo de blocos virtual, /dev/mapper/dm-root, que ser mapeado na partio /dev/hda3. O cryptsetup pedir a senha recm-congurada. Depois, prossiga formatando o dispositivo de blocos virtual (com Ext3 em nosso exemplo) e monte o dispositivo:
cryptsetup-luks luksOpen /dev/hda3 dm-root mkfs.ext3 /dev/mapper/dm-root mount /dev/mapper/dm-root /mnt

O sistema de arquivos recm-criptografado agora est montado em /mnt, e ainda est vazio. Ser necessrio inserir seu pendrive inicializvel nos prximos passos. Copie a instalao completa da partio /dev/hda4 para /mnt esse processo criptografa e guarda os dados em /dev/hda3. No copie os diretrios /boot, /lost+found, /proc, /sys, /tmp e /mnt. Os comandos para copiar so mais ou menos assim:

40

http://www.linuxmagazine.com.br

Discos rgidos | CAPA

cd /; cp -ax bin dev etc home lib media opt root sbin usr var /mnt/

Quadro 3: Device mapper, DM-Crypt e Cryptsetup


Assim como dispositivos de loop, a infraestrutura do device mapper [2] destaca dispositivos de blocos fsicos de dispositivos de blocos virtuais (gura 2). Essa virtualizao cria uma camada de abstrao que fortalecida por vrias aplicaes, sendo o DM-Crypt [1] s uma delas. O DM-Crypt criptografa transparentemente os dados passados pelo dispositivo de blocos virtual e armazena os dados no dispositivo de blocos fsico e vice-versa. O dispositivo de blocos fsico parece conter lixo necessrio fornecer a senha correta para montar um sistema de arquivos pelo dispositivo de blocos virtual, para ento conseguir utilizar os dados de alguma forma. A ferramenta de espao de usurio cryptsetup necessria para congurar o DM-Crypt; os dispositivos de blocos virtuais so congurados no diretrio /dev/mapper/. O cryptsetup-luks uma extenso do cryptsetup, e oferece melhorias, que discutimos em maiores detalhes em [3] mas, para resumir: P Uma chave aleatria usada para criptografar os dados; a chave armazenada no cabealho LUKS da partio criptografada com a chave gerada a partir da senha. Isso d ao administrador a possibilidade de mudar a senha sem precisar recriptografar toda a partio. P O uso de salting e stretching diculta os ataques de dicionrio sobre as senhas dos usurios. P O ESSIV (Encrypted Salt Sector IV) diculta ataques de marca dgua em modo de encadeamento de chaves em blocos (Cipher Block Chaining); esse recurso foi introduzido com o kernel 2.6.11.

A cpia talvez demore um pouco, pois dois a trs GB precisam passar pela camada de criptograa. Ao nal, voc ca com uma imagem do sistema de arquivos raiz de /dev/hda4 em /dev/hda3. Voc pode desmontar manualmente (umount /mnt; cryptsetup-luks luksClose dm-root), e remontar (crypt-setup-luks luksOpen
/dev/hda3 dm-root; mount /dev/mapper/dmroot /mnt) agora. Agora use o chroot para trabalhar

com o sistema criptografado. Comece congurando os pontos de montagem faltantes, e depois monte o pendrive como /boot.

chroot /mnt mkdir -p /boot /proc /sys /tmp /mnt mount -t proc proc /proc mount -t sysfs sysfs /sys mount /dev/sda1 /boot

Para permitir que o Linux inicie a partir do sistema de arquivos raiz criptografado, precisamos modicar o initrd conforme descrito a seguir. O programa cryptsetup-luks e os mSe voc agora tentasse iniciar a partir do pendrive, com o sistema de dulos de kernel necessrios precisam ser arquivos raiz ainda em /dev/hda3, ou / de-referenciados no initrd. dev/mapper/dm-root, no daria certo, pois O init deve carregar os mdulos do o programa init (que parte do initrd) kernel e montar o dispositivo de blocos no conseguiria lidar com o sistema virtual /dev/mapper/dm-root como sistema de arquivos raiz de forma alguma: a de arquivos raiz. partio /dev/hda3 pareceria conter s Dependendo do estado da integrao lixo, e o dispositivo virtual /dev/mapper/ do cryptsetup na sua distribuio, h didm-root ainda no existe. ferentes solues para isso.

O embrulho todo

O Debian Sarge oferece um suporte bastante til. Adicione os mdulos aes-i586 e sha256 ao /etc/mkinitd/modules (cada um em uma linha diferente); acrescente a seguinte linha ao arquivo /etc/crypttab j existente:
dm-root /dev/hda3 none luks,cipher-aes-cbc-essiv:sha256

Ramdisk no Debian

De forma parecida, mude o sistema de arquivos raiz em /etc/fstab para apontar para /dev/mapper/dm-root:
/dev/mapper/dm-root / ext3 defaults 0 1

Camada da aplicao

Ponto de montagem: /tmp Ext 2 Dispositivo de blocos lgico: /dev/mapper/tmp

Camada do Kernel

Camada do sistema de arquivos

descriptografado Camada de criptografia DM-Crypt

criptografado Camada do hardware

Dispositivo de blocos fsico: /dev/hda2

Disco Rgido

Figura 2 Acesso aos arquivos em vrias camadas a criptograa pelo LUKS acrescenta uma nova camada, que se localiza entre o sistema de arquivos lgico e o hardware (acesso ao disco rgido).

Linux Magazine #25 | Novembro de 2006

41

CAPA | Discos rgidos

Depois execute yaird -o /boot/initrd para criar um initrd funcional no pendrive. O yaird (yet another initrd) substitui a ferramenta mkinitrd padro, que no consegue lidar com sistemas de arquivos raiz criptografados no Debian.

No Suse Linux preciso acrescentar os mdulos de kernel necessrios dm-mod, dmcrypt, aes-i586, sha256 e ext3, usando o parmetro INITRD_MODULES do arquivo /etc/ sysconfig/kernel. (Os nomes dos mdulos devem estar separados por espaos). Mais alteraes so necessrias ao programa /sbin/mkinitrd: talvez voc queira criar uma cpia de segurana antes de continuar. Na funo mkinitrd_kernel, procure as linhas que copiam /sbin/ insmod para o ramdisk; dependendo da sua verso do Suse, eles podem ser um pouco diferentes. No Suse Linux 10.1, as linhas so assim:

Ramdisk no Suse

Figura 3 Depois de completar as operaes, voc deve ver trs sistemas de arquivos criptografados em /dev/maper e na tabela de montagens. Para apagar a informao em texto puro remanescente, crie uma partio /home criptografada no hda4. if ! cp_bin $initrd_insmod $tmp_mnt/sbin/insmod 2>/dev/null ; then error 5 no static insmod fi initrd (hd0,0)/initrd

Acrescente a seguinte linha imediatamente abaixo disso:


cp_bin /sbin/cryptsetup-luks $tmp_mnt/sbin/ 2>/dev/null || error 5 no static cryptsetup-luks

Quadro 4: Segurana bsica


Criptografar o disco rgido do seu laptop s uma camada de uma poltica de segurana muito mais abrangente e no substitui uma poltica de segurana, pois s protege os dados enquanto o computador estiver desligado. Se voc perder seu laptop aps digitar as senhas corretas e com uma sesso de usurio rodando Linux no sistema, um atacante conseguir obter o mesmo nvel de acesso que teria a uma mquina desprotegida. Esse alerta tambm se aplica a ameaas vindas da Internet, pressupondo que o laptop a acesse. Programas maliciosos obtm acesso irrestrito a seus dados assim que conseguem acessar o sistema. Em outras palavras, este tutorial no pode oferecer segurana absoluta; mas seguir essas regras pode mant-lo o mais seguro possvel: Guarde o laptop e o pendrive separadamente. Congure uma senha de inicializao e uma de supervisor na BIOS do laptop; s permita que o boot seja feito por um pendrive especco. Use senhas robustas, e mude-as em intervalos regulares. No trabalhe com privilgios de root se puder evitar. Use uma congurao pessoal restritiva de rewall. Use pelo menos um antivrus com assinaturas de vrus atualizadas. Congure um protetor de tela protegido por senha, e deixe-o entrar em ao automaticamente. Busque entradas suspeitas em seus arquivos de log regularmente. Busque e instale patches e atualizaes de segurana para todos os softwares que voc usa. Faa cpias de segurana de seus dados em intervalos regulares; mantenha os backups em um lugar seguro.

Na funo udev_discover_root, acrescente o seguinte como primeiro comando:


| echo Usando o dispositivo LUKS $rootdev. Digite a senha agora. | /sbin/cryptsetup-luks luksOpen /dev/hda3 dm-root

Reinicie o laptop. Assegure-se de que voc congurou o dispositivo USB como dispositivo de inicializao padro na ordem de inicializao da BIOS. O cryptsetup-luks agora pedir a senha para o sistema de arquivos raiz e, assim que voc responder com a senha certa, entrar na tela de login. Executar mount apaga qualquer resqucio de dvida (gura 3). Se isso no funcionar, tente iniciar sem o pendrive: voc ainda deve ter o sistema Linux no criptografado no disco rgido, e pode comear a resolver os problemas a partir daqui.

Depois, voc s precisa mudar a entrada para o sistema de arquivos raiz para /dev/mapper/dm-root (para o sistema de arquivos Ext3) em /etc/fstab. Finalmente, execute o comando /sbin/mkinitrd -o / boot/initrd para criar um novo ramdisk inicial no pendrive.

Antes de reiniciar, modique o arquivo /boot/grub/menu.lst em seu pendrive. Mude o parmetro root do kernel na entrada do menu que inicia o sistema Linux, fazendo-o apontar para o dispositivo de blocos virtual /dev/mapper/dm-root. Tambm ser necessrio modicar a entrada do initrd para /boot/initrd. Uma entrada tpica seria assim:
title Suse Linux 10.0 (USB-Boot, Raiz criptografada) kernel (hd0,0)/vmlinuz root=/dev/mapper/dm-root

Montagens

Se tudo isso funcionar, voc no precisar mais do sistema de arquivos raiz no criptografado do /dev/hda4. Apague os dados dessa partio e use o cryptsetup-luks para especicar outro sistema de arquivos criptografado chamado / dev/mapper/dm-home. Formate a partio e monte-a em /home. Depois, crie todos os usurios que precisar; seus diretrios home sero automaticamente criptografados em /dev/hda4. Uma desvantagem disso que swap criptografada e a suspenso para o disco so mutamente exclusivas portanto, certique-se de desativar o segundo (se existir, apague o parmetro do kernel resume=/dev/hda1 do /boot/grub/menu.lst.) O Suspend2 [6] uma alternativa que suporta a suspenso para o disco com uma partio swap criptografada; entretanto, isso signica aplicar patches e compilar o kernel ocial. Voc no precisar do pendrive enquanto o laptop estiver rodando,

Ajuste no

42

http://www.linuxmagazine.com.br

Discos rgidos | CAPA

contudo, essencial plug-lo para as atualizaes do kernel, pois o mkinitrd ou o yaird tentar instalar o novo initrd no pendrive. Para se manter seguro, faa uma cpia do pendrive antes de atualizar seu kernel, ou adicione uma entrada ao sistema funcional anterior na sua congurao do GRUB. O Kernel 2.6.13 sofreu algumas modicaes do Udev que podem impedir o initrd de funcionar como pretendido. O yaird no tem esse problema. Para car realmente seguro, crie um Live CD com suporte ao LUKS. Voc poder usar o CD para montar manualmente e fazer cpias de segurana das parties criptografadas. Os usurios do Suse devem tomar cuidado com as atualizaes que o YaST faz do mkinitrd. Faa backups das alteraes do LUKS ao script /sbin/mkinitrd e compare-as com a nova verso aps atualizar o mkinitrd.

Mais Informaes
[1] DM-Crypt:http://www.saout.de/ misc/dm-crypt [2] Pgina de recursos do Device mapper: http://sources.redhat.com/dm [3] Mensagem secreta, por Clemens
Fruhwirth e Markus Schuster, Linux Magazine 15, dezembro/2005, pg. 64.

[4] Linux Unied Key Setup (LUKS): http://luks.endorphin.org/ dm-crypt [5] Peter Gutmann, Secure Deletion of
Data from Magnetic and Solid-State Memory (em ingls):

http://www.cs.auckland.ac.nz/ ~pgut001/pubs/secure_del.html [6] Suspend 2: http://www.suspend2.net [7] Wipe Apagamento seguro de


arquivos:

http://wipe.sourceforge.net [8] Script Luksopen no wiki do DM-Crypt: http://www.saout.de/tikiwiki/ tiki-index.php?page=luksopen [9] Script de shell cryptfs: http://www.linux-magazine.com/ Magazine/Downloads/72/DM-Crypt [10] Clemens Fruhwirth: New Methods
in Hard Disk Encryption (em ingls):

Ao longo deste tutorial, criptografamos todo o disco rgido, exceto a MBR. O pendrive necessrio para inicializar. Isso oferece aos viajantes uma boa dose de segurana passiva. Mas ainda importante utilizarmos medidas comuns de segurana e proteo (veja o quadro 4: Segurana bsica).

Concluses

http://clemens.endorphin.org/ nmihde/nmihde-A4-ds.pdf

Exemplo 1: Criando a Swap e o /tmp


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 # swapoff -a # cryptsetup-luks -s 256 /dev/urandom create swap /dev/hda1 # ls -l /dev/mapper/ total 124 crw------- 1 root root 10,63 Apr 3 2006 control brw-r----- 1 root root 253,0 Apr 2 23:53 swap # mkswap /dev/mapper/swap Setting up swapspace version 1, size = 1019895 kB # swaoib /dev/mapper/swap # cat /proc/swaps Filename Type Size Used Priority /dev/mapper/swap partition 995988 0 -3 # swapoff /dev/mapper/swap # cryptsetup-luks remove swap # cat /proc/swaps # # cryptsetup-luks -s 256 -d /dev/urandom create tmp /dev/hda2 # mkfs.ext2 /dev/mapper/tmp mke2fs 1.36 (05-Feb-2005) [...] # mount /dev/mapper/tmp /tmp # ls -l /tmp/ total 17 drwx------ 2 root root 12288 Apr 2 23:55 lost+found # umount /tmp cryptsetup-luks remove tmp ls -l /dev/mapper total 124 crw------- 1 root root 10,63 Apr 3 2006 control

Linux Magazine #25 | Novembro de 2006

43

Queimando discos com um sistema de arquivos criptogrco

Escondendo o jogo
Um disco rgido criptografado no seu servidor no serve de nada se os dados condenciais de CDs ou DVDs carem nas mos erradas. Mostraremos algumas solues convenientes para criptografar seus dados em mdias removveis. por Matthias Jansen

CAPA

D av

G ide

u gl

ielm

w w

x w.s

c.h

alvez voc j armazene seus dados importantes em uma rea criptografada do disco rgido. Se voc ainda no faz isso, bom comear logo aps terminar de ler esta revista. Se voc usa seus dados tambm fora do trabalho e de casa, pode ser bom guardar uma foto deles num CD ou copiar seus arquivos para um pendrive. Mas importante preocupar-se com o risco de carregar seus dados com voc por a. Pendrives so usados exatamente como discos rgidos externos, ento proteger um pendrive com criptograa bastante fcil. Criptografar CDs e DVDs mais difcil, mas ainda h algumas opes. Este artigo explora duas teis tcnicas para armazenar dados criptografados num CD ou DVD. O jeito mais fcil de guardar dados criptografados num CD usar o GPG ou outra ferramenta semelhante para criptografar os arquivos individualmente

e guard-los normalmente na mdia. Essa soluo funciona com vrios aplicativos, e oferece um nvel adequado de segurana, mas os riscos aparecem quando se olha de perto. Um usurio conseguiria descriptografar manualmente o arquivo e guardar temporariamente o texto em um local gravvel. Como ambos os atos de cifrar e decifrar o arquivo por criptograa so feitos de forma casual, sem os benefcios de um sistema de arquivos criptografado para garantir a segurana, essa opo poderia resultar em vrias verses do arquivo separadas alguns criptografados e outros descriptografados. Alm da desvantagem das mltiplas rodadas de cifragem e decifragem, essa soluo tambm desperdia espao em disco. Uma soluo mais simples a de despejar o contedo do dispositivo de blocos criptografado em um disco tambm parece ser utilizvel. Infelizmente, par-

ties de menos de 8 GB (ou seja, que caberiam em um DVD de dupla camada) so raras hoje em dia. Portanto, necessrio distribuir a partio ao longo de diversos discos. Para ler a imagem, o usurio tem que juntar novamente os pedaos. Mais uma vez, essa soluo desperdia espao em disco, embora ao menos evite o problema de mltiplos ciclos de cifragem e decifragem. Este artigo examina outras duas solues para o problema da criptograa de CDs e DVDs. A primeira tcnica utiliza uma extenso criptogrca da ferramenta cdrecord. O outro mtodo usa o AES Pipe, uma ferramenta que oferece criptograa AES a uma corrente de dados arbitrrios. Essas tcnicas oferecem criptograa transparente para o acesso de leitura, e so quase to rpidas quanto um sistema de arquivos criptografado, embora no seja possvel modicar o CD depois.

Exemplo 1: Patch de criptograa


01 02 03 04 05 wget ftp://ftp.berlios.de/pub/cdrecord/cdrtools-2.01.tar.bz2 wget http://burbon04.gmxhome.de/linux/files/cdrtools-2.01-encrypt-1.0rc2.diff.gz tar xjvf cdrtools-2.01.tar.bz2 cd cdrtools-2.01 zcat ../cdrtools-2.01-encrypt-1.0rc2.diff.gz | patch -p1

44

http://www.linuxmagazine.com.br

CDs e DVDs | CAPA

Exemplo 2: OSS DVD e criptograa


01 02 03 04 05 06 07 wget ftp://ftp.berlios.de/pub/cdrecord/alpha/cdrtools-2.01.01a05.tar.bz2 wget http://www.crashrecovery.org/oss-dvd/cdrtools-2.01.01a05-ossdvd.patch.bz2 wget http://crashrecovery.org/oss-dvd/cdrtools-2.01.01a01-encrypt-1.0rc1.diff.gz tar xjvf cdrtools-2.01.01a05.tar.bz2 cd cdrtools-2.01.01 bzcat ../cdrtools-2.01.01a05-ossdvd.patch.bz2 | patch -p1 zcat ../cdrtools-2.01.01a01-encrypt-1.0rc1.diff.gz | patch -p1

A primeira soluo criptografa os dados 01 # mkisofs -J -R ~/dados/ | cdrecord dev=/dev/hda -encrypt -encstyle=old -encpass=<SENHA> diretamente enquanto grava a mdia 02 [...] com a ferramenta cdrecord. Maximi03 NOTE: this version of cdrecord is an inofficial (modified) release of lian Decker escreveu um patch [1] 04 cdrecord and thus may have bugs that are not present in the 05 original version. Please send bug reports and support requests to para o programa de gravao de CDs 06 <burbon04 at gmx.de>. For more information please see de Jrg Schilling para que ele supor07 http://burbon04.gmxhome.de/linux/CDREncryption.html. The original tasse essa forma de criptografia. O 08 author should not be bothered with problems of this version. trecho contido no exemplo 1 mostra 09 [...] como aplicar o patch. O executvel 10 Starting to write CD/DVD at speed 48 in real TAO mode for single 11 session. Last chance to quit; resultante permite que os usurios 12 starting real write 0 seconds. Operation starts. forneam uma chave para a sesso de 13 Turning BURN-Free off gravao atual. A ferramenta utiliza 14 Using aes-256-cbc encryption with plain password, plain IV. (e.g. criptografia AES de 256 bits em modo 15 cryptoloop >2.4.22, 2.6). CBC (veja o Glossrio). 16 [...] 17 Track 01: Total bytes read/written: 42958848/42958848 (20976 A verso GPL do cdrecord queima 18 sectors). CDs, mas no DVDs. So necessrios 19 # mount -t iso9660 /dev/cdrom /media/crypt -o encryption=aes256 dois patches para lidar com DVDs, e 20 # ls /media/crypt ambos devem ser modificados para a 21 cat.mpeg funny_cats.wmv verso 2.01.01a05 do cdrecord (do ramo 22 newsreportfromIraq.wmv 23 Karate_Beetle.avi German_Engineering_Arab_Technology.wmv alpha da ferramenta). 24 sexy_nutcracker.mpg O suporte a OSS DVD [2] acres25 felina_in_the_snow.mpg noteastgermany.mpg centa um recurso para gravar DVDs, 26 Languageproblems.mpg e um outro patch de criptografia, disponvel no mesmo servidor, oferece a ele a capacidade de criptografia Ela usa o CBC para combinar 16 desses (exemplo 2). Nos dois casos, o patch criptogrco es- pacotes e criar um bloco de 512 bytes, e A necessidade de aplicar patches tende a funo write_track_data() (gura depois para combinar quatro desses bloao cdrecord a nica desvantagem 1). Essa funo grava o buffer interno num cos para criar um de 2048 bytes, que o dessa soluo. A boa notcia para os CD ou DVD. O patch usa a implemen- cdrecord nalmente grava no CD. usurios do Gentoo Linux que eles tao GPL de AES feita pelo Dr. B. R. A restrio a unidades de 512 bytes s precisam ativar o termo USE on- Gladman [3] para cifrar dados, dividin- restringe a soluo ao modo 1 do CD, the-fly-crypt ao fazer o emerge de app- do-os em pacotes de 256 bits (32 bytes) que armazena blocos de exatamente 2048 cdr/cdrtools. cada, e aplicando uma chave de 256 bits. bytes. O modo 2 utiliza blocos de 2352

Rpido como um raio

Exemplo 3: Variante antiga

Gravao crptica

mkisofs

cdrecord

write_track_data()

-encrypt?

no sim enc_buf()

write_buf()

CD/DVD

Figura 1 Dependendo do parmetro -encrypt, a verso com patches do cdrecord passar os dados atravs de uma etapa de criptograa antes de grav-los no CD.

Pacotes necessrios
Forma de criptograa Debian cryptsetup loop-aes-utils, loop-aes-source Ubuntu cryptsetup loop-aes-utils, loop-aes-source Gentoo (USE-ag) old-crypt: util-linux, sys-fs/loop-aes sys-fs/cryptsetup crypt: utils-linux, sys-fs/loop-aes

CD-Record -encstyle=old CD-Record -encstyle=new


AES-Pipe

Linux Magazine #25 | Novembro de 2006

45

CAPA | CDs e DVDs

Imagem mkisofs aespipe tar, cpio aes_encrypt() dd Fita cdrecord CD/DVD

Figura 2 O AES Pipe criptografa uma corrente de dados da entrada padro e a envia sada padro, independentemente de qual programa a tenha criado. Dessa forma, possvel usar o AES Pipe para criar scripts que usem outros comandos de gravao de CD.

A soluo distingue entre dois estilos de Se o seu kernel for compatvel com DMchaves. A variante antiga utiliza a chave Crypt, prera a variante nova. O exemplo (e quaisquer complementos) diretamente, 3 oferece todo o procedimento, desde a enquanto o novo estilo primeiro aplica um gravao at a montagem com a soluo encpass=<SENHA> algoritmo SHA 256 (hash seguro). A dife- antiga, e o procedimento para a soluo Valor hex: -encpasshex=70617373776F72 rena ca aparente na criptograa. nova mostrado no exemplo 4. As primei64 Dados gravados no CD com uso da ras linhas de ambos os exemplos criam Arquivo: encpassfile=/home/Nome/chave. variante antiga podem ser montados usan- um sistema de arquivos ISO e o passam do-se o dispositivo crypto-loop. A variante ao cdrecord. O parmetro para a variansecreta (s os primeiros 32 bytes tm uso) nova cria um CD para o DM-Crypt, o alvo te antiga encstyle=old (exemplo 3); na O terceiro mtodo o prefervel. Os criptografado do device mapper. variante nova, -encstyle=new. Nos dois dois primeiros exigem que se guarde a O estilo antigo s recomendado se o casos, -encrypt ativa a criptograa. chave no histrico da sua shell e numa sistema alvo estiver rodando um kernel mais As diferenas cam aparentes ao monlista de processos, onde terceiros pode- antigo. A nova variante DM-Crypt necessita tar um CD criptografado. O exemplo 3 riam descobri-la. do kernel 2.5.6 ou mais recente, apesar de no usa um comando mount estendido (linha Se a chave de entrada for curta de- exigir patches. Para o estilo antigo de montagem 15), enquanto a variante do exemplo 4 mais, o patch a completar para atingir segura com o dispositivo crypto-loop, criado chama o Cryptsetup (linha 15) para se 32 bytes. O cdigo interpretar todas as por um AES de 256 bits, so necessrios alguns preparar para montar atravs do device quebras de linha antes do limite dos 32 patches Losetup. Nem todas as distribuies mapper (linha 16). Note que o parmetro bytes como se fossem parte da chave. oferecem os patches por padro (veja a tabela -r (somente leitura) no est disponvel Isso pode ser problemtico se o usurio Pacotes necessrios). Verses mais novas dos na verso atual (0.1) do Cryptsetup. Sem tentar entrar a chave manualmente du- pacotes incluem aqueles que talvez sejam essa opo, o Cryptsetup se recusar a rante a cifragem. incompatveis com a variante antiga. criar o mapeador para mdias protegidas contra gravao. Para evitar o uso da verso do CVS, pode-se mapear o CD em um dispositivo Exemplo 4: Variante nova de loop, usando-se o comando losetup para 01 # mkisofs -J -R /dados/pequeno/Witzig/Videos/ | cdrecord dev=/dev/hda -encrypt contornar o problema, e usar o Cryptseencstyle=new -encpass=<SENHA> tup. (Veja o exemplo 5, linha 9). 02 [...]
03 NOTE: this version is an inofficial (modified) release of 04 cdrecord and thus may have bugs that are not present in the 05 original version. Please send bug reports and support requests to 06 <burbon04 at gmx.de>. For more information please see 07 http://burbon04.gmxhome.de/linux/CDREncryption.html. The 08 author should not be bothered with problems of this version. 09 [...] 10 Starting to write CD/DVD at speed 48 in real TAO mode for single session. Last chance to quit; starting real write 0 seconds. Operation starts. 11 Turning BURN-Free off 12 Using aes-256-cbc encryption with sha-256 hashed key, plain IV. (e.g. dm-crypt) 13 [...] 14 Track 01: Total bytes read/written: 42958848/42958848 (20976 sectors). 15 # cryptsetup -r -c aes -s 256 -h sha256 create ecdrom /dev/cdrom 16 # mount -t iso9660 /dev/mapper/ecdrom /media/crypt 17 # ls /media/crypt 18 cat.mpeg funny_cats.wmv 19 newsreportfromIraq.wmv 20 Karate_Beetle.avi German_Engineering_Arab_Technology.wmv 21 sexy_nutcracker.mpg 22 felina_in_the_snow.mpg noteastgermany.mpg 23 Languageproblems.mpg 24 #

bytes, que no so divisveis por 512. Para ativar a criptograa, simplesmente use a opo -encrypt. Existem trs mtodos para fornecer a senha necessria: Texto limpo (no criptografado):

Questo de chave

Escolha o novo

Um possvel entrave do mtodo do DMCrypt aparece se um arquivo for usado para passar a chave ao Cryptsetup. O Cryptsetup ignorar a opo -h (algoritmo de hash) e aplicar a chave como uma chave de texto limpo sem usar qualquer hash. Diferentemente, o cdrecord intepreta o valor como uma chave, que ele passa atravs de uma funo hash. Para evitar esse problema, talvez voc prera guardar o valor de hash no arquivo em ambos os casos, e usar -encstyle=old ou -encstyle=aes256-cbc-plain no cdrecord. O Cryptsetup ento usar a chave do arquivo como desejado. Como esse mtodo criptografa dinamicamente durante o processo de gravao,

Entraves

46

http://www.linuxmagazine.com.br

CDs e DVDs | CAPA

Exemplo 5: Novo com losetup


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 # mkisofs -J -R /dados/pequeno/Witzig/Videos/ | cdrecord dev=/dev/hda -encrypt -encstyle=new -encpass=<SENHA> [...] Starting to write CD/DVD at speed 48 in real TAO mode for single session. Last chance to quit, starting real write 0 seconds. Operation starts. Turning BURN-Free off Using aes-256-cbc encryption with sha-256 hashed key, plain IV. (e.g. dm-crypt) [...] Track 01: Total bytes read/written: 42958848/42958848 (20976 sectors). # losetup /dev/loop0 /dev/cdrom # cryptsetup -c aes -s 256 -h sha256 create ecdrom /dev/loop0 # mount -t iso9660 /dev/mapper/ecdrom /media/crypt # ls /media/crypt cat.mpeg funny_cats.wmv newsreportfromIraq.wmv Karate_Beetle.avi German_Engineering_Arab_Technology.wmv sexy_nutcracker.mpg felina_in_the_snow.mpg noteastgermany.mpg Languageproblems.mpg

facilmente integrado a programas que usam o cdrecord para esse m. A nica coisa necessria adicionar os argumentos linha de comando do cdrecord como parmetros denveis pelo usurio. Se voc no puder modicar o cdrecord, provavelmente vai preferir o segundo mtodo, que usa o programa AES Pipe [4]. Utilize qualquer software de gravao para jogar a imagem criptografada pelo AES Pipe em um CD ou DVD.

O AES Pipe criptografa uma corrente arbitrria de dados da entrada padro e envia os resultados para a sada padro (gura 2). A sada do mkisofs adequada para isso. O programa usa o modo CBC e junta 16 pacotes de 32 bits para formar blocos de 512 bytes. Exatamente como a verso com patches do cdrecord, esse mtodo s til para CD modo 1. Chaves de comprimento 128, 192 e 256 bits so suportadas, assim como vrias funes de hash. Se voc no der outra ordem, o AES Pipe usa como padro o algoritmo AES com uma chave de 128 bits e SHA256 como algoritmo de hash da chave. A linha 1 do exemplo 6 mostra a verso mais simples com entrada de senha simples (linha 2). A senha deve conter pelo menos 20 caracteres. A linha 8 mostra que os resultados podem ser montados. O AES Pipe tem ainda uma opo -K para passar um arquivo cifrado por GPG como chave (exemplo 7). Esse mtodo oferece aos usurios a oportunidade de transportar chaves de forma segura em pendrives, por exemplo. Um ladro precisaria do CD criptografado, da senha, do pendrive e da outra senha (mantra) da chave.

Pipes cifrados

A variante GPG adiciona a possibilidade de especicar mltiplas senhas para um CD. Para isso, voc precisaria guardar a chave principal em mltiplos arquivos GPG e proteg-los com diferentes senhas. Voc poderia at publicar uma nova senha sem a necessidade de queimar um novo CD, caso um usurio esquecesse sua senha. Esse mtodo tambm suporta o envio seguro de mdias de armazenamento por email, caso voc use criptograa por Chave Pblica para proteger o arquivo GPG. Melhorando essa idia, os administradores conseguiriam gravar o arquivo GPG no incio do CD (exemplo 8). Isso signicaria colocar a chave de criptograa no CD a ser criptografado, mas proteger a chave com uma senha robusta. Para isso, os administradores precisariam criar uma senha de comprimento xo (linha 1) com o arquivo GPG no incio (linha 2), e ento colocar no nal a imagem cifrada (linha 3), antes de gravar os resultados em um CD ou DVD (linha 4). Ao montar o CD, o usurio especica a unidade de CD tanto como

fonte quanto como dispositivo (linha 8). Um pulo de 8192 bytes (16 vezes 512) permite que o mount encontre o incio dos dados criptografados. Veja em [5] um script de bash que combina os principais passos. Essa soluo acrescenta mais uma dependncia alm daquelas da tabela Pacotes necessrios (GPG), e ser necessrio aplicar patches ao losetup e s ferramentas mount. A maioria das distribuies j possui o suporte necessrio embutido.

Glossrio
AES: O Advanced Encryption Standard (ou algoritmo de Rijndael) uma cifra de bloco simtrica que suporta tamanhos de blocos e chaves de 128, 192 e 256 bits. CBC: O Cipher Block Chaining associa cada bloco criptografado com o bloco criptografado logo antes. Isso torna impossvel decifrar um bloco sem conhecer o bloco anterior. A vantagem disso que dois blocos de texto limpo com o mesmo contedo produziro diferentes textos cifrados. Isso ajuda a esconder padres recorrentes do texto original. IV: O vetor de inicializao oferece um valor de salt ao CBC. A primeira rodada no possui um valor anterior com o qual trabalhar, e portanto usa o IV no lugar.

Exemplo 6: AES Pipe com senha


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 # mkisofs -J -R . | aespipe | cdrecord dev=/dev/hdd Password: cdrecord: Asuming -tao mode. cdrecord: Future versions of cdrecord may have different drive dependent defaults. Cdrecord-Clone 2.01.01a06 (x86_64-unknown-linux-gnu) Copyright (C) 1995-2006 Jrg Schilling [...] Track 01: Total bytes read/written: 475136/614400 (300 sectors). # mount -t iso9660 /dev/hdd /mnt/crypted -o loop,encryption=AES128 Password: # ll /mnt/criptografado/ total 22 drwxr-xr-- 2 maz network 2048 1. Apr 20:21 Imagens -rw-r--r-- 1 maz network 18064 25. Jul 12:35 Cripto-CD.txt -rw-r--r-- 1 maz network 349 8. Jan 2006 distris.txt -rw-r--r-- 1 maz network 649 30. Mar 20:23 patch.txt

Linux Magazine #25 | Novembro de 2006

47

CAPA | CDs e DVDs

Exemplo 7: AES Pipe, GPG e gravao


01 02 03 04 05 06 07 08 09 10 11 12 13 # yes | dd of=image.iso bs=512 count=16 # head -c 2925 /dev/urandom |uuencode -m - |head -n 66 |tail -n 1 |gpg --symmetric -a |dd of=image.iso conv=notrunc # mkisofs -iso-level 3 -l -r /daten/ | aespipe -e aes256 -w 5 -K image.iso -O 16 >> image.iso # growisofs -dvd-compat -Z /dev/dvdrw=image.iso [...] # mount -t iso9660 /dev/hdd /mnt/crypted -o loop,gpgkey=/dev/hdd,enc ryption=AES256,offset=8192 Password: # ll /mnt/crypted/ total 22 drwxr-xr-- 2 maz network 2048 1. Apr 20:21 Imagens -rw-r--r-- 1 maz network 18064 25. Jul 12:35 Crypto-CD.txt -rw-r--r-- 1 maz network 349 8. Jan 2006 distris.txt -rw-r--r-- 1 maz network 649 30. Mar 20:23 patch.txt

O AES Pipe criptografa qualquer corrente de dados, ento possvel criar arquivos tar cifrados:
tar cj /data | aespipe > data.tar.bz2.enc aespipe -d < data.tar.bz2.enc | tar xj

No s discos

dem a capacidade de ser montados por losetup. Se voc precisar comprimir dados, faa-o na camada do sistema de arquivos.

Becapes em tar criptografados so outra boa idia:


tar cj /data |aespipe |dd of=/dev/st0 bs=56 dd if=/dev/st0 bs=56 |aespipe -d |tar tj

O AES Pipe ainda suporta compresso por Bzip2. A compresso s faz sentido se ocorrer antes da cifragem, j que no existe uma forma de compactar dados criptografados. Alm disso, essa variante evita avisos do tar a respeito de dados de lixo. Mensagens como bzip2: (stdin): trailing garbage after EOF ignored aparecem porque o AES Pipe usa um tamanho de bloco fixo de 16 bytes e preenche os bytes faltantes com valores nulos. Isso confunde o tar e a funo Bzip2. A compresso no funciona com imagens ISO, pois CDs e DVDs per-

O AES Pipe possui vrias conguraes para dicultar a vida de atacantes potenciais. Por exemplo, pode-se usar 64 chaves de criptograa. No modo Multi-Key Tanto a verso modicada do cdrecord (multi-chave), o programa cifra o primeiro quanto a combinao da verso no setor com a primeira chave, o segundo modicada com o AES Pipe so teis setor com a segunda chave e assim por para criar discos criptografados e mondiante. Em vez do vetor de inicializao t-los transparentemente no sistema de (IV, Initialization Vector, veja o Glossrio), arquivos. Graas a sua natureza genele usa um IV com Hash MD5. tica, o AES Pipe oferece mais opes. Entretanto, esse modo s funciona Por outro lado, o patch do cdrecord em combinao com um arquivo cripto- difcil de superar quanto amistosidade grafado por GPG. O modo multi-chave com o usurio, principalmente se con usado automaticamente se o arquivo siderarmos a facilidade com que ele se GPG contiver pelo menos 64 chaves, com integra a interfaces grcas de gravano mnimo 20 caracteres cada, separadas o como o K3B. Mas certique-se de por linhas novas. usar a variante -encstyle=new para evitar Outra forma de dicultar ataques de incompatibilidades. fora bruta passar chaves atravs de vrios milhares de rodadas de AES, nas quais o parmetro -C fator especica o Mais informaes nmero de milhares. Essa soluo au[1] Maximilian Decker, On-the-y menta a carga sobre a CPU antes da crip-

Parania

tograa, mas tambm diculta bastante a tentativa de diferentes chaves por um eventual atacante. O programa tambm usar uma semente, especicada pelo parmetro -S, se necessrio. No entanto, nenhum desses dois modos funcionar no modo multichave.

Concluses

encryption for cdrecord/cdrtools:

Exemplo 8: AES Pipe com uma chave GPG


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 # mkisofs -J -R . | aespipe -K ~/teste.gpg | cdrecord dev=/dev/hdd Password: cdrecord: Asuming -tao mode. cdrecord: Future versions of cdrecord may have different drive dependent defaults. Cdrecord-Clone 2.01.01a06 (x86_64-unknown-linux-gnu) Copyright (C) 1995-2006 Jrg Schilling [...] Track 01: Total bytes read/written: 475136/614400 (300 sectors). # mount -t iso9660 /dev/hdd /mnt/crypted -o loop,encryption=AES128 Password: # ll /mnt/crypted/ total 22 drwxr-xr-- 2 maz network 2048 1. Apr 20:21 Imagens -rw-r--r-- 1 maz network 18064 25. Jul 12:35 Crypto-CD.txt -rw-r--r-- 1 maz network 349 8. Jan 2006 distris.txt -rw-r--r-- 1 maz network 649 30. Mar 20:23 patch.txt

http://burbon04.gmxhome.de/ linux/CDREncryption.html [2] Patch de DVD para a verso OSS do


cdrecord/cdrtools:

http://www.crashrecovery.org/ oss-dvd.html [3] Implementao de AES, do Dr.


Gladman:

http://fp.gladman.plus.com/AES/ [4] AES Pipe pelo projeto Loop AES: http://loop-aes.sourceforge.net [5] Script de bash para criar uma imagem criptografada: http:// matthiasjansen.de/ ~maz/create_enc_image

48

http://www.linuxmagazine.com.br

Grcos vetoriais em pseudo-3D

Quase real
Grcos vetoriais so parecidos com revistas em quadrinhos: apesar de voc conseguir usar sombras e luzes, mais ou menos impossvel atingir um realismo fotogrco. Mas tudo isso pode mudar, agora que o Xara LX foi liberado como um produto de cdigo aberto. por Peter Kreussel

ANLISE

e voc comparar o esforo envolO Xara, que tem uma bagagem de dez vido em desenhar uma cena 3D anos como programa comercial para a usando um papel com a aborda- plataforma Windows, tem grande pogem da modelagem 3D, rapidamente tencial. Se voc no acredita em mim, descobrir que mais rpido fazer as veja a galeria de imagens na pgina do coisas do jeito antigo. O mais perto que se programa [1]. consegue chegar da sensao do papel-elpis num computador usar uma mesa de desenho com um editor de bitmaps como o GIMP. Mas com grcos veto- No nal de 2005, os desenvolvedores deriais, que so livremente escalveis sem cidiram liberar uma verso gratuita e de afetar a qualidade, os artistas geralmente cdigo aberto do programa comercial do acham difcil implementar gradientes de Windows, Xara Xtreme, para Linux e Mac luz ou sombras. OS. O Xara LX possui todos os princia r do t w o r k cpara r e Windows, a t e d w Os aplicativos grcos vetoriais como pais recursos programa o Inkscape s oferecem gradientes li- com exceo de tecnologias licenciadas, neares, radiais e cnicos, que no so como paletas Pantone. De acordo com adequados para a tarefa de retratar uma os desenvolvedores do Xara, a verso 0.7 viso realista de objetos de formas mais atual est quase completa. Isso signica complexas. que quase todas as ferramentas de deseO programa prossional Adobe Illus- nho includas com o Linux funcionam trator inclui uma ferramenta Gradient como nas verses para Windows. Os esforos de desenvolvimento do mesh, que possibilita a composio de gradientes complexos. Ele divide os ob- Xara LX esto avanando rapidamente. jetos em uma grade com campos que H dois meses, nem havia uma funo permitem ao artista conferir diferentes de impressora no Xara LX. Mas agora, o valores de cores o Illustrator, depois, website dos desenvolvedores arma que o calcula as transies suaves. Porm, in- Xara est quase completo. J est estvel dependente do poder dessa ferramenta, como se esperaria de um aplicativo em ela no especialmente adequada para fase beta e, se o porte continuar no mesmo alcanar efeitos de luz realistas. ritmo de desenvolvimento, poderemos

Apresentando o Xara

esperar uma ferramenta convel que supra uma demanda prossional para daqui a aproximadamente um ano. A pgina possui um arquivo binrio e um autopackage do Xara LX [2]. O cdigo-fonte e as instrues para acessar o repositrio Subversion esto disponveis em [3]. O Xara depende dos wxWidgets para ser compilado, que voc deve compilar antes de instalar o Xara, caso ainda no esteja instalado em seu sistema.

Ao iniciar o Xara LX pela primeira vez, italvez t h voc pergunte como um programa Adobe, and Illustrator are either registered trademarks or trademarks of Adobe Systems In Unitedinterface States and/or other 2003 Adobe Systems Incorporated. All rights reserv com uma to countries. simples poderia pensar em criar os desenhos realistas da pasta Examples. A maioria das ferramentas do Xara esto disponveis tambm no Inkscape. Em relao ao desenho, no h muitas diferenas entre o Inkscape e o Xara, apesar de o Xara ter a grande vantagem da funo Snap to Object. As outras diferenas so mais difceis de encontrar; necessrio olhar no Xara as ferramentas Shadow Tool, Transparency Tool e Bevel Tool. A Shadow Tool cria uma sombra realista, exatamente como o Adobe Illustrator. Se voc arrastar um objeto com a ferramenta, o Xara cria uma sombra que

Simples, mas bom

Linux Magazine #25 | Novembro de 2006

49

ANLISE | Xara LX

superfcie do modelo, exatamente como o tiling. O problema que surge dessa abordagem que as imperfeies baseadas em fotos no podem ser perfeitamente justapostas. (gura 2, direita). O Xara resolve esse problema de justaposio aplicando um algoritmo que suaviza os cantos. A opo Repeat inverted remove os cantos em junes (gura 2, esquerda). Essa soluo tambm est disponvel para unidades de bitmap usadas como base para efeitos de transparncia (gura 2, linha inferior, extrema direita).
Figura 1 O segredo dos desenhos vetoriais 3D realsticos: diferentes tipos de gradientes transparentes conferem uma aparncia natural ao sombreamento.

reete a distncia a que voc arrastou o objeto, usando superfcies curvas suaves para reetir o tipo de sombras que os objetos geram na atmosfera. A sombra contribui enormemente para conferir uma aparncia natural aos desenhos. Onde h sombra, obviamente h luz: e a luz incidida sobre os objetos causa seu clareamento. Os lados voltados para a fonte de luz aparecem mais claros, enquanto aqueles virados para o outro lado cam escurecidos. Gradientes de cor, geralmente com formas complexas, existem em todo lugar alm das extremidades. Naturalmente, os gradientes de cor so extremamente difceis de representar como vetores. Uma opo para implementar gradientes complexos de cor em grcos vetoriais utiliza a soluo do Adobe Illustrator gradient mesh. Os gradientes so implementados como pequenos objetos semitransparentes que se sobrepem forma bsica.

Em princpio, no h nada para impedir o usurio de usar essa soluo com o Inkscape. A grande vantagem oferecida pelo Xara uma maior escolha de tipos de gradientes. Alm da transparncia plana, o programa suporta gradientes com formatos lineares, esfricos, elpticos, cnicos e losangulares (gura 1). Alm de gradientes multidimensionais denidos por dois ou mais pontos de referncia (linha do meio, direita e extrema direita), o Xara tambm suporta dois padres fractais (linha inferior e extrema esquerda). Todos os gradientes de transparncia podem ser iterados (linha inferior, esquerda). E o Xara pode converter valores de brilho de bitmaps para transparncias de objetos (linha inferior, direita). As superfcies de modelos 3D realistas geralmente baseiam-se em fotograas: o renderizador aplica um detalhe de tela quadrado que retrata uma imperfeio na

A gura 3 mostra um exemplo simples de desenho com efeito espacial: uma ma com iluminaes e sombreamentos que reetem a fonte de luz. As reas mais claras e escuras so fceis de desenhar com a ferramenta Mo livre ( direita na gura), e possvel colori-las para reetir a iluminao do ambiente. A funo de pena (que suaviza os cantos), em combinao com um gradiente elptico, cujo formato pode ser controlado interativamente pelo centro e os dois raios, oferece transies suaves. assim que se alcana o visual realista da iluminao, e o leve sombreamento da superfcie inferior da ma. A ferramenta de sombras permite que se adicione a sombra que uma ma de verdade criaria na superfcie sob ela. Para atingir o efeito de texturizao, usei uma foto de um pedao de madeira. O Repeat inverted suavizou as transies onde as unidades de textura se encontram no efeito de madeira repetido. Todos os desenhos da galeria de imagens do Xara seguem o mesmo princpio

Aplicaes prticas

Figura 2 Objetos com um preenchimento baseado em unidades com detalhes de fotos do ao desenho uma aparncia realstica depois que o Xara suaviza os cantos.

50

http://www.linuxmagazine.com.br

Xara LX | ANLISE

Figura 3 O Xara aplica objetos semitransparentes sobre uma forma bsica para fazer a iluminao e o sombreamento. Um gradiente de cor correspondente d ao desenho um toque de realismo fotogrco.

descomplicado de sobrepor uma forma simples com mltiplos objetos, muitos dos quais transparentes, para reetir o efeito da luz e da sombra no mundo real. A gura 4 mostra um pequeno trecho de um dos grcos de exemplo que acompanham a distribuio do Xara. A camada inferior do cap do Mini azul um simples gradiente linear. Um pouco de sombreamento e espelhamento habilidosamente criados do imagem um acabamento quase perfeitamente realstico. Apesar de ser necessria muita prtica e habilidade para criar desenhos realistas como a imagem da gura 4, um fator separa o Xara das ferramentas de modelagem 3D. Enquanto uma ferramenta dessas usa o traado de raios (raytracing) para calcular sombreamentos e ilumina-

es perfeitas, o Xara d ao artista total controle sobre os efeitos. E as poderosas ferramentas de transparncia e preenchimento do Xara so o melhor suporte que um artista pode pedir.

O Xara traz diversas funes interessantes para o mundo do Linux. O programa no deve ser visto como um concorrente do Inkscape. O Inkscape cria grcos em formato SVG, um padro da Internet, e seu pacote agora inclui um editor de XML que suporta manipulaes em baixo nvel dos arquivos, e portanto tem seu prprio pblico-alvo. Diferentemente de uma ferramenta como o Inkscape, o Xara visa aos artistas grcos que apreciaro

Concluses

os efeitos e gradientes fotogracamente realistas que o programa oferece. A seo da galeria chamada Business Designs em [1] prova que a verso comercial do Xara capaz de desenhar produtos absolutamente prossionais, como embalagens e caixas. E o processo de desenvolvimento at agora deixa poucas dvidas de que a verso livre do Xara para Linux em breve tambm chegar l. Aqueles que no necessitam desses recursos to sosticados podem experimentar o Xara LX agora mesmo; anal, a instalao com arquivos binrios e pacotes autopackage brincadeira de criana.

Mais Informaes
[1] Galeria de imagens da verso
comercial do Xara (Xara Xtreme):

http://www.xara.com/gallery [2] Download dos binrios: http://www.xaraxtreme.org/ download/ [3] Cdigo-fonte e acesso SVN: http://www.xaraxtreme.org/ developers/general/ source_code__building.html

O autor
O Corel Draw foi o programa que capturou o interesse de Peter Kreussel em computadores. Peter fala com felicidade que o Inkscape e o Xara h muito tempo j ultrapassaram o Windows e os caros programas da Adobe em sua mquina.

Figura 4 Efeitos de espelhamento no cap de um carro so facilmente emulados com gradientes simples e um pouco de sombreamento manual, supondo que voc possua o talento artstico necessrio.

Linux Magazine #25 | Novembro de 2006

51

ANLISE | DVD Semestral do Assinante

As qualidades do desktop corporativo da Novell

ANLISE

Camaleo de gravata
O Suse Linux Enterprise Desktop a verso corporativa da Novell baseada no Open Suse. Integra recursosos de segurana avanada (AppArmor) e grandes inovaes em usabilidade. Conra se essa a distribuio certa para sua empresa. por Pablo Hess

scolher uma distribuio para o desktop corporativo uma tarefa simples, porm no exatamente fcil. Levando em considerao que o usurio corporativo geralmente est profundamente habituado a sistemas Windows, importante garantir que ele obtenha a maior funcionalidade possvel com uma curva de aprendizado mnima. Entretanto, engana-se quem considera esse um ato de altrusmo. Usurios familiarizados com seu sistema operacional, ou, mais precisamente, com seu ambiente desktop, geram menos chamados de suporte, por exemplo, alm de terem sua produtividade aumentada. O Suse Linux Enterprise Desktop 10 (SLED 10), da Novell, visa a facilitar essa

escolha. A extensa anlise de usabilidade realizada pela empresa com o projeto Better Desktop [1] reetiu-se em mudanas na organizao do ambiente de trabalho. O novo menu (gura 1) representa uma boa amostra da profundidade dessas alteraes.

Figura 1 O novo menu do Suse Linux Enterprise Desktop traz importantes melhorias em usabilidade.

A instalao do SLED no apresentou qualquer diculdade. O instalador o mesmo usado no OpenSuse, sistema comunitrio no qual se baseia o SLED. O mesmo DVD de instalao (encartado na edio deste ms da Linux Magazine) permite a instalao por diversos meios, incluindo a instalao pela rede ou atravs de arquivos gravados no disco rgido. Um fato interessante a escolha do ReiserFS como sistema de arquivos padro para a instalao do SLED 10. Aps particionar o disco rgido e aceitar as licenas de uso de software da Novell e da Macromedia, o usurio levado seleo dos pacotes a serem instalados. A seleo padro ocupa 2,5 GB. Instalados os pacotes, o programa de instalao possibilita o download e a aplicao automtica das atualizaes dos pacotes. Para isso, o programa precisa abrir um navegador web, o Firefox. Os drivers proprietrios para as placas de vdeo da Nvidia e ATI podem ser baixados logo em seguida. altamente recomendvel realizar esse procedimento durante a instalao do sistema, pois s com esses drivers possvel aproveitar os recursos do Xgl, o servidor X 3D da Novell.

Instalao

Se o usurio assim desejar, o navegador web, ainda aberto, o leva pgina de registro no Novell Customer Center. O registro simples e gratuito, e d direito tambm a atualizar todos os pacotes da distribuio. Infelizmente, o registro gratuito tem validade de apenas 60 dias. Se, ao nal do perodo de avaliao, o usurio julgar interessante adquirir um registro mais duradouro, deve efetuar seu registro no servio mediante o pagamento de uma taxa. Aps uma reinicializao, o programa pede que se crie um usurio e que se denam as senhas de usurios e de root. possvel tambm criar um perl de instalao, o que permite a instalao no assistida em outras mquinas na mesma rede, por exemplo. Esse recurso j existia h algum tempo no Suse, e tem funcionalidade semelhante do tradicional kickstart, da Red Hat.

Assim como no OpenSuse, o ambiente padro do SLED 10 agora o Gnome. Para tirar proveito dos recursos 3D, no entanto, o gerenciador de janelas Metacity foi substitudo pelo Compiz, que tambm se integra com facilidade ao ambiente Gnome. Os efeitos tridimensionais oferecidos pelo Xgl e usados pelo Compiz tornam a experincia do usurio mais interessante. possvel, no entanto, desativar os recursos 3D do Xgl atravs de janelas, botes e cliques do mouse. Mesmo sem eles, ainda se tem uma boa experincia visual, pois

Utilizao

52

http://www.linuxmagazine.com.br

DVD Semestral do Assinante | ANLISE

gura 1),

Figura 2 O Beagle mostra os resultados de sua busca no desktop de forma absolutamente veloz.

e ser exibido o programa responsvel por essa tarefa. Dessa forma, esse recurso facilita imensamente a vida de todos os usurios, tanto iniciantes quanto experientes. A rea de trabalho do Gnome apresenta por padro apenas os cones do diretrio pessoal, unidade de disquete e lixeira, alm de qualquer unidade de armazenamento (incluindo CDs e DVDs, gravveis ou no) que esteja conectada mquina.

o tema padro, Gilouche, simples, mas Uma das barreiras para a adoo corporativa mesmo assim atraente e funcional. de desktops Linux costuma ser o suporte (ou O novo menu idealizado pela Novell a falta dele) a macros VB no OpenOfce.org, a parte do desktop que reserva mais mu- que o torna um substituto considerado infedanas, depois dos efeitos 3D. Contudo, rior ao pacote Ofce da Microsoft. A Novell diferentemente deste, o novo menu (- tambm trabalhou com anco nesse ponto, gura 1) est disponvel para todos, e no incluindo em sua verso do conjunto de somente para os proprietrios de placas de aplicativos para escritrio o suporte a VBA vdeo mais sosticadas. O menu guarda (Visual Basic para Aplicaes). Como se espera de uma distribuio algumas semelhanas com o dos desktops Windows, como a substituio dos trs me- com nvel prossional, o SLED j traz nus (Aplicaes, Locais e Desktop) por um instalados plugins para reproduo de nico (Computador), alm da eliminao contedo em Flash, alm de muitos outros do painel superior. Todavia, esse conjunto formatos de udio e vdeo, incluindo MP3, demonstra grande funcionalidade. MPEG4, Ogg (Vorbis e Theora) etc. Outro recurso altamente desejado por usurios iniciantes a integrao do Beagle ao desktop, tanto no menu principal (gura Considerando a realidade da maioria das 1) quanto de forma independente (gura redes corporativas, incrvel a facilidade 2). Segundo a Novell, os menus atuais, em com que o SLED se embrenha nesse tergeral, consistem de uma lista de aplicativos, reno muitas vezes pedregoso. A integrao atravs dos quais o usurio navega em busca ao Active Directory j funciona logo aps a daquele programa que realiza a tarefa dese- instalao. Na verdade, durante a prpria jada. A total integrao do Beagle ao desktop instalao h opes para selecionar dompermite uma abordagem mais prtica. Assim nios Windows ou Active Directory aos quais que o usurio realiza o login, o mecanismo o SLED deve se integrar. Porm, o usurio de indexao de dados do Beagle j entra tem a liberdade de no selecionar domnios em ao. Pginas web, emails, documentos, na instalao, caso prera realizar esse propastas, enm, tudo indexado e mostrado cedimento depois com o auxlio do YaST. de forma milagrosamente rpida aps o pres- Com os domnios selecionados, at mesmo sionamento do boto Buscar. interessante o gerenciador de login, o GDM, apresenta notar tambm que, assim uma lista de domnios para que se clica em qualquer o usurio fazer login. Aps o login, j poscone resultante da busca, mostrada uma previso svel navegar por toda a do arquivo, seja ele um rede, seja ela composta documento de texto, uma por mquinas Windows ou arquivo HTML ou uma Linux, montando qualquer imagem. compartilhamento remoto Quando o usurio que se queira. Aderir a uma desejar procurar um VPN tambm incrivelprograma que edite armente simples, com um quivos de udio, poder assistente bastante comsimplesmente digitar petente. O editor de pers de edit audio na caixa de Figura 3 O ZENworks responsvel pela atualizao, usurios Sabayon, avaliaentrada do Beagle (j instalao e remoo disponvel no menu do do na edio 23 da Linux de pacotes. Gnome, como mostra a Magazine ([2]), tambm

Adicionais

Na rede

Linux Magazine #25 | Novembro de 2006

53

ANLISE | DVD Semestral do Assinante

YaST

Figura 4 O YaST presente no SLED 10 possui organizao diferente da anterior. Agora, os cones so organizados por tarefa de gerenciamento.

foi includo no SLED 10. Ele torna prtica a tarefa de denir grupos tais como Comercial, Executivo, RH, e assim por diante, estabelecendo as mesmas permisses para todos os usurios de cada grupo, de uma s vez. De forma semelhante, pode-se restringir fortemente as permisses dadas a um usurio, o que muito til para a criao de quiosques de informao, por exemplo, nos quais o usurio s deve ter acesso ao mouse e a um navegador.

A administrao dos pacotes realizada com auxlio do ZENworks (gura 3), da Novell. Embora o aplicativo tenha evoludo signicativamente desde a avaliao publicada na edio 22 da Linux Magazine ([3]), algumas falhas persistem, e surgiram ainda algumas novas. Uma das falhas diz respeito ao exagero nas dependncias para determinados pacotes o aplicativo exige uma longa lista de pacotes para se instalar determinado aplicativo, quando na verdade somente uma parte deles seria necessria. O gerenciador de pacotes da Novell parece ser o componente mais fraco do poderoso conjunto apresentado pela empresa.

Pacotes e hardware

O YaST (Yet another Software Tool, mais uma ferramenta de software) era uma ferramenta de importncia central nas verses passadas do Suse. O programa era encarregado de gerenciar tanto o software quanto o hardware da mquina, e fazia isso com rara maestria, merecendo assim o papel de estrela maior da distribuio. No toa, diversas outras distribuies demonstravam variados graus de inveja em relao a esse item de software to eciente. Em 2004, a Novell, pouco depois de adquirir a SuSE GmbH, anunciou a abertura do cdigo do YaST. Com isso, o desenvolvimento do software manteve seu ritmo acelerado, e hoje o YaST , possivelmente, a ferramenta de gerenciamento de hardware e software mais competente no mundo do Software Livre. No SLED 10, ele assume uma nova organizao (gura 4), separada pelas tarefas de gerenciamento. A nova vida do YaST, no entanto, no signica mais destaque para ele na distribuio. Muito pelo contrrio; a Novell optou por esconder o YaST do usurio, colocando em seu lugar o Centro de Controle, disponvel a partir do menu principal (gura 1). O motivo alegado, bastante razovel, o fato de a palavra YaST no ter qualquer signicado para quem no tem familiaridade com o Suse. Alm disso, o programa considerado poderoso demais para usurios inexperientes. Assim, o Centro de Controle, com um nome absolutamente intuitivo, possui somente um subconjunto das funcionalidades do YaST, e essas so organizadas de forma a facilitar a vida dessa categoria de usurios. O YaST, no entanto, continua presente como uma opo do Centro de Controle.

O AppArmor, recurso de segurana avaliado em profundidade na edio 22 da Linux Magazine ([4]), foi nalmente includo no SLED 10. Entretanto, h uma certa controvrsia acerca disso. Alega-se que esse recurso no adequado a uma distribuio voltada a desktops, ainda que corporativos. Por outro lado, h quem defenda a idia de que os documentos pessoais contidos nessas mquinas devem ser mantidos sob a maior privacidade (leia-se, segurana) possvel. No caso de servidores, com o SLES (Suse Linux Enterprise Server), no h qualquer questionamento sobre a utilidade do AppArmor, que protege o sistema at mesmo de falhas de segurana desconhecidas pelos desenvolvedores.

Segurana

O Suse Linux Enterprise Desktop 10 um forte candidato melhor distribuio para desktops corporativos j lanada. Unindo os resultados dos estudos de usabilidade do projeto Better Desktop [1] aos avanados recursos 3D do Xgl, integrao da mquina de buscas Beagle, e ainda ao competentssimo gerenciamento de hardware e software, h poucos locais no explorados (e melhorados) por essa distribuio.

Concluso

DVD do assinante
Prezado leitor da Linux Magazine, Conforme anunciamos em edies anteriores, realizamos a substituio de nossos CDs mensais por DVDs de periodicidade semestral. O primeiro DVD encartado na Linux Magazine, que circula junto com esta edio somente para os assinantes que optaram pela assinatura com DVDs, contm o Suse Linux Enterprise Desktop, da Novell. Os leitores que desejarem assinar a Linux Magazine com o objetivo de receber os DVDs semestrais podem faz-lo atravs do site http://www.linuxmagazine.com. br, ou por nosso telefone (11) 2161-5419.

Figura 5 O SaX gerencia conguraes de vdeo, incluindo monitor e placa de vdeo, associado ao YaST.

Parte do sucesso do YaST deve-se ao SaX (gura 5), sua ferramenta de gerenciamento de hardware de entrada e sada, como teclado, mouse, placa grca e monitor. O SaX permanece como uma importante fora impulsionando o SLED. Essa ferramenta selecionou automaticamente a freqncia do monitor e ofereceu apenas as resolues corretas, diferentemente de alguns outros aplicativos que apresentam todas as resolues possveis e conferem ao usurio a tarefa de saber quais delas so de fato suportadas pela sua placa de vdeo e monitor. A maior mudana do SaX reside em seu funcionamento interno. Ele agora interage propriamente com o Udev e o HAL, que compem o novo subsistema de gerenciamento e administrao de hardware do Linux.

SaX

Mais Informaes
[1] Projeto Better Desktop: http://www.betterdesktop.org [2] rea de trabalho dedicada com
Pessulus e Sabayon: Linux Magazine 23, pg. 54, Setembro de 2006

[3] Vai um upgrade?: Linux Magazine


22, pg. 50, Agosto de 2006

[4] Armadura segura: Linux Magazine


22, pg. 34, Agosto de 2006

54

http://www.linuxmagazine.com.br

JORGE MADE LINUX FASTER

WE MADE IT ENTERPRISE-WIDER

Your Linux is ready.


Introducing SUSE Linux Enterprise 10 from Novell . Built by a global community and secured,

supported, tested and proven by Novell. From the desktop to the data center, SUSE Linux Enterprise 10 is the Linux platform that brings discipline to open and innovation to the enterprise. So its more than cool and secure. Its the Linux youve been waiting for.

Get it at www.novell.com/linux

Copyright 2006 Novell, Inc. All rights reserved. Novell, the Novell logo, and SUSE are registered trademarks and This Is Your Open Enterprise, Your Linux is ready, and the gecko logo are trademarks of Novell, Inc. in the United States and other countries. *Linux is a registered trademark of Linus Torvalds. All third-party trademarks are the property of their respective owners. Novell wishes to thank the thousands of developers who contribute to Linux every day.

Gerenciamento dinmico de dispositivos com o Udev

TUTORIAL

Quem Udev no teme


Depois de trs anos em segundo plano, o Udev nalmente superou o sistema legado Dev-FS. Vamos ver o que h debaixo do cap do sistema de gerenciamento de dispositivos Udev da sua mquina Linux. por Rene Rebe, Oliver Frommel e Jens-Christoph Brendel

Linux herdou o clssico adgio do Unix, tudo um arquivo. Essa abstrao permite que os programas usem os ns de dispositivos (arquivos de dispositivos) para acessar o hardware do computador como se estivessem acessando um arquivo comum. Esses arquivos especiais de dispositivos, que so abertos, lidos, gravados e fechados usando-se as mesmas chamadas de sistema que arquivos texto, so diferenciados por seus nomes, tipos (dispositivos de blocos ou de caracteres), nmeros principais (major numbers) e nmeros secundrios (minor numbers).

Arquivos de dispositivos so criados pelo comando mknod durante a fase de instalao, supondo um gerenciamento como se fazia antigamente. Essa abordagem cria uma entrada permanente no /dev/ para cada dispositivo a que o administrador possa querer se conectar no futuro, o que signica entradas na casa dos milhares. Essa enorme massa de entradas, a maioria intil para o sistema atual por se referirem a dispositivos que no existem, dicultam muito o acompanhamento da congurao. Por exemplo, a estrutura

Esttico demais

de diretrios e arquivos no diz quais dispositivos existem ou quais foram corretamente identicados pelos drivers. Alm disso, nessa abordagem tradicional, a ordem usada pelo usurio para conectar os dispositivos determina qual arquivo de dispositivo o kernel associa a qual dispositivo. O primeiro disco SCSI detectado sempre mapeado no arquivo de dispositivo /dev/sda, por exemplo; o prximo disco mapeado em /dev/sdb, e assim por diante. Essa abordagem pode signicar que o mesmo dispositivo acessvel atravs de diferentes arquivos de dispositivo em momentos diferentes,

56

http://www.linuxmagazine.com.br

Udev | TUTORIAL

Detalhes do hotplug
Para fazer com que o gerenciamento dinmico de dispositivos funcione, o kernel Linux precisa ter a opo CONFIG_HOTPLUG ativada; as principais distribuies utilizam essa opo por padro. Quando um driver de dispositivo adiciona ou remove o que chamamos de Kobject, o kernel envia mensagens com esse aviso para o daemon do Udev, ou executa o programa residente em /proc/sys/kernel/hotplug chamando a funo kset_hotplug (o cdigo-fonte est em lib/kobject.c). Esse programa costumava car em /sbin/hotplug, e depois mudou-se para /sbin/udevsend, antes de ser excludo das verses mais recentes. A classe do subsistema passada como um argumento. As variveis de ambiente oferecem mais detalhes. Por exemplo, ACTION suporta os valores add e remove. A varivel SEQNUM incrementada a cada chamada. DEVPATH especica onde no SysFS se encontram as informaes do dispositivo, como em /devices/pci0001:01/0001:01:19.0/usb2/2-1/2-1:1.0. E existem outros parmetros, como MAJOR, MINOR e UDEV_EVENT. Dependendo do tipo do objeto, outras variveis podem ser exportadas: as IDs de vendedor (vendor) e produto (product) do hardware fsico, por exemplo, ou a entrada correspondente no USBFS, no caso de dispositivos USB; essa seria /proc/bus/usb/002/010, no nosso caso. O Udev propriamente dito (antes eram os scripts do hotplug) associam e carregam os mdulos apropriados do kernel, baseados nas IDs do hardware em /lib/modules/$ver.

e conseqentemente o computador o monta em diferentes diretrios. Uma soluo que cria e apaga arquivos de dispositivos dinamicamente quando um usurio conecta ou desconecta um hardware j se mostrou mais til. Nesse caso, os mapeamentos de nome para dispositivo no so baseados na ordem em que os dispositivos so detectados, e sim num sistema de regras pr-denidas. Isso signica que podemos garantir que um disco rgido especco sempre estar disponvel no mesmo arquivo, e portanto sempre ser montado na mesma posio no sistema de arquivos, independentemente de quais outros dispositivos compartilhem o barramento. Durante um certo tempo, os sistemas DevFS e Udev foram concorrentes no papel de gerenciadores inteligentes de dispositivos, mas agora o Udev claramente o vencedor. O DevFS recentemente foi removido do kernel, deixando o Udev como rei do pedao [1]. O Udev depende do mecanismo de hotplug do kernel (veja o quadro Detalhes do hotplug) para criar arquivos de dispositivos no espao do usurio. Quando um dispositivo conectado ou desconectado, o controlador do barramento (ISA, USB ou PCI) sinaliza o evento com uma interrupo. Em resposta a isso, o kernel se certica dos detalhes do dispositivo recm-adicionado, seja por um protocolo especco para se comunicar com o controlador do hardware, ou buscando nos endereos embutidos no cdigo como a rea de congurao de

placas PCI informaes guardadas l, mais especicamente, as IDs de vendedor e produto. O kernel ento continua, criando um Kobject para cada dispositivo novo; os dados sobre o tipo de dispositivo (de blocos ou de caracteres) e os nmeros principal e secundrio so passados para o Kobject e armazenados por ele, atravs do namespace global de componentes do kernel introduzido no kernel 2.6. Depois, o kernel torna essa informao disponvel via SysFS, que substitui o sistema de arquivos legado ProcFS. Normalmente, o SysFS montado em /sys. Nas verses mais antigas do Udev, o kernel informava os programas do espao do usurio a respeito do novo estado dos dispositivos, chamando o programa em /proc/sys/kernel/hotplug, geralmente

Esse programa carregava e congurava todos os drivers necessrios; as IDs que j citamos informavam ao programa quais drivers carregar. As verses modernas do Udev conversam diretamente com o kernel e chamam programas externos para realizar as mesmas aes diretamente. O Udev usa essa abordagem tanto ao plugarmos um novo dispositivo a um sistema em funcionamento (hot plugging, ou conexo a quente), quanto durante a inicializao (cold plugging, conexo a frio). O kernel procura o barramento adequado para os dispositivos e cria arquivos de uevent baseados nos resultados. Esses resultados cam guardados no SysFS, pois nessa etapa o sistema ainda no possui um sistema de arquivos raiz gravvel. A seguir, o Udev gera eventos para os dispositivos encontrados durante a inicializao, baseado nos resultados, como se eles tivessem sido ligados a quente. A gura 1 mostra o procedimento para conectar um receptor DVB USB, gravado com o uso da ferramenta de diagnstico udevmonitor. At a verso 0.58 do Udev, o pacote hotplug carregava os drivers e o rmware. Essa abordagem, que foi aplicada em distribuies como Suse 9.x, Fedora Core 4, Ubuntu Breezy Badger e Debian Sarge, mantm o gerenciador de hotplug /sbin/hotplug, que atua como um multiplexador, chamando todos os programas registrados em /etc/hotplug.d. Isso deve funcionar bem, supondo uma instalao padro dos pacotes do hotplug e do Udev. A partir da verso 0.59, o Udev passou a executar as duas tarefas. Essa abordagem usada no Fedora Core 5, Suse 10 e Ubuntu Dapper Drake (veja tambm a tabela Variantes do Udev).

/sbin/hotplug.

Figura 1 Aes do Udev durante a ligao a quente, gravada usando-se o udevmonitor.

Linux Magazine #25 | Novembro de 2006

57

TUTRIAL | Udev

Questo de preferncia
Os arquivos de configurao do Udev ficam em /etc/udev, ou em /lib/udev, em algumas distribuies. As variveis mais importantes esto em /etc/udev. conf, por exemplo, o diretrio raiz dos arquivos de dispositivos, o caminho do banco de dados interno do Udev e o diretrio com as regras para criar e nomear os arquivos de dispositivos:
udev_root=/dev/ udev_db=/dev/.udevdb udev_rules=/etc/udev/rules.d udev_log=err

Hardware abstrato
O gerenciamento de dispositivos tambm o domnio de outro componente, o Hardware Abstraction Layer (camada de abstrao de hardware), ou HAL. Alm de informaes do kernel e Udev, o HAL gerencia detalhes de dispositivos em arquivos FDI com formato XML. O exemplo 1 mostra um trecho do arquivo FDI de uma cmera digital. No Fedora, eventos de hotplug so passados para o daemon do HAL pelo subsistema Udev usando-se uma regra localizada em /etc/udev/rules.d/90-hal.rules: RUN+=socket:/org/freedesktop/hal/udev_event O elemento RUN+ nessa regra estipula que ela deve ser executada para todas as outras regras. A comunicao passa por um socket, como descrito antes. O Gerenciador de Redes do Gnome [3] um bom exemplo da forma como esses componentes interagem. Ele usa o daemon HAL para monitorar o subsistema de rede; o HAL notica o Gerenciador de Rede atravs do D-Bus (veja o quadro D-Bus) quando mudanas ocorrem, por exemplo, quando chaveiros USB de rede sem o so plugados ou desplugados. Alm dos dispositivos fsicos, o HAL tambm pode lidar com sistemas de arquivos e descobrir seu tipo, at mesmo em parties LUKS criptografadas [4]. O HAL lida atualmente com a parte dura do gerenciamento de hardware do Gnome, principalmente em relao aos dispositivos plugveis a quente. Para permitir que isso acontea, o processo gnome-volume-manager roda em segundo plano (usurios do Gnome podem executar a interface para o processo gnome-volume-manager para congurar o gerenciador). H at uma interface grca para o prprio HAL; ela gera uma sada em forma de rvore de todos os dispositivos conectados (gura 2). O hal-device-manager do Fedora localiza-se no pacote hal-gnome.

numa lista separada por espaos. As aes so introduzidas por um sinal As regras do Udev podem chamar programas de igual. Por exemplo, MODE=0660 externos, que tambm so avaliados como especifica as permisses. Da mesma condies. O Udev no executa a ao a forma, OWNER informa o dono, enquan- menos que a chamada leve ao resultado to GROUP estabelece o grupo. A palavra exigido. A pgina de manual possui um NAME especifica o nome do dispositivo, exemplo para CD-ROMs IDE que verica se A primeira parte de todas as regras do e curingas so suportados. Por exem- existe um diretrio no /proc para identicar Udev especifica a condio que deve plo, %k representa o nome usado pelo o dispositivo como um CD-ROM: ser satisfeita para o Udev executar ou kernel, como descrito anteriormente. aplicar a segunda parte. Em um caso Uma regra que siga esse padro deve KERNEL==hd[a-z] simples, essa condio pode se referir ser assim: KERNEL==isdn*, NAME=%k, PROGRAM=/bin/cat /proc/ide/%k/media, RESULT=cdrom, NAME=%k, ao nome interno que o kernel d a um MODE=0660. SYMLINK=cdrom%e dispositivo. Por exemplo, a condio O Udev normalmente processa para um teclado KERNEL==kbd. todas as regras que coincidam com o As condies so indicadas por si- padro, at acabarem as regras. Para O Udev chama /bin/cat para mostrar nais de igual duplos, exatamente como cancelar o processamento de regras a sada do contedo do arquivo media em linguagens de programao. Mais quando uma coincidncia aparecer, para todos os dispositivos cujos nomes condies podem ser listadas depois, especifique last_rule em OPTIONS. comecem com hd. Se o nome contiver cdrom (RESULT), o Udev manter o arquivo do dispositivo (NAME=%k), mas tambm usar o SYMLINK para criar um link simbExemplo 1: Arquivo FDI de uma cmera digital lico para cdrom. O %e especica o prximo 01 <deviceinfo version=0.2> decimal livre, se um arquivo de mesmo 02 <device> nome j existir. Isso leva gerao de 03 <match key=info.bus string=usb> links simblicos como: 04 <match key=usb.interface.class int=0x06>

O Udev oferece dois pontos de configurao: /etc/udev/rules.d/ contm os arquivos que governam a nomeao dos ns de dispositivos, e /etc/udev/makedev.d contm scripts com os nomes dos arquivos estticos de dispositivos, que so necessrios para dispositivos como a porta paralela. As permisses no residem mais em /etc/udev/permissions.d nas verses atuais do Udev, mas fazem parte da configurao normal do Udev.

Scripts de teste

Sintaxe das regras

05 <match key=usb.interface.subclass int=0x01> 06 <match key=usb.interface.protocol int=0x01> 07 <merge key=info.category type=string>camera</merge> 08 <append key=info.capabilities type=strlist>camera</append> 09 <merge key=camera.access_method type=string>ptp</merge> 10 </match> 11 </match> 12 </match> 13 </match> 14 </device> 15 </deviceinfo>

/dev/cdrom -> hdc /dev/cdrom1 -> sr0

Nmeros seriais nicos de dispositivos permitem que o sistema gere nomes estveis para dispositivos plugveis a quente, independente da porta a que tenham sido conectados ou em que ordem tenham sido ligados.

58

http://www.linuxmagazine.com.br

Udev | TUTORIAL

Tabela 1: Variantes do Udev


Verso/Distribuio Verso do Udev Verso do HAL Script do Hotplug Mdia Kioslave do KDE Ivman Fedora Core 5 udev-084-15 hal-0.5.7-3 sim SLES 9 udev-021-36.49 /sbin/hotplug SLES 10 udev-085-30.5 hal-0.5.6-33 1.5.15-26.1 sim ivman-0.6.9-16.3 Suse 10.0 udev-068git20050831-9 hal-0.5.4-6 sim

Gerenciador de Volumes do Gnome 1.5.15-1

As aplicaes mais comuns para regras personalizadas do Udev so mudanas de nome de dispositivos individuais ou permisses especiais de arquivo. Vamos imaginar que queiramos dar ao usurio conectado ao desktop o acesso de gravao aos discos rgidos USB. O Fedora resolve isso deixando o Udev conferir a posse dos arquivos ao usurio conectado ao desktop. O daemon do Udev pode facilitar a soluo de problemas graas a seu nvel de log configurvel; o padro err s gera como sada os erros, info torna o Udev mais falante, e debug o torna realmente verboso. Podemos entrar esses valores no arquivo de configurao ou usar um

Propriedade do dono

Figura 2 O HAL Device Manager mostra uma viso em rvore do hardware. A informao adicional sobre cada dispositivo altamente detalhada.

Transforme um PC antigo em um Thin Client


Com o TC-FLASH voc transforma um PC antigo em um thin client e isso custa menos do que voc imagina. O TC-FLASH um mdulo de memria Flash que contm o software dos thin clients TC-NET da ThinNetworks, que, quando substitui o HD, capaz de reconhecer todos os dispositivos de um PC comum e transform-lo em um verdadeiro thin client. O TCFLASH compatvel com servio de terminal baseado emWindows e Linux. Aproveitando estes equipamentos j disponveis, pode-se reduzir os custos a pelo menos 1/3 do valor de um thin client completo. A soluo mais econmica para aqueles que cogitam a instalao de thin clients e dispem de equipamentos fora de sua vida til.

Fone: (61) 3366-1333 Skype: thinnetworks vendas@thinnet.com.br www.thinnetworks.com.br

Linux Magazine #25 | Novembro de 2006

59

TUTRIAL | Udev

D-Bus
O D-Bus um sistema de comunicao que permite que os aplicativos do desktop interajam entre si e com as camadas subjacentes, at as camadas do kernel e do hardware. O sistema D-Bus, portanto, um servio de comunicao entre processos (IPC, ou Interprocess Communication), e oferece a infra-estrutura que ajuda os aplicativos a conversarem tanto uns com os outros quanto com partes do sistema operacional. Embora haja mecanismos de IPC no Unix, eles so restritos a sinais, pipes e afins. O modelo do D-Bus talvez soe familiar, j que abordagens competitivas j existem h algum tempo: Corba, a da Microsoft, DCOM, e outras dezenas de projetos, por exemplo. Tanto o KDE quanto o Gnome originalmente experimentaram suas prprias implementaes de Corba. O KDE introduziu seu sistema DCOP prprio h algum tempo, enquanto o Gnome ainda possui algum Corba legado em seu sistema de componentes Bonobo . Independente da sua opinio sobre o Corba, a maioria dos desenvolvedores que simplesmente querem programar um aplicativo para desktop acaba ficando confusa com ele. At mesmo o mais simples applet do Gnome requer conhecimento avanado da complexa arquitetura de componentes. E por isso que o Bonobo est margem do Gnome h tanto tempo. A idia era tornar o D-Bus mais simples, e ao mesmo tempo faz-lo consumir menos recursos. A biblioteca Libdbus subjacente somente oferece as funes que suportam a comunicao entre duas aplicaes. Os desenvolvedores das aplicaes normalmente no se detm biblioteca, preferindo ento a Libdbus-Glib, baseada na API da Glib, e que oferece uma API em C orientada a objetos. Nesse nvel, as capacidades do D-Bus chegam perto das de um sistema de barramento, como o nome sugere. O processo servidor, dbus-daemon, roda em segundo plano e escuta pedidos de conexo de aplicativos que se registrem para tipos especficos de eventos conexo e desconexo de hardware, por exemplo. Quando um evento acontece, o daemon do D-Bus envia uma mensagem atravs do barramento, e a aplicao em questo responde de acordo. Global para o sistema ou por sesso Basicamente, os sistemas que usam o D-Bus possuem dois barramentos implementados por um nico processo servidor: o barramento do sistema e o da sesso. O barramento do sistema iniciado junto com o sistema, e fica ativo mesmo que nenhum usurio esteja registrado no sistema. Um processo servidor para o barramento da sesso ativado aps completar o login pela interface grfica para uma sesso do desktop. O binrio dbus-daemon oferece as opes de linha de comando --system e --session para esses dois modos. Para iniciar o daemon, o pacote do D-Bus inclui a ferramenta dbus-launch, que configura as variveis de ambiente necessrias, entre outras coisas. A maioria das distribuies inicia o daemon do D-Bus em modo de sesso ao iniciar uma sesso do X. A figura 3 mostra o papel representado por esses dois barramentos nas comunicaes entre os componentes do sistema operacional. Os barramentos de sesso oferecem s aplicaes de uma sesso de desktop a possibilidade de conversarem entre si. Essas aplicaes podem ser servios oferecidos pelo ambiente desktop. O barramento do sistema projetado principalmente para auxiliar programas do desktop a conversarem com as camadas subjacentes. Por exemplo, uma aplicao pode usar o barramento do sistema para se registrar com uma classe de hardware como cmeras digitais, por exemplo.

utilitrio para especificar os valores em tempo de execuo: udevcontrol log_proprity=debug . O controle de comando do Udev reload_rules manda o daemon do Udev processar novamente as regras modificadas.

O Udev um sistema complexo que compreende mltiplas camadas que se comunicam e colaboram: um daemon, scripts de hotplug e ferramentas para lidar com os eventos. O sistema Udev suporta o gerenciamento dinmico de dispositivos em sistemas Linux modernos para refletir as exigncias do hardware atual. O Udev leva a srio as dependncias mtuas, assim como as dependncias entre parties e discos rgidos, e gerencia os dispositivos plugveis a quente to difundidos hoje em dia. Apesar de a maioria das distribuies j usarem o Udev, o pacote ainda est em desenvolvimento. Isso significa que alguns programas podem ser adicionados e outros descartados (incluindo o prprio antigo binrio udev ). As diferenas entre as distribuies e entre diferentes verses da mesma distribuio so grandes em alguns casos. Isso significa que a maior parte da documentao disponvel na Internet obsoleta. Se voc usar a verso do Udev fornecida pela sua distribuio, no deve haver dificuldade. Mas se voc quiser modificar a configurao, no ter alternativa alm de ler os scripts fornecidos com o pacote. Voc encontrar algumas notas sobre como programar suas prprias regras de Udev em [2], mas essas pginas no so precisas em todos os aspectos.

Concluses

Aplicao Barramento do sistema HAL

Aplicao

Mais Informaes
D-Bus Barramento da Sesso Udev
[1] Pgina do Udev: http://www.kernel.org/pub/linux/ utils/kernel/hotplug/udev.html [2] Como escrever regras do Udev: http://reactivated.net/ writing_udev_rules.html [3] Gerenciador de Rede do Gnome: http://www.gnome.org/ projects/NetworkManager [4] LUKS: http://www.redhat.com/ magazine/012oct05/features/hal

Kernel

Hardware
Figura 3 As interaes entre os componentes seguem esse esquema.

60

http://www.linuxmagazine.com.br

BOINC | SYSADMIN

Construa seu prprio grid computacional com o BOINC

Ciclos ociosos

SYSADMIN

A computao em grid permite que pequenos PCs resolvam grandes problemas. Voc pode usar o sistema de grid do famoso projeto SETI@home para criar suas prprias solues de grid computacional. por Marc Seil

Magnus Skarstedt www.sxc.hu

om o advento da sociedade da pode-se usar um desktop ocioso para informao, os PCs de escrit- processar sinais biomdicos ou simular rio multiplicaram-se a um ritmo um modelo ambiental. O projeto de computao distribuda estonteante na maioria das empresas. Esses computadores compartilham a em grid mais famoso o SETI@home. maioria de seu tempo com uma tarefa O SETI (que signica Search for Extramuito comum: o cio. Atividades como Terrestrial Intelligence [1], ou Busca por navegar na Internet ou trabalhar em um Inteligncia Extraterrestre) utiliza PCs documento do escritrio no so desa- ligados Internet ao redor do mundo para os para os processadores atuais. Se voc buscar comunicaes inteligentes vindas estiver de frente para o PC e no estiver do espao. As tarefas de gerenciamento do codicando udio ou vdeos, execute o grid do SETI@home so organizadas atravs comando uptime. A ocupao mdia cer- de um sistema conhecido como Berkeley tamente estar abaixo de 1.0. Esse nvel Open Infrastructure for Network Compubaixo de uso indica uma carga de trabalho ting (BOINC) [2]. O BOINC tambm o pequena em seu PC, o que signica que mecanismo por trs de outros esforos de seu chefe pagou demais por ele. computao em grid, como o BBC Climate Uma idia bsica por trs da compu- Change Project, que permite que usurios tao em grid usar esses ciclos ociosos domsticos ajudem a desenvolver modeda CPU para algo til. Por exemplo, los climticos, e o projeto Einstein@home,

que pe PCs domsticos para processar a tarefa de anlise de dados de detectores de ondas gravitacionais. O sistema livre BOINC est disponvel para qualquer um que deseje baixlo, o que signica que voc pode usar o BOINC para criar e usar suas prprias aplicaes de computao em grid. Caso voc tenha um problema grande, e queira que o mundo inteiro trabalhe nele, ou at mesmo se voc s quiser dar aos PCs da sua empresa algo para fazerem no tempo ocioso, o BOINC fornece a infra-estrutura necessria. Este artigo descreve como congurar uma infra-estrutura de grid computacional com o BOINC em sistemas Gentoo Linux, e como implementar e rodar uma aplicao de demonstrao para clientes BOINC dedicados.

Linux Magazine #25 | Novembro de 2006

61

SYSADMIN | BOINC

A idia por trs de um sistema de grid Note que este artigo no cobre os ascomo o BOINC deixar que os compu- pectos de segurana dessa configurao, tadores clientes emprestem seus ciclos que pode variar de acordo com a sua de CPU para resolver pequenas partes de rede e as polticas da sua empresa. Alm um grande clculo. Para que o sistema disso, os prximos passos baseiam-se funcione, o grid precisa de um sistema num sistema Gentoo Linux. Contudo, servidor que cumpra vrias importantes os procedimentos devem ser semelhantarefas de gerenciamento. As tarefas cor- tes para outras distribuies. respondem s seguintes categorias: O servidor BOINC exige alguns pa Descoberta e monitoramento de recur- cotes que fazem parte da maioria das sos quais ns esto cando ociosos, distribuies de Linux. O Apache, PHP e qual seu status? e Python oferecem a interface para o Alocao de recursos enviar trabalho usurio e o sistema de passagem de menaos ns ociosos; sagens. Um banco de dados MySQL Mensagens permitir comunicao o esqueleto das tarefas de gerenciamenentre os ns; to do grid. Durante a instalao dessas Segurana se recursos pblicos (como ferramentas obrigatrias, importante a Internet) fazem parte do grid, e pro- que as interaes entre pacotes sejam teger as tarefas, dados, ns e o prprio respeitadas (por exemplo, os mdulos grid contra possveis invases. de MySQL do Python). A ecincia do sistema de grid depende diretamente da ecincia dessas [root] $ USE=mysql php xml emerge -avt python apache mysql php tarefas de gerenciamento. mysql-python pecl-pdo-mysql Numa viso simplicada (gura 1), um grid BOINC consiste de um servidor e vrios computadores clientes Para ativar o mdulo do PHP, a opo (ns). O servidor BOINC, que pode -D PHP5 deve estar presente no arquivo rodar em vrias mquinas, gerencia as de configurao /etc/conf.d/apache2. tarefas relativas ao grid e envia as tarefas O PHP4 tambm funciona bem. Para computacionais (unidades de trabalho) verificar se o mdulo do Apache para aos ns. Estes ligam-se a um projeto PHP est ativo, um pequeno script BOINC atravs de um aplicativo cliente PHP (exemplo 1) relatar qual verso BOINC. A Internet pode proporcionar o do PHP est disponvel. A seguir, o usurio boincadm deve caminho de comunicao entre os ns e ser criado no servidor. Esse usurio o servidor BOINC.

Servindo o grid

Comeando

Exemplo 1: ola.php
01 <?php 02 echo Ola Mundo!; 03 phpinfo(); 04 ?>

responsvel por executar as tarefas de gerenciamento do grid. O usurio deve estar no mesmo grupo que o do servidor web Apache (chamado apache), para simplificar a configurao. Se o banco de dados MySQL ainda no estiver rodando, pode-se inicializ-lo com os seguintes comandos como root:
$ mysql_install_db $ /etc/init.d/mysql start $ /usr/bin/mysqladmin -u root password SENHA_DO_MYSQL

O usurio boincadm precisa ter direitos suficientes de acesso para acessar o banco de dados e criar um novo banco de dados. H diferentes possibilidades para permitir a administrao do banco de dados, mas alguns comandos SQL tambm conseguem cumprir a tarefa.
$ mysql -u root -p mysql> GRANT ALL ON *.* TO boincadm@localhost; mysql> SELECT * FROM mysql.user WHERE user=boincadm;

Os pacotes do software de backend agora j esto disponveis para o BOINC.

Compilao do BOINC
Para obter os fontes, pode-se fazer um checkout do CVS com o usurio boincadm. O checkout vai baixar o software cliente BOINC, os aplicativos servidores, e algumas ferramentas que simplificam a criao e administrao de projetos do BOINC.
$ cvs -d :pserver:anonymous: @alien.ssl.berkeley.edu:/home/cvs/ cvsroot checkout -r boinc_core_release_5_3_31 boinc

Figura 1 A infra-estrutura do BOINC com um servidor centralizado gerenciando o grid.

Os scripts de configurao que vm no pacote, _autosetup e configure, configuram o cdigo-fonte para a compilao. Um simples make far o resto. Em alguns casos, pode ser ne-

62

http://www.linuxmagazine.com.br

BOINC | SYSADMIN

cessrio instalar algumas bibliotecas para resolver todas as dependncias e compilar os fontes. Se dependncias no satisfeitas forem encontradas durante a compilao, confira a lista de dependncias disponvel no site oficial do BOINC [3].
$ cd boinc $ ./_autosetup $ ./configure --enable-server --disable-client --without-x $ make

Exemplo 2: html/project/project.inc
01 02 03 04 05 06 ... define(EMAIL_FROM, boincmaster@tuxindustry.net); $USE_PHPMAILER=true; $PHPMAILER_HOST=smtp.tuxindustry.net; $PHPMAILER_MAILER=smtp; ...

Exemplo 3: ./project.xml
01 <boinc> 02 <platform> 03 <name>i686-pc-linux-gnu</name> 04 <user_friendly_name>Linux/x86</user_friendly_name> 05 </platform> 06 <app> 07 <name>uppercase</name> 08 <user_friendly_name>Aplicacao de exemplo da Linux Magazine</user_friendly_name> 09 </app> 10 </boinc>

Rode o script de sanidade para vericar se as partes cruciais do BOINC esto conguradas corretamente:
$ ./test/test_sanity.py

Estrutura de um projeto
Antes de voc enviar tarefas aos ns, necessrio criar um projeto.
$ ./tools/make_project --delete_prev_inst --user_name boincadm --drop_db_first --project_root $HOME/projects/test_setup --key_dir $HOME/projects/test_setup_keys --url_base http://boinc.tuxindustry.lu/ --db_user boincadm test_setup

Exemplo 4: ./templates/wu_uppercase
01 02 03 04 05 06 07 08 09 10 11 12 <file_info> <number>0</number> </file_info> <workunit> <file_ref> <file_number>0</file_number> <open_name>in</open_name> <!-- open_name o nome do arquivo de entrada usado pela aplicao --> </file_ref> <delay_bound>600</delay_bound> <!-- Um limite mximo de tempo (em segundos) entre enviar uma WU a um cliente e receber uma resposta --> </workunit>

tup ,

Depois de criar o projeto test_seo console pedir com algumas mensagens para que se atualize a configurao do Apache. Essa informao usada para acessar o projeto atravs de um navegador web e os Uma vantagem do grid BOINC sua clientes BOINC. Pode-se ajustar os escalabilidade dinmica. Isso inclui o direitos dos usurios para o projeto gerenciamento autnomo de usurios com o chmod . (ns), o que reduz as tarefas administrativas. As conguraes padro de projeto $ cd $HOME/projects/test_setup/ desativam a criao de usurios atravs $ cat test_setup.httpd.conf >> da interface web do projeto. Para ativar /etc/apache2/httpd.conf # como root esse recurso, deve-se ajustar o arquivo $ /etc/init.d/apache restart # como root config.xml, localizado no diretrio raiz $ chmod -R a+r ~/projects/ do projeto. Mude a entrada <disable_account_creation> de 1 para 0. Agora o projeto j est disponvel O pacote phpmailer ajuda a garantir e pode ser acessado atravs de um a criao fcil e transparente de usurios. navegador web. A URL de destino Baixe o phpmailer em http://phpmailer. definida pelas configuraes de sourceforge.net e instale-o no local das alias do Apache (por exemplo, http:// extenses php.inc. Essa pequena extenboinc.tuxindustry.net/test_setup ). Se so permite que o servidor do projeto o servidor precisar ser fortalecido, envie informaes aos usurios que se pode-se revisar o chmod , caminhos registrarem no BOINC. Pode-se conimportantes e tambm a configura- gurar esse recurso de envio de emails o do Apache; caso contrrio, os acrescentando algumas linhas ao arquivo padres funcionam bem. Pode-se PHP do projeto, project.inc. Esse arquivo omitir nessa etapa as entradas do cron se encontra no diretrio html/project do para simplificar a depurao. projeto BOINC (exemplo 2).

Criar usurios

Criando uma aplicao


Depois de criar uma conta pela interface web, hora de adicionar uma aplicao a ser executada pelos ns. Os fontes do BOINC incluem um diretrio app, que abriga algumas aplicaes de exemplo. A aplicao uppercase, que servir de exemplo neste artigo, transforma todos os caracteres de um arquivo ASCII normal em maisculos. Os dados de entrada devem conter o nome de arquivo in, e o arquivo de sada correspondente deve se chamar out. Essa aplicao tambm pode ser iniciada sem um cliente BOINC, o que pode ajudar na depurao. Copie a aplicao para o diretrio do projeto, app/uppercase. APPNAME_VERSMAJOR.VERSMINOR_PLATFORM define a conveno para o nome. A verso indica quais clientes BOINC podem executar a aplicao. Somente a verso principal (VERSMAJOR) responsvel pela identificao do cliente. No exemplo a seguir,

Linux Magazine #25 | Novembro de 2006

63

SYSADMIN | BOINC

Exemplo 5: ./templates/re_uppercase
01 02 03 04 05 06 07 08 09 10 11 12 13 14 <file_info> <name><OUTFILE_0/></name> <generated_locally/> <upload_when_present/> <max_nbytes>10000000</max_nbytes> <url><UPLOAD_URL/></url> </file_info> <result> <file_ref> <file_name><OUTFILE_0/></file_name> <open_name>out</open_name> <!-- open_name identifica o nome do arquivo de resultado da aplicao --> </file_ref> </result>

um cliente com a verso 5.4.9 conseguiria executar a aplicao. Devido ao fato de os clientes BOINC poderem rodar em mquinas Windows, Mac OS X e Linux, tambm necessrio indicar a plataforma de destino (as convenes para nomes de plataformas esto em http://boinc.berkeley. edu/platform.php).
$ cd apps && mkdir uppercase $ mv ~/boinc/apps/upper_case uppercase_5.0_i686-pc-linux-gnu

Agora crie o arquivo project.xml (exemno diretrio raiz do projeto, e termine o uxo de trabalho application add executando os comandos de projeto ./bin/xadd e ./bin/update_versions.
plo 3)

Antes de os ns comearem a executar a aplicao e processar algum dado, necessrio criar uma unidade de trabalho (WU, ou work unit). Uma WU dene a aplicao e os dados a serem executados e processados pelo cliente. As unidades de trabalho so descritas por um modelo de unidade de trabalho e outro de resultado. O modelo de unidade de trabalho (exemplo 4) descreve a referncia dos dados de entrada (nesse caso, o arquivo in) no n de destino.

Unidade de trabalho

O modelo de resultado (exemplo 5), get_nresults tem que ser maior ou igual por outro lado, descreve a referncia a min_quorum. O ltimo argumento test. dos dados de resultado (o arquivo de txt especica os dados sobre os quais a resultados out). Pode-se criar ambos os WU deve ser aplicada. O arquivo com os modelos no diretrio templates/. dados precisa estar presente no diretrio Aps criar os arquivos de modelo, co- de download. Depois de criar a WU, um pie o arquivo que contm o texto a ser novo subdiretrio criado em download/ alterado para o diretrio de download. J contendo os dados, que sero passados est tudo preparado para a chegada de para um n ocioso que pode ser alocado uma unidade de trabalho. pelo servidor BOINC. Tenha em mente o fato de que os fontes do BOINC tambm fornecem uma API para criar unidades de trabalho e Cada unidade de trabalho identicada inseri-las no grid. por um ID nico, que gerenciado pelo servidor BOINC e o banco de dados. A ferramenta create_work usada para passar trabalhos para o grid. As tarefas de gerenciamento do servidor BOINC so realizadas pelos chamados ./bin/create_work \ daemons e las do servidor BOINC. Os -appname uppercase \ daemons geralmente enchem as las e as -wu_name wu_uppercase_01 \ usam para acionar tarefas de gerenciamen-wu_template templates/wu_uppercase.xml \ to. Exemplos de daemons incluem: -result_template feeder assegura que os ns tenham templates/re_uppercase.xml \ -min_quorum 1 \ trabalho; -target_nresults 1 \ transitioner lida com o estado da text.txt transio das unidades de trabalho enviadas e dos resultados recebidos; A WU se chama wu_uppercase_01, que le_deleter apaga os arquivos de armazenada como todas as outras opes entrada e resultados de acordo com polticas denidas; do banco de dados test_setup. O argumento min_quorum dene quantos resulta- sample_dummy_validator verica dos retornados precisam ser equivalentes se os resultados enviados pelos ns para validar uma WU. O valor de tarso vlidos;

Inserindo uma WU

Iniciando os daemons

Exemplo 6: ./cong.xml
01 02 03 04 05 06 07 08 09 10 11 <boinc> .... <daemons> <daemon><cmd>feeder -d 3</cmd></daemon> <daemon><cmd>transitioner -d 3</cmd></daemon> <daemon><cmd>file_deleter -d 3</cmd></daemon> <daemon><cmd>sample_trivial_validator -d 3 app uppercase</cmd></daemon> <daemon><cmd>sample_dummy_assimilator -d 3 app uppercase</cmd></daemon> </daemons> ... </boinc>

64

http://www.linuxmagazine.com.br

BOINC | SYSADMIN

sample_dummy_assimilator verica ao qual se ligar, que, nesse caso, est se foi gerado um resultado vlido pe- em http://boinc.tuxindustry.lu/test_selas unidades de trabalho ou se houve tup, e um par vlido de email e senha para autenticar. algum erro. As descries simplificadas dos daemons devem ser suficientes para $ sh boinc_5.*.*_i686pclinuxgnu.sh se visualizar o fluxo de unidades de $ cd BOINC $ ./run_manager #inicia o cliente trabalho (veja o wiki do BOINC [4] para uma descrio detalhada). Os daemons encontram-se no diretrio bin/ Depois de algum tempo ocioso no do projeto e precisam ser adicionados n do grid, o cliente comear a baixar ao arquivo de configurao do projeto, a WU e subir o resultado para o servidor. Veja as mensagens do cliente para config.xml (exemplo 6). Aps atualizar a congurao do proje- v-lo baixando a aplicao uppercase e to, j possvel iniciar o servidor BOINC enviando os resultados. Se a WU for processada corretamencom ./bin/start. O estado do servidor pode ser consultado em http://boinc.tu- te, o crdito do respectivo n aumentar. xindustry.lu/test_setup/server_status.php, Pode-se vericar seu crdito na seo Your e atualizado a cada dez minutos. account da pgina do projeto. Para receber algum retorno durante a delegao e o processamento de trabalhos, pode ser interessante vericar O servidor j est pronto e esperando os os registros do servidor, que cam no clientes conectarem. Baixe um cliente diretrio log_boinc do diretrio home do BOINC com um nmero que reita projeto test_setup. No lado do cliente, a a conveno de nome da aplicao aplicao BOINC cria diretrios dedicauppercase. dos aos projetos aos quais o n est ligado. O cliente est disponvel na seo Esses diretrios contm as unidades de Download da pgina do projeto test_setup. trabalho (aplicao, descrio e dados) A aplicao cliente pedir um projeto que sero processados pelo n.

No final, voc ter um grid BOINC bsico rodando. Agora voc j pode comear a implementar suas prprias aplicaes e aumentar o grid com mais ns. Este artigo foi somente uma breve introduo, mas deve simplificar os passos para se colocar em funcionamento um primeiro servidor de testes. Espero que tenham gostado desta curta viagem ao mundo futurista da computao distribuda.

Concluso

Mais Informaes
[1] Search for ExtraTerrestrial Intelligence
(SETI@home):

http://setiathome.berkeley.edu [2] Berkeley Open Infrastructure for


Network Computing:

Ligando os ns

http://boinc.berkeley.edu [3] Dependncias para a compilao: http://boinc.berkeley.edu/ build.php [4] Wiki no ocial do BOINC: http://boinc-wiki.ath.cx/

Linux Magazine #25 | Novembro de 2006

65

SYSADMIN
Embelezando a janela do terminal

Shell ilustrado
O Bashish d um toque de estilo linha de comando. por Frank Wieduwilt

e voc usurio freqente da linha de comando, deve gostar da aparncia espartana da janela de terminal. Mas para usurios eventuais da shell, ou para leitores que prefeririam um visual mais divertido, o Bashish [1] abre uma arca do tesouro de opes. O Bashish d um fundo grco em ASCII sua janela de terminal. O programa permite que voc melhore a aparncia dos programas de terminal, como Gnome Terminal, Xterm, Rxvt, Rxvt Unicode, Aterm, Mlterm e o console do Linux, e voc tambm pode modicar um conjunto limitado de conguraes, tais como a barra de ttulo da janela do emulador de terminal do KDE. O desenvolvedor do Bashish, Thomas Eriksson, planeja estender o suporte ao Konsole tambm. Ele recomenda usar a shell Bash, mas o programa tambm suporta outras shells como o Zsh e o Tcsh. Se possvel, bom que o terminal suporte o conjunto de caracteres Uni-

code. Vrios dos temas que vm com o pacote do Bashish incluem caracteres como linhas e smbolos de baralho que no so suportados por conjuntos de caracteres mais antigos, como ISO-8859-1 e ISO-8859-15. Para instalar uma verso funcional do Bashish, ser necessria uma verso recente do Bash (verso 2.04 ou mais nova). Tambm ser preciso uma verso recente de seu programa de terminal. No conseguimos usar o Bashish com a verso do Rxvt includa no Mandriva 2006. O programa de terminal travou com a maioria dos temas que experimentamos. J a verso fornecida com o Ubuntu 6.06 funcionou sem qualquer problema, assim como o Rxvt que vem no Suse 10.1. Aps mudarmos para a verso Unicode do Rxvt, disponvel na Web [2], o Bashish nalmente funcionou Figura 1 no Mandriva.

Para instalar o Bashish, primeiro descompacte o arquivo com o cdigo-fonte, bashish-2.0.5.1.tar.gz, e depois prossiga com os familiares ./configure && make && make install para compilar e instalar. Depois de terminar a instalao bsica, digite o comando bashish em um programa de terminal. A ferramenta agora perguntar qual shell voc prefere, e

Instalao

A janela do emulador de terminal Rxvt Unicode com o tema Urbandawn.

66

http://www.linuxmagazine.com.br

Bashish | SYSADMIN

ento vai congur-la para carregar o a seu status anterior. O script Bashish automaticamente quando voc que chama o programa no iniciar essa shell. impede que o usurio passe Voc j pode iniciar uma nova shell parmetros para o programa com o comando exec bash. A nova shell re- de interesse. etir as conguraes padro do Bashish, O Bashish armazena que pedem uma fonte azul-clara sobre scripts de chamada de proum fundo preto. Para apagar o Bashish, gramas no diretrio bashish/ simplesmente inicie o programa com a launcher dentro do diretrio opo --uninstall. home do usurio. Temas para Figura 2 aplicativos especficos localizam-se em bashish/bt/app. O Bashish possui um diretrio com o O Bashish agrupa as melhorias da shell nome do programa. Infelizmente, nem os temas, nem em chamados temas. Um tema inclui os dados do grfico de fundo e o prompt. os prompts se mostraram muito estPara iniciar a shell sem um tema, pri- veis. Alguns prompts impediram que meiro rode a ferramenta Bashishthe- a sada de comandos simples como me. O dilogo inicial pede que voc less e ps fosse mostrada na tela. O especifique se quer usar o prompt para tema Urbandawn, mostrado na figua shell em geral, ou se simplesmente ra 1, impediu algumas vezes que os gostaria de aplicar as mudanas a um dados fossem mostrados no terminal. programa especfico. O Bashish tambm calcula errado o Se voc estiver simplesmente em- tamanho da janela de terminal com belezando a shell, selecione a entrada certa freqncia, deixando o usurio prompt theme at the command prompt com somente uma parte da sada do no menu. Uma lista aparecer, dei- programa. xando voc especificar os detalhes do Alguns programas como o Playmp3list, tema. Depois de escolher o aspecto por exemplo, no iniciaro em qualquer e possivelmente modificar a cor do tema do Bashish diferente do padro. fundo, voc pode sair do programa de O Playmp3list trava com uma falha de configurao. Depois disso, a janela segmentao, independente dos outros de terminal deve ficar completamente temas tentados. E o navegador em modo diferente (figura 1). texto Elinks fechou em nossos testes, bom voc experimentar com os recusando-se a iniciar com qualquer papis de parede que vm com a dis- tema do Bashish carregado. tribuio. Os nostlgicos talvez queiram experimentar os prompts com o prefixo computer/. Por exemplo, voc pode mudar o prompt para se parecer Em uma instalao padro a partir do com o DOS; o Bashish at converte as cdigo-fonte, os arquivos de temas localibarras dos caminhos de diretrio para zam-se em /usr/local/share/bashish/themes. contra-barras (figura 2). Os elementos binrios cam guardados Nos rios de cores que o Bashish dis- em arquivos TGZ separados, com a extribui entre o prompt e a sada normal tenso bt; obviamente, no possvel do programa, pode-se ser mais seleti- editar arquivos desse formato. Se voc vo, associando temas a aplicativos es- quiser modicar um tema, comece atipecficos. Para isso, selecione o item vando o tema no Bashishtheme. Depois, application theme selected applica- os componentes do tema caro no diretion no menu principal de temas do trio ~/.bashish/bt/cache/. Agora copie Bashish. Essa opo leva o usurio a os arquivos texto para um novo diretrio um dilogo onde este pode digitar o e carregue-os para edio com um editor nome do programa requerido e depois que suporte Unicode. selecionar um dos temas. O Bashish O arquivo Theme contm detalhes ento salvar um script de incio que sobre o autor e as cores usadas pelo usa o nome do programa no caminho tema; o Prompt.bash fornece a denio desse programa. do prompt, incluindo os grcos que o Quando o programa for iniciado, o Bashish mostrar na tela. Os comandos script que o chama primeiro adiciona o do Bashish esto documentados em [3]. tema selecionado shell, antes de seguir A documentao no muito estrutuchamando o software de interesse. Ao rada e possui algumas omisses, que s sair do programa, o script volta a shell vezes nos deixam somente a abordagem

Um terminal Rxvt mascarado como o antigo sistema operacional DOS.

Cores na shell

da tentativa e erro. A soluo mais fcil usar um tema j existente como ponto de partida para seus experimentos. Depois de terminar suas modicaes, entre no diretrio que contm os arquivos do tema e digite bashishtheme save. Se voc criou um tema novo, o Bashish perguntar onde voc deseja salv-lo.

O Bashish acrescenta cor e variedade ao cinza normal do dia-a-dia. O programa ainda est longe de se livrar de todos os bugs; alguns temas impedem que os dados sejam mostrados no terminal, e h programas que simplesmente travam ao ver o Bashish. Outro problema a desorganizada documentao do Bashish, o que diculta a criao de seus prprios temas, a menos que se esteja querendo experimentar.

Concluses

Faa seu tema

Mais Informaes
[1] Bashish: http://bashish.sourceforge.net [2] Rxvt Unicode: http://software.schmorp.de/ pkg/rxvt-unicode [3] Documentao do Bashish: http://bashish.sourcefoge.net/ doc.html

O autor
Frank Wieduwilt estudou originalmente Histria, mas j trabalha h vrios anos como autor tcnico freelancer para vrias empresas de publicao em Berlim, Alemanha, onde escreve manuais para solues de softwares de bancos de dados. Frank colaborador freqente da Linux Magazine, especializado em tpicos SOHO, como escritrio e programas grcos.

Linux Magazine #25 | Novembro de 2006

67

SYSADMIN
Proxy HTTP com cache e ltragem de contedo em bridge

Filtro na ponte
Proxies com cache lembram-se de pginas e as servem localmente, economizando tempo e dinheiro. Os membros mais inteligentes dessa famlia tambm apagam contedo perigoso e oferecem bridging transparente. por Tobias Eggendorfer
uando vrios usurios na mesma rede acessam a mesma pgina da Internet diversas vezes, pagase um preo de tempo e banda. Um proxy com cache reduz o trfego, guardando pginas web pedidas pelos usurios e servindo-as quando requisitado. Um proxy HTTP com cache como o Squid [1] roda na camada 7 do modelo OSI ( Open Systems Interconnection ); em outras palavras, o servidor proxy Squid fala o protocolo da aplicao e consegue reconhecer os dados trafegados. Com isso, o proxy capaz de verificar o contedo da pgina e oferecer a filtragem do contedo. Dependendo da direo do destino, um pro-

xy pode tanto bloquear o acesso a pginas indesejadas, como as de contedo adulto em escolas, por exemplo, quanto manter softwares mal intencionados fora de uma rede corporativa.

Se voc instalar um proxy legado em sua rede, pode esperar uma pilha de tarefas de configurao. necessrio informar os detalhes do proxy em cada navegador, ou mand-los utilizar a auto-configurao, e modificar o firewall para negar tentativas de rotear HTTP. Como alternativa,

Mudanas chatas

68

http://www.linuxmagazine.com.br

Squidbridge SYSADMIN

Servidor web Roteador/ Firewall Internet

Bridge com filtro de contedo

Figura 1 O ltro de contedo est instalado em uma bridge, neste cenrio. Essa congurao cabe facilmente numa rede pr-existente sem a necessidade de recongurar o roteador ou os clientes.

pode-se instalar um proxy transparente usando uma regra de firewall para redirecionar para o proxy todo o trfego HTTP que sai. Entretanto, mais uma vez necessrio modificar o firewall. Seria muito mais elegante simplesmente conectar o proxy rede atrs do ltimo switch e frente do roteador. Essa soluo, que elimina a necessidade de se modificar os navegadores dos clientes ou o roteador, um resqucio do papel de uma bridge ou switch. O objetivo original de uma bridge era organizar o trfego da rede baseado em endereos MAC, conseqentemente segmentando a rede. Porm, o kernel Linux atual permite que os administradores sofistiquem o funcionamento da bridge incluindo o papel de firewall invisvel baseado na filtragem na camada TCP.

Para instalar o proxy, provavelmente o melhor comear instalando um sistema Linux mnimo. A mquina precisa de duas placas de rede, que no recebero endereos IP por enquanto. Como geralmente ser necessrio recompilar o kernel (para ativar o bridging), e aproveitando que recomendvel compilar e instalar o Squid e o DansGuardian a partir do cdigo-fonte (veja abaixo), sero necessrios os respectivos pacotes de desenvolvimento no sistema. Antes de se colocar a bridge para funcionar, deve-se limpar a mquina e remover quaisquer pacotes que no sejam mais necessrios.

Congurao bsica

[2]).

Ao compilarmos o kernel, importante termos certeza de selecionar os drivers apropriados s controladoras de rede e de disco rgido. Alm disso, o kernel deve obrigatoriamente suportar o bridging (figura 2). Administradores cuidadosos com a segurana certamente instalaro patches como o GR Security [3]. Depois de iniciar o sistema com o novo kernel, precisaremos configurar uma bridge: o comando brctrl addbr br0 adiciona um novo dispositivo de rede chamado br0. Como uma bridge exige duas placas de rede, necessrio associar duas placas a ela, com os seguintes comandos:
brctrl addif br0 eth0 brctrl addif br0 eth1

Conveniente e prtico
Uma abordagem prtica rodar um filtro na camada da aplicao em uma bridge (figura 1). Esse casal bizarro pode ser facilmente integrado a uma rede pr-existente sem obrigar o administrador ou os usurios a modificar a configurao dos roteadores, clientes ou aplicativos. A nica forma de atravessar o proxy usando um tnel, como SSH ou OpenVPN. Entretanto, a opo do tunelamento est sempre aberta, independente da soluo que se use, e pressupe que se tenha um maior conhecimento e se dedique mais trabalho. Quem quer que crie um tnel para evitar o proxy necessita de um servidor baseado na Internet para servir como ponto de destino do tnel, e deve ter a possibilidade de instalar softwares na outra ponta do tnel.

Para tornar o sistema mais seguro, o melhor compilarmos um kernel esttico sem suporte a mdulos. Essa configurao desabilita a interface de mdulos explorada por diversos rootkits de kernel (veja mais sobre rootkits em

Questes do kernel

Em seguida, usamos o comando ip para iniciar as placas de rede e a bridge:


ip link up eth0 ip link up eth1 ip link up br0

Figura 2

A opo BRIDGE em Networking | Networking support | Networking options | 802.1d Ethernet Bridging especica se o kernel (2.6.17.7, nesse caso) suportar o modo bridge.

Linux Magazine #25 | Novembro de 2006

69

SEO | Assunto

Servidor web

Para o servidor Resposta ao servidor

Requisio

Squid

Website

Internet

OK Para o servidor Resposta do servidor

Para o redirecionador

Redirecionador do Clam AV

Figura 3 Buscando vrus com o redirecionador do ClamAV.

J podemos testar a bridge agora. Depois, prosseguimos descompacVamos simplesmente lig-la rede. tando e configurando o Squid: ./conEla deve passar pacotes entre os dois figure --enable-linux-netfilter segmentos da rede, mas podemos usar --disable-ident-lookups . O priuma ferramenta de anlise de rede meiro parmetro desabilita o suporte como o tcpdump [4] para verificar ao Netfilter do Linux no Squid. Esse se isso est funcionando. Se preferir- passo necessrio se quisermos usar mos, podemos configurar agora um o Squid como um proxy transparente. firewall com iptables , e Physdev-Ma- O segundo parmetro desativa requitch ou ebptables . sies de Ident feitas pelos clientes, apesar de normalmente o Ident nem estar instalado, ou ser bloqueado pela maioria dos firewalls. Dependendo necessrio instalarmos o Squid pri- da nossa preferncia, podemos usar meiro, para o proxy. Para baixar o c- o parmetro --prefix=/usr/local/ digo-fonte de [1], o sistema de bridge squid para colocar tudo isso em um precisa de um endereo IP e uma diretrio. Depois, completamos com entrada de gateway padro na tabela os comandos para compilar e instalar de roteamento. Os comandos a seguir o Squid: make && make install. cuidam disso: O prximo passo modificar os arquivos de configurao do Squid ifconfig br0 192.0.2.8 de acordo com nossas necessidades. netmask 255.255.255.0 O prefixo mencionado acima instala route add default o arquivo squid.conf no diretrio /usr/ gw 192.0.2.1 local/squid/etc . Os administradores

no tero muito o que fazer nesse arquivo a porta onde o Squid ouvir s uma questo de gosto; o padro a 3128. Se preferirmos mudar a porta, s acrescentarmos a seguinte linha configurao do Squid:
http_port 127.0.0.1:65080

Instalao do Squid

Isso faz o proxy escutar na porta 65080. O comando tambm configura o Squid para garantir que somente o proxy na mquina local vai reagir a conexes. Isso necessrio para a filtragem posterior de contedo. O Squid suporta o protocolo ICP (Inter Cache Protocol), que permite que proxies troquem contedo do cache entre si. Esse suporte irrelevante em nosso caso, e podemos desativ-lo facilmente: icp_port 0. Alm disso, uma entrada de ACL (Lista de Controle de Acessos, na sigla em ingls) garante que s a mquina local possa acessar o Squid: http_access allow localhost.

Servidor web Requisio Internet Squid Dansguardian Website

Cache
Figura 4 Colocar o ltro de contedo DansGuardian entre os usurios e o proxy de cache Squid garante que o DansGuardian aplicar as regras de ltragem a todas as requisies.

70

http://www.linuxmagazine.com.br

Squidbridge SYSADMIN

Filtragem de contedo

O proxy ainda est rodando sem um filtro de contedo. Temos diversas opes aqui, mas elas se tornam fceis quando decidimos o que queremos que o filtro faa. O mais comum costuma ser proteger mquinas Windows inseguras contra programas mal-intencionados que tentem chegar a elas atravs de respostas HTTP. Em outros ambientes, talvez precisemos de um filtro para bloquear o acesso a certos tipos de contedo e websites indesejveis. Por exemplo, escolas costumam estipular que sites com contedo adulto ou ilegal devem ser bloqueados. Vamos tentar nos manter fora da discusso sobre a utilidade e a efetividade desse tipo de ao, pelo menos por enquanto o exemplo a seguir no leva nada A alternativa adicionar um proxy de disso em conta, concentrando-se na filtragem de contedo na frente ou luta contra vrus malvolos. atrs do Squid. O DansGuardian [6] Novamente, nossa escolha de um candidato possvel. O melhor antivrus uma questo de gosto. local para colocar o DansGuardian Em um ambiente todo de Cdigo entre o proxy e a rede interna (figura Aberto, um antivrus igualmente 4, apesar de ambas as tarefas podeaberto como o ClamAV [5] costu- rem ser executadas em uma nica ma ser o preferido. As etapas para mquina). Isso significa que pedidos configurar outros antivrus so se- vindos da rede interna primeiro sero melhantes; escolher um deles ou enviados ao DansGuardian, que os at mais de um deve ser uma tarefa repassa para o Squid e recebe uma suficientemente simples. resposta do mesmo Squid possiH vrias solues para integrar velmente do cache, se o Squid j o filtro de contedo com o Squid: viu esse pedido antes e verifica a a interface do redirecionador resposta em busca de vrus, worms uma opo bastante popular. O e outras pragas. Em teoria, seria possvel inverter Squid passa a URL baixada e todos os parmetros para esse script. De- a ordem, colocando o proxy de filpendendo do valor retornado pelo tragem de programas maliciosos do script, o Squid busca o documento lado de fora e o proxy de cache do apontado pela URL. Isso faz sentido lado de dentro (figura 5). A vantagem se o filtro simplesmente inspecionar dessa abordagem que o antivrus s a URL, e no o documento para o precisa verificar uma vez cada arquivo qual ela aponta. baixado. Essa configurao minimiza a busca de programas maliciosos, mas tambm impe um problema de segurana. Se o antivrus deixar um vrus passar, essa praga se estabelece no cache do proxy, a salvo de No caso de antivrus, cuja interface deteces futuras, mesmo que uma pode ser fornecida pelo SquidCla- atualizao das assinaturas de vrus mAVRedirector , o redirecionador possa revelar a ameaa. Se o proxy no uma boa soluo. Primeira- de filtragem estiver entre o usurio e mente, ele baixa a URL, evitando o proxy de cache, conseguir varrer o Squid nesse processo; depois, ele vrus em todas as pginas pedidas, analisa o contedo e d ao Squid sem importar se a pgina est sendo o aval para que ele pea a pgina servida diretamente pelo cache ou ( figura 3 ). Em outras palavras, cada por um servidor externo.

download gera o dobro do trfego que exatamente o que queramos evitar com o uso de um proxy com cache. Usando alguns macetes, podemos convencer o redirecionador a deixar o Squid cuidar do download. Esse passo envolve configurar o Squid para evitar passar pedidos da mquina local para o SquidClamAVRedirector, e portanto o travamento num lao infinito. Mas essa abordagem problemtica quando em conjunto com um proxy transparente, pois, na viso do Squid, todos os pedidos parecem vir da mquina local. Adicione a isso uma configurao desleixada e provavelmente voc concordar que essa no a melhor abordagem.

Corrente de proxies

Obstculos ao redirecionador

Linux Magazine #25 | Novembro de 2006

71

SEO | Assunto

Servidor web Requisio Internet Antivrus Squid Website

Cache
Figura 5 Colocar o ltro de contedo no lado da Internet menos seguro. Cada arquivo s vericado uma vez. Se um vrus conseguir chegar ao cache, nunca ser descoberto, mesmo aps a atualizao das assinaturas de vrus.

Instalao do DansGuardian
Precisamos nos certificar de que instalamos o ClamAV antes de comearmos a instalar o DansGuardian. O ClamAV bastante fcil de instalar. O website do ClamAV possui binrios para a maioria das principais distribuies de Linux. Se voc preferir compilar a partir dos fontes, os passos normais sero suficientes: ./configure && make && make install . Quando instalamos o DansGuardian, precisamos especificar uma opo para o script configure incluir o suporte ao ClamAV. Se preferirmos, podemos mover o pacote compilado para um diretrio prprio. Isso nos deixa com o seguintes trs comandos para instalar:
./configure --enable-clamav --prefix=/usr/local/dansguardian make make install

servidor web da intranet e redirecionar o navegador para essa pgina. Como alternativa, poderamos usar um servidor externo para servir uma pgina com a mensagem. O DansGuardian oferece uma pgina de exemplo em share/dansguardian.pl . A diretiva accessdeniedaddress no arquivo de configurao do DansGuardian informa qual mensagem mostrar.

Com a filtragem de programas maliciosos e um cache na bridge, a rede interna fica bem protegida contra vrus e worms que tentem explorar o HTTP. A instalao simples torna a bridge fcil de usar. Depois de configurar a mquina, simplesmente conecte-a a qualquer rede sem modificar a configurao dos clientes.

Mquina limpa

Atualmente, o DansGuardian no consegue ver realmente pedidos de clientes as requisies saem direto da bridge para os servidores de destino. Uma regra do Netfilter redireciona o trfego para o filtro:
iptables -t nat -A PREROUTING -m physdev --physdev-in eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Ativao do ltro

Mais Informaes
[1] Proxy web Squid: http://www.squid-cache.org [2] Amir Alsbih, Arma secreta: Rootkits
para o kernel Linux 2.6, Linux Magazine 22, Agosto/2006, pg. 28

[3] GR-Security: http://www.grsecurity.org [4] Tcpdump: http://www.tcpdump.org [5] ClamAV: http://www.clamav.net [6] DansGuardian: http://dansguardian.org

O alvo physdev restringe o uso do proxy aos clientes de dentro da bridge. A configurao proxyport = 8080 Se no tivssemos um firewall para no dansguardian.conf informa que o proteger a bridge, seria bem fcil filtro escutar na porta 8080. Alm um agressor externo explorar o proxy disso, o filtro precisa saber em qual como um proxy aberto. porta o Squid est escutando: filSe tudo isso funcionar, todas as terport = 65080 . Por ltimo, talvez requisies web para redes externas tenhamos que descomentar a linha devem ser gravadas nos registros do contentscanner que aponta para o Cla- proxy. O sistema completamente mAV e modificar a configurao, se transparente, quando visto de dentro. necessrio. O proxy estabelece uma nova conexo O prximo passo definir a men- para pedir uma pgina, fornecendo sagem de erro que os usurios vem seu prprio endereo IP como fonte. ao pedir contedo bloqueado. A for- Os desenvolvedores esto trabalhando ma mais fcil de produzir a mensa- para eliminar esse antigo resqucio gem colocar uma pgina em nosso de proxy no transparente.

O autor
Tobias Eggendorfer consultor e professor freelancer de TI, baseado em Munique. Ele no aprecia recongurar seu prprio hardware, e espera que novos recursos de segurana suportem a integrao fcil e transparente. Apesar de a bridge com Squid ter como objetivo proteger sistemas Windows, que Tobias normalmente no usa, ele no pretende baixar e testar programas malvolos para ver se rodam no Qemu.

72

http://www.linuxmagazine.com.br

Python | PROGRAMAO

A serpente que morde a prpria cauda

Metalinguagem
Com a chegada do Ruby On Rails, os programadores esto redescobrindo um conceito no muito moderno, mas surpreendente...Programas que modicam programas? por Jose Maria Ruiz

PROGRAMAO

s linguagens dinmicas (nas quais isso melhor explicarmos um pouco o tipo de varivel definido no sobre seu significado. Podemos traduzir tempo da execuo) sempre fo- meta como a nvel superior. Metaram relegadas a linguagens de segun- linguagem a linguagem usada para da classe. Isso se deve ao costume de falar da linguagem. A metalinguagem serem empregadas para fazer o traba- est um nvel acima da linguagem que lho sujo e resolver algum problema descreve. Se digo a palavra carro um rapidamente, j que para programar substantivo, ento estou empregando algo mais srio sempre se utiliza C, o portugus para falar do portugus, C++ ou Java. e em a palavra car um substantivo Mas isso no bem verdade. As estou empregando o portugus para linguagens dinmicas possuem certas falar do ingls. Portanto, o portugus vantagens sobre as estticas, vantagens metalinguagem em ambos os casos. essas que as estticas esto constanteA metaprogramao consiste de promente tentando imitar. gramas que podem modificar a si mesUma dessas vantagens a metapro- mos ou outros programas. Dito assim, gramao. uma palavra estranha, por pode parecer um pouco complicado.

Mas imaginemos por um momento que fosse possvel trocar elementos do programa em tempo real, no dados, mas o programa em si. Podemos imaginar um objeto que fale certo protocolo (por protocolo entendemos um conjunto de mtodos que permitem interagir com o objeto, por exemplo, para guard-lo em disco rgido). A certo momento, surge a necessidade de que esse objeto fale esse protocolo, mas o projetista do programa no levou essa possibilidade em conta, de modo que isso pode ser resolvido envolvendo-se o objeto em outro objeto, ou herdando-o de uma superclasse que responda a esse

Linux Magazine #25 | Novembro de 2006

73

PROGRAMAO | Python

protocolo. Agora, se essa ocorrncia se repete com muitos protocolos, ento a hierarquia de herana das classes comea a se complicar desnecessariamente, com cdigo repetido em muitas ramificaes. O C++ tenta chegar a uma soluo atravs do uso de templates (modelos). O Java, por sua vez, fornece ao programador a reflexo (os objetos podem fazer perguntas a outros objetos) e, desde o Java 1.5, as classes genricas, algo parecido com os templates do C++. Na chamada hierarquia ou extenso horizontal, no herdamos a no ser que faamos uso das ferramentas que esto ao lado, e no acima como as superclasses. Portanto, esse tipo de extenso no requer que a hierarquia dos objetos seja aumentada com novas classes. Mesmo assim existe outra possibilidade. E se pudssemos adicionar mtodos imediatamente a nossos objetos? Dessa maneira, quando um objeto precisar falar certo protocolo, simplesmente adiciona a si mesmo os mtodos necessrios, digamos, assim como decoramos as rvores de Natal, colocando bolas e enfeites conforme desejamos.

instncia antes da modificao e adicionarmos uma funo classe depois? Veja o exemplo 2. A modificao da classe afeta todas as O objeto2 no tem imprime! Logo, suas instncias, passadas ou futuras. percebemos que a modificao do Todas essas caractersticas nos abrem objeto s afetava ele mesmo, e no o um amplo leque de possibilidades. restante das instncias da Classe1. E Podemos modificar hierarquias de como possvel conferir coisas a uma objetos na hora da execuo para que instncia? Como o Python representa as possam se adaptar a novos protocolos. instncias como dicionrios, as seguin- No vamos prestar muita ateno s metaclasses em si vamos v-las em tes assinaturas so equivalentes: um prximo artigo , mas sim em um objeto.imprime = imprime padro de desenho que nos permitir objeto[imprime] = imprime adicionar funcionalidade de maneira controlada estamos falando do paAlm disso, as funes se compor- dro Decorator. tam no Python da mesma forma que os dados; podem ser associadas a variveis e passadas como parmetros. Podemos modificar o comportamento das instncias, mas o que acontece com as classes? Para prosseguirmos, importante entendermos como funciona a pas>>> Classe1.imprime = imprime sagem de parmetros no Python. No >>> objeto3 = Classe1(Ola) Python, os parmetros de uma funo >>> objeto3.imprime() so na verdade uma lista. O interOla pretador recolhe automaticamente >>> os parmetros e gera uma lista com eles. Isso indicado no cabealho E tambm podem ser modificadas da funo mediante um * diante do automaticamente. No s isso, mas, a nome da lista que guarda os parmepartir desse momento, qualquer instn- tros. As funes aceitam ainda um Nos mticos laboratrios da Xerox em Palo cia ter acesso a essas modificaes. O dicionrio como segundo parmetro, Alto, Gregor Kiczales e outros desenvolve- que acontece se tivermos declarado a indicado mediante a apario de ** ram, em meados dos anos 90, o conceito MOP (Meta Object Protocol). Exemplo 1: Comeando A idia definir todo o mecanismo necessrio para se trabalhar em objetos 01 >>> class Classe1: 02 ... def __init__(self,valor): em dois nveis. No primeiro, o meta03 ... self.valor = valor nvel, so usadas as formas primitivas 04 ... def imprime(self): da linguagem para se criar objetos. No 05 ... print self.valor segundo, usa-se esse mecanismo (criar 06 ... classes, instncias, mtodos...) para 07 >>> objeto = Classe1(1) 08 >>> objeto.imprime = imprime voltar a defini-lo novamente. 09 >>> objeto.imprime(objeto) Qual o objetivo? Se uma classe 10 1 estiver definida com o uso de classes, 11 >>> ento voc poderia modific-la, visto que ela no passa de uma estrutura de dados que est viva durante a Exemplo 2: Declarao antes da modicao execuo do programa. Isso possibilita coisas muito interessantes. Veja 01 >>> class Classe2: o exemplo 1. 02 ... def __init__(self,valor): 03 ... self.valor = valor O que aconteceu aqui? Denimos 04 ... uma classe e uma funo, criamos uma 05 >>> objeto4 = Classe2(Ola) instncia da classe e adicionamos a funo 06 >>> def imprime(self): instncia da classe. O que acontecer 07 ... print self.valor se criarmos um segundo objeto? 08 ...

File <stdin>, line 1, in ? AttributeError: Classe1 instance has no attribute imprime >>>

Caractersticas de uma funo

Conceitos bsicos

>>> objeto2 = Classe1(2) >>> objeto2.imprime(objeto2) Traceback (most recent call last):

09 10 11 12

>>> Classe2.imprime = imprime >>> objeto4.imprime() Ola >>>

74

http://www.linuxmagazine.com.br

Python | PROGRAMAO

Exemplo 3: Decorator escreveNome


01 02 03 04 05 06 07 08 09 10 11 12 13 14 def escreveNome (f): def decorator (*args, **kwds): print ==> Executando, f.func_name f(*args, **kwds) return decorator @escreveNome def funcao(): print Oi, eu sou a funcao @escreveNome def soma(a,b): print Resultado:, a+b

para os argumentos com nome. Dessa maneira, qualquer funo aceita na verdade os parmetros:
function(*args. **kwdargs)

kwdargs

Costuma-se usar os nomes args e para nome-los. importante saber disso para podermos criar funes sem termos idia sobre quais parmetros elas aceitaro, visto que no final todas as funes aceitam esses dois parmetros na verdade.

para outra. A decorao envolve o contedo da pgina. O mundo do Python viveu uma espcie de guerra entre grupos diferentes de desenvolvedores, por tentarem encontrar a melhor sintaxe para esse padro. A comunidade Python quase obsessiva a respeito de sua sintaxe, querendo que ela seja clara e concisa. Por fim, imps-se a seguinte sintaxe:
@decorator def funo(): o_que_for

Ser que existe alguma mgica ou vodu por trs de algo to til? Por que isso no ensinado em qualquer segundo pargrafo de tutorial de Python? porque, at h pouco tempo, era extremamente complexo adicionar Decorators no Python, e mesmo com as ltimas melhorias ainda continua sendo um processo complexo.

O que um Decorator? um padro de desenho do famoso livro Design Patterns. Adquiriu sua fama por ter dado nome a vrias tcnicas j estabelecidas. Ele as reuniu e criou o conceito de padro de desenho: um conjunto de objetos e comportamentos definidos que surgem com certa facilidade no desenvolvimento de qualquer sistema de complexidade mediana. No mundo da programao orientada a objetos, so famosos muitos desses padres de desenho o Observer e o Proxy so alguns exemplos. O padro Decorator menos conhecido porque realiza uma tarefa um pouco complicada de se entender, e portanto nem todo mundo se atreve a trabalhar com ele. O Decorator modifica funes. Pode-se dizer que ele recolhe nosso cdigo e insere comportamentos adicionais. Seu nome vem do fato de podermos v-lo como um algoritmo que, na rvore de cdigo, vai acrescentando novo cdigo de forma automtica. semelhante ao que ocorre quando vemos em uma pgina web sempre o mesmo menu, na mesma posio, apesar de mudarmos de uma seo

Decorator

@decorator o nome do Decorator que iremos empregar. O Decorator sempre deve ter frente uma arroba, e deve ser seguido pela ao a ser decorada. Visto assim, no parece muito til, mas imaginemos uma funo, por exemplo VisitaWeb, qual adicionamos o seguinte Decorator:
@gravar_log def VisitaWeb(): ...

Ela guardaria em um log a informao de cada visita, com cada execuo de VisitaWeb(), e isso sem ter que acrescentar novas funcionalidades a VisitaWeb(), e ainda por cima podendo usar @gravar_log em outros lugares, como por exemplo em Compra/Efetuada() ou VisitaPerigosa. Podemos adicionar funcionalidades a cdigos j existentes sem modicar nada, simplesmente acompanhando o cdigo de uma linha que indica qual Decorator aplicar. Mas a coisa no acaba a. Podemos adicionar Decorators:
@verificar_acesso @gravar_log def VisitaWeb(): ...

Um Decorator uma funo que aceita uma funo como parmetro e devolve como resultado uma funo. Um pouco difcil, no? claro que sim, por isso comeamos com um exemplo mais simples. Queremos um Decorator que escreva na tela o nome da funo sobre a qual ele pode ser aplicado, a cada vez que ela for executada. Um Decorator no deixa de ser uma funo Python como qualquer outra. Vejamos sua definio e seu resultado no exemplo 3. escreveNome aceita uma funo e cria outra que fornecemos ao chamar decorator. O nome dessa ltima funo no importa, j que ele ser descartado, de modo que podemos usar sempre o mesmo nome para distingui-la. O objetivo dessa funo ser devolvida e entrar no lugar da funo original. A funo interna decorator adiciona o cdigo ou as operaes que sejam necessrias e executa em algum momento (ou no, dependendo do que queiramos) a funo original. Como podemos observar na execuo do exemplo 4 , agora, cada vez que for executado funo ou soma, impressa uma mensagem na tela. Se quisermos eliminar esse comportamento, temos apenas que tirar @escreveNome da definio da funo em questo.

Criar um Decorator

Linux Magazine #25 | Novembro de 2006

75

PROGRAMAO | Python

Exemplo 4: Uma amostra de Decorator


01 02 03 04 05 06 07 >>> soma(1,2) ==> Executando soma Resultado: 3 >>> funcao() ==> Executando funcao Oi, eu sou a funcao >>>

Exemplo 5: Funo fechar


01 def fechar(valor): 02 def incrementa(quantidade): 03 return quantidade + valor 04 return incrementa

Programao avanada
Agora vamos ver uma das construes mais poderosas que uma linguagem de programao pode ter. anterior aos objetos e, mesmo assim, s vezes muito mais simples e poderosa. J zemos uso dela sem perceber. Mas onde? Quando? Por qu? Quem? Vamos nos xar novamente no exemplo 3. H algo estranho a. E no fcil de identicar isso porque so apenas cinco linhas de cdigo! A grande pergunta o que acontece com o f em decorator? Nada? Vamos repassar o que sabemos das variveis. Apesar do fato de que uma funo possa parecer uma varivel estranha a algum leitor, isso algo que os programadores de C e C++ costumavam fazer atravs do uso de ponteiros para funes. f uma varivel que faz referncia a uma funo. Visto assim, no h nada de especial; o estranho que f o parmetro recebido por escreveNome, e depois criamos a funo decorator e samos. Mas existem vrios Decorators annimos, pelo menos um para soma e outro para funcao. Nesse momento, f em outras linguagens de programao no apontaria para nada, e estaria no limbo das variveis. Vejamos um exemplo para entender isso. No exemplo 5, denimos um Decorator que nomeamos de maneira extremamente original: fechar. Esse Decorator gera uma funo que faz uso do parmetro que lhe passamos, o parmetro valor. Quando a funo faz uso de valor, captura o seu contedo! A partir desse momento, essa funo far uso do contedo que valor possui durante a sua denio. estranho? Na verdade, em um primeiro momento sim, a no ser que o leitor tenha conhecimentos de Lisp ou Scheme.

No em vo, Peter Norvig (ver [1]) diz que Python Lisp com outra sintaxe. Mas cuidado, no acredite que valor seja convertida em uma constante. Seno, a funo fechar caria trancada num crculo. como se junto a fechar houvesse uma varivel chamada valor, qual fechar possa fazer referncia como se fosse global, mas s para ela mesma! No exemplo 6 podemos ver uma demonstrao de interao com fechar. importante perceber os fechamentos, visto que nos permitem gerar funes que guardam valores. E isso vital para os Decorators.

Dois Decorators so melhores que um


Para terminar, vamos fazer algo de til com essa tcnica. Geralmente se fala dos Decorators em termos de servios que gostaramos de acrescentar ao cdigo. Os mais tpicos so criar registros de uso, de segurana, sistemas de vericao ou persistncia. Tambm se fala muito em multimtodos. Esses ltimos consistem de algo parecido sobrecarga de C++ ou Java, isto , poder denir muitas funes que possam ser executadas com base nos tipos ou quantidade de parmetros, mas que todas tenham o mesmo nome. Um exemplo poderia ser a funo soma(a,b). No a mesma coisa somar inteiros ou

pontos utuantes, fracionrios ou nmeros complexos. Na verdade, cada tipo de nmero requer sua prpria soma. Ns vamos criar dois servios de exemplo. Um ser para facilitar a depurao de um programa, o outro ser um vericador de valores. preciso explicar um pouco sobre o vericador. Vamos imaginar uma situao na qual precisamos calcular um valor muito complexo duas vezes, mas o clculo sempre o mesmo, e sempre devolve o mesmo valor para os parmetros dados. Ou, olhando para a Web, imaginemos que geraremos a mesma pgina e que somente a atualizaremos a cada intervalo de tempo determinado. Fazer algo assim requer muito trabalho: temos que capturar a requisio, determinar se os parmetros para o clculo ou pgina web form modicados, ou se ocorre algum evento (j se passaram 5 minutos desde que a funo foi invocada?), e ento devolver o valor ou calcul-lo novamente. Necessitamos ao menos de um objeto, e o que pior: cada funo que requeira essa propriedade dever implement-la de novo ou herdar de um objeto que a implemente. Mas em Python no temos herana mltipla, de modo que acabaremos com duas verses de cada objeto: Pagina e ChecaPagina, Clculo e ChecaClculo. Os Decorators solucionam esse problema de uma forma genrica e muito elegante. Vamos nos xar no exemplo 7. So denidos dois Decorators: verifica e debug; o segundo simples e se assemelha muito ao exemplo 6, simplesmente imprimindo informaes sobre a funo (seu nome, parmetros e resultado) com cada execuo da mesma. J verifica realiza mais trabalho. A chave a varivel verificacao, que um dicionrio onde armazenamos os parmetros que so passados para a funo em questo. verifica est dentro do envelope que criamos com o Decorator. Quando recebemos os parmetros, tentamos encontrar o valor da funo no dicionrio verificacao. Se no aparecerem, ento temos que calcul-los e armazen-los usando os parmetros como chave. Mas

Exemplo 6: Prova de fechar


01 02 03 04 05 06 07 >>> >>> >>> 4 >>> 9 >>> a = fechar(3) b = fechar(8) a(1) b(1)

76

http://www.linuxmagazine.com.br

Python | PROGRAMAO

Exemplo 7: Decorators debug e verica


01 def debug(f): 02 nome = f.func_name 03 def envelope(*args,**kwargs): 04 resultado = f(*args,**kwargs) 05 print Chamando,nome,com,args,kwargs,e devolvendo,repr(resultado) 06 return resultado 07 08 return envelope 09 10 def verifica(f): 11 # Fecha 12 verificacao = {} 13 def envelope(*args,**kwargs): 14 chave_1 = hash(args) 15 chave_2 = hash(tuple(kwargs.iteritems())) 16 try: 17 resultado = verificacao[chave_1,chave_2] 18 print ****VERIFICACAO**** 19 except KeyError: 20 verificacao[chave_1,chave_2] = f(*args,**kwargs) 21 resultado = verificacao[chave_1,chave_2] 22 return resultado 23 return envelope 24 22 class Calculadora: 26 def __init__(self.valor): 27 self.valor = valor 28 29 def getValor(self): 30 return self.valor 31 32 @debug 33 @verifica 34 def soma(self.valor): 35 resultado = self.valor + valor 36 return resultado

NOME DA SEO

se eles aparecerem, simplesmente devolvemos o valor associado. Dessa maneira, podemos vericar resultados. A maior complicao, fora tudo o que falamos neste captulo, se deve ao fato de que os dicionrios no podem ser usados para gerar um hash, e kwargs um dicionrio. Se um objeto no puder ser reduzido a um hash, ento no pode ser usado como chave em um dicionrio. Por isso temos que gerar uma tupla a partir de kwargs e, a partir dela, gerar um hash. Seguindo essa dinmica, faramos o mesmo com args, mas isso no necessrio. Quando se tenta acessar um valor em um dicionrio e esse valor no existe, o dicionrio lana uma exceo KeyError (erro na chave passada). Dessa forma, tentamos o acesso dentro de uma estrutura try e capturamos essa exceo, que nos indicar quando temos que calcular o valor. Como exemplo, na classe Calculadora, fazemos uso dos Decorators de maneira que no somente vericamos, mas ainda mostramos informao de depurao para a funo sobre a qual os aplicaremos.

O conceito de Decorators semelhante ao da agora famosa Aspect Oriented Programming (AOP). Com o passar dos anos, os estudiosos vo se dando conta de que a Programao Orientada a Objetos no a melhor soluo para todos os problemas, e pode chegar a ser desvantajosa. Os Decorators no so nada mais que outro dos mecanismos de extenso horizontal que esto comeando a fazer eco na caixa de ferramentas dos melhores programadores. E por isso que o Python os incorporou.

Decorando projetos

Mais Informaes
[1] http://www.norvig.com

O autor
Jos Maria Ruiz est nalizando seu projeto de concluso de curso de Engenharia Tcnica em Informtica de Sistemas e est h mais de sete anos usando e desenvolvendo Software Livre, h dois anos no FreeBSD.

Linux Magazine #25 | Novembro de 2006

77

SERVIOS

Linux.local
Empresa
F13 Tecnologia

O maior diretrio de empresas que oferecem produtos, solues e servios em Linux e Software Livre, organizado por Estado. Sentiu falta do nome de sua empresa aqui? Entre em contato com a gente: 11 2161-5400 ou anuncios@linuxmagazine.com.br

Fornecedor de Hardware = 1 Redes e Telefonia / PBX = 2 Integrador de Solues = 3 Literatura / Editora = 4 Fornecedor de Software = 5 Consultoria / Treinamento = 6

Cidade
Fortaleza

Endereo Cear
Rua Coronel Solon, 480 Bairro de Ftima Fortaleza - CE - CEP 60040-270

Telefone
85 3252-3836

Web
www.f13.com.br

1 2 3 4 5 6

Esprito Santo
Linux Shopp Megawork Consultoria e Sistemas Spirit Linux Instituto Online Linux Place Microhard TurboSite iSolve Mandriva Conectiva NSI Training Open IT Unipi Tecnologias Vila Velha Vitria Vitria Belo Horizonte Belo Horizonte Belo Horizonte Belo Horizonte Curitiba Curitiba Rio de Janeiro Rio de Janeiro Campos dos Goytacazes Lajeado Novo Hamburgo Porto Alegre Porto Alegre Rua So Simo (Correspondncia), 18 CEP: 29113-120 Rua Chapot Presvot, 389 Praia do Canto CEP: 29055-410 sl 201, 202 Rua Marins Alvarino, 150 CEP: 29047-660 27 3082-0932 27 3315-2370 27 3227-5543 31 3224-7920 31 3284-0575 31 3281-5522 0800 702-9004 41 252-2977 41 3360-2600 www.linuxshopp.com.br www.megawork.com.br www.spiritlinux.com.br www.institutoonline.com.br corporate.linuxplace.com.br www.microhard.com.br www.turbosite.com.br www.isolve.com.br www.mandriva.com.br www.nsi.com.br www.openit.com.br www.unipi.com.br

Minas Gerais
Av. Bias Fortes, 932, Sala 204 CEP: 30170-011 Rua do Ouro, 136, Sala 301 Serra CEP: 30220-000 Rua Repblica da Argentina, 520 Sion CEP: 30315-490 Rua Paraba, 966, Sala 303 Savassi CEP: 30130-141

Paran
Av. Cndido de Abreu, 526, Cj. 1206B CEP: 80530-000 Rua Tocantins, 89 Cristo Rei CEP: 80050-430

Rio de Janeiro
Rua Arajo Porto Alegre, 71, 4andar Centro CEP: 20030-012 21 2220-7055 Rua do Mercado, 34, Sl, 402 Centro CEP: 20010-120 Av. Alberto Torres, 303, 1andar - Centro CEP 28035-581 21 2508-9103 22 2725-1041

Rio Grande do Sul


Solis DualCon Datarecover LM2 Consulting Rua Comandante Wagner, 12 So Cristvo CEP: 95900-000 Rua Joaquim Pedro Soares, 1099, Sl. 305 Centro Av. Carlos Gomes, 403, Sala 908, Centro Comercial Atrium Center Bela Vista CEP: 90480-003 Rua Germano Petersen Junior, 101-Sl 202 Higienpolis CEP: 90540-140 Av. Venncio Aires, 1137 Rio Branco CEP: 90.040.193 Rua dos Andradas, 1234/610 Centro CEP: 90020-008 51 3714-6653 51 3593-5437 51 3018-1200 51 3018-1007 51 3331-1446 51 3286-3799 47 3323-7313 19 3846-1137 11 4195-2557 19 3256-6722 19 3213-2100 19 3236-1915 11 3213-6388 11 5034-4199 14 3413-1137 11 2106-9392 11 2173-4211 11 4990-0065 16 3376-0125 11 4062-9889 www.solis.coop.br www.dualcon.com.br www.datarecover.com.br www.lm2.com.br www.lnx-it.inf.br www.plugin.com.br www.tehospedo.com.br www.redix.com.br www.wshost.com.br www.digivoice.com.br www.dextra.com.br www.insignesoftware.com www.microcamp.com.br www.pc2consultoria.com www.savant.com.br www.epopeia.com.br www.redentor.ind.br www.go-global.com.br www.aw2net.com.br www.async.com.br www.delixhosting.com.br

Lnx-IT Informao e Tecnologia Porto Alegre Plugin TeHospedo Redix Ws Host DigiVoice Dextra Sistemas Porto Alegre Porto Alegre Blumenau Arthur Nogueira Barueri Campinas

Av. Jlio de Castilhos, 132, 11 andar Centro CEP: 90030-130 51 4003-1001

Santa Catarina
Rua 02 de Setembro, 733, sl 08. CEP 89052-000

So Paulo
Rua Jerere, 36 Vista Alegre CEP: 13280-000 Al. Juru, 159, Trreo Alphaville CEP: 06455-010 Rua Antnio Paioli, 320 Pq. das Universidades CEP: 13086-045 Av. Andrades Neves, 1579 Castelo CEP: 13070-001 Av. Thomaz Alves, 20 Centro CEP: 13010-160 Rua Edeia, 500 - 06350-080 Av. Senador Vitorino Freire, 465 CEP: 09910-550 Rua Gois, 392 Bairro Cascata CEP 17509-140 Rua Costante Piovan, 150 Jd. Trs Montanhas CEP: 06263-270

Insigne Free Software do Brasil Campinas Microcamp PC2 Consultoria em Software Livre Savant Tecnologia Epopia Informtica Redentor Go-Global AW2NET Async Open Source Delix Internet Campinas Carapicuiba Diadema Marlia Osasco

Santana de Parnaba Av. Yojiro Takaoca, 4384, Ed. Shopping Service, Cj. 1013 CEP: 06541-038 Santo Andr So Carlos So Jos do Rio Preto Rua Edson Soares, 59 CEP: 09760-350 Rua Orlando Damiano, 2212 CEP 13560-450 Rua Voluntrio de So Paulo, 3066 9 Centro CEP: 15015-909

78

http://www.linuxmagazine.com.br

Linux.local | SERVIOS

Empresa
4Linux A Casa do Linux Accenture do Brasil Ltda. ACR Informtica Agit Informtica Altbit - Informtica Comrcio e Servios LTDA. AS2M -WPC Consultoria Big Host Blanes Commlogik do Brasil Ltda. Computer Consulting Projeto e Consultoria Ltda. Consist Consultoria, Sistemas e Representaes Ltda. Domnio Tecnologia EDS do Brasil tica Tecnologia Getronics ICT Solutions and Services Hewlett-Packard Brasil Ltda. IBM Brasil Ltda. iFractal Integral Itautec S.A. Linux Komputer Informtica Linux Mall Livraria Tempo Real Locasite Internet Service Microsiga Novatec Editora Ltda. Novell Amrica Latina

Cidade
So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo

Endereo So Paulo (continuao)


Rua Teixeira da Silva, 660, 6 andar CEP: 04002-031 Al. Ja, 490 Jd. Paulista CEP 01420-000 Rua Alexandre Dumas, 2051 Chcara Santo Antnio CEP: 04717-004 Rua Lincoln de Albuquerque, 65 Perdizes CEP: 05004-010 Rua Major Quedinho, 111, 5 andar, Cj. 508 Centro CEP: 01050-030 Av. Francisco Matarazzo, 229, Cj. 57 gua Branca CEP 05001-000 Av. Tiradentes, 615, Ed. Santiago, 2 andar Bom Retiro CEP: 01101-010 Rua Dr. Miguel Couto, 58 Centro CEP: 01008-010 Rua Andr Ampre, 153 9 andar Conj. 91 CEP: 04562-907 (prx. Av. L. C. Berrini) Av. das Naes Unidas, 13.797, Bloco II, 6 andar Morumbi CEP: 04794-000

Telefone
11 2125-4747 11 3549-5151 11 5188-3000 11 3873-1515 11 3255-4945 11 3879-9390 11 3228-3709 11 3033-4000 11 5506-9677 11 5503-1011

Web
www.4linux.com.br www.acasadolinux.com.br www.accenture.com.br www.acrinformatica.com.br www.agit.com.br www.altbit.com.br www.wpc.com.br www.bighost.com.br www.blanes.com.br www.commlogik.com.br www.computerconsulting.com.br www.consist.com.br www.dominiotecnologia.com.br www.eds.com www.etica.net www.getronics.com/br www.hp.com.br www.br.ibm.com www.ifractal.com.br www.integral.com.br www.itautec.com.br www.komputer.com.br www.linuxmall.com.br www.temporeal.com.br www.locasite.com.br www.microsiga.com.br www.novateceditora.com.br www.novell.com/brasil www.oracle.com.br www.proelbra.com.br www.e-provider.com.br www.latinsourcetech.com.br www.samurai.com.br www.sap.com.br www.simplesconsultoria.com.br www.smart-tec.com.br www.snapit.com.br www.stefanini.com.br www.sun.com.br www.sybase.com.br www.thesource.com.br www.unisys.com.br www.utah.com.br www.visuelles.com.br www.webnow.com.br www.wrl.com.br www.systech-ltd.com.br

1 2 3 4 5 6

Rua Vergueiro, 6455, Cj. 06 Alto do Ipiranga CEP: 04273-100 11 5062-3927 Av. das Naes Unidas, 20.727 CEP: 04795-100 Rua das Carnaubeiras, 98 Metr Conceio CEP: 04343-080 Av. Pres. Juscelino Kubistcheck, 1830 Torre 4 - 5 andar Rua Nova York, 945 Brooklin CEP:04560-002 Rua Verbo Divino, 1207 CEP: 04719-002 Av. das Naes Unidas, 12.901, 25 andar CEP: 04578-000 Rua Tutia, 1157 CEP: 04007-900 Rua Dr. Gentil Leite Martins, 295, 2 andar Jd. Prudncia CEP: 04648-001 Rua Santa Catarina, 1 Tatuap CEP: 03086-025 Av. Dr. Lino de Moraes Leme, 185 CEP: 04360-001 Rua Machado Bittencourt, 190, Cj. 2087 CEP: 04044-001 Al. Santos, 1202 Cerqueira Csar CEP: 01418-100 Av. Brigadeiro Luiz Antonio, 2482, 3 andar Centro CEP: 01402-000 Av. Braz Leme, 1631 CEP: 02511-000 Rua Luis Antonio dos Santos, 110 Santana 02460-000 Rua Funchal, 418 Vila Olmpia Av. Alfredo Egdio de Souza Aranha, 100 Bloco B 5 andar CEP: 04726-170 11 5693-7210 11 5017-0040 11 3707-4100 11 5093-3025 11 5187-2700 11 5502-5000 0800-7074 837 11 5545-2600 11 6097-3000 11 5034-4191 11 5087-9441 11 3266-2988 11 2121-4555 11 3981-7200 11 6979-0071 11 3345-3900 11 5189-3000

Rua Fiao da Sade, 145, Conj. 66 Sade CEP: 04144-020 11 5078-6618

Oracle do Brasil Sistemas Ltda. So Paulo Proelbra Tecnologia Eletrnica Ltda. Provider Red Hat Brasil Samurai Projetos Especiais SAP Brasil Simples Consultoria Smart Solutions Snap IT Stefanini IT Solutions Sun Microsystems Sybase Brasil The Source Unisys Brasil Ltda. Utah Visuelles Webnow WRL Informtica Ltda. Systech So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo So Paulo Taquaritinga

Av. Rouxinol, 1.041, Cj. 204, 2 andar Moema CEP: 04516-001 11 5052- 8044 Av. Cardoso de Melo, 1450, 6 andar Vila Olmpia CEP: 04548-005 Av. Anglica, 2503, 8 andar Consolao CEP: 01227-200 Rua Baro do Triunfo, 550, 6 andar CEP: 04602-002 Av. das Naes Unidas, 11.541, 16 andar CEP: 04578-000 Rua Mourato Coelho, 299, Cj. 02 Pinheiros CEP: 05417-010 Av. Jabaquara, 2940 cj 56 e 57 Rua Joo Gomes Junior, 131 Jd. Bonglioli CEP: 05299-000 Av. Brig. Faria Lima, 1355, 19 Pinheiros CEP: 01452-919 Rua Alexandre Dumas, 2016 CEP: 04717-004 Av. Juscelino Kubitschek, 510, 9 andar Itaim Bibi CEP: 04543-000 Rua Marqus de Abrantes, 203 Chcara Tatuap CEP: 03060-020 Rua Alexandre Dumas, 1711, 10 andar, Ed. Birmann 11 CEP: 04717-004 Av. Paulista, 925, 13 andar Cerqueira Csar CEP: 01311-916 Rua Eng. Domicio Diele Pacheco e Silva, 585 Interlagos CEP 04455-310 Av. Naes Unidas, 12.995, 10 andar, Ed. Plaza Centenrio Chcara Itaim CEP: 04578-000 Rua So Jos, 1126 Centro - Caixa Postal 71 CEP: 15.900-000 11 2165-6500 11 3124-6000 11 5097-3014 11 5503-2400 11 3898-2121 11 5052-5958 11 3731-8008 11 3039-2000 11 5187-2100 11 3046-7388 11 6698-5090 11 3305-7000 11 3145-5888 11 5614-1010 11 5503-6510

Rua Santa Ignia, 211/213, Box 02 Centro CEP: 01207-001 11 3362-1334 16 3252-7308

Linux Magazine #25 | Novembro de 2006

79

Calendrio de eventos
Evento Data 3 a 5 de Novembro 3 a 5 de Novembro 5 a 8 de Novembro 7 a 9 de Novembro 9 de Novembro 11 de Novembro 13 a 24 de Novembro 16 de Novembro 16 e 17 de Novembro 18 de Novembro 18 de Novembro 18 a 20 de Novembro 21 a 23 de Novembro 24 a 26 de Novembro 1 e 2 de Dezembro 2 a 8 de Dezembro 5 e 6 de Dezembro Local So Paulo, SP So Paulo, SP Frankfurt, Alemanha Califrnia, EUA Limeira, SP Colnia, Alemanha on-line Mogi Mirim, SP Foz do Iguau, PR Jaguarina So Paulo, SP Palmas, TO Araraquara, SP So Paulo, SP So Paulo, SP So Paulo, SP Curitiba, PR Website www.conisli.org perl.org.br/bin/view/YAPC/SA2006 www.phpconference.com www.web2con.com www.linuxday.com.br www.linuxnewmedia.com bine.org.mx/edusol/e2006/ convocatoria.php www.linuxday.com.br www.latinoware.org/2006 www.linuxday.com.br piterpunk.info02.com.br/evento www.sol-to.org fcbs.web@gmail.com www.h2hc.org.br www.temporealeventos.com. br/?area=13&tipo=1&id=1334 www.icann.org/minutes www.estacaovoip.com.br

SERVIOS

Conisli 2006 YAPC::SA::2006 International PHP Conference 2006 Web 2.0 Conference Linux Day Limeira Linux New Media Awards 2 Encontro On-line de Educao e Software Livre Linux Day Mogi Mirim Latinoware Linux Day Jaguarina 3 Encontro Nacional de Usurios de Slackware 1 Frum de Software Livre do Tocantins Seminrio Temtico sobre Cultura Digital Hackers to Hackers Conference PHP Conference Brasil Reunio ICANN Estao VoIP 2006

ndice de anunciantes
Empresa 4Linux BRConnection Estao VOIP Green IBM Intel Intel IDF Itautec Linux World Novel Plugin Red Hat Samsung Siweb SnapIT Thin Networks Pg. 15 71 77 65 09 13 02 07 81 55 17 11 84 53 43 59

80

http://www.linuxmagazine.com.br

Dezembro de 2006

PREVIEW

Na Linux Magazine #26


DESTAQUE

Web 2.0

SYSADMIN

A Web est passando por uma transformao, e toda uma nova gerao de servios e tecnologias est interagindo para oferecer um ambiente melhor e mais verstil. Na prxima edio, mostraremos as recentes inovaes da Web.

Descreveremos como criar pginas web interativas com AJAX e o Google web toolkit. Vamos tambm examinar alguns aplicativos populares para criar wikis, e mostraremos como construir um website com o ambiente de programao Aptana.

Samba antivrus
Servidores Samba ao redor do planeta servem arquivos em redes mistas com clientes Windows, Linux, Unix e Mac. possvel proteger tanto seus clientes quanto servidores atravs da integrao do Samba a softwares antivrus? Vamos mostrar como fazer isso.
TUTORIAL

Portas abertas no oferecem segurana alguma. Um porteiro (ou rewall, no caso das redes de computadores) bem treinado pode identicar todos que tentam entrar, e uma boa medida de segurana. Porm, mais seguro ainda usar uma batida secreta para que a porta se abra s para voc, e logo em seguida se feche novamente. isso que o Port Knocking nos permite fazer. Mostraremos como aplicar esse conceito a rewalls baseados no Iptables, de forma bastante prtica.

Port knocking

Dezembro de 2006

Na EasyLinux #09
Games no Linux
DESTAQUE

Nem s de trabalho duro vive o Linux. O sistema do Pingim tambm surpreende quando o tema games e faz rodar alguns dos jogos mais emocionantes da atualidade, feitos nos moldes dos sistemas proprietrios. Como isso possvel? Atravs do Cedega software pago ou do virtuoso Wine. Com algumas conguraes e entradas bsicas na linha de comando, voc vai aprender a instalar jogos como o famoso City of Heroes, dentre outros. No perca a srie de artigos completa, com passo-apasso, screenshots e solues, especialmente preparada para a sua diverso! !

Tudo sob controle

LABORATRIO

Voc quer saber qual o uso que seu computador faz da CPU, memria e outros recursos, alm de verificar o recebimento de emails? Delegue essa tarefa ao GKrellM , um programa enxuto, que oferece plugins adicionais, especialista em monitorar o sistema na forma de eficientes grficos. !

82

http://www.linuxmagazine.com.br

www.samsung.com.br

Voc entra com os dados, a gente com a velocidade. HDDs SATA Samsung.

Os discos rgidos SATA Samsung tm a melhor performance e a maior confiabilidade do mercado. Alm disso, gerenciam melhor a temperatura e so mais resistentes e silenciosos. Afinal, a Samsung busca velocidade em tudo, at na inovao tecnolgica.