Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
QUALIDADE DE SOFTWARE p.26 Maddog alerta para a falta de bons engenheiros de software
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
p.66
: 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
LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminrios Linux Park de 2008
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?
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
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
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
EDITORIAL
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
COLUNAS
Klaus Knopper Charly Khnast Zack Brown Augusto Campos Alexandre Borges Kurt Seifried Pablo Hess 08 10 12 14 15 16 18
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
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
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.
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
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.
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.
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
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.
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.
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.
17
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
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.
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
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
21
CORPORATE
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
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
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
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
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
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
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-
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
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
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.
27
CORPORATE
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
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.
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
29
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)
;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
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.
Mapas
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.
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
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
Gabarito
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
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.
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
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
37
CAPA | GLPI
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
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.
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
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
Promoo e Organizao:
www.futurecom.com.br
41
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
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-
43
CAPA | Samba e AD
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.
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
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
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
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.
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
45
CAPA | Samba e AD
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
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.
47
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.
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.
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
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.
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
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.
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.
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
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
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
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
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
55
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
Via Gnome
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.
Outra maneira simples de configurar impressoras iniciando, pela linha de comando, o Solaris Print Manager:
# printmgr &
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
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
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.
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
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:
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).
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
Para se desconectar, necessrio utilizar o comando ~. (teclas [~] e [.] pressionadas simultaneamente).
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,
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)
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
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.
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
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
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;
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.
63
REDES | WebHTB
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-
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.
65
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
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.
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
PROGRAMAO
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
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
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:
73
PROGRAMAO | Boo
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
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
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-
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
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
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.
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.
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.
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
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
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
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
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
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
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
Latinoware
22 a 24 de outubro
Foz de Iguau, PR
www.latinoware.org
24 e 25 de outubro
Campinas, SP
www.postgresql.org.br/ eventos/pgconbr
Vectory Bull
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
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