12/2009
MICROSOFT VIOLA A GPL p.24
SERVIÇOS EM SL p.26
Empresa de Steve Ballmer admite e corrige o erro
MONETIZAÇÃO p.28
Software Livre e proprietário não são diferentes quando se trata de ganhar dinheiro
Cezar Taurion explica modelos de negócio Open Source
los ÃO p.28 MONETIZAÇon explica mode são o não iro EM SL p.26 SERVIÇOS Livre e proprietáride ganhar dinhe
Linux Magazine
A GPL p.24 T VIOLA er MICROSOFde Steve Ballm
# 61 Dezembro 2009
Tauri Source Cezar cio Open de negó
Software quando se trata diferentes
Empresa e o erro e corrig admite
AÇÃO CERTIFIC NAL IO PROFISS EMPREGO
MELHOR
E SALÁRIO
MAIOR.
QUEM NÃO
QUER?
p.30
tos p.34 de proje p.37 ciamento em Linux » PMI, geren ficações LPI, certi » RHCE, rnança p.40 CobiT, gove » ITIL e p.44 segurança » CISSP,
p.56
NX tudo o seu! íssimo tem REDES: NGI dor rapid – inclusive para
DIUS p.62redes : FREERA só para X não é SEGURANÇA impede IEEE 802.1 ção ADIUS, você . Autentica Com o FreeRautorizado à rede wireless. não acesso qualquer
TA EDIÇÃO: p.52 BÉM NES RAID p.48 VEJA TAMris, parte 8: LVM emáquinas que enxergam
A REVISTA DO PROFISSIONAL DE TI
p.68 » OpenSola putacional e as tição com SSI Com sem repe m p.72 » Visão ção web ilinguage dor mult » Programa o interpreta » Parrot, M.BR
CEZAR TAURION p.34 O Código Aberto como incentivo à inovação
#44 07/08
00044
R$ 13,90 € 7,50
A REVISTA DO PROFISSIONAL DE TI
PMI
GOVERNANÇA COM
RHCE
SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRÁTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA ÁREA p.36
» O que dizem os profissionais certificados p.24 » Cobit, CMMI, ITIL. Quais as melhores práticas? p.36 » ITIL na prática p.39
» Novidades do ITIL v3. p.44
LPI
SEGURANÇA: DNSSEC p.69
VEJA TAMBÉM NESTA EDIÇÃO:
Com o DNSSEC, a resolução de nomes fica protegida de ataques. Mas seu preço vale a pena?
» Relatórios do Squid com o SARG p.60
REDES: IPV6 p.64
» Becape de bancos de dados com a Libferris p.46
Conheça as vantagens da nova versão do Internet Protocol, e veja por que é difícil adotá-la
» Java, Ruby e Rails: conheça o JRuby on Rails p.74 » Benchmarks do GCC 4.3? p.58
» LPI nível 2: Servidores NIS e DHCP p.52
ITIL
WWW.LINUXMAGAZINE.COM.BR
EMPREGO MELHOR E SALÁRIO MAIOR. QUEM NÃO QUER? p.30
COBIT CISSP
» PMI, gerenciamento de projetos p.34 » RHCE, LPI, certificações em Linux p.37 » ITIL e CobiT, governança p.40 » CISSP, segurança p.44
NGINX FREERADIUS
REDES: NGINX p.56
Esse servidor rapidíssimo tem tudo para acelerar qualquer website – inclusive o seu!
SSI OPENSOLARIS
SEGURANÇA: FREERADIUS p.62
Autenticação IEEE 802.1X não é só para redes wireless. Com o FreeRADIUS, você impede qualquer acesso não autorizado à rede.
PARROT VISÃO COMPUTACIONAL
VEJA TAMBÉM NESTA EDIÇÃO:
» OpenSolaris, parte 8: LVM e RAID p.48 » Visão Computacional e as máquinas que enxergam p.52 » Programação web sem repetição com SSI p.68 » Parrot, o interpretador multilinguagem p.72
WWW.LINUXMAGAZINE.COM.BR
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
venda proibida
LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminários Linux Park de 2008
9 771806 942009
CERTIFICAÇÃO PROFISSIONAL
CERTIFICAÇÃO PROFISSIONAL CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco
Assinante
AZINE.CO
NUXMAG
WWW.LI
exemplar de
# 61
Esse servi website qualquer acelerar
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Marcas e sucesso
Expediente editorial Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br Editor Pablo Hess phess@linuxmagazine.com.br
Prezados leitores,
EDITORIAL
Revisora Aileen Otomi Nakamura anakamura@linuxmagazine.com.br Editora de Arte Paola Viveiros pviveiros@linuxmagazine.com.br Coordenador de Comunicação Igor Daurício idauricio@linuxmagazine.com.br Tradutores Diana Ricci Aranha e Pablo Hess Colaboradores Alessandro de Oliveira Faria, Alexandre Borges, Anderson Ramos, Bruno Gomes Pessanha, Bruno Guerreiro Diniz , Carlos Bokor, Flávia Jobstraibizer, Gustavo Thum Direito e Marco Aurélio Filippetti. Centros de Competência Centro de Competência em Software: Oliver Frommel: ofrommel@linuxnewmedia.de Kristian Kißling: kkissling@linuxnewmedia.de Peter Kreussel: pkreussel@linuxnewmedia.de Marcel Hilzinger: hilzinger@linuxnewmedia.de Centro de Competência em Redes e Segurança: Jens-Christoph B.: jbrendel@linuxnewmedia.de Hans-Georg Eßer: hgesser@linuxnewmedia.de Thomas Leichtenstern: tleichtenstern@linuxnewmedia.de Markus Feilner: mfeilner@linuxnewmedia.de Nils Magnus: nmagnus@linuxnewmedia.de Anúncios: 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 Suíça) anzeigen@linuxnewmedia.de Penny Wilby (Reino Unido e Irlanda) pwilby@linux-magazine.com Amy Phalen (Estados Unidos) aphalen@linux-magazine.com Hubert Wiest (Outros países) hwiest@linuxnewmedia.de Gerente de Circulação 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 – Austrália www.linux-magazine.ca – Canadá www.linux-magazine.es – Espanha www.linux-magazine.pl – Polônia www.linux-magazine.co.uk – Reino Unido Apesar de todos os cuidados possíveis terem sido tomados durante a produção desta revista, a editora não é responsável por eventuais imprecisões nela contidas ou por consequências que advenham de seu uso. A utilização de qualquer material da revista ocorre por conta e risco do leitor. Nenhum material pode ser reproduzido em qualquer meio, em parte ou no todo, sem permissão expressa da editora. Assume-se que qualquer correspondência recebida, tal como cartas, emails, faxes, fotografias, artigos e desenhos, sejam fornecidos para publicação ou licenciamento a terceiros de forma mundial não-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 – Saúde 04304-000 – São Paulo – SP – Brasil Tel.: +55 (0)11 4082 1300 – Fax: +55 (0)11 4082 1302
Estamos vivendo em uma época de marcas. Aos olhos dos consumidores, certos rótulos e logos têm maior valor que diversos outros aspectos dos produtos. Quando fazemos compras no mercado, muitas vezes já sabemos o que esperar de vários produtos, pois conhecemos suas marcas e, independentemente da imagem apresentada na embalagem ou do preço do produto, atribuímos a eles um determinado grau de qualidade. Isso ocorre com os mais diversos produtos, desde refrigerantes até softwares, passando por eletrodomésticos, automóveis e ração para animais de estimação. Na realidade, atualmente esse “julgamento” pela marca vai além: um diploma universitário de instituições de renome internacional dos EUA e Europa, por exemplo, confere a seu portador maior prestígio – e exigência, por conseguinte – do que um equivalente nacional. Da mesma forma, ex-alunos de universidades públicas ainda são vistos pelos empregadores, ocasionalmente, com outros olhos em comparação aos de faculdades privadas. No campo de TI, onde constantemente surgem novas áreas de atuação profissional, é impossível esperar que um diploma universitário comprove conhecimento e competência prática em determinadas áreas. É aí que entram as certificações profissionais. Para atestar sua competência em áreas importantes à sua atuação profissional, seu currículo pode ser incrivelmente claro. Porém, com certificações profissionais, existe uma marca, seja de um fabricante ou de uma instituição com esse único fim, que comprova seus conhecimentos, sua experiência e seu grau de excelência em diversos aspectos da sua atuação profissional. É evidente que um profissional sem certificação pode ser tão bom quanto alguém certificado, ou até melhor – da mesma forma como um sorvete de uma marca desconhecida, distribuída a somente um supermercado, pode ser melhor que as marcas já estabelecidas. Porém, é preciso grande esforço para convencer o consumidor de que o sorvete – ou o seu currículo, no caso – de fato tem essa qualidade. A boa notícia é que, diferentemente de um produto, você pode se associar a várias “marcas” – LPI, RHCE, ITIL, CobiT, PMP, CISSP – de forma a atrair os olhos dos “consumidores” de todas elas e, com isso, o sucesso. Muito sucesso! n
Direitos Autorais e Marcas Registradas © 2004 - 2009: Linux New Media do Brasil Editora Ltda. Impressão e Acabamento: RR Donnelley Distribuída em todo o país pela Dinap S.A., Distribuidora Nacional de Publicações, São Paulo. Atendimento Assinante www.linuxnewmedia.com.br/atendimento São 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
.
Pablo Hess Editor
4
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Lidere sua carreira ao sucesso. Certifique-se.
O (ISC)2® certifica líderes do mundo todo. Um instituto sem fins lucrativos e ganhador de prêmios de qualidade, que está presente em 135 países e conta com mais de 60.000 profissionais certificados no mundo. Tudo isso é fruto de 20 anos de dedicação e investimentos na área de Segurança da Informação, provendo certificações rigorosas e atualizadas. Certifique-se e aprimore sua carreira através de uma das melhores experiências educacionais disponíveis no mercado. Visite www.isc2.org/brazil08 ou escreva para contato@isc2.org para mais informações.
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
ÍNDICE
CAPA Profissional certificado
30
Por que e como se certificar.
Gerenciamento de projetos
34
A carreira de gerente de projetos em TI está em crescimento. Aproveite!
Linux certificado
37
Certificações atestam o conhecimento do profissional. Como provar que você sabe o que faz com o Linux?
Governança certificada
40
Todos os profissionais de TI precisam conhecer as boas práticas e as orientações internacionais. É isso que oferecem as certificações CobiT e ITIL.
Certificação e segurança
44
O que você deve esperar de uma certificação, especialmente em segurança da informação?
6
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Linux Magazine 61 | ÍNDICE
COLUNAS
REDES 10
Web mais rápida
Charly Kühnast
12
Zack Brown
14
O rápido e prático servidor web Nginx é fácil de configurar e estender.
Alexandre Borges
16
Kurt Seifried
18
Klaus Knopper
56
NOTÍCIAS Geral ➧ Temporada de novas versões de distribuições
22
➧ Licenciamento do JDK 7 criticado
CORPORATE
SEGURANÇA
Notícias ➧ MIcrosoft infringe GPL, admite e corrige
24
Porteiro competente
62
V ocê achava que o padrão IEEE 802.1X era apenas para redes sem fio? Veja como configurar um sistema de controle de acesso de rede com ele e um servidor FreeRADIUS.
➧ Celulares: Windows perde, mas Linux não ganha ➧ Petrobras adquire supercomputador Bull movido a GPU Coluna: Jon “maddog” Hall
26
Coluna: Cezar Taurion
28
TUTORIAL OpenSolaris, parte 8
48
C onheça o Solaris Volume Manager e veja como usá-lo para criar e gerenciar volumes RAID 0 e 1 com múltiplos volumes.
PROGRAMAÇÃO Ajuda inclusiva
68
O s Server Side Includes (SSI) poupam tempo e facilitam a manutenção do seu website. Louro quer programar
72
O Parrot é uma ferramenta para desenvolvimento e execução de novas linguagens de programação, que já conta com Perl 6 e muito provavelmente com a sua linguagem preferida.
Máquinas que enxergam
52
U se a visão computacional com suas diversas técnicas para melhorar a acessibilidade dos sistemas.
SERVIÇOS Editorial
04
Emails
08
Linux.local
78
Eventos
80
Preview
82
7
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
u c.h ww .s x –w ro nja
gje
ne
Emails para o editor
CARTAS
sa
Permissão de Escrita Squid e Iptables
Gostaria de tirar uma dúvida relacionada à configuração de FTP passivo nas regras do Iptables. Como faço para configurá-lo e como devo configurar a opção de compartilhamento no Iptables: Prerouter ou Pos? Outra dúvida é como faço para configurar a opção de fazer upload de arquivos para os webmails? Toda vez que vou anexar um arquivo acima de 1 MB, aproximadamente, o arquivo não anexa e apresenta erros na tentativa de anexar. Caso eu pare o Squid e deixe apenas as opções de Firewall do Iptables, ele consegue anexar normalmente os arquivos no webmail. n Fábio T. de Oliveira
RADIUS
Pessoal, gostaria de sugerir uma matéria sobre configuração do FreeRADIUS e ferramentas complementares como Daloradius e as possibilidades de uso (Captive Portal/HotSpot). Encontrei bastante informação sobre o assunto, mas nada como as matérias da Linux Magazine que abordam sempre todos os lados do uso das ferramentas. Rodrigo Buch Garcia
Resposta
Rodrigo, espero que você aprecie o artigo sobre autenticação por IEEE802.1X com FreeRADIUS, publicado nesta edição. Com relação aos demais usos do FreeRADIUS, aproveitamos para convidá-lo (e também à nossa grande comunidade de leitores) para estender o conteúdo deste artigo. Obrigado pela sugestão! n
Bacula
Ao implementar uma solução de backup utilizando o Bacula, deparei-me com uma informação divergente com o artigo da última edição da Linux Magazine. Na seção “Primeiro backup”, está escrito que para ler as mensagens devemos executar o comando auto-display on, porém, na versão que estou utilizando (3.0.3), o comando é autodisplay on. João Oliveira
Resposta
Caro João, o termo “autodisplay” encontra-se numa quebra de linha no artigo. Embora tentemos evitar ao máximo quebrar termos técnicos, como comandos e nomes de variáveis, eventualmente não conseguimos fazê-lo. Ao quebrar a linha, temos por regra inserir um hífen indicador de separação, como no texto comum. Usamos o hífen para diferenciar quebras de linha de termos separados (“auto display”, por exemplo). n
8 © Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Escreva para nós!
✉
Sempre queremos sua opinião sobre a Linux Magazine e nossos artigos. Envie seus emails para cartas@linuxmagazine.com.br e compartilhe suas dúvidas, opiniões, sugestões e críticas. Infelizmente, devido ao volume de emails, não podemos garantir que seu email seja publicado, mas é certo que ele será lido e analisado.
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Coluna do Klaus
COLUNA
Pergunte ao Klaus! O professor Klaus responde as mais diversas dúvidas dos leitores.
Instalar SO em um netbook
Comprei um netbook Eee PC 1000H há algumas semanas e decidi instalar nele o OpenSUSE 11, de preferência em dual boot com o Windows XP que veio instalado. O disco de 160 GB tem uma segunda partição formatada em NTFS com aproximadamente 60 GB. Tentei instalar o OpenSUSE 11.1 por um pen drive após configurar a BIOS para isso. O pen drive tem uma imagem ISO dentro, que é mostrado na BIOS, mas o computador continua iniciando direto no Windows. Também já tentei usar um leitor de DVD externo, novamente pedindo à BIOS para iniciar pelo DVD. Porém, embora a BIOS pareça detectar o leitor, a máquina ainda inicia pelo XP. Também copiei a imagem ISO para a partição livre, mas é claro que isso não funcionou. Tenho que admitir que as informações que encontrei em vários blogs estão bem além da minha compreensão. Obrigado por qualquer ajuda!
Resposta
não retorne o computador à sequência de inicialização padrão. Alguns discos Flash USB mais antigos (anteriores a 2009) simplesmente não iniciam no Eee PC, segundo verifiquei, mas já consegui testar vários leitores DVD USB, assim como pen drives recentes de 4 e 8 GB. Você disse que a imagem ISO está no pen drive como um arquivo, mas infelizmente isso não funciona, pois a BIOS do seu computador não tem ideia do que fazer com um arquivo ISO. Para criar um pen drive inicializável a partir de um DVD, siga as seguintes etapas (neste exemplo, o DVD está montado em /media/dvd e o pen drive em /media/ sdc1/). Se o DVD utilizar o Isolinux como carregador de inicialização, ele poderá ser facilmente substituído pelo Syslinux. Com o pen drive montado, comece copiando todo o conteúdo do DVD para /media/sdc1/. No caso de você ter somente um arquivo ISO do DVD, monte-o com: sudo mount -o loop arquivo.iso /media/dvd
Felizmente, eu também tenho um Eee PC (um modelo mais antigo que o seu) e posso responder sua pergunta. Apesar de ser possível definir prioridades de inicialização na BIOS (o que não funcionou no seu caso), a forma mais fácil de iniciar o computador a partir de diferentes mídias é pressionar a tecla [Esc] durante a inicialização da BIOS (ou seja, assim que o logo do Eee PC aparecer). Em outros notebooks, normalmente a tecla equivalente é [F8] ou [F12], que exibe o menu de seleção de inicialização, então o [Esc] pode parecer um pouco estranho. De qualquer forma, se o dispositivo aparece na configuração da BIOS, também deve poder ser selecionado nesse menu inicial. O Eee PC inicia corretamente a partir do DVD, assim como por discos Flash USB, contanto que o dispositivo de inicialização realmente seja inicializável (isto é, possua assinaturas de inicialização válidas) e
Em seguida, renomeie o diretório boot/isolinux do pen drive para boot/syslinux. O terceiro passo é renomear o arquivo boot/syslinux/ isolinux.cfg do pen drive para boot/syslinux/syslinux.cfg. Depois, desmonte o pen drive e torne-o inicializável. Lembre-se de que o pen drive inteiro se chama /dev/sdc e de que /dev/sdc1 é o nome da primeira partição dele: sfdisk -A1 /dev/sdc syslinux /dev/sdc1 ms-sys -s /dev/sdc
Esses comandos criam uma MBR e um registro de inicialização Syslinux na partição, além de marcar a primeira partição como inicializável. Feito isso, já deve ser possível iniciar pelo pen drive como se ele fosse um CD-ROM. n
10
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Coluna do Charly
COLUNA
IPv6 sobre IPv4 A mudança do IPv4 para o IPv6 deve ser algo gradual e não abrupto. Mas bastam dois minutos de configuração para ver seus primeiros pacotes IPv6 passando por um túnel Miredo.
O
s fabricantes de componentes de rede continuam espalhando más notícias: os endereços IP estão se esgotando. Correm histórias de grandes provedores de acesso comprando os menores para se apoderar de seus endereços IPv4. Se você não pretende fazer parte da fome digital, precisa mudar rapidamente, diz a indústria que oferece switches e gateways IPv6. Mas o fato é que poucos provedores possuem IPv6 nativo. Na verdade, no contexto das discussões do IPv6, a palavra “mudança” não parece muito apropriada. “Co-locação” parece melhor, mas nos remete às lições de gramática da escola. “Dual-tracking” talvez seja a melhor opção, pois uma coexistência pacífica do IPv4 com o IPv6 provavelmente se tornará a regra, e não a exceção, em um futuro próximo. Se você usa um provedor com IPv4 e quer adicionar o IPv6 à sua rede doméstica, pode testar várias soluções de tunelamento. A configuração, entretanto, exige habilidades de administrador de sistemas, o que significa que seus amigos e familiares certamente chegarão alguma hora para pedir sua ajuda. O Teredo é uma ferramenta que resolve o problema. A tecnologia, desenvolvida pela Microsoft, estabelece um túnel IPv6 por trás de um roteador NAT e distribui automaticamente os endereços solicitados. O Teredo encapsula a carga IPv6 em datagramas UDP v4. A RFC
Figura 1 O túnel oferece uma visão do futuro IPv6. Este exemplo usa o prefixo 2001::/32.
4380 do Teredo diz que isso é apenas uma solução momentânea – que alguns consideram uma “gambiarra feia”.
Não parece um problema
Independentemente da sua opinião, o Teredo não é uma má escolha nos primeiros passos rumo ao IPv6. Sua configuração é simples e há clientes disponíveis em qualquer sistema operacional recente. Por exemplo, o cliente Miredo para GNU/Linux está incluído em praticamente todas as distribuições mais conhecidas. Na minha máquina Ubuntu, bastou digitar: apt‑get install miredo
para instalar e iniciar o serviço. Em menos de um minuto, eu tinha uma conexão IPv6 com o prefixo de 2001::/32, como definido pela RFC (figura 1), mesmo com meu cliente residindo atrás de nada menos que dois gateways NAT. O Miredo não precisa de um kernel modificado; em vez disso, ele roda completamente no espaço do usuário. É preciso executá-lo como root para definir os parâmetros de interface necessários, mas ele muda seus privilégios para nobody depois que começa a funcionar. A opção -u usuário permite alterar esse usuário. Algumas distribuições criam a conta miredo durante a instalação. Por último, uma palavrinha sobre segurança: enquanto os roteadores NAT – que quase todos os usuários DSL no mundo IPv4 possuem – oferecem algum tipo de segurança contra acessos indesejados, o IPv6 acaba com essas barreiras. Se você está preocupado com o ip6tables, ao menos ative todos os serviços para localhost (::1). n Charly Kühnast é administrador de sistemas Unix no data center de Moers, Alemanha. Suas tarefas incluem segurança e disponibilidade de firewalls e DMZ. Ele divide seu tempo livre nos setores quente, molhado e oriental, nos quais se diverte com culinária, aquários de água doce e aprendizado de japonês, respectivamente.
12
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Coluna do Zack
COLUNA
Crônicas do kernel Contos e histórias do desenvolvimento do Linux.
VMware descarta paravirtualização
A VMware decidiu interromper o suporte à VMI, sua técnica de paravirtualização, pois os recursos de virtualização por hardware já estão vindo por padrão em todos os novos sistemas. O anúncio feito por Alok Kataria, da VMware, mostrou resultados de benchmarks que mostravam que a virtualização por hardware é melhor que sua implementação da VMI. O motivo para o anúncio foi pedir conselhos sobre a melhor maneira de retirar o código VMI, que já havia sido aceito pelo kernel. Chris Wright explicou que, normalmente, há uma fase pré-remoção (deprecation phase foi o termo usado) na qual o recurso é listado no arquivo Documentation/feature-removal-schedule.txt, gerando alertas para informar ao usuário que o recurso será descartado. Porém, Jeremy Fitzhardinge mostrou que o VMI não era exatamente um recurso, mas uma otimização, e que, além da pequena diferença na velocidade, o usuário sequer sentiria sua falta. Chris concordou e não achou essencial seguir os procedimentos normais de defasagem do código. No entanto, assim que Alok postou o patch com a alteração, Ingo Molnár disse que a remoção do código deveria levar mais tempo. Ele mostrou que a maioria dos usuários do VMware ainda não estavam se beneficiando das melhorias do hardware que tornavam o VMI obsoleto. Alok concordou e postou patches de acordo com o procedimento normal de defasagem. Porém, logo em seguida, H. Peter Anvin disse que era cedo demais para se considerar isso. O patch de Alok era para a versão 2.6.32, mas Peter achou que seria melhor esperar até o fim de 2010 ou (segundo suas estimativas) aguardar o kernel 2.6.37. Aos poucos, desenvolveu-se um plano de defasagem com uma abordagem gradual que manteria o VMI no kernel até os usuários migrarem seu hardware para sistemas com recursos de virtualização.
A VMware agiu corretamente nesse processo de defasagem de código do kernel. Normalmente, o desenvolvimento de código aberto é definido pela concordância de seus vários participantes sobre o que deve ser feito.
CPUs ociosas economizam
Arun B. Bharadwaj está desenvolvendo o CPUidle, projeto cujo objetivo é garantir que CPUs ociosas em sistemas PowerPC tenham o melhor aproveitamento de energia de modo simples e eficiente. Por exemplo, não é sempre óbvio que uma CPU ociosa permanecerá assim por tempo suficiente para termos certeza de que ela pode entrar num modo de baixo consumo de energia – do qual leva-se mais tempo para sair quando necessário. O CPUidle utiliza várias heurísticas para tomar essa decisão. No momento, o programa só é capaz de escolher entre dois estados de espera – soneca ou cochilo completo. Não é brincadeira, os nomes usados no programa são snooze (soneca, em inglês) e nap (cochilo). O CPUidle é o tipo de projeto que começa relativamente simples e, então, gradativamente, introduz estados de espera adicionais para acomodar processadores mais novos, com heurísticas mais complexas para escolher entre eles. Normalmente espera-se que uma situação dessas se torne mais sofisticada e esotérica com o tempo, até aparecer um maluco como Alan Cox para alterar o software, simplificá-lo e melhorá-lo. Ou, então, vários malucos poderiam competir por melhorias no projeto, o que levaria a desacordos e discussões, até que Linus Torvalds fizesse tudo do seu jeito e a disputa sossegasse novamente. O projeto CPUidle me parece ser deste tipo. n A lista de discussão Linux-kernel é o núcleo 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.
14
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Coluna do Alexandre
COLUNA
Desduplicação A desduplicação é a novidade da vez nos sistemas de arquivos. E já está disponível no ZFS.
D
e tempos em tempos, o mercado apresenta uma evolução de alguma tecnologia já existente, modificando apenas o nome dado a ela. Um dos termos da moda agora é “desduplicação” (deduplication). Basicamente, o objetivo da desduplicação, que pode ocorrer na esfera dos diretórios, blocos ou ainda bytes, é corrigir o fato de um mesmo dado estar armazenado em diversos locais do sistema de arquivos. Por exemplo, caso existam quatro arquivos idênticos em um dado disco ou dispositivo de armazenamento, podemos manter apenas o primeiro no disco, ocupando espaço, enquanto que os demais podem ser apagados e transformados em ponteiros para o primeiro. A técnica é bastante inteligente, pois utiliza algoritmos de verificação de integridade (MD5, SHA etc.) de forma a produzir hashes dos dados analisados, ponto a partir do qual é feita uma comparação dos resultados para decidir se a desduplicação será efetuada ou não. Quais as razões para utilizar essa técnica de desduplicação de dados? Diversas possíveis: economia de espaço, de dinheiro e de energia, minimização do tempo de execução de backups etc. Backups? Sim, neste caso ainda é possível dividir a desduplicação em ocorrências distintas: aquela na qual os dados são desduplicados antes de ser enviados através da rede para o backup, e outra na qual a aplicação da desduplicação é feita após o envio dos dados para backup via rede. Como sempre ocorre em tecnologia, essa técnica apresenta vantagens e desvantagens. No primeiro caso, com a desduplicação na origem, economiza-se banda de rede, já que a informação é desduplicada pelo software de backup antes de ser enviada. Entretanto, é necessário utilizar um software de backup que seja capaz de fazer a desduplicação. No caso de desduplicação baseada no destino, os dados duplicados são transmitidos pela rede (o que desperdiça banda), atravessam um software de backup (que não precisa ser especializado)
e são encaminhados para um software de VTL (Virtual Tape Library), que realiza a desduplicação. A desduplicação pode ser síncrona (feita na hora em que aparecem os dados redundantes), exigindo mais poder de processamento da CPU, ou assíncrona (realizada no momento mais oportuno). No mundo Open Source, os dois sistemas de arquivos nos quais tenho visto suporte à desduplicação são o ZFS (presente no OpenSolaris) e o LessFS. No caso do ZFS, a verificação de dados repetidos é empregada de forma síncrona, usando o algoritmo de hash SHA256 no nível dos blocos. Para usar a desduplicação no ZFS: # zfs set dedup=on mypool
Neste caso, por herança, todos os sistemas de arquivos criados dentro do pool mypool serão desduplicados. Caso não seja desejável habilitar a desduplicação para todos os sistemas, mas apenas para um especifico, é possível fazer: # zfs set dedup=on mypool/fs1
Caso o leitor deseje, é possível trocar o algoritmo de hash e ainda verificar se os dados avaliados estão realmente duplicados: # zfs set dedup=fletcher4,verify mypool/fs1
Acredito que a tendência, a partir de agora, seja incluir a técnica de desduplicação em outros sistemas de arquivos de código aberto. Em breve, ela se tornará uma característica de uso diário em todos os data centers. n Alexandre Borges é Especialista Sênior em Solaris, OpenSolaris e Linux. Trabalha com desenvolvimento, segurança, administração e performance desses sistemas operacionais, atuando como instrutor e consultor. É pesquisador de novas tecnologias e assuntos relacionados ao kernel.
16
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Coluna do Kurt
COLUNA
Wireshark Use ferramentas de captura e análise do tráfego de tráfego para montar uma verdadeira caixa-preta da rede.
O
Wireshark [1], sniffer (capturador de pacotes) antes conhecido como Ethereal, é indispensável para o administrador de sistemas. Se alguma vez você já teve que solucionar problemas em uma rede ou monitorar uma transação com o servidor, esta é sua ferramenta. Como a maioria dos programas de captura de dados de rede para Linux, o Wireshark se utiliza da Libpcap, que oferece uma interface independente para capturar pacotes; portanto, não há necessidade de escrever rotinas customizadas para cada sniffer (tcpdump, Snort, Wireshark etc.). Se seu sistema operacional (Linux, *BSD, HP-UX, Solaris, Windows etc.) e seu software suportam a Libpcap, você poderá monitorar pacotes à vontade.
Instalação
A Libpcap está disponível em quase todos os sistemas operacionais, e o Wireshark, na maioria das vezes, também está incluído (pelo menos no Linux e nos *BSD). O programa, às vezes, vem em dois pacotes separados: um com os utilitários de back-end, como o tshark e o mergecap, e outro com a interface gráfica. No Fedora e na maioria dos sistemas, basta usar o gerenciador de pacotes: yum install Libpcap yum install wireshark‑gnome
No Debian também é fácil: apt-get install libpcap0 apt-get install wireshark
Um problema de usar a versão do Wireshark fornecida pela distribuição é que a maioria dos distribuidores fornece versões muito velhas (o Fedora 11, por exemplo, vem com a versão 1.1.3). Porém, a série 1.2 (e a 1.3.0, que já deve ter sido lançada quando você ler esta coluna) possui vários recursos novos, como suporte a protocolos,
erros corrigidos e integração com o GeoIP (mais sobre isso em breve). Para instalar o Wireshark, primeiro escolha a versão que você prefere baixar: a última estável ou, caso você tenha mais coragem (e paciência), um dos builds automatizados do SVN. Depois de descompactar, a instalação é bem simples: ./configure make sudo make install
Para compilar o Wireshark, será preciso fazer referência a algumas dependências. No mínimo, você precisará da Libpcap; sugiro também instalar os pacotes GnuTLS, PCRE e GeoIP se quiser usar recursos avançados.
Execução do Wireshark
Infelizmente, para executar o Wireshark e capturar dados, é preciso executá-lo como usuário root. O Wireshark já teve problemas de segurança no passado (falarei sobre isso mais adiante), permitindo que ataques externos executassem códigos enviando dados que eram processados pelo programa. Há duas maneiras simples de evitar que o Wireshark seja executado como root. A primeira é usar um pacote de captura de programas, como o dumpcap ou o tcpdump e, depois, examinar os arquivos de captura com o Wireshark executado por um usuário comum. O segundo método é executar o Wireshark como root, mas em um ambiente controlado. Quando eu executei o Wireshark em uma máquina virtual VMware, supus que ele veria apenas os dados de rede dessa máquina específica. Não sei bem por que pensei isso (esperança, acho). Talvez porque a Libpcap acessa o kernel e a placa de rede em um nível baixo, o programa verá todo o tráfego de rede que passa pela interface física. Por isso, o Wireshark pode rodar em uma máquina virtual e
18
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Insegurança | COLUNA
mesmo assim monitorar todo o tráfego de rede. O lado ruim disso é que qualquer usuário mal intencionado com acesso de root à máquina virtual (ao menos no servidor VMware) poderá enxergar todo o tráfego da rede da máquina física ou virtual usando essa interface.
Filtros de captura
Capturar tráfego de rede é bem parecido com beber água diretamente de um hidrante. A boa notícia é que quase todos os programas que usam a Libpcap também aceitam os comandos de filtragem da Libpcap (e, às vezes, como no Wireshark, também têm seus próprios filtros). A má notícia é que a configuração do filtro da Libpcap é relativamente limitada, contendo basicamente endereços de rede e portas (por ser baseada em protocolo). Pelo menos você pode usá-lo para minimizar a quantidade de dados que serão escritos no seu disco rígido ou forçar o Wireshark a processá-los. Por exemplo, para capturar o tráfego da Web com a Libpcap, é possível usar a seguinte sintaxe:
“Dissecadores” de protocolo
O que difere o Wireshark do resto dos programas é seu grande número de “dissecadores” de protocolo, mais conhecidos como dissectors. De fato, o Wireshark pode entender profundamente os principais protocolos de rede (SSH, Telnet, NTP etc.) e não apenas exibir informações em formato amigável, mas também fornecer várias opções para que você filtre estas informações. O Wireshark pode filtrar o tráfego da web, tcp.dstport == 80 or tcp.dstport == 443
e também componentes específicos de uma conexão HTTP, como, por exemplo, um código de resposta (mostrar apenas erros 404): http.response.code == 404
Ou ainda, você pode procurar cookies que contenham a string sessionid:
dst port 80 or 443
http.cookie contains “sessionid”
A página de manual do tcpdump cobre a sintaxe dos filtros da Libpcap em profundidade.
O HTTP não é o único protocolo que o Wireshark compreende: na última contagem, o Wireshark possuía
Complete
a sua coleção
O objetivo da coleção é trazer conhecimento confiável e de alto nível sempre com enfoque prático e voltado para a utilização do sistema Linux e de outras tecnologias livres.
Mais informações Site: Linux Magazine #61 | Dezembro de 2009 www.linuxmagazine.com.br Tel: 11 4082-1300
19 © Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
COLUNA | Insegurança
em torno de 1.000 dissecadores de protocolos – mas nem todos são tão completos quanto o do HTTP. Infelizmente, esses dissecadores podem causar problemas, com cerca de 85 vulnerabilidades [2] que vão desde uma simples negação de serviço até um estouro de buffer com execução de código. O Wireshark agora também suporta o GeoIP, que consiste em um grupo de bibliotecas que podem ser usadas para realizar buscas no MaxMind Geographic IP database (basicamente, uma lista de IPs e redes e os países onde estes residem). É possível acessar gratuitamente os dados de um país, o que significa que se pode criar filtros para mostrar o tráfego de um país específico. Neste exemplo, a China:
sobrescrevendo os mais antigos ao atingir o número máximo (criando, assim, um buffer circular). Note que não é necessário capturar todo o tráfego da rede para criar um log útil para rastrear problemas; apenas a gravação do tráfego DNS (porta 53 TCP e UDP) já ajudará a resolver muitos problemas de segurança, como downloads involuntários (chamados de drive-by), que geram consultas DNS para domínios estranhos. Por outro lado, você também pode simplesmente fazer um log do tráfego de saída da porta 80, o que oferece um registro de todas as requisições (sem as respostas, que aumentariam significativamente o log). Da mesma forma que uma câmera, isso não evitaria problemas de segurança, mas daria uma boa ideia do que aconteceu e, com sorte, você ficaria sabendo quantos sistemas foram afetados pelo ataque.
ip an ip.geoip.country == “China”
[Atualizado] “Upgrade 2.0”
GeoIP
Gravador de rede
A menos que o Wireshark rode 24 horas por dia, você terá que recriar os problemas ocorridos enquanto examina o tráfego da rede. Ou não? A boa notícia é que os discos rígidos estão muito baratos (um terabyte custa R$ 200) e cada disco de 1 terabyte significa que é possível armazenar 30 GB por dia durante 30 dias (ou até mais se sua rede for pouco movimentada nos fins de semana). O programa tshark ainda facilita o armazenamento de um buffer circular com uma determinada quantidade de dados (100 GB de tráfego, 2TB etc.). A opção -b: tshark -i eth0 -b filesize:10240 -b files:1000 -w if-eth0
monitora a interface eth0 e cria até 1.000 arquivos com 10 MB cada (num total de 1 GB) cujos nomes são a data e o horário em que foram gerados (AAAMMDDHHMMSS):
Agradeço a Jan Andrejkovic por ter me alertado sobre uma ferramenta que esqueci de mencionar na minha coluna “Upgrade 2.0” [3]. O Fedora vem com um programa chamado Presto [4] que usa DeltaRPMs para fornecer pequenas atualizações. No meu primeiro teste, uma atualização exigiria um download de 972MB, mas, com o Presto, foram meros 224MB (grande economia). O Fedora 11 inclui o pacote yum-presto (não confundir com o pacote presto), um plugin para o programa yum. A instalação é simples: yum install yum-presto
Primeiro, atualize manualmente seu arquivo /etc/ yum.repos.d/fedora-updates.repo para incluir uma baseurl ou uma mirrorurl apontando para um site que contenha RPMs presto (eles estão assinados com a chave GnuPG de Jonathan Dieter). Outra maneira seria montar seu próprio repositório e criar RPMs com as presto-utils. Se você tiver mais de um sistema, esta é a melhor opção. n
Mais informações
if-eth0_00001_20090920041232 if-eth0_00002_20090920041252 if-eth0_00003_20090920041258
[1] Wireshark: http://www.wireshark.org/
Em seguida, esses arquivos podem ser unidos usandose o mergecap, caso o tráfego interessante esteja dividido em vários arquivos de captura. Outra forma de capturar dados da rede para posterior análise é usando o tcpdump. As versões mais recentes normalmente suportam a opção -C, que inicia um novo arquivo de captura após um número específico de bytes, e a opção -W, que limita o número de arquivos criados
[3] Kurt Seifried, “Upgrade 2.0”: http://lnm.com.br/article/3035
[2] Vulnerabilidades do Wireshark: http://www.wireshark.org/security/
[4] Presto: https://fedorahosted.org/presto/ Kurt Seifried é consultor de segurança da informação especializado em redes e Linux desde 1996. Ele frequentemente se pergunta como a tecnologia funciona em grande escala mas costuma falhar em pequena escala.
20
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
NOTÍCIAS
➧ Temporada de novas versões de distribuições Os meses de outubro e novembro marcaram a temporada de lançamento de novas versões das principais distribuições GNU/Linux voltadas a usuários de desktops. Ubuntu, Fedora, OpenSUSE e Mandriva anunciaram na Internet suas novas versões para download. O Ubuntu, na versão 9.10 (Karmic Koala), prepara-se para a próxima versão LTS, 10.04, e apresenta novidades interessantes. O tema gráfico, que agora usa applets monocromáticos no painel – semelhantes ao Mac OS X –, é acompanhado do novo serviço Ubuntu One, projetado para o compartilhamento e armazenamento de arquivos na Internet, com uso de armazenamento na nuvem. A troca de componentes básicos do sistema também marcou a nova versão, como o Empathy, que substitui o mensageiro Pidgin, o uso do GRUB 2 em substituição ao GRUB e a adoção do Ubuntu Software Center no lugar do Update Manager e do Synaptic. O Fedora 12 (codinome Constantine) foi liberado pela Red Hat com diversos avanços em relação à versão 11, como o gerenciador de pacotes Yum Presto com suporte a deltaRPMs e um gerenciador de redes com suporte a 3G. Além das versões com os desktops Gnome, KDE e LXDE, o Fedora oferece uma alternativa gráfica com o Moblin, especialmente indicado para netbooks. O instalador Anaconda passou também a suportar iSCSI e Fibre Channel sobre Ethernet (FCoE), embora limitado a Ethernet de 10 Gbps. Na área da segurança, novidades no SE Linux e na ferramenta de relatório ABRT, além do uso da biblioteca Libcap-ng. Uma falha de segurança no sistema, contudo, foi apontada pouco após o lançamento: usuários tinham privilégios para instalar softwares a partir dos repositórios sem fornecer a senha de root. A falha foi apontada por diversos usuários, que depois descobriram tratar-se de uma alteração não divulgada – portanto, não um bug –
com o objetivo de facilitar o uso do sistema por usuários não técnicos. A mudança evidentemente provocou diversas reclamações, que levaram à publicação da alteração do sistema e também do procedimento para retorná-lo ao método padrão de exigir a senha de root para qualquer instalação de software. Após um tempo excepcionalmente longo desde a versão 11.1 (quase um ano), a equipe do OpenSUSE lançou com sucesso a versão 11.2. A principal alteração com relação à versão anterior do sistema é o retorno do ambiente desktop KDE (na versão 4) como padrão, além das alterações do kernel para beneficiar o uso em desktops e o uso do sistema de arquivos Ext4 por padrão. O Mandriva, em sua versão 2010.0, também foi lançado neste fim de 2009. Após um atraso de um mês, a nova versão da distribuição francesa chegou aos servidores, trazendo mudanças como o Plymouth para bootsplash e uma inicialização significativamente mais rápida do que a versão anterior, além da completa integração ao ambiente Moblin. O Mandriva 2010.0 também inclui o Sugar, desktop criado pelo projeto OLPC, assim como a nova arquitetura UXA, acompanhada da infraestrutura DRI2 no Xorg 7.4. A distribuição também é a única a incluir o centro multimídia Elisa, renomeado para Moovida e com uma nova interface gráfica. n
➧L icenciamento do JDK 7 criticado
O milestone 5 da próxima versão do Java Development Kit, o JDK 7, inclui apenas algumas pequenas alterações. Porém, o JDK 7 causou bastante alvoroço. O motivo das turbulências em torno das alterações é o fato de que a Sun não escolheu uma licença de código aberto. O desenvolvedor do Classpath Mark Wielaard chamou essa atitude de “antissocial”, referindo-se à grande porção do software que faz parte do OpenJDK. Wielaard pediu à Sun para retirar essa restrição legal, por ser injusta com todos aqueles que contribuíram com código para a versão livre. Ele não vê qualquer motivo para esse comportamento e faz um apelo à Sun em seu blog. A versão final do JDK 7 é esperada para o início de 2010. Para notícias sempre atualizadas e com a opinião de quem vive o mercado do Linux e do Software Livre, acesse nosso site: www.linuxmagazine.com.br
22
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
➧M icrosoft infringe GPL, CORPORATE
admite e corrige
Nem a Microsoft resiste a novas tecnologias. Com o objetivo de se manter em sintonia com os novos tempos, a empresa disponibilizou uma interessante ferramenta para criar uma versão do sistema em dispositivos de armazenamento USB. Infelizmente, a gigante dos sistemas operacionais não percebeu que a licença do software usado para isso – ImageMaster, liberado sob a GPLv2 – exige a disponibilização de qualquer alteração feita ao código fonte original. A primeira menção à violação da GPL foi feita pelo site withinwindows.com, que afirmou que o WUDT, como foi batizado o software, continha código externo à MS e coberto pela GPL.
Após essas informações começarem a circular, a empresa retirou o WUDT de seu website e anunciou que iria averiguar o problema. O gerente de comunidade do site Port25 da Microsoft, Peter Galli, confirmou posteriormente a infração da GPL: “Após verificar o código em questão, agora podemos confirmar que era esse o caso, embora não tenha sido intencional de nossa parte. Apesar de termos terceirizado a criação da ferramenta, compartilhamos a responsabilidade por não ter detectado a infração em nosso processo de revisão do código. Além disso, conduzimos uma revisão de outros códigos fornecidos pela loja da Microsoft, e esse foi o único incidente desse tipo que encontramos”. Na semana seguinte, a empresa chefiada por Steve Ballmer voltou a liberar a ferramenta, desta vez com o código fonte disponível sob a GPLv2.. n
➧ Celulares: Windows perde, mas Linux não ganha Segundo um estudo do Gartner, o Windows Mobile perdeu 28% do mercado de telefones celulares ao longo do último ano. O Linux, no entanto, não é o principal beneficiado. Os maiores vencedores nessa arena são Apple e Blackberry, embora estime-se que os sistemas livres venham a ganhar mais mercado a longo prazo. Segundo a ZDNet, o Windows Mobile perdeu quase um terço de seu mercado entre o terceiro trimestre de 2008 e o mesmo trimestre de 2009, ficando em último colocado entre os principais players, com apenas 8%. Um motivo das perdas foi o atraso no lançamento da versão 6.5 do sistema da Microsoft, além de não entregar o que a maioria dos usuários esperava, como telas sensíveis ao toque. De acordo com a analista do Gartnet Roberta Cozza, a versão 6.5 “não é um grande avanço” sobre as anteriores. O Symbian, recentemente transformado em sistema operacional livre, também diminuiu sua fatia de mercado em 10% nos dos dois últimos trimestres, caindo de 50% para 45%. Os ambientes fechados Blackberry e iPhone, por outro lado, ganharam grande impulso. Do ponto de vista do Software Livre, no entanto, 2009 foi um divisor de águas no mercado de telefonia móvel. Os telefones celulares equipados com o sistema Android do Google (baseado em Linux) ganharam 4% do mercado, apesar de na época da realização do estudo existirem apenas dois modelos com o sistema. Até o WebOS, da Palm, passou da marca de 1%. Os analistas do Gartnet já haviam previsto o fim do Windows Mobile no início de 2009: previram que em 2015 haveria apenas quatro players no campo: Android, Symbian, Mac OS e Blackberry. n
➧ Petrobras adquire supercomputador Bull movido a GPU A máquina bullx, da francesa Bull, vencedora do edital da Petrobras, com poder de processamento de 250 Teraflops – suficientes para caracterizá-la como o 16º maior supercomputador do planeta –, vai equipar o CENPES (Centro de Pesquisas e Desenvolvimento) da Petrobras, no Rio de Janeiro. O objetivo é auxiliar em simulações geofísicas com o intuito de “aprimorar a visualização das camadas geológicas do subsolo para suportar a exploração e produção de petróleo”, segundo o anúncio da Bull à imprensa. O supercomputador faz uso da tecnologia GPGPU (General-purpose computing on GPU – processamento auxiliado por chips gráficos, como aqueles encontrados nas placas de vídeo) para aumentar sua capacidade de processamento, e será instalado no novo datacenter da Petrobras na Cidade Universitária da UFRJ. n
Para notícias sempre atualizadas e com a opinião de quem vive o mercado do Linux e do Software Livre, acesse nosso site: www.linuxmagazine.com.br
24
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Livro C
e r t i fi c
ição d e ª 2 2 I P L o ã aç
A Linux Magazine está lançando a 2ª edição revisada e ampliada do livro que te prepara para a Certificação LPIC-2 com as seguintes novidades: • Exercícios em todos os tópicos • Todo conteúdo ampliado para a nova versão da prova, atualizada em abril/2009
Garanta já o seu pelo site da Linux Magazine www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
CORPORATE
Coluna do maddog
Serviços em SL Em tempos de crise econômica, agregue valor aos seus serviços com os recursos da comunidade do Software Livre.
V
ejo muitas pessoas perguntando: “Como ganhar dinheiro com software livre?”. Para mim, a resposta é simples. Como as pessoas ganham dinheiro com software proprietário? Afinal, o “pessoal da informática” não trabalha para uma empresa que empacota softwares para o consumidor final. A maior parte dessas pessoas são administradores de sistemas, integradores, educadores, revendedores com valor agregado (mais conhecidos como VARs) e outros que não contribuem para o produto final. Alguns dão suporte respondendo questões do consumidor sobre como usar o software. Todas essas pessoas são prestadoras de serviço. Existem revendedores de códigos licenciados que recebem comissão sobre o preço cobrado. Mas esta é apenas uma parcela do dinheiro que ganham. A maior parte de sua renda vem do serviço prestado ao consumidor com base no software que revendem. Evidentemente, o que o consumidor compra é uma solução. Para ele, não importa qual o software utilizado, contanto que atenda às expectativas. Outros fatores contribuem, tais como a facilidade de suporte na forma
videntemente, o que E o consumidor compra é uma solução. Para ele, não importa qual o software utilizado, contanto que atenda às expectativas.
de treinamento e respostas às suas perguntas. Empresas que contratam ajuda temporária também tendem a preferir o software popular, pois assim terão um grande grupo de pessoas para empregar. Uma das semelhanças entre o Software Livre e o proprietário é que ambos podem ser usados sem modificações. Com o software proprietário, basta abrir a caixa; com o SL, é só baixar da Internet. Com o SL, no entanto, normalmente não é necessário pagar uma licença nem se preocupar com uma agência, como a Business Software Alliance, que corre atrás de usuários e empresas para conferir se seus programas não são piratas. A maior diferença é que, como você não tem o código fonte do software proprietário, é mais difícil integrá-lo à sua empresa. Tente imaginar a integração de dois programas proprietários. Talvez eles trabalhem bem juntos, exceto por algumas incompatibilidades que podem causar problemas. Assim como tentar colar dois tubos de vidro com extremidades lisas, você pode conseguir mantê-los unidos por um tempo, mas isso dá muito trabalho e não existe certeza se a cola irá aguentar. Agora, tente fazer dois projetos de SL trabalhar juntos. Assim como um VAR, um integrador ou outra pessoa envolvida com soluções ao consumidor, você pode mudar o código-fonte dos dois softwares, fazendo-os funcionar perfeitamente um com o outro. Seria o mesmo que lixar as extremidades dos tubos de vidro antes de uni-los para que a cola funcione melhor. Com tanta pirataria de software por aí, a maioria dos programas licenciados acaba circulando sem licença. Isso não só representa um risco para o consumidor, mas também deprecia o valor do produto. Os programas livres, em contrapartida, possuem licença livre. O consumidor sabe por que está pagan-
26
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Matéria | SEÇÃO
do: pelo seu serviço. Geralmente, é possível reduzir o preço do produto final para torná-lo mais competitivo com relação aos vendedores de softwares proprietários ou embolsar mais dinheiro porque não será necessário pagar por licenças. Outra diferença entre softwares proprietários e livres está na educação. Se você estiver desenvolvendo manuais para um programa proprietário mas não fizer parte da equipe de desenvolvimento, seu trabalho será mais complicado, pois você não terá acesso ao código-fonte. Quem desenvolve o código é (quase por definição) quem conhece melhor o programa; portanto, o seu material estará em desvantagem. Com SL, não há razão para que seu material não seja tão bom, ou até melhor, que o do pessoal do desenvolvimento. Você pode verificar como funciona o programa e, por isso, consegue dar dicas sobre o algoritmo escolhido, algo que os desenvolvedores podem não achar muito importante. Além do mais, em um projeto verdadeiramente aberto, você pode
juntar-se ao time de desenvolvimento passando-lhes informações vindas dos consumidores para melhorar o produto. Por fim, como administrador de sistemas, você é pago para fornecer um bom suporte a seus colegas. Com o programa de código fechado, você fica dependente da empresa que o produziu. No SL, você pode fazer mudanças por conta própria ou trabalhar com um grupo para conseguir as alterações necessárias, melhorando assim o suporte à sua comunidade de trabalho. No seu relatório mensal à gerência, não se esqueça de mencionar a otimização do seu tempo e de seu rendimento com a utilização de produtos da comunidade do Software Livre. Em tempos de crise econômica, seu gerente gostará muito disso. n Jon ‘maddog’ Hall é presidente da Linux International, instituição 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 comunitário.
OSPRE
R
Linux Magazine #XX | Mês de 200X
Linux Professional Institute
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
27
Coluna do Taurion
CORPORATE
Monetização do Open Source Para as empresas se aproximarem do Open Source, elas precisam compreender as formas de monetizá-lo.
E
stive recentemente no Latinoware 2009, respirando Open Source 24 horas. Aqui e ali algumas conversas interessantes e uma constatação: Open Source é um modelo de desenvolvimento, entrega e suporte de software e, por incrível que pareça, ainda não é plenamente compreendido por muitos empresários e empresas de software no Brasil. Bem, não é para menos, pois não existe uma definição legal de Open Source. Nenhuma organização tem o direito desta “marca” e muito menos governa o conceito. Existe, na verdade, uma entidade chamada Open Source Initiative (OSI), que criou uma lista de atributos do que vem a ser Open Source, que por sua vez geraram uma definição que vem sendo adotada por consenso. Sempre converso com alguns empresários brasileiros da indústria de software e sinto certo receio deles em se aproximar do Open Source. Pensam logo nos riscos de usá-lo e que também perderão dinheiro, pois sua receita, hoje, vem da venda de licenças. Lembrem-se de que um software Open Source não pertence a nenhuma empresa. Neste modelo, nenhuma entidade mantém controle sobre as propriedades intelectuais que fazem o software. O empresário de software também pode pensar em usar Open Source embutido em seu produto. Neste caso, usaria seu software de código fechado ao lado de alguns componentes Open Source. Claro que, para isso, ele deve escolher projetos maduros, que apresentem uma base de código estável e já provada em campo. Buscar um código novo, com comunidade pequena e incerta, traz embutido o risco do empresário ter que assumir a responsabilidade pela manutenção e evolução do código. Pode ser um ônus insuportável. Esta opção parece ser interessante, e algumas estimativas, como a do Gartner, apontam que por volta de 2013 cerca de 80% dos produtos de software fechados embutirão elementos Open Source. Como benefício, evita-se escrever
código que já está escrito (e bem escrito), podendo-se concentrar esforços e investimentos nos códigos que vão gerar valor para seus clientes. Uma outra alternativa é transformar o seu código em Open Source. Entretanto, neste caso, existe a questão de como monetizar o software. Como gerar dinheiro com os downloads gratuitos? De maneira geral, existe uma diferença de uma ordem de magnitude entre downloads (o usuário está simplesmente investigando o software), uso operacional e pagamento de algum valor por, digamos, atualizações. Existe uma regra prática que diz que, para cada 1 milhão de downloads, temos 100.000 usuários, e que, destes, apenas 1.000 pagarão pelo software. Como obter dinheiro em uma relação de 1.000 x 1? Existe uma alternativa à reunião de uma imensa base de usuários, que é a criação do modelo de duplo licenciamento. Nela, cria-se uma versão aberta e outra fechada, com algum atrativo que gere valor para o cliente. Este, por sua vez, concorda em pagar pelo valor agregado. Um exemplo comum é a criação de uma versão premium ou enterprise com mais recursos, que demandam pagamento para seu uso. E existe, é claro, a opção de gerar retorno financeiro com venda de serviços e treinamento. Enfim, existem diversas maneiras para uma empresa de software se aproximar do modelo Open Source, além de usar Linux nos seus servidores e Eclipse no desenvolvimento de seu código. Não é uma aposta de tudo ou nada, mas deve-se ter uma estratégia bem definida e uma escolha de modelos de aproximação que agreguem valor para seu negócio. Neste caso, Open Source será um bom negócio. n Cezar Taurion (ctaurion@br.ibm.com) é diretor de novas tecnologias aplicadas da IBM Brasil e editor do primeiro blog da América Latina do Portal de Tecnologia da IBM developerWorks, em https://www.ibm.com/ developerworks/mydeveloperworks/blogs/ctaurion/.
28
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Preocupado com seu futuro profissional? Faça treinamentos para seu aperfeiçoamento profissional e conquiste certificações reconhecidas pelo mercado. RedHat Certified Engineer – RHCE 4 cursos oficiais
RedHat Certified Architect – RHCAA 5 cursos ofifici ciais ais is
RedHat Certified Data Center Specialist – RHCDCS 3 cursos oficiais
Linux Professional al Institute Institu e – LPI-11 2 cursos ofifificcci ciais iais is
RedHat Certified Security Specialist – RHCSS 3 cursos oficiais
Linux Professional al Institute – LPI-22 2 cursos ofifici cciais aiss ais
Treinamentos Linux avançados
Consultoria e serviços: • Mentoring, Projeto e implementação de servidores • Integração de redes heterogêneas • Migração de serviços para plataforma aberta
Mais informações
11 2925-8724
Savant Tecnologia da Informação | Av. Brig. Luis Antonio, 2344 cj 13 – Jd. Paulista | www.savant.com.br © Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Torne-se um
CAPA
Profissional certificado Por que e como se certificar. por Marco Aurélio Filippetti
Índice das matérias de capa Gerenciamento de projetos Linux certificado Governança certificada Certificação e segurança
U
ma das premissas básicas de gestão rege que, para se avaliar algo, este algo deve ser, de alguma forma, mensurável. Portanto, para se determinar o nível de conhecimento de um profissional, é necessário que esse conhecimento seja medido e balizado, para
então poder ser comparado e verificado. As certificações profissionais de TI têm exatamente essa função: servir como uma métrica padronizada que permita mensurar a quantidade e a qualidade de conhecimentos e habilidades específicas que um determinado profissional possui e, com base nessas métricas, atestar para o mundo se o profissional em questão é ou não versado em uma determinada tecnologia. Existe hoje uma infinidade de certificações específicas para TI à disposição dos profissionais que queiram comprovar suas habilidades para o mercado. A questão aqui é saber separar “o joio do trigo”. O profissional precisa ser extremamente criterioso na escolha da certificação, levando em conta fatores como aceitação e respeitabilidade pelo mercado, custo e tempo para obtenção, além do retorno do investimento, entre outros. De uma forma geral, o mais importante é verificar o que determinada certificação trará de bene-
34 37 40 44
fícios verificáveis para o profissional que a obtiver.
Principais certificações Como já foi mencionado, existem centenas de certificações no mercado, porém nem todas gozam do mesmo nível de reconhecimento. Uma regra que não falha é atentar para as tecnologias em voga – ou seja, com demanda pelo mercado – e buscar certificações reconhecidas nessas áreas. Exemplos atuais seriam: segurança, comunicações unificadas, wireless, virtualização, programação (Java e outras), sistemas ERP (SAP e Microsiga, por exemplo), sistemas operacionais (Linux, Windows), bancos de dados (Oracle, por exemplo) e governança em TI. Para cada uma destas áreas, existem certificações específicas, algumas bastante reconhecidas pelo mercado e outras nem tanto. Outro ponto que deve ser levado em consideração é o tipo de certificação: orientada ao fabricante ou independente. Vários fabricantes desenvolveram suas linhas de formação profissional baseados nos equi-
30
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
CAPA | Certificações
pamentos e tecnologias que vendem ao mercado. Esse é o caso de Cisco, Avaya, Red Hat, 3Com, Juniper, Check Point, Microsoft, Sun, Oracle e tantas outras. O problema aqui é que algumas destas certificações podem “amarrar” muito o profissional à tecnologia específica do fabricante. Se amanhã esse profissional precisar comprovar seus conhecimentos em algo mais genérico ou de outro fabricante, poderá ter problemas. Portanto, o mercado reconhece algumas certificações desse tipo como sendo mais interessantes exatamente pelo fato de não limitar o profissional. Um bom exemplo seriam as certificações da Cisco – amplamente reconhecidas até por outros fabricantes, como Juniper e Huawei –, pois cobrem em seus cursos e exames uma grande gama de conceitos e tecnologias que podem ser aplicados em qualquer tipo de rede. Em termos de certificações independentes, temos entidades que oferecem certificações “neutras”, ou seja, sem qualquer relação com um fabricante específico. Estas são interessantes pelo fato de atestarem que o profissional conhece a fundo conceitos e tecnologias que podem – em tese – ser implementados em qualquer tipo de ambiente. Exemplos seriam as certificações da CompTIA (Security+, Network+, A+, entre outras), do PMI (PMP), ISC2 (CISSP), ISACA (CISA), LPI e ITSM (ITIL). Os quadros 1 a 5 listam algumas das certificações em TI mais relevantes para o mercado brasileiro, separadas por área de atuação. A ordem foi baseada na empregabilidade, na popularidade e na relevância de cada certificação para o mercado brasileiro.
vultosos, como muitos pensam. Na prática, a certificação serve como um diferencial, ou seja, fará com que o currículo do profissional vá para uma pilha menor, com maiores chances de ser selecionado. Em alguns casos, a certificação sequer é um diferencial; é um pré-requisito para a vaga. Nessas situações, a empresa quer ter certeza de que o profissional procurado domina determinada tecnologia ou possui conhecimentos específicos em alguma área do
saber. Uma analogia útil empregada em [1]: “Imagine que seu currículo é visto como uma refeição pelo RH das empresas: as certificações são o molho, a experiência profissional é a carne e o diploma universitário é o prato. Qualquer combinação que você tente fazer não será atrativa sem o prato, pois ninguém apreciará uma refeição servida diretamente em cima da mesa. Da mesma forma, um prato servido apenas com o molho não será atrativo, pois a experiência
Quadro 1: Infraestrutura (redes e sistemas operacionais)
isco (CCNA, CCNP e CCIE): as certificações da Cisco seguem no topo C do ranking por um motivo muito simples: a demanda por profissionais de rede segue em alta e as certificações da Cisco preparam o profissional para encarar qualquer desafio neste mercado. São certificações tradicionais e muito reconhecidas pelo mercado. Das novas certificações lançadas pela Cisco, as especializações CCNA Voice, CCNA Security e CCNA Wireless certamente terão seu valor apreciado cada vez mais pelo mercado.
Microsoft (MCSA, MCSE e MCSD): a razão de as certificações Microsoft estarem em segundo lugar também é simples de ser justificada. A empresa detém mais de 80% do mercado de sistemas operacionais, valor que pode mudar com o lançamento do Windows 7. Faltarão profissionais capacitados no mercado.
Linux (LPI, RHCE etc.): com a explosão do Linux – especialmente em datacenters e empresas –, estas certificações vêm ganhando muita importância. Existe uma carência clara no mercado de profissionais nesta área.
Quadro 2: Governança e gestão
PMP (Project Management Professional): focada em gerência de projetos.
ITIL (Information Technology Infrastructure Library): focada na governança de TI, é cada vez mais reconhecida e procurada pelas grandes empresas.
COBIT (Control Objectives for Information and related Technology): também focada nas melhores práticas de governança de TI.
Quadro 3: Segurança e controles
CISSP (Certified Information Systems Security Professional): uma das certificações mais quentes e reconhecidas na área de segurança.
Reconhecimento do mercado
CISA (Certified Information Systems Auditor): com a crise econômica apertando, nunca os auditores foram tão valorizados. Vale conhecer melhor esta certificação, em alta no momento.
O que é preciso deixar claro é que a certificação, por si só, não é garantia de um bom emprego ou de salários
CCSE (Check Point Certified Security Expert): certificação de segurança de alto nível. É uma das certificações mais valorizadas na área.
32
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Certificações | CAPA
Quadro 4: Programação
SCJP (Sun Certified Java Programmer): foco em Java e, portanto, em alta.
Quadro 5: Arquitetura Arquitetura de soluções é uma área que vem tendo mais visibilidade, especialmente nos grandes provedores de serviço. O perfil do profissional da área mescla conhecimento de mercado com habilidades e conhecimentos técnicos. As certificações apresentadas a seguir são relativamente novas, mas já gozam de reconhecimento pelo mercado e entre os profissionais que atuam nesta área:
MCA (Microsoft Certified Architect)
CCA (Cisco Certified Architect)
profissional não pode ser substituída por uma certificação”. Ou seja, sem uma boa formação, apenas uma boa certificação pode não lhe abrir muitas portas.
Idioma
Outro ponto a ser considerado aqui é o domínio de um idioma estrangeiro – notadamente, o inglês. Quando o assunto é tecnologia, o que é considerado estado da arte hoje pode não mais sê-lo amanhã. Isso significa que se o profissional de TI não estiver em constante atualização, fica para trás. A maior parte da literatura disponível hoje para as tecnologias mais recentes é lançada primeiro em inglês. Então, se você não domina esse idioma, será ultrapassado por outro profissional que possui esse conhecimento. O domínio do inglês é necessário, portanto, não necessariamente para conversação, mas para atestar que você terá condições de se atualizar rapidamente quando necessário. É comum empresas preferirem profissionais que dominem o inglês, mesmo que estes não possuam qualquer certificação de TI. O motivo é simples: é mais barato e mais rápido certificar um profissional do que investir anos para que ele aprenda um novo idioma.
chance do profissional ficar desempregado, por exemplo. A questão que você deve se fazer, portanto, é: em qual lado da pirâmide você quer estar? Na ponta, onde a demanda é enorme e os profissionais são poucos – e, por consequência, os salários são maiores –, ou na base, onde mesmo com uma demanda forte pelo mercado existe uma oferta igualmente grande de profissionais?
Custos Salário
É comum ouvir questionamentos sobre o salário de um profissional certificado Cisco CCNA ou mesmo CCIE. O que é certo é que quanto mais se envereda no caminho das certificações, ou seja, quanto maior o nível de dificuldade e abrangência das certificações que o profissional possui, reduz-se drasticamente a
Por fim, quanto custa certificar-se? Isso depende. A grande maioria das certificações existentes não exige a participação em um curso ou algo do gênero. Basta comprar alguns livros e dedicar-se para conseguir a tão sonhada certificação. Sem considerar gastos com cursos, é possível verificar os custos (em dólares) de quase todas as provas de certificações mencionadas neste artigo acessando o site da Vue [2], empresa que ministra os exames para a maioria das empresas e entidades aqui mencionadas. n
Mais informações [1] Marco Aurélio Filippetti, “CCNA 4.1”: http://www.visualbooks. com.br/shop/mostralivro.asp?escolha=9788575022382 [2] Vue: http://www.vue.com
Sobre o autor Marco Aurélio Filippetti é especialista em Sistemas Computacionais e Engenharia de Telecom pela Universidade da Califórnia (Berkeley), possui os títulos Cisco CQS Security Specialist, CCIP e CCDP, ITIL Foundations e é Mestre em Engenharia da Computação pelo Instituto de Pesquisas Tecnológicas de São Paulo (IPT). Profissionalmente, passou pela KPMG, T-Systems do Brasil, AT&T, Vivax e British Telecom. Atualmente, atua como Consultor de Tecnologia e Operações para a Embratel, em Campinas, além de manter, desde 2007, um movimentado blog com foco nas certificações Cisco, em http://blog.ccna.com.br.
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3167
33
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Certificações PMI
Michal Zacharzewski – www.sxc.hu
CAPA
Gerenciamento de projetos A carreira de gerente de projetos em TI está em crescimento. Aproveite! por Flavia Jobstraibizer
N
o momento de organizar um projeto, a primeira coisa em que o cliente ou contratante pensa é no prazo de entrega e no quanto vai gastar para obter o que deseja. Porém, a parte executante, seja ela uma pequena empresa ou um prestador de serviços, uma multinacional ou uma empresa de grande porte, necessita organizar-se a ponto de cumprir os prazos prometidos, não extrapolar orçamentos e gerir todas as necessidades que o projeto apresentará durante seu andamento. E tudo isso sem causar transtornos ao cliente. É neste ponto que entra em cena o gerente de projetos, que tem um papel de suma importância no planejamento e no acompanhamento das fases de um projeto. O gerente de projetos é atualmente um importante profissional nas equipes de trabalho, pois é ele quem dita as regras do projeto, como será o tempo de realização de cada tarefa, onde será aplicada a verba disponível, quem
serão os membros da equipe, quais são as datas de entrega de cada fase do projeto e assim por diante. Cada vez mais solicitado por empresas de qualquer porte, o gerente de projetos está atualmente presente em seis de cada dez empresas, atuando fortemente como um membro importante na tomada de decisões corporativas, como: valor bruto do projeto, tempo de entrega de cada fase, levantamento de especificações e requisitos e a melhor forma de atendê-los. O gerente de projetos, muitas vezes, é mais do que um simples profissional que organiza projetos. Ele é responsável ainda por gerir as pessoas envolvidas, gerenciar o tempo gasto em cada tarefa com vistas ao prazo de entrega de partes ou fases do projeto – chamadas de entregáveis – e ainda administrar recursos externos como mão de obra terceirizada, membros da equipe que serão temporários, prestadores de serviços e fornecedores de insumos
ou qualquer tipo de matéria prima ou produto necessário para o andamento e a entrega do projeto. Atualmente, o maior segmento do mercado que conta com profissionais da área de gerenciamento de projetos é o segmento de tecnologia e informática. Tais profissionais geralmente são graduados em cursos na área de TI ou administração de empresas, pois não é imprescindível que o gerente de projeto seja especificamente formado em gestão de pessoas, recursos humanos ou áreas afins. Porém, segmentos como engenharia, metalurgia e arquitetura estão em franca expansão, contratando profissionais cada vez mais capacitados especificamente em gerir o projeto como um todo, coordenando todas as etapas e cuidando para que tudo seja feito no prazo. Um dos pontos de partida para quem deseja ingressar na carreira de gerente de projetos, além do curso superior, embora não seja totalmente necessário, é possuir
34
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
PMI | CAPA
um grande senso de organização, facilidade de trabalho em equipe e uma boa dose de liderança, além de saber operar ferramentas como Microsoft Project, Oracle Primavera ou opções livres como o DotProject [1]. Tais ferramentas auxiliarão o profissional na tarefa organizacional do projeto desde a concepção até a entrega, armazenando todas as informações necessárias, tais como valores por hora de cada membro da equipe, o que cada membro da equipe está fazendo naquele momento, com quais prazos cada um está trabalhando, se alguém está com a entrega de sua parte atrasada, entre outros aspectos. Para se tornar um profissional de qualidade e aceito no mercado, também é extremamente importante obter uma certificação em gestão de projetos proveniente de um órgão conceituado, como o Project Management Institute – PMI –, que no Brasil é coordenado pelo PMI BR [2]. É importante ressaltar que mesmo profissionais sem certificação podem e devem atuar na área da gestão de projetos para futuramente obter a certificação, pois a experiência obtida na área é fundamental. Funciona como um tipo de estágio, no qual, após conseguir a vivência necessária, o profissional estará apto a se certificar para continuar atuando com mais propriedade na área. Existem alguns tipos de certificação fornecidas pelo PMI. São elas: PMP – Project Management Professional: o profissional certificado PMP estará apto a gerenciar projetos e equipes de qualquer tamanho, obtendo todas as noções e reconhecimentos internacionais para atuar na área. É a certificação mais comum e normalmente utilizada. CAPM – Certified Associate in Project Management: esta certificação poderá ser obtida por membros da equipe e pro-
m dos pontos de U partida para quem deseja ingressar na carreira de gerente de projetos é possuir um grande senso de organização.
fissionais muito jovens na área, como os recém-formados que desejam ingressar nesse campo. PgMP – Program Management Professional: esta certificação, pouco comum no Brasil, é destinada a medir a evolução de um profissional, reconhecendo suas qualificações na coordenação de múltiplos projetos.
Pré-requisitos
Para obter cada uma das certificações, alguns pré-requisitos devem ser atendidos. No caso da certificação PMP, profissionais que não possuem curso superior devem comprovar 7.500 horas ou 60 meses em gerenciamento de projetos. Quem já possui curso superior deve comprovar 4.500 horas ou 36 meses em gerenciamento de projetos. Além disso, é necessário um curso preparatório para a certificação PMP, com carga horária mínima de 35 horas. Para quem deseja obter a certificação CAPM, é necessário ser membro de uma equipe de projetos, ter pelo menos o ensino médio completo e experiência de 1.500 horas como membro de uma equipe de projeto ou participar de um treinamento com carga horária mínima de 23 horas para obtenção da certificação. No caso da certificação PgMP, profissionais com formação superior precisam comprovar 6.000 horas em gerenciamento de projetos e 6.000 horas em gerenciamento
de programas nos últimos quinze anos. Já quem não possui formação superior deve comprovar 6.000 horas em gerenciamento de projetos e 10.500 horas em gerenciamento de programas. Para obter a certificação PgMP, também é preciso ter gerenciado múltiplos projetos.
Cadastro
Atendidos os pré-requisitos, o profissional deverá cadastrar-se no site oficial do PMI [3], apresentando as comprovações dos pré-requisitos e preenchendo o cadastro com seu perfil e outras informações solicitadas. Como o cadastro é bastante extenso e detalhado, por conta de comprovações e outras solicitações requeridas no momento do preenchimento, não é possível completá-lo em um só dia. Porém, é possível completá-lo aos poucos, respeitando os prazos mínimos para o término de preenchimento: dez dias para os candidatos à certificação PgPM e oito horas para os demais candidatos. O cadastro fica ativo durante um ano. Nesse tempo, caso não seja completado, ele será destruído e precisará ser novamente preenchido. Com o cadastro concluído, será necessário aguardar a aprovação do instituto para que o cadastrado possa se candidatar. Com a aprovação do cadastro, o candidato terá um ano a partir da data de aprovação para realizar o exame, que é feito em inglês e poderá ser marcado pelo próprio site em um local escolhido pelo candidato. Há diversos locais 35
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
CAPA | PMI
Os valores por hora de um profissional certificado triplicam frente a um gestor de projetos que não possua certificado.
para a realização do exame no Brasil, incluindo as principais capitais. Os valores de cada exame em geral já incluem bônus em caso de o candidato não ser aprovado e precisar refazê-lo. Os US$ 555,00 do exame PMP, por exemplo, permitem ao candidato reprovado enviar uma solicitação de re-exame para o PMI, que poderá ou não ter novos custos. No caso do exame CAPM, que custa US$ 300,00, o candidato não aprovado pode refazê-lo por US$ 200,00. O PgPM, com custo mais alto (US$ 1.800,00), custa US$ 500,00 em caso de repetição.
Material de apoio
Para não correr o risco de não ser aprovado no exame, é recomendável ainda ler os seguintes materiais: PMBOK: livro oficial de autoria do PMI, imprescindível para a obtenção de qualquer uma das certificações citadas. Dezenas de questões do exame são originadas deste livro. PMP Exam Prep, da autora Rita Mulcahy: este livro é um dos mais importantes materiais para quem deseja a certificação mais popular, PMP. Muitas das questões do exame são baseadas nos textos do livro. Inclusive a autora comercializa ainda diversos simulados que poderão auxiliar o candidato nos estudos preparatórios para o exame. Existem ainda diversos excelentes livros de autores brasileiros que poderão fazer parte da sua biblioteca
de certificando. Todos eles auxiliam imensamente a memorizar os termos e as situações que certamente serão apresentados no exame.
Resultados e consequências O resultado do exame costuma sair imediatamente após sua conclusão, uma vez que a prova é eletrônica. Caso você seja aprovado, receberá em sua residência em algumas semanas um kit completo do PMI contendo itens para divulgação e outros materiais. Com a aprovação, vem também o reconhecimento e o respeito com o qual são tratados os profissionais certificados. Ela traz inúmeros be-
nefícios profissionais, uma vez que a certificação é extremamente bem conceituada e aceita no mundo todo. Os valores por hora de um profissional certificado triplicam frente a um gestor de projetos que não possua certificado.
Demanda
A crescente demanda por profissionais certificados é um dos principais atrativos para um novo ingressante na área. Os valores competitivos e a aceitação mundial das credenciais de gestor de projetos, que poderá levar o profissional a trabalhar em qualquer empresa e em qualquer país, com total reconhecimento, são mais alguns dos pontos fortes da certificação. É importante lembrar que é preciso estar ativo e atualizado na área, pois em alguns momentos é necessário fazer a recertificação (a cada três anos para os profissionais PMP e PgMP, ou cinco anos para profissionais CAPM). Sendo assim é necessário estar atento para não correr o risco de perder todo o empenho e dinheiro investidos na certificação. n
Mais informações [1] DotProject: http://www.dotproject.net/ [2] PMI Brasil: http://www.pmi.org.br/ [3] PMI Internacional: http://www.pmi.org/
Sobre o autor Flávia Jobstraibizer (fjferr@gmail.com) é analista de sistemas e atualmente gerente de projetos de informática e tecnologia da informação, atuando em uma conceituada instituição de ensino na capital paulista. Também presta serviços de consultoria em gestão de projetos para diversas empresas.
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3167
36
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Liberdade profissional
CAPA
Linux certificado Certificações atestam o conhecimento do profissional. Como provar que você sabe o que faz com o Linux? por Carlos Bokor, Bruno Gomes Pessanha e Pablo Hess
S
egundo Randy Russel, diretor de currículo e certificação da Red Hat, “a premissa de qualquer certificação é que ela ajude um gerente de contratações a organizar a pilha de currículos”. Certificar-se em Linux geralmente é um bom negócio. Uma busca por LPI em sites de empregos costuma retornar centenas de vagas. No Trovit [1], por exemplo, são 67 as vagas que mencionam a certificação LPI, com salários a partir de R$ 3.000,00. Outras 12 mencionam a certificação mais famosa da Red Hat, RHCE. Evidentemente, muitos mencionam as certificações Linux em meio a diversas outras, mas isso não significa que cada uma delas seja insuficiente. Muito pelo contrário: é preciso começar por uma só. O valor da certificação Linux pode variar bastante de um país para o outro, e geralmente a sua relevância depende da demanda existente em determinada área, região ou empregador. Em determinadas situações, pode até não fazer qualquer diferença, mas não é o que acontece na maioria dos casos. As certificações fornecem aos empregadores uma importante ferramenta: um padrão para medir a qualidade técnica e a competência de um determinado candidato. E isso é tudo o que uma certificação pode fazer.
LPI
Desde 1999, a organização sem fins lucrativos Linux Professional Institute (LPI), sediada no Canadá, oferece uma certificação independente de fornecedores. Isso significa que todo o conteúdo dos exames é baseado no padrão LSB (Linux Standard Base), deixando de fora ferramentas e softwares criados por e para uma distribuição Linux específica. A Certificação LPI (LPIC) é oferecida em três níveis: LPIC-1: Administrador Júnior; LPIC-2: Administrador Intermediário; LPIC-3: Administrador Sênior. Cada certificação requer uma pontuação de aprovação em dois exames. Os exames LPIC-1 abrangem as competências básicas de administração do sistema, ao passo que, no LPIC-2, além de ser obrigatório o candidato já possuir o LPIC-1, são abrangidas as habilidades de administração avançada do sistema operacional e de seus serviços. Já o LPIC-3 é projetado para candidatos “enterprise level”. O programa, desenvolvido com a participação de centenas de profissionais Linux em todo o mundo e com a contribuição de algumas das grandes empresas da esfera da tecnologia, representa também o nível mais elevado de profissionais Linux da indústria. Para se tornar LPIC-3,
é necessário ser aprovado em apenas um exame “central”, entretanto, caso o profissional queria se certificar em outras especialidades, como ambientes mistos, segurança, alta disponibilidade e virtualização, Web e outras, também há certificações e exames especializados já disponíveis ou em fase de desenvolvimento. O instituto auxilia ainda na criação e no desenvolvimento de outros programas de certificação para Código Aberto, como o Ubuntu Certified Professional (UCP), também disponível por meio da Prometric e de centros de testes Vue. A base do programa de certificação LPI gira em torno de quatro valores: relevância, qualidade, neutralidade e apoio. O LPI cresceu bastante desde sua inauguração, com vários afiliados ao redor do mundo firmando cada vez mais seu reconhecimento internacional.
Novos afiliados
No mundo inteiro, o LPI é representado por instituições locais na América Latina (sediada no Brasil, juntamente com o LPI Brasil), América do Norte, Europa, África e Ásia, com representantes da instituição em diversos países desses continentes. Os mais novos países afiliados ao LPI são Coreia do Sul, Tunísia, África do Sul, Egito, Paquistão, Emirados Árabes Unidos, Reino Unido e Itália. 37
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
CAPA | Certificações Linux
Valor do profissional
No momento, todo profissional é valorizado não apenas pelo seu conhecimento técnico, mas também por sua organização e seus métodos de trabalho. De nada adianta conhecer muito sobre um determinado serviço Linux sem saber conectá-lo de forma eficiente e segura à rede da empresa. Da mesma forma, não é visto com bons olhos o profissional “sênior” incapaz de demonstrar e colocar em prática tudo o que sabe, ou aquele que é capaz, mas o faz de forma desorganizada e deixa rastros de falhas de segurança, pontos únicos de falha (SPOFs) e scripts ingerenciáveis (as famosas gambiarras). Portanto, a combinação da certificação LPI com outras, vinculadas ou não a um fornecedor, pode ser uma arma poderosa. O ideal é sempre combinar áreas que sejam conectadas em algum determinado nível e momento. Alguns exemplos de combinações interessantes: Linux com áreas de armazenamento complexa: LPI + certificação de storage, backup, SAN, NAS etc. Ambientes Linux heterogêneos: LPI + certificações AIX, Solaris, Windows etc. Linux em ambiente virtualizado: LPI + certificação VMware, Citrix etc. Gerentes de Projetos Linux: LPI + PMP Ambientes Linux críticos: LPI + certificações de alta disponibilidade, clusters etc. Segurança da informação: LPIC + LPIC-3 Security, CISSP etc. Bancos de dados em clusters de alta disponibilidade em Linux: LPIC-3 High Availability + OCM, CMDBA etc.
Conteúdo atualizado
Os exames LPI foram recentemente atualizados com conteúdo definido com base nas novas tecnologias e
práticas utilizadas pelos profissionais Linux de hoje em dia. Vários assuntos foram incluídos, outros removidos ou diminuídos de acordo com sua relevância atual. Exemplos de conteúdos alterados são: o serviço de impressão CUPS substitui o LPRng; o servico de impressão tem peso menor; consultas básicas de SQL (insert, select, group by etc.) foram incluídas; recursos de acessibilidade foram incluídos: contraste de tela, atalhos no teclado, display braille etc.
conjunto de qualidades que o candidato deve comprovar e demonstrar no momento da seleção. Trapacear nas provas pode parecer vantajoso a princípio, mas com isso o candidato perde a importante oportunidade de fazer laboratórios, testar, errar, aprender e absorver conteúdo novo. Certamente isso fará diferença em um momento decisivo, pois nada substitui a prática. A certificação LPI pode, sim, ajudar um profissional a conseguir seu primeiro emprego ou um avanço na carreira.
O desenvolvimento dos exames é feito por profissionais Linux/Unix de forma constante, o que permite que as questões sejam consistentes e reflitam algo bem próximo da realidade dos administradores e de suas tarefas cotidianas. Portanto, as provas não são dificeis para quem já tem o hábito de executá-las diariamente.
As certificações da poderosa Red Hat, embora completamente focadas em uma única distribuição, têm boa visibilidade e grande aceitação no mercado corporativo, principalmente em virtude da presença do Red Hat Enterprise Linux no ambiente corporativo e da profundidade dos exames. Empresas que contratam profissionais e serviços de TI colocam na balança as vantagens dos certificados. É o caso do CS Storage Backup da IBM, Antônio Carlos Lopes Júnior. Contratado pela empresa no início de 2009, logo após a conquista do certificado RHCE (Red Hat Certified Engineer), o profissional de TI afirma que o certificado realmente pesou para a sua contratação. Segundo ele, a frase definitiva do contratante na etapa final desse processo de seleção foi: estou contratando um RHCE. Antônio Carlos conseguiu negociar melhor o salário e pôde demonstrar aos colegas um pouco do que aprendeu. Para quem trabalha com TI, o mercado de especialistas está repleto de ofertas, mas também de exigências. De acordo com Antônio Carlos Lopes Júnior, o dinheiro aplicado em certificados foi tido como uma fonte segura de rentabilidade para o futuro. Ele afirma que a quantia gasta em todos os cursos e certificados foi
Preparação
Existem várias formas de se preparar para os exames. Cursos, livros publicados e listas de discussão são alguns exemplos. O índice mantido pelo site do LPI [2] deve ser utilizado como referência para que o candidato compreenda os diferentes pesos dos tópicos e objetivos. Quanto maior o peso, maior o número de questões sobre o tema no exame.
O que esperar do LPI
As certificações LPI, assim como qualquer certificação, podem parecer garantia de emprego e sucesso, mas é importante atentar a alguns pontos. Em primeiro lugar, a certificação não deve ser utilizada para encobrir a falta de conhecimento em determinada área ou a falta de experiência prática. Além disso, apenas o fato de o profissional ser certificado não garante um bom emprego. A decisão final geralmente é baseada em um
Red Hat
38
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Certificações Linux | CAPA
recuperada em menos de dois meses de trabalho e que a maior vantagem foi o respeito obtido como profissional certificado dentro da equipe de trabalho, uma vez que conhecimento é algo que não se compra, mas que se conquista pelo esforço. O cenário nacional favorece a escolha dos certificados oferecidos pela Red Hat. É notório que o governo brasileiro tem incentivado bastante a adoção de Software Livre nas bases governamentais e que, a cada ano, as empresas privadas também têm usufruído desses benefícios, principalmente em projetos críticos, nos quais é fundamental tratar as informações com segurança, disponibilidade e desempenho. Nesse sentido, quando existe um orçamento restrito e a empresa não abre mão de ter flexibilidade e liberdade de escolha, o Linux empresarial é um sistema operacional que vem sendo muito considerado na arquitetura de TI do datacenter . Neste contexto, a Red Hat angaria, hoje, um número expressivo de profissionais certificados entre seus funcionários, parceiros, clientes e a comunidade do mundo Linux, oferecendo um programa sério de certificação, de amplitude e de reconhecimento global. Sua metodologia de aplicar provas de certificações é referência para o mercado, tanto que, segundo o IDC (IDC MarketScape IT Training Line of Business Study), a Red Hat detém uma das certificações mais admiradas no mercado mundial de TI. As certificações de especialização oferecidas pela Red Hat no Brasil para administradores são: RHCT (Red Hat Certified Technician) [3]: exame prático de duas horas, mede a competência do profissional em sistemas reais. Destina-se a quem está ingressando no universo da administração de sistemas Linux e cobre assuntos como instalação, configuração e administração básica
de sistemas Red Hat Enterprise Linux. O exame pode ser feito ao final do curso (RH133) ou de forma independente, caso o candidato já possua a experiência necessária [4]. RHCE (Red Hat Certified Engineer) [5]: exame prático de 3,5 horas, o RHCE mede a competência do profissional em sistemas reais e tarefas mais avançadas, como configuração de serviços de rede e procedimentos de segurança de servidores. Há duas modalidades de preparação, Standard Track (cursos RH033 + RH133 + RH253) e Rapid Track (somente o curso RH300). Assim como no RHCT, a modalidade de preparação depende da familiaridade do profissional com o conteúdo, sendo o Rapid Track voltado àqueles que já possuem habilidades em Unix e Linux. RHCDS (Red Hat Certified Datacenter Specialist): quem já possui certificação RHCE pode obter a certificação RHCDS após três exames: EX401, EX423 e EX436, que cobrem os assuntos de virtualização, serviços de diretório, autenticação, clusters e storage. RHCSS (Red Hat Certified Security Specialist): da mesma
forma que o RHCDS, o certificado RHCSS é destinado a profissionais certificados RHCE, e requer aprovação em três exames: EX333 (segurança de serviços de rede), EX423 (serviços de diretório e autenticação) e EX429 (administração de políticas SELinux). O certificado RHCSS, portanto, atesta as habilidades de segurança do profissional. RHCA (Red Hat Certified Architect): o certificado mais abrangente da Red Hat requer que o candidato já seja RHCE e engloba cinco exames nas áreas de serviços de rede, segurança, virtualização, autenticação, clusters, storage e monitoramento de sistemas, entre outras.
Entre os diferenciais oferecidos pelas certificações da Red Hat está a forma de aplicação prática do exame. Nela, o candidato precisa implementar todos os itens solicitados durante o exame. Isso evita que o aluno decore perguntas e respostas, além de ampliar a credibilidade da certificação no mercado de trabalho. Para se obter essas certificações, a Red Hat oferece cursos preparatórios em todo o Brasil, com duração média de quatro dias e com a aplicação do exame no quinto dia. n
Mais informações [1] Trovit: http://empregos.trovitbrasil.com.br/ [2] LPI: http://www.lpi.org/ [3] Certificação RHCT: https://www.redhat.com/certification/rhct/ [4] Definição do nível de conhecimento do candidato: http://www.redhat.com/apps/training/assess/ [5] Certificação RHCE: https://www.redhat.com/certification/rhce/
Sobre o autor Carlos Bokor é Gerente Regional de Serviços da Red Hat do Brasil. Bruno Gomes Pessanha é administrador sênior de sistemas Unix e Linux há mais de dez anos. É responsável por desenvolver e projetar infraestruturas de TI de alta disponibilidade.
39
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
As certificações CobiT e ITIL
CAPA
Governança certificada
Todos os profissionais de TI precisam conhecer as boas práticas e as orientações internacionais. É isso que oferecem as certificações CobiT e ITIL. por Bruno Guerreiro Diniz e Gustavo Thum Direito
E
m um mercado de trabalho cada vez mais complexo, diversos fatores são importantes para agregar valor ao profissional que busca um diferencial competitivo. Graduação? Pós-Graduação? Experiência profissional? Línguas estrangeiras? Sim, certamente todas estas são características fundamentais. Porém, um dos principais elementos neste quesito são as certificações profissionais. As certificações são importantes fontes de referência do profissional, pois indicam que o indivíduo foi avaliado e aprovado por uma entidade, demonstrando assim competência nos objetivos definidos pela prova de certificação em questão. Essas credenciais podem ser categorizadas em diversos tipos: técnicas ou conceituais, práticas ou teóricas, genéricas ou específicas por produto. Contudo, uma coisa é certa: ao contrário do que alguns pensam, tipos opostos de certificação não são perda de foco, mas complementam o perfil do profissional, fornecendo um conhecimento acerca do todo que o envolve. A figura 1 mostra uma cadeia de comando dentro de uma organização fictícia: a alta direção fornece as metas que devem ser alcançadas pela
organização; a gerência de TI, com apoio do conhecimento difundido pelo CobiT (Control Objectives for Information and related Technology) [1], pode então definir as metas objetivadas pela área para auxiliar a organização a alcançar seus objetivos; os coordenadores de TI podem então usar o modelo do ITIL (Information Technology Infrastructure Library) [2] para chegar ao resultado definido pela gerência de TI; por sua vez, os analistas poderão usar os conhecimentos específicos de cada área para realizar suas tarefas.
Diferencial
É claro que um profissional que almeja um profundo conhecimento técnico deve manter sua atenção principal voltada para sua área de foco, porém é fundamental para o profissional realizar seu trabalho de forma objetiva e pró-ativa. Para isso, ele deve conhecer claramente todos os modelos de gerência adotados por sua empresa, pois, com todos os conhecimentos adquiridos, é possível auxiliar a organização a alcançar as metas de produtividade que foram passadas à área de TI com o mínimo de custo necessário, ou seja, de forma eficiente.
Destaque
Alguns dos principais títulos não técnicos objetivados atualmente por profissionais na área de TI são os títulos de ITIL Foundation Professional e CobiT Foundation Professional, exatamente por serem os modelos comumente adotados pelas áreas de Tecnologia da Informação de diversas empresas. Vejamos um pouco mais sobre esses títulos, numa abordagem de cima para baixo (top-down) dentro da organização. Por que adotar esta forma de ver sua interdependência? Pois é extremamente importante saber quais são os objetivos da organização, saber “o que fazer” para posteriormente planejar “como fazer”, com o intuito de alcançar um objetivo único e alinhado.
40
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Governança | CAPA
CobiT
Comumente chamado apenas de CobiT, o Control Objectives for Information and related Technology trata-se de um conjunto de diretrizes baseadas em auditoria em processos, práticas e controles de TI. CobiT é um framework que representa as melhores práticas para governança de TI, auditoria de TI e aderência (compliance, para usar o termo mais comum). Voltado para a gerência de risco, utiliza-se dos pilares de integridade, confiabilidade e segurança e aborda quatro domínios: planejamento/organização (PO), aquisição/ implementação (AI), entrega/suporte (DS) e monitoração/avaliação (ME).
prazo de uma hora, devendo acertar no mínimo 70% da prova (28 questões) para ser aprovado. O exame deve ser agendado junto à ISACA por meio do site [4]. Um supervisor independente deverá ser indicado para acompanhar o exame. Todo o conteúdo abordado no exame de certificação é de responsabilidade da ISACA. Atualmente, o exame é disponibilizado apenas na língua inglesa. Além disso, a ISACA fornece certificações que estão relacionadas ao CobiT para auditores de sistemas e gerentes de segurança da informação, CISA [5] e CISM [6], respectivamente.
Certificação
Vantagens
A instituição responsável pelo CobiT é a ISACA [3] (Information Systems Audit and Control Association), que fornece um exame para atestar os conhecimentos básicos adquiridos na prova de certificação em CobiT Foundation. O candidato deverá responder a 40 questões dentro do
Um profissional certificado em CobiT Foundation tem como diferencial uma visão mais gerencial, preocupado em alinhar TI ao negócio da organização, podendo assim entender e discutir sobre os objetivos como um todo, dando prioridade à continuidade do negócio. Esse profissional
estará apto a auxiliar processos de auditoria de segurança e compliance.
ITIL
A sigla ITIL significa IT Infrastructure Library. Originalmente, a ITIL foi desenvolvida pela Agência Central de Computação e Telecomunicações (CCTA) do Reino Unido, órgão que controla e suporta a área de TI dos departamentos governamentais desse país. Como o objetivo de reunir boas práticas de trabalho, o ITIL foi, e ainda é, muito útil em termos de eficiência no suporte e no custobenefício de serviços de TI. ITIL fornece uma descrição detalhada de importantes práticas de TI, com checklists detalhados, tarefas e procedimentos que qualquer organização de TI pode adaptar às suas necessidades. É importante saber que o ITIL não define regras para o departamento de TI, mas boas práticas de mercado. É possível desenvolver uma boa gestão de TI sem que seja necessário aplicar todo o seu conteúdo – o mais importante é que se
Quais os resultados estratégicos objetivado s pela organização?
Decisão Estratégica da Organização
Que objetivos de TI devem ser alcançados visando entregar os resultados desejados?
CoBIT
Como alcançar os objetivos de TI especificados? (Processo a ser seguido)
ITIL
Como seguir os processos definidos e entregar os recursos necessários?
LPI LPIC
Cisco CCNA
Microsoft MCSA
O que?
...
Como?
Figura 1 Fluxograma do planejamento e da execução dentro das organizações.
41
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
CAPA | Governança
aproxime ao máximo da realidade da empresa. Todo o conteúdo de boas práticas do ITIL se encontra em uma série de livros, cada um abrangendo um tema de gestão de TI, entre eles: Estratégias de Serviço, Desenho do Serviço, Entrega do Serviço, Operações, Melhoria Contínua.
Programa
O programa completo do ITIL está distribuído em três níveis, sendo eles: Fundamentos, Intermediário e Avançado. O nível inicial (Foundation) concentra-se no conhecimento e compreensão dos conceitos fundamentais, da terminologia e dos processos de ITIL. No nível intermediário, há duas correntes: ciclo de vida e capacidade. O terceiro nível, Expert, é alcançado por profissionais com proficiência nas duas correntes do ciclo intermediário, ou seja, um profissional que conhece o framework do ITIL por completo.
Certificação
zação no processo de melhoria da entrega dos serviços de tecnologia da informação, visando aumento em sua produtividade e melhoria nos processos. O ITIL provê um método de trabalho baseado em regras e fluxos pré-estabelecidos, trabalhando de forma proativa e não apenas reativa, isto é, a simples resolução dos problemas depois que eles se manifestam.
Conclusão
Nos dias de hoje, é de fundamental importância que o profissional conheça o processo de trabalho de sua
organização de uma forma ampla, propiciando a melhoria contínua de seu trabalho, planejando e prevendo as tendências para não ser pego de surpresa. Os dois programas apresentados neste artigo oferecem ao profissional uma base de conhecimento com as melhores práticas de mercado adotadas por diversas empresas em suas áreas de TI. Esperamos que este artigo contribua com a sua busca por uma melhor qualificação profissional, não apenas técnica, específica, mas também organizacional, buscando o conhecimento do todo. n
Mais informações [1] CobiT: http://www.isaca.org/CobiT/ [2] ITIL: http://www.itil-officialsite.com/ [3] ISACA: http://www.isaca.org/ [4] Agendamento do exame CobiT: http://CobiTcampus.isaca.org/ [5] CISA: http://www.isaca.org/cisa/
O programa ITIL é controlado hoje pela OGC (Office of Government Commerce) [7], órgão de comércio do governo do Reino Unido, porém essa entidade apenas estabelece e controla as entidades credenciadas para preparar treinamentos oficiais, creditados pela OGC para realizar exames de certificação profissional. Dentre as diversas entidades credenciadas para realização de exames do ITIL, as principais são BCS-ISEB (British Computer Society – Information Systems Examinations Board) [8] e EXIN (Examination Institute for Information Science) [9]. Os exames de ambas as entidades podem ser realizados por meio dos centros de exames Prometric.
Gostou do artigo?
Vantagens
Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br
Ao obter o certificado em fundamentos ITIL, o profissional já terá a capacidade de auxiliar sua organi-
[6] CISM: http://www.isaca.org/cism/ [7] OGC: http://www.ogc.gov.uk/ [8] BCS-ISEB: http://www.bcs.org/server.php?show=nav.5732 [9] EXIN: http://www.exin-exams.org/
Sobre os autores Bruno Guerreiro Diniz é consultor de segurança da informação e tecnologia da informação certificado em fundamentos ITIL e LPIC-3 +security (LPI-303), com experiência na atuação em ambientes de missão crítica, como: NOC, SOC, resposta a incidentes e operação de ISPs. Gustavo Thum tem dez anos de experiência em TI e dedica-se à segurança da informação em empresas de grande e médio portes nos ramos bancário, siderúrgico e público. Obteve sucesso em projetos de segurança da informação e infraestrutura com uso das melhores práticas de mercado em gestão de projetos e modelos de referência como CobiT e ITIL. Na implantação de controles de segurança, tem como base a norma NBR ISO/IEC 17799:2005.
Este artigo no nosso site: http://lnm.com.br/article/3179
42
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Inclua em seu currículo a principal certificação Linux no mundo – LPI.
Em tempos de crise, soluções de código aberto – como o Linux – se destacam na adoção por empresas de todos os tamanhos, como solução ideal para aumentar eficiência nos negócios e reduzir custos. Atualmente há no mercado uma carência por profissionais certificados para atender a essa demanda crescente. Aproveite essa oportunidade e inclua em seu currículo a principal certificação Linux no mundo.
Inscrições e mais informações: www.lpi-brasil.org treinamentos@vectory.com.br Tel (11) 4082-1305
R
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Linux Professional Institute
Segurança da informação e suas certificações
CAPA
Certificação e segurança O que você deve esperar de uma certificação, especialmente em segurança da informação? por Anderson Ramos
A
área de segurança da informação é carente de cursos de graduação universitária. E esse não é um fenômeno regionalizado, pois acontece em diversos países. Durante a contratação, é procedimento padrão avaliar a formação universitária do candidato. Dependendo de onde ele estudou e do curso que fez, diversas suposições são feitas sobre sua capacidade, mas a empresa pouco sabe sobre o conhecimento e a experiência que ele possui em segurança da informação. Avaliar o histórico profissional ajuda, mas o contato diário que as pessoas têm em diferentes cargos – e a forma como isso é detalhado no currículo – pode significar uma série de coisas diferentes, deixando o empregador na dúvida. Há administradores de sistemas com mais experiência e conhecimento em segurança que muitos Chief Information Security Officers com anos de mercado. Isso definitivamente tem mudado, mas ainda levará um tempo até que os cursos estejam disseminados e centros de referência internacional se estabeleçam. As certificações profissionais tentam ocupar esse espaço, formando
uma ponte entre o empregador e o profissional. Vale sempre lembrar que o empregador é, na maioria das vezes, um departamento de recursos humanos que pouco conhece sobre o assunto, pelo menos na fase inicial da contratação. Usar certificações como um filtro para a escolha dos candidatos é um caminho atraente. Muitos consideram essa postura preguiçosa, ou mesmo incompetente, afirmando que os profissionais de RH deveriam se inteirar mais sobre o assunto a fim de evitar atitudes discriminatórias. Porém, parafraseando o Dr. Gregory House, esperar que isso vá acontecer um dia é a mesma coisa que esperar que os cachorros parem de se lamber. Simplesmente não vai acontecer. A razão é muito simples: os profissionais de RH têm perfil generalista e são diretamente responsáveis pelo acerto ou erro da contratação. Eles sempre buscarão posturas que diminuam o risco de serem culpados por um erro no processo. O pessoal de RH enfrenta diariamente o desafio de contratar profissionais para funções que eles pouco conhecem, razão pela qual usam mecanismos considerados preguiço-
sos, que na realidade são eficientes. Se, em vez de entrevistar 50 candidatos, o RH entrevistar apenas dez e conseguir um profissional que se encaixe no perfil, ele economizou uma quantia significativa e poupou muito trabalho. No final, certificação tem a ver com oportunidades. Existem excelentes profissionais sem certificação, assim como existem péssimos profissionais certificados. A quantidade de gente ruim vai depender da forma como a certificação é obtida e do que alguém considera eventualmente ruim. Conhecimento e experiência são apenas dois requisitos que um profissional precisa atender para arrumar um trabalho. Vários outros, como postura profissional ou habilidade de gerenciar equipes, simplesmente não são avaliados nas certificações. Se você conheceu um profissional que julgou arrogante e concluiu que ele era desse jeito por ser certificado, talvez você esteja equivocado. Pessoas com esse perfil não necessitam de títulos para se sentir “o máximo”. Em resumo, se você é um bom profissional, as certificações trarão mais oportunidades para mostrar isso,
44
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Segurança | CAPA
mas se você for um profissional ruim, não há certificação capaz mantê-lo em um emprego. Oportunidades são especialmente importantes quando se está em desvantagem em relação ao resto do mercado. Pode ser que você não tenha um diploma universitário – assunto que será tratado a seguir – ou que você esteja em um país onde as pessoas têm ideias pré-concebidas da sua capacidade ou postura em virtude da sua nacionalidade. Algumas certificações são consideradas valiosas não só no Brasil, mas em muitos outros países. Muitos profissionais que resolvem trocar de país não iniciam sua jornada sem antes obter títulos internacionalmente reconhecidos. Algumas certificações já foram explicitamente citadas em programas de concessão de vistos para estrangeiros. O CISSP (Certified Information Systems Security Professional), por exemplo, já apareceu como desejável nos programas de imigração do Canadá e da Austrália. Mesmo que você esteja trabalhando no Brasil, pode ser que você se encontre em uma multinacional. Assim, suas oportunidades estarão diretamente relacionadas à visão que seus superiores, que podem estar em outros países, têm de você. Metade dos alunos nos treinamentos preparatórios para o CISSP está nessa situação. Eles buscam o título para que seus pares em outros países reconheçam sua capacidade. Adicionalmente, certificações são uma forma prática de obter conhecimento. Você põe a mão no bolso para se inscrever em uma prova e, se não passar, fica com todo o prejuízo. Para muitos, isso é um ótimo estímulo para se dedicar aos estudos. Além disso, os exames costumam exigir conhecimentos importantes que nem sempre são usados com frequência no dia a dia, mas que são essenciais para uma formação completa. Praticamente todas as certificações em segurança da informação, com ex-
ceção do MCSO (Módulo Certified Security Officer), só estão disponíveis em inglês. Isso aumenta o nível de dificuldade para obter os títulos, mas força o candidato a obter um nível de proficiência maior no idioma de Shakespeare, item praticamente obrigatório para quem quer arrumar um bom emprego no mercado de tecnologia. Muitas pessoas são contra as certificações profissionais, mas geralmente enquadam-se em uma ou mais das seguintes categorias: aquele que já está inserido no mercado de trabalho, possui reconhecimento e está cheio de contatos: se você já tem uma rede de conhecidos e longa experiência no currículo em empresas de ponta, parte dos benefícios da certificação deixa de ser relevante. O filtro do RH já foi furado, provavelmente por um diploma universitário ou pela indicação de um colega; aquele que já sabe tudo: se a pessoa tem amplos conhecimentos, a ideia de usar a certificação como ferramenta de preparação perde a força; aquele que não gosta de estudar ou tem medo de fazer exames: essa é uma deficiência complicada para a carreira de qualquer profissional. Não gostar de absorver novos conhecimentos e não se sentir confortável para colocá-los à prova é um tipo de postura incompatível com a área de tecnologia, embora essas dificuldades sejam legítimas em muitas pessoas de potencial. Se você está lendo esse artigo, é bem provável que nem precise ser convencido de que as certificações profissionais são interessantes. Porém, é sempre bom encontrar argumentos favoráveis que ajudem a embasar suas posições e levá-lo a ver a situação por outros pontos de vista.
Valor da certificação
O valor de cada certificação vem principalmente da sua relação custobenefício. Como os custos de obtenção das certificações são conhecidos, o ideal é ter foco nos benefícios, que por sua vez dependem de uma série de fatores.
Reconhecimento e propósito do instituto Há 15 anos, a coqueluche do mercado de certificações técnicas eram os títulos da Novell. Depois, passaram a ser os da Microsoft e, hoje em dia, a percepção de valor de ambas é bastante reduzida quando comparadas ao momento de sua introdução no mercado (embora ainda tenham conteúdos muito importantes). No entanto, o problema da Novell é diferente do da Microsoft. As certificações Novell perderam espaço junto com a própria empresa. Já a Microsoft não parou de ganhar mercado nos últimos 15 anos e mesmo assim seus títulos foram perdendo valor e demandando uma reestruturação bem ampla. Há um conflito de interesses inerente a todas as certificações de fabricantes que é muito difícil de resolver. O programa de certificação da Microsoft (ou da Cisco, Novell, CheckPoint etc.) é irrelevante para a empresa em termos de faturamento. Seu objetivo é disseminar conhecimento sobre suas tecnologias, buscando dois efeitos: primeiramente, formar “vendedores”, pois quem gasta tempo e dinheiro aprendendo vira uma espécie de evangelizador; em segundo lugar, baratear o acesso à mão de obra qualificada. Porém, isso é conflitante com os interesses de quem se certifica, que sabe que uma certificação “mosca branca” paga mais e diminui a competição enfrentada. Por isso, existem empresas que priorizam certificações independentes de fornecedor, mantidas por institutos cuja missão única e 45
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
CAPA | Segurança
exclusiva é certificar profissionais. O zelo que esses institutos têm com seus programas é maior, pois esse é, muitas vezes, seu único ganha-pão. Além disso, certificações de fornecedores podem ser perdidas juntamente com a tecnologia em virtude de um sistema operacional novo, que exige novos exames (e novas taxas). Já nas certificações independentes de fornecedor, há programas de certificação continuada, nos quais quem se mantém trabalhando e atualizado recebe as renovações automaticamente. Apesar de tudo, é importante frisar também que a maioria dos fabricantes hoje tenta equilibrar ambas as necessidades por meio de títulos distintos, com certificações diferentes para atender a quem busca um título popular ou um de difícil obtenção.
ponto positivo pra quem consegue se destacar.
Quantidade de profissionais
Ética
Não tem jeito: quanto mais gente tem um certificado, menor é a remuneração. Quanto mais o mercado precisa dele, mais caro se paga. Lógico, esse não é o único fator determinante da remuneração do profissional certificado, mas tem forte peso. Fique de olho na hora de escolher e veja se quem certifica está preocupado em controlar o fluxo de pessoas certificadas ao mercado.
Eficácia da avaliação
Em geral, as certificações buscam avaliar conhecimentos. A grande maioria faz isso por meio de provas de múltipla escolha. Exceções importantes são as certificações Gold e Platinum do SANS (SysAdmin, Audit, Network, Security), nas quais o candidato deve entregar uma pequena monografia escrita e fazer um teste prático. Provas de certificação não são fáceis. Não há caminho fácil para lugares que valham a pena. Dificuldade significa
Experiência
Em algumas certificações, não basta conhecimento: o candidato precisa comprovar experiência. Em outras, o requisito pode chegar a cinco anos. Existem pessoas que mentem ao enviar seus dados. Porém, os institutos costumam ter auditoria por amostragem e canais para denúncia – se um profissional for flagrado mentindo, perde o certificado e fica impossibilitado de obtê-lo novamente. Encare esse requisito como uma regra do jogo e não minta, pois você está contribuindo para o valor do título que poderá obter no futuro. Alguns institutos oferecem caminhos específicos para quem ainda não tem a experiência necessária. Siga por eles. Na maioria dos países, não existe uma entidade de representação de classe responsável por regula-
mentar o mercado de segurança da informação. Os institutos tentam, mesmo que de maneira tímida, estabelecer códigos básicos de conduta cujo cumprimento é obrigatório. Muitas empresas receiam contratar profissionais de segurança da informação: afinal, quem guarda os guardas? Os samurais tinham um código de ética, e os profissionais de segurança da informação também precisam ter se quiserem criar uma imagem de confiança em torno de si.
Certificações disponíveis Há basicamente dois tipos de certificações: genéricas e específicas. É fácil deduzir que as genéricas são mais procuradas, especialmente em mercados não muito maduros como o nosso. Profissionais polivalentes no Brasil costumam ter vantagens em relação a especialistas, mas a tendência é isso mudar muito. Títulos
Depoimento do autor Muitos acham que eu defendo certificações profissionais por prestar serviços diretamente para empresas que atuam nesse segmento. Quem me conhece desde o começo da carreira, porém, sabe que não é bem assim. Sempre fui entusiasta do assunto e hoje me sinto bastante realizado de fazer parte de instituições cujas certificações me ajudaram a chegar onde estou. Eu não tinha tempo, nem recursos, mas sabia que tinha uma capacidade boa de aprendizado e absorção de conhecimento, requisitos fundamentais para trabalhar na área de tecnologia, especialmente com consultoria e suporte, outra paixão antiga minha. As certificações me ajudaram a mostrar isso. Os profissionais que eram contratados para trabalhar nas empresas por onde passei tinham títulos universitários de renome, de instituições como USP e FEI. Eu simplesmente não tinha como obtê-los. Isso não significa que, em termos de formação, eu pense que uma certificação substitua um diploma universitário. Longe disso. Tanto é que na primeira oportunidade que tive, me engajei na obtenção de um, em uma universidade fora do Brasil. Porém, as certificações me ajudaram a “furar” o filtro do RH num prazo mais curto e com um custo baixo. Sem isso, eu jamais teria obtido o dinheiro necessário para bancar uma faculdade boa. Depois que eu arrumei meu primeiro emprego para trabalhar com consultoria, as certificações me permitiram ganhar espaço. Consultorias precisam de profissionais certificados para ganhar licitações ou manter o status de revenda autorizada dos fabricantes. Na prática, nunca desembolsei um tostão para pagar as provas. Nessas empresas, costuma imperar a seguinte regra: elas pagam o valor das provas, desde que você passe.
46
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Segurança | CAPA
específicos aprofundam o conhecimento na área estudada, como perícia ou desenvolvimento de software. Porém, apenas quem precisa desse perfil procura tais certificações. Avalie o seu objetivo profissional e tome a decisão compatível. Você quer um primeiro emprego na área ou quer partir para nicho específico? Na área da segurança da informação, as principais certificações disponíveis são CISSP, GIAC, CISA e MCSO, descritas a seguir.
certificações são obtidas por meio de exames, mas se o candidato escrever uma monografia sobre o tema, há uma distinção especial. Há também exames práticos para certos títulos. Por serem certificações muito específicas, muitas vezes não são reconhecidas pelos empregadores, mas apenas por outros profissionais e, eventualmente, empresas de consultoria. Porém, são as mais respeitadas para quem busca títulos técnicos independentes de fornecedor. Os cursos do SANS, como os do (ISC)², são referência internacional de qualidade.
CISSP
CISA
Segurança
Se você está na área de segurança da informação ou tem simpatia por ela, dificilmente ainda não ouviu falar do CISSP. É uma das certificações mais antigas, mas ainda assim procuradas pelo mercado. Quem aplica os exames é o (ISC)² (pronuncia-se “ISC ao quadrado”) [1]. Seu foco é generalista e foi desenhada para gestores e consultores, mas técnicos também procuram o título justamente para obter ou demonstrar uma formação mais ampla. A prova possui 250 perguntas divididas em dez domínios, que devem ser respondidas em seis horas. O candidato precisa ter cinco anos de experiência na área, mas existem caminhos disponíveis para quem ainda não atende a esse requisito. Há exames e cursos de formação disponíveis no Brasil regularmente.
GIAC
A família de certificações GIAC é mantida pelo SANS [2], instituto de certificação, treinamento e pesquisa muito tradicional. São conhecidas por sua profundidade técnica, já que existem vários GIACs, dependendo da área de especialização escolhida pelo candidato. É possível ainda acumular vários GIACs e buscar títulos de grande impacto que menos de 20 pessoas no mundo possuem. As
O título CISA é focado no mercado de auditores de sistemas de informação. Essas certificações são extremamente respeitadas, mas seu conhecimento é limitado a grandes empresas de capital aberto que possuem grandes departamentos de auditoria e podem se dar ao luxo de ter um auditor especializado em tecnologia e segurança. Quem aplica os exames é o ISACA [3], o mais
antigo dos institutos mencionados neste artigo.
MCSO
O título MCSO é reconhecido quase que exclusivamente no mercado brasileiro, sendo considerado um exame mais fácil que os outros três, o que lhe traz, portanto, menos reconhecimento. Porém, é o único exame disponível em português. Para quem possui dificuldade com o idioma inglês, este é o caminho natural. A certificação é parcialmente independente de fornecedor, pois a Módulo [4], empresa responsável pelo título, não é exatamente um instituto de certificação. O recente reposicionamento de mercado feito pela empresa tem levado a questionamentos a respeito do futuro do programa, mas hoje é o título mais popular, contando com cerca de 800 profissionais certificados (contra 250 CISSPs, por exemplo). Uma cobertura ainda maior de diversas outras certificações está disponível em [5]. n
Mais informações [1] (ISC)²: http://www.isc2.org/ [2] SANS: http://www.sans.org/ [3] ISACA: http://www.isaca.org/ [4] Módulo: http://www.modulo.com.br/ [5] Blog do autor Anderson Ramos: http://aramos.org/category/artigos/
Sobre o autor Anderson Ramos trabalha na área de Business Development nas Américas do Sul e Central, na (ISC)2.
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3186
47
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Como usar múltiplos volumes em RAID com o SVM
TUTORIAL
OpenSolaris, parte 8 Conheça o Solaris Volume Manager e veja como usá-lo para criar e gerenciar volumes RAID 0 e 1 com múltiplos volumes. por Alexandre Borges
N
esta continuação, prossegue a abordagem sobre sistemas de arquivos em OpenSolaris.Vamos falar – por que não? – um pouco mais do UFS (Unix File System), com foco em quatro dos seus tópicos mais importantes: Solaris Volume Manager, Backup/Restauração, Snapshots e Swap.
Solaris Volume Manager Nos artigos anteriores, todos os aspectos de criação de sistemas de arquivos ficaram restritos a apenas um disco ou, mais especificamente, partições desse mesmo disco. Relembrando, as etapas necessárias para trabalhar com arquivos e diretórios em UFS são: particionar o disco (comando format),; criar um novo sistema de arquivos (comando newfs); disponibilizar a informação (comando mount).
Para dar um passo adiante, seria interessante poder estender o uso do UFS, porém, apenas com as ferramentas que vimos até agora, isso é impossível. Três características desejadas são: expandir o tamanho do sistema de arquivos; criar volumes em RAID; poder criar mais de sete partições em um disco. Nativamente, o OpenSolaris não permite qualquer uma destas operações. O próprio UFS sofre de uma limitação intrínseca que permite aumentar o tamanho do sistema de arquivos (grow), Mas que, não permite diminuí-lo (shrink). Outros sistemas de arquivos como o ZFS e o VxFS da Symantec permitem estas duas operações. O Solaris Volume Manager é um software que já vem junto com o OpenSolaris e permite resolver nossos problemas. Toda a sua configuração
é mantida em um banco de dados dentro do sistema operacional, banco esse tido como a primeira preocupação do administrador para gerenciá-lo e fazer réplicas (cópias) deste, pois, em caso da perda da base de dados, todas as configurações e dados dos volumes gerenciados com o Solaris Volume Manager serão perdidos. De tão essencial que é esse banco de dados (chamada de meta database ou metadb), é desejável preocuparse em colocá-los em partições separadas e, preferencialmente, discos separados do sistema, para que, em caso de defeito em um dos discos, as outras réplicas não sejam perdidas. O tamanho da partição deve ser de no mínimo 4 MB, contudo, é recomendável um valor ligeiramente maior. O número de réplicas sugerido para qualquer ambiente é três, mas pode ser maior, dependendo da complexidade e do número de discos presentes na máquina. Essas
48
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
OpenSolaris | TUTORIAL
partições devem estar vazias, ou seja, não é possível criar os metadb em uma partição que já contenha dados. Para criar as réplicas do metadb no Solaris, os comandos são: # metadb -af c8t1d0s7 # metadb -a c8t2d0s7 # metadb -a c8t3d0s7
Alguns itens importantes desses comandos: foram escolhidas partições vazias em discos distintos da mesma máquina; a opção -a significa add, ou seja, representa a adição de uma réplica; a opção -f deve ser usada apenas na criação da primeira réplica. A listagem 1 demonstra a verificação da criação dessas cópias do metadb. Se necessário, é possível adicionar múltiplas réplicas em uma mesma partição (o que exige, naturalmente, uma partição maior) caso o leitor não possua diversos discos na máquina de testes:
ser criadas réplicas adicionais para repor as réplicas perdidas. Para iniciar o OpenSolaris em single mode é necessário escolher edição (tecla [E]) no menu do Grub, localizar a linha do kernel do OpenSolaris e acrescentar ao seu final o parâmetro -s. Feito isso, basta iniciar o sistema com a tecla [Esc] seguida de [B]. Quando o OpenSolaris iniciar em single mode, deve-se apagar qualquer réplica que esteja corrompida ou cujo disco não esteja mais presente (metadb -r c#t#d#s#) e depois adicionar novas réplicas usando metadb -a c#t#d#s#.
Novos volumes
O próximo passo é criar volumes em RAID usando o Solaris Volume Manager. Observe os comandos a seguir: # metainit d8 1 1 c8t1d0s5
Neste caso, foi criado um stripe (RAID 0) que contém um único slice. Este é o volume mais simples que pode ser criado usando SVM. Partindo para um exemplo mais interessante: # metainit d31 2 1 c8t2d0s0 c8t3d0s0
Este comando possui algumas particularidades. Todos os volumes criados com SVM devem seguir a notação d##, em que ## representa um número de dois dígitos. Neste caso, o volume criado é o d31. Além disso, esse comando criou um volume na configuração RAID 0 Concat com dois stripes dentro (representado pelo primeiro número 2), no qual cada stripe consiste em apenas um slice (os outros dois números 1 do comando). A criação de
Listagem 1: Verificação de backups do metadb # metadb flagsfirst blkblock count a u 168192/dev/dsk/c8t1d0s7 a u 168192/dev/dsk/c8t2d0s7 a u 168192/dev/dsk/c8t3d0s7
# metadb -a -c 3 c8t4d0s4
Neste caso, foram adicionadas três réplicas na mesma partição. O problema potencial que pode ser enfrentado é que, em caso de desastre e perda desse disco, todas as réplicas estarão perdidas e, com elas, todos os dados e as configurações envolvidas com o Solaris Volume Manager. É conveniente frisar que o OpenSolaris somente continuará rodando se ao menos metade das réplicas desses metadbs estiverem presentes. Caso haja um número que isso, o sistema poderá sofrer uma pane (reinício acompanhado de dump da memória para a área de swap). Se isso realmente ocorrer, o OpenSolaris deve ser reiniciado em single mode. Neste nível de serviço, devem
Listagem 2: Exibição do volume criado com o comando metastat # metastat d31: Concat/Stripe Size: 204800 blocks (100 MB) Stripe 0: Device Start Block DbaseReloc c8t2d0s0 0 No Yes Stripe 1: Device Start Block DbaseReloc c8t3d0s0 0 No Yes Device Relocation Information: Device RelocDevice ID c8t2d0 Yes id1,sd@f00cd33fe4aff1dfd0009430b0009 c8t3d0 Yes id1,sd@f00cd33fe4aff1e33000d181e000a
49
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
TUTORIAL | OpenSolaris
volumes no SVM pode ser um pouco estranha: é como se houvesse um volume maior externo (d31) composto por volumes simples internos (com apenas um slice em cada um deles). Por último, a criação de volumes concatenados é apropriada quando se deseja unir dois slices de discos diferentes e criar assim um volume maior; ou seja, podemos concatenar dois slices de 50 MB e criar um volume de 100
MB. O ponto em que vale ressalva é que volumes concatenados não oferecem ótimo desempenho, já que os dados são escritos sequencialmente, isto é, primeiro será preenchido um slice e depois o outro, sem distribuição da escrita como no caso de um volume em RAID 0 Stripe. Para mostrar o volume criado, basta usar o comando metastat como na listagem 2.
Listagem 3: Criação de RAID 1 com o SVM # # # # #
metainit d4 1 1 c8t2d0s1 metainit d5 1 1 c8t3d0s1 metainit d40 -m d5 metattach d40 d4 metastat d40
Agora que o volume foi criado, é necessário criar também o sistema de arquivos para que seja possível armazenar dados. Mas onde?
Sistema de arquivos
Quando volumes são produzidos no SVM, o caminho natural dos discos (/dev/dsk ou /dev/rdsk) não é mantido, mas modificado para informar o uso de “metadevices”. Com isto, o nome do caminho passa a ser /dev/md/dsk/d## ou /dev/md/rdsk/d##. Diante disto, para criar um novo sistema de arquivos no volume d31, basta usar o comando: # newfs /dev/md/rdsk/d31
A montagem desse sistema de arquivos é igualmente fácil:
d40: Mirror Submirror 0: d5 State: Okay Submirror 1: d4 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 102400 blocks (50 MB)
# mount /dev/md/dsk/d31 /mnt
RAID 1
d5: Submirror of d40 State: Okay Size: 102400 blocks (50 MB) Stripe 0: Device Start Block Dbase c8t3d0s1 0 No
State Reloc Hot Spare Okay Yes
d4: Submirror of d40 State: Okay Size: 102400 blocks (50 MB) Stripe 0: Device Start Block Dbase c8t2d0s1 0 No
State Reloc Hot Spare Okay Yes
Device Relocation Information: Device RelocDevice ID c8t3d0 Yes id1,sd@f00cd33fe4aff1e33000d181e000a c8t2d0 Yes id1,sd@f00cd33fe4aff1dfd0009430b0009
Até aqui, criamos volumes na configuração de RAID 0. Se for preciso criar volumes em RAID 1 (mirror, espelhamento), o roteiro é quase o mesmo. Na realidade, o volume em RAID 1 não pode ser construído diretamente a partir de slices físicos do disco; é necessário criar dois subvolumes simples em RAID 0, um para cada slice, e depois criar um volume final (em mirror) contendo esses subvolumes simples. A listagem 3 mostra os comandos para realizar essas tarefas e a verificação (metastat) ao final. Há alguns pontos a notar nesta sequência de comandos. Em primeiro lugar, foram criados dois subvolumes simples em RAID 0 (d4 e d5), cada um com apenas um slice (c8t2d0s1 e c8c3d0s1, respectivamente). Depois disso, foi criado um volume em mirror chamado d40 (opção -m), inicialmente apenas com um subvolume (d5). No comando se-
50
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
OpenSolaris | TUTORIAL
guinte, o segundo subvolume (d4) foi anexado pelo comando metattach, finalizando assim a criação do volume em mirror d40. Sobre o volume d40, poderia ser criado um sistema de arquivos (com o comando newfs), para então ser montado para uso. Porém, não o faremos neste momento, pois o volume d40 será aproveitado em soft partitions mais adiante.
Listagem 4: Retirada de um subvolume do volume
Espelhamento “a quente”
d4: Submirror of d40 State: Okay Size: 102400 blocks (50 MB) Stripe 0: Device Start Block Dbase c8t2d0s1 0 No
Até aqui, as tarefas foram realmente fáceis, porém, surge outra pergunta: e se já houvesse um slice com dados e quiséssemos manter esses dados e ao mesmo tempo construir um mirror do slice? O procedimento seria quase idêntico, todavia, o primeiro subvolume a ser criado – d4, no nosso caso – deveria receber também a opção -f no comando de criação, para manter os dados iniciais do slice. Os passos simplificados, supondo que o slice com dados estivesse montado em /docs/, seria: # # # # # # #
metainit d4 -f 1 1 c8t2d0s1 metainit d40 -m d4 umount /docs mount /dev/md/dsk/c8t2d0s1 /docs metainit d5 1 1 c8t3d0s1 metattach d40 d5 metastat d40
Atenção: é possível que o volume final (d40) não esteja pronto após o comando metattach, pois é necessário um certo tempo para ressincronização dos dados, de uma cópia do subvolume que já tinha dados ( d4) para um vazio (d5), deixando assim o volume d40 configurado com o espelhamento das informações. O Solaris Volume Manager é um produto sólido e, da mesma maneira que permite construir mirrors, é possível também remover um dos
# metastat d40: Mirror Submirror 0: d4 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 102400 blocks (50 MB)
State Reloc Hot Spare Okay Yes
d5: Concat/Stripe Size: 102400 blocks (50 MB) Stripe 0: Device Start Block DbaseReloc c8t3d0s1 0 No Yes
subvolumes (chamados de submirrors). Isso significa que o volume continua com os dados, mas sem qualquer redundância. Por exemplo, supondo o caso anterior, em que tínhamos o volume d40 com dois subvolumes (submirrors) d4 e d5, é possível remover um dos componentes (já que ambos têm a mesma informação) de maneira que d40 continue mantendo seus dados, embora sem duplicidade:
# metadetach d40 d5
Esse comando retira o submirror d5 do volume d40. Se o leitor verificar (listagem 4), o volume d40 tem agora apenas um único subvolume (d4). Repare que o volume d40 tem apenas um submirror (d4) e que o volume d5 é apenas um volume normal. Sua remoção será abordada no próximo artigo desta série. n
Sobre o autor Alexandre Borges é Especialista Sênior em Solaris, OpenSolaris e Linux. Trabalha com desenvolvimento, segurança, administração e performance desses sistemas operacionais, atuando como instrutor e consultor. É pesquisador de novas tecnologias e assuntos relacionados ao kernel.
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3175
51
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Visão computacional
TUTORIAL
Máquinas que enxergam Use a visão computacional com suas diversas técnicas para melhorar a acessibilidade dos sistemas. por Alessandro de Oliveira Faria (Cabelo)
S
egundo a Wikipédia, “Visão computacional é a ciência e tecnologia das máquinas que enxergam. Ela desenvolve teoria e tecnologia para a construção de sistemas artificiais que obtêm in-
A
formação de imagens ou quaisquer dados multidimensionais. Exemplos de aplicações incluem o controle de processos (como robôs industriais ou veículos autônomos), detecção de eventos, organização de informação,
modelagem de objetos ou ambientes e interação (atrelado à interação homem-computador).” Projetos de biometria, realidade aumentada e robótica utilizam reconhecimento de padrões
B
Figura 1 Esta imagem (A) pode ser tratada com o reconhecimento de arestas de forma a gerar a imagem B.
52
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Visão Computacional | TUTORIAL
Figura 2 A técnica de detecção de cantos permite encontrar diferenças entre duas imagens.
e processamento de imagens em tempo real. Como consequência, as câmeras ultimamente vêm ganhando inteligência em função dos algoritmos de visão computacional. Essa tarefa demanda conhecimentos matemáticos, fundamentos relacionados a imagens e conhecimentos sobre manipulação de vídeo ao vivo, como também, para maior eficiência, otimização no uso da arquitetura de hardware e utilização de processadores com múltiplos núcleos. Aplicar processos de visão computacional em fluxos de vídeo ao vivo é uma tarefa morosa devido ao grande consumo de processamento matemático. Entretanto, atualmente existem diversas bibliotecas projetadas para facilitar o aprendizado e o desenvolvimento de tarefas como essa, proporcionando assim diversas funções para o segmento do processamento de vídeo digitais. As bibliotecas Mimas [1] e OpenCV [2], por exemplo, permitem o processamento de imagens estáticas ou ao vivo. Podem ser aplicadas em reconhecimento de face, expressão, gestos, objetos, rastreamento e detecção de movimentos e também análise de movimentos, entre outras infinitas aplicações. As bibliotecas de visão computacional apresentam recursos de manipulação de imagem, en-
trada e saída de vídeo, cálculo de matriz, álgebra linear, morfologia matemática, análise estrutural, reconhecimento de objetos e gráficos primitivos. Geralmente, o processamento de imagens tem como principal objetivo obter uma nova figura ou quadro, nos quais o resultado apresenta um determinado resultado comparado à imagem inicial ou anterior. Diversas técnicas para manipulação de imagens são utilizadas geralmente para um posterior processamento. A técnica de suavização é utilizada para borrar ou embaçar a imagem, geralmente com o objetivo de eliminar ruídos ou detalhes da figura. Os processos mais utilizados são a suavização com o somatório dos pixels vizinhos, ou mediana de uma vizinhança, entre outros tipos.
Arestas
Um método de manipulação de imagens bem conhecido é a detecção de arestas, relativamente simples quando comparada a outros recursos no segmento de visão computacional. Ele consiste basicamente em processar uma imagem de entrada e localizar e exibir a descontinuidade das intensidades rastreadas (figura 1).
Segmentação
Podemos entender como uma forma de segmentação a submissão de imagens para processamento com fins de localização de figuras ou modelos específicos. Um exemplo de uso disso é a separação entre objetos específicos do fundo e da imagem (figura 3). Portanto, essa é uma técnica muito utilizada em projetos de realidade aumentada.
Tudo junto
A junção de processos também é uma técnica muito comum. Por exemplo, é possível utilizar o realce matemático junto ao processo de separação de modelos, tendo como
Figura 3 Ao separar o fundo do restante da imagem, é possível inserir uma figura externa à imagem original.
Cantos
O método de detecção de cantos, por sua vez, pode ser utilizado para rastrear objetos. Essa técnica consiste basicamente na extração da característica a partir de uma determinada imagem para posteriormente submetê-la a comparações de desigualdade. Nesse caso, características do quadro atual são comparadas à imagem base para ser processadas, obtendo assim as diferenças entre os dois e, por conseqüência, localizando os pontos com na figura 2.
Figura 4 A rotulação de imagem binária permite usos interessantes em Realidade Aumentada, como a detecção de figuras pré-definidas em uma imagem apresentada à câmera.
53
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
TUTORIAL | Visão Computacional
Figura 5 Com a biblioteca Bazar, é possível inserir uma figura como base...
mera por meio do fluxo de cada pixel, ou com base na semelhança e na combinação de amostras.
que o simples uso de fotografias subverta o processo de verificação [4]. O projeto ehci [5] é um bom começo para prova de conceito.
Bazar
Reconhecimento de objetos
A biblioteca Bazar [3] utiliza técnicas de rastreamento e análise de pixels para produzir uma aplicação de realidade aumentada. A instalação dessa biblioteca é simples: bastam os comandos padrão ./configure && make && sudo make install após baixar e des-
compactar o código-fonte. Além disso, ela é bem fácil de utilizar. Ao executá-la, é possível apresentar um objeto à câmera (figura 5) e em seguida usá-lo de forma interativa com uma figura inserida na imagem pelo computador (figura 6).
Figura 6 ...para usá-la como apoio para um objeto virtual.
resultado final o que se denomina detecção de linhas. Em projetos de realidade aumentada, a imagem é realçada usando os processos de detecção de arestas e separação de modelos, seguidos da tarefa de traçado de contornos. A rotulação de imagem binária também é um processo importante dentro do campo da realidade aumentada, pois significa determinar um valor único de cor para cada pixel pertencente a uma determinada região (figura 4).
Fluxo óptico
A técnica de fluxo óptico se baseia no rastreamento dos pixels. Ela permite estimar o deslocamento dos pixels em até três dimensões. Uma das aplicações desse recurso é o reconhecimento facial na autenticação (figura 7), de forma a impedir
Utilizando classificadores, é possível identificar objetos presentes num vídeo ao vivo ou em quadros estáticos. O treinamento é efetuado com a seleção de diversas imagens positivas (objeto presente na imagem), com o objeto presente em diversos ângulos e condições de iluminação. Outro grupo de imagens são agrupadas sem a presença do objeto (imagens negativas). Esse grupo de imagens é utilizado no treinamento com cascata de classificadores para posterior detecção. Exemplos de aplicação para o reconhecimento de padrões treinados são os processos para contagem de pessoas em tempo real. Neles, um processo analisa em paralelo o fluxo de vídeo ao vivo, reconhecendo assim padrões de corpos humanos e rastreando seu movimento durante sua passagem pelo campo de visão da câmera (figura 8). Outro exemplo de aplicação da visão computacional é o projeto kmando [6], um sistema de projetor
Rastreamento
No segmento de visão computacional, o rastreio de objetos (object tracking) é um recurso muito interessante. Com ele, é possível acompanhar o percurso de um objeto em tempo real, isto é, rastrear um objeto em movimento em frente a uma câ-
Figura 8 Usando o reconhecimento de face em três dimensões, não basta apresentar uma fotografia sua para alguém fazer login com o seu usuário.
54
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Visão Computacional | TUTORIAL
do site do projeto [2], descompacte-o e execute os tradicionais comandos: ./configure make sudo make install
Conclusão
Figura 8 A pós o devido treinamento,
é possível contar quantas pessoas estão presentes numa imagem e até rastrear seu movimento num vídeo.
interativo baseado em processamento em tempo real. Após o treinamento da câmera junto ao sistema, é possível mover o cursor do mouse por meio de uma caneta hidrocor ou objeto semelhante. O eViacam [7] é um projeto que explora bem os recursos mencionados neste artigo. Voltado à acessibilidade, ele fornece uma interface para interpretar os movimentos da face e convertê-los em movimentos e ações para o cursor do mouse, como mostra o vídeo em [8]. A acessibilidade computacional significa prover a pessoas portadoras de necessidades especiais a capacidade de operar computadores de forma transparente. Para atingir tal objetivo, nada mais lógico e sensato que o aproveitamento da evolução do hardware e software para o desenvolvimento de mecanismos e interfaces, como faz o eViacam [9].
OpenCV
A área de visão computacional é tão ampla que talvez seria necessário um livro para explanar todos os tópicos. Este artigo demonstra o potencial dos algoritmos de visão computacional agregados a qualquer dispositivo de videocaptura, pois esses conceitos matemáticos estarão presentes em todos os dispositivos (webcams, celulares, câmeras digitais, filmadoras e outros equipamentos) em curtíssimo prazo. n
Sobre o autor Alessandro Faria é sócio-proprietário da NETi Tecnologia, fundada em junho de 1996 e especializada em desenvolvimento de software e soluções biométricas. Ele é consultor biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986. Leva o Linux a sério desde 1998, desenvolve soluções de código aberto, é membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca de código aberto de vídeo captura, entre outros projetos dos quais faz parte.
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3169
Mais informações [1] Mimas: http://vision.eng.shu.ac.uk/mediawiki/index.php/Mimas [2] OpenCV: http://sourceforge.net/projects/opencvlibrary/ [3] Biblioteca Bazar: http://cvlab.epfl.ch/software/bazar/index.php [4] Biometria facial na autenticação do usuário root: http://tinyurl.com/y9jrbk9 [5] Projeto ehci: http://code.google.com/p/ehci/ [6] Projeto kmando: http://vision.eng.shu.ac.uk/mmvlwiki/ index.php/Interactive_Camera-Projector_System [7] eViacam: http://eviacam.sourceforge.net/ [8] Movimentos do mouse com a face: http://tinyurl.com/o5pjb4 [9] Uso do eViacam para acessibilidade: http://www.vivaolinux.com.br/ artigo/Acessibilidade-Movimentos-do-mouse-com-a-face-(eViacam) [10] Jogo Levelhead (Realidade Aumentada): http://tinyurl.com/cwhqrc [11] Zebra Barcode Reader: http://tinyurl.com/ybwwnef
A biblioteca livre OpenCV (Open Source Computer Vision) reúne vários algoritmos de visão computacional para integração a qualquer aplicativo. Para instalá-la a partir do código-fonte, baixe o pacote compactado a partir
[12] ARToolKit: Criação de aplicativos de Realidade Aumentada: http://tinyurl.com/y8hmh4r [13] Acessibilidade para tetraplégicos em Li NETi: http://www.youtube.com/watch?v=kuNlXznWRZ4
55
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
REDES O pequeno e poderoso servidor web e proxy reverso Nginx
Web mais rápida O rápido e prático servidor web Nginx é fácil de configurar e estender. por Jeremy Garcia
O
Nginx (a pronúncia correta é êndjinn-éks) [1] é um servidor HTTP e proxy reverso de código aberto. Conhecido por sua alta performance, estabilidade, grande número de opções, facilidade de configuração e baixo consumo de recursos. O Nginx, escrito por Igor Sysoev, é utilizado em muitos sites de grande porte, incluindo WordPress. com, Hulu e LinuxQuestions.org. Além de sua funcionalidade com
HTTP, o Nginx também pode servir como proxy IMAP/POP3. O suporte básico do Nginx a HTTP inclui a capacidade de servir arquivos estáticos, proxy reverso acelerado com cache opcional, um balanceamento de carga simples, tolerância a falhas, FastCGI remoto com caching e aceleração e server name indication (SNI) SSL/TLS. Assim como o httpd do Apache, o Nginx possui muitos recursos que
Tabela 1: Infraestrutura Máquina
IP público
IP interno
nginx
10.0.0.1
192.168.1.1
web01
nenhum
192.168.1.2
web02
nenhum
192.168.1.3
são implementados de maneira modular e só precisam ser habilitados se necessários. Diferentemente do httpd baseado em processos, o Nginx é assíncrono. A maior vantagem disso é a escalabilidade. Por um lado, em um servidor baseado em processos, cada conexão simultânea necessita de uma thread, o que pode levar a um overhead significativo, principalmente sob carga intensa. Por outro, um servidor assíncrono se baseia em eventos e lida com as requisições em uma única thread (ou, pelo menos, algumas poucas).
Instalação
Se você já tem um site simples ou está começando um do zero, é bem possível que você possa deixar o Apache de lado e usar o Nginx para to-
56
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Nginx | REDES
das as suas necessidades com HTTP. Nesse caso, é recomendável visitar a página de módulos do Nginx [2] e verificar se todos os recursos necessários estão disponíveis. Este artigo descreve um uso comum do Nginx como proxy reverso com balanceamento de carga em múltiplos backends httpd do Apache. O Nginx serve algum conteúdo estático e, depois, compacta automaticamente o conteúdo dinâmico do httpd via proxy. A maioria das distribuições GNU/ Linux possui o Nginx nos repositórios de pacotes, por isso, é possível instalá-lo facilmente com o gerenciador de pacotes padrão. Se a sua distribuição não oferecer um pacote, ou se o pacote oferecido for antigo demais, visite http://nginx.net/ e baixe a última versão estável (0.7.63 no momento da produção deste artigo). A instalação envolve o processo padrão ./configure && make && sudo make install. É recomendável verificar as opções de configuração disponíveis e adaptá-las ao seu ambiente, apesar de os padrões funcionarem na maioria dos casos. Por padrão, o comando ./configure deve retornar algo semelhante a: Configuration summary + using system PCRE library + using system OpenSSL library + md5: using OpenSSL library + using sha1 library: /usr/include + using system zlib library
É importante verificar se as bibliotecas mostradas estão presentes, caso você planeje usar os recursos providos por elas. Por exemplo, o módulo Rewrite necessita da biblioteca PCRE e o SSL precisa da OpenSSL. Com o Nginx instalado, é hora de criar uma configuração básica.
Configuração básica
Este artigo se baseia numa infraestrutura com três servidores. A máquina com Nginx deve estar, de
Listagem 1: Arquivo nginx.conf básico 01 02 03 04 05 06 07 08 09 10 11 12
user nobody; worker_processes 2; events { worker_connections 1024; use epoll; }
http { include mime.types; default_type application/octet‑stream; log_format custom ‘$http_host $remote_addr ‑ $remote_user [$time_local] “$request” ‘ 13 ‘$status $body_bytes_sent “$http_referer” ‘ 14 ‘”$http_user_agent”’; 15 access_log /path/to/access.log custom; 16 sendfile on; 17 server_tokens off; 18 19 upstream cluster { 20 server 192.168.1.2 weight=1; // o peso pode ser alterado para 21 server 192.168.1.3 weight=1; // enviar mais tráfego a um servidor. 22 } 23 24 server { 25 listen 10.0.0.1:80; 26 server_name www.domain.com domain.com; 27 location / { 28 proxy_pass http://cluster; 29 proxy_redirect off; 30 proxy_set_header Host $host; 31 proxy_set_header X‑Real‑IP $remote_addr; 32 proxy_set_header X‑Forwarded‑For $proxy_add_x_forwarded_for; 33 proxy_buffers 8 32k; 34 } 35 } 36 }
Listagem 2: SSL no nginx.conf 01 server { 02 listen 10.0.0.1:443; 03 server_name www.domain.com; 04 add_header Front‑End‑Https on; 05 keepalive_timeout 70; 06 ssl on; 07 ssl_certificate /path/to/server.crt; 08 ssl_certificate_key /path/to/server.key; 09 10 location / { 11 proxy_pass http://cluster; 12 proxy_redirect off; 13 proxy_set_header Host $host; 14 proxy_set_header X‑Real‑IP $remote_addr; 15 proxy_set_header X‑Forwarded‑For $proxy_add_x_forwarded_for; 16 proxy_buffers 4 32k; 17 proxy_set_header X‑Forwarded‑Proto https; 18 } 19 }
57
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
REDES | Nginx
preferência, na rede pública (interagindo com os usuários) e também na rede privada (comunicando-se com os servidores). As máquinas com o httpd não necessitam de acesso à rede pública. O esquema usado para este artigo está na tabela 1. Tendo-a em mente, edite o arquivo nginx.conf com as informações da listagem 1.
Essa configuração fará com que todos os dois servidores httpd recebam o mesmo número de requisições. Por padrão, o Nginx faz um balanceamento de carga bem simples, via rodízio de requisições. Se você quiser que as requisições sejam distribuídas para os servidores com base no endereço IP do cliente, use a diretiva ip_hash. O suporte a ou-
Listagem 3: Gzip no nginx.conf 01 gzip on; 02 gzip_http_version 1.0; 03 gzip_vary on; 04 gzip_min_length 1100; 05 gzip_buffers 16 8k; 06 gzip_comp_level 5; 07 gzip_proxied any; 08 gzip_types text/plain text/css application/javascript text /javascript text/xmlapplication/x‑javascript; 09 gzip_disable “MSIE [1‑6]\.”;
Listagem 4: nginx.conf com memcached 01 server { 02 location / { 03 set $memcached_key $uri; 04 memcached_pass name:11211; 05 default_type text/html; 06 error_page 404 @fallback; 07 } 08 09 location @fallback { 10 proxy_pass cluster; 11 } 12 }
Listagem 5: stub_status nginx.conf 01 location /nginx_status { 02 stub_status on; 03 access_log off; 04 allow TRUSTED.IP.ADDRESSES 05 deny all; 06 }
Listagem 6: Saída do comando nginx_status 01 02 03 04 05
Active connections: 291 server accepts handled requests 16630948 16630948 31070465 Reading: 6 Writing: 179 Waiting: 106 This server has 291 active connections, has accepted and handled 16630948 connections while serving 31070465 requests...
tros algoritmos de balanceamento de carga mais avançados já está nos planos de uma versão futura do Nginx. Note que, por padrão, todas as requisições passadas aos processos dos httpds parecerão estar vindo do endereço IP da máquina do Nginx. Sugere-se passar o IP da requisição original aos httpds por meio do cabeçalho X–Forwarded–For HTTP e depois interceptar a informação com o módulo mod_rpaf, que altera o endereço IP visível por outros módulos httpd. O módulo mod_rpaf é livre e está disponível para download em [3].
Suporte a SSL
Para usar o Nginx como proxy reverso de balanceamento de carga, configurá-lo para manipular requisições SSL trará muitos benefícios. Isso simplifica a configuração do httpd, diminui as exigências à CPU associadas aos processos SSL e facilita o balanceamento de carga, pois elimina a necessidade de sessões SSL sticky (persistentes). É fácil configurar o suporte a SSL: ele utiliza os mesmos arquivos CRT e KEY do Apache. Usando como modelo a configuração do proxy da listagem 1, adicione as da listagem 2. Note que há duas ressalvas na implementação atual do SSL no Nginx. A versão estável não possui suporte a listas de revogação de certificado. Este problema vem sendo trabalhado nas versões instáveis a partir da 0.8.7. Em seguida, se você possuir um arquivo de certificado intermediário (aquele necessário para obter o certificado junto à Autoridade Certificadora), ele não é especificado separadamente, como seria no Apache. Em vez disso, é preciso adicionar a informação deste arquivo ao final do arquivo principal de certificação. Isso é feito digitando catchain.crt >> server.crt na linha de comando. Feito isso, você não usará mais o
58
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Nginx | REDES
arquivo de certificação intermediário; simplesmente aponte ssl_cer‑ tificate para o arquivo principal de certificação.
Conteúdo estático e cache O próximo passo é fazer o Nginx servir imagens estaticamente. Esta etapa permitirá ajustar os processos do httpd para servir conteúdo dinâmico. Também serviremos imagens com cabeçalhos de expiração para 30 dias, o que diminui o número de requisições de imagens comuns que o cliente precisa fazer, pois elas raramente mudam. Para isso, adicione o seguinte ao contexto do seu servidor: location ~* ^.+\.(jpg|jpeg|gif|png) $ { root /path/to/www; expires 30d; }
Se for preferível desabilitar os logs de requisição de imagens, adicione a seguinte linha à configuração: access_log off;
Em seguida, o Nginx compactará com gzip parte dos dados de saída recebidos do httpd antes de enviálos ao navegador. O servidor Nginx compacta somente certos conteúdos com base no mime type e não compactará nada para navegadores sabidamente defeituosos. Adicione o código da listagem 3 ao contexto do servidor. Se você deseja fazer cache de certos conteúdos dinâmicos, há duas opções: cache baseado em arquivos ou memcached. Se você estiver pensando em usar o Nginx para manter um cache, é preciso atentar à diferença de conteúdo caso o visitante esteja logado ou não. Para ativar o cache baseado em arquivos, adicione
Tabela 2: Módulos do Nginx Módulo
Descrição
HTTP Referer
Filtra requisições com base no cabeçalho Referer
HTTP Limit Zone
Limita conexões simultâneas de um cliente
HTTP Limit Requests
Limita a frequência de conexões de um cliente
User ID
Envia cookies de identificação
HTTP Addition
Anexa textos aleatórios às páginas
FLV
Faz streaming de vídeos em Flash
Perl
Executa o Perl diretamente no Nginx e chama o Perl através do SSI
WebDAV
Suporte pass-through do WebDAV
Substitution
Substitui textos das páginas
Image Filter
Transforma imagens com a LibGD
Secure Link
Protege páginas com uma chave secreta
XSLT
Realiza pós-processamento das páginas com XSLT
o seguinte ao contexto http de seu arquivo de configuração: proxy_cache_path /data/Nginx/cache levels=1:2 keys_zone=one:10m;
O parâmetro levels determina o número de subdiretórios do cache, e a chave e o nome do arquivo são um MD5 da URL servida, resultando em nomes como /data/nginx/cache/c/29/ b7f54b2df7773722d382f4809d65029c.
Com o caminho do cache especificado no contexto http, é possível configurar o cache no contexto http, do servidor ou de localização. Para fazer cache de todas as respostas 200 e 302 durante 30 minutos e todas as 404 por cinco minutos, adicione o seguinte: proxy_cache one; proxy_cache_valid 200 302 30m; proxy_cache_valid 404 5m;
Figura 1 Além de exemplos de configuração e links de recursos, a comunidade Nginx oferece lista de emails, fórum e canal IRC.
59
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
REDES | Nginx
Se for preferível usar o memcached, a facilidade é a mesma (veja a listagem 4).
Estatísticas do servidor
Muitos sistemas de monitoramento suportam o módulo mod_status do Apache para reunir e examinar dados estatísticos. O módulo stub_ status desempenha o mesmo papel no Nginx. Esse módulo não vem compilado e precisa ser habilitado com o parâmetro de configuração --with-http_stub_status_module. Uma vez compilado, adicione o código da listagem 5 a seu arquivo de configuração. Uma requisição HTTP a domínio.com/nginx_status retorna um texto de resposta no formato mostrado na listagem 6.
Módulos adicionais
O módulo mod_rewrite do Apache é usado em vários sites. O Nginx possui um módulo de reescrita de URLs, mas sua sintaxe é ligeiramente diferente daquela do módulo do Apache. A wiki do Nginx contém todos os detalhes [4]. Um exemplo do recurso da reescrita é a simples reestruturação da URL para torná-la compatível com SEO:
vos binários do MaxMind GeoIP. O módulo GeoIP do Nginx tem dois pré-requisitos – LibGeoIP e o(s) banco(s) de dados MaxMind GeoIP. A última LibGeoIP está disponível no site MaxMind [5], mas lembre-se de que muitas distribuições possuem a LibGeoIP em seus repositórios de pacotes. Adicione as seguintes linhas a seu contexto http para ativar o módulo GeoIP: geoip_country GeoIP.dat; geoip_city GeoLiteCity.dat;
Agora, você terá à disposição as variáveis listadas em http://wiki.Nginx. org/NginxHttpGeoIPModule. Um caso comum de uso do módulo GeoIP é o emprego da variável $geoip_coun‑ try_code para enviar requisições a diferentes servidores, com base no país. Se você quiser passar informa-
ções do GeoIP para o Apache, adicione o seguinte à sua configuração do proxy: proxy_set_header HTTP_GEO $geo;
A tabela 2 mostra alguns outros módulos do Nginx, com uma pequena explicação sobre suas funções.
Conclusão
Usar o Nginx como proxy reverso com cache a seu servidor Apache pode aumentar significativamente o desempenho de sua infraestrutura. Além disso, o uso de alguns recursos avançados do Nginx oferece maior flexibilidade e pode permitir a realização de tarefas que não seriam possíveis com uma instalação anterior. Recomenda-se ler a documentação online (figura 1) e familiarizar-se com o Nginx antes de adotá-lo em ambientes de produção. n
Mais informações [1] Nginx: http://www.Nginx.org [2] Página de módulos do Nginx: http://wiki.Nginx.org/NginxModules [3] mod_rpaf: http://stderr.net/apache/rpaf/ [4] Módulo de reescrita de URLs do Nginx: http://wiki.Nginx.org/NginxHttpRewriteModule
rewrite ^/users/(.*)$ /user.php?user=$1? last;
[5] MaxMind: http://geolite.maxmind.com/download/geoip/database/
Uma reescrita mais complicada usa uma condição if para redirecionar o visitante para um domínio consistente: if ($host ~* www\.(.*)) { set $host_without_www $1; rewrite ^(.*)$ http://$host_ without_www$1 permanent; }
O módulo GeoIP cria variáveis com base no endereço IP de um cliente, comparado com os arqui-
Sobre o autor Jeremy Garcia é fundador e administrador do site LinuxQuestions.org, que utiliza o Nginx e é uma das maiores comunidades Linux da Web. Ele usa Linux há mais de dez anos e é um defensor ardente, mas realista, do Código Aberto.
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3161
60
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Quer falar com os 30.000 profissionais de TI com maior nível de conhecimento técnico do mercado nacional? Então anuncie na Linux Magazine! Segundo dados do Instituto Verificador de Circulação*, a Linux Magazine é atualmente a segunda revista mais vendida para profissionais de TI do mercado editorial brasileiro. Além disso, é a revista que tem o público mais qualificado no quesito técnico. Nossa combinação exclusiva de conteúdo avançado com uma abordagem prática faz da Linux Magazine a publicação preferida de quem toma decisões e faz recomendações para compra de produtos e contratação de serviços. Anuncie conosco e fale com esse público.
Para anunciar, entre em contato: anuncios@linuxmagazine.com.br 11 4082.1300 *Comparação de circulação para os últimos três meses de publicações nacionais voltadas ao segmento de TI.
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Controle de acesso em redes com fio com o IEEE 802.1X
SEGURANÇA
Porteiro competente Você achava que o padrão IEEE 802.1X era apenas para redes sem fio? Veja como configurar um sistema de controle de acesso de rede com ele e um servidor FreeRADIUS. por Sven Übelacker e Nils Magnus
Supreet Vaid – www.sxc.hu
U
suários de redes sem fio estão acostumados com o ritual de entrada de dados de login antes da conexão à rede local. O padrão IEEE 802.1X [1] define uma técnica para o controle de acesso a redes baseado em portas usado na maioria dos pontos de acesso sem fio. Muitos administradores não percebem que é possível oferecer controle de acesso para redes convencionais (com fio) com o IEEE 802.1X, que possui um esquema de autenticação com várias vantagens sobre as alternativas como a baseada em porta e
MAC, fácil de bisbilhotar e difícil de gerenciar. Na era dos notebooks, um laptop sem autorização pode se conectar a uma rede a partir de qualquer lugar. Entretanto, administradores que procuram uma proteção eficiente podem usar o IEEE 802.1X para impedir acessos não autorizados antes que o intruso chegue até uma janela de navegador ou uma tela de login.
Desbloqueio de porta
O ambiente de autenticação do IEEE 802.1X inclui três componentes:
suplicante: o cliente que solicita acesso à rede; autenticador: um switch Ethernet ou ponto de acesso por meio do qual o suplicante pede acesso; servidor de autenticação: servidor na rede que mantém um banco de dados de autenticação e se comunica com o banco de dados para aprovar ou rejeitar a solicitação de acesso.
No caso de pontos de acesso sem fio domésticos, o autenticador e o servidor de autenticação geralmente
62
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
IEEE 802.1X | SEGURANÇA
se encontram no mesmo dispositivo. Em uma LAN com fio, a situação é um pouco mais complicada. Muitos switches gerenciáveis oferecem suporte a IEEE 802.1X. Um switch bem configurado, portanto, é um bom autenticador, recebendo solicitações de acesso de clientes e comunicando-se com o servidor de back-end – normalmente utilizando o popular protocolo de autenticação RADIUS. Antes que o switch (que no contexto do RADIUS é chamado de Net work Access Server – NAS) permita qualquer tipo de tráfego em uma de suas portas, chamadas pelo padrão de Port Access Entities (PAE), o dispositivo solicitante – normalmente um computador desktop ou laptop – precisa passar por um processo de autenticação. Essa autenticação ocorre na camada de enlace de dados e se baseia no Extensible Authentication Protocol (EAP). O dispositivo que faz a solicitação precisa rodar um programa cliente (o chamado suplicante, ou supplicant), que apresenta suas credenciais na forma de um quadro Ethernet especial chamado EAPoL. O EAP suporta várias credenciais, mas os certificados de clientes X.509v3 são o tipo mais comum. Os certificados usam um padrão criptográfico estrito e podem ser gerenciados individualmente ou, caso necessário, por meio de uma infraestrutura de chave pública (PKI) com a extensão de protocolo EAPTLS [2]. Outras opções incluem One Time Passwords (OTP), Projected EAP (PEAP) e TLS tunelado (TTLS). Quando um switch recebe uma solicitação do tipo EAP-Response/ Identity, ele a encaminha a um Servidor de Acesso Remoto (RAS, na sigla em inglês) que atua como servidor de autenticação. O sistema RAS conhece todas as permissões e informa o resultado da autenticação
Figura 1 O switch gerenciado Netgear FSM726 tem 24 portas que podem ser configuradas individualmente para suportar operações IEEE802.1X Auto.
ao switch. Se for positiva, o switch abre o PAE e permite ao cliente acessar a rede e desempenhar uma ação – por exemplo, obter um IP por DHCP.
Autenticação
Muitos switches gerenciados suportam IEEE 802.1X. Por exemplo, um Netgear FSM726, que custa cerca de 200 dólares nos EUA e tem 2 portas gigabit, o 3Com 2924-SFP Plus, com custo de mais ou menos 270 dólares nos EUA, e o Level One GSW-2494, de 340 dólares. Todos estes dispositivos têm 24 portas e diferem entre si em alguns recursos. Quase todos esses switches incluem uma interface web (figura 1) e alguns usam interface de linha
de comando para a configuração, como o IOS da Cisco. O artigo 5.1 do padrão 802.1X define as exigências para os switches. Alguns deles, como os que utilizam o IOS, apresentam mais recursos, tais como uma VLAN para convidados que recebe os suplicantes que não receberem permissão de acesso (essa opção de VLAN para convidados é útil para visitantes e conferências). Para disponibilizar um controle de acesso a redes no switch, o administrador precisa alternar as portas (PAEs) do modo Authorized para o modo Auto e dar ao dispositivo de rede a senha e o IP do Servidor de Acesso Remoto. É uma boa ideia adicionar uma VLAN separada para uma sub-rede administrativa isolada
Quadro 1: Cisco IOS No Cisco IOS, o comando dot1x system-auth-control ativa o 802.1X em todo o switch (listagem 1). O comando radius-server host Radius IP adiciona o servidor RADIUS e key define a chave do RADIUS. O comando aaa authentication atribui o grupo radius. Os comandos dot1x pae authenticator e dot1x port-control auto convertem a interface selecionada em interface 802.1X. A VLAN para convidados, que remete o cliente a uma rede não crítica caso a autenticação falhe, é configurada com o comando dot1x guest-vlan vlan-id. Para mais detalhes, confira o Guia de Configuração do IOS [3] ou a wiki do FreeRADIUS [4].
63
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
SEGURANÇA | IEEE 802.1X
e configurar a porta para Authorized a fim de evitar problemas do tipo “ovo e galinha”.
RADIUS e usuários
O switch utiliza o protocolo RADIUS (definido na RFC 2865) para conversar com o servidor RAS. A comunicação é protegida por uma chave compartilhada que pode ser gerada pelo administrador com o comando pwgen -s -1 e depois armazenada no switch.
Com este passo, o administrador termina os preparativos para o dispositivo de rede. Todas as outras configurações do servidor são feitas no servidor RAS. Esse servidor também gerencia o certificado, a menos que seja preferível mantê-los em uma máquina separada por motivos de segurança. O FreeRADIUS [5] é uma boa escolha como servidor de acesso remoto. Bastam poucas modificações nas configurações padrão em
Listagem 1: Configuração do Cisco IOS. 01 02 03 04 05
Switch# configure terminal Switch(config)# dot1x system‑auth‑control Switch(config)# aaa new‑model Switch(config)# aaa authentication dot1x default radius Switch(config)# radius‑server host 192.168.123.23 auth‑port 1812 key hEoLw6DC 06 Switch(config)# interface fa1/10 07 Switch(config‑if)# switchport mode access 08 Switch(config‑if)# dot1x pae authenticator 09 Switch(config‑if)# dot1x port‑control auto 10 Switch(config‑if)# end 11 Switch# show dot1x interface fa1/10 details
Listagem 2: Trecho do arquivo ca.cnf. 01 02 03 04 05 06 07
[certificate_authority] countryName = BR stateOrProvinceName = SP localityName = SaoPaulo organizationName = UebelHacker emailAddress = ca@uebelhacker.br commonName = “UebelHacker CA”
Listagem 3: Trecho do arquivo server.cnf. 01 02 03 04 05 06 07
[server] countryName = BR stateOrProvinceName = SP localityName = SaoPaulo organizationName = UebelHacker emailAddress = radius@uebelhacker.br commonName = “UebelHacker Radius Server”
Listagem 4: Modificando o makefile do CA. 01 client.crt: client.csr ca.pem ca.key index.txt serial 02 openssl ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key $(CAPWD) -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
/etc/raddb/ (no openSUSE) ou em /etc/freeradius/ (no Ubuntu) para
o administrador ativar o EAP-TLS. As configurações básicas do FreeRADIUS são estendidas com a inclusão de vários arquivos personalizados. Por exemplo, o software pode recuperar uma lista de usuários de um banco de dados ou de um serviço de diretório, ou impor restrições de tempo aos usuários. As configurações gerais encontramse no arquivo radius.conf. Como o servidor só é necessário para a autenticação, a seção listen com type = auth é a configuração mais relevante. Para impedir que o software escute solicitações na porta UDP 1812 em todas as interfaces, é necessário configurar o endereço IP na chave ipaddr. Além disso, pode haver a necessidade de modificar suas regras de firewall. Para melhor acompanhamento das solicitações, você pode adicionar uma entrada auth = yes na seção log do arquivo radius.conf. O arquivo clients.conf especifica o segmento administrativo entre o switch e o servidor RAS. A entrada secret contém o segredo compartilhado por eles dois: client 192.168.123.0/24 { secret = hEoLw6DC shortname = uebelhackers }
Quando o arquivo radius.conf se vincula ao eap.conf, a chave default_eap_type é definida como tls. A senha que ativa o certificado do servidor, que ainda precisa ser criado, é definida na mesma seção que private_key_password.
Novos certificados
Algumas distribuições incluem um makefile no diretório /etc/raddb/ certs. É possível usar esse makefile junto com o OpenSSL para gerar três tipos de certificados: um certi-
64
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
IEEE 802.1X | SEGURANÇA
ficado (primeiro) para um pequeno CA, que mais tarde assinará os certificados do servidor (segundo) e do cliente (terceiro). No entanto, se esse diretório estiver vazio, como no caso do Ubuntu 9.04, obtenha os arquivos do GitHub do FreeRADIUS GitHub em raddb/certs [6]. O pacote inclui um arquivo de configuração para cada certificado e um makefile compartilhado. Para criar um novo certificado de CA, é preciso modificar o arquivo ca.cnf. Altere a seção [certificate_authority], como mostra a listagem 2. Os valores de input_password e output_password precisam ser idênticos. Para editar a seção [server] em server.cnf, siga os mesmos passos, mas escolha um commonName diferente para distinguir os certificados (listagem 3). Depois, insira a private_key_password especificada no arquivo eap.conf como senha. Por fim, o comando make all criará os certificados da CA e do servidor, o arquivo Diffie-Hellman (dh) e o arquivo random, ambos importantes componentes no handshake SSL/TLS.
Certificados de usuários No EAP-TLS, cada dispositivo precisa de seu próprio certificado de cliente, que pode ser criado no client. cnf. O makefile do FreeRADIUS por padrão assina essas credenciais com o certificado do servidor. Para o CA assiná-los, mude as linhas da listagem 4 e muita atenção à tabulação no início da linha 2. Depois, é possível entregar os certificados da CA diretamente aos suplicantes. O commonName na seção [client] especifica o nome do usuário para permissões e outras configurações no RADIUS. Mais uma vez, o certificado é protegido por senha usando aquela definida em input_password e output_password.
[client] countryName = BR stateOrProvinceName = SP localityName = SaoPaulo organizationName = UebelHacker emailAddress = s@uebelhacker.br commonName = uebelacker
Diferentemente dos certificados da CA e do servidor, será preciso criar múltiplos certificados aqui – um para cada usuário. Como o comando make client gera apenas um certificado, faz sentido gerar um script para essa tarefa. Em seguida, é possível entregar os certificados aos usuários de uma forma segura, preferivelmente em um pen drive ou smartcard.
Configuração de usuários A próxima informação de que o RAS precisará são os detalhes dos usuários autorizados. Para simplificar, é possível fornecer a cada
usuário um certificado de cliente assinado pela CA. Se você não mudar o arquivo de configuração users no servidor RADIUS, ele dará acesso a qualquer um que possua um certificado válido. Com isso, o switch atribuirá um suplicante à VLAN especificada. No entanto, se for preferível fornecer mais detalhes sobre os usuários ao servidor RAS, há várias opções para isso: o mais rápido seria adicionar os usuários autorizados e os não autorizados ao arquivo users. Veja a listagem 5 com um exemplo desse método. A linha 3 da listagem 5 define o padrão para qualquer suplicante que forneça um certificado válido via EAP. Os detalhes de Tunnel-Type e Tunnel-Medium são pedidos pelo padrão, caso você deseje que o switch atribua uma VLAN – por exemplo, 23 como o segmento do usuário. A RFC 2869 define mais extensões para o RADIUS, como a restrição do
Listagem 5: Banco de dados de usuários. 01 dau Auth‑Type := Reject 02 03 DEFAULT Auth‑Type := EAP, Login‑Time := “Wk0800‑2000” 04 Tunnel‑Type = 13, 05 Tunnel‑Medium = 6, 06 Tunnel‑Private‑Group‑Id = 23, 07 Fall‑Through = Yes 08 09 uebelacker Auth‑Type := EAP, Login‑Time = “Any” 10 Tunnel‑Private‑Group‑Id = 42
Listagem 6: Arquivo xsupplicant.conf. 01 default_netname = intranet 02 intranet { 03 type = wired 04 allow_types = eap_tls 05 identity = uebelacker 06 eap_tls { 07 user_cert = “/caminho/para/s@uebelhacker.br.pem” 08 user_key = “/caminho/para/s@uebelhacker.br.pem” 09 user_key_pass = “Senha-Usercert” 10 root_cert = “/path/to/ca.pem” 11 chunk_size = 1398 12 random_file = /dev/urandom 13 } 14 }
65
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
SEGURANÇA | IEEE 802.1X
Figura 2 O Network Manager conhece o serviço EAP-TLS e oferece uma interface gráfica de configuração.
login a dias de semana entre 8:00 e 20:00 para evitar invasões noturnas. A primeira linha bloqueia o usuário dau, que acabou de sair da empresa, mas ainda possui um certificado válido. Como alternativa, seria possível implementar essa lógica com as
Listas de Revogação de Certificados (CRLs, na sigla em inglês), porém esse passo é um pouco mais complicado. A primeira regra de combinação se aplica a esse arquivo, a menos que você tenha configurado o atributo Fall-Through como mostrado na linha 7. Os outros atributos sobrescrevem as configurações do administrador, uebelacker, que não está sujeito a restrições de tempo e segue direto para o segmento administrativo. O comando radiuss -X executa o RAS em modo de depuração para identificar alguma configuração incorreta. Se o servidor iniciar sem problemas, o RADIUS mostrará que está respondendo às solicitações: Listening on authentication address 192.168.123.23 port 1812 Ready to process requests.
Faz sentido executar o daemon no modo de depuração até a porta da rede ser desbloqueada; assim, todas as atividades serão extensamente registradas na saída padrão.
Listagem 7: Arquivo wired.conf. 01 02 03 04 05 06 07 08 09 10 11 12 13
eapol_version=2 ap_scan=0 fast_reauth=1 network={ key_mgmt=IEEE8021X eap=TLS identity=”uebelacker” ca_cert=”/caminho/para/ca.pem” client_cert=”/caminho/para/s@uebelhacker.br.pem” private_key=”/caminho/para/s@uebelhacker.br.pem” private_key_passwd=”Senha-Usercert” eapol_flags=0 }
Listagem 8: DHCP no arquivo interfaces. 01 02 03 04 05
auto eth0 iface eth0 inet dhcp wpa-iface eth0 wpa-driver wired wpa-conf /etc/wpa_supplicant/wired.conf
Monitoramento
É possível monitorar as atividades no modo de produção com tail -f /var/log/radius/radius.log: Info: Ready to process requests. Auth: Login OK: [uebelacker] (from client uebelhackers port 13 cli 00:19:e0:18:38:5c)
Esta saída indica que o dono do certificado emitido para uebelacker fez login na porta 13 do switch. O Xsuplicant do projeto Open1X da OpenSEA Alliance [7][8] e o wpa_supplicant [9] suportam esse tipo de login. No entanto, algumas distribuições não incluem nenhum desses dois suplicantes. No Ubuntu 9.04 e posteriores, assim como em várias outras distribuições, o Network Manager atua como interface gráfica para o wpa_supplicant (figuras 2 e 3).
No cliente
O usuário precisa configurar um perfil 802.1X em /etc/xsupplicant/ xsupplicant.conf (listagem 6), que pode ser testado chamando o suplicante da seguinte maneira: xsupplicant -D wired -i eth0 \ -d 5 -f -c \ /etc/xsupplicant/xsupplicant.conf
Após a autenticação 802.1X e a liberação da porta de rede, que será indicada pelo anúncio Changing from AUTHENTICATING to AUTHENTICATED, o script inicial atribui um IP estático ou usa o DHCP normalmente. Caso o Xsupplicant tenha sido iniciado em segundo plano por meio do /etc/ init.d/xsupplicant start e sobreviva a uma reinicialização graças a chkconfig xsupplicant on, a autenticação 802.1X ocorrerá automaticamente.
Teste
O pacote wpa_supplicant fornece meios de testar a configuração:
66
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
IEEE 802.1X | SEGURANÇA
wpa_supplicant \ -i eth0 -D wired -c /etc/wpa_supplicant/wired.conf
Em seguida, é necessário criar o arquivo de configuração wired.conf como especificado na listagem 7. Como a autenticação 802.1X é baseada em redes com fio, é possível usar a versão 2 do eapol_version e desabilitar a busca de pontos de acesso. O suplicante anuncia o evento CTRL-EVENT-EAP-SUCCESS no caso de uma autenticação bem sucedida. Para executar o cliente permanentemente em segundo plano e autenticá-lo automaticamente no caso de portas 802.1X, os usuários precisam modificar o arquivo /etc/ network/interfaces, como mostrado na listagem 8 para o Debian – supondo que se use DHCP. Caso contrário, deve-se mudar o item dhcp para static e definir um endereço IP estático. O comando /etc/ init.d/networking restart ativa essas configurações. Se o cliente alcançar o estado authorized em uma porta sem IEEE 802.1X, a tentativa de login será redundante, mas o cliente funcionará normalmente.
Produção
O último passo para o administrador é configurar o servidor RADIUS no modo de produção: habilitar o script init usando service freeradius start e digitando chkconfig freeradius on para fazer com que o servidor inicie o FreeRADIUS toda vez que o sistema iniciar.
Conclusão
Os componentes para autenticação de dispositivos existem em muitos ambientes. A combinação desses componentes fica a cargo do administrador. Para algumas pessoas, o Controle de Acesso à Rede (NAC) ainda inclui outros aspectos, tais como validação técnica de status de versão ou assinaturas de vírus atualizadas,
alinhadas à política de segurança. O NAC oferece várias opções de customização: além de LDAP ou integração com bancos de dados SQL, ambientes mais complexos podem necessitar do emprego de um PKI com o uso do Tiny CA [10], por exemplo. Smartcards, como o Aladdin E-Token, protegem os certificados dos usuários. O FreeRADIUS suporta IPv6 a partir da versão 2; no entanto, alguns switches 802.1X podem não seguir os padrões. Se você estiver testando o IKEv2, por exemplo, confira o arquivo experimental.conf do projeto. Há um
Figura 3 Com a configuração completa, o logon no switch é transparente para os usuários.
projeto no SourceForge com nome idêntico para pesquisar o IKE2 [11]. Graças ao projeto Hostapd [12], os administradores podem esperar para breve uma nova implementação do EAP no FreeRADIUS, conhecida por EAP2. n
Mais informações [1] IEEE 802.1x-2004: http://www.ieee802.org/1/pages/802.1x-2004.html [2] RFC 5216, “EAP-TLS Authentication Protocol”: http://tools.ietf.org/rfc/rfc5216.txt [3] Guia Cisco 802.1x: http://www.cisco.com/en/US/docs/switches/ lan/catalyst4500/12.2/31sg/configuration/guide/dot1x.html [4] FreeRADIUS Wiki com comandos Cisco IOS: http://wiki.freeradius.org/Cisco [5] Projeto FreeRADIUS: http://freeradius.org [6] FreeRADIUS em GitHub: http://github.com/Antti/freeradius-server/tree/master [7] OpenSEA: http://openseaalliance.org [8] Projeto Open1X: http://open1x.sf.net [9] WPA supplicant: http://hostap.epitest.fi/wpa_supplicant/ [10] Tiny CA: http://tinyca.sm-zone.net [11] Projeto EAP-IKEv2 em Sourceforge: http://eap-ikev2.sf.net [12] Modos EAP suportados pelo FreeRADIUS: http://freeradius.org/features/eap.html
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3163
67
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Server Side Includes
PROGRAMAÇÃO
Ajuda inclusiva Os Server Side Includes (SSI) poupam tempo e facilitam a manutenção do seu website. por Juliet Kemp
Gabriella Fabbri – www.sxc.hu
M
uitos websites possuem elementos comuns a todas, ou quase todas, as suas páginas, tais como cabeçalhos, rodapés e menus. Fazer estas seções uma por uma em todas as páginas significa que, a cada mudança, será preciso editar cada uma delas, um trabalho entediante e que demanda muito tempo. Os Server Side Includes, ou SSI, são um método fácil de escrever trechos em HTML uma vez e incluí-los em suas páginas com apenas uma referência.
Arquivo de include
Antes de configurar o servidor web para que ele aceite SSI, começaremos definindo alguns de seus conteúdos. A listagem 1 mostra um arquivo de include básico de um rodapé que
contém as informações que devem aparecer no fim das páginas. O estilo usa CSS, que não será mostrado aqui – mostraremos apenas a lógica HTML. Separar conteúdo, apresentação e estilo é sempre uma boa atitude. Como mostrado na listagem 2, pode ser melhor criar um diretório para os includes no diretório raiz do servidor web. Isso facilita sua localização e evita confundi-los com seus arquivos HTML normais. Um diretório organizado é particularmente importante para arquivos usados em todo o site; se você tiver includes específicos em um determinado subdiretório, o melhor seria mantêlos juntos. O servidor web não serve o arquivo de include diretamente; em
Listagem 1: Rodapé básico via include footer.html 01 <div id=”footer”> 02 <p><a href=”mailto:webadmin@mysite.com”>website contact</a></p> 03 <p><a href=”http://www.mysite.com”>return to homepage</a></p> 04 </div>
Listagem 2: Configuração de um diretório de includes 01 mkdir /var/www/includes 02 chown www‑data /var/www/includes 03 mv footer.html /var/www/includes
vez disso, ele é referenciado em um arquivo HTML. Seu conteúdo será inserido no HTML no lugar da referência (sem mudanças ao arquivo que está no disco; as alterações são feitas dinamicamente quando a página é servida). Agora, façamos uma página HTML de teste, incluindo um arquivo de rodapé, como na listagem 3. Note a extensão .shtml – isso será discutido mais adiante – e não tente visualizar esta página no seu navegador ainda. Ela só funcionará quando o servidor estiver corretamente configurado. A sintaxe da referência usada aqui (uma única linha iniciando com <!--#include) é padrão.
Configuração do servidor A essa altura, os arquivos já estão prontos, mas não serão servidos corretamente – se você visualizar o arquivo test.shtml, seu rodapé não estará lá. Para que tudo ocorra corretamente, será necessário configurar o servidor (Apache ou outros). O primeiro passo é habilitar o módulo include, que permitirá ao Apache usar SSI. Em sistemas Debian e Ubuntu, use a2enmod include; em outros, adicione a linha da lis-
68
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
SSI | PROGRAMAÇÃO
tagem 4 ao seu arquivo /etc/apache/
Listagem 3: Arquivo test.shtml
caminho do módulo caso sua configuração não seja padrão). O Apache agora já será capaz de trabalhar com SSI, mas ainda necessita das suas instruções. Para isso, adicione uma diretiva Options + Includes no diretório onde você deseja que os SSI funcionem. Na listagem 5, é o diretório principal, /var/www/. Note que, se houver configurações específicas para esses subdiretórios que não usam a sintaxe + na configuração de suas outras opções, o Apache irá sobrepor a opção include. Nas opções (seção Options) do Apache, o uso de + na frente de uma opção significa “acrescente isto a qualquer opção existente ou herdada”. Retirar o sinal + significa “substitua qualquer opção existente ou herdada por estas outras” (usar o sinal - em Options significa “remova esta opção”). Na listagem 5, o diretório /var/ www/main/ não terá Includes (apenas FollowSymLinks), enquanto que /var/www/secondary/ terá Includes e Indexes. Após configurar corretamente a seção Options para seus diretórios, o último passo é dizer ao Apache com quais arquivos ele deve trabalhar. A menos que você tenha certeza de que todos seus arquivos usarão SSI, você não vai querer que ele analise cada arquivo, pois isso atrasará o envio de arquivos sem SSI. Uma maneira de orientar o Apache sobre onde procurar estes arquivos é determinar que apenas os que possuem a extensão .shtml usarão SSI. Para isso, acrescente as duas linhas mostradas na listagem 6 dentro das tags <Directory>, mostradas na listagem 4. Agora reinicie seu servidor com /etc/init.d/apache2 force-reload e verifique o arquivo test.shtml no navegador. Você verá sua primeira página com SSI (figura 1).
01 <html> 02 <head> 03 <title>Testing SSIs</title> 04 </head> 05 <body> 06 <h1>Testing</h1> 07 <p>Still testing.</p> 08 <!‑‑#include virtual=”/includes/footer.html” ‑‑> 09 </body> 10 </html>
apache2.conf (será preciso editar o
Listagem 4: Adicione esta linha ao apache2.conf 01 LoadModule include_module /usr/lib/apache2/modules/mod_include.so
Listagem 5: Permissão para que o Apache trabalhe com SSI 01 02 03 04 05 06 07 08 09 10 11
<Directory /var/www/> Options +Includes </Directory> <Directory /var/www/main/> Options FollowSymLinks </Directory> <Directory /var/www/secondary/> Options +Indexes </Directory>
O lado inconveniente de tudo isso é que você será preciso alterar a extensão de todos os arquivos que usarão SSI para que funcionem direito. Uma alternativa seria pedir ao servidor para alterar todos os .html para .shtml, disponibilizando o módulo rewrite (a2enmod rewrite) e, de-
pois, adicionar as linhas da listagem 7 entre as tags <Directory>. Essa abordagem equivale a instruir o servidor a tratar todos os .html com /includes//, mas isso afetará o desempenho. Também é possível usar os comandos find e xargs na linha de comando para alterar todas
Figura 1 Criação de um rodapé com contato e link para Home usando SSI.
69
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
PROGRAMAÇÃO | SSI
Listagem 6: Processamento de arquivos .shtml para SSI 01 AddType text/html .shtml 02 AddOutputFilter INCLUDES .shtml
Listagem 7: Ativação do módulo rewrite 01 RewriteEngine on 02 RewriteBase / 03 RewriteRule ^(.*)\.html $1.shtml [R=permanent]
Listagem 8: Include do menu principal, menu.shtml 01 <ul> 02 <li>About Us 03 <!‑‑#include virtual=”/includes/aboutmenu.html” ‑‑> 04 </li> 05 <li>Documentation</li> 06 <li>Contact Us</li> 07 </ul>
as extensões e, em seguida, alterar manualmente os arquivos que não precisarem ser .shtml. Outra alternativa é usar a opção XBitHack. No lugar das duas linhas da listagem 6, acrescente a seguinte linha dentro das tags <Directory> da listagem 5: XBitHack on
Esta diretiva diz ao Apache que todos os arquivos com o bit de execução ativado devem funcionar com
SSI. Para conferir seu arquivo de teste, altere seu modo de execução com chmod +x test.html (e depois faça isso com todos os arquivos que devem usar diretivas SSI). Note que é recomendável usar o método da listagem 6 ou a diretiva XBitHack – nunca as duas ao mesmo tempo! Agora, reinicie o Apache com /etc/init.d/apache2 force-reload e carregue sua página de testes no navegador em http://meu_site/test. shtml (ou test.html, se você tiver utilizado a diretiva XBitHack).
Outros usos
Uma coisa muito útil que se pode fazer com SSI é incluir um dentro de outro para que um arquivo SSI possa fazer referência a outro. Um exemplo disso é quando o menu que aparece em todas as páginas possui submenus (ver as listagens 8 e 9). Note que você precisará garantir que seu arquivo menu.shtml seja lido – com a extensão .shtml ou com XBitHack e o bit de execução. Os SSI também suportam vários outros comandos e variáveis. Por exemplo, para exibir a data atual, use: <!--#echo var=”DATE_LOCAL” -->
A variável DATE_LOCAL é um dos padrões disponíveis nos programas CGI, que também podem ser acessados pelo SSI (veja uma lista de variáveis em [1]). Além disso, é possível informar a data da última modificação, como na listagem 10. O formato padrão de datas inclui também a hora, como na figura 2. Também é possível formatar esses dados antes de exibi-los. Por exemplo, o código na listagem 11 mostra a data com o seguinte formato: Tue 28 Jul, 2009. Por fim, é possível usar includes para executar programas CGI ou qualquer outro programa e exibir o resultado. Por exemplo, o código da listagem 12 produz uma lista de diretórios. Note que isso é uma grande brecha na segurança! Qualquer código arbitrário pode ser executado dentro do bloco exec. Por isso, se você habilitar SSI em páginas que possam ser editadas pelo usuário (uma página wiki ou uma página com comentários, por exemplo), um eventual ataque pode causar muitos problemas. Para desabilitar esse recurso, configure a diretiva Options da seguinte forma: Options +IncludesNOEXEC
Figura 2 Montagem de menus com SSI; a data é gerada automaticamente.
só por segurança.
70
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
SSI | PROGRAMAÇÃO
Conclusão
Os Server Side Includes podem poupar muito tempo em um grande website, e seu uso cauteloso também ajuda
a evitar a perda de páginas em uma atualização. Os SSI valem o esforço, principalmente porque são fáceis de configurar. n
Listagem 9: Include do submenu, aboutmenu.html 01 <ul> 02 <li>Location</li> 03 <li>Mission Statement</li> 04 <li>People</li> 05 </ul>
Listagem 10: Informação de data da última alteração 01 <html> 02 <head></head> 03 <body> 04 <p>Texto.</p> 05 <p>Esta página foi modificada pela última vez em: <!‑‑#echo var=”LAST_MODIFIED” ‑‑></p> 06 </body> 07 </html>
Listagem 11: Formatando a Data 01 <!‑‑#config timefmt=”%a %d %b, %Y”‑‑> 02 <!‑‑#echo var=”DATE_LOCAL” ‑‑>
Listagem 12: Listagem de diretórios na sua página 01 <html> 02 <head></head> 03 <body> 04 <p>Outros arquivos neste diretório: 05 <!‑‑#exec cmd=”ls ‑l” ‑‑> 06 </p> 07 </body> 08 </html>
Mais informações [1] Variáveis SSi, XSSI e CGI: http://www.georgedillon.com/web/ssivar.shtml
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3154
Linux Magazine #61 | Dezembro de 2009
CERTIFICAÇÕES INTERNACIONAIS LPI OU EC-COUNCIL Torne-se um Especialista em Pen-testing ou Perito Forense Digital! Associe-se ao Clube e *ganhe uma assinatura da revista Linux Magazine do
*
li Vá
at
/09
/12
0 é3
(92) 3877-8882 (92) 3877-9882 www.clubedohacker.com.br 71
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Introdução ao Parrot
PROGRAMAÇÃO
Louro quer programar O Parrot é uma ferramenta para desenvolvimento e execução de novas linguagens de programação, que já conta com Perl 6 e muito provavelmente com a sua linguagem preferida. por Martin Streicher
C
ansado de trabalhar com o mesmo código dia após dia? Sua linguagem de programação é ultrapassada? Você precisa de mais entusiasmo para entrar na infovia? Não sofra mais. O Reino dos Programadores tem de tudo para você. Venha para cá! Temos PHP 5: ótimo para a web, com uma bela aceleração de bytecode. Ou Ruby 1.9: essa belezura recém-lançada, ainda quentinha da fábrica, acaba com seus problemas de nuvem. Quer economizar um dinheirinho? Tente as linguagens certificadas. O preço do Perl 5.8 vai mudar. Reino dos Programadores: onde todo programador é rei. O Reino dos Programadores pode não existir, mas escolher uma linguagem é muito parecido com comprar um carro. Assim como o carro, cada linguagem de programação é feita com um propósito, quer seja utilidade, velocidade ou tamanho. Da mesma maneira, ela pode oferecer
recursos de ponta e exóticos. A escolha de uma linguagem também é um investimento significativo, com consequências possivelmente prejudiciais e desastrosas se realizada sem as devidas considerações. Além disso, cada linguagem inclui partes obrigatórias – literais, variáveis, subrotinas e controle de fluxo no lugar de pneus, direção e para-brisas. De fato, a maior parte do trabalho no desenvolvimento de uma nova linguagem é (desculpe o trocadilho) reinventar a roda. O código da linguagem precisa ser decomposto por um parser, organizado em pequenos elementos, aglomerado em declarações, abstraído em árvores sintáticas e, finalmente, interpretado ou convertido em algo executável, tal como bytecodes ou binários. Além do mais, após seu desenvolvimento, a nova linguagem de programação é limitada, a menos que contenha capacidades suplementares, tais como expressões regulares e
interfaces para chamadas de sistema. É possível evitar certo gasto com a utilização de bibliotecas C, como a biblioteca de expressões regulares compatíveis com Perl (PCRE), mas isso também demanda certo esforço. Ironicamente, várias linguagens seguem esse caminho, pois não há muita escolha. No entanto, há exceções: a duradoura iniciativa .NET da Microsoft permite que várias linguagens – C#, Visual Basic, C++ e algumas de código aberto portadas para a plataforma – compartilhem código, pois todas são compiladas para uma linguagem comum de baixo nível, chamada CIL (Common Intermediate Language) [1]. Mas JRuby é uma exceção: essa linguagem executa código Ruby na máquina virtual Java (JVM). Ainda assim, a grande maioria das linguagens de programação permanece isolada. É como tentar colocar um carro dentro de outro.
72
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Parrot | PROGRAMAÇÃO
Abordagem unificada
Para acelerar o desenvolvimento de novas linguagens, facilitar o compartilhamento de código entre elas e acelerar a execução de linguagens dinâmicas como Perl, Ruby e Python, o grupo de desenvolvimento do Parrot construiu uma máquina virtual e um conjunto de ferramentas para compilar e executar qualquer linguagem. O Parrot [2] foi inicialmente concebido como “motor” do Perl 6, mas foi expandido pois se adaptava a uma vasta classe de códigos. Como consta no site do Parrot, “Teoricamente, é possível escrever uma classe em Perl, transformá-la numa subclasse Python e depois instanciar e utilizar essa subclasse em um programa Tcl”. Como o Parrot é quase uma fábrica de compiladores, ele fornece todas as ferramentas necessárias para converter o código-fonte em um programa funcional: O Parser Grammar Engine (PGE) define a sintaxe de uma linguagem de programação com regras. Uma regra pode definir a sintaxe de uma declaração de atribuição, enquanto outra pode definir a estrutura de uma sub-rotina. O PGE examina a entrada, produz um bloco e tenta combinar o fluxo de blocos com as regras. Uma combinação indica uma frase válida na linguagem; Cada regra, por sua vez, pode chamar uma ou mais ações. Se você está escrevendo uma nova linguagem de programação, sua semântica é expressa em ações. Cada ação transforma uma combinação em uma estrutura de dados independente da linguagem, chamada Parrot Abstract Syntax Tree (PAST). A PAST representa uma declaração como uma árvore, geralmente com operandos como folhas e
Regras if_statement
if
expressão
else
bloco
then
expressão bloco
(
)
end
bloco
a<b
else (bloco)
“A less... B
“B greater...
Figura 1 Código de uma declaração em C.
operadores – incluindo estruturas de controle – como ramos. De forma cumulativa, o programa como um todo é representado por uma árvore PAST com o nó especial TOP na raiz; A Parrot Intermediate Representation (PIR) pode ser facilmente escrita à mão e é a saída comum
de um compilador Parrot. Ela abstrai alguns detalhes de baixo nível para reduzir o trabalho dos programadores e também dos escritores de compiladores; A Parrot Assembly (PASM) é mais mecânica que a PIR. Pode ser escrita manualmente ou gerada por um compilador, mas
Listagem 1: Regra que define sintaxe 01 rule if_statement { 02 ‘if’ <expression> ‘then’ <block> [‘else’ <else=block>]? ‘end’ 03 {*} 04 }
Blocos
Figura 2 Código agregado em blocos.
73
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
PROGRAMAÇÃO | Parrot
Fonte
Figura 3 Blocos da figura 2 encaixando-se nas regras.
cada detalhe, como alocação de registros, precisa ser checado; A representação de baixo nível é o Parrot Byte Code (PBC). Embora seja possível vê-lo como código de máquina, ele não é executado no hardware. Em vez disso, o PBC é executado pelo Parrot.
O Parrot pode executar arquivos PBC, PASM, PIR e PAST. A PAST não é adequada à programação manual, mas é ideal para integração entre ferramentas. Normalmente, um compilador tradicional como o onipresente GCC gera uma árvore de sintaxe abstrata que funciona como uma forma intermediária de produzir e aplicar otimizações. Adaptar essa árvore à PAST é simples e, como a PAST é lida pelo Parrot, é fácil conectar um outro compilador ao Parrot. Além desses componentes, o Parrot também fornece alguns nós PAST (pense no nó como um modelo ou objeto) para representar recursos fun-
Listagem 2: Ação associada a uma regra 01 method if_statement($/) { 02 my $cond := $<expression>.ast; 03 my $then := $<block>.ast; 04 my $past := PAST::Op.new( $cond, $then, :pasttype(‘if’), :node($/) ); 05 06 ## se houver uma diretiva else, inclua-a no nó PAST. 07 if $<else> { 08 $past.push( $<else>[0].ast ); 09 } 10 make $past; 11 }
Blocos if_statement
expressão
bloco
else (bloco)
Figura 4 Uma ação prepara os dados associados a uma regra para ser transformados em PAST. Nesta imagem, o if_statement está junto.
damentais encontrados em qualquer linguagem de programação. Por exemplo, conceitualmente, o Parrot inclui um nó para if-then-else, uma estrutura presente em todas as linguagens. Para incluir um nó desses na árvore do seu programa, você precisa determinar uma condição, um bloco de código que será executado caso a condição seja verdadeira e, opcionalmente, outro bloco de código que será executado caso a condição seja falsa. O nó if capta a semântica do nó independentemente da sintaxe original usada para declará-lo. Outros nós PAST dedicam-se a outros recursos: uma variável, incluindo escopo e tipo; um loop; e operadores, incluindo aritméticos e chamadas de sub-rotinas. Aí está a verdadeira força do Parrot. Os aspectos da linguagem não precisam ser reinventados, pois ele abstrai cada um, independentemente da sintaxe. No entanto, se uma linguagem possui algum recurso realmente novo, é possível implementar um nó PAST que corresponda à sua semântica. As figuras 1 a 5 ilustram o processo de conversão de uma estrutura if semelhante a C em um nó PAST. A figura 1 mostra o código-fonte; nesta forma, ela é uma sequência de caracteres que pode ou não aderir à sintaxe. A figura 2 mostra o código decomposto em blocos de acordo com as regras do parser. Neste ponto, caracteres individuais não são mais importantes; em vez disso, é o grupo que importa agora. A figura 3 ilustra as regras. Cada uma delas dita uma parte da gramática correta. Quando um grupo de blocos se encaixa numa regra, ele é coletado e formatado em uma regra, outro tipo de amálgama. Cada passo da aglomeração no processo de compilação move o código da sintaxe em direção à semântica. A figura 4 mostra a ação
74
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Parrot | PROGRAMAÇÃO
da declaração if. Cada amálgama da figura 3 já foi reduzido por sua (sub)ação separada e agora está unido para processamento subsequente. Neste ponto, cada unidade tem seu propósito, mas a lógica da condicional ainda não foi percebida. Na figura 5 vemos a montagem final após a ação da declaração if. O nó PAST captura a intenção e a operação da declaração de uma estrutura de dados. O último passo, que não é mostrado, atravessa o PAST (de cima para baixo e da esquerda para a direita) e gera o código correto. O código carregaria a primeira variável, depois a segunda, e faria a comparação. Esta comparação pode tanto continuar a execução na sequência (com o próximo código, que implementa uma comparação verdadeira, escrevendo “A menor que B”) quanto quebrar a execução com a comparação falsa (escrevendo “B é menor ou igual a A”).
Programação em Parrot A listagem 1 mostra um exemplo concreto do que foi discutido agora. Esse exemplo demonstra a gramática do Squaak, uma linguagem de programação de exemplo incluída no código-fonte do Parrot. A listagem 1 é uma regra que define a sintaxe da declaração if-then-else do Squaak. Uma declaração válida precisa: iniciar com a literal if; de uma expressão, definida em sua própria regra (não mostrada); da palavra-chave then; de um bloco de declarações, também definido em sua própria regra; e da palavra-chave end.
Listagem 3: Programa em PIR 01 .sub main 02 # Define o número de quadrados a somar. 03 .local int maxnum 04 maxnum = 10 05 06 # Vamos usar registradores com nomes. Note que podemos declarar vários 07 # registradores do mesmo tipo em uma linha. 08 .local int i, total, temp 09 total = 0 10 11 # Loop da soma. 12 i = 1 13 loop: 14 temp = i * i 15 total += temp 16 inc i 17 if i <= maxnum goto loop 18 19 # Escreve o resultado. 20 print “A soma dos primeiros “ 21 print maxnum 22 print “ quadrados eh “ 23 print total 24 print “.\n” 25 .end
interrogação, que significa “uma ou zero” ocorrência. Se essa frase aparecer, ela precisa conter a palavrachave else seguida por outro bloco. A notação <else=block> simplesmente atribui um apelido chamado else ao segundo bloco para diferenciá-lo do primeiro. Se essa regra coincidir com o texto, é chamada uma ação no fim, que
PAST node if_statement
$cond
<
a
Esses são os componentes obrigatórios. A frase [‘else’ <else=block>]? é opcional, como mostra o ponto de
é o propósito do estranho marcador {*} no fim da regra. Uma ação é simplesmente uma sub-rotina. Por padrão, o Parrot chama a ação pelo mesmo nome de sua respectiva regra. Além disso, a ação é chamada com argumentos, um argumento por sub-regra. A listagem 2 mostra a ação associada à regra if_statement. Mesmo
b
$then
$else[0]
“A less...”
“B...”
Figura 5 A declaração if gera um PAST pronto para a otimização e geração de código.
75
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
PROGRAMAÇÃO | Parrot
sem uma descrição elaborada, seu funcionamento é bem óbvio. Dada uma condição e um bloco para executá-la caso seja verdadeira, o código constrói um PAST para a declaração. Se for fornecido mais
um bloco, ele será unido ao PAST. A declaração final make faz o trabalho duro por você. Tendo em mente a listagem 2, o código a seguir é a ação para uma declaração como x = 10:
method assignment($/) { my $rhs := $<expression>.ast; my $lhs := $<primary>.ast; $lhs.lvalue(1); make PAST::Op.new( $lhs, $rhs, :pasttype(‘bind’), :node($/) );
Quadro 1: Compilação do Parrot Compilar o Parrot é surpreendentemente fácil, supondo que você possua as ferramentas comuns para desenvolvimento de software no seu sistema Linux. Se você tem Perl 5, GCC e Subversion (ou Xcode instalado no seu Mac OS X), o processo todo leva apenas alguns minutos. O primeiro passo é obter código-fonte mais recente com o Subversion: $ svn co \ https://svn.parrot.org/parrot/trunk \ parrot $ cd parrot Em seguida, configure a compilação com o script especial Configure.pl do Parrot. Normalmente, os padrões propostos pelo script funcionam bem. No entanto, se você quiser personalizar, digite perl Configure.pl --help para examinar a lista de opções. A maioria delas são opções gerais, como a --prefix, de instalação, mas muitas afetam recursos do Parrot, como qual estratégia de coleta de lixo usar. $ perl Configure.pl Parrot Version 1.2.0 Configure 2.0 Copyright (C) 2001-2009, Parrot Foundation. Hello, I’m Configure. My job is to poke and prod your system to figure out how to build Parrot. The process is completely automated, unless you passed in the --ask flag on the command line, in which case I’ll prompt you for a few pieces of info. Since you’re running this program, you obviously have Perl 5--I’ll be pulling some defaults from its configuration. ... Now you can use make to build your Parrot. After that, you can use make test to run the test suite. Para prosseguir, compile o software e faça sua verificação para garantir a estabilidade: $ make $ make test Supondo que o teste tenha sucesso, instale as ferramentas do Parrot no sistema: $ sudo make install Por padrão, o Parrot será instalado em /usr/local/. Para instalá-lo no seu diretório home, use perl Configure.pl --prefix=$HOME/parrot na configuração. A instalação adiciona oito utilitários ao sistema. O mais importante é o parrot, a máquina virtual do Parrot. Para testá-lo, use as listagens 3 e 4 e os comandos discutidos anteriormente. Com o código-fonte do Parrot já baixado, mantenha-o atualizado com svn update. Mas atenção: use make realclean antes de qualquer atualização. $ make realclean $ svn update Sem usar o realclean, o Parrot pode não funcionar ou exibir falhas estranhas e irreproduzíveis.
76
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Parrot | PROGRAMAÇÃO
A listagem 3 mostra um exemplo de programa PIR retirado do site do Parrot. O aplicativo soma o quadrado dos números de 1 a 10. Nesse código, a identação é usada para facilitar a leitura, não pela semântica (em outras palavras, o espaço em branco não é ativo). A listagem 3 lembra a linguagem assembly, com algumas exceções que são conveniências do PIR. Especificamente, temp = i * i equivale a mul temp, i, i. O código .local int i, total, temp utiliza nomes mais amigáveis no lugar de registradores fixos para as três variáveis, e usa .local para especificar um escopo. O operador de atribuição (=) é um apelido para set, e goto também é uma conveniência. É equivalente a le i, maxnum, loop. Para executar o código da listagem 3, é possível tanto interpretar o código PIR quanto compilar o PIR para PBC e executar o código resultante (confira o quadro 1). $ parrot sum.pir A soma dos primeiros 10 quadrados eh 385. $ parrot -o sum.pbc sum.pir $ parrot sum.pbc A soma dos primeiros 10 quadrados eh 385.
Listagem 4: Fonte PASM 01 main: 02 set I0, 10 03 set I1, 0 04 set I3, 1 05 loop: 06 mul I2, I3, I3 07 add I1, I2 08 inc I3 09 le I3, I0, loop 10 print “A soma dos primeiros “ 11 print I0 12 print “ quadrados eh “ 13 print I1 14 print “.\n” 15 returncc
Ave tagarela
O Parrot ganhou esse nome por causa de sua habilidade de falar várias línguas [3]. O Rakudo Perl 6 [4] é uma implementação de Perl 6 no Parrot. O Cardinal [5] é uma versão de Ruby 1.0, e o Pipp [6] é uma versão de PHP. Outros projetos estão levando Java, Lua e Smalltalk para o Parrot e há mais 40 projetos listados no seu índice.
A última versão do Parrot é a 1.2.0. O programa é estável e pode ser usado tanto como linguagem de programação quanto para pesquisa e desenvolvimento de máquinas virtuais. Se você precisa de uma linguagem de domínio específico ou deseja estender uma linguagem já existente, experimente o Perl 6 por enquanto. Tire o Parrot de seu poleiro e leveo para sua máquina. n
Mais informações [1] Common Intermediate Language (CIL) na Wikipédia (em inglês): http://en.wikipedia.org/wiki/Common_Intermediate_Language [2] Parrot: http://www.parrot.org/
O Parrot pode produzir fonte PASM, caso você tenha curiosidade de saber como o PIR traduz. Para gerar o PASM, substitua -o arquivo. pbc por -o arquivo.pasm:
[3] Implementações de Linguagens baseadas no Parrot: http://www.parrot.org/languages/ [4] Rakudo Perl 6 no Parrot: http://www.rakudo.org/ [5] Cardinal, Ruby para Parrot: http://github.com/cardinal/cardinal/tree/master
$ parrot -o sum.pasm sum.pir
[6] Pipp, PHP para Parrot: http://wiki.github.com/bschmalhofer/pipp/
A listagem 4 mostra o equivalente PASM da listagem 3. O Parrot também pode executar o PASM diretamente:
Gostou do artigo?
$ parrot sum.pasm
Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br
A soma dos primeiros 10 quadrados é 385.
Este artigo no nosso site: http://lnm.com.br/article/3158
77
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Linux.local
SERVIÇOS
O maior diretório de empresas que oferecem produtos, soluções e serviços 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 Soluções = 3 Literatura / Editora = 4 Fornecedor de Software = 5 Consultoria / Treinamento = 6
Empresa
Cidade
Endereço
Telefone
Web
1 2 3 4 5 6
71 4062-8688
www.imtech.com.br
4 4
4 4
www.f13.com.br
4 4
4 4
Bahia IMTECH
Salvador
Av. Antonio Carlos Magalhaes, 846 – Edifício MaxCenter – Sala 337 – CEP 41825-000
F13 Tecnologia
Fortaleza
Rua Padre Valdevino, 526 – Centro
Nettion Tecnologia e Segurança da Informação
Fortaleza
Av. Oliveira Paiva, 941, Cidade dos Funcionários – CEP 60822-130 85 3878-1900
Linux Shopp
Vila Velha
Rua São Simão (Correspondência), 18 – CEP: 29113-120
27 3082-0932
www.linuxshopp.com.br
Megawork Consultoria e Sistemas
Vitória
Rua Chapot Presvot, 389 – Praia do Canto – CEP: 29055-410 sl 201, 202
27 3315-2370
www.megawork.com.br
4
4 4
Spirit Linux
Vitória
Rua Marins Alvarino, 150 – CEP: 29047-660
27 3227-5543
www.spiritlinux.com.br
4
4 4
62 3232-9333
www.3way.com.br
4 4 4
4 4
Ceará 85 3252-3836
www.nettion.com.br
4 4
4
Espírito Santo 4 4
4 4
Goiás 3WAY Networks
Goiânia
Av. Quarta Radial,1952. Setor Pedro Ludovico – CEP.: 74830-130
Minas Gerais Instituto Online
Belo Horizonte
Av. Bias Fortes, 932, Sala 204 – CEP: 30170-011
31 3224-7920
www.institutoonline.com.br
Linux Place
Belo Horizonte
Rua do Ouro, 136, Sala 301 – Serra – CEP: 30220-000
31 3284-0575
corporate.linuxplace.com.br
Microhard
Belo Horizonte
Rua República da Argentina, 520 – Sion – CEP: 30315-490
31 3281-5522
TurboSite
Belo Horizonte
Rua Paraíba, 966, Sala 303 – Savassi – CEP: 30130-141
0800 702-9004
4
4
4 4
4 4
www.microhard.com.br
4 4 4
4 4
www.turbosite.com.br
4
4 4
Paraná iSolve
Curitiba
Av. Cândido de Abreu, 526, Cj. 1206B – CEP: 80530-000
41 252-2977
www.isolve.com.br
Mandriva Conectiva
Curitiba
Rua Tocantins, 89 – Cristo Rei – CEP: 80050-430
41 3360-2600
www.mandriva.com.br
Telway Tecnologia
Curitiba
Rua Francisco Rocha 1830/71
41 3203-0375
www.telway.com.br
81 3223-8348
www.fuctura.com.br
4 4
4
4 4 4 4 4 4
Pernambuco Fuctura Tecnologia
Recife
Rua Nicarágua, 159 – Espinheiro – CEP: 52020-190
4
4
Rio de Janeiro Múltipla Tecnologia da Informação Rio de Janeiro
Av. Rio Branco, 37, 14° andar – CEP: 20090-003
21 2203-2622
www.multipla-ti.com.br
NSI Training
Rio de Janeiro
Rua Araújo Porto Alegre, 71, 4º andar Centro – CEP: 20030-012
21 2220-7055
www.nsi.com.br
4
4
Open IT
Rio de Janeiro
Rua do Mercado, 34, Sl, 402 – Centro – CEP: 20010-120
21 2508-9103
www.openit.com.br
4
4
Unipi Tecnologias
Campos dos Goytacazes
Av. Alberto Torres, 303, 1ºandar – Centro – CEP: 28035-581
22 2725-1041
www.unipi.com.br
4up Soluções Corporativas
Novo Hamburgo
Pso. Calçadão Osvaldo Cruz, 54 sl. 301 CEP: 93510-015
51 3581-4383
www.4up.com.br
Definitiva Informática
Novo Hamburgo
Rua General Osório, 402 - Hamburgo Velho
51 3594 3140
www.definitiva.com.br
Solis
Lajeado
Av. 7 de Setembro, 184, sala 401 – Bairro Moinhos CEP: 95900-000
51 3714-6653
www.solis.coop.br
DualCon
Novo Hamburgo
Rua Joaquim Pedro Soares, 1099, Sl. 305 – Centro
51 3593-5437
www.dualcon.com.br
4
4
Datarecover
Porto Alegre
Av. Carlos Gomes, 403, Sala 908, Centro Comercial Atrium Center – Bela Vista – CEP: 90480-003
51 3018-1200
www.datarecover.com.br
4
4
LM2 Consulting
Porto Alegre
Rua Germano Petersen Junior, 101-Sl 202 – Higienópolis – CEP: 90540-140
51 3018-1007
www.lm2.com.br
Lnx-IT Informação e Tecnologia Porto Alegre
Av. Venâncio Aires, 1137 – Rio Branco – CEP: 90.040.193
51 3331-1446
www.lnx-it.inf.br
Plugin
Porto Alegre
Av. Júlio de Castilhos, 132, 11º andar Centro – CEP: 90030-130
51 4003-1001
www.plugin.com.br
TeHospedo
Porto Alegre
Rua dos Andradas, 1234/610 – Centro – CEP: 90020-008
51 3286-3799
www.tehospedo.com.br
4 4
Propus Informática
Porto Alegre
Rua Santa Rita, 282 – CEP: 90220-220
51 3024-3568
www.propus.com.br
4 4 4
4 4 4
4
4
4 4
4 4 4 4
Rio Grande do Sul 4 4
4 4
4
4 4
4
4 4 4 4 4 4 4
4
4 4
4
4
4 4
4
4
4
São Paulo Ws Host
Arthur Nogueira
Rua Jerere, 36 – Vista Alegre – CEP: 13280-000
19 3846-1137
www.wshost.com.br
4
DigiVoice
Barueri
Al. Juruá, 159, Térreo – Alphaville – CEP: 06455-010
11 4195-2557
www.digivoice.com.br
4 4 4
4 4
Dextra Sistemas
Campinas
Rua Antônio Paioli, 320 – Pq. das Universidades – CEP: 13086-045 19 3256-6722
www.dextra.com.br
4
4 4
Insigne Free Software do Brasil Campinas
Av. Andrades Neves, 1579 – Castelo – CEP: 13070-001
19 3213-2100
www.insignesoftware.com
4
Microcamp
Campinas
Av. Thomaz Alves, 20 – Centro – CEP: 13010-160
19 3236-1915
www.microcamp.com.br
PC2 Consultoria em Software Livre
Carapicuiba
Rua Edeia, 500 - CEP: 06350-080
11 3213-6388
www.pc2consultoria.com
Epopéia Informática
Marília
Rua Goiás, 392 – Bairro Cascata – CEP: 17509-140
14 3413-1137
www.epopeia.com.br
Redentor
Osasco
Rua Costante Piovan, 150 – Jd. Três Montanhas – CEP: 06263-270 11 2106-9392
www.redentor.ind.br
Go-Global
Santana de Parnaíba
Av. Yojiro Takaoca, 4384, Ed. Shopping Service, Cj. 1013 – CEP: 06541-038
11 2173-4211
www.go-global.com.br
AW2NET
Santo André
Rua Edson Soares, 59 – CEP: 09760-350
11 4990-0065
www.aw2net.com.br
78
4
4 4 4
4
4 4 4
4 4 4
4 4 4 4
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Linux.local | SERVIÇOS
Empresa
Cidade
Endereço
Telefone
Web
1 2 3 4 5 6
São Paulo (continuação) Async Open Source
São Carlos
Rua Orlando Damiano, 2212 – CEP 13560-450
16 3376-0125
www.async.com.br
4
Delix Internet
São José do Rio Preto
Rua Voluntário de São Paulo, 3066 9º – Centro – CEP: 15015-909
11 4062-9889
www.delixhosting.com.br
4
2MI Tecnologia e Informação
São Paulo
Rua Franco Alfano, 262 – CEP: 5730-010
11 4203-3937
www.2mi.com.br
4Linux
São Paulo
Rua Teixeira da Silva, 660, 6º andar – CEP: 04002-031
11 2125-4747
www.4linux.com.br
4 4 4
4
4 4
4 4 4 4
A Casa do Linux
São Paulo
Al. Jaú, 490 – Jd. Paulista – CEP: 01420-000
11 3549-5151
www.acasadolinux.com.br
4
4 4
Accenture do Brasil Ltda.
São Paulo
Rua Alexandre Dumas, 2051 – Chácara Santo Antônio – CEP: 04717-004
11 5188-3000
www.accenture.com.br
4
4 4
ACR Informática
São Paulo
Rua Lincoln de Albuquerque, 65 – Perdizes – CEP: 05004-010
11 3873-1515
www.acrinformatica.com.br
4
4
Agit Informática
São Paulo
Rua Major Quedinho, 111, 5º andar, Cj. 508 – Centro – CEP: 01050-030
11 3255-4945
www.agit.com.br
4 4
4
Altbit - Informática Comércio e Serviços LTDA.
São Paulo
Av. Francisco Matarazzo, 229, Cj. 57 – Água Branca – CEP 05001-000
11 3879-9390
www.altbit.com.br
4
4
4 4
AS2M -WPC Consultoria
São Paulo
Rua Três Rios, 131, Cj. 61A – Bom Retiro – CEP: 01123-001
11 3228-3709
www.wpc.com.br
Big Host
São Paulo
Rua Dr. Miguel Couto, 58 – Centro – CEP: 01008-010
11 3033-4000
www.bighost.com.br
4
4 4
Blanes
São Paulo
Rua André Ampére, 153 – 9º andar – Conj. 91 CEP: 04562-907 (próx. Av. L. C. Berrini)
11 5506-9677
www.blanes.com.br
4 4 4
4 4
4
4 4
Bull Ltda
São Paulo
Av. Angélica, 903 – CEP: 01227-901
11 3824-4700
www.bull.com
4
4
4 4
Commlogik do Brasil Ltda.
São Paulo
Av. das Nações Unidas, 13.797, Bloco II, 6º andar – Morumbi – CEP: 04794-000
11 5503-1011
www.commlogik.com.br
4 4 4
4 4
Computer Consulting Projeto e Consultoria Ltda.
São Paulo
Rua Caramuru, 417, Cj. 23 – Saúde – CEP: 04138-001
11 5071-7988
www.computerconsulting.com.br
4
4 4
Consist Consultoria, Sistemas e Representações Ltda.
São Paulo
Av. das Nações Unidas, 20.727 – CEP: 04795-100
11 5693-7210
www.consist.com.br
Domínio Tecnologia
São Paulo
Rua das Carnaubeiras, 98 – Metrô Conceição – CEP: 04343-080
11 5017-0040
www.dominiotecnologia.com.br
EDS do Brasil
São Paulo
Av. Pres. Juscelino Kubistcheck, 1830 Torre 4 - 5º andar
11 3707-4100
www.eds.com
Ética Tecnologia
São Paulo
Rua Nova York, 945 – Brooklin – CEP:04560-002
11 5093-3025
www.etica.net
Getronics ICT Solutions and Services
São Paulo
Rua Verbo Divino, 1207 – CEP: 04719-002
11 5187-2700
www.getronics.com/br
4
4 4 4 4 4
4 4 4
4
4
4
4 4
4
4 4
Hewlett-Packard Brasil Ltda.
São Paulo
Av. das Nações Unidas, 12.901, 25º andar – CEP: 04578-000
11 5502-5000
www.hp.com.br
4
4 4 4 4
IBM Brasil Ltda.
São Paulo
Rua Tutóia, 1157 – CEP: 04007-900
0800-7074 837
www.br.ibm.com
4
4
4 4
iFractal
São Paulo
Rua Fiação da Saúde, 145, Conj. 66 – Saúde – CEP: 04144-020
11 5078-6618
www.ifractal.com.br
4
4 4
Integral
São Paulo
Rua Dr. Gentil Leite Martins, 295, 2º andar Jd. Prudência – CEP: 04648-001
11 5545-2600
www.integral.com.br
4 4 4 4
Itautec S.A.
São Paulo
Av. Paulista, 2028 – CEP: 01310-200
11 3543-5543
www.itautec.com.br
Kenos Consultoria
São Paulo
Av: Fagundes Filho, 134, Conj 53 – CEP: 04304-000
11 40821305
www.kenos.com.br
Konsultex Informatica
São Paulo
Av. Dr. Guilherme Dumont Villares, 1410 6 andar, CEP: 05640-003
11 3773-9009
www.konsultex.com.br
São Paulo
Av. Dr. Lino de Moraes Leme, 185 – CEP: 04360-001
11 5034-4191
www.komputer.com.br
4 4
Linux Mall
São Paulo
Rua Machado Bittencourt, 190, Cj. 2087 – CEP: 04044-001
11 5087-9441
www.linuxmall.com.br
São Paulo
Al. Santos, 1202 – Cerqueira César – CEP: 01418-100
11 3266-2988
www.temporeal.com.br
Locasite Internet Service
São Paulo
Av. Brigadeiro Luiz Antonio, 2482, 3º andar – Centro – CEP: 01402-000
11 2121-4555
www.locasite.com.br
Microsiga
São Paulo
Av. Braz Leme, 1631 – CEP: 02511-000
11 3981-7200
www.microsiga.com.br
Locaweb
São Paulo
Av. Pres. Juscelino Kubitschek, 1.830 – Torre 4 Vila Nova Conceição – CEP: 04543-900
11 3544-0500
www.locaweb.com.br
Novatec Editora Ltda.
São Paulo
Rua Luis Antonio dos Santos, 110 – Santana – CEP: 02460-000
11 6979-0071
www.novateceditora.com.br
Novell América Latina
São Paulo
Rua Funchal, 418 – Vila Olímpia
11 3345-3900
www.novell.com/brasil
Oracle do Brasil Sistemas Ltda. São Paulo
Av. Alfredo Egídio de Souza Aranha, 100 – Bloco B – 5º andar – CEP: 04726-170
11 5189-3000
www.oracle.com.br
Proelbra Tecnologia Eletrônica Ltda.
São Paulo
Av. Rouxinol, 1.041, Cj. 204, 2º andar Moema – CEP: 04516-001
11 5052- 8044
www.proelbra.com.br
Provider
São Paulo
Av. Cardoso de Melo, 1450, 6º andar – Vila Olímpia – CEP: 04548-005
11 2165-6500
Red Hat Brasil
São Paulo
Av. Brigadeiro Faria Lima, 3900, Cj 81 8º andar Itaim Bibi – CEP: 04538-132
11 3529-6000
4 4 4 4
Linux Komputer Informática Livraria Tempo Real
4
4
4 4
4
4 4 4 4 4 4 4
4
4 4 4
4 4
4 4 4 4 4
4 4 4 4
4
4
4
www.e-provider.com.br
4
4 4
www.redhat.com.br
4
4 4
Samurai Projetos Especiais
São Paulo
Rua Barão do Triunfo, 550, 6º andar – CEP: 04602-002
11 5097-3014
www.samurai.com.br
4
4 4
SAP Brasil
São Paulo
Av. das Nações Unidas, 11.541, 16º andar – CEP: 04578-000
11 5503-2400
www.sap.com.br
4
4 4
Savant Tecnologia
São Paulo
Av. Brig. Luis Antonio, 2344 cj 13 – Jd. Paulista – CEP:01402-000
11 2925-8724
www.savant.com.br
Simples Consultoria
São Paulo
Rua Mourato Coelho, 299, Cj. 02 Pinheiros – CEP: 05417-010
11 3898-2121
www.simplesconsultoria.com.br
Smart Solutions
São Paulo
Av. Jabaquara, 2940 cj 56 e 57
11 5052-5958
www.smart-tec.com.br
Snap IT
São Paulo
Rua João Gomes Junior, 131 – Jd. Bonfiglioli – CEP: 05299-000
11 3731-8008
www.snapit.com.br
Stefanini IT Solutions
São Paulo
Av. Brig. Faria Lima, 1355, 19º – Pinheiros – CEP: 01452-919
11 3039-2000
www.stefanini.com.br
Sun Microsystems
São Paulo
Rua Alexandre Dumas, 2016 – CEP: 04717-004
11 5187-2100
www.sun.com.br
Sybase Brasil
São Paulo
Av. Juscelino Kubitschek, 510, 9º andar Itaim Bibi – CEP: 04543-000 11 3046-7388
www.sybase.com.br
The Source
São Paulo
Rua Marquês de Abrantes, 203 – Chácara Tatuapé – CEP: 03060-020
11 6698-5090
www.thesource.com.br
Unisys Brasil Ltda.
São Paulo
R. Alexandre Dumas 1658 – 6º, 7º e 8º andares – Chácara Santo Antônio – CEP: 04717-004
11 3305-7000
www.unisys.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
Utah
São Paulo
Av. Paulista, 925, 13º andar – Cerqueira César – CEP: 01311-916
11 3145-5888
www.utah.com.br
4
4 4
Visuelles
São Paulo
Rua Eng. Domicio Diele Pacheco e Silva, 585 – Interlagos – CEP: 04455-310
11 5614-1010
www.visuelles.com.br
4
4 4
Webnow
São Paulo
Av. Nações Unidas, 12.995, 10º andar, Ed. Plaza Centenário – Chácara Itaim – CEP: 04578-000
11 5503-6510
www.webnow.com.br
4
4
4
4
WRL Informática Ltda.
São Paulo
Rua Santa Ifigênia, 211/213, Box 02– Centro – CEP: 01207-001
11 3362-1334
www.wrl.com.br
4
Systech
Taquaritinga
Rua São José, 1126 – Centro – Caixa Postal 71 – CEP: 15.900-000
16 3252-7308
www.systech-ltd.com.br
4 4
4 4
79
Linux Magazine #61 | Dezembro de 2009
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Calendário de eventos
Índice de anunciantes
Evento
Data
Local
Informações
Conisli 2009
4 e 5 de dezembro
São Paulo, SP
www.conisli.org.br
Empresa
Pág.
SERVIÇOS
Senac
Java Enterprise Day
II Encontro Nacional das Comunidades Interlegis
Sun Tech Days 2009
GOPHP Conference 2009
5 de dezembro
7 a 9 de dezembro
8 a 9 de dezembro
12 de dezembro
Goiânia, GO
Brasília, DF
São Paulo, SP
Goiânia, GO
www.javaeeday.com.br
http://colab.interlegis.gov.br/ wiki/IIEncontroGitec
www.developers.sun.com/ events/techdays
www.gophp.com.br/conf
2, 3
ISC2
5
Microsoft
9
Itautec
11
Plus server
13
Rede Host
15
UOL Host
17
Rittal
21
Watchguard
23
LPI
27
Plaza Hotéis
33
Vectory
43
Clube do Hacker
71
Bull
83
Locaweb
84
Nerdson – Os quadrinhos mensais da Linux Magazine
80
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Loja
Edição do mês
Seções
Notícias
Ao se inscrever no portal, você se cadastra automaticamente em nossa newsletter e recebe toda semana notícias e promoções exclusivas. Newsletter
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
Livros
PREVIEW
Na Linux Magazine #62 DESTAQUE
REDES
Windows 7: o que muda para o Linux?
Servidor web leve e seguro
O Windows 7 está aí, e você, na sua rede mista, já está começando a se preparar para enfrentar todas as mudanças e dores de cabeça que certamente virão. A Linux Magazine 62 vai apresentar as mudanças trazidas pela nova versão do sistema da Microsoft nas áreas mais importantes da interoperabilidade: autenticação, diretórios, virtualização, VPNs e Samba. De posse dessas informações, bastarão algumas alterações nos arquivos e procedimentos já usados em todas as redes para adequar as estações e servidores à chegada do novo Windows. n
Continuando nossa demonstração de servidores web alternativos, apresentaremos na Linux Magazine 62 o Hiawatha, um servidor que ocupa apenas 600 KB e tem foco em segurança e velocidade. Com configuração simplificada – realizada inteiramente em um único arquivo de configuração –, o Hiawatha prefere conexões SSL e é repleto de recursos. Será a hora de aposentar o Apache? n
Na EasyLinux #17 Novo Ubuntu
O Ubuntu 9.10 promete trazer importantes novidades no campo da computação em nuvem. A própria escolha do codinome desta versão, Karmic Koala, faz alusão às nuvens, segundo Mark Shuttleworth: “o coala vive com a cabeça nas nuvens”. Será que a próxima versão da distribuição GNU/Linux mais amigável do planeta vai conseguir levar os benefícios da computação em nuvem para todos os seus usuários? Mas as novidades certamente não param por aí. Desde o sistema de arquivos até o gerenciador de inicialização, passando pelo ambiente Gnome e até seu programa de mensagens instantâneas, o Ubuntu está trazendo importantes mudanças e novidades para tornar a experiência de seus usuários cada vez mais prática e agradável em frente a esse sistema livre. A próxima edição da Easy Linux vai trazer uma extensa análise do Ubuntu 9.10, mostrando em detalhes os novos recursos do sistema e como eles podem facilitar a sua vida. n
Duelo dos navegadores As ofertas aos navegantes jamais foram tão numerosas e diversas. O GNU/ Linux atualmente dispõe de mais de uma dezena de navegadores web, todos com um bom número de usuários. A Easy Linux 17 vai fazer um comparativo entre os principais navegadores disponíveis no Ubuntu, de forma que você possa escolher o mais veloz, mais competente e, evidentemente, mais elegante para compor a sua área de trabalho. n
82
http://www.linuxmagazine.com.br
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
12/2009
MICROSOFT VIOLA A GPL p.24
SERVIÇOS EM SL p.26
Empresa de Steve Ballmer admite e corrige o erro
MONETIZAÇÃO p.28
Software Livre e proprietário não são diferentes quando se trata de ganhar dinheiro
Cezar Taurion explica modelos de negócio Open Source
los ÃO p.28 MONETIZAÇon explica mode são o não iro EM SL p.26 SERVIÇOS Livre e proprietáride ganhar dinhe
Linux Magazine
A GPL p.24 T VIOLA er MICROSOFde Steve Ballm
# 61 Dezembro 2009
Tauri Source Cezar cio Open de negó
Software quando se trata diferentes
Empresa e o erro e corrig admite
AÇÃO CERTIFIC NAL IO PROFISS EMPREGO
MELHOR
E SALÁRIO
MAIOR.
QUEM NÃO
QUER?
p.30
tos p.34 de proje p.37 ciamento em Linux » PMI, geren ficações LPI, certi » RHCE, rnança p.40 CobiT, gove » ITIL e p.44 segurança » CISSP,
p.56
NX tudo o seu! íssimo tem REDES: NGI dor rapid – inclusive para
DIUS p.62redes : FREERA só para X não é SEGURANÇA impede IEEE 802.1 ção ADIUS, você . Autentica Com o FreeRautorizado à rede wireless. não acesso qualquer
TA EDIÇÃO: p.52 BÉM NES RAID p.48 VEJA TAMris, parte 8: LVM emáquinas que enxergam
A REVISTA DO PROFISSIONAL DE TI
p.68 » OpenSola putacional e as tição com SSI Com sem repe m p.72 » Visão ção web ilinguage dor mult » Programa o interpreta » Parrot, M.BR
CEZAR TAURION p.34 O Código Aberto como incentivo à inovação
#44 07/08
00044
R$ 13,90 € 7,50
A REVISTA DO PROFISSIONAL DE TI
PMI
GOVERNANÇA COM
RHCE
SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRÁTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA ÁREA p.36
» O que dizem os profissionais certificados p.24 » Cobit, CMMI, ITIL. Quais as melhores práticas? p.36 » ITIL na prática p.39
» Novidades do ITIL v3. p.44
LPI
SEGURANÇA: DNSSEC p.69
VEJA TAMBÉM NESTA EDIÇÃO:
Com o DNSSEC, a resolução de nomes fica protegida de ataques. Mas seu preço vale a pena?
» Relatórios do Squid com o SARG p.60
REDES: IPV6 p.64
» Becape de bancos de dados com a Libferris p.46
Conheça as vantagens da nova versão do Internet Protocol, e veja por que é difícil adotá-la
» Java, Ruby e Rails: conheça o JRuby on Rails p.74 » Benchmarks do GCC 4.3? p.58
» LPI nível 2: Servidores NIS e DHCP p.52
ITIL
WWW.LINUXMAGAZINE.COM.BR
EMPREGO MELHOR E SALÁRIO MAIOR. QUEM NÃO QUER? p.30
COBIT CISSP
» PMI, gerenciamento de projetos p.34 » RHCE, LPI, certificações em Linux p.37 » ITIL e CobiT, governança p.40 » CISSP, segurança p.44
NGINX FREERADIUS
REDES: NGINX p.56
Esse servidor rapidíssimo tem tudo para acelerar qualquer website – inclusive o seu!
SSI OPENSOLARIS PARROT VISÃO COMPUTACIONAL
© Linux New Media do Brasil Editora Ltda. Este documento é para uso exclusivo de rodrigo (CPF/CNPJ: 01287440304).
SEGURANÇA: FREERADIUS p.62
Autenticação IEEE 802.1X não é só para redes wireless. Com o FreeRADIUS, você impede qualquer acesso não autorizado à rede.
VEJA TAMBÉM NESTA EDIÇÃO:
» OpenSolaris, parte 8: LVM e RAID p.48 » Visão Computacional e as máquinas que enxergam p.52 » Programação web sem repetição com SSI p.68 » Parrot, o interpretador multilinguagem p.72
WWW.LINUXMAGAZINE.COM.BR
venda proibida
LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminários Linux Park de 2008
9 771806 942009
CERTIFICAÇÃO PROFISSIONAL
CERTIFICAÇÃO PROFISSIONAL CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco
Assinante
AZINE.CO
NUXMAG
WWW.LI
exemplar de
# 61
Esse servi website qualquer acelerar