Sei sulla pagina 1di 84

MICROSOFT E SL p.

24 Como andam os esforos da MS no Brasil e no mundo

QUALIDADE DE SOFTWARE p.26 Maddog alerta para a falta de bons engenheiros de software

INTERNET DAS COISAS p.28 Taurion anuncia um futuro de dispositivos interconectados


# 56 Julho 2009

TEM

? SOLUO
is p.30 com o NagV o GLPI p.36 e bonita ole com sob contr Rede clara t p.42 tura de TI shell scrip Infraestru conversam por e AD Samba

UADO USO ADEQ A AA AO UMA AME RESA. MANTENH IZAO SUA EMP p.29 A DESORGAN DE TI DA UE DE TI. RSOS DOS RECU SOBRE SEU PARQ O CONTROLE

DA p.62 ITE DE BAN REDES:aLIM a de rede dos band


Controle com o fcil de rede TB. clientes e WebH e competent

E IDS cas NA: IPS SEGURAtos e melhores prti as

p.66

mximo Fundamen veitar ao IPS e IDS. para apro de um sistema s qualidade

: TA EDIO BM NES renome p.48 VEJA TAM, uma questo de todas? p.52 ece Linux
conh GNU e Linux: voc JVMs para is e perifricos p.56 r p.72 praze OpenSolar o em Boo, um Programa
AZIN NUXMAG WWW.LI

A REVISTA DO PROFISSIONAL DE TI

E.COM.BR

SOLUO?
#44 07/08 R$ 13,90 7,50

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

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

CEZAR TAURION p.34 O Cdigo Aberto como incentivo inovao

A REVISTA DO PROFISSIONAL DE TI

GOVERNANA COM

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

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

SEGURANA: DNSSEC p.69

VEJA TAMBM NESTA EDIO:

Relatrios do Squid com o SARG p.60 Benchmarks do GCC 4.3? p.58

Java, Ruby e Rails: conhea o JRuby on Rails p.74 Becape de bancos de dados com a Libferris p.46 LPI nvel 2: Servidores NIS e DHCP p.52

REDES: IPV6 p.64

A DESORGANIZAO UMA AMEAA AO USO ADEQUADO DOS RECURSOS DE TI DA SUA EMPRESA. MANTENHA O CONTROLE SOBRE SEU PARQUE DE TI. p.29
WWW.LINUXMAGAZINE.COM.BR

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

Rede clara e bonita com o NagVis p.30 Infraestrutura de TI sob controle com o GLPI p.36 Samba e AD conversam por shell script p.42

REDES: LIMITE DE BANDA p.62


Controle a banda de rede dos clientes com o fcil e competente WebHTB.

SEGURANA: IPS E IDS p.66


Fundamentos e melhores prticas para aproveitar ao mximo as qualidades de sistemas IPS e IDS.

VEJA TAMBM NESTA EDIO:

GNU e Linux, uma questo de renome p.48 JVMs para Linux: voc conhece todas? p.52 OpenSolaris e perifricos p.56 Programao em Boo, um prazer p.72

WWW.LINUXMAGAZINE.COM.BR

Assinante

9 771806 942009

venda

TEM

exemplar de

00044

proibida

Expediente editorial
Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br Editor Pablo Hess phess@linuxmagazine.com.br Revisora Aileen Otomi Nakamura anakamura@linuxmagazine.com.br Editora de Arte Paola Viveiros pviveiros@linuxmagazine.com.br Tradutores Rodrigo Amorim Cleber Paiva de Souza Centros de Competncia Centro de Competncia em Software: Oliver Frommel: ofrommel@linuxnewmedia.de Kristian Kiling: kkissling@linuxnewmedia.de Peter Kreussel: pkreussel@linuxnewmedia.de Marcel Hilzinger: hilzinger@linuxnewmedia.de Centro de Competncia em Redes e Segurana: Achim Leitner: aleitner@linuxnewmedia.de Jens-Christoph B.: jbrendel@linuxnewmedia.de Hans-Georg Eer: hgesser@linuxnewmedia.de Thomas Leichtenstern: tleichtenstern@linuxnewmedia.de Max Werner: mwerner@linuxnewmedia.de Markus Feilner: mfeilner@linuxnewmedia.de Nils Magnus: nmagnus@linuxnewmedia.de Anncios: Rafael Peregrino da Silva (Brasil) anuncios@linuxmagazine.com.br Tel.: +55 (0)11 4082 1300 Fax: +55 (0)11 4082 1302 Petra Jaser (Alemanha, ustria e Sua) anzeigen@linuxnewmedia.de Penny Wilby (Reino Unido e Irlanda) pwilby@linux-magazine.com Amy Phalen (Estados Unidos) aphalen@linuxmagazine.com Hubert Wiest (Outros pases) hwiest@linuxnewmedia.de Gerente de Circulao Claudio Bazzoli cbazzoli@linuxmagazine.com.br Na Internet: www.linuxmagazine.com.br Brasil www.linux-magazin.de Alemanha www.linux-magazine.com Portal Mundial www.linuxmagazine.com.au Austrlia www.linux-magazine.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 consequncias que advenham de seu uso. A utilizao de qualquer material da revista ocorre por conta e risco do leitor. Nenhum material pode ser reproduzido em qualquer meio, em parte ou no todo, sem permisso expressa da editora. Assume-se que qualquer correspondncia recebida, tal como cartas, emails, faxes, fotografias, artigos e desenhos, sejam fornecidos para publicao ou licenciamento a terceiros de forma mundial no-exclusiva pela Linux New Media do Brasil, a menos que explicitamente indicado. Linux uma marca registrada de Linus Torvalds. Linux Magazine publicada mensalmente por: Linux New Media do Brasil Editora Ltda. Av. Fagundes Filho, 134 Conj. 53 Sade 04304-000 So Paulo SP Brasil Tel.: +55 (0)11 4082 1300 Fax: +55 (0)11 4082 1302 Direitos Autorais e Marcas Registradas 2004 - 2008: Linux New Media do Brasil Editora Ltda. Impresso e Acabamento: Parma Distribuda em todo o pas pela Dinap S.A., Distribuidora Nacional de Publicaes, So Paulo. Atendimento Assinante www.linuxnewmedia.com.br/atendimento So Paulo: +55 (0)11 3512 9460 Rio de Janeiro: +55 (0)21 3512 0888 Belo Horizonte: +55 (0)31 3516 1280 ISSN 1806-9428 Impresso no Brasil

Mobilidade e padres abertos


Prezados leitores, Qualquer tecnologia pode se beneficiar de padres abertos. A telefonia mvel, um mercado extremamente dinmico, parece estar descobrindo isso. O anncio recente de que todos os principais fabricantes de aparelhos celulares adotaro um nico carregador at 2012 indica que essas empresas finalmente compreenderam que, ao menos quando no se trata de seu core business, os padres abertos so mais do que benficos: so essenciais. Com os aparelhos tendo uma vida til mdia de um a dois anos, em uma dcada qualquer pessoa acumula um nmero surpreendente de carregadores eltricos e seus respectivos adaptadores. Unir-se em torno do micro-USB ou de qualquer outro formato aberto que fosse escolhido s afeta positivamente o mercado em que todos esses fabricantes atuam. Os prprios fabricantes de carregadores devem beneficiar-se: em vez de produzir mltiplos modelos, podero concentrar-se em cortar custos e aumentar a eficincia da produo de um nico tipo de carregador. Esse aumento de eficincia pode inclusive levar a novos desenvolvimentos nessa rea, o que inegavelmente beneficia todos os fabricantes de telefones celulares. Os padres abertos esto conquistando tambm outras camadas do mercado mvel. O recente acordo entre Intel e Nokia para a unio de esforos de desenvolvimento possivelmente ter como base os padres abertos na busca para desbancar os concorrentes 100% proprietrios Apple, principalmente, com seu iPhone no mercado de telefonia. Colaborando nas camadas de hardware e software sobre padres abertos, os dois fabricantes tm fora para, em sinergia, estabelecer novos padres em ambas as reas. Mesmo que optem por no unir suas plataformas mveis Moblin e Maemo como alguns analistas supuseram que fariam, as parceiras j deixaram clara a colaborao em torno de diversas outras iniciativas abertas, como Mozilla, X.org, D-Bus e os novos oFono e ConnMan. bom ver que mais e mais empresas esto entendendo e aplicando os padres e tecnologias abertos. Com isso, fica evidente que favorecer um mercado sempre benfico quando a sua empresa se encontra nesse mesmo mercado. n

EDITORIAL

Pablo Hess Editor

Linux Magazine #56 | Julho de 2009

NDICE

CAPA
Sim, tem soluo Manter controle sobre os ativos de TI muito importante para a empresa. Cabe ao administrador de TI usar as ferramentas e as tcnicas adequadas para a tarefa. De olho na rede Quer uma viso ampla de possveis problemas na rede? Veja tudo com o fcil e bonito NagVis. Na ponta do dedo Use o GLPI para manter o controle de inventrios, histricos de manuteno e chamados de suporte. Esse AD d samba O Samba foi feito, em parte, para conversar adequadamente com o Active Directory. Veja como usar scripts shell para fazer essa conversa fluir. 42 36 30 29

http://www.linuxmagazine.com.br

Linux Magazine 56 | NDICE

COLUNAS
Klaus Knopper Charly Khnast Zack Brown Augusto Campos Alexandre Borges Kurt Seifried Pablo Hess 08 10 12 14 15 16 18

Coffee break Conhea algumas ferramentas e projetos do cenrio do Java.

52

TUTORIAL NOTCIAS
Geral Debian e Ubuntu unidos pela inicializao Novo livro sobre migrao do Windows para o Ubuntu Acer e MSI equipados com Suse/Moblin Lanado o Fedora 11 Primeiro captulo do livro Certificao LPI-1 liberado para download Laptop nacional poderoso e com Linux 20 OpenSolaris, parte 3 Entenda como instalar, configurar e usar perifricos como impressoras, scanners e cmeras digitais no OpenSolaris. 56

REDES
Controle de trfego Veja como o WebHTB gerencia a banda com uma interface prtica e bonita. 62

CORPORATE
Notcias Lanado o MySQL 5.4 Citrix vai lanar switch virtual Intel adquire Wind River Xen adota kernel 2.6.29 Insigne alcana 2 milhes de cpias Arkeia Software abre escritrio no Brasil Entrevista Microsoft Coluna: Jon maddog Hall Coluna: Cezar Taurion 24 26 28 22

SEGURANA
IPS na intimidade Em segurana, no basta instalar o IPS e achar que a rede est segura. Entenda os fundamentos da atuao dos IPSs e IDSs para se proteger ao mximo. 66

PROGRAMAO ANLISE
GNU e Linux, uma questo de renome As justificativas para se denominar o sistema somente Linux resumem-se a apenas uma: Sempre fizemos assim. 48 Espante a dificuldade A linguagem Boo oferece o melhor de trs mundos: a sintaxe amigvel do Python, a arquitura .NET e a tipagem forte de C#. 72

SERVIOS
Editorial Emails Linux.local Eventos Preview 03 06 78 80 82

Linux Magazine #56 | Julho de 2009

Emails para o editor

Permisso de Escrita
Artigo sobre Nexenta
Primeiramente gostaria de parabenizar o timo contedo que a Linux Magazine nos apresenta a cada ms. Sempre trazendo novidades que so fundamentais para os envolvidos na TI. Recentemente conheci o Nexenta, que combina o kernel do OpenSolaris com a userland do Ubuntu. Parece ser muito interessante. A Linux Magazine poderia realizar alguma matria em cima do novo sistema operacional a fim de esclarecer um pouco mais e mostrar as funcionalidades, vantagens e desvantagens. n Rafael Moraes

CARTAS

Resposta

Rafael, muito obrigado pelos elogios e pela indicao. Tambm estamos acompanhando o Nexenta e as demais distribuies de GNU/ OpenSolaris. O Nexenta voltado a servidores de arquivos, pois oferece o poderoso sistema de arquivos ZFS. Portanto, pretendemos publicar algo a seu respeito quando abordarmos servidores de arquivos numa prxima edio. Aos leitores que se interessarem pelo assunto, recomendamos tambm o StormOS, outra distribuio de GNU/OpenSolaris muito semelhante ao Nexenta, porm voltada a sistemas desktop. Fica tambm a dica para quem se interessar em colaborar com a Linux Magazine. Visitem www.linuxmagazine.com.br/autores e mos obra! n

Escreva para ns!

Desenvolvimento em Linux

Sou programador e gostaria que vocs escrevessem mais matrias sobre o desenvolvimento de software em Linux, como novas IDEs de desenvolvimento ou novidades sobres as mais utilizadas. Thiago Pessoa

Sempre queremos sua opinio sobre a Linux Magazine e nossos artigos. Envie seus emails para cartas@linuxmagazine.com.br e compartilhe suas dvidas, opinies, sugestes e crticas. Infelizmente, devido ao volume de emails, no podemos garantir que seu email seja publicado, mas certo que ele ser lido e analisado.

Resposta

Thiago, obrigado pela sugesto. O mundo do desenvolvimento de fato muito dinmico e merece muita ateno. Vamos nos esforar para aumentar essa cobertura e desde j convidamos nossos leitores a colaborar conosco escrevendo artigos sobre sua linguagem ou IDE preferida, metodologia de desenvolvimento, projeto de programao etc. n
6

sa

nja

gje

ne

ro

ww .s x

c.h

Coluna do Klaus

COLUNA

Pergunte ao Klaus!
O professor Klaus responde as mais diversas dvidas dos leitores.

Inicializao lenta

Tenho um laptop com CPU Intel que veio com o Windows XP. Uso dual boot nos meus computadores com Linux desde 2000. Aparentemente houve vrios avanos no software nos ltimos dez anos, mas ainda hoje eu espero dois a trs minutos para aparecer a tela de login e mais um minuto para iniciar qualquer aplicativo. Sou o nico usurio do computador e sempre desligoo depois de usar. A configurao (hardware e software) raramente muda, mas ainda assim preciso esperar as mesmas verificaes de sistema a cada inicializao. Minha pergunta: existe algum motivo para o tempo de inicializao ser to grande? Parece que no meu carregador de inicializao eu poderia escolher no apenas o sistema operacional como tambm o usurio. A configurao do usurio no ltimo desligamento poderia ser salva num local seguro do disco e usada na prxima inicializao para que fosse mais rpida. Essa espera vai continuar assim nos prximos dez anos?

Resposta

A forma tradicional de dar a partida num sistema Unix iniciar diferentes verificaes de sistema e disco e tambm sistemas, um aps o outro. Desta forma, muito fcil identificar e corrigir problemas do procedimento de inicializao. Recentemente, as distribuies GNU/ Linux comearam a paralelizar alguns dos servios de inicializao, mas isso no fcil, pois h inmeras configuraes diferentes de software e hardware que poderiam exigir uma sequncia especfica. Conhecendo seu hardware e fazendo algumas otimizaes, possvel iniciar o computador em 20 a 30 segundos a partir do momento em que o kernel carregado, mas isso requer um conhecimento bem profundo do procedimento de inciializao e dos servios que precisam ser iniciados.
8

Certas tarefas so fceis de otimizar: identifique os servios certamente desnecessrios para voc, como (1) seu prprio servidor de email num ambiente em que voc s envie e receba emails via provedores externos, (2) NIS e outros servios de autenticao que no sejam utilizados, (3) servidores de banco de dados desnecessrios, ou (4) servidores web, FTP, NFS, Samba e outros que no sejam usados. Tambm possvel ganhar algum desempenho na inicializao por meio da otimizao da sequncia de servios por exemplo, iniciar o desktop bem cedo no processo de inicializao, antes do servidor de impresso e da configurao da rede. Basicamente, isso que outros sistemas operacionais fazem para que a inicializao parea mais rpida, realizando tarefas no interativas em segundo plano enquanto as partes visveis j esto no ar. Tradicionalmente, o ambiente grfico no GNU/Linux vem por ltimo; na verdade, ele pode ser iniciado bem mais cedo na sequncia de inicializao, contanto que o hardware e alguns servios internos bsicos j tenham iniciado. Outra possibilidade seria configurar a suspenso para o disco (suspend to disk, como mais conhecido) para realizar a inicializao uma nica vez e depois salvar a sesso iniciada. Isso costuma levar apenas entre 10 e 20 segundos. Porm, ao hibernar, o contedo do disco rgido de parties montadas e a configurao geral do hardware no podem ser alterados com o sistema em hibernao; caso contrrio, voc acabar com um sistema incapaz de iniciar ou at mesmo com dados perdidos. Esse problema o mesmo em todos os sistemas operacionais que suportam a suspenso para o disco o GNU/Linux no exceo.n
Klaus Knopper o criador do Knoppix e co-fundador do evento Linux Tag. Atualmente trabalha como professor, programador e consultor.

http://www.linuxmagazine.com.br

Desenvolver solues em software livre e padres abertos mais que acreditar no futuro. acreditar nas pessoas.

Nas lotricas, na Universidade Corporativa, na nova rede de autoatendimento, a CAIXA baseia suas solues de TI em Linux e outros softwares livres. Isso faz da CAIXA uma das instituies bancrias lderes mundiais na utilizao de padres abertos e uma referncia em inovao, criatividade e eficincia tecnolgica no pas.

O banco que acredita nas pessoas.

caixa.gov.br

SAC CAIXA 0800 726 0101 (informaes, reclamaes, sugestes e elogios) 0800 726 2492 (para pessoas com deficincia auditiva) OUVIDORIA CAIXA 0800 725 7474

Acrobacias balanceadas
O programa de hoje o balanceador de carga HAProxy, que no apenas distribui a carga entre os servidores como tambm afugenta o medo de grandes arquivos de configurao.

Coluna do Charly

COLUNA

o h falta de balanceadores de carga livres. J falei aqui sobre o Pen [1], que pode ser configurado em poucos minutos, e o famoso Pound [2]. Porm, o grande astro da cena do balanceamento, o HAProxy [3], at agora levava uma vida tmida. O balanceador HAProxy capaz de lidar com qualquer aspecto do terreno do proxy e ainda assim ningum ouviu falar dele. O autor do programa, Willy Tarreau, j demonstrou sua competncia como mantenedor do kernel Linux 2.4, mas no parece que os usurios de software de espao do usurio esto interessados em aceitar suas ofertas. O HAProxy usa uma nica thread multithread para os fracos. A abordagem mono-thread de Tarreau oferece os benefcios decisivos de baixo overhead e alta velocidade, mas requer um cuidado meticuloso por parte do desenvolvedor. A thread nica pode ser derrubada por um nico erro um vazamento de me-

Listagem 1: /etc/haproxy/haproxy.cfg
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 global maxconn 16000 ulimit-n 65536 user haproxy group haproxy daemon nbproc 1 pidfile /var/run/haproxy.pid listen http 0.0.0.0:80 mode http option httplog balance roundrobin server www1 192.168.1.20:80 check server www2 192.168.1.21:80 check

mria ou uma condio de corrida, por exemplo e ento o acrobata cai sem qualquer rede de segurana. A falta de fama poderia ser consequncia do arquivo de configurao do HAProxy, bem maior que o de seus concorrentes; porm, certamente no decorre de mau desempenho. O profundo conhecimento de Tarreau sobre o kernel Linux fica evidente na histria de desenvolvimento do proxy, e o polling um timo exemplo disso. As primeiras verses do polling ainda usavam a funo select(), que tende a ser bem letrgica quando enfrenta um grande nmero de descritores de arquivos. A funo foi substituda por chamadas a poll(), depois suplantada por epoll(). A nova splice() transporta dados entre duas interfaces, o que leva o HAProxy liga dos programas com desempenho de dezenas de gigabytes. Tarreau tambm se orgulha de aplicaes de referncia que jogam permanentemente entre 2 e 3 GB atravs do balanceador. No encontro qualquer motivo para temer os compridos arquivos de configurao. Apesar de ser possvel alterar as configuraes, os ajustes bsicos para balancear dois servidores web agradavelmente simples, como mostra a listagem 1. n

Mais informaes
[1] Pen: http://siag.nu/pen [2] Pound: http://www.apsis.ch/pound/ [3] HAProxy: http://haproxy.1wt.eu

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

10

http://www.linuxmagazine.com.br

Coluna do Zack

COLUNA

Crnicas do kernel
Nova ideia: um compilador dentro do kernel. Ser que vinga?

ngo Molnar sugeriu que o kernel inclusse um compilador em seu prprio cdigo, uma alternativa ao GCC cuidadosamente integrada ao kernel. O objetivo seria eliminar os terrveis conflitos que eclodem ocasionalmente entre os desenvolvedores do kernel e os do GCC. Se algum menos envolvido que Ingo no desenvolvimento do kernel sugerisse algo assim, suponho que a sugesto encontraria grande resistncia. Na verdade, mesmo tendo sido uma proposta de Ingo, houve certo ceticismo. Sua ideia combinar um pr-compilador, um compilador, um assembler e um linkador numa nica ferramenta, que seria empacotada juntamente com os fontes do kernel e permaneceria no mesmo passo que ele, evitando no apenas os conflitos entre desenvolvedores, mas tambm os pulos que o kernel precisa dar para acomodar o GCC. Numa primeira etapa, a ferramenta seria capaz de fazer um pr-processamento simples, que seria enviado ao GCC. Em seguida, gradativamente mais recursos seriam acrescentados ao compilador. Ele disse que isso teria um benefcio imediato em termos de simplificar o cdigo do kernel. Inicialmente, houve certo suporte ideia. Steven Rostedt levantou a questo, sugerindo que a ideia de Ingo era boa; depois Ingo respondeu com sua elaborao. E Anton Ertl afirmou que uma alternativa ao GCC no apenas ajudaria o kernel a resolver problemas do GCC, como tambm auxiliaria vrios softwares de espao do usurio. Mas ele ponderou que fazer um fork do GCC como primeira etapa teria alguns argumentos favorveis, incluindo a possibilidade de compilar cdigo para uma grande variedade de arquiteturas de hardware. David S. Miller afirmou que uma desvantagem de escrever um novo compilador seria perder a eficincia do GCC no pr-processamento e na compilao dentro de um mesmo binrio, em vez de passar os dados por um pipe. Ele tambm no gostou da ideia de Ingo de
12

uma forma geral. Em lugar de desenvolver um compilador, ele disse que as pessoas deveriam concentrar-se em escrever cdigo do kernel. Tambm afirmou que o projeto todo precisaria de muito mais tempo e trabalho do que Ingo esperava. Por j ter escrito um compilador, Eric W. Biederman tambm confirmou que levaria muito tempo, mas disse que a ideia poderia valer a pena caso resultasse em grandes avanos na velocidade de depurao e compilao. Christoph Lameter tambm ressaltou que algo inferior a um compilador poderia ser til. Algo que pudesse eliminar todas as complexidades e casos especiais associados ao pr-processamento atual seria uma melhora significativa, disse ele. Alexander Viro discordou da colocao de que a situao atual de pr-processamento seja muito complexa, e convidou os envolvidos a ler o padro C [1], especificamente o captulo 5 e a seo 6.10. Nesse ponto, a conversa acabou. As consequncias dessa discusso ainda no esto claras, mas ela parece ter recebido ateno de alguns programadores poderosos. Ou talvez os aspectos considerados deficincias do GCC poderiam se mostrar suas melhores caractersticas, mas provvel que algum tente descobrir com mais certeza, ao menos com relao ao pr-processamento. n

Mais informaes
[1] Padro C: http://www.open-std.org/ jtc1/sc22/WG14/www/docs/n1256.pdf

A lista de discusso Linux-kernel o ncleo das atividades de desenvolvimento do kernel. Zack Brown consegue se perder nesse oceano de mensagens e extrair significado! Sua newsletter Kernel Traffic esteve em atividade de 1999 a 2005.

http://www.linuxmagazine.com.br

Script para o sucesso


As linguagens de script so rpidas e prticas. Sua chegada aos celulares ser um marco para a programao para esses dispositivos.

Coluna do Augusto

COLUNA

ssim como tantas outras pessoas com mais de 25 anos e fortes inclinaes tecnolgicas, eu aprendi a programar usando os parcos recursos de desenvolvimento disponveis nos computadores de 8bits que existiam no nosso mercado na dcada de 1980 e incio da dcada de 1990. Quando fiz a transio para os sistemas de maior porte, passei a usar linguagens e ambientes bem mais avanados (para a poca como o Turbo Pascal 5.5) e ao menos do ponto de vista tecnolgico nunca senti saudade daquele misto-quente de BASIC e Assembly que turbinava os MSX, Sinclairs e outras linhas que foram populares por aqui. Em algum momento da dcada de 1990 fiz minha transio ao modelo de cdigo aberto, e cada vez mais passei a escrever os poucos programas que ainda produzo usando variadas linguagens de script, e pouco recorrendo aos cada vez mais completos ambientes de desenvolvimento disponveis at mesmo para elas.

Pode ser a razo que faltava para eu virar usurio do Android na hora da minha prxima troca de tecnologia.
H tempos percebi, assim, que estava em uma reaproximao com as parcas interfaces de desenvolvimento dos interpretadores e monitores da dcada de 1980 no por inexistncia de recursos melhores e mais completos, mas por precisar de cada vez menos para fazer funcionar os scripts nossos de cada dia, e por ter cada vez menos
14

interesse em instalar e configurar ferramentas complicadas para poder definir breves sequncias de entrada, processamento e sada. E essa percepo fica mais evidente no que diz respeito menor fronteira da TI pessoal na minha vida: os celulares e smartphones. Para todos os modelos que passaram por minhas mos em anos recentes, havia IDEs, SDKs e outras bossas disponveis para instalao, geralmente em um PC, para gerar aplicativos para instalao nos dispositivos mveis, usualmente em uma operao complexa, que envolve assinaturas digitais, transferncias por protocolos pouco usuais um tdio, e uma soluo pobre para quem s quer desenvolver programas simples. Foi por isso que comemorei o recente anncio do Android Scripting Environment para o sistema operacional Android, baseado em Linux e voltado aos dispositivos mveis. Ele no o primeiro (existem boas solues para a plataforma S60, por exemplo, h tempos), mas me chamou a ateno por fazer as coisas Do Jeito Certo: permite acesso aos recursos do ambiente (exibir janelas, controlar dilogos, fazer ligaes telefnicas ou coletar dados dos sensores, por exemplo), multi-linguagem (comeou com Python e Lua, mas outras sero acrescentadas) e permite, a quem quiser (e eu quero), editar os scripts diretamente no aparelho, sempre que interessar. Tiro o chapu para quem teve a ideia. Um ambiente de desenvolvimento assim simplificado pode ser a razo que faltava para eu virar usurio do Android na hora da minha prxima troca de tecnologia, e talvez sirva tambm para vermos surgir grande nmero de aplicativos simples que facilitem a nossa vida. n
Augusto Csar Campos administrador de TI e desde 1996 mantm o site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo.

http://www.linuxmagazine.com.br

Coluna do Alexandre

Grids
Grids computacionais so uma soluo muito promissora para diversas exigncias dentro das empresas.

COLUNA

o raramente, eu observo um efeito curioso em empresas: de um lado, dispensam (por falta de espao) diversos equipamentos muito teis com apenas um ano de uso e, de outro lado, necessitam de fora de processamento para suas aplicaes crticas. o que eu chamo de sndrome do upgrade. Este total desperdcio de dinheiro fruto de falta de informao de como realocar recursos dentro de uma empresa. Por que no usar alguns computadores da sua empresa para fazer um grid e reaproveitar estes recursos? Talvez seja a hora de conhecer o conceito de grid. Aqui a unio faz a fora. Basicamente, com grids voc tem a seguinte situao: um cliente envia uma tarefa grande para o gerenciador do grid, que a divide entre os muitos computadores constituintes deste grid, cada um fazendo sua parte no processamento. Depois, cada computador devolve esta parte realizada da tarefa para o gerenciador do grid, que repassa o resultado final para o cliente.

Por que no usar alguns computadores da sua empresa para fazer um grid e reaproveitar estes recursos?
aconselhvel deixar clara uma diferena de objetivos entre clusters e grids: com clusters, a meta ter alta disponibilidade de aplicaes e, dependendo do caso, tambm se obtm ganho de performance. Hoje a computao em grade (grid) usada na pesquisa de novos semicondutores, prospeco de petrleo, desenvolvimento de software, pesquisas mdicas, anlises financeiras (se bem que nem todas andam funcionando bem ultimamente nos EUA, no ?), ou seja, qualquer

trabalho que necessite de fora de processamento. claro que uma empresa pode reaproveitar seus computadores usados ou ainda comprar servidores de alta performance para construir tais grids, todavia a ideia fundamental a mesma: utilizao plena do dinheiro investido e, por consequncia, dos recursos disponveis. A Sun Microsystems incentiva um projeto de cdigo aberto chamada Grid Engine, que tem por objetivo principal incentivar o uso de grids, melhorar o desenvolvimento da tecnologia de computao em grade j existente e auxiliar na criao e na evoluo de padres de gerenciamento de recursos distribudos, com o melhor uso dos recursos disponveis. Um dos aspectos mais interessantes do projeto que o software est disponvel para os mais diversos sistemas operacionais como Solaris, Linux, Irix, Tru64, AIX, HP/ UX, Mac OS/X etc., sendo que o seu licenciamento SISSL (reconhecido como cdigo livre e aberto pela Free Software Fundation e pela Open Source Initiative). A meta desta disponibilidade do software em diversos sistemas operacionais no desestimular ningum de engajar-se no projeto e ajudar a construir uma tecnologia melhor. Alm do mais, o projeto tambm muito bem documentado e o leitor no sentir qualquer problema em pedir ajuda nas listas de discusso quando necessrio. Infelizmente, ainda no h muitos grids fora de universidades e de algumas grandes corporaes, entretanto trata-se de uma tecnologia em franca expanso. Com o desenvolvimento crescente de mquinas com processadores multicore e multithread, espero que possamos presenciar muitos destes grids funcionando nos prximos meses. n
Alexandre Borges Especialista Snior em Solaris, OpenSolaris e Linux. Trabalha com desenvolvimento, segurana, administrao e performance desses sistemas operacionais, atuando como instrutor e consultor. pesquisador de novas tecnologias e assuntos relacionados ao kernel.

Linux Magazine #56 | Julho de 2009

15

Coluna do Kurt

COLUNA

Tneis secretos
Como transferir dados de e para sistemas Linux sem aparecer no radar.

odos ns j estivemos l: voc liga seu computador rede (com ou sem fio) e ele no funciona. Depois, voc tenta entrar no servidor por SSH e recebe a mensagem falha de conexo. Ao tentar conectar-se ao seu servidor de email na porta 25 usando TLS (ou seja, criptografia), voc v apenas o banner do proxy de email do provedor local, ou recebe outra falha de conexo. Mas nem tudo est perdido pelo menos voc consegue navegar na Web. Infelizmente, toda vez que voc digita alguma URL errada, acaba na pgina de busca do provedor, e qualquer coisa com contedo questionvel, como hacking, bloqueada. Neste ponto, voc tem duas escolhas: encontrar um bom livro para ler ou usar um software de VPN para se conectar a uma mquina remota sem sofrer com os filtros ou problemas de conexo. Entretanto, alguns provedores realmente cruis ou simplesmente incompetentes tambm bloqueiam softwares comuns para VPN e SSH na tentativa de evitar acesso sem filtros Internet por meio de suas redes. Assim como tentar impedir um gato de entrar na caixa, quando voc tenta evitar que geeks faam algo, provavelmente eles simplesmente vo tentar com mais afinco. Se voc conseguir passar alguma forma de dado para um sistema remoto (IPSec, SSH, http, mensagens instantneas, sinais de fumaa), possvel usar esse canal para transportar qualquer dado. Um provador s consegue bloquear ou filtrar certa quantidade de trfego antes de se tornar completamente inutilizvel. O truque encontrar um protocolo de rede que seja permitido e no sofra modificaes, e que consiga isso com softwares j existentes que permitam enviar os dados por tnel. Felizmente, trs protocolos de rede bsicos ICMP, DNS e http quase sempre so permitidos, assim como uma grande variedade de outros protocolos, como SSH e mensagens instantneas. Com sorte, voc conseguir usar softwares como SSH com encaminhamento de por16

tas ou capacidades de VPN sobre uma porta permitida, como 80. E se voc tiver azar, o provedor vai for-lo a atravessar seus prprios proxies web e servidores DNS para acessar a Internet.

Tnel via ICMP

O ICMP um timo protocolo para enviar dados por tneis, pois quase sempre permitido (bloque-lo causa problemas em muitos nveis) e consegue transportar um monte de dados [1]. Um pacote ICMP possui 20 bytes de dados no cabealho (origem, destino etc.) e 8 bytes de dados do contedo (tipo de mensagem, cdigo etc.), alm de uma quantidade varivel de outros dados. A quantidade desses outros dados enviados pelo pacote ICMP geralmente limitada apenas pelo tamanho mximo do pacote na rede (em Ethernet e Wi-fi, geralmente so 1.500 bytes). Isso significa que possvel enviar montes de dados por pacotes ICMP com pouco overhead. H algumas opes de softwares para tneis sobre ICMP, mas a melhor opo o Ping Tunnel (Ptunel), pois o mais atualizado [2]. Instalar o Ptunnel relativamente simples; h RPMs para a segunda verso mais recente no repositrio Dag. Para instalar e compilar os fontes, digite:
rpm -Uvm http://dag.wieers.com/rpm/packages/ptunnel/ ptunnel-0.61-1.rf.src.rpm cd /usr/src/redhat/ rpmbuild -ba ptunnel.spec

Se voc desejar a verso mais recente do Ptunnel, ser preciso atualizar o source RPM ou compil-lo diretamente. Para obter e compilar os fontes:
wget http://www.cs.uit.no/~daniels/PingTunnel/ PingTunnel-0.70.tar.gz tar -xf PingTunel-0.70.tar.gz

http://www.linuxmagazine.com.br

Insegurana | COLUNA

cd PingTunnel make make install

Listagem 1: Proxytunnel
01 Host proxytunnel.exemplo.org 02 ProtocolKeepAlives 30 03 ProxyCommand /caminho/do/proxytunnel -p proxy. cliente.com:8080 -u user -s password -d proxytunnel.exemplo.org:443

Usar o Ptunnel no muito mais difcil do que compillo. No lado servidor (o proxy), basta executar o Ptunnel com um dispositivo de rede opcional (-c) e uma senha (-x). No lado cliente, preciso especificar o endereo do servidor proxy, a porta local onde escutar e o endereo e porta remotos onde se deseja conectar. O exemplo a seguir supe que um servidor proxy em ptunnel.exemplo.org esteja conectado Internet pela eth0, com um proxy Squid no servidor squid.exemplo.org na porta 3128 com senha blabla para manter a segurana da conexo:
Servidor: ./ptunnel -c eth0 -x blabla Cliente: ./ptunnel -p ptunnel.exemplo.org \ -lp 3128 -da squid.exemplo.org \ -dp 3128 -x blabla

Para um proxy de verdade que encapsule os dados em pacotes DNS vlidos, h o OzymanDNS [3]. Porm, sem atualizao desde a verso inicial, o OzymanDNS est um tanto desatualizado.

Tnel via http

Agora simplesmente configure seu navegador web para usar como proxy a mquina local na porta 3128, ento o trfego http ser convertido para ICMP e depois enviado para ptunnel.exemplo.org. Nesse local, ele ser desempacotado e enviado para o servidor proxy squid. exemplo.org, e ento enviado para a Internet. O servidor Squid pode ser executado localmente no mesmo servidor com o Ptunnel, que permite que se atravesse qualquer filtragem ou problema da rede do provedor.

Tnel via DNS

A ltima opo enviar o trfego por meio de um tnel http ou https [4]. bem provvel que a rede suporte conexes https para fora. O https melhor que o http porque criptografa o trfego, ento reduz a probabilidade de modificao dos dados pelo provedor. Assim como o software de tunelamento ICMP, possvel compilar o Proxytunnel [5] dos fontes ou baixar um pacote RPM (fonte ou binrio). Para usar o Proxytunnel, simplesmente execute-o no servidor como um daemon independente ou por meio do inetd. No lado cliente, adicione-o como um ProxyCommand ao cliente OpenSSH (listagem 1). Como se pode ver, h uma variedade de opes para enviar dados por tneis, dependendo dos protocolos disponveis. Algumas configuraes antes do problema podem economizar bastante trabalho quando voc se vir enjaulado em uma rede problemtica, filtrada ou simplesmente defeituosa. n

Embora no seja to confivel quanto o ICMP, o DNS outro protocolo que pode ser usado para criar tneis de dados. Alguns provedores redirecionam sistemas no registrados ou desconhecidos para um gateway de pagamento. Para isso, eles respondem requisies DNS com o endereo IP do gateway de pagamento. Outros provedores simplesmente usam um proxy web transparente para interceptar todas as requisies WWW e redirecion-las para seu gateway de pagamento (nesse caso, provavelmente possvel enviar seu trfego pelo tnel sobre DNS). O DNS tem vrias vantagens sobre o ICMP. Apesar de bloqueios ao ICMP causarem problemas, eles so possveis. Entretanto, bloquear o DNS quebra tudo. Apesar de o Ping Tunnel 0.70 agora suportar a transmisso de dados pela porta UDP 53, ele no envia realmente pacotes DNS vlidos, ento no possvel passar esse trfego por servidores DNS. Para isso, preciso ter uma conexo direta com o servidor proxy. Nesse caso, possvel simplesmente usar o OpenVPN ou OpenSSH sobre a porta 53.

Mais informaes
[1] Tnel por ICMP: http://www.phrack.org/ issues.html?issue=49&id=6#article [2] Ping Tunnel: http://www.cs.uit.no/~daniels/PingTunnel/ [3] Howto OzymanDNS: http://www.dnstunnel.de/ [4] Tnel SSH sobre http(s): http://dag.wieers.com/howto/ssh-http-tunneling/ [5] Proxytunnel: http://proxytunnel.sourceforge.net/

Kurt Seifried consultor de segurana da informao especializado em redes e Linux desde 1996. Ele frequentemente se pergunta como a tecnologia funciona em grande escala mas costuma falhar em pequena escala.

Linux Magazine #56 | Julho de 2009

17

Novidades do kernel 2.6.30

COLUNA

Linux 2.6.30
Uma verso com ritmo cadenciado e quase inteiramente dedicada ao armazenamento. Ser essa uma nova tendncia do kernel Linux?

kernel Linux 2.6.30, lanado no dia 10 de junho, detm apenas dois recordes em comparao com as verses anteriores: maior nmero de arquivos (mais de 27 mil) e maior nmero de linhas de cdigo (superior a 11,6 milhes). Esses recordes so esperados num kernel em constante evoluo e crescimento, com suporte crescente a dispositivos de hardware. Comparada s verses recentes, esta verso teve menos arquivos alterados, includos e apagados, resultados de um menor nmero de commits por parte dos desenvolvedores.

A velocidade de inicializao tambm recebeu ateno, assim como o cdigo relacionado ao gerenciamento de energia.
Mas isso no significa que o Linux 2.6.30 seja pobre em novidades importantssimas. Particularmente na rea de armazenamento, o novo kernel exibe avanos significativos. Alm disso, o pinguim Tux, tradicional mascote do kernel livre, volta das frias e reassume sua posio na inicializao do sistema, substituindo o folguista Tuz. A velocidade de inicializao tambm recebeu ateno, assim como o cdigo relacionado ao gerenciamento de energia.

Sistemas de arquivos

A principal rea de atuao dos desenvolvedores nessa ltima iterao do kernel foi, sem dvida, o armazenamento. Os sistemas de arquivos Ext3 e Ext4
18

receberam diversas alteraes rumo segurana e velocidade: o Ext3 tornou-se mais rpido (reduziu a latncia) com a adoo da opo writeback em seu journal por padro, enquanto seu sucessor recebeu correes contra perda de dados decorrentes da alocao adiada. O Btrfs, em pleno desenvolvimento, recebeu otimizaes para escrita em discos Flash (SSDs), entre vrias outras, e continua sua jornada estabilidade. Enquanto isso, o ReiserFS, sem mantenedor ou alteraes h vrios meses, recebeu uma srie de patches com dois anos de idade que corrigem falhas no sistema e devem estabilizar seu cdigo de forma mais definitiva. Dois novos sistemas de arquivos tambm foram acrescentados ao conjunto gigante j suportado pelo Linux: depois da incluso do Btrfs e do SquashFS no kernel 2.6.29, agora foi a vez do Nilfs2 e do EXOFS. O primeiro, um sistema de arquivos baseado em log, especializado em discos Flash (SSD) e inclui recursos de snapshot. J o segundo voltado a dispositivos baseados em objetos, uma espcie extica de disco radicalmente diferente dos padres ATA, SATA e SCSI. Um novo recurso que abrange todos os sistemas de arquivos incluindo os de rede e tem potencial para aumentar significativamente o desempenho geral do sistema o FS-Cache. Trata-se de um cache geral para todos os sistemas de arquivos, que deve permitir que sistemas como AFS e NFS avancem bastante em desempenho. O NFS 4.1, tambm acrescentado ao kernel 2.6.30, j pode desfrutar desse recurso. O controverso recurso atime importante para pouqussimos programas, entre eles o ainda popular cliente de email Mutt , que marca a hora precisa do ltimo acesso a cada arquivo, foi substitudo pelo relatime, que agora atualiza esses dados apenas uma vez a cada dia.

http://www.linuxmagazine.com.br

Novidades do kernel | COLUNA

O escalonador de I/O CFQ, que causou importantes perdas quando usado em conjunto com o Ext3, tambm recebeu correes, que devem torn-lo sensivelmente mais veloz para desktops.

Virtualizao

Compresso

Quem usava o alvo zImage para compilar seu kernel ver que essa no mais uma possibilidade em troca, agora podemos escolher, alm do j tradicional gzip, os algoritmos bzip2 e LZMA para compactar ainda mais o kernel binrio e o initrd.

A quentssima rea da virtualizao continua recebendo ateno, mas a atividade diminuiu sensivelmente em relao s verses anteriores do Linux. Dispositivos PCI agora dispem de acesso dedicado por parte de sistemas hspedes (recurso chamado de PCI IOV). O cdigo para dom0 (hospedeiro) do Xen continua de fora, mas o KVM recebeu suporte virtualizao aninhada isto , um sistema hspede pode ser tambm hospedeiro e abrigar outros hspedes dentro dele inicialmente somente em CPUs AMD.

Processador

O escalonador de processos do kernel CFS (Completely Fair Scheduler) passou por um leve emagrecimento: seu cdigo foi simplificado para acelerar o processamento e otimizar sua operao para ambientes de tempo real. Alm disso, agora possvel tratar interrupes em threads separadas. O grande ataque coordenado dos desenvolvedores s travas (locks) do kernel tambm chegou ao CFS, que simplificou esses procedimentos e obteve, segundo os desenvolvedores, pequenas melhoras de desempenho.

Novos drivers

Segurana

O suporte a adaptadores de rede sem fio no padro 802.11n cada vez melhor no Linux. Foram acrescentados os drivers para o chipset 802.11n USB da Atheros e tambm para os chipsets at76c50x da Atmel, alm do novo suporte aos chips wi-fi Intel 1000, 6000 e 6050. Na rea de udio, foi integrada parte do projeto ALSA 1.0.20, alm do suporte plataforma ASoc (ALSA System on Chip). Alm disso, os drivers de udio HD tm controle mais generoso por meio do sistema de arquivos Sysfs.

O subsistema de criptografia, cryptd, recebeu melhor suporte a mltiplas threads, o que o deixou 19,2% mais veloz no sistema de seu desenvolvedor (que contm um processador de ncleo duplo). Os frameworks de segurana SELinux (SecurityEnhanced Linux) e Smack (Simplified Mandatory Access Control Kernel) deram as boas vindas ao projeto japons Tomoyo, que tem as vantagens de dispensar atributos estendidos no sistema de arquivos e de aprender as polticas de acesso de cada recurso protegido.

Vdeo

As maravilhas do KMS (Kernel Mode-Setting) e do gerenciador de memria grfica GEM, at agora exclusivas de alguns chips grficos da Intel, foram estendidas para as GPUs AMD Radeon R600 e R700. Juntamente a isso, o suporte aos chips da Intel foi aprimorado, e espera-se que mais desses chips funcionem corretamente com o kernel 2.6.30.

Futuro

Inicializao rpida

Os patches do projeto fastboot evidentemente proporcionam uma inicializao mais rpida. Eles foram includos na verso 2.6.29, mas no eram utilizados por padro. No kernel 2.6.30, finalmente os subsistemas so iniciados em paralelo, o que d at mesmo aos sistemas uniprocessados uma inicializao significativamente mais rpida.

O futuro guarda boas novidades. Chris Mason criou a opo de journal guarded para seu sistema de arquivos Btrfs, e possvel que ela seja integrada ao Ext4. O suporte a dom0 no Xen improvvel no futuro prximo, depois das fortes crticas de Linus Torvalds e outros desenvolvedores ao cdigo j submetido. n

Mais informaes
[1] Descrio do Linux 2.6.30: http://kernelnewbies.org/Linux_2_6_30

Energia

O cdigo de suporte hibernao foi retrabalhado, com alteraes ao tratamento das interrupes, uma das principais causas de falhas quando um sistema retorna da hibernao. Alm disso, a pilha de redes sem fio Mac80211 recebeu melhorias importantes para economia de energia.

Pablo Nehab Hess editor da Linux Magazine, tem mestrado em gentica e especializao em bioinformtica. autor de softwares de cdigo aberto para computao cientfica e tem experincia em administrao de sistemas.

Linux Magazine #56 | Julho de 2009

19

NOTCIAS

Debian e Ubuntu
Os desenvolvedores do Debian e do Ubuntu encontraram-se na sede da Canonical em Londres para discutir formas de melhorar a velocidade de inicializao. A sugesto para a cooperao entre as duas distribuies veio de Mark Shuttleworth. A troca de experincias e informaes deve se estender at a Debconf 09, no final de julho. Os primeiros resultados dessa colaborao esto disponveis na lista de emails do Ubuntu. A interao extremamente importante, pois a acelerao do processo de

unidos pela inicializao


inicializao requer uma reengenharia de toda a sequncia do processo e comporta inclusive a mudana do sistema de inicializao. O projeto Ubuntu gostaria de implementar o Upstart completamente na verso 10.04, com as primeiras alteraes aparecendo j na verso 9.10. A questo se o projeto Debian vai acompanh-lo. O desenvolvedor do Debian Petter Reinholdtsen manifestou reservas com relao a essa mudana, o que levou discusso sobre como essa transio seria feita da forma mais conveniente e simples possvel. Alm das atualizaes de cdigo necessrias, foi proposta uma extenso contnua da cooperao. Na Debconf sero discutidas outras alteraes. Colin Watson postou mais informaes bsicas sobre o tpico dos dois sistemas de inicializao na lista Ubuntu Develop, atendendo aos pedidos dos usurios do Ubuntu. n

Novo livro sobre migrao do Windows para o Ubuntu


Em seu novo ttulo Linux Pro Ubuntu, lanado no ms de julho, a Linux New Media oferece uma viso aprofundada e abrangente do sistema operacional da Canonical. O objetivo da obra atender aos principais pblicos do Ubuntu: o usurio domstico e o corporativo, ambos em processo de migrao do Microsoft Windows para o Ubuntu. Para usurios domsticos, o livro d todas as informaes bsicas, como diferenas tcnicas e prticas entre o Ubuntu e o Windows, e tambm explica como configurar a rede (via Ethernet, modem 3G, ADSL e redes sem fio), instalar e desinstalar programas, configurar impressoras, configurar e usar o cliente de email Evolution, o navegador Firefox, o reprodutor multimdia Totem e os programas que compem o OpenOffice.org. Ao mesmo tempo, a obra fornece uma base importante para quem deseja implantar o Ubuntu nas estaes da empresa, pois cobre aspectos de licenciamento, compartilhamento de arquivos e impressoras, interoperabilidade etc. O Linux Pro Ubuntu est em promoo de pr-venda no Shopping Linux Magazine Online. n
20

Acer e MSI equipados com Suse/Moblin


A Novell apresentou na Computex Taipei, em junho, o sistema operacional Suse edition of Moblin verso 2 pr-instalado em equipamentos da Acer e da MSI. Moblin uma plataforma de cdigo aberto que permite experincia na Internet em netbooks e outros sistemas mveis baseados no processador Atom, da Intel. A Novell, uma das empresas que lideram o apoio ao projeto de desenvolvimento do Moblin, anunciou planos para lanar uma verso Suse do Moblin, que chegar ao mercado com uma vasta gama de OEMs e ODMs. O Moblin novo, diferente e representa uma ruptura das abordagens tradicionais de computao mvel como um todo, afirmou Ron Hovsepian, presidente e CEO da Novell. medida que a computao segue em direo nuvem, os consumidores pessoais e corporativos buscaro o ponto de acesso nuvem robusto e acessvel que o Moblin proporciona, concluiu o executivo. n

http://www.linuxmagazine.com.br

Gerais | NOTCIAS

Lanado o Fedora 11

Aps alguns pequenos atrasos, o projeto Fedora, patrocinado pela Red Hat, lanou a 11 edio da sua distribuio GNU/Linux homnima. Entre as novidades esto o Gnome 2.26 e o KDE 4.2, no caso dos desktops, assim como o kernel na verso 2.6.29.3. Junto com a definio do Ext4 como sistema de arquivos padro, h tambm uma srie de novidades sob o cap. Entre os programas que ganharam novos recursos encontra-se o instalador do sistema, o Anaconda, para o qual os desenvolvedores reimplementaram a parte que trata de dispositivos de armazenamento. A melhoria na velocidade de inicializao tambm ganhou ateno especial nessa edio da distribuio. Segundo o anncio de lanamento, o sistema deve iniciar e carregar o ambiente de trabalho Gnome em apenas 20s. Os desenvolvedores tambm renovaram as alternativas de virtualizao do sistema, que ganhou um console interativo e um assistente para criao de mquinas virtuais, que contam agora com suporte a SELinux. E, com o sistema de compilao cruzada MinGW, o Fedora dispe agora de um ambiente de desenvolvimento que simplifica a compilao de programas para Windows no GNU/Linux. Isso deve agradar aos desenvolvedores de programas que precisam rodar nas duas plataformas. H imagens da distribuio para download no formato Live CD para sistemas de 32 e 64 bits, bem como uma verso para PowerPC. n

Laptop nacional poderoso e com Linux


No exterior, j so alguns os fabricantes de computador que comercializam modelos com Linux pr-instalado. O exemplo mais marcante a oferta da Dell: em certos pases da Europa, alm de EUA e Canad, alguns modelos oferecem ao cliente a escolha do Ubuntu como sistema operacional pr-instalado, aps a realizao de um acordo com a Canonical. No Brasil, apesar de notcias empolgantes, ainda no temos a opo do Ubuntu pr-instalado em computadores Dell. Mas foi dado um passo importante nesse sentido. A Microboard, fabricante brasileira de laptops e desktops, anunciou no ltimo ms o lanamento da nova verso de seu laptop Ultimate Black, que agora inclui um sistema baseado no Ubuntu porm, sem qualquer acordo com a Canonical entre as opes de sistema operacional prinstalado. As especificaes, assim como o nome do modelo (Ultimate), deixam claro que no se trata do hardware mais bsico: com processador Core 2 Duo de 2 GHz, 4 GB de memria, disco rgido de 320 GB, sada HDMI e todos os itens presentes nos portteis mais recentes, o Ultimate Black se encontra entre os melhores modelos com tela de 14 polegadas e peso abaixo dos 2,4 kg disponveis no mercado brasileiro. n

Primeiro captulo do livro Certificao LPI-1 liberado para download


A Linux New Media anunciou a liberao de 61 pginas (um quarto do contedo) do ttulo Certificao LPI-1, 3 edio, da Coleo Linux Pro. Nessas 61 pginas, o leitor pode consultar, alm de todo o contedo do Tpico 101 Arquitetura de Sistema , a lista completa dos novos objetivos em portugus e a explicao de tudo que foi alterado nesta nova reviso dos exames. O prefcio do livro assinado por Jos Carlos Gouveia, Diretor Geral do Linux Professional Institute na Amrica Latina. O captulo est disponvel no Shopping Linux Magazine Online. n

Linux Magazine #56 | Julho de 2009

21

CORPORATE

Lanado o MySQL 5.4


A Sun Microsystems anunciou no final de junho o lanamento do MySQL 5.4, nova verso do banco de dados de cdigo aberto mais popular do planeta. O MySQL 5.4 inclui melhorias de desempenho e escalabilidade e permite que dispositivos de armazenamento InnoDB sejam expandidos para servidores x86 com at 16 processadores ou CMT (arquitetura chip multi-threading da Sun) com at 64 processadores, mais do que o dobro da capacidade anterior. O software tambm inclui, segundo o anncio, otimizaes de subconsultas e tempo de resposta 90% melhor para certas consultas no banco de dados, alm de novos algoritmos que aprimoram o funcionamento em cluster, avanos nas stored procedures e um melhor suporte poderosa ferramenta DTrace dos sistemas Solaris e OpenSolaris. De acordo com Eramir Fernandes, lder da rea de Softwares da Sun Microsystems do Brasil, o MySQL 5.4 mais adequado para expandir as implementaes de sistemas SMP, em que mais de um processador compartilha o processamento de tarefas. A verso preview do MySQL 5.4 Community Edition j est disponvel no site do MySQL. n

Citrix vai lanar switch virtual

A Citrix, fabricante do sistema de virtualizao de cdigo aberto Xen e de diversos sistemas de gerenciamento que o utilizam, como XenServer e Essentials, anunciou recentemente que lanar um switch de rede virtual plugvel de cdigo aberto. O software funcionar, a princpio, tanto com o XenServer quanto com o hypervisor KVM, da Red Hat, que j est integrado ao kernel Linux h mais de dois anos. Embora essa novidade possa passar despercebida em meio aos volumosos anncios da Citrix relacionados aos recursos que iro compor as prximas verses de suas solues XenServer e Essentials, ela significa que as redes de mquinas virtuais podero dispor, a partir desse lanamento, de arquiteturas significativamente mais complexas, comparveis s redes fsicas, e com gerenciamento extremamente facilitado por meio do switch virtual. Com o switch virtual, reduz-se o trabalho administrativo de rede (criao de VLANs, ACLs etc.) para as mquinas virtuais na mquina hospedeira, pois torna-se desnecessrio configurar os trabalhosos bridges. O fato de o switch virtual ter seu cdigo aberto significa que ele poder ser usado por diversas outras empresas e desenvolvedores individuais para criar ferramentas capazes de competir com o Nexus 1000V, switch virtual lanado recentemente pela gigante Cisco que tenta ganhar cada vez mais mercado na rea de virtualizao, em parceria com a VMware. n
22

Intel adquire Wind River

A Intel vai adquirir 100% das aes da Wind River, que, a US$ 11,50 por ao, somam US$ 884 milhes. A empresa de software californiana trar seus profundos conhecimentos sobre sistemas embarcados e mveis para a Intel. O novo chefe da empresa ser Renee James, vice-presidente e gerente geral do grupo de software e servios da Intel, segundo o anncio da Intel. Sistemas embarcados e dispositivos mveis so, segundo estimativas da Intel, um de seus maiores fatores de crescimento. O setor de mercado inclui dispositivos mveis para Internet (MIDs), smartphones e dispositivos de entretenimento digital para a indstria automotiva. Esses dispositivos so, h alguns anos, o foco de crescimento da Intel, mais notavelmente por meio do Moblin, que pertencia Intel, e sua participao com a BMW no projeto Genivi. A Wind River tambm estava trabalhando com alguns parceiros na adaptao do Android, como para a plataforma Snapdragon da Qualcomm. n

http://www.linuxmagazine.com.br

Notcias | CORPORATE

Xen adota kernel 2.6.29

O projeto Xen utilizava como base de sua verso estvel o kernel Linux 2.6.18. Isso significa que quem optava por utilizar o kernel Linux como Domain0 (ou Dom0, como mais citado) em seu sistema Xen sofria com falta de drivers e uma infraestrutura ultrapassada por parte do Linux. Mas essa situao est prestes a mudar. Como afirmou o blog Xen.org em junho, a comunidade Xen terminou o debate sobre a seleo da rvore adequada para as futuras atividades de desenvolvimento. O blog cita o email de Keir Fraser, que afirma que hora de revisitar o estado de nossos repositrios Linux. O desenvolvedor sugere que talvez seja hora de matar a rvore 2.6.18, ou ao menos parar o desenvolvimento ativo nela. Ela cada vez mais uma coleo bagunada de portes de patches mais recentes do kernel, e faltam nela vrios drivers para hardware mais moderno. A proposta final do desenvolvedor consiste em adotar a rvore Linux-2.6.27 do projeto XCI como padro de desenvolvimento. Em paralelo, a rvore do desenvolvedor Jeremy com os patches das pv_ops tambm seria palco do desenvolvimento e possivelmente, no futuro, deve tornar-se a rvore padro. No entanto, aps uma longa discusso, a comunidade Xen. org decidiu j adotar a rvore de Jeremy (kernel 2.6.29 com os patches para as pv_ops) como nova plataforma de desenvolvimento. A alterao ser levada a cabo a partir da prxima verso do Xen. O post no blog do Xen.org afirma ainda que a equipe do projeto continua com seus esforos para incluir o cdigo de Dom0 com as pv_ops no kernel Linux oficial. n

Arkeia Software abre escritrio no Brasil


A fabricante de solues de becape e recuperao de desastres Arkeia anunciou ontem a expanso de sua operao na Amrica Latina. A empresa de San Diego, EUA, abriu seu primeiro escritrio no Brasil na capital paulista, o que, segundo o anncio feito imprensa, prover recursos locais para atender os parceiros da regio, alm de melhorar o suporte a clientes e parceiros e aprimorar os processos de venda, marketing e suporte tcnico na regio. A Arkeia faz parte do programa Red Hat Software Program como ISV (Independent Software Vendor) h quase dez anos e possui mais de 100 clientes na Amrica Latina. n

Insigne alcana 2 milhes de cpias

A Insigne Software anunciou que o sistema Insigne Momentum atingiu a marca de 2 milhes de unidades distribudas. Para comemorar esta realizao e dez anos de existncia, como parte de seu plano de crescimento, a empresa tambm pretende lanar a verso em ingls de seu sistema nos prximos meses, visando a sua entrada no mercado externo. A Insigne conseguiu atingir esta marca graas sua participao entre alguns dos principais agentes do programa Computador para Todos, programa governamental introduzido no Brasil para garantir maioria da populao o acesso compra de PCs populares. De acordo com Joo Pereira da Silva Jr, presidente da empresa, a verso em ingls faz parte da estratgia de levar o seu sistema operacional para mercados globais a partir de parcerias com fabricantes de PCs de vrios pases. J estamos iniciando conversas com empresas do Mxico que poder ter a sua verso em espanhol e esperamos poder em breve anunciar a assinatura de acordos de negcios com fabricantes deste e de alguns outros pases, inicialmente na Amrica Latina. Estivemos na Computex Taipei 2009 no ms passado para dar

um passo frente neste sentido, com boas conversas com fabricantes de PCs presentes no evento, conta o executivo. Para o presidente da Insigne, outros fatores tambm contriburam para a meta de 2 milhes de unidades ser atingida. Segundo ele, a empresa a nica provedora de sistemas operacionais a oferecer um programa de suporte e treinamento aos fabricantes e varejistas, que compem o primeiro ponto de contato com os novos usurios que buscam informaes sobre como comprar um PC novo. Quando apresentamos o primeiro sistema operacional de cdigo aberto para computadores de escritrio, estvamos muito prximos dos vendedores de lojas, afirma Pereira. n
23

Linux Magazine #56 | Julho de 2009

Entrevista com Roberto Prado, gerente de estratgias da Microsoft

CORPORATE

Interoperabilidade e colaborao
Entenda como a Microsoft vem agindo na tentativa de promover a interoperabilidade com o Software Livre. por Pablo Hess

ps muito ignorar e diminuir o Software Livre, a Microsoft vem demonstrando interesse em colaborar com esse universo. Desde antes de firmar o acordo de colaborao tcnica com a Novell em novembro de 2006, a empresa liderada por Steve Ballmer j havia criado um laboratrio de Open Source, como a companhia o chama, com o objetivo de compreender como funcionam

os programas de cdigo aberto e a melhor forma de interoperar com eles em redes heterogneas. Passados dois anos e meio desde a assinatura do acordo e aproximadamente cinco anos desde a criao do primeiro laboratrio de Open Source , os laboratrios se multiplicaram, e o do Brasil j produziu conhecimentos importantes para a Microsoft avanar rumo interoperabilidade com o Software Livre. Roberto Prado, gerente de estratgias da Microsoft, conversou com a Linux Magazine sobre os resultados j obtidos no Brasil [1] com as vrias iniciativas de colaborao com Software Livre.
Linux Magazine A Microsoft ps

da produo desse material, fizemos pequenos vdeos para contar como essa experincia ocorreu, o que aprendemos e como o cliente pode se beneficiar dela.
LM Fora esse material, como esto

Roberto Prado, Gerente de Estratgias da Microsoft Brasil.

no ar uma srie de vdeos de demonstrao a respeito de um case de implantao de solues Microsoft em conjunto com servidores de cdigo aberto em um ambiente de testes. Como surgiu a ideia de transformar essa experincia em vdeos? Roberto Prado Essa experincia de interoperabilidade foi indita para ns, e aconteceu no Laboratrio de Software Livre da Microsoft, coordenado pelo Fbio Cunha. Ao final

as iniciativas de interoperabilidade da Microsoft no Brasil? RP Fizemos recentemente com o IME (Instituto de Matemtica e Estatstica) da USP um acordo nos moldes do que j temos com a Unicamp, a UFRGS, a UFPA e a Unesp. Com isso, chegou a cinco o nmero de universidades parceiras da Microsoft na rea de interoperabilidade e considero essas as melhores universidades em Engenharia de Computao e Tecnologia da Informao. No Codeplex possvel acessar os projetos feitos pelos estudantes dessas universidades, que vo desde a rea de multidisplay at a virtualizao em CPUs com mltiplos ncleos. A Unesp, por exemplo, se engajou com a comunidade KDE e implementou melhorias em aplicativos educativos do KDE (o pacote KDE-Edu), alm de contribuir para portar todo o ambiente KDE para a plataforma Windows.

24

http://www.linuxmagazine.com.br

Microsoft | CORPORATE

LM Em fevereiro de 2008, a Mi-

crosoft anunciou um conjunto de medidas para favorecer o Cdigo Aberto na empresa. Qual foi o sucesso disso e o que ainda pode melhorar? RP O principal, com relao aos formatos de documentos, foi incluir no MS Office o suporte ao formato ODF o Office 2007 SP2 j traz esse suporte.
LM Esse suporte ao ODF foi bas-

tante criticado. Como a Microsoft reagiu s crticas? RP As crticas so naturais. Algumas pessoas ficam felizes, outras acham que poderia ser melhor tudo faz parte do processo de aprendizado e evoluo. difcil fazer uma implementao dessas e agradar 100% das pessoas. preciso dar o primeiro passo. Para comparar, quando abrimos o primeiro laboratrio de interoperabilidade com a Unicamp, muitas pessoas ficaram confusas, sugerindo que fosse apenas uma ao de marketing, mas mostramos que no era isso. A prova so esses vrios projetos e as pessoas de fato trabalhando neles. Ao incluir um novo padro de documentos, muitos ajustes precisam ser feitos. Talvez a verso do padro no seja a mesma presente em outros produtos, mas esse o comeo. A Microsoft tem demonstrado a disposio para mudar, que o primeiro passo. Tambm tivemos anncios recentes relacionados a Java e Sun, alm de uma parceria com a Red Hat relacionada virtualizao.
LM O Sharepoint tem sido citado

conhecemos o Moodle como uma plataforma de portal. As universidades o utilizam, principalmente em projetos de e-learning e ensino a distncia. Ns investimos num projeto para integrar o Moodle como ambiente de ensino a distncia ao Sharepoint. Fizemos isso no por haver uma demanda especfica nesse sentido, mas por causa de um evento sobre Moodle no qual queramos participar para discutir a interoperabilidade. Utilizamos o Sharepoint como prova de conceito, e o resultado est publicado no Codeplex. Mostramos como implantamos a autenticao com single sign-on com LDAP e habilitamos o PHP, uma ferramenta de cdigo aberto, para funcionamento na nossa plataforma.
LM Como est a questo da inte-

e conseguiram um grande sucesso nessa parceria.


LM Como a Microsoft v a aquisi-

o da Sun pela Oracle? RP Essa uma grande aquisio, mas precisamos aguardar para ver o que de fato a Oracle vai fazer com os ativos da Sun. S ento poderemos emitir alguma opinio. Ns temos anlises internas, claro, mas no posso comentar sobre nossa viso acerca da estratgia dos nossos concorrentes. A Oracle tem feito inmeras aquisies todos os anos essa a estratgia deles. A estratgia da Microsoft diferente dessa. Com relao ao Open Source, no sei se a Oracle vai optar por manter a estratgia da Sun.
LM Tem aumentado o nmero de

roperabilidade entre o Silverlight e o Moonlight? RP Temos visto um aumento dos downloads do plugin do Silverlight medida que mais sites utilizam essa tecnologia. Com o Moonlight, ocorre uma colaborao tcnica. No posso afirmar se temos ou no desenvolvedores trabalhando junto com a Novell. Essa colaborao pode ir desde uma simples visita para discusso das dificuldades de cada equipe at uma abordagem mais reativa de resoluo de problemas.
LM Quanto Novell, qual o sta-

fabricantes de netbooks que pretendem adotar o sistema operacional Android, do Google. Como voc v essa concorrncia? RP H vrias ofertas de sistemas para netbooks, e isso bom. Os prprios aparelhos esto mudando me parece que o poder computacional dessas mquinas est aumentando, ento no sei se elas continuaro para sempre como netbooks ou se vo tornar-se notebooks.
LM Quais os avanos do Windows

como uma oportunidade para a Microsoft mostrar servio em relao interoperabilidade. Como tem sido a ateno a esse ponto especfico? RP Temos um caso prtico no Brasil com relao a isso. Ns re-

tus da colaborao aqui no Brasil? RP Com grande mrito das duas empresas, o acordo foi efetivado no Brasil de uma forma nica, em comparao com outros pases. Eles deram bastante foco colaborao, estabeleceram parcerias

7 com vistas interoperabilidade? RP Temos um projeto para avaliao da autenticao do Vista e do Windows 7 em OpenLDAP. A princpio, no h maiores dificuldades algumas novas funes, talvez, mas nada grandioso. O Windows 7 vai funcionar em redes Linux da mesma forma como funciona hoje. n

Mais informaes
[1] Demonstraes de interoperabilidade: http://technet.microsoft.com/pt-br/demosinterop

Linux Magazine #56 | Julho de 2009

25

CORPORATE

Coluna do Maddog

Procura-se
Precisamos de mais engenheiros de software com qualidade.

oltei recentemente da fantstica conferncia LinuxFest Northwest 2009, em Bellingham, no estado de Washington, EUA. uma cidadezinha ao norte de Seattle que abriga pessoas bem diversas, desde autodenominados hippies ancies at gente de software que fugiu de Redmond para uma vida mais calma. No voo de volta, que saiu do aeroporto de Bellingham, sentei-me ao lado de um cavalheiro aproximadamente da minha idade. Quando o cumprimentei, ele respondeu com um leve sotaque escocs.

Nosso papo chegou aos nossos trabalhos: eu falei sobre meu trabalho de vender Software Livre, e ele me contou de seu trabalho como engenheiro de sistemas na Chevron. Conforme nossa conversa avanava, ele discutiu seus esforos para usar produtos da Microsoft e o nmero de vezes que eles travaram. Sua voz ficou mais calma quando ele falou de como os sistemas Unix e Linux so muito mais estveis e de como ele gosta bem mais deles. Depois, ele disse algo que eu no escutava h muito tempo: Claro que para aplicaes de misso crtica, misso realmente crtica, o tipo de aplicao que precisa funcionar 100%, jamais usaramos computadores controlados por software. A hidrulica o certo. Software simplesmente muito pouco confivel. Meu rosto ficou vermelho afinal, minha vida gira em torno de softwares e computadores digitais. Sistemas que ajudei a criar j levaram astronautas lua, gerenciam grandes depsitos e cuidam de outros trabalhos de misso crtica. Mas sentado l e escutando as histrias de como a Chevron perdeu US$ 60 milhes por dia por causa de uma pessoa do software que no testou seu cdigo, lembrei-me de alguns projetos em que os testes pareciam ser uma questo para depois.

Testando

Maddog autografou revistas no estande da Linux Magazine na LinuxFest Northwest 2009.

Eu me lembro de uma vez ter recebido uma cpia de um software de teste de campo e ter tentado instal-lo no meu computador, mas sem sucesso. Acreditando ser por causa de alguma configurao particular do meu hardware, examinei o cdigo-fonte do programa de instalao, que felizmente estava escrito numa linguagem de script, e vi que era impossvel entender os fontes. Em outras palavras, o engenheiro que escreveu o cdigo no havia tentado execut-lo uma nica vez.

26

http://www.linuxmagazine.com.br

Maddog | CORPORATE

Imediatamente, fui at o escritrio do engenheiro e o adverti de que ele havia posto em risco todo o teste de campo do produto e, portanto, todo o prazo de finalizao do software. As empresas e as vidas das pessoas dependiam do nosso cumprimento daqueles prazos, e apesar de no querermos comercializar um produto defeituoso, era importante cumprir os prazos. Em outra ocasio, determinamos apesar de no ter sido falha da Digital que 12 mil placas de memria tinham um chip defeituoso, o que significava que todas as 12 mil precisariam ser retornadas e remanufaturadas. Naquela poca, o preo da memria era prximo de US$ 1.000 por megabyte, ento no apenas havia o risco potencial de US$ 12 milhes em perdas para a empresa, como tambm o de um atraso na entrega do novo sistema. Uma soluo potencial foi fazer um strobe da memria a cada poucos milissegundos; porm, o software no conseguiria dizer se a placa de algum sistema particular tinha esse defeito ou se estava operando normalmente. Ento, esses sistemas modelados especficos teriam que fazer o strobe da memria enquanto estivessem em uso.

Um engenheiro de hardware props que o Ultrix (nosso sistema Unix na poca) simplesmente inclusse seu software de strobe no kernel, solucionando assim o problema. Eu disse que o problema estava no hardware, e no havia garantias de que esse hardware continuaria com o Ultrix. Algum dia ele poderia rodar do VAX/Eln, um sistema operacional de tempo real usado para vrias operaes de misso crtica. Eu disse que talvez quando os pinos de controle do reator nuclear precisassem ser abaixados, o VAX/Eln pararia alguns milissegundos para fazer o strobe da memria, mas quando continuasse baixando os pinos, o reator nuclear seria uma pilha de cinzas. O grupo de hardware acabou remanufaturando as placas de memria. Engenharia de software de qualidade um trabalho srio. Precisamos de mais dela. n

Jon maddog Hall presidente da Linux International, instituio internacional dedicada a promover o Linux e o Software Livre. Maddog viaja o mundo ministrando palestras e debatendo com decisores sobre o uso do Software Livre em mbito tanto corporativo quanto comunitrio.

Linux Magazine #56 | Julho de 2009

27

CORPORATE

Internet das coisas


No futuro, podemos ter dispositivos e softwares interligados em todo o planeta, de forma a alterar profundamente a forma como o mundo se comporta.

Coluna do Taurion

m assunto que tem me despertado muito interesse e ao qual venho dedicando bastante tempo de leitura e estudos a estratgia Smarter Planet da IBM. Esta estratgia significa na prtica a integrao dos mundos da infraestrutra fsica do planeta com o mundo da tecnologia, por meio de inteligncia embutida em sensores e equipamentos e conectados pela Internet, gerando o que podemos chamar de Internet das coisas. Quando falamos em inteligncia, estamos falando em software. Hoje, nossa civilizao depende de software para funcionar. Software conhecimento engarrafado e a prpria encarnao digital dos processos de negcio. O software j est embarcado na maioria dos produtos que usamos hoje. Nada mais natural que

A Internet das coisas vai combinar a universalidade da Internet, que j a principal infraestrutura de comunicao do planeta, com inteligncia ou software embarcado.
busquemos conectar esta inteligncia dispersa pelos produtos ou coisas com os sistemas que gerenciam processos de negcio, otimizando as infraestruturas fsicas, sejam estas prdios, estradas, processos de logstica e assim por diante. O conceito da Internet das coisas, que podemos considerar como o prximo passo da evoluo no uso da Internet, tem o potencial de modificar profundamente
28

nossa sociedade e nossa economia. A Internet das coisas vai combinar a universalidade da Internet, que j a principal infraestrutura de comunicao do planeta, com inteligncia ou software embarcado em sensores e atuadores, modificando a maneira como o mundo fsico vai operar. Mas quais so os requisitos para isso? No mundo do software, so Open Source, modelos SaaS e uso intensivo de SOA. Open Source que permite a implementao de softwares a custos mais baixos. Por exemplo, para colocar um sistema operacional em um sensor ou atuador, o que escolheramos? Linux, naturalmente, pela sua modularidade e adpatabilidade, bem como por no demandar pagamentos de royalties. O modelo SaaS e uma infraestrutura fsica de computao em nuvem vo permitir que trilhes de sensores e atuadores se comuniquem com os aplicativos que gerenciam os processos de negcio na retaguarda. E SOA vai implementar a componentizao destes servios. Para chegar a este cenrio, a participao da academia fundamental. Os futuros e atuais profissionais de TI tm que ser educados nos requistos acima, bem como ter uma viso mais abrangente, em um modelo de educao mais larga e no unicamente especializada. Estamos ainda nos primeiros passos desta caminhada. Mas as oportunidades de negcio que podemos vislumbrar para pases em desenvolvimento como o Brasil, em uma nova e inovadora rea de criao de software, so imensas. n
Cezar Taurion (ctaurion@br.ibm.com) gerente de novas tecnologias aplicadas da IBM Brasil e editor do primeiro blog da Amrica Latina do Portal de Tecnologia da IBM developerWorks. Seu blog est disponvel em http://www-03.ibm.com/developerworks/blogs/page/ctaurion.

http://www.linuxmagazine.com.br

A desorganizao de TI tem soluo?

Sim, tem soluo


Manter controle sobre os ativos de TI muito importante para a empresa. Cabe ao administrador de TI usar as ferramentas e as tcnicas adequadas para a tarefa. por Pablo Hess

CAPA

ano era 1998. A empresa foi criada com o objetivo de lanar no mercado um servio inovador via Internet. Na poca, o ICQ dominava o cenrio das mensagens instantneas, o GNU/Linux era um sistema operacional para os bravos, o Netscape era o navegador web padro desses bravos usurios e a conexo Internet era discada. Os negcios j comearam muito bem. As poucas dezenas de clientes rapidamente se transformaram em vrias centenas, a receita se multiplicou e a empresa cresceu. Os servidores movidos a GNU/Linux permaneceram teis durante bastante tempo, mas os desktops foram trocados a cada trs ou quatro anos. Hoje, onze anos aps esse fantstico incio, muitas mudanas aconteceram. No apenas as bolhas estouraram e as crises econmicas mundiais e locais foram e vieram; o nmero de funcionrios cresceu dez vezes, vrios padres sofreram alteraes, novos softwares surgiram, novas verses foram lanadas... e os desktops da empresa j esto em sua quinta gerao. A rede da empresa j no mais a mesma e os servidores usam uma tecnologia completamente diferente.

ndice das matrias de capa


De olho na rede Na ponta do dedo Esse AD d samba p.30 p.36 p.42

As informaes sobre toda a infraestrutura de TI residem de forma confiante na memria do administrador da rede. Fabricantes dos computadores e impressoras, topologia da rede, regras do firewall, grupos de usurios no servidor de autenticao, todos esto devidamente anotados em pedaos de papel espalhados pela mesa de um nico funcionrio. O nico problema : est tudo uma baguna! Se for necessrio consultar o contrato de compra dos desktops e servidores, o setor financeiro jamais saber onde encontr-lo. Se o administrador da rede for substitudo, quem entrar em seu lugar precisar de poderes paranormais para descobrir a topologia da rede. A falta de controle sobre a infraestrutura de TI um convite ao aumento dos custos e m utilizao de recursos computacionais, de comunicao e at de energia. Cabe ao administrador manter o controle de seu parque de TI. Este ms, apresentamos algumas ferramentas para manter sua rede mais organizada, mesmo depois de sucessivas substituies do administrador da rede, da arquitetura dos servidores e at de prdio. Primeiramente, demonstraremos como visualizar e manter o controle sobre a topologia da rede com o NagVis, o visualizador do Nagios. Em seguida, descreveremos como o ex-

celente GLPI (Gestion Livre de Parc Informatique Gesto Livre de Parque de TI) permite a unificao das informaes sobre mquinas, perifricos, equipamentos de rede e muito mais. Uma verdadeira mo na roda para manter o controle sobre os ativos de TI da empresa. Por ltimo, explicaremos como usar o fabuloso shell script para integrar seu servidor Samba ao Active Directory, inclusive replicando usurios e grupos para garantir a autenticao segura e eficaz em qualquer mquina da rede. Boa leitura! n

Linux Magazine #56 | Julho de 2009

29

Visualizao de redes Nagios com o NagVis

CAPA

De olho na rede
Quer uma viso ampla de possveis problemas na rede? Veja tudo com o fcil e bonito NagVis. por James Mohr
Iva Villi www.sxc.hu

Nagios uma popular ferramenta de monitoramento de cdigo aberto que permite acompanhar o status dos servidores e servios da sua rede. Quando todos os servios funcionam perfeitamente, ficamos satisfeitos com a viso padro que temos. Contudo, em redes grandes, ou naquelas propensas a problemas ocasionais e inesperados, ficaramos felizes com uma representao visual. Uma renderizao grfica da rede oferece uma indicao rpida de onde podem estar os problemas, alm, claro, de agradar aos gerentes, que normalmente gostam de belas imagens e a convenincia de uma viso geral grfica. O NagVis [1] um add-on til do Nagios que permite visualizar os sistemas na rede. A ideia criar suas prprias imagens de fundo (chamadas de maps, ou mapas) e ento incluir cones nas imagens para representar os servidores e servios da rede. Cada cone exibe o status atual da mquina ou servio que ele representa.
30

Esta modelagem simples e flexvel permite que o NagVis seja implementado de diversas formas. Por exemplo, poderamos criar um mapa geogrfico da sala de servidores e colocar cones nas localizaes fsicas dos diversos servidores. Um mapa poderia servir tambm como uma viso esquemtica de um nico servidor, com os cones representando os servios em execuo nele. O NagVis tambm suporta submapas, permitindo uma representao flexvel para redes muito grandes. Por exemplo, um mapa poderia representar o prdio, e os sub-mapas dentro dele poderiam representar as salas dentro de cada prdio.

estrutura lgica. Por exemplo, voc poderia dividir os sistemas em grupos com base nas suas funcionalidades tais como interface, middleware e bancos de dados. Um servio ou mquina no Nagios representado por um cone, e os cones mudam sua aparncia de acordo com seu status. Se um servio encontrar-se em estado crtico, voc receber um alerta rpido sobre o problema simplesmente observando a modificao no cone.

Por dentro

Mapas

Um mapa no NagVis criado a partir de uma imagem de fundo e de vrios smbolos representando os servios e servidores. Alm dos benefcios bvios de ter-se um mapa que representa a geografia de uma rede, uma outra forma til de implementar os mapas no NagVis por meio da criao de um diagrama da sua

O NagVis uma aplicao em PHP com AJAX contruda sobre o Nagios. Alm do Nagios, preciso garantir que o Nagios Data Out (NDO) e o NDOutils estejam instalados em seu sistema (o NagVis obtm todas as suas informaes de status a partir de um banco de dados NDO). Para este artigo, utilizaremos a verso 3.0.6 do Nagios e o NDOutils 1.4b7. Supe-se tambm que o Nagios j tenha o NDO em execuo e que voc tenha alguma familiaridade com o Nagios e com o NDO.

http://www.linuxmagazine.com.br

NagVis | CAPA

O NagVis uma aplicao web, portanto ser necessrio um servidor web com a verso 4.2 ou mais recente do PHP, assim como uma srie de outros pacotes (veja o quadro 1 ). Note que o NagVis no precisa estar em execuo na mesma mquina que o Nagios. Seria possvel, por exemplo, executar uma instncia do NagVis em um servidor web externo e o Nagios em um servidor interno. Isso especialmente til para permitir que funcionrios consigam visualizar a rede sem conceder a eles permisso para alterar as configuraes do Nagios. O NagVis fornecido normalmente como um arquivo compactado, que pode ser obtido em seu site no SourceForge [1]. O diretrio criado na descompactao do arquivo deve ser renomeado e movido para o diretrio share/ do Nagios (por exemplo, /usr/local/nagios/share/nagvis). Caso voc tenha criado um alias para este diretrio na instalao do Nagios, no precisar criar um novos alias para o NagVis. Basta definir a permisso dos arquivos conforme diz o arquivo INSTALL do NagVis. O diretrio etc/ no diretrio raiz do NagVis contm um arquivo de configurao de exemplo. A abordagem mais simples para a configurao copiar o arquivo de exemplo para nagviz.ini.php e em seguida fazer as modificaes necessrias neste arquivo. Este arquivo construdo como um arquivo .ini do Windows. Os blocos de configurao so definidos com colchetes, e cada parmetro tem o formato parmetro = valor. Por exemplo, o bloco global padro se parece com:
[global] ; idioma em ingles (english,german,french,...) language=english ; formato de data para o nagvis exibir (confira a documentao do PHP)

Quadro 1: Apenas os mapas


Como o NagVis utiliza o arquivo de configurao do Nagios (/usr/local/ nagios/etc/htpasswd.users), se aplicam aqui as mesmas regras de acesso do Nagios. Contudo, existe a opo de definir um outro arquivo para os diferentes grupos de usurios por exemplo, ../share/nagvis/etc/.htaccess. Desta forma, seria possvel definir acessos especficos dos usurios aos mapas do NagViz sem permitir a eles acesso direto ao Nagios.

;dateformat=Y-m-d H:i:s ; mostrar ou ocultar os cabealhos (0/1) ;displayheader=1 ; intervalo de atualizao das pginas ;refreshtime=60

No arquivo de configurao voc perceber que a maioria dos parmetros comentado. O NagVis autodocumentado, e ser fornecido o valor padro para a maioria dos parmetros. Os parmetros para o banco de dados do Nagios so definidos no bloco que define o chamado back-end. Um back-end do Nagios simplesmente uma fonte de dados. O tipo de backend padro, ndomy, que diz que o NagVis obtm seus dados de um banco de dados MySQL NDO, a Com o Nagios instalado, possvel nica opo suportada no momento. notar que vrios servios padro so Certifique-se de ter alterado os pa- configurados para o localhost (isto , rmetros dbuser (usurio) e dbpass (senha) para os valores corretos. Embora voc possa utilizar o mesmo usurio do Nagios, como o usurio pode ler o banco de dados, no existe problema algum em criar um usurio especfico para o NagVis. Por padro, usase apenas um backend, definido como [backend_ndomy_1]; mas possvel defi- Figura 1 A tela inicial do NagVis fornece uma primeira viso dos seus sistemas. nir outros. Pode-se

exibir as informaes de vrias instncias do Nagios em vrios servidores. Para isso, basta definir os parmetros necessrios na definio do backend. Note que preciso incluir um back-end na sua definio para que o NagVis o reconhea. Se o NagVis no funcionar na primeira tentativa e as mensagens de erro na tela no ajudarem, ser preciso verificar o arquivo /var/log/ messages. Este arquivo normalmente fornece informaes adicionais sobre as causas reais do problema. Um dos problemas mais comuns no conseguir acessar o banco de dados MySQL, que indicado pela mensagem de erro Could not open data sink!.

Configurao

Linux Magazine #56 | Julho de 2009

31

CAPA | NagVis

a mquina em que o Nagios executado). Como estes servios so bem conhecidos, o NagVis reconhecer automaticamente estes servios e os exibir de forma apropriada. Neste ponto, pode ser tentador simplesmente pular para a parte de configurao do mapa, mas importante no esquecer um componente chave: a imagem de fundo. A imagem que voc utiliza no precisa ser simptica. Um simples diagrama de linhas e qualquer ferramenta grfica que salve arquivos PNG ir servir. Como geralmente o propsito de mapas como este ser perfumaria para os gerentes, voc pode preferir fazer um mapa com uma aparncia um pouco melhor. Alm disso, como estes mapas sero utilizados por algum tempo, torn-los esteticamente mais agradveis no

uma m ideia. Ao final, copie a imagem para ../nagvis/nagvis/images/maps (note que a duplicidade do nagvis est correta). Inicie a configurao apontando o navegador para http://MQUINA/ nagios/nagvis. Esse endereo leva voc pgina inicial do NagVis (figura 1). Ao clicar em um dos cones, abre-se um mapa em tela cheia (figura 2). A qualquer momento possvel clicar em Edit current map para alternar para o modo de edio. Clique no mapa com o boto direito para abrir um menu de contexto. A primeira opo, Open Map, abre o mapa selecionado no editor do NagVis. A opo Open in NagVis abre o mapa em modo somente-leitura. O item Options permite a configurao do mapa atual. A opo NagVis Configuration utilizada para configurar o prprio NagVis. A menos que voc tenha feito alteraes diretamente no arquivo de configurao, todos os campos estaro vazios na configurao padro.

for_config). Estes usurios so os

Mapas

Figura 2 Mesmo um mapa simples do NagVis pode


ser muito eficiente.

Figura 3 O formulrio de criao de mapas do


NagViz.

Selecionando Manage|Mapas no menu, possvel criar um mapa ou realizar funes administrativas como renomear ou excluir um mapa. Na parte de cima do formulrio ( figura 3), deve-se inserir o nome do mapa, depois informar quais usurios tm acesso de leitura (allowed_ user) e quais podem alterar a configurao do mapa (allowed_

mesmos que o servidor web reconhece, mas o NagVis no faz qualquer verificao neste momento, embora seja necessrio ter certeza de que os usurios foram definidos da forma correta. Note que ser emitido um alerta caso um dos campos User seja deixado em branco. Por padro, preciso incluir pelo menos o usurio nagiosadmin ou o nome do administrador principal do Nagios. Se voc paranico por segurana, poder utilizar um usurio diferente. Tambm possvel alterar este parmetro para EVERYONE, sem especificar os usurios explicitamente, de forma que todo usurio autenticado consiga ver o mapa. Em seguida, selecione a imagem de fundo no menu map_image. Neste caso, o mapa com a imagem criada anteriormente precisa estar presente no sistema. Tenha em mente que o NagVis no redimensiona as imagens, ento possvel que sua imagem tenha boa aparncia na aplicao utilizada para cri-la, mas fique muito grande em um determinado monitor, forando o usurio a utilizar a barra de rolagem do navegador para ver toda a imagem. Se voc possui vrios mapas com uma hierarquia profunda, possvel utilizar o parmetro show_in_lists para reduzir a baguna. O valor 0 evita que o NagVis mostre o mapa na lista suspensa ou na pgina inicial. O campo Map Iconset define o conjunto de cones utilizados para exibir um status. Por padro, o NagVis utiliza trs conjuntos de cones (big, medium, e small), que ficam no diretrio ../nagvis/nagvis/images/. Se for interessante, possvel editar as imagens existentes conforme a sua necessidade ou criar seu prprio conjunto com novas imagens. O conjunto configurado para o mapa como um todo, mas tambm possvel definir um

32

http://www.linuxmagazine.com.br

CAPA | NagVis

cone para servios ou servidores individuais. Para detalhes sobre a criao do seu prprio conjunto, veja a documentao no site do NagVis [1]. Aps terminar, clique em Save para retornar para a janela Map Image.

Quadro 2: Pacotes necessrios para o NagVis


mysql-devel php5 php5-common php-gd php-mysql php5-mbstring php5-session php5-xml graphviz (para o automap)

Novos objetos

Neste ponto, o mapa existe apenas como uma imagem de fundo. Precisamos adicionar os cones para os servidores e servios. Primeiro, clique com o boto direito no mapa e selecione Add Object, depois clique em Icon para escolher os itens Host, Service, Hostgroup, Servicegroup e Map. As primeiras quatro opes so autoexplicativas. O cone Map permite a criao de um link para um mapa diferente. Ligar mapas diferentes til para criar uma hierarquia de mapas de prdios, servidores e armrios de servidores. Tambm se pode definir cones para servidores ou servios se conectarem a uma URL completamente externa ao NagVis e ao Nagios. Por exemplo, para monitorar a disponibilidade de um site, poderamos simplesmente criar um link para o site para verificar seu status. Ao selecionar a opo para adicionar um objeto, o cursor muda para uma cruz. Neste momento, possvel mover o mouse e clicar com o boto esquerdo onde se deseja colocar o cone. Uma janela pop-up permite incluir informaes sobre a configurao do servidor ou servio a ser adicionado. Assim como o Nagios, o NagVis emprega o campo use para definir modelos de configurao acessveis a todos os servios e servidores no mapa. Neste caso, preciso configurar apenas as opes que so diferentes do modelo. Ao editar um cone, no preciso necessariamente clicar nele para fazer as mudanas. Se voc mover
34

Quadro 3: Hard States


Um aspecto til do NagVis que ele reage apenas a hard states (estados rgidos). Isto , se um servio tem um pequeno problema e se torna indisponvel temporariamente, voc normalmente no ver alteraes no mapa . Se voc preferir saber sobre todas as modificaes de status, altere o parmetro only_hard_states para no ao configurar o servidor.

o mouse sobre um cone, uma pequena janela se abre em questo de segundos com a configurao do cone e um link que permite alterar essa configurao. Se for prefervel uma abordagem mais automtica, pode-se configurar os cones para que exibam automaticamente um texto em vez de esperar um evento de mouse. Durante a configurao de um servidor, o NagVis exibe por padro apenas o status do prprio servidor. O parmetro recognize_services faz o NagVis incluir os servios no servidor em questo. Provavelmente no ser necessrio incluir os cones de servio e de servidor em um nico mapa. Contudo, para mapas de alto nvel, pode ser til combinar essas informaes.

Note que voc no est limitado apenas aos servios ou servidores individualmente. O NagVis suporta grupos de servidores e grupos de servios, que aparecem no menu de configurao juntamente com os servidores e servios individuais. Como os servidores e servios dentro de um determinado grupo podem ter prioridades diferentes, o NagVis exibe o status com a prioridade mais alta.

E no s isso

O NagVis ajuda voc a visualizar seu ambiente do Nagios com mapas personalizados. Uma vez que seus mapas estejam definidos com a configurao bsica, voc estar pronto para experimentar opes mais avanadas para ver como elas se adequam ao seu ambiente. n

Mais informaes
[1] NagVis: http://www.nagvis.org

http://www.linuxmagazine.com.br

apresentamos o novo lImIte dos planos de Hospedagem Uol Host.

Hospedagem IlImItada Uol Host.


O UOL HOST acaba de lanar seus novos planos, sem limites de transferncia de dados e sem limite de domnios, com preos a partir de R$ 7,90*. Alm disso, suporte tcnico, construtor de sites, e-mails e o mais moderno Painel de Controle para administrao da sua hospedagem. Agora o cu o limite para a audincia de seu site.

0800 723 6000 www.uol.com.br/host

*Nos primeiros 3 meses, depois R$14,90. Promoo vlida at 30/07/2009.

Gabarito

Gerenciamento de recursos com o GLPI

CAPA

Na ponta do dedo
Use o GLPI para manter o controle de inventrios, histricos de manuteno e chamados de suporte. por Evelthon Prodromou

s departamentos de TI gerenciam quantidades infindveis de informao, tais como inventrios de dispositivos, contratos, tquetes de suporte e detalhes de fornecedores. No ritmo frentico da rede padro, essa informao sempre preenchida de forma ineficiente ou at mesmo perdida. No seria interessante armazenar todos esses dados num nico banco de dados com uma interface unificada e amigvel? O GLPI (Gestion Libre de Parc Informatique) [1] um aplicativo web

baseado na pilha LAMP e dedicado ao gerenciamento de inventrio, acompanhamento de tarefas, reservas de equipamentos e informaes bsicas de topologia de rede. Diferentemente de muitas ferramentas proprietrias equivalentes, o GLPI no exige um aplicativo cliente local; em vez disso, ele operado por meio de uma interface web simples e flexvel.

Instalao

Instalar o GLPI bem fcil. A primeira etapa garantir que os componentes e servios necessrios estejam

Figura 1 O assistente de instalao verifica as necessidades.

em execuo no sistema. Para isso, necessrio instalar um servidor web Apache [2], o MySQL (4.23 ou posterior) [3] e o PHP [4]. Aps instalar o MySQL, crie um banco de dados para o GLPI e crie um usurio com acesso de leitura e escrita. Em seguida, preciso baixar a verso mais recente do GLPI em seu site. possvel tanto baixar e descompactar o GLPI diretamente no servidor quanto baixar e descompactar localmente e fazer upload para o servidor. A estrutura de diretrios deste artigo se baseia no openSUSE [5] preciso adaptar a estrutura para outras distribuies. Agora, preciso mover os arquivos descompactados na raiz web do Apache (/srv/www/htdocs/ ou /var/ www/htdocs/). A ltima etapa antes da instalao conceder ao Apache acesso de escrita aos diretrios /files/ e /config/ por meio de suas permisses, dono e grupo. Para comear a instalao, basta visitar http://seu_servidor/ com o navegador web. Um assistente de instalao via Web guia o administrador atravs do curto procedimento de instalao. A primeira escolha que deve ser feita o idioma padro. Ao clicar em OK, mostra-

36

http://www.linuxmagazine.com.br

GLPI | CAPA

da a licena do software. O GLPI licenciado sob a GNU GPLv2. Simplesmente aceite a licena e clique em Continue. Para iniciar o procedimento de instalao, clique em Installation na prxima tela. O assistente de instalao vai verificar todos os componentes necessrios, como mostra a figura 1. Se algo estiver errado, ser emitido um alerta, e o problema precisar ser resolvido para o processo continuar. Ao escolher Continue, o administrador ser levado ao formulrio de informaes do banco de dados, que deve ser preenchido com o nome de usurio, senha e nome da mquina do banco de dados MySQL. Se tiver sido criado um banco de dados para o GLPI antes de iniciar o instalador, agora voc pode popular o banco ou criar um novo, como mostra a figura 2. Clique em Continue para popular o banco de dados, e depois novamente em Continue para ver uma lista como as quatro contas padro (tabela 1). Clique no boto Use GLPI para a tela de login do GLPI. recomendvel testar todas as quatro contas e comparar os direitos atribudos a cada uma delas. possvel criar outras contas mais tarde, ou ainda editar as que j existem para modificar os nveis de acesso conforme a necessidade da empresa. Cada conta de usurio possui sua prpria interface de usurio. comum fazer instalaes com trs nveis de usurios: administrador, tcnico e usurio comum.

Figura 2 Escolha do banco de dados para popular com os dados do GLPI.

categorias podem se inter-relacionar de forma a gerar ligaes entre hardwares, softwares, usurios, fornecedores, documentos, contratos, tquetes de suporte etc. Para comear a se familiarizar com o GLPI, faa login como administrador do sistema para visualizar a interface de administrao (figura 3). Nela, h seis categorias principais: Inventory (Inventrio), Assistance (Assistncia), Management (Gerenciamento), Tools (Ferramentas), Administration (Administrao) e Setup (Configurao). O menu Inventory fornece informaes so-

bre os computadores e dispositivos presentes na rede. A primeira subcategoria, Computers, apresenta uma lista dos computadores (figura 4). possvel fazer buscas nessa lista por meio de filtros. O GLPI permite a criao de modelos pr-configurados para cadastrar sistemas semelhantes no inventrio. Para criar a entrada, use um modelo e depois edite as configuraes de nmero de srie, nome da mquina e endereo IP, conforme necessrio. Alm disso, possvel digitar uma entrada inteira manualmente. A figura 5 mostra a tela

Tabela 1: Contas de usurio padro do GLPI


Papel Administrator Tcnico Usurio comum Usurio restrito Usurio glpi tech normal post-only Senha glpi tech normal post-only

Mais intimidade

O GLPI uma ferramenta com mltiplos propsitos que gerencia tanto usurios quanto seus equipamentos. O objetivo armazenar informaes, que so divididas em categorias que possuem subcategorias. Cada subcategoria tem entradas com detalhes. As entradas de diferentes

Figura 3 Interface do usurio administrador.

Linux Magazine #56 | Julho de 2009

37

CAPA | GLPI

Figura 4 Lista de computadores na lista do inventrio do GLPI.

Figura 5 Exemplo de entrada de computador.

que permite o cadastro de um computador no inventrio. O hexgono verde com uma lente de aumento direita de um campo indica que possvel adicionar, editar e apagar uma entrada nesse campo.

Tquetes

O outro lado do GLPI seu papel de fornecer suporte a help desks. A interface do GLPI facilita a criao e o gerenciamento de tquetes de suporte. Usurios comuns podem

criar novos tquetes para pedir suporte. Administradores e tcnicos podem criar tquetes manualmente ou atribuir o tquete de um usurio ao tcnico apropriado. A opo Assistance tem as subcategorias Tracking (acompanhamento), Helpdesk, Planning (planejamento) e Statistics (Estatsticas). A subcategoria Tracking permite ao administrador conferir uma lista com todos os tquetes criados pelos usurios. Por padro, a lista mostra os tquetes atualmente abertos. A ferramenta de busca oferece filtros simples e avanados para especificar mais a lista de acordo com os seus prprios critrios, alm de ordenar a lista e efetuar aes em mltiplos itens. Alm disso, possvel exportar os itens resultantes em formatos PDF, Excel e outros. O administrador do sistema pode efetuar aes em todos os tquetes, mas usurios comuns s podem acessar as informaes de seus prprios tquetes. Tquetes ativos so resumidos em uma lista para o usurio. A lista inclui vrios campos de dados, como as datas de criao e da ltima atualizao, nome do emissor do tquete e tcnico encarregado de resolv-lo. Clique num tquete da lista para vlo, edit-lo ou fech-lo.

Gerenciamento

Quadro 1: Antes e depois


O recurso de planejamento do GLPI permite o agendamento de intervenes e eventos com uma viso de calendrio. Alm disso, possvel exportar os dados de calendrio num formato iCalendar para sincronizar com outras ferramentas de calendrio, tais como as do projeto Mozilla Calendar [6]. O GLPI tambm permite visualizar as estatsticas dos tquetes abertos por usurios incluindo detalhes de cada item (localizao, sistema operacional, placa grfica etc.), assim como relatrios de parmetros gerais, tais como o nmero total de tquetes, os tempos mximos de resoluo de tquetes e outras. Os resultados aparecem em formatos de tabela ou grfico.

Os recursos de gerenciamento do GLPI permitem o uso de abas nos contatos, fornecedores, contratos e documentos. Um fornecedor semelhante a um contato, embora o termo tenha significado especial. Um fornecedor uma pessoa que vende equipamentos para a empresa, ento entradas da lista de fornecedores podem ligar-se diretamente a um item do inventrio. Dessa forma, ao visualizar os detalhes de um item no inventrio, o administrador j sabe automaticamente de quem comprou o item e como contactar esse fornecedor.

38

http://www.linuxmagazine.com.br

GLPI | CAPA

As entradas de contratos podem referir-se a documentos de contrato assim como a detalhes de garantia, data de validade, custos de renovao etc. Os contratos tambm so ligados aos itens do inventrio e ao fornecedor que os emitiu. Alm disso, possvel anexar um documento escaneado para gerenciar o contrato impresso de forma eletrnica. O mdulo Documents (Documentos) um mdulo universal com muitas utilidades. Um documento pode ser um tquete de suporte ou contrato, ou ainda pode ser simplesmente um papel importante que se deseje preservar. bastante til, por exemplo, escanear todos os documentos relacionados a contratos, manuteno e faturas. Outra caracterstica til dos documentos a possibilidade de anexar arquivos, como capturas de tela e planilhas, aos tquetes de suporte.

Quadro 2: Configuraes pessoais


Todos os usurios, independentemente do nvel de acesso, podem definir algumas configuraes pessoais. Para acess-las, basta clicar no link Settings no canto superior direito do aplicativo. Alm do nome do usurio, telefone, email e nmero do celular, possvel definir um idioma preferencial e outros parmetros que ditam a forma como o GLPI exibe as informaes de tquetes. Alm disso, possvel alterar a senha da conta, contanto que sua conta no tenha sido autenticada por uma fonte externa, como um diretrio LDAP.

Ferramentas

O recurso Tools fornece acesso a vrias informaes de suporte. O GLPI divide a seo Tools nas categorias Notes (Notas), Knowledge base (Base de conhecimento), Reservations (Reservas) e Reports (Relatrios). Uma quinta categoria opcional se chama OCSNG [8] e permite a importao de dados a partir de outro aplicativo. As notas podem ser tanto pessoais (visualizadas somente pelo autor) ou pblicas. Somente usurios super-

administradores podem adicionar notas pblicas. Uma base de conhecimento uma lista FAQ (perguntas muito frequentes, na sigla em ingls), sendo possvel criar sua prpria FAQ para qualquer tpico. Uma boa estratgia adicionar FAQs aps observar tquetes de suporte. Se uma pergunta for feita repetidamente, seja pelo mesmo grupo de pessoas ou por diferentes usurios, ela deve ser acrescentada s FAQ apropriadas.

Loja

Edio do ms

Livros

Sees

Ao se inscrever no portal, voc se cadastra automaticamente em nossa newsletter e recebe toda semana notcias Linux Magazine #56 | Julho de 2009 e promoes exclusivas.

Notcias

39

CAPA | GLPI

logs e criar instantneos (snapshots) do banco de dados. O menu Setup possibilita a configurao de parmetros globais para notificaes, autenticao, gateways de email, tipos de documentos, links externos e outros recursos.

Concluso

Figura 6 Visualizao dos detalhes de um tquete de suporte.

Uma reserva um pedido de material que pode ser emprestado. Na biblioteca da UCy [8], por exemplo, as reservas so usadas para compartilhar laptops e projetores entre os funcionrios. Cada funcionrio pode reservar equipamentos e acessar um calendrio para visualizar o conjunto atual de reservas.

Administrao e configurao
As sees Administration e Setup do menu principal ajudam a configurar e gerenciar o sistema GLPI. O menu Administration permite a configurao dos usurios e grupos. Alm disso, possvel implementar

Esta pequena introduo apresentou apenas um panorama superficial do que est includo no sistema livre GLPI para helpdesk e gerenciamento de ativos. Alm de uma grande variedade de recursos embutidos, h outras opes disponveis por meio de plugins externos. O GLPI oferece documentao online em vrios idiomas, alm de sempre se poder pedir ajuda em fruns. O GLPI fcil de implantar e possui uma curva de aprendizado curta para usurios finais. Por outro lado, os administradores de sistemas certamente encontraro muitas opes para personalizar o sistema. n

Relatrios

O GLPI oferece sete tipos de relatrios. O relatrio padro uma lista da quantidade de itens por categoria por exemplo, 100 computadores, 40 impressoras etc.). Um relatrio de contratos permite visualizar os equipamentos organizados de acordo com detalhes de contrato, como data de compra, data de validade da garantia, datas de incio e fim e outras. possvel emitir tambm relatrios anuais de materiais. O item Hardware financial information um resumo de computadores, impressoras, monitores, perifricos e redes. J Other financial information exibe um resumo de cartuchos de impressora, licenas de software e outros itens de consumo. O item Network report oferece informaes sobre a rede. Por ltimo, h um relatrio de emprstimos (loan report), que resume as reservas passadas e futuras de um usurio especfico.
40

Mais informaes
[1] Projeto GLPI: http://www.glpi-project.org/spip.php?lang=en [2] Fundao Apache: http://www.apache.org/ [3] MySQL: http://www.mysql.org/ [4] PHP: http://www.php.net/ [5] openSUSE: http://www.opensuse.org/ [6] Projeto Mozilla Calendar: http://www.mozilla.org/projects/calendar [7] OCSNG: http://www.ocsinventory-ng.org/ [8] Biblioteca da Universidade do Chipre: http://library.ucy.ac.cy/ENGLISH/index_en.htm

Sobre o autor
Evelthon Prodromou engenheiro eletricista e de computao e trabalha com TI na biblioteca da Universidade do Chipre. Seus interesses incluem a virtualizao de servidores, algoritmos de classificao, e-learning e a interao homem-mquina. Seu site pessoal http:// www.prodromou.eu.

http://www.linuxmagazine.com.br

Futurecom, o mais qualificado Evento de Telecomunicaes GLPI | CAPA e Tecnologia da Informao da Amrica Latina.

PREMIUM SPONSORS

MASTER SPONSORS

GOLD SPONSOR

SPONSORS

09/06/09

Futurecom, networking o ano inteiro. Participe do Grupo Futurecom no


saiba mais:
Linux Magazine #56 | Julho de 2009

Promoo e Organizao:

www.futurecom.com.br

andre.veiga@provisuale.com.br nalzira.muniz@provisuale.com.br (41) 3314-3200

41

Integrao entre Samba e Active Directory com Shell Script

CAPA

Esse AD d samba
O Samba foi feito, em parte, para conversar adequadamente com o Active Directory. Veja como usar scripts shell para fazer essa conversa fluir. por Miguel Mucio Santos Moreira
Gabriel Negreiros www.sxc.hu

m artigos recentes na Linux Magazine, vimos como integrar o Linux ao Active Directory de duas formas: a primeira via Samba, Kerberos e Winbind [1], e a outra via Likewise Open [2], uma interface grfica que facilita a configurao dessa integrao. Esses artigos contemplaram o Linux como uma estao de trabalho. Para implementar essa integrao num servidor de arquivos Samba, a situao se torna mais complicada; afinal, se criarmos usurios e grupos no AD e utilizarmos um servidor de arquivos Samba, como faremos

para que as pastas, permisses e compartilhamentos sejam gerados de forma automtica? Este artigo possui o intuito de mostrar, em sua grande maioria, a parte prtica dessa integrao que ser executada por meio do Samba, do Winbind, do Kerberos e uma boa dose de scripts shell. A distribuio utilizada para escrev-lo foi Red Hat Enterprise Linux, mas a soluo deve funcionar sem problema algum no Fedora e no CentOS.

Mo na massa

Listagem 1: Arquivo smb.conf


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 [global] workgroup = NETTEO server string = Servidor de Arquivos netbios name = center security = ads password server = server.netteo.com.br realm = NETTEO.COM.BR encrypt passwords = yes wins server = server.netteo.com.br idmap uid = 10000-20000 idmap gid = 10000-20000 template shell = /bin/false winbind enum users = yes winbind enum groups = yes winbind use default domain = yes winbind separator = + directory mask = 0770 create mask = 0660

Primeiramente, precisamos configurar o sistema para que ele consiga resolver o nome DNS do servidor Kerberos Windows 2003, seja por meio do servidor DNS da rede, seja com auxlio do arquivo /etc/hosts. Em seguida, devemos configurar o Samba, que um conjunto de ferramentas incluindo um daemon que permite que mquinas Windows e Linux se comuniquem por meio dos protocolos SMB (Server Message Block) e CIFS (Commom Internet File System), sendo o principal responsvel pela integrao proposta. Vamos listagem 1, que mostra o arquivo smb.conf e seus principais parmetros.

O parmetro workgroup deve receber o valor do nome do domnio no caso, NETTEO. O item security = ads faz com que o Linux repasse a senha para o controlador de domnio do AD. O valor de wins server deve receber o nome do servidor do AD, e os parmetros idmap uid e idmap gid se referem aos IDs que sero atribudos aos usurios e grupos presentes no Active Directory. Aps a configurao do Samba, devemos configurar o Kerberos e o NSS (Name Service Switch). O Kerberos um protocolo de autenticao de rede projetado para prover autenticao robusta para aplicaes cliente/servidor por meio de chaves criptografadas. Ele trabalha com uma rea denominada realm ou domnio, rea essa que possui os clientes Kerberos e o Centro de Distribuio de Chaves, composto por um servidor de autenticao (AS) e um servidor de tquetes (TS). Como o nosso servidor exercer a funo de cliente Kerberos, precisaremos configurar somente o arquivo /etc/krb5.conf. Para isso, modifique o arquivo de acordo com a listagem 2. A seo logging contm a relao de locais onde os componentes do Kerberos iro gerar seus logs. Na seo libdefaults, o principal parme-

42

http://www.linuxmagazine.com.br

Samba e AD | CAPA

tro default_realm, responsvel por identificar qual ser o realm padro utilizado pelo cliente Kerberos. A seo realms onde devemos especificar quais so os realms existentes em nossa rede. A seo domain_realm faz o mapeamento entre domnios DNS e domnios Kerberos. Por fim, a seo appdefaults contm os valores padro que podem ser utilizados por aplicaes do Kerberos. Feita essa configurao, devemos testar a conexo com algum usurio do domnio:
kinit usurio do domnio

Se o comando no retornar nenhum dado na tela, poderemos executar o comando klist para verificar se o tquete foi realmente emitido. A sada do comando mostrar algumas informaes, tais como o usurio que solicitou o tquete e a sua validade. O NSS o responsvel pelo controle de como um cliente ou aplicativo obtm informaes relacionadas a usurios pela rede. Devemos configur-lo no arquivo /etc/nsswitch. conf, definindo o parmetro winbind nos bancos de dados passwd e group,e fazendo com que o NSS, juntamente com o winbind, mapeie os usurios e grupos do Windows, definindo UIDs e GIDs vlidos no ambiente Linux. Por isso devemos ter a certeza de que, se criarmos usurios e grupos localmente no Linux por algum motivo por exemplo, um usurio de FTP, devemos fazer com que o Linux no use os mesmos IDs que esto sendo usados pelo Winbind/ NSS e que foram configurados no Samba. Por essa razo, vamos editar o arquivo /etc/login.defs (listagem 3), responsvel pelo padro usado pelos comandos useradd e groupadd, e alterar os valores necessrios. Como os IDs que foram definidos no Samba para uso do Winbind esto no intervalo de 10.000 a 20.000, podemos usar qualquer faixa dife-

rente desta para usurios locais. Vale ressaltar que o winbind trabalha com um sistema de cache para os usurios e grupos. Sendo assim, caso haja necessidade de que toda alterao feita no Active Directory seja refletida imediatamente no servidor de arquivos, devemos alterar a execuo do servio para que ele possa ser executado sem cache. Para isso vamos editar o arquivo /etc/init.d/winbind na seo start e modificar a linha daemon winbind $WINBINDOPTIONS, definindo o parmetro -n, como na listagem 4. O arquivo de controle dos IDs dos usurios Windows que esto sendo mapeados no Linux /var/cache/samba/winbind.tdb. Esse arquivo deve possuir uma rotina de becape, pois se ele for corrompido poderemos ter problemas com os IDs, uma vez que a criao de um novo arquivo pode ocasionar em IDs diferentes daqueles definidos anteriormente. Para realizar esse becape, lanaremos mo de um utilitrio do pr-

Listagem 2: Arquivo /etc/krb5.conf


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = NETTEO.COM.BR dns_lookup_realm = false dns_lookup_kdc = true [realms] NETTEO.COM.BR = { kdc = 10.15.0.2 admin_server = 10.15.0.2 default_domain = netteo.com.br } [domain_realm] .netteo.com.br = NETTEO.COM.BR netteo.com.br = NETTEO.COM.BR [kdc] profile = /var/kerberos/krb5kdc/kdc.conf [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }

Exemplo 3: Arquivo /etc/login.defs


# Min/max values for automatic # uid selection in useradd # UID_MIN500 UID_MAX1000 # # Min/max values for automatic # gid selection in groupadd # GID_MIN500 GID_MAX1000

Exemplo 4: Trecho do arquivo /etc/init.d/winbind


start() { KIND=Winbind echo -n $Starting $KIND services: daemon winbindd -n $WINBINDOPTIONS RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/winbindd || RETVAL=1 return $RETVAL }

Linux Magazine #56 | Julho de 2009

43

CAPA | Samba e AD

Figura 1 O authconfig permite ativar o uso do Winbind para autenticao.

Mesmo que os comandos acima retornem os usurios e grupos do AD, o Linux ainda no est preparado para autenticar os usurios que acessaro os compartilhamentos. Por isso, devemos configurar o PAM (Pluggable Authentication Modules), modificando-o para que consiga validar os usurios e seus respectivos grupos por meio do Winbind. No caso da distribuio utilizada no ambiente proposto, basta executar o comando authconfig e habilitar os parmetros Utilizar Winbind e Utilizar Autenticao Winbind (figura 1). Na prxima tela (figura 2), basta confirmar a opo OK, pois o restante da configurao j est efetivado. Caso seja desejvel habilitar manualmente esses parmetros, basta editar o arquivo /etc/pam.d/systemauth e alter-lo conforme as linhas 6, 10 e 14 da listagem 5. Vale ressaltar que nos comentrios da descrio do arquivo system-auth, ele recomenda que se utilize o authconfig em vez de se editar manualmente o arquivo. Para verificar se a configurao citada anteriormente foi efetivada, basta executar o comando getent passwd. Se o comando retornar os usurios cadastrados no Active Directory, significa que a configurao foi bem sucedida.

Figura 2 Ainda no authconfig, fcil configurar os demais parmetros de


autenticao via Winbind.

Poderoso shell

prio Samba, chamado tdbbackup, especfico para essa soluo. Alm disso, ele possui a vantagem de tentar recuperar um arquivo caso este esteja corrompido. Sua sintaxe bem simples:
tdbbackup -s sufixobecape arquivo tdbbackup -v arquivocorrompido

membro do domnio NETTEO, por isso devemos inseri-lo no domnio.


net ads join U Administrator

Reinicie os servios do Samba e do Winbind. Em seguida, vamos listar os usurios e grupos do domnio para verificar se est tudo em ordem.
wbinfo u wbinfo g

Apesar de toda essa configurao, nosso servidor Samba ainda no

Agora sim vamos para a parte interessante e que o corao de toda a automatizao da nossa integrao: os scripts que controlam a criao das pastas, dos compartilhamentos e tambm das permisses dos nossos grupos e usurios. Trs scripts e alguns arquivos so responsveis por toda essa automatizao e possuem um diretrio padro j predeterminado. Caso haja necessidade de alterar o caminho, basta alterar o arquivo parametros. Os scripts supem que cada usurio e grupo no AD deve ter uma pasta e um compartilhamento no servidor

44

http://www.linuxmagazine.com.br

Samba e AD | CAPA

Listagem 5: Arquivo /etc/pam.d/system-auth


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required /lib/security/$ISA/pam_env.so auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok auth sufficient /lib/security/$ISA/pam_winbind.so use_first_pass auth required /lib/security/$ISA/pam_deny.so account account account account password password password password session session required /lib/security/$ISA/pam_unix.so broken_shadow sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_winbind.so required /lib/security/$ISA/pam_permit.so requisite sufficient sufficient required required required /lib/security/$ISA/pam_cracklib.so retry=3 /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow /lib/security/$ISA/pam_winbind.so use_authtok /lib/security/$ISA/pam_deny.so /lib/security/$ISA/pam_limits.so /lib/security/$ISA/pam_unix.so

de arquivos. Se for necessrio criar grupos e usurios sem compartilhamentos, basta editar alguns arquivos de controle que sero detalhados posteriormente. Aps todo o processo de integrao e aps obter a devida cpia dos arquivos nos respectivos diretrios que esto definidos no arquivo parametros, devemos executar o script scriptAD.sh (listagem 6, disponvel em [3]), responsvel pela criao das pastas e dos compartilhamentos iniciais do servidor Samba. Porm, como sabemos, o AD possui alguns usurios que executam determinadas tarefas do Windows, como a conta krbtgt, que contm as chaves para o servio Centro de Distribuio de Chaves, e alguns grupos como o domain users, que o grupo padro dos usurios do domnio, sendo que estes no necessitam de compartilhamentos no nosso servidor Samba. Sendo assim, nessa primeira execuo deveremos inserir esses usurios e grupos diretamente em scriptAD. sh, na linha 26, que a parte responsvel por esse controle. Na listagem 6 vemos a incluso dos grupos e dos usurios no servidor de arquivos, sendo que para a incluso dos usurios o script cria as pastas no

sistema de arquivos, define as permisses necessrias e gera a mensagem de incluso do usurio. Na incluso dos grupos, aps criar as pastas e definir as permisses necessrias no sistema de arquivos, o script cria tambm uma seo de compartilhamento do grupo no arquivo smb.

conf. Podemos observar tambm que

o script gera um arquivo de becape do smb.conf no diretrio /etc/samba/ smbold/, que deve ser criado manualmente antes da execuo do script. A execuo da incluso dos usurios no necessita da criao de uma seo do compartilhamento para

Listagem 6: Criao de usurios em scriptAD.sh


13 until [$SN==sim-o$SN==nao]; 14 do 15 read-pPrimeira execuao do Script?(sim/ nao):SN 16 done 17 if [$SN==sim];then 18 pidof winbindd >/dev/null &&pidof smbd >/ dev/null 19 if [$?-eq0];then 20 echo$MSG02 21 wbinfo -u>&- 2>/dev/null 22 if [$?-eq0];then 23 echo$MSG03 24 echo$MSG04 25 # Gerando arquivos de usuarios/grupos 26 wbinfo -u|grep\(administrator\|guest \|support_388945a0\|krbtgt\)>$SCRIPTUSER/users_bultin &&wbinfo -g|grep\(BUILTIN+users\|BUILTIN+administrators\|domain*\|schema admins\|enterprise admins\|group policy creator owners\|dnsupdateproxy\)>$SCRIPTGROUP/groups_bultin 27 if [$?-eq0];then 28 echo$MSG05 29 wbinfo -u|grep-v$\$|grep-v-f$SCRIPTUSER/users_ bultin>$SCRIPTUSER/users &&wbinfo -g|grep-v-f$SCRIPTGROUP/ groups_bultin >$SCRIPTGROUP/groups

Linux Magazine #56 | Julho de 2009

45

CAPA | Samba e AD

Listagem 7: Trecho de userscript.sh para controle de usurios


43 for linedelnovo in`cat $SCRIPTUSER/usersnew` 44 do 45 if [$linedelatual=$linedelnovo];then 46 user=0 47 break 48 else 49 user=1 50 fi 51 done 52 if [$user-ne0];then 53 excluiusuario 54 fi 55 done 56 57 mv$SCRIPTUSER/usersnew $SCRIPTUSER/users 58 ... 110 echo$MSG16$linedelatual>>$LOGPATH/scriptuser 111 tar czvf $BKPPATH/$linedelatual.tar.gz $HOMEDIR/$linedelatual 112 if [$?-eq0];then 113 echoBackup usuario $linedelatualexecutado COM sucesso>>$LOGPATH/scriptuser 114 rm-rf $HOMEDIR/$linedelatual 115 else 116 echoBackup usuario $linedelatualexecutado SEM sucesso favor verificar>>$LOGPATH/ scriptuser 117 fi 118 } 119 120 adicionausuario() { 121 echo$MSG07$lineaddnovo>>$LOGPATH/scriptuser

Listagem 8: Trecho de groupscript.sh para controle de grupos


26 for lineaddnovogroup in`cat $SCRIPTGROUP/groupsnew` 27 do 28 for lineaddatualgroup in`cat $SCRIPTGROUP/groups` 29 do 30 if [$lineaddnovogroup=$lineaddatualgroup];then 31 group=0 32 break 33 else 34 group=1 35 fi 36 done 37 if [$group-ne0];then 38 adicionagrupo 39 fi 40 done 41 # Validacao exclusao grupo 42 ... 109 110 # Gerando backup smb.conf 111 cat /etc/samba/smb.conf >/etc/samba/smbold/smb. conf.`date |awk -F{print $1-$3-$2-$6$4}` 112 mkdir$GRUPODIR/$lineaddnovogroup 113 chmod770$GRUPODIR/$lineaddnovogroup 114 chown :$lineaddnovogroup $GRUPODIR/$lineaddnovogroup 115 echo$MSG08$lineaddnovogroup>>$LOGPATH/ scriptgroup 116 echo# Compartilhamento $lineaddnovogroupgerado por script `date`>>/etc/samba/smb.conf 117 echo[$lineaddnovogroup]>>/etc/samba/smb.conf 118 echo valid users = +$DOMINIO+$lineaddnovogroup>>/etc/samba/smb.conf 119 echo read only = no >>/etc/samba/smb.conf 120 echo force group = $lineaddnovogroup>> /etc/samba/smb.conf 121 echo browseable = yes >>/etc/samba/smb.conf 122 echo path = $GRUPODIR/$lineaddnovogroup>> /etc/samba/smb.conf 123 echo comment = diretorio grupo $lineaddnovogroup>>/etc/samba/smb.conf 124 } 125 126 excluigrupo() { 127

46

http://www.linuxmagazine.com.br

Samba e AD | CAPA

cada usurio, pois o Samba trata os compartilhamentos de todos os usurios por meio do compartilhamento especial homes. O script scriptAD.sh s deve ser executado uma vez aps isso. Os scripts userscript.sh (listagem 7, tambm disponvel em [3]) e groupscript. sh (listagem 8, idem), responsveis pelo controle dos usurios e dos grupos, respectivamente, devem ser agendados no crontab. Esses scripts controlam as contas que no devem possuir compartilhamentos por meio dos arquivos users_builtin (listagem 9) e groups_builtin (listagem 10), por isso devemos adicionar essas contas manualmente, linha a linha, nos arquivos. A listagem 7 ilustra a criao da lista de usurios atuais do Active Directory no arquivo usersnew. Em seguida, deve-se comparar linha a linha o arquivo usersnew com o arquivo users, que o arquivo de controle do servidor Samba. Se a comparao for verdadeira, significa que o usurio j possui compartilhamento no servidor Samba e no deve ser adicionado, e ento o script passa para um novo usurio na lista usersnew. Se o usurio ainda no possuir compartilhamento no servidor, executada a funo adicionausuario, que cria a pasta do usurio, define as permisses necessrias e gera um log da incluso do usurio. Para excluir o usurio, o script l o arquivo users e compara linha a linha com o arquivo usersnew. Se a comparao for verdadeira, significa que o usurio existe no Active Directory e que por isso no deve ser excludo, ento ele passa para um novo usurio na lista users. Se a comparao no for verdadeira, significa que o usurio no existe no Active Directory e que por isso deve ser excludo, ento executada a funo excluiusuario, que cria um becape dos arquivos do usurio numa rea de becape definida no

arquivo parametros. Aps o becape, seu diretrio home excludo, gerando tambm um log da excluso. No fim da incluso e da excluso dos usurios, o script renomeia o arquivo usersnew para users. A incluso e a excluso dos grupos (listagem 8) no servidor de arquivos seguem a mesma lgica da incluso e excluso dos usurios, com as ressalvas de que o arquivo de controle o arquivo groups, e na criao e excluso dos grupos o script cria ou remove a seo do compartilhamento do grupo em smb.conf. Para saber a periodicidade da execuo dos scripts, podemos utilizar o comando time seguido do nome do script para medir o tempo das execues dos scripts. Logicamente, essa medio apenas uma forma de tentar aproximar a execuo da real necessidade, pois, em determinados momentos, quando a incluso e a excluso de grupos e usurios forem maiores ou menores, esse tempo variar muito, mas numa situao em que as incluses e excluses sejam constantes e regulares, essa medio ser muito til. Sua sintaxe :
time script

Listagem 9: Arquivo users_builtin


administrator guest support_388945a0 krbtgt

Listagem 10: Arquivo groups_builtin


BUILTIN+administrators BUILTIN+users domain computers domain controllers schema admins enterprise admins domain admins domain users domain guests group policy creator owners dnsupdateproxy

Concluso

Aps essa estimativa de tempo, podemos incluir os scripts para execuo pelo crontab e fazer novos testes incluindo e excluindo contas no AD.

O shell script uma poderosa ferramenta que nos proporciona uma enorme flexibilidade para automatizar diversas tarefas, das mais complexas s mais simples, e que, em cooperao com o Samba e com outros servios aqui mencionados, fazem com que a integrao desses dois ambientes to heterogneos seja a mais transparente possvel. Dessa maneira, leva o slogan do projeto Samba a parecer ainda mais verdadeiro: Opening Windows to a wider world interprete como quiser. n

Mais informaes
[1] Walter Neu, Domando os ces do inferno: http://lnm.com.br/article/2424 [2] Walter Neu, Na ativa: http://lnm.com.br/article/2534 [3] Scripts deste artigo: http://lnm.com.br/arquivos/LM/56/samba_ad/

Sobre o autor
Miguel Mucio Santos Moreira (miglinux@yahoo.com.br) graduado em Gesto de Software Livre, possui certificao LPIC 1 e Analista de Suporte na Prodemge Companhia de Tecnologia da Informao do Estado de Minas Gerais.

Linux Magazine #56 | Julho de 2009

47

Dando nome aos bovdeos

GNU e Linux, uma questo de renome


As justificativas para se denominar o sistema somente Linux resumem-se a apenas uma: Sempre fizemos assim. por Alexandre Oliva

ANLISE

m 1983, Richard Stallman lanou o projeto GNU [1] a fim de construir um corpo de software suficiente para utilizar computadores em liberdade. Em 1991, ainda lhe faltava um ncleo (kernel). Foi quando Linus Tor valds publicou o seu, projetado para funcionar junto ao GNU. Ou tro primata (sem ofensa) o batizou Linux. Outros ainda comearam a chamar tambm a combinao dos dois de Linux, o que continua dando confuso at hoje.

Sempre fizemos assim?

Diz o folclore cientfico que colo caram alguns primatas numa jaula com um cacho de bananas no alto. Toda vez que algum deles tentava subir para apanhar as bananas, leva vam todos um banho de gua gela da. Aprenderam. Trocaram um dos primatas, que logo viu as bananas e se animou. Logo apanhou. No as bananas, mas dos outros, que no queriam o banho gelado. Trocaram outro, que apanhou do mesmo jeito, e assim continuou, mesmo depois que todos tinham sido trocados e nenhum deles sequer sabia do banho gelado que nem levariam mais. Todos sem pre fizemos assim!, responderiam primatas falantes ao questionamento
48

de uma tradio arraigada, como se o comportamento anterior, justificado ou no, fosse justificativa suficiente. O curioso de usarem esse argumen to como justificativa para chamar GNU+Linux s de Linux que, na verdade, nem sempre fizemos assim. Linus queria chamar de Freax esse ncleo que escreveu, mas acabou aceitando Linux [2]. Apresentava o como um kernel semelhante ao do Minix e ao do Unix. Ainda que tomasse como equivalentes kernel e sistema operacional, no deixava de lembrar o papel essencial do gran de e profissional GNU, sem o qual no se chega a lugar algum, pois dele vinha a maioria das ferramen tas usadas com o Linux, ainda que no faam parte da distribuio do Linux. Note, ele escreveu usa das com, no no Linux, e o que ele chamava de distribuio era s o ncleo, os arquivos linux-X.Y*. tar.* que ele publica at hoje. Mas no tardou para que surgissem dis tribuies executveis combinando GNU e Linux.

[4] (agosto de 1992), pelo menos 115

Contando na histria

Dos duzentos programas execut veis includos na verso mais antiga ainda disponvel da primeira distri buio [3], MCC Interim 0.97p212

eram tomados diretamente do pro jeto GNU, sem contar as pores mais significativas da Libc, empres tadas do projeto GNU, e outras bi bliotecas menos evidentes, ligadas estaticamente. Com essa proporo de 115 para 1, no faria nem sentido chamla Linux, como de fato no se fazia naquele tempo. Slackware, a mais antiga distribui o ainda viva, tambm no carrega Linux no nome. A partir da lista de programas [5] de uma verso do in cio de 1994, podese ver que de seus 53 MiB de pacotes binrios, mais de 16 MiB provinham diretamente do projeto GNU (o maior contribuidor), seguido por X, TeX e outros compo nentes que j haviam sido portados para o sistema operacional GNU somando pouco mais de 11 MiB, e Linux, l atrs, com duas cpias (para discos IDE e SCSI), totalizan do 621KiB. Com 30% diretamente do projeto GNU, contra 1.1% Linux, nem faria sentido chamar a combi nao de Linux. Embora Linus tenha anuncia do seu kernel Linux como free (gratuito), esse programa se tornou Free (livre) somente em maro de 1992, aps consulta pblica so bre relicenciamento sob a ento

http://www.linuxmagazine.com.br

GNU + Linux | ANLISE

recmlanada GNU GPL verso 2, no anncio do Linux 0.12 [6]. J em outubro do mesmo ano, Richard Stallman convidava [7] voluntrios a preparar distribuies do GNU ba seadas em Linux, e assim nasceram, com apoio da FSF, o projeto Debian [8] e a distribuio Debian GNU/ Linux, predominantemente basea da no GNU, como qualquer outra. Removidas da licena original do Linux as restries venda, no tardou para que surgissem distribuies co merciais. A primeira, lanada no final de 1992, se chamava Yggdrasil Linux/ GNU/X [9], carregando no nome seus trs principais componentes.

Libc, possvel substituir o ncleo Linux por outro sem necessidade de alterar as aplicaes, nem mesmo recompillas.

num final dramtico, receeebe a bandeirada na ltima posio!.

A desunio se faz fora


Mas enquanto a comunidade GNU se preocupava em mencionar os dois componentes mais importantes da combinao e temia uma fragmen tao da comunidade, desenvolve dores do Linux tentavam esconder a relevncia do GNU, fazendo parecer que o mrito por todo aquele corpo de software era exclusivamente do Linux. To bem sucedida foi a campanha de descrdito que hoje muita gente cr e afirma (corretamente) que Li nus escreveu o Linux, mas entende (erroneamente) que se trata de frao majoritria, ou mesmo significativa, do corpo de software que integra a combinao de GNU, Linux e com panhia. Ainda hoje, embora os dois projetos tenham crescido muito, em grande parte graas ao sucesso que alcanaram juntos, o Linux continua quase uma ordem de grandeza me nor que o GNU, e o GNU continua sendo o maior componente [10] de qualquer distribuio de GNU com Linux [11]. Ainda que seja normal, ao dar crdito a um contribuidor menor de uma obra, dar pelo menos o mesmo crdito a um contribuidor maior, diversos desenvolvedores iniciais do Linux defendem com unhas e dentes o uso do nome de seu programa para a combinao toda. Argumentam que foram eles que completaram o sistema, ao qual faltava apenas essa pea, e por isso exigem o renome exclusivo, como se houvesse mrito maior em chegar por ltimo. Imagine como seriam diferentes os domingos de Frmula 1 com o Tema da Vitria fazendo fundo para berros vibran tes como Rrrrubens, Rrrrubens, Rrrruuubens Barrichello do Brasil,

De volta ao planeta dos macacos


Com um lado buscando a unio pela cooperao, enquanto o outro enca rava a situao como uma batalha, uma competio destrutiva em que se fazia o primeiro parecer irrelevante, prevaleceu o descrdito e a agresso. E como desde os primrdios at hoje em dia, o homem ainda faz o que o macaco fazia continuase propa gando essa injustia, e uma poro de primatas acha normal e natural agredir quem denuncia a injustia tentando corrigila, pois sempre fizemos assim!. Mas no vejo nesse resultado uma batalha perdida, at porque estou entre os que no encaram a questo como batalha, mas como campanha de conscientizao social. Se fosse s pelo crdito [12], seria to ftil e mesquinha quanto a campanha de descrdito ao GNU. Porm, a confuso gerada pela su posio de que Linus deu origem a todo o sistema, desconsiderando toda a influncia e todo o esforo levado a cabo pelo movimento do Software Livre e pelo projeto GNU, empresta legitimidade indevida (no) ideo logia de Linus, fazendo parecer que foi ela quem deu origem ao sistema e fomentou seu sucesso. Mas uma ideologia to diferente da que deu origem maior parte desse sistema, majoritariamente GNU, que acei tou at que o Linux voltasse a ser nolivre [13]. A confuso entre Linux e GNU+ Linux se realimenta, pois o sucesso foi fomentado pela combinao, pela unio dos apoiadores de ambas filosofias e muitos outros, no exclusivamente por uma ou outra. Ao negar o reno me ao GNU e sua filosofia, negase tambm, maioria dos usurios do sistema GNU [14], credibilidade e
49

A unio faz a fora

Essa combinao do GNU com Linux, e depois com a interface grfica X11, foi um imenso sucesso nas comunidades de Software Livre. Desenvolvedores do projeto GNU passaram a contribuir tambm para o Linux, e desenvolvedores do Linux passaram a contribuir tambm para o projeto GNU, ainda que muitas vezes por meio de forks tempor rios. Muito mais significativo foi que a combinao atraiu muitssimos novos colaboradores, e passaram no s a contribuir aos projetos j existentes, mas tambm a criar no vos projetos destinados a funcionar nessa combinao. Alm dos voluntrios, mais em presas comearam a se dedicar a essa unio, criando distribuies e oferecendoas comercialmente. De pois da Yggdrasil, SuSE e Red Hat se uniram ao conjunto de empresas contribuindo para o desenvolvimen to do Linux, do GNU e de outros programas que funcionavam nesse ambiente, enquanto vendiam cpias aos entusiastas. Comearam a sur gir cada vez mais aplicativos ditos para Linux, embora funcionassem igualmente em outras variantes do sistema GNU. Como no usam as interfaces do Linux, e sim as da GNU

Linux Magazine #56 | Julho de 2009

ANLISE | GNU + Linux

exposio filosofia que norteou a criao do sistema que Linus julgou essencial para que o Linux fosse uti lizvel desde o incio de sua histria. Ao negar essa realidade, dificulta se mediante engano a campanha de conscientizao que embasa o movi mento do Software Livre. Certamen te h quem tenha interesse, quase sempre mesquinho, em induzir a esse engano (mentira), em impedir a conscientizao sobre os males do Software noLivre (manipulao), em preservar essa injustia fonte da qual mamou (ingratido). Nada justifica negar a nature za predominantemente GNU da combinao de GNU, Linux e com panhia, para afirmar somente sua poro Linux. Independentemente da ideologia, dar a entender que a combinao mais Linux que GNU uma mentira.

Farpas e falcias

Ainda assim, inventam as desculpas mais estapafrdias para tentar justi ficar o destaque exagerado ao Linux no nome da combinao, em detri

mento do GNU. Em quase todos os casos, o argumento para negar o reconhecimento ao GNU justificaria com ainda mais fora a excluso da meno ao Linux, por isso se trata da falcia dois pesos, duas medidas. Se nenhum dos componentes me nores que o GNU fosse mencionado, no haveria injustia ao GNU em exclulo tambm. Vale lembrar que referirse ao Linux por seu prprio nome [15] no problema. Esse ncleo no um programa GNU e ningum est tentando obter crdito indevido por ele. O que se busca apenas corri gir a injustia que se instaurou ao se renomear a combinao de GNU, Linux e companhia a Linux. Outras falcias, como a lgica cir cular (a confuso realimentada, logo acima) e o apelo s massas (todos sempre fizemos assim, no incio), so tambm usadas para justificar o injusto e injustificvel erro. V l, errar humano, mas aprender tam bm. Assumir o erro, nem tanto, mas insistir no erro... h quem faa, com teimosia tpica asinina.

Injustamente, a humanidade desumana

Primatas pensantes, com aguado senso de justia, moral e tica e ca pacidade de aprender, no mais des mereceriam o bo(vi)nssimo GNU s porque sempre fizeram assim primatas tradicionalistas, equinos teimosos, candeos infiis, sunos chauvinistas, preguias acomodados, outros ingratos mamferos da fonte do GNU e at ab(ez)erraes pin guneas, certo? Certo?! n

Nota de licenciamento
Copyright 2009 Alexandre Oliva. Cpia literal, distribuio e publicao da ntegra deste artigo so permitidas em qualquer meio, em todo o mundo, desde que sejam preservadas a nota de copyright, a URL oficial do documento e esta nota de permisso. http://www.fsfla.org/svnwiki/blogs/lxo/ pub/gnu-linux-renome

Mais informaes
[1] Lanamento do projeto GNU: http://www. gnu.org/gnu/initial-announcement.html [2] Linus Torvalds e David Diamond, Just for Fun: http://en.wikipedia.org/wiki/Just_for_Fun [3] Breve histria das distribuies (GNU) Linux: http://lwn.net/Articles/91371/ [4] MCC Interim 0.97p2-12: http://www.manlug.org/content/view/180/65/ [5] Arquivos contidos no Slackware 1.1.2: http://www.ibiblio.org/pub/historic-linux/ distributions/slackware/1.1.2/FILE_LIST [6] Anncio do Linux 0.12: http://www.kernel.org/pub/linux/kernel/ Historic/old-versions/RELNOTES-0.12 [7] Convite de Richard Stallman: http://groups.google.com/group/gnu. misc.discuss/msg/83aa082de3e58e13

[8] Richard Stallman, Free as in Freedom: http://oreilly.com/openbook/freedom/ch10.html [9] Yggdrasil Linux/GNU/X: http://en.wikipedia. org/wiki/Yggdrasil_Linux/GNU/X [10] Componentes do Fedora Core 7: http:// fsfla.org/blogs/lxo/2007-05-21-gnu+linux [11] GNU com Linux: http://www.gnu.org/gnu/linux-and-gnu.html [12] Richard Stallman, Por que GNU/Linux?: http://www.gnu.org/gnu/why-gnu-linux.html [13] Alexandre Oliva, Linux-libre e o dilema dos prisioneiros: http://lnm.com.br/article/2756 [14] Usurios GNU no conhecem o GNU: http://www.gnu.org/gnu/gnuusers-never-heard-of-gnu.html [15] Stallman corrige o entrevistador: http://br-linux.org/2008/fato-raro-ementrevista-com-richard-stallman/

50

http://www.linuxmagazine.com.br

Quer falar com os 20.000 profissionais de TI com maior nvel de conhecimento tcnico do mercado nacional? Ento anuncie na Linux Magazine!

Segundo dados do Instituto Verificador de Circulao*, a Linux Magazine est posicionada entre as trs revistas mais vendidas no segmento de TI do mercado editorial brasileiro. Alm disso, a revista que tem o pblico mais qualificado no quesito tcnico. Nossa combinao exclusiva de contedo avanado com uma abordagem prtica faz da Linux Magazine a publicao preferida de quem toma decises e faz recomendaes para compra de produtos e contratao. Anuncie conosco e fale com esse pblico. Para anunciar, entre em contato: anuncios@linuxmagazine.com.br 11 4082.1300
*Comparao de circulao para os ltimos trs meses de publicaes nacionais voltadas ao segmento de TI.

Mquinas virtuais Java no Linux

ANLISE

Coffee break
Conhea algumas ferramentas e projetos do cenrio do Java. por David Hull

GNU/Linux um sistema operacional livre. Java uma das plataformas mais populares para Software Livre. Executar softwares Java livres no Linux deveria ser fcil; porm, at recentemente, quem desejasse rodar Java no GNU/Linux enfrentava um dilema. Por um lado, era possvel usar o ambiente Java da prpria Sun, com garantia de compatibilidade (ao menos com outras instalaes baseadas na Sun), mas isso significava usar software no livre. Por outro lado, podamos escolher uma das dezenas de ofertas livres, desde uma tese de doutorado de algum at grandes projetos com calendrios de lanamentos e funcionrios em tempo integral, mas essas alternativas levavam a problemas de compatibilidade com o pacote de testes Technology Compatibility Kit (TCK) da Sun. Essa situao melhorou consideravelmente no final de 2006 e incio de 2007, quando a Sun comeou a liberar seu Java Development Kit (JDK) sob uma licena livre. Como a Sun dependia de outros fornecedores para algumas partes da JDK,
52

ela no podia liber-las como Software Livre. O projeto IcedTea [1] preencheu os espaos que faltavam nos JDKs 5 e 6 com uso do GNU Classpath [2] (figura 1). Como a Sun tambm liberou sua HotSpot JVM [3] sob uma licena de cdigo aberto, agora possvel executar o Java num sistema completamente livre e compatvel com o TCK. Como a comunidade do Cdigo Aberto ainda suporta vrias outras escolhas completamente livres que no tm a bno da oficialidade, a situao ainda um pouco complexa. Para executar o Java, necessria alguma forma de executar bytecodes Java, normalmente mas no necessariamente com uma Mquina Virtual Java (JVM), e preciso ter uma implementao de quaisquer bibliotecas usadas (em conjunto, isso mais ou menos o que a Sun chama de Java Runtime Environment JRE). Este artigo apresenta as principais escolhas de JREs.

Qual JVM?

A JVM o componente que realmente executa o aplicativo Java. Como os programas em Java so

representados como sequncias de bytecodes, a forma simples de executar um aplicativo Java interpretar cada bytecode e fazer o que ele diz. Esse mtodo simples lento demais para ser prtico, ento as JVMs modernas costumam incluir um compilador Just In Time (literalmente, em cima da hora) que traduz os bytecodes Java para cdigo nativo da mquina. Quando o Java foi introduzido, a ideia de uma nova linguagem orientada a objetos com uma especificao publicada e um fornecedor importante por trs dela foi um chamariz para pesquisadores de linguagens de programao, resultando em um surto de desenvolvimento de JVMs. Foram criados literalmente dezenas de projetos. A maioria deles se decomps at 2003, mas alguns continuaram e ganharam maior aceitao. A JVM HotSpot, da Sun, existe em verses cliente e servidor. Ambas so gratuitas. A verso cliente ajustada para aplicativos executados por pouco tempo, enquanto a verso servidor mais adequada a aplicativos com maior tempo de execuo. A principal diferena que a verso

http://www.linuxmagazine.com.br

Java no Linux | ANLISE

servidor aplica mais otimizaes que a JVM produzida como parte do Kaffe no suporta recursos de segupossuem maior efeito sobre tempos projeto Jalapeo da IBM. A Jikes rana como verificao de bytecode, de execuo mais longos. Um apli- VM meta-circular, o que signi- por exemplo. cativo executado na JVM cliente fica que ela escrita em Java. O R O projeto SableVM [9] tem como geralmente inicia mais rpido, mas no nome vem de research (pesqui- objetivo oferecer uma implementapode ser mais lento ao longo do sa), e o RVM tem como objetivo a o altamente portvel da JVM. O tempo. A HotSpot a JVM includa demonstrao e experimentao SableVM utiliza um sofisticado intercom o OpenJDK [4] (figura 2). No de ideias novas e maravilhosas na pretador para alcanar desempenho momento da escrita deste artigo, a tecnologia de mquinas virtuais. prximo ao de um JIT. Segundo o verso mais recente foi lanada em O projeto est bem vivo com um site, o projeto Sable alcanou seus 11 de fevereiro de 2009. livro sobre sua arquitetura lanado objetivos de pesquisa e no mais A JamVM [5], uma mquina virtu- recentemente mas, diferentemente ativamente mantido; realmente, a al alternativa desenvolvida por Robert do compilador Jikes, aparentemente ltima verso foi a 1.13, de dezembro Lougher e liberada pela primeira vez no mais ativamente empacotado de 2005. Mesmo assim, o SableVM em 2003, otimizada para aplicati- para distribuio. est disponvel como pacote para as vos pequenos e um incio rpido. O O Kaffe [8], originalmente desen- principais distribuies. executvel para processadores i486 volvido em 1996, foi durante algum Outra opo para softwares livres e posteriores tem aproximadamente tempo o principal produto da Trans- em Java compil-los com o GCJ 180 KB. A JamVM desenvolvida virtual Technologies. A Transvirtual (GNU Compiler for Java) [10]. Com principalmente em PowerPC, mas liberou o Kaffe sob a GPL em 1998, ele, no a JVM quem executa os j foi compilada e testada em chips e ele continua sendo um projeto de programas em Java. Embora norx86, ARM, AMD64 e MIPS. Ela cdigo aberto. O Kaffe, que visa malmente uma JVM seja necessria, requer a GNU Classpath para su- portabilidade e ao pequeno tamanho, no obrigatrio seguir o caminho porte a biblioteca e, segundo o site j foi portado para uma grande varie- padro de compilar o Java para buteda JamVM, incompatvel com o dade de plataformas, desde pequenos codes e ento repass-los JVM que OpenJDK. A verso mais recente dispositivos embarcados at Linux, vai, enfim, compil-los novamente. a 1.5.2, lanada em 4 de fevereiro Mac e Windows. Os desenvolvedo- Em vez disso, possvel enviar os de 2009. res no alegam compatibilidade total butecodes para o GCJ e produzir O Cacao [6] foi desenvolvido com a Sun. Na verdade, o site chega diretamente cdigo nativo. Alm originalmente em 1997 no Instituto a negar explicitamente suporte ao disso, possvel usar o GCJ para de Tecnologia de Viena como uma ambiente da Sun. Em particular, o compilar arquivos JAR (Java Archive) alternativa mais rpida JVM da Sun, que era um interpretador puro. Diferentemente dela, o Cacao compila tudo conforme vai executando o cdigo. Com isso, ele mais semelhante verso servidor do HotSpot do que verso cliente. O Cacao se tornou um projeto de cdigo aberto em 2004. A verso mais recente a 0.99.3, lanada em 12 de agosto de 2008. O Jikes RVM [7] (no confundir com a biblioteca RVM recoverable memory Figura 1 A biblioteca GNU Classpath um componente importante do ambiente Java de cdigo aberto. memria recupervel)
53

Linux Magazine #56 | Julho de 2009

ANLISE | Java no Linux

para cdigo nativo. O produto final ser executado como qualquer outro executvel nativo, e uma biblioteca Libgcj compartilhada at oferece o ambiente padro de bibliotecas. Esse processo o que costumava ser chamado de compilao, mas no contexto de um sistema baseado em bytecode, como o Java ou o .NET, ele se chama compilao Ahead Of Time (AOT), em contraste com just in time. Muitos projetos antigos de JVMs ainda existem, e alguns deles talvez at funcionem com sistemas Java modernos. Para utiliz-los, preciso compilar o cdigo e possivelmente alter-lo tambm. Alm disso, h vrias JVMs mais especializadas dedicadas a aplicativos embarcados ou a outros nichos. Elas no esto includas neste artigo, mas possvel saciar a curiosidade no site do Kaffe, que possui uma longa lista [11]. Uma mquina virtual chamada IKVM [12] est disponvel at para executar Java sobre .NET, e funciona com GNU/Linux. Ferramentas como o IKVM podem ser teis caso se esteja desenvolvendo para .NET,

mas para executar aplicativos Java comuns no GNU/Linux provavelmente melhor simplesmente uslos num ambiente padro.

Quais bibliotecas?

Felizmente, a tarefa de escolher bibliotecas bem mais simples que escolher JVMs, pois o usurio de Cdigo Aberto tem menos opes. Afinal, escrever um conjunto completo de bibliotecas uma tarefa bem maior que apenas escrever uma JVM. Por exemplo, o projeto GNU Classpath tem 20 desenvolvedores ativos, enquanto uma ferramenta de VM como o JamVM tem apenas um. E sejamos francos: escrever uma nova JVM com um JIT ultra vanguardista bem mais divertido que escrever 18 verses diferentes de Arrays.fill(). A maioria das bibliotecas Java pode ser escrita em Java e ser executada apenas numa JVM compatvel, o que deixa apenas um pequeno conjunto de pacotes que precisam ser personalizados para a implementao da JVM. Na prtica, todas as JVMs listadas anteriormente, exceo da HotSpot, integram-se ao GNU

Figura 2 O projeto OpenJDK se baseia no JDK da prpria Sun.

Classpath. Vrias tambm se integram ao OpenJDK. At o prprio OpenJDK usou cdigo do GNU Classpath em substituio a trechos proprietrios cujo cdigo a Sun no conseguiu abrir. Embora a Sun tenha aberto seu cdigo de bibliotecas, ela ainda controla fortemente o processo e os testes de compatibilidade (em particular, sua TCK) que permitem que uma implementao alegue compatibilidade total com Java. Por esse motivo, geralmente no prtico para projetos de cdigo aberto alegar compatibilidade total com Java, com a exceo especial do OpenJDK. Naturalmente, um projeto aberto, o Mauve [13], foi lanado com o objetivo de resolver isso oferecendo um conjunto de testes livre para bibliotecas de classe Java. O GNU Classpath foi praticamente a nica alternativa, durante muito tempo, para executar Java num ambiente completamente livre. O Classpath comeou como a biblioteca para a mquina virtual Japhar, mas quando os vrios projetos de JVM descobriram que escrever uma biblioteca padro independente prejudica o desenvolvimento da JVM em si, os mltiplos esforos comearam a se unir. Como resultado, o GNU Classpath foi integrado a todas as JVMs livres descritas neste artigo, exceo da HotSpot, que usa o OpenJDK. Embora o GNU Classpath no possa usar o TCK da Sun, ele pode ser testado com o Mauve. Infelizmente, como tanto o Mauve quanto o GNU CLasspath so alvos mveis, no possvel dizer se o Classpath sequer compatvel com o Mauve, apesar de ser seguro supor que o GNU Classpath seja sempre substancialmente compatvel com o Mauve. O Mauve vem tornando-se uma imitao cada vez melhor do TCK, ento h grandes chances de o GNU Classpath funcionar corretamente para suas necessidades. Porm,

54

http://www.linuxmagazine.com.br

Java no Linux | ANLISE

se isso for realmente importante, preciso verificar cada caso. O OpenJDK, ou algum projeto derivado dele, a nica escolha para compatibilidade total com o TCK. O OpenJDK compatvel com o JDK da Sun na verso 5 e, sem nenhuma surpresa, compatvel com o JDK 6. Associado HotSpot, o OpenJDK oferece o ambiente Java oficial aprovado pela Sun. O Apache Harmony [14] um projeto de mximo nvel da Fundao Apache (ao menos at 2006) destinado a oferecer um ambiente Java livre e independente, compatvel com a licena Apache 2.0. A exigncia de compatibilidade com o Apache mais importante que o GNU Classpath, que usa a exceo de linkagem da GPL. um tanto sutil o ponto em que isso pode ser importante, mas, em alguns casos de interesse para o Apache, isso faz diferena. O OpenJDK 6 livre, mas depende da Sun, tanto porque sua base de cdigo vem da Sun quanto porque a licena da Sun exige que qualquer verso modificada seja substancialmente derivada dela para conseguir usar a TCK, a fim de garantir compatibilidade. Por exemplo, para usar o OpenJDK como base, substituindo metade dos pacotes, provavelmente seria impossvel manter a compatibilidade com a TCK. Por ltimo, a Sun ainda no havia liberado seu ambiente quando o Harmony comeou. O Harmony no uma reescrita total de todas as bibliotecas Java, pois muitos componentes padro do Java (por exemplo, as bibliotecas XML do prprio Apache) j so implementaes de cdigo aberto compatveis com o Apache. A equipe do Harmony busca integrar os pacotes j existentes do Harmony sempre que possvel e escrever novos pacotes quando necessrio. O Harmony atualmente ainda est em desenvolvimento sem uma verso oficial vista, mas o site ga-

rante que a equipe est fazendo progresso constante. A verso binria mais recente a 5.08M, de 13 de novembro de 2008. At o momento, o Harmony j foi integrado ao SableVM, ao Jikes RVM, ao interpretador VM do prprio Harmony e a outras implementaes de VMs. Ainda no est claro se o Harmony algum dia ser compatvel com o TCK. As FAQ do projeto dizem que ele ser, mas a Sun ainda no permitiu oficialmente esse acesso.

e pr as mos no cdigo. improvvel que o OpenJDK esteja disponvel para ela, assim como o GNU Classpath. Se o projeto no suportar o Classpath o u o OpenJDK, talvez seja necessrio contentar-se com um conjunto incompleto de bibliotecas. A boa notcia que no precisamos mais lidar com essas solues parciais, a menos que queiramos. Nesse caso, certamente no teremos problemas em nos aventurar por alguns Makefiles. n

Quais pacotes?

O Debian possui pacotes estveis para o GNU Classpath, o OpenJDK e o OpenJDK 6. Este ltimo, associado HotSpot, o pacote Java padro no Ubuntu. O Kaffe, o Cacao e o SableVM tambm esto disponveis. O Kaffe exige o GNU Classpath. Os outros podem usar tanto o GNU quanto o OpenJDK 6. H RPMs da Red Hat disponveis para o GNU Classpath, OpenJDK/ OpenJDK 6 com HotSpot, Kaffe e Cacao. O Fedora 9 traz o OpenJDK 6, e outras distribuies em breve devem acompanh-lo caso ainda no o tenham feito.

Mais informaes
[1] IcedTea: http://iced-tea.org/ [2] GNU Classpath: http://www.gnu.org/ software/classpath/ [3] HotSpot JVM: http://openjdk.java. net/groups/hotspot/ [4] OpenJDK: http://openjdk.java.net/ [5] JamVM: http://jamvm. sourceforge.net/ [6] Cacao: http://www.cacaovm.org/ [7] Jikes RVM: http://jikesrvm.org/ [8] Kaffe: http://www.kaffe.org/ [9] SableVM: http://www.sablevm.org/ [10] GCJ: http://gcc. gnu.org/java/ [11] Lista do JVM: http://www.kaffe.org/links [12] IKVM: http://www.ikvm.net/ [13] Mauve: http://sources. redhat.com/mauve/ [14] Apache Harmony: http://harmony.apache.org/

O que fazer?

A boa notcia que agora temos uma opo livre fcil de Java no Linux: usar o OpenJDK com HotSpot. Essa opo livre e gratuita, alm de ter compatibilidade garantida com a oferta da Sun (para a maioria dos objetivos, ela a oferta da Sun. Em distribuies recentes, ela o padro). Por outro lado, experimentar diferentes ambientes Java tambm no deve ser muito difcil. H pacotes estveis para vrias JVMs descritas neste artigo. Experimentar uma JVM menos conhecida, principalmente no caso de uma das verses do incio da dcada (ou do fim da dcada passada) no coberta neste artigo, provavelmente ser necessrio arregaar as mangas

Linux Magazine #56 | Julho de 2009

55

Instalao e configurao de perifricos no OpenSolaris

TUTORIAL

OpenSolaris, parte 3
Entenda como instalar, configurar e usar perifricos como impressoras, scanners e cmeras digitais no OpenSolaris. por Alexandre Borges

ando continuidade srie sobre instalao, uso e administrao do OpenSolaris [1][2], este artigo aborda mais um tpico de grande importncia tanto para servidores quanto para desktops: os perifricos impressoras, portas seriais, cmeras digitais, entre outros.

Impresso

Quando falamos em configurar o servio de impresso no mundo Unix, muitos tendem a pensar (e no sem razo) em uma longa batalha para configurar o ambiente. De fato, antigamente este processo

era extremamente tortuoso e sempre requeria conhecimento e pacincia para complet-lo. Um dos fatores que ainda eram muito comuns e restritivos no mundo Unix e seus sabores que os fabricantes de impressoras comearam a despejar um sem-nmero de modelos e tipos de impressoras, todavia a imensa maioria vinha apenas com drivers para Windows e sequer mencionavam seu uso em Unix. claro que tudo isso faz parte do passado. O prprio Linux, com seus muitos projetos em progresso nesta rea, ajudou a quebrar esse ciclo,tanto que hoje, fazer a configurao de uma impressora muito simples, pois as interfaces das ferramentas de manipulao do ambiente ficaram muito mais simples. Alm disso, atualmente existem drivers para a grande maioria das impressoras de jato de tinta (usuais em ambientes domsticos), assim como laser.

do servio de impresso; uma delas por meio do Presto, um projeto em constante evoluo. Uma de suas principais caractersticas detectar a impressora assim que ela conectada mquina. Se uma impressora no for automaticamente localizada, o administrador tambm pode chamar o utilitrio grfico de configurao do ambiente de impresso (figura 1) no menu System | Administration | Print Manager ou com o seguinte comando:
# desktop-print-management &

O OpenSolaris, por meio do Presto, localiza qualquer impressora. Contudo, no caso de impressoras de rede necessrio habilitar um servio que vem desabilitado por padro, justamente para evitar sobrecarga na rede. Para isso, devese executar:
# svcadm enable svc:/network/ device-discovery/printers:snmp

Figura 1 O assistente de gerenciamento de impressoras facilita muito a adio de novos perifricos.

Via Gnome

No OpenSolaris h algumas maneiras de realizar a configurao

Como fcil perceber, esse servio utiliza o protocolo SNMP (Simple Network Management Protocol) para localizar impressoras com mensagens de broadcast. Isto talvez exija cuidados com a administrao da rede,

56

http://www.linuxmagazine.com.br

OpenSolaris | TUTORIAL

dependendo de eventuais firewalls e roteadores. Uma vez que o administrador adiciona uma impressora, ela mostrada conforme a figura 2.

Solaris Print Manager

Outra maneira simples de configurar impressoras iniciando, pela linha de comando, o Solaris Print Manager:
# printmgr &

Figura 2 Gerenciador de impressoras mostrando uma impressora conectada.

Aps escolher o servio de nomes que ser usado para gerenciar o sistema de impresso (figura 3), apresentada uma outra tela (figura 4). Antes de configurar uma impressora com este aplicativo, importante lembrar que h diferentes tipos de impressoras que podemos configurar no OpenSolaris: Impressora local: impressora conectada fisicamente mquina. No aplicativo, esta escolha exibida com o nome New Attached Printer; Impressora de rede: impressora de rede que pode ser alcanada em um endereo IP e que no est conectada fisicamente a nenhuma mquina, mas apenas a um cabo de rede. No aplicativo, esta escolha aparece como New Network Printer; Impressora remota: impressora que no est conectada mquina local, mas a outra mquina pertencente mesma rede. possvel alcanar essa impressora indicando o IP da mquina a qual ela est conectada. No aplicativo, essa opo aparece como Add Access to Printer. Sabendo disso, para adicionar uma impressora, basta ir ao menu Printer e escolher o tipo desejado de impressora. Para exemplificao, vamos escolher agora uma impressora de rede. Mas ateno: antes

de configurar uma impressora de rede necessrio editar o arquivo /etc/hosts e inserir uma linha com o nome da impressora e seu respectivo endereo IP:
# vi /etc/hosts 192.168.1.200printer1

Figura 3 O Solaris Print Manager


pede que o usurio defina o servio de nomes a ser usado.

Feito isso, j podemos adicionar a impressora. Como mostra a figura 5, o preenchimento do formulrio simples. Mesmo assim, cabe ressaltar alguns pontos. Nos campos Printer Name e Destination, preencha com o mesmo nome da impressora que foi inserido no arquivo /etc/hosts. Alm disso, aps a escolha do fabricante e do modelo da impressora, o driver j selecionado automaticamente de Uma primeira dica para adminismaneira apropriada. No neces- tradores: possvel visualizar toda srio fazer alteraes neste campo. a sequncia de comandos que so As ocorrncias relacionadas im- executados em segundo plano pelo pressora podem ser notificadas para utilitrio. Para isso, basta ir ao menu o administrador, e possvel escolher Printer Manager e ativar a opo a forma de notificao: por email ou Show Command-Line Console. via terminal. A listagem 1 ilustra um exemplo Na seleo do protocolo de envio de sada. de trabalhos de impresso, escolha Mais uma dica, desta vez para resempre BSD em vez de TCP; com des heterogneas Linux/OpenSolaris: isso, basta especificar o nome da im- se o objetivo for configurar uma impressora para enviar a ela um traba- pressora local no OpenSolaris para lho, ao passo que com TCP necessrio saber tambm a porta em que a impressora est atendendo, o que nem sempre conhecido. Por meio das ACLs, o administrador pode filtrar Figura 4 O Solaris Print Manager tambm

quinas tm permisso para utilizar a impressora. Ao concluir a adio da impressora, o arquivo /etc/printers.conf e o diretrio /etc/lp/printers/<nome_da_ fila> so alterados para refletir a nova configurao. No aconselhvel alterar esses arquivos manualmente.

Ateno, administradores

quais usurios de quais m-

exibe as impressoras conectadas.

Linux Magazine #56 | Julho de 2009

57

TUTORIAL | OpenSolaris

compartilh-la com clientes Linux, bastaria no Linux configurar a fila de impresso para utilizar PostScript. Quando o OpenSolaris recebe um trabalho no formato PostScript, o sistema de impresso usa um filtro para convert-lo para o formato especfico da impressora.

Desabilitar a entrada de trabalhos na fila de impresso: #


reject printer1

Habilitar a entrada de trabalhos na fila de impresso: # accept


printer1

Como imprimir

Agora est faltando apenas o mais importante: o comando de impresso, lp. Sua sintaxe simples:
# lp -d printer1 /etc/hosts

Desabilitar a sada de trabalhos da fila impresso para a impressora: # disable printer1 Habilitar a sada de trabalhos da fila de impresso para a impressora: # enable printer1 Verificar se uma impressora est ou no aceitando trabalhos: #
lpstat -a printer1

Os comandos de manipulao de servios sero abordados em futuros artigos desta srie. Uma novidade para os usurios Linux que o System V Unix LP no o nico subsistema de impresso presente no OpenSolaris. possvel instalar tambm o conhecido CUPS (Common Unix Printing System) e fazer as configuraes de impresso da mesma forma que no Linux. O CUPS instalado com o seguinte comando:
# pkg install SUNWcups

Com uma configurao de impresso funcional, o momento de mostrar alguns comandos utilizados para gerenciar esse ambiente: Verificar a impressora padro configurada: # lpstat -d Definir uma nova impressora como padro: # lpadmin -d
printer1

Transferir todos os trabalhos da fila de uma impressora para a fila de outra impressora: #
lpmove printer1 printer5

Visualizar os trabalhos da fila de impresso: # lpstat -o Cancelar um trabalho na fila de impresso: #cancel printer1-12 (printer1-12 o nome do trabalho listado com o comando lpstat -o). Verificar o status do sistema: #
lpstat -s

Muitas vezes o administrador precisar saber quais servios relacionados impresso esto habilitados. O modo mais correto para isso ilustrado pela listagem 2. Nela, o servio mais importante o ltimo, pois o servidor de impresso propriamente dito. Caso ele esteja desabilitado, preciso habilit-lo com o seguinte comando:
# svcadm enable \ svc:/application/print/ server:default

Com o CUPS instalado, o administrador tem a possibilidade de visualizar e selecionar qual subsistema de impresso deseja utilizar. Para visualizar os servios disponveis, basta executar:
# print-service -q

Para alternar para o CUPS:


# print-service -s cups

Para voltar para o System V Unix LP:


# print-service -s lp

Listagem 1: Sada no console


% /usr/sbin/lpadmin -p printer1 -s localhost -v /dev/null m netstandard_foomatic -A write -n /usr/share/ppd/SUNWfoomatic/ Lexmark/Lexmark-Optra_S_1250-Postscript.ppd.gz -o dest=printer1 -o protocol=bsd -o banner=never -I postscript -u allow:all % /usr/sbin/lpadmin -p printer1 -D Impressora de testes para a Linux Magazine % /usr/sbin/lpadmin -d printer1 % /usr/bin/enable printer1 % /usr/sbin/accept printer1

Porta Serial

Para quem est habituado a lidar com servidores e outras mquinas das categorias superiores (mid range e high end), muito comum utilizar conexes seriais, pois essas mquinas geralmente no possuem entradas para teclado, mouse ou sequer vm equipados com placas de vdeo. Nestes casos, a nica maneira de fazer login nesses aparelhos por meio de uma conexo serial. A maneira mais fcil de utilizar esse tipo de conexo alterar o arquivo /etc/remote para espelhar a configurao da sua mquina. Muitas mquinas modernas sequer tm

58

http://www.linuxmagazine.com.br

OpenSolaris | TUTORIAL

porta serial. Neste caso, a nica alternativa recorrer a um adaptador USB-DB9. Com a presena fsica de portas seriais no sistema, a nomenclatura utilizada pelo OpenSolaris a seguinte: /dev/term/a: primeira porta serial; /dev/term/b: segunda porta serial. Se a mquina possuir apenas uma porta serial, possvel editar o arquivo /etc/remote e alter-lo da seguinte forma:
# De: hardwire:\ :dv=/dev/ term/b:br#9600:el=^C^S^Q^U^D:ie=%$ :oe=^D: # Para: hardwire:\ :dv=/dev/ term/a:br#9600:el=^C^S^Q^U^D:ie=%$ :oe=^D:

Scanner e cmera digital


No OpenSolaris, scanners se comportam da mesma forma como no Linux. O projeto SANE reina absoluto para todo tipo de dispositivo similar. Para instal-lo no OpenSolaris, basta usar o comando:
# pkg install SUNWsane-frontend \ SUNWsane-backend

Deste ponto em diante, para saber se o dispositivo foi encontrado, deve-se digitar:
# sane-find-scanner

e procurar sua incluso (listagem 3). Observe, na linha 3, que o scanner (na verdade, uma multifuncional HP PSC 1310) foi encontrado. Na realidade, a listagem 3 resume o log, pois ele bastante verboso quando se conecta uma impressora multifuncional. No caso de cmeras digitais, o processo exatamente o mesmo. Uma vez conectada a cmera, ela automaticamente detectada (listagem 3, linha 6) e seu contedo montado no diretrio /media/. Vale a pena ressaltar que o sistema de arquivos interno da cmera do tipo PCFS (personal computer file system).

E para adquirir uma imagem pelo scanner:


# xscanimage

Gerenciamento de energia
No preciso salientar que nos dias de hoje a questo da economia de energia fundamental dentro de residncias e empresas, pois vivemos na iminncia de uma escassez

Vale notar que, no caso de adaptadores seriais, essa nomenclatura acima sofre modificaes e ento o dispositivo lgico a ser apontado passa a ser outro, como /dev/cua/1, /dev/cua/2 e assim por diante. Agora, basta fazer a conexo em outra mquina usando o comando:
# tip hardwire

Para descobrir se o scanner foi encontrado, possvel verificar o arquivo de log /var/adm/messages

Listagem 2: Conferindo os servios de impresso


# svcs -a | grep print disabled disabled disabled online online 11:13:08 11:13:09 11:13:35 11:13:24 11:13:36 svc:/application/print/ipp-listener:default svc:/network/device-discovery/printers:snmp svc:/application/print/rfc1179:default svc:/application/print/ppd-cache-update:default svc:/application/print/server:default

Para se desconectar, necessrio utilizar o comando ~. (teclas [~] e [.] pressionadas simultaneamente).

Listagem 3: Arquivo /var/adm/messages


01 Apr 10 18:12:35 opensolaris pcplusmp: [ID 444295 kern.info] pcplusmp: ide (ata) ... 02 Apr 10 18:12:41 opensolaris usba: [ID 912658 kern.info] USB 2.0 device (usb3f0,3f11)... 03 Apr 10 18:12:41 opensolaris usba: [ID 349649 kern.info] hp psc 1310 series BR57G3G0DZO2 04 Apr 10 18:12:41 opensolaris genunix: [ID 936769 kern.info] usb_mid2 is /pci@0,0/... 05 Apr 10 20:08:55 opensolaris usba: [ID 912658 kern.info] USB 2.0 device (usb7cf,1004)... 06 Apr 10 20:08:55 opensolaris usba: [ID 349649 kern.info] CASIO COMPUTER QV DIGITAL 07 Apr 10 20:08:55 opensolaris genunix: [ID 936769 kern.info] usb_mid1 is /pci@0,0/... 08 Apr 10 20:08:55 opensolaris genunix: [ID 408114 kern.info] /pci@0,0/pci1043,815a@2/...

Linux Magazine #56 | Julho de 2009

59

TUTORIAL | OpenSolaris

de recursos naturais. No caso de notebooks, existe ainda o problema da durabilidade das baterias. A comunidade do OpenSolaris trabalha ativamente em diversos projetos com esta exata finalidade [3]. Um dos recursos mais desejados em notebooks a capacidade de suspender o sistema para a memria ou para o disco, de forma a recuperar seu estado exatamente como estava antes de ser desligado ou fechado. No OpenSolaris, esse recurso conhecido como suspend-resume. complicado saber se o suspendresume funciona realmente em uma

mquina, pois h uma dependncia de diversos fatores vinculados ao hardware que determinam o sucesso ou insucesso, assim como a exigncia de que os drivers desses dispositivos estejam preparados para esse recurso isto , precisam ser compilados com as opes DDI_SUSPEND e DDI_RESUME. Uma maneira simples para verificar se a mquina suporta o recurso suspend-resume pelo menu System | Shut Down. Caso seja exibida a opo Suspend, j um bom comeo. Porm, isso no fornece indcios de que tudo ir funcionar,

Listagem 4: Sada do powertop


OpenSolaris PowerTOP version 1.1 CnAvgresidencyP-states (frequencies) C0 (cpu running)(15.6%)2006 Mhz100.0% C14.8ms(84.4%) Wakeups-from-idle per second: 174.0interval: 5.0s no ACPI power usage estimate available Top causes for wakeups: 57.6% (100.2)<kernel> :genunix`clock 5.7% (10.0)<kernel> :ata`ghd_timeout 2.4% (4.2)nautilus :<scheduled timeout expiration> 2.3% (4.0)<kernel> :genunix`schedpaging 2.3% (4.0)<kernel> :uhci`uhci_handle_root_hub_status_change 1.9% (3.4) sched : <scheduled timeout expiration> 1.7% (3.0) <kernel> : genunix`realitexpire 1.4% (2.4)gnome-panel : <scheduled timeout expiration> 1.4% (2.4)gvfsd-trash : <scheduled timeout expiration> 1.4% (2.4) gvfs-hal-volume : <scheduled timeout expiration>

ento o mais indicado fazer um teste. Caso o recurso no funcione corretamente, aconselhvel examinar o arquivo /var/adm/messages para averiguar o que ocorreu. Na maioria das vezes, o problema est relacionado a drivers sem suporte a essa funcionalidade. Outro recurso interessante presente no OpenSolaris a ferramenta powertop (listagem 4), que mostra os programas que mais causam o consumo de energia por parte do hardware. No apenas o sistema operacional que deve suportar recursos de gerenciamento de energia. O hardware deve seguir a mesma linha de desenvolvimento, e os principais fabricantes de processadores (Intel e AMD) tambm tm feito sua parte. No entanto, nem todos os processadores desses fabricantes suportam as tecnologias de reduo de consumo. Por exemplo, no caso do SpeedStep da Intel, somente processadores que pertencem s famlias 0xF (modelos iguais ou superiores a 0x3) e 0x6 (modelos iguais ou superiores a E) esto habilitados para fazer uso desse recurso. No caso da AMD, apenas processadores pertencentes famlia 10h em diante suportam a tecnologia PowerNow!. Para descobrir as informaes do processador no OpenSolaris, basta usar o comando kstat:
# kstat -m cpu_info -i 0 -s implementation module: cpu_info instance: 0 name: cpu_info0 class: misc implementation x86 (GenuineIntel 6F8 family 6 model 15 step 8 clock 2000 MHz)

Listagem 5: Arquivo /etc/power.conf


device-dependency-property removable-media /dev/fb autopmdefault autoS3default cpu-threshold1s # Auto-ShutdownIdle(min)Start/Finish(hh:mm)Behavior autoshutdown309:00 9:00noshutdown cpupm enable

Neste caso, o processador (um Intel Core 2 Duo) suporta a tecnologia SpeedStep. Existem alguns casos em que o processador suporta mais de uma frequncia; caso isso

60

http://www.linuxmagazine.com.br

OpenSolaris | TUTORIAL

ocorra, o OpenSolaris capaz de gerenci-lo em qualquer uma dessas frequncias. Para descobrir se um processador trabalha com mais de que uma frequncia, basta usar novamente o kstat:
$ kstat -m cpu_info -i 0 -s supported_frequencies_Hz

Tambm possvel averiguar em qual frequncia a CPU est trabalhando:


$ kstat -m cpu_info -i 0 -s current_clock_Hz

como leitores de CD ligados enquanto o monitor estiver ligado; autopm: ativa e desativa o controle de energia; autoS3: ativa e desativa o recurso supend-to-ram; autoshutdown: permite que o sistema se suspenda automaticamente aps determinado perodo de inatividade; cpupm: controla o suporte ao gerenciamento de energia da CPU.

Existe ainda outro arquivo, /etc/ default/power, que controla as permis-

ses de quais usurios podem utilizar o gerenciamento de energia e recursos como suspend-resume por meio do comando pmconfig. Alm destes dois, existe um servio relacionado ao gerenciamento de energia, cujo estado pode ser examinado com o comando:
# svcs svc:/system/power:default

Mais informaes
[1] Alexandre Borges, OpenSolaris 2008.11: http://lnm.com.br/article/2753 [2] Alexandre Borges, OpenSolaris 2008.11, parte 2: http://lnm.com.br/article/2826 [3] Gerenciamento de energia no OpenSolaris: http://opensolaris.org/os/community/pm/

O OpenSolaris possui um arquivo de configurao para gerenciamento de energia, /etc/power.conf (listagem 5). Seu contedo organizado da seguinte forma: device-dependency-property: essa propriedade mantm dispositivos

Complete
O objetivo da coleo trazer conhecimento convel e de alto nvel sempre com enfoque prtico e voltado para a utilizao do sistema Linux e de outras tecnologias livres.

a sua coleo

Mais informaes
Site: www.linuxmagazine.com.br Linux Magazine #56 | Julho de 2009 Tel: 11 4082-1300

61

Gerenciamento de trfego com o WebHTB

REDES

Controle de trfego
Veja como o WebHTB gerencia a banda com uma interface prtica e bonita. por Razvan-Teodor Coloja
Paulus Rusyanto Fotolia.com

s computadores clientes, em sua maioria, esto configurados para obter a largura de banda de que necessitam, at os limites do hardware, mas as tcnicas padro para o compartilhamento de banda entre os vrios sistemas em uma rede local so muitas vezes inadequadas quando os volumes de trfego crescem vertiginosamente. Muitos administradores acham que conseguem melhor desempenho de rede (e menos reclamaes de usurios) impondo um sistema que limita a utilizao individual da banda. Por exemplo, imagine o que aconteceria se alguns sistemas em uma rede local comeassem simultaneamente a baixar filmes de sites de torrent, usando at 98% da

capacidade coletiva de download e upload. Os outros usurios da rede se queixariam, e voc como o administrador de rede teria que dedicar um tempo precioso para solucionar os problemas e responder aos emails. Por que no permitir que um sistema automatizado imponha a gesto da banda para esse tipo de situao? Infelizmente, as ferramentas que permitem utilizar os recursos de QoS (Quality of Service, qualidade de servio) no kernel Linux geralmente so difceis de instalar e configurar, e as melhores exigem uma recompilao do kernel. O pacote HTB-tools [1] foi durante muito tempo uma ferramenta padro do Linux para limitar o uso da largura de banda. Embora exija

diversos clculos e tempo com arquivos de configurao, possvel efetuar uma melhor sintonia das HTB-tools para satisfazer as necessidades da sua rede. Uma alternativa fcil para gerir o trfego em sua rede local uma ferramenta chamada WebHTB. O WebHTB (figura 1) um conjunto de arquivos PHP que podem ajudar a alocar a largura de banda por meio de uma interface web baseada em AJAX. O WebHTB permite limitar a largura de banda em endereos IP externos e internos e gerenciar a largura de banda em endereos SNAT (Source Network Address Translation).

Primeiros Passos

Quadro 1: QoS
As verses anteriores do WebHTB se baseavam no pacote HTB-tools para algumas funes de QoS. Desde a verso 2.0, o WebHTB vem com ferramentas para lidar com QoS diretamente. Para ver os recursos includos, confira uma demonstrao do WebHTB em ao [2].

Antes de utilizar o WebHTB, voc precisa ativar alguns mdulos do kernel e recompilar o kernel. Primeiro, adicione os seguintes mdulos para a configurao do kernel: Hierarchical Token Bucket (HTB), Stochastic Fairness Queuing (SFQ), Netfilter mask (FW) e as Universal 32-bit comparisons with hashing (U32). Alm

62

http://www.linuxmagazine.com.br

WebHTB | REDES

disso, necessrio ativar o suporte s marcaes com netfilter e chave U32. Em seguida, instale o iproute2 juntamente com um servidor web que suporte SSL 2.8 (o Apache a melhor opo), bem como suporte para MySQL, PHP e SSH2. Um servidor web com SSL ativado essencial por razes de segurana, pois a senha de root fornecida no login e armazenada com criptografia. O WebHTB utiliza apenas essa senha ao mesmo tempo em que efetua alteraes na configurao. Em seguida, baixe a ltima verso do pacote WebHTB [3] e extraia o arquivo na raiz do servidor Web na mesma mquina que faz o papel de roteador na rede. Em seguida, preciso criar um banco de dados para o WebHTB. Para isso, primeiro acesse o prompt do MySQL com:
mysql -u root -p

Figura 1 A janela principal do WebHTB mostra os PCs clientes e seus limites


de banda. Os administradores podem facilmente visualizar e editar os valores de cada PC na rede.

Em seguida, crie um novo banco de dados chamado webhtbdb e conceda acesso ao seu usurio:
CREATE DATABASE webhtbdb; GRANT ALL PRIVILEGES ON webhtbdb .* a usurio @ localhost IDENTIFIED BY password com GRANT OPTION; quit;

/etc/sudoers o usurio sob o qual o

Adicione ao final do arquivo

de configurao, digite o nome do usurio administrador do MySQL e sua respectiva senha , assim como o nome e a senha do usurio que ter acesso nova base de dados criada. Digite webhtbdb como o nome do banco de dados. Escolha a sua interface de rede principal (geralmente eth0) e efetue as alteraes. Se a instalao for bem-sucedida, voc poder apagar a pasta setup/.

Burst (Rajada) quantidade de dados que pode ser enviada velocidade mxima do hardware antes que oferea mais dados. Se o valor for definido como 0, o WebHTB ir calcular e aplicar um valor automaticamente;

servidor ser executado. Alm disso, importante que este usurio tenha permisses de leitura e escrita no arquivo webhtb/config/config.php na raiz do servidor Web. Este arquivo armazena as configuraes do WebHTB e deve ser verificado aps a concluso da instalao. Agora que acabou a parte mais difcil, inicie o navegador Web, entre em http://127.0.0.1/webhtb/setup e siga os passos do instalador do WebHTB mostrados na tela. Na pgina

Cotas

O WebHTB monitora a interface de rede entre uma rede local e a Internet, alm de impor cotas de trfego para os computadores da rede local. Em particular, o WebHTB gerencia os seguintes parmetros: Bandwidth (Largura de banda) largura de banda mnima garantida; Limit (Limite) largura de banda mxima disponvel para um nico computador;

Figura 2 As configuraes do
WebHTB so aplicadas a uma interface de rede especfica.

Linux Magazine #56 | Julho de 2009

63

REDES | WebHTB

Figura 3 Adicionando uma classe no WebHTB.

Figura 4 Modificando um cliente existente a partir da lista.

Priority (Prioridade) localizao na hierarquia de alocao de banda (quanto menor o nmero, maior a hierarquia).

Queue (Fila) define o tipo de escalonamento (atualmente, as opes disponveis so: PFIFO, SFQ ou ESFQ).

O objetivo definir as classes de computadores com um propsito em comum. Por exemplo, uma classe Contabilidade poderia consistir em computadores pertencentes ao setor de contabilidade, que tm uma funo similar. Cada classe pode ter uma mesma configurao. Porm, antes de comear a criar classes, necessrio definir a interface de rede. Selecione Interfaces+ no menu principal para acessar um dilogo que permite adicionar uma interface para a configurao do WebHTB (figura 2). Selecione Classes+ no menu principal para acessar o dilogo que permite definir uma classe de computadores para a rede (figura 3). Note que possvel atribuir limites de banda com a classe. Esses limites sero aplicados a cada um dos computadores na classe. No entanto, voc tambm pode associar os limites de largura de banda para um computador especfico, que sobrescrever as definies de classe. Com a classe j criada, possvel adicionar computadores a ela. Clique na entrada de menu Clients+ na janela principal, escolha a opo Add client e digite um nome para o PC. Em seguida, defina a banda disponvel e o limite de utilizao nas configuraes do PC e escolha um nvel de prioridade no menu drop-down. Os nomes dos clientes no devem conter espaos ou caracteres especiais, e os valores de banda total e limite devem ser mltiplos de oito. Agora, clique em Save para salvar as configuraes. Para adicio-

Quadro 2: Centro de controle


O WebHTB Control Center ainda est em desenvolvimento. Os programadores planejam finalizar seu desenvolvimento com o lanamento da verso 2.8. O Centro de Controle gerencia as configuraes, como a senha do MySQL, o intervalo de endereos IP que podem acessar a interface do WebHTB ou o idioma do WebHTB que exibido. Atualmente, o WebHTB suporta romeno, ingls, espanhol e portugus, mas de acordo com o desenvolvedor principal do projeto, Daniel Delicostea, mais tradues esto a caminho. O Centro de Controle (figura 6) tambm permite aos usurios fazer becape e restaurar as configuraes atuais, de modo que o administrador possa utilizar diferentes configuraes em momentos diferentes.

64

http://www.linuxmagazine.com.br

WebHTB | REDES

nar mais clientes, pressione Reset, o qual limpa os campos. Os novos clientes devem aparecerna lista imediatamente. Graas interface AJAX (figura 4), com um clique do mouse possvel editar e apagar as entradas. O WebHTB trabalha com endereos IP, MARK e MAC. A opo Show (Mostrar) na barra de menu leva a outro submenu chamado Show Traffic (Mostrar trfego). A opo Show Traffic abre uma pequena janela, constantemente atualizada para permitir ao administrador conferir quem est usando a banda da empresa (figura 5). possvel estudar a velocidade de download de clientes individuais em tempo real, assim como a velocidade de classes inteiras e seus respectivos limites. Agora vamos considerar um cenrio tpico. Digamos que voc o administrador de uma rede com 50 computadores. Um dos computadores pertence ao seu chefe, outro a sua estao e os outros 48 esto divididos entre os seus colegas de trabalho. Seu trabalho consiste em dividir com seus colegas uma linha de 5 Mbps entre esses sistemas para que nem vocs nem seu chefe tenham problemas de velocidade, e que cada um dos seus colegas tenha uma conexo estvel de Internet. Depois de adicionar a eth0 como interface padro, crie duas novas classes: uma chamada Privilegiados e outra chamada Colegas. Na classe privilegiada, adicione um novo cliente chamado Chefe, com banda garantida de 512 Kbps e limite de 640 Kbps. Defina a prioridade da classe para 0, garantindo assim que esse usurio no tenha que aguardar na linha quando estiver efetuando um download. Crie outro cliente chamado Administrador com essas mesmas configuraes. Esta configurao atribui um quinto da largura de banda disponvel exclusivamente para voc e

seu chefe. Se os outros computadores na rede no estiverem utilizando o mximo de banda, voc e seu chefe tero cada um 128 Kbps extras (porque a configurao define um limite mximo de 640 Kbps). Agora basta incluir o restante dos usurios na classe Colegas e dar- Figura 5 Visualizao do uso da banda em tempo real. lhes direito a uma menor banda garantida (aproximadamente 80 Kbps cada) e um limite de 128 Kbps. Defina os nveis de prioridade como bem Figura 6 O Centro de Controle na verso 2.8. desejar (lembre-se: quanto menor for o nmero atribu- ter um limite superior, de modo que, do, maior a posio na hierarquia quando os outros terminarem o exde distribuio de banda). pediente, tenham acesso banda no utilizada. Associado a um bom conjunto de regras no iptables (e Antes de decidir quem recebe quanta talvez uma instalao do Squid), o banda, faa um mapa mental da sua WebHTB simplificar sua vida como empresa. Calcule quem precisa de administrador de rede. Crie diferenmais banda e quem normalmente tes configuraes e experimente at trabalha horas extras. Os trabalha- encontrar uma abordagem que fundores que fazem horas extras devem cione bem para todos. n

Concluso

Mais informaes
[1] HTB-tools: http://htb-tools.skydevel.ro/ [2] Demonstrao do WebHTB: http://webhtb.sourceforge.net/video_demo.html [3] WebHTB: http://webhtb.sourceforge.net/

Sobre o autor
O romeno Razvan-Teodor Coloja freelancer e um entusiasta do Linux. J trabalhou em algumas revistas impressas e sites de Linux como autor e foi editor-chefe da revista MyLINUX Magazine na Romnia.

Linux Magazine #56 | Julho de 2009

65

Entenda melhor a tecnologia de IPS

SEGURANA

IPS na intimidade
Em segurana, no basta instalar o IPS e achar que a rede est segura. Entenda os fundamentos da atuao dos IPSs e IDSs para se proteger ao mximo. por Rodrigo BSDaemon Rubira Branco

fato que sistemas para a pre veno de intruso vm se tornando realidade para gran de parte das empresas, embora exista uma panaceia de termos e tecnologias criadas, o que dificulta (e muito) o real entendimento dos objetivos e funcionamentos de tais sistemas. Este artigo procura esclarecer de uma maneira mais abrangente o que significa uma soluo de preveno de intrusos, possibilitando ao leitor uma compreenso maior das tecno logias, sem foco especfico em algum produto ou soluo. Uma soluo de preveno de intrusos no visa a substituir as ne cessidade de aplicaes de patches de segurana em servidores da rede, mas diminuir o intervalo entre a di vulgao de uma vulnerabilidade e a aplicao das correes na rede. Cabe dizer que existem diferentes estados para uma vulnerabilidade: no pblica, pblica sem correo e pblica com correo. Dizemos que uma vulnerabilidade existe, mas no pblica, quando ela est nas mos de poucas pessoas e ainda no existe uma correo. Tais
66

pessoas podem ser idneas (em geral, desenvolvedores das empresas do soft ware vulnervel e pesquisadores de segurana que descobriram a falha) ou no (criminosos que encontram a falha e a esto explorando com um objetivo qualquer). Uma vulnerabilidade pode ser considerada pblica sem correo em razo de dois motivos comple tamente diferentes: Um pesquisador encontrou a vulnerabilidade e, aps mlti plas tentativas de contactar o fornecedor, no obteve resposta, ou a resposta no foi satisfat ria discordncia a respeito da existncia da vulnerabilidade, vulnerabilidade em produto com suporte descontinuado, tempo para desenvolvimento da correo ou entendimento do problema muito prolongados , fazendo com que o pesquisa dor divulgue a falha encontrada, ainda que no exista correo; Profissionais de segurana des cobrem que alguma vulnerabi lidade no pblica foi explorada em seus sistemas (sejam eles

honeypots ou no) e examinam os detalhes da explorao para descobrir qual a falha explorada. Este caso o mais crtico, pois significa que a vulnerabilidade j est sendo explorada e as em presas fornecedoras de TI nem sequer sabem de sua existncia. Quando uma vulnerabilidade dita pblica com correo, muitas vezes isso significa que ela s foi divulgada quando j existia uma correo. Independentemente do estado das vulnerabilidades, sabese que existe um intervalo de tempo entre a divulgao de uma correo, se ela existir, e a efetiva aplicao nos sistemas de uma rede. Mesmo em redes com diversas camadas de segu rana, sistemas automatizados para instalao de correes e NAC (con trole de acesso a rede), sabese que o tempo para a configurao efetiva de auditoria, instalao das correes e quarentena continua sendo insufi ciente, dada a velocidade com que as falhas tm sido exploradas. Isso sem falar das vulnerabilidades pblicas sem correo.

http://www.linuxmagazine.com.br

IPS | SEGURANA

Esse intervalo entre a divulgao da vulnerabilidade e a aplicao de sua correo denominado Tempo de Exposio: tratase do tempo que uma empresa fica exposta a uma ameaa conhecida (sem falar das ameaas desconhecidas, abordadas mais adiante). Um sistema de IPS (no original em ingls, Intrusion Prevention System Sistema de Preveno de Intruses) existe primariamente para reduzir ao mximo o tempo de exposio. Existem duas formas de se preve nir contra uma ameaa: preveno contra a explorao da vulnerabilidade: entendi mento e validao de protoco los, assinaturas especficas para os padres do ataque, anlise comportamental, entre outras tecnologias e procedimentos que podem ser implementados com tal finalidade; preveno contra uma forma de se explorar uma vulnerabilida de: tambm conhecido como assinaturas para exploits, que nada mais so do que maneiras de se detectar uma forma conhe cida de se explorar uma dada vulnerabilidade. Tais assinaturas geralmente so mais simples de desenvolver e costumam ser as primeiras a ser oferecidas pelos fabricantes, pois no exigem o completo entendimento das vulnerabilidades. Tais assinaturas, em geral, podem ser contornadas quando se tem um conhecimento da tecnologia de pro teo e da assinatura em si. Por esta razo, alguns fabricantes fecham suas assinaturas ao pblico. Outro motivo para fechar as assinaturas ao pblico a existncia de assinaturas para falhas ainda no divulgadas. Isso ocorre quando o fabricante compra vulnerabilidades de segurana ou possui times de pesquisa internos para detectlas antecipadamente.

As tecnologias de preveno de intruso, de uma forma em geral, evoluram para proporcionar a de teco com base em diversos fatores (tecnologias hbridas): assinaturas, comportamento, validao de pro tocolos e tecnologias de deteco.

Assinaturas

Muitos entendem assinaturas como simples busca de padres (tambm conhecido como pattern matching), ou busca de strings. Embora em algumas tecnologias isso muitas vezes seja verdade por exemplo, Snort, quando no tratamos as re gras dinmicas , isso no se aplica a todas as solues. Uma assinatura pode ser um conjunto elaborado de condies e regras para validao dos dados que passam pelo sistema. Por isso importante entender quais os protocolos analisados e entendi dos pelo sensor a ser avaliado. Por exemplo, uma simples busca de strings poderia identificar um 1=1 como sendo um ataque e emitir um alerta (a propsito, 1=1 um padro comumente utilizado em injeo de comandos SQL, uma classe de vulnerabilidades existente prima riamente em sistemas baseados na Web). Mas tal sistema no seria ca paz de diferenciar se essa string est sendo enviada como parte de uma mensagem inofensiva de email ou no corpo de uma pgina, ou ainda em uma URL. Vale lembrar tam bm das possveis variaes para essa assinatura, pois 10=10 possui o mesmo efeito do ponto de vista do atacante, mas no geraria um alerta.

mentos externos. O importante entendermos que, embora seja um recurso precioso para deteco de ameaas como worms, que sabida mente mudam o comportamento da rede, no so eficientes para todos os casos. Ataques visando um alvo especfico normalmente no geram anomalias perceptveis pela rede. Por essa razo, os sensores modernos usam tecnologias hbridas.

Validao de protocolos
Todas as solues modernas ofe recem algum tipo de validao de protocolos, independentemente das assinaturas existentes. Deveriam re alizar, por exemplo, a remontagem de sesses (identificar uma sesso, ou seja, sequncia de dados perten centes a uma mesma transao por parte de um protocolo especfico), a remontagem de pacotes (chamada de desfragmentao virtual, semelhan te remontagem de sesses, porm ocorrida na camada de rede, mais baixa que a de sesso), entre outras.

Tecnologias de deteco
De uma forma geral, todas as solu es proprietrias ou no pos suem outras formas de deteco de ataques. Um exemplo a verificao de instrues de mquina passando pela rede e a emulao das instru es para evitar falsos positivos. Este mtodo serve para a deteco gen rica de exploraes com insero de cdigo arbitrrio (shellcodes).

Comportamento

A deteco baseada em comporta mento envolve a criao de um baseline, um padro normal do com portamento da rede. Mudanas nesse padro so indicativas de um ata que. Algumas tecnologias possuem recursos mais avanados para isso, enquanto outras dependem de ele

Habilitao de regras (assinaturas e configuraes)


importante mencionar que a ge rncia de sensores em uma rede um dos principais fatores para o su
67

Linux Magazine #56 | Julho de 2009

SEGURANA | IPS

cesso de uma soluo de preveno de intrusos. As assinaturas no faro diferena se no estiverem habilitadas. Algumas assinaturas so associa das ao equipamento alvo, ou seja, ao sistema operacional e seus soft wares. Por questes de otimizao de desempenho dos equipamentos, importante que vulnerabilidades que no possam afetar a rede por j estarem corrigidas ou porque os sistemas alvos no existem tenham suas respectivas assinaturas desa bilitadas, a menos que a soluo oferea degradao desprezvel de desempenho mesmo com milhares de assinaturas habilitadas. Diversas solues j possuem for mas automatizadas de reconhecimen to de mudanas da rede para habili tao e desabilitao de assinaturas, evitando exposies indevidas por exemplo, quando um novo servidor no autorizado instalado na rede. Tal reconhecimento pode ser reali zado pelo prprio sensor, sendo este o responsvel final pela implantao da segurana, de forma passiva, ou por outro elemento na rede, como um analisador de vulnerabilidades reativo que precisa ser executado na rede periodicamente, ou ainda um analisador de rede integrado ao sensor. O poder de customizao de assinaturas fundamental para este tipo de tecnologia. Softwares desenvolvidos exclusivamente pela empresa, solues menores de tec nologia e outras necessidades espe ciais dificilmente sero atendidos pelos fabricantes. Customizao a palavrachave nestes casos. Mes mo que a equipe responsvel no tenha conhecimento suficiente para realizla, possvel a contratao externa de um especialista para seu desenvolvimento. Isto diminui a ocorrncia de falsos positivos ou falsos negativos e melhora o de sempenho da soluo utilizada, com consequente ganho de produ
68

tividade por parte da equipe que gerencia a soluo. muito importante diferenciar tambm o que so assinaturas de ataques com destino a servidores e assinaturas de vulnerabilidades em softwares clientes. Isto porque se um sistema de preveno de intrusos for instalado para proteger uma DMZ, quase seguramente poderemos desa bilitar todas as assinaturas de clien tes e melhorar consideravelmente o desempenho geral, pois permitimos assim a inspeo de trfego unidire cional. O inverso tambm valido se o sistema de preveno servir para a proteo de uma rede que consiste apenas de sistemas de usurios.

Desempenho

Desempenho um fator fundamen tal para o sucesso de uma soluo de preveno de intruso. Os fabricantes em geral no divul gam as avaliaes de desempenho de seus sistemas ou equipamentos com todas as assinaturas de preven o ativadas, e um parmetro de desempenho sem especificao de quais protees esto ativas pode no refletir o comportamento da soluo no dia a dia. Lembrese sempre de definir quais as protees mnimas necessrias para seu ambiente. Pre ferencialmente, antes de escolher qualquer configurao, o ideal um teste utilizando as definies de vulnerabilidades a ser protegidas e as formas de proteo exigidas.

Topologias e disponibilidade
Diretamente relacionada ao desem penho vem a questo topolgica dos equipamentos. Isto porque um IPS trabalha de forma inline (em linha, ou seja, todas as conexes inspecio nadas devem necessariamente pas sar por ele) e pode ou no possuir balanceamento de trfego e alta disponibilidade.

Em geral, um sensor no possui IP e atua em modo bridge. Este um dos grandes diferenciais entre um sensor embarcado comumente visto em caixas UTM e um sensor dedicado. Sensores embarcados em geral esto em equipamentos com IP, pois atuam tambm como firewalls na rede. A questo de a profundidade e os recursos de inspeo presentes em tais sensores serem inferiores a sistemas dedicados no pode ser tratada como verdadeira em todos os casos. Devese sempre validar se existem formas de priorizao de servios para evitar que inspees do IPS afetem o desempenho do equipamento como firewall. As solues de IPS hoje possuem tambm a possibilidade de instala o como IDS Intrusion Detection System, Sistemas de Deteco de Intruso , sendo estes sistemas noinline (noemlinha, ou seja, mesmo se o sensor estiver inativo, o trfego continuar fluindo, pois o sensor recebe apenas uma cpia do que passa pela rede). Existem ainda recursos de aprendizado por assina tura nele, todo o sensor est em modo de aprendizado e no efetua bloqueios, apenas gera alertas para os ataques ou ainda modos em que cada assinatura configurada separadamente, podendo estar em modo de aprendizado, com algumas assinaturas especficas em modo de bloqueio. Vale notar que os sistemas instalados unicamente como IDS esto em franco declnio. Outra situao de topologia co mum a implementao de um mesmo sensor para mltiplos seg mentos de rede. Embora o desem penho merea ser considerado para que ataques em um segmento no prejudiquem os demais, esse requisito muito comum e pode ser forneci do de diversas formas. Uma delas a existncia de diferentes polticas por segmento isto , por par de interfaces fsicas ou tags de VLAN

http://www.linuxmagazine.com.br

IPS | SEGURANA

(rede virtual) em um sensor. Esta a forma mais comum, pois permite a visualizao clara de qual segmento possui quais regras, embora dificulte a gesto do sensor em si, que fun ciona como se existissem mltiplos sensores na prtica. Outra aborda gem o uso de excees por regra ou por sensor, em que diversos pa rmetros podem ser utilizados para criar excees s regras. Por exem plo, determinado conjunto de IPs pode ser desconsiderado na regra de vulnerabilidades em servidores Apache. Essa abordagem facilita o gerenciamento das assinaturas e proporciona mais segurana, mas dificulta a compreenso do que est ativo para cada segmento. Por estarem inline no trfego de rede, as solues de preveno de intruso devem possuir algum tipo de redundncia. Interfaces de bypass so placas de rede especiais que permitem ao trfe go fluir mesmo com o equipamento desligado. Essa uma das formas mais usadas e de melhor custo, podendo ser internas ou externas. Quando se deseja alta disponibilidade, podemse usar dois sensores inline com inter faces de bypass interligadas. Na pr tica, todo o trfego inspecionado duas vezes (duplicando a latncia) e, no caso da falha de um sensor, a interface manter o trfego passan do at o outro. O problema, nesse caso, evidente: em caso de falha na interface de bypass, a rede para. Outra forma de se implementar a alta disponibilidade por meio de um equipamento externo que, em caso de falhas, desvia o trfego para outro sensor. A grande maioria das solues com essa topologia tem pro blemas de continuidade em virtude do roteamento assimtrico: a volta dos pacotes muitas vezes ocorre por um sensor diferente daquele pelo qual chegaram originalmente. In dependentemente do bom funcio namento desta topologia, h perda

de segurana, j que as sesses no so completamente remontadas para deteco dos ataques, a menos que a questo do roteamento assimtrico seja resolvida ou haja sincronismo de informaes entre os sensores. A forma mais vantajosa de im plementar a alta disponibilidade com balanceamento de carga (load sharing). Com ele, em caso de falha de um sensor, o outro equipamento mantm a inspeo. Tais solues em geral encarecem o projeto por trs motivos: exigem mais de um dos equipa mentos, e cada um dos equipa mentos precisa ser capaz de susten tar sozinho a vazo (throughput) total da rede, pois, na falha de um, o outro equipamento fica encarregado de toda a rede; no atendem aos requisitos de escalabilidade to facilmente: por exemplo, em caso de adio de mais equipamentos para melhor desempenho; diminuem o desempenho dos equipamentos. So necessrios equipamentos de maior desem penho para atender mesma va zo, j que a sincronizao dos estados internos do IPS exige muita performance e degrada o equipamento. Uma opo interessante dispon vel no mercado a implementao de topologia de balanceamento de carga sem a sincronizao dos esta dos de IPS. Nela, os IPSs dividem o trabalho de inspeo, pois, na prti ca, no precisam se comunicar para isso e as sesses so sempre tratadas pelo mesmo equipamento. Esta soluo permite a escolha entre segurana e conectividade. Caso se opte pela segurana, a queda de um equipamento faz com que as sesses ativas sejam bloqueadas pelo outro equipamento (out-ofstate). J se for feita a opo pela conectividade, as sesses ativas sero

permitidas, por um perodo de tem po, sem inspeo. Novas conexes sero normalmente inspecionadas.

Appliance x software

A escolha entre appliance e software depende fortemente da integrao com parceiros e fornecedores, pois algumas empresas possuem mais facilidades no atendimento, suporte e preos com determinadas marcas, bem como das diretivas de negcio de cada empresa. Muitas, por exem plo, optam pelo uso de appliances por facilitarem a manuteno e o suporte em geral. Cada fabricante possui sua pr pria estratgia nesse quesito, mas a escolha do que melhor cabe ao cliente, no sendo uma vantagem possuir uma opo hbrida no caso de um cliente que opte apenas por appliances. O mais importante conseguir os nmeros corretos de desempenho, baseados em critrios reais e no na famosa vazo de pacotes UDP de 1500 bytes sem qualquer assinatu ra ativada.

Falsos positivos e negativos


Um dos principais motivos para o insucesso na adoo de solues de preveno de intrusos est na alta taxa de falsos positivos eventos normais e inofensivos detectados como ataques , o que gera bloqueios indevidos. H tambm os falsos negativos excesso de ataques que conseguem de alguma forma passar pelo sensor sem ser detectados. Evitar totalmente falsos negativos fcil. Basta detectar todo o trfego como ataque. Isso nos d 0% de falsos negativos, mas ao mesmo tempo algo prximo de 100% de falsos positivos. O oposto tambm verdadeiro, ou seja, se no alertarmos para nada, no teremos falsos positivos, mas te remos 100% de falsos negativos para
69

Linux Magazine #56 | Julho de 2009

SEGURANA | IPS

os ataques. O grande desafio est no equilbrio entre ambos. Como j mencionado, o apren dizado da rede melhora o desempe nho do equipamento, desabilitan do assinaturas desnecessrias, mas tambm pode ajudar na diminuio de falsos positivos. A customizao de assinaturas tambm auxilia na melhora, pois ajuda a diminuir falsos positivos e a aumentar a deteco de ataques de sistemas cujas vulnerabilidades no possu am assinaturas. Cada assinatura possui uma pro babilidade de ser um ataque real. Os fabricantes em geral definem essa taxa com base em critrios prprios, em sua maioria assertivos, mas nem sempre vlidos para todos os casos. A customizao de assinaturas deve permitir a modificao da probabili dade de ataques reais, bem como a definio do grau de risco aceitvel para a organizao.

tratarse de um ataque direciona do: esse tipo de ataque necessita de tratamento diferenciado, por ser uma tentativa especfica de explorao contra a organiza o. Isso significa que o agressor possui algum motivo para infli gir danos de alguma espcie empresa, e que provavelmente procurar outras formas de con tornar os sistemas de segurana. As atividades desenvolvidas para os alertas gerados devem ser registradas para posterior consulta, gerao de relatrios ou at mesmo interao entre mltiplos analistas. A filtragem para rpida visualizao dos alertas, categorias e outros critrios deve ser facilitada, o que quase sempre exclui interfaces web, principalmente no caso de sistemas que recebam alertas de mltiplos sensores, pois a quanti dade muitas vezes inviabiliza o uso de tais interfaces. Principalmente as redes com mltiplos sensores devem ter pro jetos que considerem o formato de visualizao dos alertas destes sensores em um ponto central, controlem o uso de disco de tais sistemas (RAID essencial para o desempenho) e, obviamente, correlao. No importa se a correlao for feita pela prpria tecnologia ou por softwares terceiros, o importante que ela seja feita. No necess rio correlacionar ataques apenas de sensores diferentes, mas tambm de um mesmo sensor. Por exemplo, podemos aumentar a prioridade

se mltiplos alertas forem gerados a partir de uma mesma origem ou visando um mesmo destino. Fica aqui o alerta contra reaes automatizadas, como listas negras (blacklists) baseadas em elementos que podem ser facilmente forjados. Imagine a situao em que automa ticamente se coloca em uma lista negra o IP de um atacante que tente explorar uma falha em um servidor DNS, protocolo que utiliza normal mente a porta UDP 53. Neste caso, um atacante poderia forjar um IP e causar o bloqueio de outro equipa mento, pois o protocolo UDP no possui uma sesso.

Concluso

Anlise detalhada

Os ataques bloqueados devem ser devidamente analisados, pois podem: ser falsos positivos: neste caso, o trfego normal da rede blo queado. Se a assinatura estiver em modo de aprendizado, o tr fego permitido, mas um alerta emitido; merecer o bloqueio em vez de simples alertas: neste caso, preciso tomar aes, pois fato que ao menos um ataque passou pelo sistema. Quais os impactos? Em que consiste o ataque? Tudo isso deve ser provido facilmen te pelo sistema de visualizao de alertas; tratarse de um ataque disparado em massa, comum em situaes como worms procurando auto maticamente por sistemas vul nerveis e ataques a faixas de IP, entre outros. Em geral, seguro ignorar tais alertas se o ataque for devidamente bloqueado;
70

Este artigo tentou esclarecer um pou co dos sistemas e das tecnologias de preveno de intrusos e, com isso, gerar diversas novas questes sobre o tema para os leitores. Como ltima considerao, le vantamos a importante questo da instalao desses sistemas, que, alm de considerar todos os itens anterior mente mencionados, deve levar em conta os seguintes critrios: definio da topologia a ser utilizada; definio da tecnologia a ser utilizada; instalao do equipamento em modo de aprendizado, para evi tar paradas na rede; visualizao dos logs pelo perodo adequado a cada organizao; habilitao gradual do modo de bloqueio. n

Sobre o autor
Rodrigo BSDaemon Rubira Branco (rbranco@la.checkpoint.com) atua como Security Expert na empresa Check Point Software Technologies. Membro do comit de pesquisas da Conviso e consultor snior de vulnerabilidades para a COSEINC, tambm atuou como Principal Security Researcher na empresa Scanit (maior fornecedor de segurana dos Emirados rabes) e desenvolvedor Linux no Advanced Linux Response Team da IBM. Rodrigo mantenedor de diversos projetos de cdigo aberto e palestrante nas mais importantes conferncias de pesquisa em segurana no mundo. Como membro do grupo RISE Security (www.risesecurity.org), divulgou diversas vulnerabilidades de segurana. Tambm instrutor dos treinamentos SANS e membro do comit da certificao GIAC em Engenharia Reversa.

http://www.linuxmagazine.com.br

Inclua em seu currculo a principal certificao Linux no mundo LPI.


Em tempos de crise, solues de cdigo aberto como o Linux se destacam na adoo por empresas de todos os tamanhos, como soluo ideal para aumentar eficincia nos negcios e reduzir custos. Atualmente h no mercado uma carncia por profissionais certificados para atender a essa demanda crescente. Aproveite essa oportunidade e inclua em seu currculo a principal certificao Linux no mundo.

As datas de realizao das provas so:


18/07/2009 Vitria/ES 01/08/2009 Fortaleza/CE 01/08/2009 So Paulo/SP 03/10/2009 So Paulo/SP

Inscries e mais informaes:


treinamentos@vectory.com.br Tel (11) 4082-1305

Linux Professional Institute

PROGRAMAO

Programao com Boo

Espante a dificuldade
A linguagem Boo oferece o melhor de trs mundos: a sintaxe amigvel do Python, a arquitura .NET e a tipagem forte de C#. por Martin Streicher

iferentemente das outras plataformas de desenvolvimento, o framework .NET consegue misturar e combinar cdigo a partir de qualquer linguagem de programao. Para quem programa em .NET, a forma de cdigo universal conhecida como Microsoft Intermediate Language (MSIL) uma lingua franca. Aps traduzir seu cdigo-fonte para o formato MSIL, possvel combin-lo com, por exemplo, Visual BASIC

.NET ou C#, para assim produzir um executvel. Com efeito, dada toda essa flexibilidade, os programadores tm adaptado muitas linguagens populares para o .NET. O IronPython [1] uma implementao completa do Python para .NET, enquanto que o IronRuby [2] uma proposta de implementao do Ruby para .NET. Alm disso, podemos encontrar verses de Java, Lisp, e Smalltalk para .NET. Mais ainda, se voc no gostar de nenhuma das

atuais linguagens de programao, pode criar a sua prpria. Se voc consegue consumir cdigo-fonte e produzir MSIL, o cu o limite. Na verdade, essa a gnese do Boo [3]. Baseado na sintaxe do Python gentil com as articulaes , mas tambm apaixonado pela arquitetura .NET e pela tipagem forte de C#, o desenvolvedor Rodrigo Barreto de Oliveira resolveu combinar as melhores caractersticas dessas linguagens com a quantidade certa de Ruby

Listagem 1: Reformatao de texto


01 02 03 04 05 06 07 08 09 10 11 12 13 14 if fp > proxFim: 15 linha = t[inicioLinha:ultFim] 16 linhas.Add(linha.Trim()) def fimDePalavra(t as string): inicioLinha = ultFim return m.Index for m as Match in /\b|$/.Matches(s) 17 18 proxFim = ultFim + colunas 19 ultFim = fp def quebraLinhas(t as string, colunas as int): 20 21 linhas.Add(t[inicioLinha:].Trim()) linhas = [] 22 23 return linhas proxFim = colunas 24 ultFim = 0 25 def testa(t): inicioLinha = 0 26 print(join(quebraLinhas(t, 12), *\n*)) for fp as int in fimDePalavra(s): import System.Text.RegularExpressions

72

http://www.linuxmagazine.com.br

Boo | PROGRAMAO

para formar algo facilmente adaptvel ao desenvolvimento iterativo. Este artigo ajuda a entender e se iniciar no Boo e mostra como utilizar a IDE MonoDevelop para escrever e testar alguns cdigos em Boo [4][5]. O Boo est disponvel sob uma licena no estilo da MIT, que oferece ampla margem para a

utilizao do cdigo e a criao de trabalhos derivados.

Python + Ruby + C# = Boo


O Python possui uma sintaxe mnima e utiliza espaos em branco para formar a estrutura do progra-

ma. O Boo segue a mesma linha. A listagem 1 um programa em Boo que reformata as linhas de texto para caber dentro de uma determinada largura. A sada de teste(este texto mesmo bem comprido) um texto quebrado com no mximo 12 caracteres por linha:

Quadro 1: Boo-as ideias


O Boo Primer [6] uma introduo muito bem escrita linguagem Boo. As construes e a sintaxe de cada elemento so descritas em detalhes. Tambm se aprende um bocado navegando pelo cdigo de exemplo fornecido com o compilador do Boo e suas sutes de teste. medida que se estuda a linguagem, comea-se a ter uma noo de como ela funciona. O Boo oferece tanto um tipo de lista quanto um de vetor. A lista pode variar de tamanho, enquanto o vetor tem tamanho fixo. possvel usar tanto uma lista quanto um vetor para extrair um, alguns ou todos os elementos, e ambos podem conter elementos heterogneos. A listagem 2 mostra algumas semelhanas e diferenas entre uma lista e um vetor. O cdigo da listagem 2 produz a seguinte sada: [0, 1, 2, 3, 4] [hello, 1, true, System.Object] [10, hello] [1, True] (0, 1, 2, 3, 4) (0, 1, 5, 3, 4) (1, 5) Tanto a lista quanto o vetor utilizam colchetes ([]) para indexao e fatias (mais conhecido como slicing); uma lista apresentada com os colchetes, enquanto um vetor possui parnteses, para diferenci-lo. Uma fatia (slice) pode ser um elemento nico ou uma faixa. Como exemplo, m [1:6] inclui os elementos desde o de ndice 1 at o de ndice 5. J m[:5] o conjunto de todos os elementos at o de ndice 4. Acessos a ndices alm dos limites do vetor ou lista produzem uma exceo. Curiosamente, uma cadeia de caracteres (string) se comporta como uma faixa e uma lista. print (s = List(abcdefghi)) [a, b, c, d, e, f, g, h, i] print s[0:4] [a, b, c, d] print (s.Add(z[0])) [a, b, c, d, e, f, g, h, i, z] Tal como Perl e Ruby, Boo tambm oferece um hash para armazenar pares no estilo (chave, valor). Uma struct (estrutura, na abreviao) como uma classe ela pode conter variveis e mtodos, mas armazenada como um valor, em vez de uma referncia. Um mtodo tambm um objeto e tem seus prprios mtodos. Tornar cada funo seu prprio objeto tem sua praticidade. Por exemplo, possvel executar instantaneamente uma funo em sua prpria thread chamando o seu prprio mtodo BeginInvoke(). Tambm se pode encerrar a thread chamando o mtodo EndInvoke(). O Boo fornece ainda uma macro chamada lock para conceder a uma thread acesso mutuamente exclusivo a um objeto durante uma operao. Tambm so fornecidas outras macros, mas o fato mais atraente que qualquer pessoa pode criar uma nova macro utilizando qualquer linguagem. claro que as macros salvam tempo de digitao, mas tambm reduzem erros e compartimentalizam sees de cdigo. Por exemplo, com uma macro possvel transformar a sequncia verbosa abaixo: instanciaMuitoComprida = Foo() instanciaMuitoComprida.f1 = 100 instanciaMuitoComprida.f2 = abc instanciaMuitoComprida.FazerAlgo() em uma declarao mais sucinta: with instanciaMuitoComprida: _f1 = 100 _f2 = abc _FazerAlgo() Boo possui outras caractersticas agradveis, mas o uso de macros, que permite a criao de linguagens para usos especficos, talvez seja seu recurso mais poderoso.

Linux Magazine #56 | Julho de 2009

73

PROGRAMAO | Boo

Listagem 2: Lista e vetor


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 l = List(range(5)) m = [hello, 1, true, object] n = [] n.Add(10) n.Add(dez) print l print m print n print m[1:3] a = array(range(5)) print a a(2) = 5 print a print a[1:3]

quebraLinhas(). Caso contrrio, o

tipo inferido. Por exemplo, a atribuio linhas = [] deixa implcito que linhas uma lista. Da mesma forma, proxQuebra = colunas deduz que proxQuebra um int (inteiro, evidentemente). Ruby tambm infere tipos. Tal como em Ruby, tudo no Boo um objeto. O interessante trecho a seguir veio do Boo Primer [6] e ilustra isso (aps compilar o shell interativo de Boo, como descrito posteriormente neste artigo, tente utilizar esse cdigo).
o as object o = 12 o = 4

a = 12 ERROR: Cannot convert string to int.

este texto * *mesmo bem* *comprido

Como se pode ver na listagem 1, o Boo bastante espartano: no possui pontos-e-vrgulas, chaves, classes (se no forem necessrias) e no exige a declarao de variveis. Basta atribuir e continuar. Mas o Boo simples apenas na forma. O tipo aplicado tanto de forma implcita quanto explcita. Argumentos formais podem ser tipados, como se pode ver na definio do mtodo

Por o estar instanciado como um objeto, a subclasse de todos os tipos, ele pode fazer referncia a qualquer outro tipo. Este exemplo cannico demonstra o polimorfismo. Entretanto, se voc declarar i de uma forma mais restrita, o Boo ir capturar uma atribuio errada.
i as int i = 4 i = 12

Ruby e Boo possuem outro recurso em comum: ambos suportam tipagem por semelhana: se um objeto tem aparncia de string, age como string e reage aos mesmos mtodos que um objeto do tipo string, ele deve ser ou uma string ou pelo menos um mmico sagaz o suficiente para se passar por uma string. Para utilizar a tipagem por semelhana em Boo, utilize o tipo duck (em ingls, chama-se a tipagem por semelhana de duck typing). O Boo pula a verificao dos tipos de variveis cujo tipo declarado duck.
fudd as int daffy as duck fudd = 0 daffy = 1 daffy = quack fudd = fique quieto ERROR: Cannot convert string to int.

Normalmente, s preciso especificar um tipo quando vantajoso. Por exemplo, o Boo oferece a sobrecarga de mtodos, um benefcio adicional da declarao de tipo dos argumentos. Caso contrrio, no declare um tipo; deixe a inferncia fazer o trabalho pesado.
# x int e pode somar x = 5 x += 5 # agora, x string x = hello print x.ToUpper() HELLO

Figura 1 Janela principal do MonoDevelop.

Os tipos mais comuns de programao so sucintos e possuem nomes em minsculas, tais como object, int, string, double e bool. J os tipos mais complexos so capitalizados, como List e Match.

74

http://www.linuxmagazine.com.br

Boo | PROGRAMAO

Iniciar o Boo

Para utilizar o Boo, preciso instalar o ambiente de desenvolvimento integrado (IDE, de Integrated Development Environment) MonoDe-

velop, uma sute de ferramentas de codificao elaborada para C# e outras linguagens .NET. A verso mais recente do MonoDevelop a 1.9.2, uma prvia da verso 2.0.

Os pacotes binrios do Mono e do MonoDevelop esto disponveis para vrias distribuies Linux e outras plataformas, incluindo Mac e Windows, mas tambm poss-

Listagem 3: Configurao do MonoDevelop


01 # Cria um local de trabalho 02 $ mkdir $HOME/mono 03 $ cd $HOME/mono 04 05 $ # Baixa, descompacta e compila os fontes 06 $ ## Mono 07 $ wget http://ftp.novell.com/pub/mono/sources/mono/mono2.2.tar.bz2 08 $ tar xjf mono2.2.tar.bz2 09 $ ( cd mono2.2; ./configure; make; sudo make install ) 10 11 $ ## GDI+ 12 $ wget http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus2.2.tar.bz2 13 $ tar xjf libgdiplus2.2.tar.bz2 14 $ ( cd libgdiplus2.2.; ./configure; make; sudo make install ) 15 $ # Acrescenta /usr/local/lib ao caminho das bibliotecas 16 $ sudo echo /usr/local/lib >> /etc/ld.so.conf.d/win32.conf 17 $ sudo ldconfig 18 19 $ ## GTK# 20 $ wget http://ftp.novell.com/pub/mono/sources/gtksharp212/gtksharp2.12.7.tar.bz2 21 $ tar xjf gtksharp2.12.7.tar.bz2 22 $ ( cd gtksharp2.12.7; ./configure; make; sudo make install ) 23 24 $ ## GNOME# 25 $ wget http://ftp.novell.com/pub/mono/sources/gnomesharp220/gnomesharp2.20.1.tar.bz2 26 $ tar xjf gnomesharp2.20.1.tar.bz2 27 $ ( cd gnomesharp2.20.1; ./configure; make; sudo make install ) 28 29 $ ## Ferramentas do Mono 30 $ wget http://ftp.novell.com/pub/mono/sources/monoaddins/monoaddins0.4.zip 31 $ unzip monoaddins0.4.zip 32 $ ( cd monoaddins0.4; ./configure; make; sudo make install ) 33 34 $ ## IDE MonoDevelop 35 $ wget http://ftp.novell.com/pub/mono/sources/monodevelop/monodevelop1.9.2.tar.bz2 36 $ tar xjf monodevelop1.9.2.tar.bz2 37 $ ( cd monodevelop1.9.2; ./configure; make; sudo make install ) 38 39 $ ## Ferramenta de compilao Nant 40 $ wget http://superbeast.dl.sourceforge.net/sourceforge/nant/nant0.86beta1src.tar.gz 41 $ tar xzf nant0.86beta1src.tar.gz 42 $ (cd nant0.86beta1; make; sudo make install ) 43 44 $ ## Depurador Mono 45 $ wget http://ftp.novell.com/pub/mono/sources/monodebugger/monodebugger2.2.tar.bz2 46 $ tar xzf monodebugger2.2.tar.bz2 47 $ ( cd monodebugger2.2; ./configure; make; sudo make install ) 48 49 $ ## Suporte ao Depurador Mono no MonoDevelop 50 $ wget http://ftp.novell.com/pub/mono/sources/monodevelopdebuggermdb/monodevelopdebuggermdb1.9.2. tar.bz2 51 $ tar xjf monodevelopdebuggermdb1.9.2.tar.bz2 52 $ (cd monodevelopdebuggermdb1.9.2; make; make install )

Linux Magazine #56 | Julho de 2009

75

PROGRAMAO | Boo

linha de comando e a Glib verso 2.0 ou posterior. Em seguida, baixe e descompacte os tarballs do MonoDevelop e suas dependncias (veja a lista de componentes completa no site do Mono [7]). So nove os pacotes exigidos (listagem 3). Preste ateno especial s instrues do GDI+: necesFigura 2 Fontes e Boo resultados da srio configurar o carregador listagem 6. para encontrar as bibliotecas em /usr/local/lib. Se voc vel compilar o software a partir tentar executar alguns aplicativos do dos fontes. Boo que fazem uso de Windows ForPara compilar o cdigo-fonte, cer- ms e obtiver um erro como System. tifique-se de que a mquina possui DllNotFoundException: Gdiplus.dll, as ferramentas de desenvolvimento provavelmente porque voc pulou obrigatrias para compilar aplicati- essa etapa (veja o site do projeto Mono para mais informaes [8]). vos Gnome. A construo completa leva cerca Alguns outros utilitrios e bibliotecas de desenvolvimento tam- de 30 minutos e produz o motor bm so necessrios: uma mquina do Mono, a ferramenta de construvirtual Java, o gerador de parsers o nant (semelhante ao make em Bison, o utilitrio pkg-config, a bi- finalidade), a IDE MonoDevelop, blioteca de renderizao Pango, a um depurador e vrias bibliotecas biblioteca de acessibilidade ATK, do Linux e do .NET. Por padro, as bibliotecas GTK+ 2,0, a biblio- todo o software instalado em /usr/ teca Curses, alguns bindings de local/ e seus subdiretrios. Para usar

outro diretrio, use o comando ./


configure prefix /outro/diretrio

com cada comando. O prximo passo baixar e compilar o compilador Boo e seu respectivo ambiente para MonoDevelop:
$ wget http://dist.codehaus.org/ boo/distributions/ boo0.9.0.32032src.zip $ mkdir boo; unzip ../ boo0.9.0.32032src.zip

Imediatamente, edite o arquivo default.build e altere a linha <proper


ty name=skip.vs2005 value=False /> para <property name=skip.vs2005 value=True />. Este passo pula

a parte da compilao especfica para o Visual Studio. Agora, compile o Boo:


$ $ $ $ cd boo /usr/local/bin/nant rebuild /usr/local/bin/nant updatebin /usr/local/bin/nant compiletests && nunitconsole tests/build/*Tests.dll $ /usr/local/bin/nant install $ cd ..

Listagem 4: Uso do booish


01 Welcome to booish, an interpreter for the boo programming language. 02 Running boo 0.9.0.3203 in CLR v2.0.50727.1433. 03 04 Enter boo code in the prompt below (or type /help). 05 >>> print Hello, world 06 Hello, world

Agora j temos uma cpia perfeitamente funcional do compilador Boo. Para experiment-lo, crie e execute um dos programas de exemplo do Boo disponveis em ./examples/.
$ # Compile e execute o cdigo $ booc examples/arrayperformance. boo $ mono arrayperformance.exe 153.613 elapsed. 250.573 elapsed. 216.785 elapsed. $ # Interprete o cdigo $ booi arrayperformance.boo 153.613 elapsed. 250.573 elapsed. 216.785 elapsed.

Listagem 5: Incluso do Boo


01 $ # Os dois passos a seguir so necessrios enquanto os 02 $ # makefiles do Boo usados antes no forem corrigidos. 03 $ sudo mkdir p /usr/local/lib/boo 04 $ sudo cp /usr/local/lib/mono/boo/*.dll /usr/local/lib/boo 05 06 $ wget http://ftp.novell.com/pub/mono/sources/monodevelopboo/ monodevelopboo1.9.2.tar.bz2 07 $ tar xjf monodevelopboo1.9.2.tar.bz2 08 $ ( cd monodevelopboo1.9.2; ./configure; make; sudo make install )

Sucesso! O programa de exemplo arrayperformance.boo copia um gran-

76

http://www.linuxmagazine.com.br

Boo | PROGRAMAO

de vetor e mede o tempo decorrido. Alm disso, podemos testar o Boo diretamente em seu interpretador interativo, o booish (listagem 4). Finalmente estamos prontos para incluir no MonoDevelop o suporte ao Boo (listagem 5). O site da Linux Magazine [9] possui um link para scripts que compilam o software.

Listagem 6: Teste das classes do Boo


01 import System.Windows.Forms from System.Windows.Forms 02 import System.Drawing from System.Drawing 03 04 class PropertyEditor(Form): 05 def constructor([required]obj): 06 grid = PropertyGrid(Dock: DockStyle.Fill, SelectedObject: obj) 07 Controls.Add(grid) 08 09 class Options: 10 [property(Message)] 11 _message as string 12 13 [property(Font)] 14 _font as System.Drawing.Font 15 16 options = Options(Message: Ola!, Font: Font(Lucida Console, 12.0)) 17 editor = PropertyEditor(options) 18 editor.ShowDialog() 19 print(options.Message)

Boo via MonoDevelop

Primeiro inicie a IDE MonoDevelop. A janela principal se assemelha figura 1. Para criar um aplicativo Boo, clique em Start a New Solution | Boo | Empty Project. Em seguida, escolha um nome para o projeto e um local para armazen-lo e clique em OK. Na tela seguinte, marque Unix Integration (integrao com Unix, totalmente opcional) e clique em OK. Agora a lista esquerda deve mostrar uma soluo. Para escolher a soluo, clique com o boto direito do mouse sobre ela e escolha Add | New File.... Em seguida, escolha Empty File, d um nome ao arquivo e depois clique em New. Neste ponto, j podemos escrever cdigo em Boo no painel principal. O editor colore a sintaxe conforme se digita e automaticamente identa com base no contexto. E como estamos usando o Mono, possvel utilizar o framework .NET ou qualquer outro que possua bindings de CLI, como o Gtk#. Agora digite no MonoDevelop o cdigo da listagem 6, salve o arquivo e escolha Run | Run. A listagem 6 produz a sada mostrada na figura 2. Este exemplo demonstra tambm as classes do Boo. A diretiva classPropertyEditor(Form) define a classe PropertyEditor e a deriva a partir da classe Form dos Windows Forms. O mtodo constructor() auto-explicativo. As declaraes [property(Message)] e _message as string criam um mtodo getter (de consulta) e outro setter (de definio) com nomes para a property_message,

que uma string Boo. A declarao [property(Font)] semelhante, embora seja uma fonte.

Economia de letras e sanidade


A pgina do projeto Boo oferece receitas para acesso a bancos de dados, solues grficas e muito mais. Os desenvolvedores do Boo se sociali-

zam em um grupo do Google, um canal de IRC, uma lista e um wiki. Atualmente, a equipe est focada em melhorar o suporte ao Boo no MonoDevelop. Se voc estiver no Windows, Linux ou qualquer outra plataforma com Mono e estiver cansado de escrever chaves e definir tipos, conhea o Boo. Ele oferece o melhor de pelo menos trs mundos. n

Mais informaes
[1] IronPython: http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython [2] IronRuby: http://www.ironruby.net/ [3] Boo: http://boo.codehaus.org/ [4] Mono: http://monoproject.com/ [5] MonoDevelop: http://monodevelop.com/ [6] Boo Primer: http://boo.codehaus.org/Boo+Primer [7] Lista completa de pacotes para o Mono: http://ftp.novell.com/pub/mono/sourcesstable [8] Como resolver bibliotecas perdidas: http://monoproject.com/ DllNotFoundException e http://monoproject.com/Config_DllMap [9] Listagens deste artigo: http://www.lnm.com.br/arquivos/LM/56/boo

Linux Magazine #56 | Julho de 2009

77

SERVIOS

Linux.local
Empresa
IMTECH

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 4082-1300 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
Salvador

Endereo Bahia
Av. Antonio Carlos Magalhaes, 846 Edifcio MaxCenter Sala 337 CEP 41825-000

Telefone
71 4062-8688

Web
www.imtech.com.br

1 2 3 4 5 6
4 4 4 4

Cear
F13 Tecnologia Linux Shopp Megawork Consultoria e Sistemas Spirit Linux Instituto Online Linux Place Microhard TurboSite iSolve Mandriva Conectiva Telway Tecnologia Fuctura Tecnologia Mltipla Tecnologia da Informao NSI Training Open IT Unipi Tecnologias Fortaleza Vila Velha Vitria Vitria Belo Horizonte Belo Horizonte Belo Horizonte Belo Horizonte Curitiba Curitiba Curitiba Recife Rio de Janeiro Rio de Janeiro Rio de Janeiro Campos dos Goytacazes Novo Hamburgo Novo Hamburgo Lajeado Novo Hamburgo Porto Alegre Porto Alegre Rua Padre Valdevino, 526 Centro 85 3252-3836 www.f13.com.br 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.telway.com.br www.fuctura.com.br www.multipla-ti.com.br www.nsi.com.br www.openit.com.br www.unipi.com.br 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Esprito Santo
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 41 3203-0375

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 Rua Francisco Rocha 1830/71 4 4 4 4

Pernambuco
Rua Nicargua, 159 Espinheiro CEP: 52020-190 81 3223-8348 21 2203-2622 21 2220-7055 21 2508-9103 22 2725-1041

Rio de Janeiro
Av. Rio Branco, 37, 14 andar CEP: 20090-003 Rua Arajo Porto Alegre, 71, 4 andar Centro CEP: 20030-012 Rua do Mercado, 34, Sl, 402 Centro CEP: 20010-120 Av. Alberto Torres, 303, 1andar Centro CEP: 28035-581

4 4 4 4

Rio Grande do Sul


4up Solues Corporativas Definitiva Informtica Solis DualCon Datarecover LM2 Consulting Pso. Calado Osvaldo Cruz, 54 sl. 301 CEP: 93510-015 Rua General Osrio, 402 - Hamburgo Velho Av. 7 de Setembro, 184, sala 401 Bairro Moinhos 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 Av. Jlio de Castilhos, 132, 11 andar Centro CEP: 90030-130 Rua dos Andradas, 1234/610 Centro CEP: 90020-008 Rua Santa Rita, 282 CEP: 90220-220 51 3581-4383 51 3594 3140 51 3714-6653 51 3593-5437 51 3018-1200 51 3018-1007 51 3331-1446 51 4003-1001 51 3286-3799 51 3024-3568 www.4up.com.br www.definitiva.com.br 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.propus.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 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Lnx-IT Informao e Tecnologia Porto Alegre Plugin TeHospedo Propus Informtica Ws Host DigiVoice Dextra Sistemas Microcamp PC2 Consultoria em Software Livre Savant Tecnologia Epopia Informtica Redentor Go-Global Porto Alegre Porto Alegre Porto Alegre Arthur Nogueira Barueri Campinas Campinas Carapicuiba Diadema Marlia Osasco Santana de Parnaba

So Paulo
Rua Jerere, 36 Vista Alegre CEP: 13280-000 Al. Juru, 159, Trreo Alphaville CEP: 06455-010 Av. Andrades Neves, 1579 Castelo CEP: 13070-001 Av. Thomaz Alves, 20 Centro CEP: 13010-160 Rua Edeia, 500 - CEP: 06350-080 Av. Senador Vitorino Freire, 465 CEP: 09910-550 Rua Gois, 392 Bairro Cascata CEP: 17509-140 Av. Yojiro Takaoca, 4384, Ed. Shopping Service, Cj. 1013 CEP: 06541-038 19 3846-1137 11 4195-2557 19 3213-2100 19 3236-1915 11 3213-6388 11 5034-4199 14 3413-1137 11 2173-4211 4 4 4

Rua Antnio Paioli, 320 Pq. das Universidades CEP: 13086-045 19 3256-6722

Insigne Free Software do Brasil Campinas

Rua Costante Piovan, 150 Jd. Trs Montanhas CEP: 06263-270 11 2106-9392

78

http://www.linuxmagazine.com.br

Linux.local | SERVIOS

Empresa
AW2NET Async Open Source Delix Internet 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. Kenos Consultoria Konsultex Informatica Linux Komputer Informtica Linux Mall Livraria Tempo Real Locasite Internet Service Microsiga Novatec Editora Ltda. Novell Amrica Latina

Cidade
Santo Andr So Carlos So Jos do Rio Preto 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 So Paulo So Paulo

Endereo So Paulo (continuao)


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 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 Rua Trs Rios, 131, Cj. 61A Bom Retiro CEP: 01123-001 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 Rua Caramuru, 417, Cj. 23 Sade CEP: 04138-001 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 Fiao da Sade, 145, Conj. 66 Sade CEP: 04144-020 Rua Dr. Gentil Leite Martins, 295, 2 andar Jd. Prudncia CEP: 04648-001 Av. Paulista, 2028 CEP: 01310-200 Av: Fagundes Filho, 134, Conj 53 CEP: 04304-000 Av. Dr. Guilherme Dumont Villares, 1410 6 andar, CEP: 05640-003 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 CEP: 02460-000 Rua Funchal, 418 Vila Olmpia Av. Alfredo Egdio de Souza Aranha, 100 Bloco B 5 andar CEP: 04726-170 Av. Rouxinol, 1.041, Cj. 204, 2 andar Moema CEP: 04516-001 Av. Cardoso de Melo, 1450, 6 andar Vila Olmpia CEP: 04548-005 Av. Brigadeiro Faria Lima, 3900, Cj 81 8 andar Itaim Bibi CEP: 04538-132 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. Bonfiglioli CEP: 05299-000 Av. Brig. Faria Lima, 1355, 19 Pinheiros CEP: 01452-919 Rua Alexandre Dumas, 2016 CEP: 04717-004 Rua Marqus de Abrantes, 203 Chcara Tatuap CEP: 03060-020 R. Alexandre Dumas 1658 6, 7 e 8 andares Chcara Santo Antnio 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 Santa Ifignia, 211/213, Box 02 Centro CEP: 01207-001 Rua So Jos, 1126 Centro Caixa Postal 71 CEP: 15.900-000 Rua Jos Bonifcio, 55 Jd. Independncia CEP: 06826-080 Av. Pres. Juscelino Kubitschek, 1.830 Torre 4 Vila Nova Conceio CEP: 04543-900

Telefone
11 4990-0065 16 3376-0125 11 4062-9889 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 11 5071-7988 11 5693-7210 11 5017-0040 11 3707-4100 11 5093-3025 11 5187-2700 11 5502-5000 0800-7074 837 11 5078-6618 11 5545-2600 11 3543-5543 11 40821305 11 3773-9009 11 5034-4191 11 5087-9441 11 3266-2988 11 2121-4555 11 3981-7200 11 6979-0071 11 3345-3900 11 5189-3000 11 5052- 8044 11 2165-6500 11 3529-6000 11 5097-3014 11 5503-2400 11 3898-2121 11 5052-5958 11 3731-8008 11 3039-2000 11 5187-2100 11 6698-5090 11 3305-7000 11 3145-5888 11 5614-1010 11 5503-6510 11 3362-1334 16 3252-7308 11 4203-3937 11 3544-0500

Web
www.aw2net.com.br www.async.com.br www.delixhosting.com.br 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.kenos.com.br www.konsultex.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.redhat.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 www.2mi.com.br www.locaweb.com.br

1 2 3 4 5 6
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

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 2MI Tecnologia e Informao Locaweb 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 Embu So Paulo

Av. Juscelino Kubitschek, 510, 9 andar Itaim Bibi CEP: 04543-000 11 3046-7388

Linux Magazine #56 | Julho de 2009

79

Calendrio de eventos
SERVIOS
Evento
Intensivo LPI + provas

ndice de anunciantes
Informaes
lpi@infomania.com.br

Data
18 de julho

Local
Vitria, ES

Empresa
Locaweb IBM Senac Caixa Econmica Federal Rittal Watchguard

Pg.
84 03 07 09 11 13 27 35 33 41 71 83

Intensivo LPI + provas

1 de agosto

Fortaleza, CE

erlon@f13.com.br

Provas LPI

1 de agosto

So Paulo, SP

exames@impacta.com.br

Futurecom 2009

13 a 16 de outubro

So Paulo, SP

www.futurecom2009.com.br

LPI Uol Host

Latinoware

22 a 24 de outubro

Foz de Iguau, PR

www.latinoware.org

Plus Server Futurecom

PGCON Brasil 2009

24 e 25 de outubro

Campinas, SP

www.postgresql.org.br/ eventos/pgconbr

Vectory Bull

Nerdson Os quadrinhos mensais da Linux Magazine

80

http://www.linuxmagazine.com.br

Livro C

e r t i fi c

edio I-1 3 LP a o
Este livro recomendado por

Li n u x Pro
COLEO

Certicao

LPI-1
10 1 10 2
Luciano Antonio Siqu eira
Curso completo para LPIC-1
ampliada. 3 edio revisada e os tpicos. Exerccios em todos a nova Livro preparado para a partir de 2009. prova vlida

A Linux Magazine est lanando a 3 edio revisada e ampliada do livro que te prepara para a Certificao LPIC-1 com as seguintes novidades: Exerccios em todos os tpicos Todo contedo ampliado para a nova verso da prova, atualizada em abril/2009

Certicao LPI-1
Luciano Antonio Siq ueira

Garanta j o seu pelo site da Linux Magazine www.linuxmagazine.com.br

Na Linux Magazine #57


PREVIEW
DESTAQUE PROGRAMAO

Na nuvem, com segurana

Segurana fundamental para todos os usurios, em todos os ambientes. Porm, na nuvem da Internet que as ameaas tm maior impacto negativo: os usurios precisam conseguir acessar remotamente seus servidores, mas preciso impedir que invases aconteam, por mais cuidadosas que sejam. Na prxima edio da Linux Magazine vamos mostrar como manter a segurana de seus servidores sem impedir que eles sejam usados da forma como foram projetados: para servir aos clientes. Vamos abordar as medidas para tornar mais seguros seus servidores virtuais, apresentaremos o sub-sistema de segurana SMACK, j includo no kernel Linux h algumas verses, e tambm vamos demonstrar como trancafiar cada acesso SSH ao servidor em uma jaula impenetrvel. n

Strace

O Strace um programa pequeno, mas muito til instalado por padro na maioria dos sistemas Linux que permite o acompanhamento das chamadas de sistema usadas por um aplicativo. No se deixe enganar pelo nome: o Strace no oferece um trace do stack ele apenas relata as chamadas de sistema. Se voc est com problemas com o aplicativo de sua autoria ou qualquer aplicativo que permita acesso ao cdigo-fonte , possvel usar o Strace para determinar quando um programa est travando ou que problemas ele vem tendo. n

Na EasyLinux #15
A prxima edio da Easy Linux vai explorar o Ubuntu 9.04. Vamos mostrar o que h de novo nessa primeira verso de 2009, quais as melhorias, o que a Canonical aprontou e como anda a comunidade em torno da distribuio Linux mais amigvel da atualidade. n

Ubuntu novo!

Os monitores LCD de 19 polegadas e maiores j tm preos bem melhores que h um ano. Ser que j chegou o momento de voc comprar aquele monitor cinematogrfico? Quais so as vantagens e desvantagens do LCD em relao aos antigos monitores de tubo? At que ponto 21 polegadas valem mais que 19? Na Easy Linux 15, vamos explicar a tecnologia por trs da parte mais visvel literalmente do computador. n

Monitores gigantes

82

http://www.linuxmagazine.com.br

Potrebbero piacerti anche