interoperabilidade suportando o vista

84
A REVISTA DO PROFISSIONAL DE TI AS REDES ATUAIS SÃO AMBIENTES HETEROGÊNEOS. O BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p.27 » Conecte o Linux à VPN do Windows p.28 » MS AD e clientes Linux: a solução definitiva p.34 » Linux como servidor RDP p.40 » Agendamento de tarefas livre também no Windows p.44 Interoperabilidade WWW.LINUXMAGAZINE.COM.BR # 50 Janeiro 2009 SANEADA PELO LINUX P.22 Linux na Companhia de Águas do Maranhão LEI DOS CALL CENTERS P.26 Edgar Silva mostra como a nova lei requer TI BOCA NO TROMBONE P.25 Maddog explica como fazer sua parte nas políticas públicas SEGURANÇA: BIOMETRIA p.72 A autenticação por impressão digital já é realidade. Aprenda a implementá- la com um especialista REDES: OPENID p.68 Uma única identidade para vários serviços na Web. Mas como fica a segurança? VEJA TAMBÉM NESTA EDIÇÃO: » MIDs: será que a moda pega? p.17 » Faça gráficos pelo Google p.50 » HA e PostgreSQL: uma ótima mistura p.54 » ETL muito competente com o Talend p.62 SUPORTANDO O VISTA �� �������������������#50 01/09 R$ 14,90 7,50 9 771806 942009 00050 © Linux New Media do Brasil Editora Ltda.

Upload: others

Post on 15-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interoperabilidade SUPORTANDO O VISTA

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRAacuteTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA AacuteREA p36

44 0708

R$ 1390 euro 750

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWWLINUXMAGAZINECOMBR

CASE ALFRESCO p26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p28Iniciada em Porto Alegre a temporada de seminaacuterios Linux Park de 2008

CEZAR TAURION p34O Coacutedigo Aberto como incentivo agrave inovaccedilatildeo

GOVERNANCcedilA COM

raquo O que dizem os profissionais certificados p24

raquo Cobit CMMI ITIL Quais as melhores praacuteticas p36

raquo ITIL na praacutetica p39

raquo Novidades do ITIL v3 p44

SEGURANCcedilA DNSSEC p69

Com o DNSSEC a resoluccedilatildeo de nomes fica protegida de ataques Mas seupreccedilo vale a pena

REDES IPV6 p64

Conheccedila as vantagens da nova versatildeo do Internet Protocol e veja por queeacute difiacutecil adotaacute-la

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo Relatoacuterios do Squid com o SARG p60

raquo Java Ruby e Rails conheccedila o JRuby on Rails p74

raquo Benchmarks do GCC 43 p58

raquo Becape de bancos de dados com a Libferris p46

raquo LPI niacutevel 2 Servidores NIS e DHCP p52

A REVISTA DO PROFISSIONAL DE TI

AS REDES ATUAIS SAtildeO AMBIENTES HETEROGEcircNEOSO BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p27

raquo Conecte o Linux agrave VPN do Windows p28

raquo MS AD e clientes Linux a soluccedilatildeo definitiva p34

raquo Linux como servidor RDP p40

raquo Agendamento de tarefas livre tambeacutem no Windows p44

Interoperabilidade

Linu

x M

agazin

e

50012009

INTEROPERABILIDADE

VPN

AD

RDP AGEN

DADOR DE TAREFAS BIOM

ETRIA OPEN

ID M

IDS GOOGLE CHARTS

HA POSTGRESQL TALEN

D

WWWLINUXMAGAZINECOMBR

50 Janeiro 2009

SANEADA PELO LINUX P22 Linux na Companhia de Aacuteguas do Maranhatildeo

LEI DOS CALL CENTERS P26 Edgar Silva mostra como a nova lei requer TI

BOCA NO TROMBONE P25 Maddog explica como fazer sua parte nas poliacuteticas puacuteblicas

SEGURANCcedilA BIOMETRIA p72

A autenticaccedilatildeo por impressatildeo digital jaacute eacute realidade Aprenda a implementaacute-la com um especialista

REDES OPENID p68

Uma uacutenica identidade para vaacuterios serviccedilos na Web Mas como fica a seguranccedila

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo MIDs seraacute que a moda pega p17

raquo Faccedila graacuteficos pelo Google p50

raquo HA e PostgreSQL uma oacutetima mistura p54

raquo ETL muito competente com o Talend p62

SUPORTANDO O VISTA

50 0109

R$ 1490 euro 750

9 771806 942009

0 0 0 5 0

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

3

Expediente editorialDiretor Geral Rafael Peregrino da Silva rperegrinolinuxmagazinecombr

Editor Pablo Hess phesslinuxmagazinecombr

Revisora Aileen Otomi Nakamura anakamuralinuxmagazinecombr

Editora de Arte Paola Viveiros pviveiroslinuxmagazinecombr

Centros de Competecircncia Centro de Competecircncia em Software Oliver Frommel ofrommellinuxnewmediade Kristian Kiszligling kkisslinglinuxnewmediade Peter Kreussel pkreussellinuxnewmediade Marcel Hilzinger hilzingerlinuxnewmediade Centro de Competecircncia em Redes e Seguranccedila Achim Leitner aleitnerlinuxnewmediade Jens-Christoph B jbrendellinuxnewmediade Hans-Georg Eszliger hgesserlinuxnewmediade Thomas Leichtenstern tleichtensternlinuxnewmediade Max Werner mwernerlinuxnewmediade Markus Feilner mfeilnerlinuxnewmediade Nils Magnus nmagnuslinuxnewmediade

Anuacutencios Rafael Peregrino da Silva (Brasil) anuncioslinuxmagazinecombr Tel +55 (0)11 4082 1300 Fax +55 (0)11 4082 1302

Petra Jaser (Alemanha Aacuteustria e Suiacuteccedila) anzeigenlinuxnewmediade

Penny Wilby (Reino Unido e Irlanda) pwilbylinux-magazinecom

Amy Phalen (Estados Unidos) aphalenlinuxmagazinecom

Hubert Wiest (Outros paiacuteses) hwiestlinuxnewmediade

Gerente de Circulaccedilatildeo Claudio Bazzoli cbazzolilinuxmagazinecombr

Na Internet wwwlinuxmagazinecombr ndash Brasil wwwlinux-magazinde ndash Alemanha wwwlinux-magazinecom ndash Portal Mundial wwwlinuxmagazinecomau ndash Austraacutelia wwwlinux-magazineca ndash Canadaacute wwwlinux-magazinees ndash Espanha wwwlinux-magazinepl ndash Polocircnia wwwlinux-magazinecouk ndash Reino Unido wwwlinux-magazinro ndash Romecircnia

Apesar de todos os cuidados possiacuteveis terem sido tomados durante a produccedilatildeo desta revista a editora natildeo eacute responsaacutevel por eventuais imprecisotildees nela contidas ou por consequumlecircncias que advenham de seu uso A utilizaccedilatildeo de qualquer material da revista ocorre por conta e risco do leitor

Nenhum material pode ser reproduzido em qualquer meio em par-te ou no todo sem permissatildeo expressa da editora Assume-se que qualquer correspondecircncia recebida tal como cartas emails faxes fotografi as artigos e desenhos sejam fornecidos para publicaccedilatildeo ou licenciamento a terceiros de forma mundial natildeo-exclusiva pela Linux New Media do Brasil a menos que explicitamente indicado

Linux eacute uma marca registrada de Linus Torvalds

Linux Magazine eacute publicada mensalmente por

Linux New Media do Brasil Editora Ltda Av Fagundes Filho 134 Conj 53 ndash Sauacutede 04304-000 ndash Satildeo Paulo ndash SP ndash Brasil Tel +55 (0)11 4082 1300 ndash Fax +55 (0)11 4082 1302

Direitos Autorais e Marcas Registradas copy 2004 - 2008Linux New Media do Brasil Editora LtdaImpressatildeo e Acabamento ParmaDistribuiacuteda em todo o paiacutes pela Dinap SA Distribuidora Nacional de Publicaccedilotildees Satildeo Paulo

Atendimento Assinante

wwwlinuxnewmediacombratendimentoSatildeo Paulo +55 (0)11 3512 9460Rio de Janeiro +55 (0)21 3512 0888 Belo Horizonte +55 (0)31 3516 1280

ISSN 1806-9428 Impresso no Brasil

Prezados leitores Muitos de vocecircs provavelmente jaacute tiveram a experiecircncia de tentar ex-plicar a outras pessoas o conceito de Software Livre Recentemente tomei conhecimento da iniciativa da Fundaccedilatildeo Mozilla de adotar um novo nome ndash software natural ndash para designar os softwares produ-zidos por ela e creio que essa pequena diferenccedila pode facilitar signi-fi cativamente a compreensatildeo dos princiacutepios do Software Livre pelo puacuteblico em geral

Para explicar a algueacutem do ramo teacutecnico os preceitos do Software Livre o maior desafi o eacute esclarecer como uma empresa pode ganhar dinheiro sem vender seu software e isso muitas vezes se mostra difiacutecil o sufi ciente Para interlocutores natildeo teacutecnicos eacute difiacutecil imaginar como liberdade pode ser associada a um programa pois ldquosoftwarerdquo e ldquolivrerdquo para essas pessoas se relacionam tanto quanto ldquopedrardquo e ldquosatisfeitardquo por exemplo

Quando olho para essa tarefa por vezes tatildeo complicada lamento a infelicidade de quem tenta explicar o termo em inglecircs ndash ldquofree softwarerdquo ndash que traz agrave mente o sentido de gratuidade em vez de liberdade e por isso exige a complementaccedilatildeo ldquofree as in freedomrdquo Estranhamente jaacute ouvi de muitos executivos que pareciam entender o conceito de software livre frases como ldquoaquele software eacute freerdquo o que introduz um novo elemento de duacutevida para quem escuta trata-se de liberdade ou gratuidade

Com o novo ldquosoftware naturalrdquo da Fundaccedilatildeo Mozilla a compreensatildeo do conceito por qualquer pessoa eacute muito mais praacutetica O termo ldquonaturalrdquo traz com facilidade a ideacuteia de uma fruta Para colhermos uma laranja precisamos plantar uma laranjeira antes Embora colher a laranja ateacute seja graacutetis ndash assim como o software natural ndash isso natildeo signifi ca que o processo todo teve custo zero No miacutenimo levou tempo para se realizar ainda que natildeo se tenha gasto dinheiro com adubo sementes aacutegua ou manutenccedilatildeo da terra Alternativamente a laranja ndash ainda natural ndash pode ser comprada no mercado ou feira mais proacuteximos

ldquoNaturalrdquo tambeacutem possui conotaccedilatildeo positiva alimentos naturais fazem bem agrave sauacutede e medicamentos naturais tendem a ter menos efeitos colaterais

Quanto mais penso no adjetivo ldquonaturalrdquo para o software mais me con-venccedilo da escolha acertada da Fundaccedilatildeo Mozilla Minha lista de argumen-tos em favor do novo nome eacute infi ndaacutevel

A quem questiona a relevacircncia de um aspecto aparentemente tatildeo inoacutecuo quanto um nome lembro que CIOs satildeo pessoas assim como usuaacuterios fi nais e todos estamos sujeitos agravequele primeiriacutessimo julgamento por vezes completamente inconsciente de qualquer objeto pessoa ou fenocircmeno com base em seu nome Naturalmente

Pablo HessEditor

ISSN 1806-9428 Impresso no BrasilISSN 1806-9428 Impresso no Brasil

Software natural EDITORIA

L

copy Linux New Media do Brasil Editora Ltda

4 httpwwwlinuxmagazinecombr

CAPAIntegraccedilatildeo transparente 27

Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo

que vocecirc queira viver em um mundo de coacutedigo aberto

ele ainda estaacute cheio de Windows A ediccedilatildeo deste

mecircs traz um apanhado de estrateacutegias para facilitar o

conviacutevio com o sistema operacional da Microsoft

Rede fechada 28

Clientes Linux eventualmente precisam de uma matildeozinha

para se conectar a servidores VPN do Windows

Na ativa 34

O Likewise Open oferece integraccedilatildeo faacutecil a ambientes

Active Directory Mostramos como instalar e configurar o

sistema de autenticaccedilatildeo amigaacutevel para administradores

O manda-chuva do terminal 40

O xrdp ajuda os seus clientes de terminal

Windows a se conectarem ao Linux

Muito aleacutem do Cron 44

Planejar e agendar tarefas computacionais pode exigir muito

trabalho principalmente se abranger muacuteltiplas maacutequinas

Conheccedila uma ferramenta que facilita muito essa aacuterea

IacuteND

ICE

copy Linux New Media do Brasil Editora Ltda

5Linux Magazine 50 | Janeiro de 2009

| IacuteNDICELinux Magazine 50

COLUNASKlaus Knopper 08

Charly Kuumlhnast 10

Zack Brown 12

Inseguranccedila 14

Augusto Campos 17

NOTIacuteCIASGeral 18 Xen ganha recursos e promete integraccedilatildeo

LPI lanccedila provas 303 no Brasil

Lanccedilado o Fedora 10

Alta disponibilidade

Linux versus OpenSolaris e FreeBSD

Google Android no Openmoko

CORPORATENotiacutecias 20 ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

MS Windows eacute mais econocircmico

Sun lanccedila MySQL 51

VMware adquire Tungsten Graphics

Google e Red Hat fi rmam parceria

Insigne jaacute planeja 2012

Mandriva demite dois desenvolvedores

Entrevista CAEMA 22

Coluna Cezar Taurion 24

Coluna Jon ldquomaddogrdquo Hall 25

Coluna Edgar Silva 26

TUTORIALGraacutefi cos via Web 50 A API do Google Chart permite desenhar graacutefi cos

planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simples

Banco cheio mas disponiacutevel 54 O PostgreSQL natildeo possui embutido um mecanismo

para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia

ANAacuteLISE O talento do Talend 62 Quem procura uma soluccedilatildeo ETL para Business Intelligence

natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda

REDESIdentidade aberta mas segura 68 O OpenID oferece um padratildeo aberto para

login em websites fechados

SEGURANCcedilAAutenticaccedilatildeo biomeacutetrica 72

A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e confi gurar esse recurso de seguranccedila

SERVICcedilOSEditorial 03Emails 06Linuxlocal 78Eventos 80Iacutendice de anunciantes 80Preview 82

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

copy Linux New Media do Brasil Editora Ltda

6 httpwwwlinuxmagazinecombr

CA

RTA

S

sanj

a gj

ener

o ndash

ww

ws

xch

u

Emails para o editor

Permissatildeo de EscritaSe vocecirc tem duacutevidas sobre o mundo Linux criacuteticas ou sugestotildees que possam ajudar a melhorar a nossa revista escreva para o seguinte endereccedilo cartaslinuxmagazinecombr Devido ao grande volume de correspondecircncia torna-se impossiacutevel responder a todas as duacutevidas sobre aplicativos confi guraccedilotildees e problemas de hardware que chegam agrave Redaccedilatildeo mas garantimos que elas satildeo lidas e analisadas As mais interessantes satildeo publicadas nesta seccedilatildeo

Gestatildeo empresarial Primeiramente gostaria de parabenizaacute-los pela revista que possui oacutetimo conteuacutedo poucas propagandas e eacute muito objetiva em suas mateacuterias

Jaacute estive pesquisando poreacutem eacute muito difiacutecil en-contrar sistemas para gerenciamento de empresas como contas a pagar a receber controle de estoque etc Este eacute acredito eu um dos maiores problemas para conseguirmos migrar os nossos clientes para a plataforma Linux

Gostaria de pedir agrave Linux Magazine que se pos-siacutevel indicasse algumas opccedilotildees de softwares (livres ou natildeo) para gestatildeo de empresas para que pudeacutesse-mos analisaacute-los

Ivan Moretto Leme SP

Resposta Prezado Ivan muito obrigado pelos elogios Eacute sempre muito gratifi cante receber o reconhecimento por parte de nossos leitores Mas por favor natildeo hesite em nos informar tambeacutem o que poderia ser melhorado na Li-nux Magazine

Sobre a sua questatildeo jaacute publicamos duas ediccedilotildees (39 e 30) sobre esses sistemas cha-mados ERP (do inglecircs ldquoEnterprise Resour-ce Planningrdquo ndash Planejamento de Recursos da Empresa)

Como vocecirc pode conferir na listagem das mateacuterias de capa dessas ediccedilotildees haacute diversos sistemas ERP (proprietaacuterios ou de coacutedigo aberto) para Linux com destaque para Adem-piere Compiere e Openbravo ndash por sinal todos os trecircs tecircm o coacutedigo aberto

copy Linux New Media do Brasil Editora Ltda

7

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

8 httpwwwlinuxmagazinecombr

Pergunte ao Klaus

Klaus KnopperO professor Klaus responde as mais diversas duacutevidas dos leitores

Espaccedilo na telaHaacute uns dois anos eu comprei um PC bem baacutesico com chip graacutefico onboard Pluguei nele um moni-tor LCD de 19 polegadas (1280x1024) mas troquei-o por um de 22 polegadas (1680x1050) um ano de-pois No Centro de Controle do KDE selecionei a resoluccedilatildeo de 1680x1050 mas agora ele exibe e usa 1680x1200

Como meu monitor natildeo suporta essa resoluccedilatildeo eacute como se meu monitor estivesse ldquoflutuandordquo sobre a aacuterea de trabalho quando chego o mouse perto da base do monitor ele desliza a imagem para baixo mostrando a barra inferior do KDE e escondendo os 150 pixels laacute de cima

Eu gosto desse comportamento pois os progra-mas costumam ter seus menus na parte de cima da janela entatildeo eu natildeo preciso descer para a base com frequumlecircncia Aleacutem disso a base se torna um bom lo-cal para eu jogar janelas que natildeo quero visualizar no momento

Minha duacutevida eacute se essa nova configuraccedilatildeo eacute causa-da por um problema de driver ou se eu encontrei um recurso do Xorg que eacute comum mas pouco usado

Testei recentemente o Fedora 8 e ele reconhece automaticamente o tamanho do monitor Agraves vezes eu sinto falta dos 150 pixels de altura que sobram para baixo Existe alguma forma de recuperaacute-los

RespostaOs ldquo150 pixels ocultosrdquo de fato satildeo causados por

um recurso do servidor X Se o tamanho da tela for configurado como 1680x1050 o Xorg entraraacute no modo de deslizamento (scrolling mode)

Novas versotildees do Xorg substituem esse recurso pela alteraccedilatildeo da resoluccedilatildeo da aacuterea de trabalho usando a extensatildeo randr A vantagem eacute que a aacuterea de trabalho ajusta seu tamanho automaticamente ao se alterar a resoluccedilatildeo

Aleacutem disso alternar entre diferentes dispositivos de saiacuteda eacute mais faacutecil (por exemplo conectar um projetor com uma resoluccedilatildeo diferente ou usar no monitor interno a resoluccedilatildeo do externo) O Xorg carrega automaticamente a extensatildeo randr e depois

as configuraccedilotildees de Modes no arquivo etcX11xorgconf satildeo ignoradas em favor do que o monitor especifica como resoluccedilatildeo favorita

Eacute possiacutevel fazer o Xorg alterar sua resoluccedilatildeo dinami-camente usando o krandtray (no KDE) ou o comando xrandr (na linha de comando) Por exemplo

xrandr --output LVDS --auto

tentaraacute alinhar automaticamente a resoluccedilatildeo do servidor X agrave do monitor enquanto

xrandr --output LVDS --mode 800x600

ou

xrandr --output LVDS -s 800x600

usaraacute o modo ou resoluccedilatildeo para o tamanho de 800x600 especificado no comando o que tambeacutem faz certos ambientes desktop adotarem um tama-nho de tela diferente

xrandr --output VGA --auto

deve ativar a porta VGA externa de um notebook e tambeacutem fazer o desktop adotar a resoluccedilatildeo preferida do monitor ou projetor ligado a essa porta

No seu caso para retornar ao comportamento original com 150 pixels ldquosobrandordquo (desativando o randr no Xorg) basta adicionar a seguinte seccedilatildeo ao seu arquivo etcX11xorgconf

Section ldquoServerFlagsrdquo Option ldquoRandRrdquo ldquofalserdquoEndSection

CO

LU

NA

Escreva para o KlausEnvie suas perguntas em portuguecircs ou inglecircs para klauslinuxmagazinecombr e tire todas as suas duacutevidas

Linux Magazine 50 | Janeiro de 2009

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

9

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

10 httpwwwlinuxmagazinecombr

Siege

Charly Kuumlhnast O cerco a Troacuteia durou dez anos e terminou somente quanto Ulisses introduziu um cavalo de madeira dentro da cidade Charly tambeacutem estaacute planejando um cerco e o alvo eacute seu proacuteprio servidor web Naturalmente ele natildeo tem dez anos para completar essa tarefa nem Ulisses como parte de sua equipe

Estava checando meu servidor Apache e me lembrei do mito do monstro marinho Cila que deu cabo de nada menos que seis ho-

mens de Ulisses voltando de Troacuteia a caminho de casa O moacutedulo de multi-processamento ndash MPM worker ndash do meu servidor tambeacutem eacute capaz de devo-rar muacuteltiplas requisiccedilotildees numa talagada soacute mas ateacute onde ele aguumlenta Quantas threads eu preciso con-fi gurar para conseguir que ele entregue o maacuteximo de desempenho E a partir de quantas threads isso se torna um desperdiacutecio

Teste de carga Usando a ferramenta de ataque Siege [1] vou tentar responder essas questotildees por meio de um teste de car-ga O programa contempla dois modos de ataque o primeiro simula o comportamento de um ser humano navegando na Internet o que explica o intervalo de trecircs segundos entre cada dois acessos No segundo conhecido como modo benchmark esses intervalos satildeo eliminados e a ferramenta faz solicitaccedilotildees ao servidor ininterruptamente Para fazer o servidor ldquosuarrdquo o Sie-ge dispotildee de um exeacutercito de usuaacuterios de contingente confi guraacutevel ndash dez por padratildeo mas eacute possiacutevel usar o paracircmetro a seguir para aumentar o tamanho da tro-pa ateacute que o servidor web peccedila misericoacuterdia e nossos agressores consumam todos os recursos do sistema

--concurrent=ltnuacutemerogt

Como entrar em Troacuteia Como o Siege sabe qual servidor atacar Haacute duas opccedilotildees para isso o paracircmetro

--url=rdquohttpltmeusitecomgtltindexhtmlgtrdquo permite que vocecirc forneccedila a URL que o programa solicitaraacute repetidamente Jaacute a opccedilatildeo

--file=rdquohomecharlysiege-urlstxtrdquo

eacute mais interessante pois permite a criaccedilatildeo de uma sequumlecircncia arbitrariamente longa de endereccedilos web para o Siege atacar O parametro --reps=ltnuacutemerogt permite especifi car quantas vezes o programa deveraacute repetir o teste de carga

Tambeacutem eacute possiacutevel usar o paracircmetro --internet para dizer ao Siege para natildeo realizar as requisiccedilotildees na ordem especifi cada no arquivo siege-urlstxt mas fazecirc-lo de maneira aleatoacuteria o que eacute muito mais proacuteximo da realidade

Fim da batalha Para evitar que o teste de carga se estenda indefi nida-mente eacute prudente utilizar o paracircmetro --time para limitar seu tempo de execuccedilatildeo O ataque cessaraacute ao fi nal do tempo indicado mesmo que a quantidade de execuccedilotildees especifi cada pelo paracircmetro --rep ainda natildeo tenha sido atingida

Apoacutes sua execuccedilatildeo ter sido completada o Siege mostra um resumo dos resultados encontrados (veja a fi gura 1 )

CO

LU

NA

Mais informaccedilotildees

[1] Siege httpwwwjoedogorgJoeDogSiege

Figura 1 Apoacutes a batalha contra o servidor web o Siege apresenta os resultados

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

11

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

Gab

arit

o

Soluccedilatildeo faacutecil e descomplicada para empresas de qualquer tamanho colocarem seus produtos agrave venda na internet

R$4900

por mecircs

a partir de

senhorlojasimplesindd 1 121008 110411 AM

copy Linux New Media do Brasil Editora Ltda

12 httpwwwlinuxmagazinecombr

Crocircnicas do kernel

Zack BrownOs acontecimentos mais recentes na histoacuteria do kernel

Erradicaccedilatildeo do Big LockFrederic Weisbecker criou o Big Kernel Lock Tracer (rastreador do Big Lock ndash grande bloqueio ndash do ker-nel) que rastreia os tempos de atraso causados pelo Big Kernel Lock ou BKL Isso pode ajudar a iden-tificar aacutereas especiacuteficas nas quais o BKL deveria ser eliminado primeiro Linus Torvalds sugeriu livrar-se do BKL e substituiacute-lo por estruturas de bloqueio mais simples Entretanto nem todas as situaccedilotildees podem ser resolvidas com um bloqueio geneacuterico e o coacute-digo de bloqueio estaacute espalhado por todo o kernel o que dificulta qualquer tipo de esforccedilo conjunto Uma tentativa no momento eacute ldquoempurrarrdquo todo o

coacutedigo do BKL para sua proacutepria parte da aacutervore do kernel para centralizaacute-lo de forma a trataacute-lo de uma soacute vez Os participantes de todo o espectro do desen-volvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho A ferramenta de Frederic pode ajudar os desenvolvedores a concentrar sua atenccedilatildeo em aacutereas que beneficiariam a maioria

Redefinindo Load AverageSena Senerviratne e David Levy estatildeo preparando algumas mudanccedilas para o caacutelculo do valor de load average (carga meacutedia) no Linux Sua ideacuteia eacute em vez de calcular apenas um uacutenico nuacutemero para re-presentar toda a carga meacutedia do sistema fornecer muacuteltiplas estatiacutesticas Por exemplo eles querem separar do resto do sistema a carga de IO de disco

para visualizarem esse dado independentemente Aleacutem disso desejam ativar o caacutelculo de load avera-ge por usuaacuterio para que cada usuaacuterio visualize os efeitos sobre o seu sistema Arjan van de Ven pediu encarecidamente que eles apenas acrescentem esta-tiacutesticas sem alterar o comportamento dos nuacutemeros que o sistema jaacute produz

MantenedoresTheodore (Ted) Y Tsrsquoo atualizou o arquivo MAINTAINERS listando-se como mantenedor do sistema de arquivos Ext4 no lugar de Andrew Morton e Stephen Tweedie embora isso natildeo represente uma mudanccedila real de man-tenedor De acordo com Ted a entrada originalmente foi simplesmente copiada daquela do Ext3 e jamais foi precisa o que seu patch agora corrigiu

Um detalhe interessante eacute que embora Andreas Dilger natildeo esteja incluiacutedo como co-mantenedor no patch de Ted a lista de emails para submissatildeo de patches relatoacuterios de bug etc inclui o email de Andreas junto com o de Ted O email de Andreas tambeacutem estaacute listado junto com o de Andrew e Ste-phen na entrada original equivocada Geralmente isso significaria que ele dedica muito trabalho ao projeto e pode atuar como ldquotenenterdquo de Ted da mesma forma que Linus Torvalds confia em seus ldquotenentesrdquo para facilitar seu trabalho de inclusatildeo de coacutedigos no kernel

Mike Frysinger postou um patch para o arquivo MAINTAINERS listando a si mesmo e Subrata Modak como co-mantenedores do LTP (Linux Test Project) Esse projeto patrocinado pela SGI e IBM oferece um conjunto de aproximadamente 3 mil testes para avaliar a confiabilidade robustez e estabilidade do sistema operacional Linux

CO

LU

NA

Sobre o autorA lista de discussatildeo Linux-kernel eacute o nuacutecleo das atividades de desenvolvimento do ker-nel Zack Brown consegue se perder nesse oceano de mensagens e extrair significado Sua newsletter Kernel Traffic esteve em ativi-dade de 1999 a 2005

Os participantes de todo o espectro do desenvolvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho

copy Linux New Media do Brasil Editora Ltda

13

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

O Scalix eacute uma soluccedilatildeo completa para mensagens que suporta muacuteltiplos servidores e atende agraves necessidades de sua empresa Natildeo importa otamanho dela Baseia-se em uma Plataforma Colaborativa que serve de fundaccedilatildeo para todas as ediccedilotildees desse produto

Maiores informaccedilotildees wwwsentegritycombr EUA 646-747-7648 | Satildeo Paulo 11 5105-9037 | Rio de Janeiro 21 2526-7262

Reduza os custos de comunicaccedilatildeo usando Scalix

copy Linux New Media do Brasil Editora Ltda

14 httpwwwlinuxmagazinecombr

A quarta geraccedilatildeo dos rootkits se baseia no hardware e eacute quase indetectaacutevel

InseguranccedilaAnalisamos a histoacuteria dos rootkits incluindo a sua mais nova encarnaccedilatildeo o DR RootKitpor Kurt Seifried

Originalmente eu pretendia escrever um artigo sobre o estado da arte dos rootkits

e as ferramentas que poderiam ser usadas para detectaacute-los Foi aiacute que acabei topando com um problemi-nha os rootkits mais avanccedilados e modernos tendem a ser realmente bons em evitar sua detecccedilatildeo Com ldquorealmente bonsrdquo quero dizer que seraacute improvaacutevel para qualquer um detectaacute-los a menos que se lance matildeo de teacutecnicas como a anaacutelise detalhada de uma coacutepia (dump) da memoacuteria por exemplo comparan-do-se a partir daiacute a imagem real do kernel carregada na memoacuteria com aquela que seria de se esperar

Liccedilotildees histoacutericasRootkits tradicionais satildeo programas simples geralmente rodando como um serviccedilo isolado e fornecendo aces-so a uma backdoor Eles satildeo relativa-mente faacuteceis de detectar bastando para isso procurar novos processos ou programas recentemente instalados Isso levou os agressores a comeccedilar a sobrescrever os programas executaacuteveis do sistema Via de regra esses pro-gramas satildeo substituiacutedos por versotildees modificadas pelo agressor tais como versotildees do OpenSSH com nome e senha do administrador embutidas diretamente no programa com o intuito de escalar privileacutegios e obter direitos de root no sistema O adven-to de ferramentas como o Tripwire e o uso cada vez mais comum de gerenciadores de pacotes com a ca-

pacidade de verificar a integridade dos arquivos instalados no sistema ndash tais como rpm e dpkg ndash acabou por facilitar a detecccedilatildeo desse tipo de rootkit tambeacutem [1]

Rootkits para o kernelNatildeo demorou muito para que os agressores percebessem que meacuteto-dos mais sofisticados de ocultaccedilatildeo e subversatildeo eram necessaacuterios para controlar um sistema o que levou agrave criaccedilatildeo de rootkits para o kernel Assim ao modificar a tabela de ca-madas do sistema um agressor pode evitar facilmente a sua detecccedilatildeo pois em poucas palavras ele controla o que eacute exibido e como seus programas estatildeo sendo executados

Tradicionalmente um agressor usa um dos dois meacutetodos para modificar o kernel do sistema ou ele carrega um moacutedulo com coacutedigo malicioso no kernel (como o heroin por exemplo) ou modifica o kernel carregado na memoacuteria escrevendo no dispositivo especial devkmem (como o SucKIT por exemplo) A desvantagem dessa teacutecnica eacute que como esses ataques estatildeo carregados apenas na memoacuteria do sistema normalmente natildeo sobre-vivem a uma reinicializaccedilatildeo

Por mais difiacutecil que possa parecer esses rootkits podem ser detectados comparando-se a tabela atual de cha-madas do sistema com a que seria de se esperar originalmente (isto eacute examinando-se o arquivo Systemmap) Coacutepias da memoacuteria do sistema po-dem ser feitas e usadas para verificar

se o kernel carregado na memoacuteria estaacute intacto

Quando chegam a esse niacutevel o que vocecirc acha que os agressores fazem Vatildeo mais fundo ainda claro

Hardware e virtualizaccedilatildeoLanccedilado em 2006 durante a Black Hat Conference em Las Vegas o primeiro rootkit desenvolvido para comprometer diretamente o hardware foi chamado de Blue Pill [2] Os processadores mo-dernos da AMD e da Intel dispotildeem de uma gama de recursos para suportar virtualizaccedilatildeo de sistemas operacionais E como natildeo eacute mais necessaacuterio que esses rootkits modifiquem o que quer que seja no sistema operacional para funcionar eles satildeo muito mais difiacuteceis de detec-tar de modo que somente verificar a integridade da tabela de chamadas do sistema natildeo vai funcionar Contudo esses rootkits modificam a tabela de descritores de interrupccedilatildeo (IDT na sigla em inglecircs) que eacute mantida em um dos registradores do processador (o IDTR) [3]

Como passam a existir dois IDTRs no sistema comprometido ndash um real e outro falso que eacute apresentado ao sistema operacional ndash este uacuteltimo vai ocupar uma posiccedilatildeo de memoacuteria diferente da de costume Felizmente a instruccedilatildeo privilegiada Store Inter-rupt Descriptor Table (SIDT) pode ser executada a partir do espaccedilo de usuaacuterio do sistema retornando de forma confiaacutevel o conteuacutedo do IDTR

CO

LU

NA

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

15Linux Magazine 50 | Janeiro de 2009

disponiacutevel para o sistema operacional (o que natildeo serve para muita coisa pois o sistema jaacute foi comprometi-do) bem como ndash e o que eacute mais importante ndash a posiccedilatildeo da memoacuteria em que o IDTR se encontra Pare-ce que chegamos a um beco sem saiacuteda os agressores criaram novos meacutetodos para esconder os rootkits e os defensores encontraram meios para detectaacute-los

A nova geraccedilatildeo de rootkitsLanccedilados em setembro de 2008 pela Immunity Inc o DR RootKit [4] im-plementa ldquoganchosrdquo (hooks) para as chamadas de sistema no kernel Linux 26 sem modificar nem a tabela de chamadas do sistema nem a tabela de descritores de interrupccedilatildeo Para fazer isso ele introduz breakpoints de hardware no manipulador de chamadas do sistema Isso corres-

ponde agrave inclusatildeo de um ldquovigiardquo na memoacuteria da tabela de chamadas do sistema especificamente observando a entrada __NR_syscall usada para exportar nuacutemeros de chamadas do sistema Basicamente o rookit se comporta como uma ferramenta de depuraccedilatildeo de programas espe-rando que determinadas chamadas do sistema sejam executadas e mo-

dificando-as quando isso acontece Os ganchos do DR RootKit estatildeo listados na tabela 1

O DR RootKit dispotildee de recursos tais como ocultaccedilatildeo de processos e prevenccedilatildeo do teacutermino de execuccedilatildeo de processos ocultos (o que significa que um agressor pode executar pro-gramas ocultos e vocecirc natildeo tem como terminaacute-los com o comando kill

Tabela 1 Chamadas do sistema

getdents64 Lecirc entradas de diretoacuterio

getdents Lecirc entradas de diretoacuterio

chdir Muda o diretoacuterio de trabalho

open Abre um arquivo ou dispositivo

execve Executa um programa

socketcall Chamadas de sistema via socket

fork Cria um processo filho

exit Encerra o processo atual

kill Envia um sinal a um processo

getpriority Obteacutem prioridade de escalonamento para um programa

| COLUNAInseguranccedila

copy Linux New Media do Brasil Editora Ltda

16 httpwwwlinuxmagazinecombr

Mais informaccedilotildees

[1] Amir Alsbih ldquoPassagem Secreta Teacutecnicas de criaccedilatildeo de backdoorsrdquo httpwwwlinuxmagazinecombrarticlepassagem_secreta

[2] Blue Pill httpbluepillprojectorg

[3] Red Pill httpwwwinvisiblethingsorgpapersredpillhtml

[4] DR RootKit httpwwwimmunityinccomresources-freesoftwareshtml

[5] Core Security Technologies httpwwwcoresecuritycom

mesmo que vocecirc consiga descobrir a identidade ndash o ID ndash do processo) Se vocecirc usar os exemplos forneci-dos com o pacote eacute relativamente simples estender e criar outras cha-madas de sistema modificadas Por exemplo vocecirc pode alterar o conjun-to de recursos disponiacuteveis para pro-cessos ndash o capset O proacuteprio rootkit eacute um moacutedulo carregaacutevel no kernel o que simplifica sua inserccedilatildeo em um sistema comprometido Poreacutem da mesma forma que acontece com outros rootkits residentes na memoacute-ria a reinicializaccedilatildeo do sistema iraacute removecirc-lo da memoacuteria

Se vocecirc quiser estender o rootkit pode por exemplo inserir suas proacuteprias chamadas do sistema personalizadas Forneci um exemplo para alterar a chamada de sistema exit Em poucas palavras o processo consiste em de-clarar seu proacuteprio gancho para alterar uma chamada de sistema e entatildeo im-plementar uma chamada de sistema customizada ndash isso eacute realmente simples O melhor lugar para comeccedilar eacute o coacute-digo-fonte do kernel ndash mais especifica-mente no subdiretoacuterio kernel onde a maioria das chamadas do sistema satildeo definidas Por exemplo se houver um sistema no qual os recursos em uso restringem o que programas podem ou natildeo fazer vocecirc pode simplesmen-te modificar a chamada de sistema do_sys_capset_other_tasks que sempre retorna todos os recursos de um ID de processo especiacutefico como

-2376 +2379 if (capable(CAP_SETPCAP))return -EPERM+ if (pid == 12345) magic process number + return cap_set_all_evil(effective inheritable permitted)

Como vocecirc pode notar mesmo a menor das modificaccedilotildees pode ter um efeito significativo Assim de uma hora para outra o processo

com o ID 12345 teraacute sempre todos os recursos o que permite a ele fa-zer praticamente tudo o que quiser Assim com apenas uma chamada de sistema um agressor pode criar uma backdoor eficiente

O uacutenico modo de detectar um rootkit desses eacute por meio da mediccedilatildeo de atrasos ou de condiccedilotildees de corri-da (race conditions) que sejam intro-duzidas pelo rootkit Se um rootkit estivesse presente o sistema deveria ficar mais lento do que de costume mas a mediccedilatildeo dessa variaccedilatildeo natildeo eacute uma tarefa simples Aleacutem disso o programa eacute relativamente simples e pode ser estendido facilmente de modo a se esconder de maneira mais eficiente e tornando sua detecccedilatildeo ainda mais difiacutecil

Abordagem alternativaClaro que vocecirc pode comprometer um sistema e manter o acesso de outras formas enquanto permanece escondido Uma outra empresa que desenvolve software de verificaccedilatildeo de invasatildeo chamada Core Security [5] adotou uma abordagem de injetar coacutedigo hostil em processos que jaacute te-nham sido atacados Por exemplo se vocecirc criar uma brecha no conhecido servidor web Apache conseguiraacute inje-tar coacutedigo nele que lhe garanta acesso remoto ao sistema Essa teacutecnica eacute algo limitado se comparada com um roo-tkit de kernel completo ou com um rootkit de hardware A desvantagem dessa teacutecnica satildeo os mecanismos de proteccedilatildeo do sistema operacional tais como o SELinux que permanecem capazes de forccedilar uma poliacutetica de seguranccedila Contudo para agressores obstinados isso natildeo costuma ser um problema muito seacuterio pois eles podem usar um exploit local para comprome-ter ainda mais o sistema ou mesmo permanecer dentro das condiccedilotildees impostas pela poliacutetica definida pelo SELinux mas ainda sim obter infor-maccedilotildees ou usar o sistema para realizar outros ataques maliciosos

ConclusatildeoA boa notiacutecia eacute que chegando agrave camada de hardware os agresso-res (pelo menos conceitualmente) atingiram a uacuteltima camada passiacute-vel de abuso A maacute notiacutecia eacute que um grande contingente de truques de hardware pode ser usado para manter o controle sobre um sistema comprometido Por exemplo uma placa de viacutedeo moderna tem acesso direto agrave memoacuteria (o que significa que ela pode fazer o que bem en-tender com a memoacuteria do sistema sem que o sistema operacional possa interferir significativamente no pro-cesso) dispotildee de memoacuteria proacutepria e de uma grande quantidade de poder de processamento (tanto que estatildeo sendo usadas por muitos para criar clusters de baixo custo) Placas mais modernas tecircm seu firmware arma-zenado em memoacuteria flash passiacutevel de atualizaccedilatildeo por software e eu natildeo tenho a miacutenima duacutevida de que algum dia algueacutem vai criar algum meacutetodo para abusar da placa de viacutedeo com o propoacutesito de controlar um sistema comprometido

COLUNA | Inseguranccedila

copy Linux New Media do Brasil Editora Ltda

17Linux Magazine 50 | Janeiro de 2009

COLUNA

MID mais um degrau na escadaria da mobilidade

Augusto CamposNem smartphone nem subnotebook os MIDs chegam como uma nova categoria para facilitar nossas vidas

Neste iniacutecio de 2009 tive a oportunidade de segurar em minhas matildeos um pedaccedilo do futuro do desktop Soacute que natildeo se tra-

tava propriamente de um desktop ou pelo menos natildeo daquele modelo que aprendemos a conhecer com uma infinidade de arquivos gravados em um disco riacutegido ao meu alcance um ambiente de trabalho cheio de aplicativos instalados local-mente e a ocupaccedilatildeo de uma vasta aacuterea em cima da escrivaninha

Natildeo era nem mesmo um daqueles notebooks pequeninos estilo Eee PC que foram se popula-rizando mundialmente ao longo de 2008 Era algo menor mais singelo mas com poder de processa-mento surpreendente um Aigo MID equipamento do qual provavelmente vocecirc ainda natildeo ouviu falar ndash ateacute porque ele parece estar bem distante do nosso mercado neste momento

Os MIDs ou Mobile Internet Devices satildeo dis-positivos que parecem ficar entre os smartphones e os subnotebooks de hoje Como em uma cadeia darwiniana eu ateacute apostaria que os mais bem-suce-didos entre eles vatildeo acabar ficando no nicho exato que hoje eacute ocupado por um destes dois extremos (os smartphones ou os subnotebooks) ateacute mesmo porque essas fronteiras vatildeo ficando cada vez mais difusas com o passar do tempo Mas hoje eles satildeo uma categoria agrave parte e torccedilo para que suas carac-teriacutesticas e possibilidades sejam logo herdadas pelos celulares (ou pelos subnotebooks)

O equipamento com o qual tive oportunidade de brincar um pouco tem caracteriacutesticas de um PC de pequeniacutessimo porte com um display sufi-cientemente grande para mostrar os sites da web 20 nossos de cada dia um teclado escamoteaacutevel cacircmera microfone e acesso a redes Wi-Fi Alguns modelos tecircm acesso agrave conectividade via redes mais amplas (CDMA 3G etc) mas natildeo eacute o caso do meu E eles permitem fazer o que eu mais faccedilo no meu desktop diariamente acessar a web comuni-car-me por IM VoIP e email consultar (ou editar levemente) documentos e textos e ateacute digitar esta coluna que vocecirc estaacute lendo

E o mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres como o Firefox e o Pidgin entre vaacuterios outros E nem eacute soacute pela questatildeo do custo de aquisiccedilatildeo esses aplicativos livres satildeo leves por natureza e ainda podem ser alterados de acordo com as especificaccedilotildees do aparelho no qual seratildeo distribuiacute-dos seja para ocupar menos disco preencher menos memoacuteria RAM ou mesmo gastar menos bateria

Hoje o acesso agrave Web eacute cada vez mais uma condiccedilatildeo para que eu possa desempenhar bem as minhas ativi-dades e quanto mais rico esse acesso melhor a cada dia eacute necessaacuterio interagir digitar textos captar imagens comunicar-se por viacutedeo e voz conectar-se a redes de

variadas tecnologias abertas Acredito que em algum momento os celulares vatildeo estar aptos a prover com con-forto e economia esses recursos e que vatildeo estar rodando um sistema operacional livre quando o fizerem

Enquanto esse dia natildeo chega eacute interessante ver como a induacutestria avanccedila nesta direccedilatildeo por vias obliacute-quas que convergem em uma direccedilatildeo que muito nos interessa softwares livres conectando-se a pro-tocolos abertos e provendo serviccedilos que facilitam as nossas vidas

COLUNA

Sobre o autorAugusto Ceacutesar Campos eacute administrador de TI e desde 1996 manteacutem o site BR-linuxorg que cobre a cena do Software Li-vre no Brasil e no mundo

O mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres

copy Linux New Media do Brasil Editora Ltda

18

NO

TIacuteC

IAS

httpwwwlinuxmagazinecombr

Xen ganha recursos e promete integraccedilatildeoKeir Fraser da Xensource (atualmente Citrix) anunciou na lista xen-devel a disponibilidade de uma aacutervore com o coacutedigo-fonte para criaccedilatildeo de um dom0 completo do Xen no kernel Linux 2627

Segundo Keir ldquoa intenccedilatildeo eacute fornecer uma aacutervore uacutenica para desenvolvimento e testes voltada aos desenvolvedores que pre-cisarem de um kernel 26 mais modernordquo e menciona o geren-ciamento de energia como um dos motivos para isso

O porte da funcionalidade de dom0 do Xen para o Linux atu-almente depende da implementaccedilatildeo final das pv_ops (operaccedilotildees para-virtualizadas) um conjunto de ldquoganchos de coacutedigordquo (hooks) no kernel que permitem sua operaccedilatildeo mediante o uso da teacutecnica de para-virtualizaccedilatildeo Atualmente o escopo de funcionalidade das pv_ops permite apenas o funcionamento do Linux como

Alta disponibilidadeManter a sincronizaccedilatildeo perfeita de muacuteltiplos servidores Xen cada um com diversas maacutequinas virtuais natildeo eacute tarefa das mais faacuteceis Atualmente eacute preciso replicar arquivos de configuraccedilatildeo entre os servidores e manter sincronizado todo o restante da estrutura

Felizmente tudo isso pode mudar para melhor com o projeto Kemari Trata-se de um software de coacutedigo aberto (GPL) descrito por seus autores como ldquoum mecanismo de coacutedigo aberto para sin-cronizaccedilatildeo de maacutequinas virtuais para toleracircncia a falhas Oferece uma teacutecnica utilizaacutevel para toleracircncia a falhas que natildeo requer o uso de hardware especiacutefico ou a modificaccedilatildeo dos aplicativos ou sistema operacionalrdquo

Lanccedilado o Fedora 10Seis meses apoacutes o lanccedilamento do Fedora 9 o projeto livre lanccedilou a versatildeo 10 da popular distribuiccedilatildeo Linux codinome Cambridge

O Fedora 10 usa o kernel Linux 26275 anunciado no uacuteltimo dia 7 O projeto tambeacutem estaacute buscando trazer seus softwares a um novo niacutevel e ele inclui o OpenOfficeorg 30 Gnome 2241 Eclipse 34 e RPM 46 O produto promete um melhor gerenciamento de impressoras e alguns interessantes recursos de vir-tualizaccedilatildeo No momento o KVM estaacute disponiacutevel por padratildeo no Fedora 10 na versatildeo 74-5 (no Fedora 9 o KVM era apenas uma opccedilatildeo) Certamente a aquisiccedilatildeo da Qumranet criadora e desenvolvedora do KVM pela Red Hat patrocinadora do Fedora tem grande influecircncia nisso No entanto o uso do KVM natildeo implica a rejeiccedilatildeo do ldquoconcorrenterdquo Xen o hypervisor tradicional estaacute presente na versatildeo 330-1 As ferramentas de virtualizaccedilatildeo de criaccedilatildeo do proacuteprio Fedora como a libvirt e o virt-manager tambeacutem estatildeo incluiacutedas

Outra importante novidade do Fedora 10 eacute seu tempo de inicializaccedilatildeo que foi reduzido graccedilas ao novo sistema graacutefico de inicializaccedilatildeo Plymouth

domU (ou seja como maacutequina virtual) enquanto o kernel do dom0 ainda eacute res-trito agrave versatildeo 2618 do Linux

A expectativa eacute que os desenvolvedores da Novell que estatildeo trabalhando nessa ta-refa consigam incrementar as pv_ops de forma a permitir seu uso tambeacutem como dom0 o que permitiria o uso de versotildees mais recentes do kernel Linux (com to-das as vantagens que trazem) no dom0 Posteriormente as novas pv_ops tambeacutem devem ser incluiacutedas na aacutervore principal do kernel unindo definitivamente os projetos Xen e Linux

O objetivo do projeto eacute ldquomanter as maacute-quinas virtuais rodando transparentemente em caso de falhas de hardwarerdquo Para isso ele ldquotransfere o estado da maacutequina virtual primaacuteria para a secundaacuteria quando a pri-maacuteria estaacute prestes a enviar um evento para dispositivos como armazenamento e rederdquo como descreve o anuacutencio do projeto

Espera-se que o Kemari seja integra-do ao Xen 34 a proacutexima versatildeo estaacutevel do popular sistema de virtualizaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

O Linux Professional Institute ndash oacutergatildeo responsaacutevel pela certificaccedilatildeo em Linux que mais cresce no mundo ndash realizou no Brasil a primeira aplicaccedilatildeo das provas 303 Elas correspon-dem agrave categoria especialista do niacutevel 3 da certificaccedilatildeo e qualificam o profissional aprovado como ldquoSecurity Specialistrdquo As provas (grauitas) ocorreram na cidade de Satildeo Paulo no dia 20 de dezembro de 2008

O Programa de Certificaccedilatildeo LPI eacute composto por dois niacuteveis baacutesicos com duas provas cada um As provas do niacutevel 1 (101 e 102) certificam o profissional como ldquoAdministrador Linux Juacuteniorrdquo e as do niacutevel 2 (201 e 202) como ldquoAdministrador Linux Plenordquo

O niacutevel 3 da certificaccedilatildeo LPI eacute focado no mercado corporativo O profissional precisa se certificar obrigatoria-mente na prova 301 (Core) e depois escolher uma das especialidades disponiacuteveis Atualmente a uacutenica disponiacutevel eacute a prova 302 (Mixed Environment) para profissionais que queiram se especializar em interoperabilidade em ambientes mistos (Linux Unix Netware e Windows) A prova lsquo303 - Securityrsquo eacute a segunda especialidade a ser lanccedilada pelo LPI A prova 303 estaacute sendo realizada em caraacuteter de teste antes de ser lanccedilada oficialmente

19

Xen ganha recursos e promete integraccedilatildeo

Linux Magazine 50 | Janeiro de 2009

Gerais | NOTIacuteCIAS

LPI lanccedila provas 303 no Brasil

Google Android no Openmoko Linux versus OpenSolaris e FreeBSD

O site dedicado a Software Livre e hard-ware Phoronix publicou um comparativo de velocidade (benchmark) na realizaccedilatildeo de diversas tarefas entre os sistemas ope-racionais mais famosos baseados em ker-nels de coacutedigo aberto Ubuntu OpenSolaris e FreeBSD

Os testes utilizaram a versatildeo instaacutevel de 64 bits mais recente de cada um dos sistemas (com exceccedilatildeo do Ubuntu cuja versatildeo foi a 810 final) e se basearam no proacuteprio pacote de benchmarks de coacutedigo aberto desenvol-vido pela equipe do Phoronix (e em raacutepida evoluccedilatildeo) o Phoronix Test Suite

Os autores concluem o artigo decla-rando o Ubuntu 810 como vencedor no desempenho mas o representante do ker-nel Linux natildeo foi o campeatildeo em todas as categorias venceu em oito dos 18 testes contra sete vitoacuterias do OpenSolaris e trecircs do FreeBSD

Poucos dias depois os autores retornaram ao ambiente de testes e fizeram o compara-tivo entre o tambeacutem recente Ubuntu 810 e o Fedora

Foram usadas as versotildees de 32 e 64 bits de ambos os sistemas e os testes empregados foram os mesmos do benchmark anterior com o Phoronix Test Suite

O resultado dessa comparaccedilatildeo no entan-to natildeo foi conclusivo as distribuiccedilotildees Linux se saiacuteram praticamente igual com respeito ao desempenho nos testes

Institute

LinuxProfessional

R

A Koolu empresa canadense especializada no desenvolvimento de soluccedilotildees de tecnologia ambientalmente corretas disponibili-zou o coacutedigo-fonte da plataforma Android do Google adaptado ao telefone Openmoko FreeRunner cujo desenvolvimento contou com esforccedilo e total colaboraccedilatildeo da comunidade internacional do Software Livre

O anuacutencio foi realizado no IP Communications Brasil 2008 evento internacional sobre comunicaccedilotildees IP por Jon lsquomaddogrsquo Hall CTO da Koolu e Denis Galvatildeo presidente da paranaense iSolve Durante o evento tambeacutem foi anunciado o acordo nome-ando a iSolve como canal master de distribuiccedilatildeo do Openmoko FreeRunner no Brasil

O Android foi lanccedilado como um software livre no final de outu-bro de 2008 poreacutem muito trabalho precisou ser realizado para que esse coacutedigo pudesse funcionar em telefones de outros fabricantes O FreeRunner telefone com design aberto desenvolvido pela empresa taiwanesa Openmoko demandou uma seacuterie de alteraccedilotildees no coacutedigo-fonte do Android para que ele pudesse fun-cionar corretamente A comunidade de Software Li-vre com ajuda de vaacuterias pessoas ao redor do mundo realizou as implementaccedilotildees necessaacuterias e tornou possiacutevel a execuccedilatildeo do Android no FreeRunner

ldquoAgora que o coacutedigo-fonte jaacute estaacute rodando no FreeRunner es-peramos que os retoques finais estejam prontos rapidamenterdquo dis-se Brian Code diretor teacutecnico da Koolu ldquoA criaccedilatildeo do ambiente para compilaccedilatildeo (toolchain) a criaccedilatildeo dos patches necessaacuterios para tornar o coacutedigo compatiacutevel com o telefone e a documentaccedilatildeo de todo o passo-a-passo do processo de construccedilatildeo do software toma-ram um bom tempo mas agora estaacute mais faacutecil para a comunidade do Software Livre desenvolver e realizar modificaccedilotildees nessa pla-taforma Como um exemplo as aplicaccedilotildees moacuteveis Google Apps bem como outra aplicaccedilotildees corporativas podem ser instaladas e otimizadas para essa plataformardquo

copy Linux New Media do Brasil Editora Ltda

20

CO

RP

OR

ATE

httpwwwlinuxmagazinecombr

ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

Keith Curtis funcionaacuterio por vaacuterios anos da Microsoft conclui em seu livro receacutem-lanccedilado que o futuro do software estaacute no modelo de desenvolvimento de coacutedigo aberto Curtis trabalhou para a Microsoft como de-senvolvedor de software de 1993 a 2004 tendo participado do desenvolvimento dos produtos para bancos de dados da empresa bem como na programaccedilatildeo do Windows do Office e do MSN entre outros No final de 2008 ele publicou o livro intitulado ldquoAfter the Software Warsrdquo (Depois das Guerras do Software) que descreve o processo de produccedilatildeo de software do ponto de vista de um desenvolvedor analisa os possiacuteveis avanccedilos nesse processo no futuro e aborda desde toacutepicos como inteligecircncia artificial culminando no desenvolvimento de sistemas que possibilitem viagens espaciais

A ediccedilatildeo online do The New York Times fez uma resenha do livro e relatou a nova trajetoacuteria do ex-funcio-naacuterio da gigante de Redmond ldquoPara o Sr Curtis a forccedila do software de coacutedigo aberto e o motivo pelo qual esse eacute o modelo de desenvolvimento do futuro estatildeo no fato de que por meio deste a inteligecircncia coletiva eacute estimuladardquo Segundo Curtis ldquoas diferenccedilas entre Software Livre e software natildeo-livre ou proprietaacuterio satildeo comparaacuteveis agraves diferenccedilas existentes entre ciecircncia e alquimia Antes de a ciecircncia se estabelecer havia apenas alquimia na qual as pessoas tentavam proteger suas ideacuteias pois elas desejavam dominar o mercado desenvol-vendo um processo para transformar chumbo em ourordquo

Curtis publicou seu livro usando a plataforma lulucom cujo fundador e diretor executivo eacute Bob Young veterano da cena Open Source e ex-CEO da Red Hat

Sun lanccedila MySQL 51Na nova versatildeo do banco de dados de coacute-digo aberto os desenvolvedores se concen-traram no desempenho o que aumentou a velocidade do programa em surpreendentes 15 Entre as novidades haacute cinco novos meacutetodos de particionamento horizontal range hash key list e composite Outros recursos novos satildeo a replicaccedilatildeo hiacutebrida e o agendador de eventos (event scheduler) que permite a automatizaccedilatildeo de tarefas SQL repetitivas

Os sistemas operacionais suportados satildeo Red Hat Enterprise Linux Suse Linux En-terprise Windows Mac OS X FreeBSD HP-UX IBM AIX IBM i5OS e todas as distribuiccedilotildees Linux

A Sun disponibiliza trecircs versotildees do soft-ware para download Community Server sob a GPL Enterprise Server com base em subscriccedilatildeo (assinatura do serviccedilo) e Embedded Server esta com licenccedila co-mercial proprietaacuteria

MS Windows eacute mais econocircmicoA Microsoft fez de novo um estudo recente encomendado pela empresa ldquoconcluiurdquo que eacute mais barato para empresas usar o Win-dows como plataforma de software A revista australiana iTWire analisou o estudo e fez algumas descobertas interessantes

O que parece agrave primeira vista (com perdatildeo do trocadilho) ser uma histoacuteria de sucesso na realidade natildeo eacute mdash nem de longe em primeiro lugar natildeo haacute economia alguma O que haacute satildeo apenas estimativas da Microsoft segundo as quais a empresa britacircnica Speedy Hire deveraacute economizar 200 mil libras por ano em de-corriencia da utilizaccedilatildeo do Windows

A anaacutelise do estudo disponiacutevel em artigo no site australiano iTWirecom faz um raio-X da ldquoeconomiardquo sugerida pela em-presa de Bill Gates Elas comeccedilam pelo hardware jaacute que no projeto foram utilizados terminais leves para Windows mdash que seriam inexplicavelmente mais baratos do que aqueles equipados com Linux O estudo natildeo menciona nem ldquoen passantrdquo que haacute

alternativas bem mais baratas aos modelos V90 da empresa Wyse equipados com Windows como

os V50 preacute-carregados com Linux Nesse esti-lo o artigo vai revelando de onde vieram as ldquoreduccedilotildees de custordquo obtidas pela Microsoft que vatildeo transformam em vapor agrave medida que

prosseguimos na leitura Estamos curiosos para saber o que sobra da economia de 1 milhatildeo de

libras apoacutes os cinco anos

copy Linux New Media do Brasil Editora Ltda

21

Google e Red Hat firmam parceria

A Red Hat assinou em dezembro um acordo com o Google para trazer os principais de-senvolvedores da empresa para a plataforma de construccedilatildeo de aplicaccedilotildees web Google Web Tookit Com o acordo estabelece-se tambeacutem o suporte do servidor de aplicaccedilotildees da Red Hat o JBoss ao GWT

Aleacutem da assinatura do acordo a Red Hat tambeacutem anunciou que jaacute completou algumas integraccedilotildees preliminares entre o GWT e o JBoss Seam Framework Com a integraccedilatildeo a empresa alavanca o Seam para que os desen-volvedores possam combinar o poder do Java agraves modernas tecnologias view-layer como GWT RichFaces e Spring para desenvolver os Rich Internet Applications

Linux Magazine 50 | Janeiro de 2009

| CORPORATENotiacutecias

Insigne jaacute planeja 2012A fornecedora do Insigne Momentum 50 quer manter sua po-siccedilatildeo de lideranccedila no Brasil e conquistar novos mercados in-clusive no exterior O sucesso de sua participaccedilatildeo no projeto de inclusatildeo digital Computador para Todos fez com que a Insigne Free Software do Brasil conquistasse forte posiccedilatildeo de lideran-ccedila no mercado dos PC populares e tambeacutem ficasse conhecida em outros paiacuteses Esse cenaacuterio positivo lhe permitiu iniciar ne-gociaccedilotildees com fabricantes estrangeiros de PC para embarcar o Insigne Momentum 50 sistema operacional de coacutedigo aberto em microcomputadores fora das fronteiras nacionais

Para atingir a meta de manter seu crescimento perante a perspectiva de elevaccedilatildeo das vendas de PCs nos proacuteximos anos a empresa contratou o consultor de estrateacutegia e professor de engenharia Carlos Roberto Lopes As atividades envolvidas no planejamento estrateacutegico incluem uma seacuterie de workshops com todas as equipes e departamentos da Insigne O objetivo eacute coletar impressotildees dos colaboradores e lhes apresentar as mais recentes mudanccedilas ocorridas no mercado global incluindo a atual situaccedilatildeo econocircmica mundial que poderaacute alterar a correlaccedilatildeo de forccedilas entre os fornecedores de tecnologia nos proacuteximos anos

De acordo com Joatildeo Pereira da Silva Jr presidente da Insigne esse planejamento incluiraacute natildeo apenas o foco no seu cliente que eacute o usuaacuterio do PC popular mas tambeacutem em toda a sua equipe de profissionais envolvidos em todas as etapas de desenvolvimento de um sistema operacional de coacutedigo abertordquo

VMware adquire Tungsten GraphicsA VMware adquiriu por um valor natildeo revelado as operaccedilotildees da empresa Tungsten Graphics fundada em 2001 e motor por traacutes do desenvolvimento da implementa-ccedilatildeo de coacutedigo aberto do OpenGL no Linux a biblioteca Mesa 3D

Aleacutem da Mesa 3D a empresa tambeacutem desenvolve o Gallium 3D framework para desenvolvimento de drivers graacuteficos 3D A Tungsten Graphics eacute formada por um grupo de desenvolvedores de aplicativos graacuteficos de coacutedigo aberto Segundo a FAQ no site da empresa o desenvolvimento dos projetos de coacutedigo aberto encabeccedilados por ela continuaraacute agora como parte das atividades da equipe de engenharia da VMware A aquisiccedilatildeo teria como objetivo melhorar o suporte a graacuteficos 3D em ambientes virtualizados

Mandriva demite dois desenvolvedoresA situaccedilatildeo financeira da Mandriva parece estar ruim Em dezembro a empresa anunciou que ao final de 2008 terminaria o contrato de dois de seus funcionaacuterios Adam Williams (na praacutetica o Community Manager) e o mantenedor de pacotes Oden Eriksson

Os dois desenvolvedores escreveram para a lista de emails do Cooker (Adam Williams Oden Eriksson) Enquanto Adam Williams eacute considerado por muitos como a base da co-munidade do Mandriva Oden manteacutem aproximadamente 1200 pacotes principalmente na aacuterea de servidores incluindo todos os pacotes do stack LAMP

Entretanto a comunidade do Mandriva natildeo pretende esperar sentada a efetivaccedilatildeo dessa decisatildeo Jaacute haacute uma peticcedilatildeo para tentar convencer a empresa a manter pelo me-nos Williams

copy Linux New Media do Brasil Editora Ltda

22 httpwwwlinuxmagazinecombr

CO

RP

OR

ATE

Entrevista com Armstrong Lemos chefe do departamento de TI da CAEMA

Saneada pelo LinuxO Linux entrou com forccedila na Companhia de Aacuteguas e Esgotos do Maranhatildeo proporcionando economia e ganhos fundamentais para a sauacutede da empresa por Pablo Hess

A Companhia de Aacuteguas e Esgo-tos do Maranhatildeo (CAEMA) eacute uma sociedade de economia

mista com capital de investimento predominantemente do Estado do Maranhatildeo Fundada haacute 42 anos a CAEMA atua no fornecimento de aacutegua coleta e tratamento de esgotos Atua em 146 municiacutepios maranhenses com abastecimento de aacutegua sendo que somente em trecircs (Satildeo Luis Im-peratriz e Barreirinhas) faz a coleta de esgotosLinux Magazineraquo Como e por que a CAEMA comeccedilou a usar LinuxArmstrong Lemosraquo A CAEMA opera com deacuteficit de quase R$ 5 milhotildees por mecircs que satildeo repassados pelo governo do estado para comple-mentaccedilatildeo das despesas Isso muito se deve a sua funccedilatildeo social que eacute a de universalizaccedilatildeo do abastecimento de aacutegua no estado Natildeo eacute uma ati-vidade meramente econocircmica mas tambeacutem social

O sistema comercial jaacute foi bloque-ado por falta de pagamento Quanto mais a CAEMA ampliava sua rede de atendimento mais caro pagava pelo uso do sistema sendo que a empresa prestadora mantinha relaccedilatildeo de pou-ca paciecircncia com os atrasos no paga-mento que deveriam ser realizados no dia cinco de cada mecircs Como a

companhia possuiacutea e ainda possui di-ficuldades de arrecadaccedilatildeo esse prazo nem sempre era cumprido

Outros fatores aliados a esse contri-buiacuteram para que no iacutenicio da gestatildeo da atual diretoria se iniciasse um pro-cesso de diagnoacutestico geral da empresa Com esse estudo ficou clara a situa-ccedilatildeo em que se encontravam diversos setores estrateacutegicos da companhia entre eles o de informaacutetica

Tiacutenhamos um parque de aproxi-madamente 500 maacutequinas com vaacuterios problemas principalmente adwares spywares e viacuterus Havia ainda proble-mas de conectividade e processamento em fun-ccedilatildeo do Windows natildeo se adequar ao perfil do hardware fazendo com que o equipamento ti-vesse baixa performan-ce As atualizaccedilotildees com Windows tornavam-se inviaacuteveis nos computa-dores com perfil padratildeo de dois ou mais anos

O departamento natildeo possuiacutea outra funccedilatildeo aleacutem do suporte de ma-nutenccedilatildeo de computado-res e impressoras muitos jaacute ultrapassados uma vez que o uacuteltimo investimen-

to feito em TI na companhia ocorreu no ano 2000

A telefonia as escolhas teacutecni-cas o gerenciamento de contratos de sistemas e outras atividades natildeo eram exercidas pelo departamen-to de informaacutetica Natildeo havia uma poliacutetica definida de TI na empresa e natildeo se dispunha de recursos para investimento Muitos dos sistemas utilizados pela empresa eram piratas e natildeo possuiacuteam suporte O banco de dados da companhia natildeo dispunha mais de suporte de software e o de-partamento de informaacutetica natildeo tinha

Armstrong Lemos chefe do departamento de TI da CAEMA

copy Linux New Media do Brasil Editora Ltda

23Linux Magazine 50 | Janeiro de 2009

| CORPORATECAEMA

conhecimento dos relacionamentos dos dados contidos nele

Apoacutes o diagnoacutestico e reuniotildees so-licitou-se agrave diretoria administrativa da empresa agrave qual a informaacutetica eacute subordinada para que submetesse ao conselho de administraccedilatildeo o resta-belecimento das funccedilotildees relativas agrave aacuterea de TI incluindo telefonia

Aleacutem dessas accedilotildees de retomada das atribuiccedilotildees estruturamos uma equipe de programaccedilatildeo uma equipe de projetos estrateacutegicos e reestrutu-ramos a equipe de suporte teacutecnico tudo isso para viabilizar a poliacutetica de Software Livre da CAEMA

LMraquo Em que consiste essa poliacutetica de Software LivreALraquo Estabelecemos vaacuterias etapas como o desenvolvimento do Livre Linux e do sistema de protocolo via Web a migraccedilatildeo do sistema comer-cial (GSAN) a formaccedilatildeo de monito-res de treinamento e o treinamento dos usuaacuterios na soluccedilatildeo completa (GSAN Livre Linux BrOfficeorg e sistema de protocolo) seguida pela articulaccedilatildeo do Movimento Software Livre Maranhatildeo

LMraquo Como foi a evoluccedilatildeo do uso do Software Livre dentro da empresaALraquo Precisaacutevamos resolver dois fatores que impediam o avanccedilo da politica de Software Livre na empresa o sistema de protocolo em Windows e o sistema comercial tambeacutem em Windows e com arquitetura cliente-servidor Aleacutem disso determinou-se a substituiccedilatildeo deles por um novo sistema que per-mitisse a ampliaccedilatildeo da nossa rede de atendimento e que ainda propiciasse a autonomia no gerenciamento dos dados da companhia

O sistema de protocolo foi resol-vido a partir do desenvolvimento do sistema livre Balula feito pela equi-pe de programaccedilatildeo e Software Livre da CAEMA Hoje o protocolo estaacute agrave disposiccedilatildeo dos demais oacutergatildeos puacutebli-cos para serem implementados sem

qualquer custo adicional atraveacutes de parceria sem ocircnus entre a CAEMA e o oacutergatildeo interessado

Ainda em novembro todos os computadores de atendimento co-mercial das unidades da CAEMA passaram a utilizar o Livre Linux como sistema operacional

LMraquo Como eacute a situaccedilatildeo atualALraquo Hoje utilizamos o GSAN com banco de dados PostgreSQL Com isso estamos ampliando o atendi-mento aos municiacutepios onde nosso sistema comercial antigo natildeo fun-cionava pois era inviabilizado pelo custo alto de contrataccedilatildeo de serviccedilos de transmissatildeo de dados junto agraves operadoras locais Atualmente com uma simples conexatildeo via raacutedio que existe em todos os municiacutepios onde a CAEMA atua faremos a integraccedilatildeo com o novo sistema

Estatildeo rodando na plataforma Linux todos os sistemas Web (comercial protocolo frotas juriacutedico cadastro segunda via de contracheque) etc Estamos com Livre Linux nos setores de atendimento help desk adminis-trativo e em todos os servidores

Vamos estender essa implantaccedilatildeo para os demais setores salvo maacutequinas que possuam aplicativos em Windows sem similares no mundo Linux (que satildeo casos mais raros)

LMraquo Em quanto tempo a CAEMA espera obter o retorno do investi-mento em Software Livre

ALraquo O custo total foi de R$ 104 milhotildees para o sistema comercial e o banco de dados Isso representa uma economia de R$ 360 milhotildees ao lon-go de quatro anos somente nesses dois sistemas Os levantamentos sobre a substituiccedilatildeo do sistema operacional Windows por Linux do proprietaacuterio Microsoft Office pelo BrOfficeorg e programas pagos estatildeo sendo le-vantados o que poderaacute representar uma economia de aproximadamente meio milhatildeo de reais

LMraquo Quanto tempo durou a mi-graccedilatildeoALraquo Aproximadamente oito meses com um analista de sistemas da CAE-MA e mais dois analistas de sistemas quatro programadores e um analista de suporte e bancos de dados de nos-so prestador de serviccedilos (Domiacutenio) aleacutem de quatro analistas de sistemas e um DBA do IPAD

LMraquo Qual a opiniatildeo da direccedilatildeo da empresa sobre o Software LivreALraquo O convencimento junto agrave dire-toria foi de estabilidade e custo fi-nanceiro devido agrave situaccedilatildeo em que estaacutevamos Hoje haacute o reconhecimento quanto agraves soluccedilotildees implantadas e o estiacutemulo para a descoberta de novas alternativas A diretoria percebe as vantagens de total liberdade e au-tonomia de uso e configuraccedilatildeo das ferramentas livres que tornaram a migraccedilatildeo teacutecnica e economicamen-te viaacutevel

LMraquo E a sua opiniatildeo sobre o mer-cado de Software LivreALraquo O mercado de Software Livre no paiacutes estaacute maduro Muitas empresas estatildeo habilitadas para a execuccedilatildeo e a manutenccedilatildeo de projetos livres Seguindo essa tendecircncia grandes empresas tecircm accedilotildees nesse foco No entanto temos carecircncia de empresas privadas que prestem suporte a bancos de dados livres assim como eacute carente o uso desses bancos em aplicaccedilotildees comerciais proprietaacuterias

LMraquo O movimento Software Livre Maranhatildeo jaacute rendeu frutosALraquo No dia 14 de novembro reali-zamos o I Encontro de Articulaccedilatildeo de Software Livre Maranhatildeo para apresentar aos demais gestores de TI do Estado a alternativa de uso de Software Livre pelo governo e articulaccedilatildeo de um movimento in-dependente para fortalecimento dessa poliacutetica

copy Linux New Media do Brasil Editora Ltda

24 httpwwwlinuxmagazinecombr

Como participar da comunidade Open Souce

Cezar TaurionUma anaacutelise do desenvolvimento do kernel Linux

Haacute alguns dias li um interessante artigo de Jona-than Corbet ldquoHow to participate in the Linux Communityrdquo[1] Ele descreve como funciona

o processo de desenvolvimento do kernel Linux e eacute uma excelente fonte de referecircncia para quem estiver interessado em colaborar com a comunidade ou mes-mo conhecer como funciona por dentro o modelo de governanccedila de um projeto de coacutedigo aberto

O kernel Linux tem mais de 6 milhotildees de linhas de coacutedigo e aglutina mais de mil contribuidores ativos Eacute um dos maiores projetos de coacutedigo aberto do mun-do Seu sucesso tem atraiacutedo muitos colaboradores a maioria inclusive pertencendo a empresas que que-rem participar do projeto A questatildeo eacute como entrar e ser um participante ativo da comunidade

Cada comunidade Open Source tem suas proacuteprias regras de conduta e modelos de governanccedila Enten-der como funciona a comunidade que desenvolve o kernel eacute essencial para ser um colaborador e tam-beacutem abre ideacuteias para aprendermos como funciona um projeto Open Source

A primeira seccedilatildeo do artigo mostra a importacircncia de se inserir todo coacutedigo na aacutervore principal do ker-nel para se evitar a proliferaccedilatildeo de forks e futuras ldquobombas reloacutegiordquo Por exemplo um coacutedigo inse-rido no kernel principal passa a ser visto mantido e refinado por toda a comunidade resultando em coacutedigo de alta qualidade Quando o coacutedigo eacute man-tido separado natildeo soacute natildeo recebe contribuiccedilotildees ex-ternas como corre o risco de funcionalidade similar ser incorporada por outro desenvolvedor ao coacutedigo principal fazendo com que o coacutedigo isolado fique cada vez mais difiacutecil e custoso de ser mantido Esse alerta eacute feito porque muitas empresas envolvidas em projetos de software embarcado tendem a acre-ditar que seu coacutedigo pela sua especificidade deve ser mantido de forma isolada da aacutervore principal do kernel o que eacute um grande erro A seccedilatildeo tambeacutem descreve as razotildees por que toda contribuiccedilatildeo deve ser ldquoassinadardquo Eacute necessaacuterio para se evitar eventuais problemas de propriedade intelectual

A seccedilatildeo dois eacute bem interessante pois descreve como funciona o processo de desenvolvimento do kernel e a nomenclatura usada para designar as diversas versotildees

Explica tambeacutem como eacute criado uma versatildeo estaacutevel e o ciclo de vida dos patches Descreve como um patch eacute inserido no kernel e cita alguns dados curiosos A seccedilatildeo tambeacutem descreve as regras de etiqueta da comunidade na troca de mensagens e o uso das listas de email

As outras seccedilotildees descrevem o processo de plane-jamento da evoluccedilatildeo do kernel debatendo as etapas de avaliaccedilatildeo as discussotildees com a comunidade para definir o que e como seraacute feito os estilos de escrita (que garantem a qualidade do coacutedigo) as ferramen-tas de depuraccedilatildeo usadas a documentaccedilatildeo que deve ser gerada e assim por diante

A seccedilatildeo seis mostra como deve ser feito o tra-balho em colaboraccedilatildeo Cada patch eacute revisado por desenvolvedores que vocecirc natildeo conhece o que mui-tas vezes pode gerar algum desconforto Existem algumas recomendaccedilotildees de como se portar nessas situaccedilotildees meio desagradaacuteveis e de como evitar dis-cussotildees desgastantes Trabalhar em colaboraccedilatildeo eacute um exerciacutecio ao qual muitos desenvolvedores natildeo estatildeo acostumados Para muita gente ter um estra-nho revisando seu coacutedigo e expondo as falhas em puacuteblico eacute no miacutenimo desconfortaacutevel

Enfim a leitura desse documento eacute obrigatoacuteria para todos que estejam realmente interessados em conhecer mais a fundo o que eacute o movimento Open Source e os aspectos do desenvolvimento colabora-tivo que o caracterizam

CORPORATE

Mais informaccedilotildees

[1] Jonathan Corbet ldquoHow to participate in the Linux Communityrdquo httpldnlinuxfoundationorgbookhow-participate-linux-community

Sobre o autor

Cezar Taurion (ctaurionbribmcom) eacute geren-te de novas tecnologias aplicadas da IBM Bra-sil e editor do primeiro blog da Ameacuterica Latina do Portal de Tecnologia da IBM developerWorks Seu blog estaacute disponiacutevel em httpwww-03ibmcomdeveloperworksblogspagectaurion

CORPORATE

copy Linux New Media do Brasil Editora Ltda

25

Argumentando em favor do Software Livre

Jon lsquomaddogrsquo HallA comunidade do Coacutedigo Aberto natildeo dispotildee de um seacutequumlito de advogados e consultores de marketing e comunicaccedilatildeo Quando se trata de argumentar em favor do Software Livre vocecirc provavelmente teraacute que assumir esse papel

A ldquocenardquo juriacutedica envolvendo o Software Li-vre estaacute sempre em movimento Decisotildees de tribunais e accedilotildees governamentais estatildeo

sempre reformulando o panorama legal e tecircm efei-tos bruscos na ldquotemperaturardquo do desenvolvimento desse tipo de aplicaccedilatildeo

Uma lei proposta recentemente tinha por obje-tivo ajudar a eliminar a pornografia infantil mas foi modificada para limitar todo e qualquer tipo de liberdade na Internet a ponto de ndash nas palavras de um dos legisladores ndash dificultar o desenvolvimento de tecnologias como redes mesh

No mecircs passado escrevi sobre minha experiecircncia em testemunhar perante uma assembleacuteia nacional sobre uma lei considerada pioneira relativa ao mun-do open source Muito embora oportunidades como essa natildeo apareccedilam todos os dias eacute surpreendente a frequumlecircncia com que os governos ndash em todos os niacute-veis ndash satildeo confrontados com toacutepicos relacionados agrave comunidade open source

Seu governo local tambeacutem gasta dinheiro com software Algumas diretorias de escola gastam mes-mo milhares de doacutelares em aplicativos proprietaacuterios mesmo que suas contrapartes de coacutedigo aberto este-jam disponiacuteveis a um preccedilo muito inferior A maio-ria dos governos locais e das diretorias das escolas dispotildeem entretanto de um tempo para ouvir o cidadatildeo ndash e vocecirc poderia usar esse tempo para lhes dizer o que vocecirc pensa a respeito disso Melhor ain-da vocecirc poderia reunir um grupo de amigos com os mesmos ideais para argumentar em favor do uso de Software Livre

Se vocecirc for chamado para avaliar uma proposta de regulamentaccedilatildeo ou orccedilamento certifique-se de tecirc-la estudado profundamente Natildeo deixe de co-nhecer os poliacuteticos eleitos envolvidos no processo Com frequumlecircncia poliacuteticos locais estatildeo dispostos a discutir esses toacutepicos com vocecirc diretamente E se vocecirc marcar uma reuniatildeo natildeo se esqueccedila de ldquoestar apresentaacutevelrdquo (como sua matildee provavelmente diria)

e de manter a calma lanccedilando matildeo de uma argu-mentaccedilatildeo plausiacutevel

A maneira mais simples de se envolver em niacutevel nacional com esse tipo de legislaccedilatildeo eacute por meio de uma carta A maioria dos legisladores possui um email mas eles recebem milhares de mensagens todos os dias e a sua pode simplesmente ldquose afogarrdquo nesse oceano sem jamais ter sido lida Uma carta tradicional impressa e assinada pode receber mais atenccedilatildeo do que um email e uma carta enviada via portador como encomenda expressa ou registrada tem ainda maiores chances de ser notada Natildeo se esqueccedila de usar um corretor ortograacutefico ao escre-ver ndash nem de deixar algueacutem mais ler a carta antes de enviaacute-la como medida para garantir que o con-teuacutedo esteja inteligiacutevel

Cartas para editores de publicaccedilotildees tambeacutem satildeo eficazes Oficiais de governo ndash bem como cidadatildeos interessados que podem ser persuadidos por argu-mentos bem formulados ndash lecircem jornais Cartas concisas com argumentos claros satildeo preferiacuteveis a cartas longas sem um objetivo claramente definido Evite criticar o caraacuteter dos proponentes da legislaccedilatildeo a que vocecirc se opotildee Em vez disso concentre seus comentaacuterios no conteuacutedo

Se vocecirc busca um modo simples de se envolver no movimento em torno do Software Livre observe as oportunidades para dar a sua opiniatildeo sobre leis regulamentaccedilotildees e decisotildees de compra que afetem de algum modo o ecossistema open source O esfor-ccedilo eacute vaacutelido jaacute que manter os braccedilos cruzados natildeo eacute uma alternativa capaz de lhe dar voz ativa nesse tipo de processo

Sobre o autorJon lsquomaddogrsquo Hall eacute presidente da Linux International insti-tuiccedilatildeo internacional dedicada a promover o Linux e o Software Livre e de Coacutedigo Aberto Maddog viaja o mundo ministrando palestras e debatendo com decisores sobre o uso do Software Livre em acircmbito tanto corporativo quanto comunitaacuterio

CORPORATE

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

26 httpwwwlinuxmagazinecombr

CORPORATE

Nova lei de call center Oacutetima oportunidade para TI

Edgar SilvaHaacute inuacutemeras tecnologias de coacutedigo ou padrotildees abertos que podem ajudar a superar as dificuldades decorrentes da nova lei de call centers

ldquoO brasileiro mesmo com todas as adver-sidades eacute um povo criativo que na dificuldade cria oportunidadesrdquo Essa

afirmaccedilatildeo cabe muito bem quando observarmos a nova lei para call centers Afinal quem nunca ficou esperando horas numa linha telefocircnica e repetindo nuacutemero de documentos nome da matildee endereccedilo etc O decreto visa natildeo soacute a melhorar a vida de todos que precisam dos serviccedilos de empresas de telefonia fixa e moacutevel TV a cabo e outros mas tambeacutem ge-rar novos empregos assim como oportunidades de negoacutecios que eacute o tema deste artigo

Certamente em razatildeo da tradicional morosidade dos atendimentos de call center o comportamento padratildeo de noacutes consumidores eacute procurar alternativas Uma delas foi a Internet o que fez com que as em-presas investissem em portais para evitar o gargalo no atendimento de suas redes e tambeacutem porque re-presenta um aumento no atendimento sem elevar os custos Entatildeo por que natildeo criar novos canais de atendimento A tecnologia Java e algumas especi-ficaccedilotildees padrotildees e projetos open source fazem a diferenccedila nessa induacutestria de atendimento

Java por exemplo eacute extensamente utilizado Dentre os inuacutemeros motivadores destaco liberda-de de escolha de seus fornecedores a existecircncia de padrotildees da induacutestria que garantem maior ROI bem como facilidade de obtenccedilatildeo e formaccedilatildeo de profissionais Java conta com alguns padrotildees de tecnologia que ajudam principalmente a aprovei-tar parte do legado permitindo novos canais de interaccedilatildeo com os clientes Por exemplo os com-ponentes ou serviccedilos que atendem um navegador web podem tambeacutem atender uma chamada te-lefocircnica uma interaccedilatildeo SMS ou ateacute mesmo um canal VoIP via Skype

Entre as tecnologias disponiacuteveis cito as APIs padrotildees JSR116-SIP Servlets 10 [1] e JSR289-SIP Servlets 11 [2] que possibilitam a interaccedilatildeo com servidores SIP (Session Initiation Protocol) protocolo que dentre inuacutemeras funcionalidades estabelece

chamadas de voz via Internet O funcionamento do SIPServlet eacute similar ao do Servlet tradicional Java entretanto em vez de interagir com o protocolo HTTP estaacute apto a processar requisiccedilotildees e respostas do protocolo SIP Eacute por isso que seus componentes e serviccedilos podem ser reaproveitados

O Mobicents [3] tambeacutem eacute uma soluccedilatildeo que combina aleacutem de SIP vaacuterios outros serviccedilos para o segmento de telecomunicaccedilotildees que por sua vez eacute a implementaccedilatildeo de referecircncia do padratildeo JS-LEE 10 que em resumo eacute uma complementaccedilatildeo do jaacute conhecido JEE (J2EE para os mais antigos) especiacutefico para a comunicaccedilatildeo de componentes existentes em arquiteturas que agrupam web Voip som e imagem

Outro portal open source com soluccedilotildees interes-santes eacute o Ignite Real Time [4] que hospeda proje-tos como o OpenFire servidor Jabber (XMPP) com inuacutemeros plugins entre eles para chamadas SIP e comunicaccedilatildeo com o legendaacuterio Asterisk

Mais informaccedilotildees

[1] JSR116 httpjcporgenjsrdetailid=116

[2] JSR289 httpjcporgenjsrdetailid=289

[3] Mobicents httpwwwmobicentsorg

[4] Ignite Real Time httpwwwigniterealtimeorg

Sobre o autor

Edgar A Silva (edgarsilvaredhatcom) eacute Middleware Technology Lead da Red Hat no Brasil com atuaccedilatildeo desde 1998 em objetos distribuiacutedos (Corba COM+ e Java) Edgar vem nos uacuteltimos anos pesquisando aplicando e ministrando pales-tras e treinamentos no Brasil e exterior sobre assuntos de alta tecnologia entre eles JavaEE e SOA

copy Linux New Media do Brasil Editora Ltda

Dicas de especialistas para conviver com o Windows

Integraccedilatildeo transparente Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo que vocecirc queira viver em um mundo de coacutedigo aberto ele ainda estaacute cheio de Windows A ediccedilatildeo deste mecircs traz um apanhado de estrateacutegias para facilitar o conviacutevio com o sistema operacional da Microsoft por Joe Casad e Rafael Peregrino da Silva

As redes de hoje contam com um sortimento consideraacutevel de sistemas e dispositivos

Se todos esses componentes natildeo precisassem se comunicar natildeo as chamariacuteamos de rede Mesmo que vocecirc sonhe com um mundo sem Windows ndash e a IBM se esforce para tornar seu sonho realidade ndash essa rea-lidade ainda estaacute um pouco distante Por conta disso a ediccedilatildeo deste mecircs traz diversos artigos versando sobre interoperabilidade e integraccedilatildeo de sistemas No nosso primeiro artigo examinamos algumas teacutecnicas para conexatildeo de clientes VPN para Linux a servidores Windows

Tambeacutem vamos mostrar alguns aplicativos Linux para gerenciamento de conexotildees a VPNs e descreveremos algumas teacutecnicas de resoluccedilatildeo dos problemas para fazer o sistema do pinguumlim funcionar com o protoco-lo PPTP usado em redes Windows No artigo seguinte abordamos a integraccedilatildeo de sistemas Linux a um ambiente Windows usando o famo-so (alguns diriam infame) Microsoft Active Directory lanccedilando matildeo para tanto do sistema de autenticaccedilatildeo Likewise Open O Likewise eacute uma ferramenta de coacutedigo aberto que fornece uma confi guraccedilatildeo faacutecil para autenticaccedilatildeo dos tipos single sign-on e Kerberos O terceiro artigo da ses-satildeo mostra como confi gurar o Linux como um servidor de terminais para clientes Windows utilizando o xrdp ndash uma implementaccedilatildeo de coacutedigo aberto do Remote Desktop Protocol

(RDP) da Microsoft Nesse artigo vocecirc vai entender por que o siste-ma das janelas natildeo eacute necessaacuterio no servidor para criar um ambiente de terminais Windows e aprenderaacute como fazer os usuaacuterios desse sistema visualizarem um desktop Linux na sua aacuterea de trabalho tudo isso em apenas alguns passos

Por uacuteltimo apresentamos um soft-ware de coacutedigo aberto para agenda-mento de tarefas muito mais comple-xo que o veneraacutevel Cron e que tem como uma de suas maiores vantagens o fato de ser multiplataforma ndash o que facilita muito a administraccedilatildeo de um ambiente heterogecircneo de servidores

Se vocecirc precisa conviver com o Windows por que natildeo vi-ver em paz e com con-

forto Se esse eacute o seu caso esperamos tornar a sua vida um pouco menos atribulada com esta ediccedilatildeo de inte-graccedilatildeo com as tecnologias da gigante de Redmond

CAPA

Linux Magazine 50 | Janeiro de 2009

Iacutendice das mateacuterias de capa

Rede fechada 28Na ativa 34O manda-chuva do terminal 40 Muito aleacutem do Cron 44

27copy Linux New Media do Brasil Editora Ltda

28 httpwwwlinuxmagazinecombr

Configurando conexotildees VPN em clientes Linux

Rede fechadaClientes Linux eventualmente precisam de uma matildeozinha para se conectar a servidores VPN do Windowspor James Stanger

Dois benefiacutecios de se usar tuacute-neis VPN (Virtual Private Networks ou redes virtuais

privadas) satildeo as conexotildees criptografa-das e o acesso aos recursos localizados atraacutes do firewall Quando a questatildeo eacute interoperabilidade entretanto confi-gurar essas conexotildees pode ser difiacutecil em clientes Linux As distribuiccedilotildees Linux frequumlentemente tecircm problemas em es-tabelecer conexotildees a VPNs em servido-res cuja tecnologia eacute baseada em outros sistemas operacionais especialmente porque os aplicativos graacuteficos utiliza-dos para configurar essas conexotildees normalmente natildeo conseguem manter

o mesmo ritmo de desenvolvimento do Linux que estaacute geralmente duas geraccedilotildees agrave frente delas Assim pouco tempo apoacutes as distribuiccedilotildees terem sido lanccediladas as bibliotecas usadas para a criaccedilatildeo de VPNs satildeo modificadas e o aplicativo que vocecirc utilizava para fazer esse tipo de conexatildeo simplesmente paacutera de funcionar em ambientes he-terogecircneos Recentemente houve um avanccedilo nessa situaccedilatildeo e este artigo daacute algumas dicas sobre como estabele-cer conexotildees a VPNs a partir de um desktop Linux

Uma VPN cria um tuacutenel ponto-a-ponto por meio de uma rede puacuteblica

Vaacuterios protocolos oferecem suporte a conexotildees VPN entre eles as seguintes alternativas bastante populares L2TP via IPsec Foi o primeiro

protocolo desenvolvido pela Cisco para criaccedilatildeo de tuacuteneis de acesso criptografados L2TPv3 eacute a versatildeo mais recente mas certifique-se de escolher a ver-satildeo apropriada para a sua rede Lembre-se de que haacute duas im-plementaccedilotildees de IPsec principais no Linux Por exemplo sistemas mais antigos usam FreeSWAN ou Openswan para IPsec Sis-temas mais recentes com qual-

CA

PA

Quadro 1 Problemas e soluccedilotildees

Ao resolver problemas em conexotildees certifique-se de es-tar com os moacutedulos instalados e carregados Por exem-plo num sistema Ubuntu 8041 uma conexatildeo PPTP precisa dos seguintes moacutedulos

ppp_mppe 8068 2ppp_async 13312 1crc_ccitt 3072 1 ppp_asyncppp_generic 29588 6 ppp_mppe ppp_asyncslhc 7040 1 ppp_genericppdev 10372 0

A MTU (unidade maacutexima de transmissatildeo) eacute outra configu-raccedilatildeo importante pode ser necessaacuterio reduzir o valor de 1500 para algo menor como 1490

Em caso de problemas lembre-se de ativar as opccedilotildees de depuraccedilatildeo no cliente ndash sempre eacute possiacutevel desativaacute-las depois As opccedilotildees de depuraccedilatildeo podem incluir especifi-car pacotes ICMP para testar uma conexatildeo assim como determinar o tamanho do intervalo de eco

Uma opccedilatildeo estranha mas eventualmente uacutetil eacute desativar a criptografia Obviamente com isso perdem-se os benefiacutecios da conexatildeo VPN A maioria dos servidores rejeita conexotildees sem criptografia mas ainda assim essa opccedilatildeo pode ser de alguma ajuda para eliminar fontes de problemas

O mascaramento de IP e outras formas de NAT tambeacutem im-potildeem alguns problemas para conexotildees VPN Se estiverem sendo usados ESP ou AH (cabeccedilalhos de autenticaccedilatildeo) por exemplo haveraacute problemas com o NAT pois o AH executa uma verificaccedilatildeo que inclui valores como o endereccedilo IP da conexatildeo Como o NAT modifica o endereccedilo IP a verificaccedilatildeo falharaacute e portanto tambeacutem a comunicaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

29

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

quer versatildeo do kernel da seacuterie 26 dispotildeem de suporte nativo a Ipsec

Point-to-Point Tunneling Pro-tocol (PPTP) trata-se de um protocolo antigo que ainda eacute usado em diversos ambientes Microsoft

Secure Sockets LayerTransport Layer Security (SSLTLS) eacute um dos mais poderosos protocolos de interoperabilidade disponiacute-veis atualmente fornecendo suporte para muitos tipos de conexotildees VPN O OpenVPN [1] por exemplo eacute uma solu-ccedilatildeo para criaccedilatildeo de tuacuteneis de acesso criptografados baseada em SSLTLS

Com o passar dos anos jaacute houve muitas discussotildees sobre qual proto-colo eacute o mais seguro ou qual seria mais favoraacutevel ao modelo de desen-volvimento de coacutedigo aberto Muitas dessas discussotildees chegaram a assumir um teor quase religioso Poreacutem em vez de se envolver em tais discussotildees eacute mais uacutetil simplesmente descobrir qual dos protocolos funciona melhor para o seu tipo de rede em particular e entatildeo adotaacute-lo

Qualquer que seja o protocolo usado para criar o tuacutenel eacute possiacutevel enviar pacotes atraveacutes dele os quais seratildeo considerados pelo firewall como pacotes internos A chave como veremos a seguir eacute se certificar de que os pacotes certos atravessem a interface correta do tuacutenel

O ambiente Linux dispotildee de diversas ferramentas para configu-rar e gerenciar conexotildees VPN O utilitaacuterio KVpnc do projeto KDE oferece suporte para vaacuterias tecnolo-gias VPN (da Cisco passando pela Microsoft e culminando no Open-VPN) O vpnc eacute um programa de linha de comando para sistemas Cisco Muitas distribuiccedilotildees Linux passaram a usar o NetworkManager [2] desenvolvido pela Red Hat que

permite instalar extensotildees para redes Cisco e Microsoft Dependendo da tecnologia VPN que vocecirc pretende usar vocecirc teraacute que instalar a exten-satildeo apropriada

O pptpconfig [3] eacute um aplicativo antigo que funciona especialmente bem para distribuiccedilotildees Linux da Red Hat e da Novell bem como com BSDs e vaacuterios outros sistemas Como o nome sugere o pptpconfig eacute usado para gerenciar VPNs basea-dos em tecnologia Microsoft

Criando um tuacutenelIndependentemente de qual aplicati-vo ou protocolo for usado eacute necessaacuterio obter algumas informaccedilotildees baacutesicas para estabelecer uma conexatildeo com sucesso Por exemplo Informaccedilotildees sobre autenti-

caccedilatildeo dependendo do que o administrador da rede exigir seraacute preciso fornecer informa-ccedilotildees especiacuteficas a respeito do usuaacuterio para se autenticar no servidor VPN A alternativa menos segura (embora mais comum) eacute fornecer um nome de usuaacuterio e uma senha Outras opccedilotildees incluem chaves priva-das e certificados A Cisco daacute preferecircncia ao uso de chaves e certificados por exemplo

Gateway (tambeacutem conhecido popularmente como nome do servidor VPN) eacute o endereccedilo IP

ou nome do equipamento VPN que fornece o tuacutenel depois da autenticaccedilatildeo

Tipo de protocolo como dis-cutido acima eacute necessaacuterio es-colher entre os protocolos exis-tentes tais como L2TP PPTP OpenVPN etc A ferramenta de configuraccedilatildeo vai solicitar que sejam especificadas as opccedilotildees adequadas para o(s) protocolo(s) escolhido(s)- pelo administrador da rede

Configuraccedilotildees gerais qualquer que seja o protocolo de autenti-caccedilatildeo seraacute preciso fornecer in-formaccedilotildees especiacuteficas para a sua conexatildeo Por exemplo algumas redes solicitam a configuraccedilatildeo de uma unidade maacutexima de transmissatildeo (do inglecircs Maximum Transmission Unit o famigerado MTU) especiacutefica o aplicativo permite que sejam realizadas as modificaccedilotildees especiacuteficas para a conexatildeo em questatildeo

Informaccedilotildees de roteamento natildeo importa os tipos de proto-colo ou autenticaccedilatildeo escolhi-dos normalmente tambeacutem eacute necessaacuterio assegurar-se de que os pacotes certos estatildeo de fato sendo roteados atraveacutes da inter-face correta

Assim eacute certo depender da ajuda de um administrador de redes compre-

Quadro 2 Preso do lado de fora

Conforme satildeo feitos experimentos com a conexatildeo VPN certifique-se de que sua conta natildeo seja trancada do lado de fora A maioria das VPNs tem dificuldade em diferenciar entre experimentos com a configuraccedilatildeo e tentati-vas de invasatildeo Se vocecirc ficar trancado de fora natildeo conseguiraacute entrar nem mesmo com as configuraccedilotildees corretas

Se ficar impossiacutevel conectar-se preste atenccedilatildeo ao arquivo de log e agraves men-sagens de depuraccedilatildeo para verificar se as mensagens de autenticaccedilatildeo e conexatildeo mudaram de alguma forma uma mudanccedila sutil pode indicar que se estaacute na verdade trancado do lado de fora da conta Se for esse o caso seraacute preciso esperar a conta ser desbloqueada Com sorte essa limitaccedilatildeo seraacute temporaacuteria Caso contraacuterio seraacute preciso contatar o administrador da rede cada vez que ocorrer esse imprevisto

copy Linux New Media do Brasil Editora Ltda

30 httpwwwlinuxmagazinecombr

CAPA | VPNS

ensivo para ajudar o usuaacuterio a obter as informaccedilotildees listadas acima

PPTP com Microsoft Mesmo que o protocolo PPTP seja considerado menos seguro que o da Cisco ou o OpenVPN ele ainda eacute bastante popular Para confi gurar uma conexatildeo PPTP haacute um grande rol de opccedilotildees de autenticaccedilatildeo com-pressatildeo e criptografi a

Um dos desafi os eacute escolher o meacute-todo de autenticaccedilatildeo Autenticaccedilatildeo direta ( peer authentication ) signifi -ca que o servidor solicitaraacute que o cliente se identifi que As opccedilotildees para essa modalidade de autentica-ccedilatildeo incluem Challenge Handshake Authenti-

cation Protocol (CHAP) proto-colo padratildeo em conformidade com o RFC correspondente Basta fornecer um nome de usuaacuterio e uma senha para se autenticar MS-CHAP eacute a im-plementaccedilatildeo do protocolo pela Microsoft Se o administrador da rede natildeo revelar o protocolo empregado use o MS-CHAP no caso de servidores Windows

EAP eacute uma extensatildeo do pro-tocolo de autenticaccedilatildeo PPP original que permite o uso de um certifi cado em vez de nome de usuaacuterio e senha Me-nos comum do que MS-CHAP e CHAP

Muitos clientes oferecem a opccedilatildeo de recusar todos esses meacutetodos de autenticaccedilatildeo Para trabalhar bem com um servidor VPN remoto talvez a melhor opccedilatildeo seja usar diretamente o daemon PPP do seu sistema Compactar os dados para trans-

missatildeo pela VPN tambeacutem eacute uma boa ideacuteia Geralmente haacute trecircs opccedilotildees de compressatildeo

Microsoft Point-to-Point Com-pression (MPPC) protocolo an-tigo baseado no algoritmo LZ e geralmente reservado a clientes Windows antigos (Windows 95 e NT) Contudo pode funcionar em outras VPNs

Defl ate compression protocolo similar ao MPPC mas livre de patentes Eacute mais universal que

o MPPC mas raramente usado em VPNs Microsoft

BSD compression descrito na RFC 1977 eacute o protocolo de compressatildeo tradicional

O tipo de compressatildeo geralmente causa problemas nas conexotildees Caso o administrador da rede natildeo coope-re eacute melhor tentar primeiro uma conexatildeo sem compressatildeo

A confi guraccedilatildeo da criptografi a tambeacutem eacute importante O Microsoft Point-to-Point Encryption (MPPE) eacute um subconjunto do MPPC Pode-se usar dois comprimentos de chave di-ferentes 40 bits e 128 bits Empresas de muitos paiacuteses usam apenas cha-ves de 40 bits Na confi guraccedilatildeo de clientes PPTP o administrador deve informar o comprimento da chave Senatildeo basta testar ateacute descobrir

Stateful MPPE geralmente eacute a melhor opccedilatildeo de criptografi a uma vez que fornece conexotildees de rede mais raacutepidas Como veremos mais agrave frente eacute necessaacuterio habilitar o moacutedulo MPPE para qualquer uma dessas confi guraccedilotildees

DNS A maioria dos clientes DNS pergunta se deve usar as informaccedilotildees de DNS em etcresolvconf ou aquelas for-necidas pelo servidor VPN A proacutepria conexatildeo VPN pode causar modifi ca-ccedilotildees na resoluccedilatildeo de DNS principal-

Figura 2 Criaccedilatildeo de rotas no cliente NetworkManager

Figura 1 Criaccedilatildeo de rotas no cliente VPN KVpnc

copy Linux New Media do Brasil Editora Ltda

31

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

mente porque o cliente VPN altera o conteuacutedo do arquivo etcresolvconf mesmo quando confi gurado ex-plicitamente para natildeo fazecirc-lo

A melhor soluccedilatildeo eacute usar um clien-te VPN que funcione da forma que se espera Na falta de tal soluccedilatildeo pode-se contornar o problema crian-do um script que faccedila uma coacutepia do arquivo etcresolvconf correto Quando o cliente VPN pergunta se deve ldquorealizar acessos ao DNS atra-veacutes do tuacutenelrdquo geralmente o que ele realmente quer dizer eacute se pode alte-rar o arquivo etcresolvconf com seus novos dados A escolha correta depende de informaccedilotildees fornecidas pelo administrador da rede Se o ob-jetivo natildeo for usar o DNS da VPN seraacute difiacutecil o cliente acessar as outras maacutequinas detraacutes da VPN

Suporte ao GRE Para conectar um cliente a uma VPN Microsoft atraveacutes de um fi -rewall Linux haacute um ajuste extra a ser feito nele para que tudo funcio-ne a ativaccedilatildeo do protocolo Generic Route Encapsulation (GRE) para atravessar o fi rewall Supondo o uso do iptables no fi rewall Linux e um servidor VPN com o endereccedilo 18944453 eacute necessaacuterio executar o seguinte comando

iptables -I FORWARD -p 47 -d 18944453 -j ACCEPT

Roteamento Pode ser necessaacuterio rotear pacotes ex-plicitamente atraveacutes de uma interface especiacutefi ca Muitos administradores de sistemas Windows consideram esse um dos maiores desafi os do trabalho com clientes Linux

A necessidade de rotear pacotes explicitamente eacute especialmente importante quando a rede remota utiliza IPs puacuteblicos Mesmo que seja usado um tuacutenel VPN a in-

terface de rede ainda pode tentar rotear pacotes pela Internet em vez de simplesmente usar o tuacutenel Satildeo muito frequumlentes problemas em conexotildees VPN cuja soluccedilatildeo eacute sim-plesmente adicionar algumas rotas alternativas agrave tabela de roteamento padratildeo do sistema Isso pode ser feito tanto com o aplicativo graacutefi co de confi guraccedilatildeo do VPN quanto pela linha de comando com os utilitaacuterios route ou iproute

route add -net 131639723 netmask 255255255255 dev ppp0 ou iproute

ip route add 17187445424 dev ppp0

Em alguns casos sem essas rotas

natildeo eacute possiacutevel fazer com que os paco-tes que deveriam trafegar pela VPN realmente o faccedilam e eles acabam saindo pela placa de rede

Figura 3 KVpnc com uma sessatildeo PPTP legada

Figura 4 Importaccedilatildeo de um certifi cado Cisco no KVpnc

copy Linux New Media do Brasil Editora Ltda

32 httpwwwlinuxmagazinecombr

CAPA | VPNS

Interface graacutefi ca Os aplicativos graacutefi cos para confi gu-raccedilatildeo de VPNs estatildeo fi cando cada vez melhores quando se trata de adicionar as rotas necessaacuterias auto-maticamente A fi gura 1 mostra as confi guraccedilotildees para o KVpnc A fi gura 2 ilustra uma confi guraccedilatildeo similar no NetworkManager

Assim como essas capturas de tela ilustram pacotes que coincidam com o endereccedilo IP e a maacutescara de rede defi nidos natildeo seratildeo enviados atraveacutes da conexatildeo de rede padratildeo mas simpelo tuacutenel VPN

O KVpnc ( fi gura 3 ) disponiacutevel em vaacuterias distribuiccedilotildees talvez seja o mais versaacutetil entre os clientes atuais pois oferece suporte a L2TP aos protocolos VPN tanto livres quanto proprietaacuterios da Cisco ao OpenVPN e ao PPTP da Microsoft O KVpnc tambeacutem permite a importaccedilatildeo de certifi cados conforme mostra a fi gura 4

Apesar de os desenvolvedores da interface graacutefi ca do programa terem cometido alguns deslizes ortograacutefi -

cos na interface os desenvolvedores do KVpnc realmente criaram um produto que trabalha parti-cularmente bem em conjunto com dispo-sitivos Cisco

O veneraacutevel pptp-config tambeacutem estaacute disponiacutevel em muitas distribuiccedilotildees O se-gredo para o sucesso no seu uso pptpconfig estaacute na confi guraccedilatildeo da criptografi a usada pelo programa que precisa ser exatamen-te aquele previsto pelo administrador

Com frequumlecircncia eacute importante usar de criptografi a MPPE e habilitar o modo stateful desse proto-

colo No caso do pptpconfig seria preciso selecionar Require Microsoft Point-to-Point Encryption (MPPE) e Refuse Stateless Encryption para conseguir isso

O pptpconfig tambeacutem tem capaci-dade de adicionar rotas automatica-mente Simplesmente clique na aba Routing marque o botatildeo Client to LAN e digite as rotas dos sistemas que devem ser conectados pela VPN

Muitos usuaacuterios Linux preferem o NetworkManager por um simples motivo ele costuma funcionar Haacute plugins para ele que suportam vaacuterios protocolos incluindo OpenVPN Microsoft PPTP e L2TP Apoacutes insta-laacute-los basta clicar no iacutecone de rede e selecionar as conexotildees VPN para comeccedilar a fornecer as informaccedilotildees apropriadas A fi gura 5 mostra as etapas para confi gurar uma conexatildeo Cisco num sistema Ubuntu

O NetworkManager suporta a criptografi a por chave compartilhada quanto por certifi cado X509 Para fazecirc-lo funcionar adequadamente

eacute preciso instalar o daemon racoon para fazer a troca de chaves pela In-ternet Depois deve-se obter com o administrador da rede a chave com-partilhada e os certifi cados assinados caso eles sejam usados

IPsec e kernel 26 Certifi que-se de instalar os daemons certos para a conexatildeo Se o sistema utilizar alguma versatildeo do kernel 26 ele jaacute suporta nativametne o IPsec mas se for usado o KVpnc ou o vpnc ainda seraacute preciso instalar o daemon racoon que se encarrega da troca de chaves em implementaccedilotildees IPsec Se o racoon natildeo estiver disponiacutevel no re-positoacuterio da distribuiccedilatildeo em questatildeo basta conferir o site do projeto [4]

Para suportar o FreeSWAN o padratildeo antigo para o IPsec eacute pre-ciso instalar o daemon ipsec caso contraacuterio a implementaccedilatildeo falharaacute pois o sistema natildeo conseguiraacute con-duzir as trocas de senha necessaacuterias ao estabelecer o tuacutenel

Conclusatildeo Estabelecer uma VPN hoje em dia eacute muito mais faacutecil mas os clien-tes VPN graacutefi cos ainda natildeo fazem tudo pelo usuaacuterio Apesar de ainda ser trabalhoso fazer a comunicaccedilatildeo com servidores Microsoft Cisco e OpenVPN basta uma certa dedica-ccedilatildeo para se obter sucesso

Mais informaccedilotildees

[1] OpenVPN httpopenvpnnet

[2] NetworkManager httpwwwgnomeorgprojectsNetworkManager

[3] pptpclient httppptpclientsourceforgenet

[4] Rasvpn httpwwwnetbsdorgdocsnetworkipsecrasvpnhtml

Figura 5 Confi guraccedilatildeo de VPN Cisco no NetworkManager

copy Linux New Media do Brasil Editora Ltda

33

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

Linux Pro novo (julho) 77 251108 172941

copy Linux New Media do Brasil Editora Ltda

34 httpwwwlinuxmagazinecombr

Integraccedilatildeo faacutecil ao Active Directory com o Likewise Open

Na ativaO Likewise Open oferece integraccedilatildeo faacutecil a ambientes Active Directory Mostramos como instalar e configurar o sistema de autenticaccedilatildeo amigaacutevel para administradorespor Walter Neu

O sistema de autenticaccedilatildeo Li-kewise Open [1] integra clien-tes Linux ao ambiente Active

Directory Obviamente tambeacutem eacute possiacutevel configurar o Active Directory pelo Samba e seus atores coadjuvantes [2] mas a soluccedilatildeo da Likewise oferece vaacuterios benefiacutecios para facilitar a confi-guraccedilatildeo e a administraccedilatildeo

A versatildeo gratuita e GPL do Likewi-se suporta autenticaccedilatildeo em diretoacuterios AD a autorizaccedilatildeo de serviccedilos ldquoker-berizadosrdquo e ateacute o recurso de single sign-on Isso pode se parecer bastante com o Samba que faz as mesmas coisas na verdade o gerente de pro-jetos da Likewise Gerald Carter eacute um antigo membro da equipe central

de desenvolvimento do Samba O Likewise Open se aproveita do tra-balho do Samba embora acrescente diversos recursos proacuteprios

Pacotes prontosHaacute pacotes do Likewise para distri-buiccedilotildees da Red Hat Novell e Cano-nical aleacutem de alguns sistemas Unix comerciais e do MacOS X

O site do Likewise exibe a versatildeo 50 embora os pacotes especiacuteficos por distribuiccedilatildeo incluam a versatildeo 4 usada neste artigo Usuaacuterios do Ubuntu tecircm agrave disposiccedilatildeo os pacotes likewise-open e likewise-open-gui no repositoacuterio Uni-verse Os pacotes do Likewise incluem vaacuterias dependecircncias ndash primordialmente

relacionadas ao Kerberos O Likewise Open se baseia na versatildeo MIT do Ker-beros como back-end [3] Durante a instalaccedilatildeo no Ubuntu o pacote pede para o administrador especificar os servidores Kerberos e administrativo (figuras 1 e 2)

Aleacutem de um servidor AD e uma estrutura de domiacutenio gerenciada pelo Windows o Likewise possui dois ou-tros requisitos um servidor de nomes funcional e um reloacutegio do sistema sincronizado Se os reloacutegios do cliente e do servidor estiverem mais de cinco minutos fora de sincronia o servidor Kerberos certamente se recusaraacute a emitir tiacutequetes por medida de segu-ranccedila para evitar ataques

Nova abordagemAdicionar um sistema Linux ldquocrurdquo a um domiacutenio exige certo trabalho de configuraccedilatildeo [2] O Likewise Agent faz a maior parte desse trabalho adi-cionando-se ao Name Service Switch (NSS) e aos Pluggable Authentication Modules (PAM) no cliente local

No lado do servidor o agente re-passa as requisiccedilotildees de autenticaccedilatildeo ao servidor Kerberos 5 e ao AD base-ado em LDAP Para permitir que isso aconteccedila o pacote instala algumas bi-bliotecas e arquivos de configuraccedilatildeo Por exemplo liblibnss_lwidentityso integra o Likewise ao NSS e etcpamdpam_lwidentityso faz o mesmo para o PAM O arquivo de configu-

CA

PA

Figura 1 O gerenciador de pacotes do Ubuntu pede o nome do servidor Kerberos ao se instalar os pacotes do Kerberos

copy Linux New Media do Brasil Editora Ltda

35

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

raccedilatildeo etcsecuritypam_lwidentityconf configura o moacutedulo e a interface do controlador de domiacutenio remoto eacute implementada pelo servidor Winbind do Likewise o likewise-winbindd O servior tem seu proacuteprio arquivo de configuraccedilatildeo etcsambalwiauthdconf semelhante ao arquivo smbconf do pacote Samba

O Likewise Open integra esses com-ponentes para suportar um login de domiacutenio transparente para os usuaacuterios O processo de login repassa o nome do usuaacuterio e sua senha para o PAM O moacutedulo pam_lwidentityso se comuni-ca com o serviccedilo de autenticaccedilatildeo do Likewise que gera uma chave secreta a partir do nome e da senha do usuaacute-rio O daemon do Likewise utiliza a chave secreta para solicitar um tiacutequete para solicitaccedilatildeo de tiacutequetes (TGT na nomenclatura do Kerberos) ao ser-vidor de autenticaccedilatildeo Kerberos que roda como parte do Key Distribution Center (KDC) no servidor AD

Ao apresentar o TGT o serviccedilo de autenticaccedilatildeo do Likewise recebe tiacutequetes de serviccedilo para outros ser-viccedilos de rede como SSH Os usuaacute-rios entatildeo jaacute podem fazer logon nos servidores kerberizados sem digitar suas senhas novamente

Configure o pacote de instalaccedilatildeo do Likewise em cada maacutequina Li-nux que vai se tornar um membro do domiacutenio AD (e ser gerenciada pelo Likewise) Se forem usados os pacotes de instalaccedilatildeo fornecidos no site o Likewise Open seraacute instalado com uso de um Bitrock Installer ndash um executaacutevel cujo nome de arquivo ter-mina com installer Para executar o programa eacute preciso tornar-se root e seguir as instruccedilotildees na tela

O instalador exibe informaccedilotildees sobre as licenccedilas de coacutedigo aberto dos componentes instalados antes de o Likewise instalar seus arquivos Depois disso o instalador leva o ad-ministrador ao domainjoin-cli que se localiza no diretoacuterio usrcente-risbin (violando as-sim as convenccedilotildees do FHS [4] os pacotes das distribuiccedilotildees e as versotildees mais recentes do Likewise corrigem esse erro) O agente ar-mazena informaccedilotildees de log em varloglw-identity ndash se for usada a versatildeo do repositoacuterio do Ubuntu ndash em varloglikewise-open

Pode entrarUm domiacutenio AD precisa que os siste-mas usuaacuterio e cliente tornem-se mem-bros dele O ato de criar uma conta de maacutequina no serviccedilo de diretoacuterio da Microsoft eacute chamado no idioma do AD de ldquojuntar-se ao domiacuteniordquo (ou ldquoJoining the domainrdquo em inglecircs)

Haacute uma ferramenta de linha de co-mando chamada domainjoin-cli que permite que o usuaacuterio root se junte ao domiacutenio AD criando uma conta de maacutequina no diretoacuterio nesse processo A ferramenta domainjoin-cli aceita a opccedilatildeo join e o domiacutenio como argumen-tos O argumento do domiacutenio precisa ser especificado como um nome DNS completamente qualificado

Aleacutem disso o comando espera o nome de um usuaacuterio com autorizaccedilatildeo para criar contas de computador no ambiente AD O exemplo 1 mostra um computador chamado ubuntu se juntando ao domiacutenio exemploorg A conta Administrator possui os privileacute-gios necessaacuterios para essa etapa

A segunda opccedilatildeo para se juntar a um domiacutenio eacute a interface graacutefica do Likewise Open (figura 3) Poreacutem a interface natildeo estaacute incluiacuteda no pacote baacutesico do programa Para acrescentaacute-la simplesmente instale o pacote likewise-open-gui e inicie-o com privileacutegios de root digitando domainjoin-gui

Manual e automaacuteticoNos dois casos o Likewise Open lida com a tarefa de configuraccedilatildeo em se-gundo plano eliminando a necessi-

Figura 2 Eacute preciso especificar o servidor administrativo para o domiacutenio do Kerberos

Exemplo 1 Juntando-se a um domiacutenio

01 domainjoin-cli join exampleorg Administrator02 Joining to AD Domain exampleorg03 With Computer DNS Name ubuntuexampleorg04 05 AdministratorEXAMPLEORGrsquos password06 Enter AdministratorEXAMPLEORGrsquos password07 SUCCESS

copy Linux New Media do Brasil Editora Ltda

36 httpwwwlinuxmagazinecombr

CAPA | Likewise

dade de etapas manuais complexas O software modifica as configuraccedilotildees para interaccedilatildeo do usuaacuterio com o AD (figura 4) incluindo os arquivos neces-saacuterios para a comunicaccedilatildeo do Kerberos com o KDC krb5conf e os arquivos do PAM em etcpamd

Para fazer login usando um domiacutenio de cliente Linux os usuaacuterios precisam de um diretoacuterio home no cliente O Likewise cria o diretoacuterio localmente se for modificado o arquivo etcse-curitypam_lwidentityconf

O arquivo etcnsswitchconf faz o Likewise Open retomar o controle e especifica o meacutetodo lwidentity O servi-ccedilo de nomes do NSS verifica primeiro arquivos locais como etcpasswd

passwd files lwidentitygroup files lwidentity

Se ele natildeo conseguir encontrar uma conta ele acessa o AD em se-guida Isso significa que usuaacuterios lo-cais ainda podem acessar a maacutequina local caso o AD falhe

Configuraccedilatildeo cuidadosaO Likewise eacute cuidadoso na configura-ccedilatildeo do sistema Linux Ele cria becapes de todos os arquivos que modifica acrescentando um sufixo lwid-entitybak e por um bom motivo executar domainjoin-cli leave como root na li-nha de comando ou na interface graacutefica apaga a conta da maacutequina

Nesse caso o Likewise recupera todos os arquivos de configuraccedilatildeo que tive-

rem sido alterados Ele usa o arquivo etcsambalwiauthdconf para permitir que os ad-ministradores especifiquem opccedilotildees de configuraccedilatildeo para seu proacuteprio sistema Winbind essas configuraccedilotildees devem ser familiares agravequeles que utilizam o Samba num am-biente AD

Configuraccedilatildeo individualO paracircmetro template shell define o shell de login para todos os usuaacuterios de forma centralizada O diretoacuterio home do usuaacuterio natildeo eacute definido no banco de dados de usuaacuterios do AD portanto eacute preciso especificar o caminho no ar-quivo de configuraccedilatildeo com o paracircmetro template homedir do Samba

template shell = binbashtemplate homedir = homeDU

O Likewise-Winbind substitui D pelo nome de domiacutenio curto e U pelo usuaacuterio do domiacutenio

Para evitar colisotildees de nomes em relacionamentos de confianccedila faz sentido adicionar o domiacutenio ao caminho do usuaacuterio ndash e aplicar os padrotildees para diretoacuterios dos usuaacuterios Se a configuraccedilatildeo natildeo for alterada o Likewise Open usaraacute a contra-barra como separador de domiacutenios e nomes de usuaacuterios Obviamente a contrabarra possui um significado especial em shells Unix Os especia-listas recomendam mudar isso para outro caractere em todos os clientes usando a variaacutevel winbind separator A sugestatildeo eacute o sinal +

Se houver apenas um domiacutenio eacute possiacutevel definir winbind use default domain = yes para evitar separar o domiacutenio dos nomes de usuaacuterios Se isso natildeo for feito os usuaacuterios do domiacutenio fornecidos pelo Winbind natildeo funcionaratildeo a menos que se adicione um prefixo de domiacutenio Reiniciar o Likewise Open por seu script de inicializaccedilatildeo aplica as mudanccedilas

VerbosoO pacote likewise-open conteacutem trecircs ferramentas de diagnoacutestico ndash lwinet lwimsg e lwiinfo ndash uacuteteis para fins de depuraccedilatildeo entre outros

Exemplo 2 klist exibe os tiacutequetes locais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081208 134808 081208 234808 krbtgtEXAMPLEORGEXAMPLEORG07 renew until 081908 13480808 081208 134808 081208 234808 SUSE$EXAMPLEORG09 renew until 081908 134808

Figura 3 A interface do Likewise Open pede o nome DNS do domiacutenio e os nomes das maacutequinas

copy Linux New Media do Brasil Editora Ltda

37

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

Como o Likewise se baseia no coacutedigo do Winbindd do Samba as ferramentas vatildeo lidar com as tarefas normalmente realizadas pelo dae-mon Winbind do Samba Digitando lwiinfo eacute possiacutevel verificar a conexatildeo ao controlador do domiacutenio

A ferramenta corresponde ao wbin-fo do Samba As duas consultam o daemon do Winbind Por exemplo o lwiinfo -u lista todos os usuaacuterios do domiacutenio padratildeo

EXAMPLE+mokr000EXAMPLE+phkr000EXAMPLE+wane000

O mesmo princiacutepio se aplica a grupos no serviccedilo de diretoacuterio que satildeo exibidos pela opccedilatildeo -g Isso ga-rante que o Linux saiba os nomes do AD O comado lwiinfo -g lista os grupos conhecidos

EXAMPLE+contasEXAMPLE+marketing []

Novamente o Likewise usa o ca-ractere + configurado em lwiauthdconf como separador no Winbind A ferramenta lwimsg corresponde ao smbcontrol e eacute usada para controlar o Winbindd definindo o niacutevel de depuraccedilatildeo por exemplo A contra-parte da ferramenta net do Samba usada para administraccedilatildeo remota de um domiacutenio eacute o lwinet

Apoacutes instalar o software eacute uma boa ideacuteia tentar fazer logon no AD O

formato do nome do usuaacuterio precisa corresponder agravequele definido para o serviccedilo de diretoacuterio Por exemplo se for mantida a configuraccedilatildeo padratildeo para separaccedilatildeo entre o domiacutenio e o nome do usuaacuterio mas o separador for alterado para o sinal de soma os usuaacuterios precisaratildeo digitar seus nomes como DOMIacuteNIO+usuaacuterio no login pelo console ou por um gerenciador de desktop (veja a fi-gura 5)

ubuntu Login EXAMPLE+wane000PasswordEXAMPLE+wane000ubuntu~$

Conforme mencionado anterior-mente o Likewise autentica usuaacute-rios pelo protocolo Kerberos por meio da requisiccedilatildeo de um TGT ao KDC antes de prosseguir agrave instala-ccedilatildeo local do tiacutequete no cliente como tmpkrb5cc_UID (veja o exemplo 2) O comando klist exibe os tiacutequetes vaacutelidos de um usuaacuterio

O usuaacuterio que posuir um tiacutequete tem permissatildeo para acessar serviccedilos kerberizados na rede sem fazer logon separadamente no serviccedilo de rede

Single sign-onPara permitir que um serviccedilo de rede decirc acesso sem senha a um usuaacuterio o administrador precisa atribuir um Service Principal Name (SPN) ao serviccedilo O SPN identifica o serviccedilo dentro do ambiente AD O serviccedilo pede um tiacutequete de serviccedilo para o Service Principal ao KDC identifi-cando-se com seu TGT

O SPN compreende uma defi-niccedilatildeo de serviccedilo seguida por uma barra e o hostname completamente qualificado do servidor um siacutembolo de arroba e o domiacutenio

Figura 4 Depois de entrar no domiacutenio o Likewise cria uma conta de maacutequina para o computador Ubuntu no Active Directory

Figura 5 O GDM pede um nome para login na autenticaccedilatildeo Neste AD o nome eacute composto pelo nome do domiacutenio (EXAMPLE) um sinal + e o nome do usuaacuterio

copy Linux New Media do Brasil Editora Ltda

38 httpwwwlinuxmagazinecombr

CAPA | Likewise

As definiccedilotildees de serviccedilos incluem host ftp ou pop Se um usuaacuterio es-tabelecer uma conexatildeo SSH com outro computador membro de um AD gerenciado pelo Likewise o serviccedilo kerberizado apresentaraacute o TGT do usuaacuterio e pediraacute um tiacute-quete de serviccedilo ao KDC para por exemplo o SPN hostubuntuexam-pleorgEXAMPLEORG ndash isso pressupotildee que o cache local de tiacutequetes ainda natildeo tenha um tiacutequete O tiacutequete de serviccedilo conteacutem o ID do usuaacuterio que faz a requisiccedilatildeo e a chave da sessatildeo O Likewise Open criptograva isso com a chave do servidor e a arma-zena no cache de usuaacuterios como o TGT (exemplo 3)

O cliente SSH envia automati-camente o tiacutequete de serviccedilo crip-tografado e um timestamp tambeacutem criptografado para validar o sshd do autenticador Isso garante que cada requisiccedilatildeo de tiacutequete seja uacutenica enquanto assegura que o cliente re-almente natildeo possui a chave da ses-satildeo Sem o autenticador seria mais faacutecil para um agressor capturar um tiacutequete no traacutefego da rede e iniciar um ataque de repeticcedilatildeo

O servidor valida o tiacutequete de ser-viccedilo apresentado a ele Para isso ele faz referecircncia ao arquivo etckrb5keytab local Esse arquivo armazena a chave do servidor que o usuaacuterio utiliza para decifrar o tiacutequete de serviccedilo revelando assim a chave da sessatildeo O autenticador se baseia na chave da sessatildeo caso tenha sucesso o usuaacuterio eacute autenticado sem neces-sidade de senha (figura 6)

ConexatildeoO Likewise Open configura automa-ticamente clientes SSH preacute-existen-tes e outros clientes ao se juntarem ao domiacutenio permitindo que usem o Kerberos para se autenticarem no futuro No lado do servidor o Likewise adiciona as linhas

GSSAPIAuthentication yesGSSAPICleanupCredentials yes

ao arquivo de configuraccedilatildeo etcsshsshd_config O Likewise tambeacutem acrescenta as seguintes linhas para um cliente SSH

GSAPIAuthentication yesGSSAPIDelegateCredentials yes

A instruccedilatildeo GSSAPIDelegateCreden-tials passa o TGT para o servidor de des-tino Para todas as outras configuraccedilotildees o software utiliza a Generic Security Ser-vices API (API de serviccedilos geneacutericos de seguranccedila GSSAPI) uma interface ge-neacuterica para serviccedilos de seguranccedila como o Kerberos

Figura 6 O Likewise implementa o single sign-on por meio do Kerberos Os usuaacuterios natildeo precisam digitar uma senha para fazer logon

Exemplo 4 Montagem de compartilhamentos Samba

01 ltxml version=rdquo10rdquo encoding=rdquoUTF-8rdquogt02 ltpam_mountgt03 ltvolume user = ldquordquo04 server = ldquoSAMBASERVERrdquo05 mountpoint = ldquohomeEXAMPLE(USER)Documentrdquo06 path = ldquo(USER)rdquo07 fstype = ldquosmbfsrdquo gt08 ltpam_mountgt

Exemplo 3 Tiacutequetes no cache de credenciais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081308 154829 081408 014830 krbtgtEXAMPLEORG EXAMPLEORG07 renew until 082008 15482908 081308 154830 081408 014830 SUSE$EXAMPLEORG09 renew until 082008 15482910 081308 154838 081408 014830 hostubuntuexampleorg11 renew until 082008 15482912 081308 154838 081408 014830 hostubuntuexampleorgEXAMPLEORG13 renew until 082008 154829

copy Linux New Media do Brasil Editora Ltda

39

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

LocalNa primeira vez em que um usuaacuterio do domiacutenio faz logon num cliente o Likewise Open usa o PAM (pam_lwidentityso) para criar diretoacuterios locais para esse usuaacuterio Alterna-tivamente o moacutedulo pam_mount pode montar diretoacuterios centrais do usuaacuterio num servidor remoto por SMBCIFS [5] Isso garante a todos os usuaacuterio o acesso a seus proacuteprios arquivos independentemente do cliente usado por eles no login O compartilhamento eacute definido por uma linha no arquivo etcsecuri-typam_mountconf que usa a palavra-chave volume

volume usuaacuterio sistema_de_arquivos servidor compartilhamento ponto_de_montagem opccedilotildees algoritmo caminho

A presenccedila de um curinga () no paracircmetro usuaacuterio faz o moacutedulo inserir o nome do usuaacuterio Sistema_de_arquivos pode ser smbfs ou cifs O servidor pode ser um IP ou um nome NetBIOS e compartilhamento pode usar o amp como curinga para o nome do usuaacuterio

Os trecircs uacuteltimos paracircmetros geral-mente natildeo satildeo necessaacuterios traccedilos satildeo aceitaacuteveis nesse caso montar o diretoacuterio Documentos ou o diretoacuterio home completo eacute questatildeo de gosto e depende de como a empresa orga-niza seus servidores centrais

Caso o ponto de montagem natildeo exista o moacutedulo pam_mount do PAM o cria se sua opccedilatildeo mkmountpoint 1 estiver presente Na versatildeo 029 o pam_mount armazena as configura-ccedilotildees num formato XML equivalente conforme mostra o exemplo 4

Antes das linhas sufficient na seccedilatildeo auth de etcpamd eacute possiacutevel inserir uma linha para o moacutedulo O exemplo 5 mostra uma configuraccedilatildeo nos arquivos common-auth e common-session no Ubuntu Para evitar a necessidade de os usuaacuterios digitarem suas senhas repetidamente a linha tr_first_pass = yes do arquivo etcsecuritypam_lwidentityconf ativa a opccedilatildeo para tentar novamente uma senha jaacute digitada antes

Versatildeo comercialAleacutem da versatildeo de coacutedigo aberto do Likewise a corporaccedilatildeo america-na Likewise Software oferece uma versatildeo comercial de seu software o Likewise Enterprise [6] A versatildeo comercial possui suporte a poliacuteticas de grupo no AD aleacutem das funciona-lidades oferecidas pela versatildeo livre o produto define aproximadamente 500 poliacuteticas padratildeo O Likewise Ad-ministrative Console eacute capaz de usar uma maacutequina Linux ou Unix para gerenciar registros do AD

Aleacutem disso tudo o Likewise En-terprise suporta desktops Linux que fazem referecircncia ao AD para obten-ccedilatildeo de configuraccedilotildees e restriccedilotildees Isso

ativa a implementaccedilatildeo de poliacuteticas estritas de seguranccedila A variante corporativa estaacute disponiacutevel gratuita-mente para fins de avaliaccedilatildeo ou por US$ 250 na versatildeo para servidores A empresa oferece dois niacuteveis de suporte comercial

Nova caraUma vez configurado o Likewi-se Open oferece o mesmo escopo funcional de uma combinaccedilatildeo de Samba Kerberos PAM e NSS Ele livra o administrador de vaacuterias tarefas monoacutetonas e repetitivas de configu-raccedilatildeo e suporta o gerenciamento de usuaacuterios centralizado e independente de plataforma O serviccedilo de autenti-caccedilatildeo por tiacutequetes do Kerberos e o single sign-on satildeo bocircnus

Quem se interessar pelo Likewi-se Open pode apreciar os recursos adicionais oferecidos pela versatildeo co-mercial ou os benefiacutecios do suporte profissional O uacutenico trabalho ma-nual que resta para o administrador eacute o gerenciamento centralizado dos diretoacuterios dos usuaacuterios

Mais informaccedilotildees

[1] Likewise Open httpwwwlikewisesoftwarecomproductslikewise_open

[2] Walter Neu ldquoDomando os catildees do infernordquo httplnmcombrarticle2424

[3] Kerberos MIT httpwebmitedukerberos

[4] Padratildeo Hieraacuterquico de Arquivos (FHS) httpwwwpathnamecomfhs

[5] Montagem de diretoacuterios home com PAM httppam-mountsourceforgenet

[6] Likewise Enterprise httpwwwlikewisesoftwarecomproductslikewise_enterprise

Exemplo 5 Configuraccedilatildeo do pam_mount

01 etcpamdcommon-auth02 auth required pam_mountso03 auth sufficient libsecuritypam_lwidentityso04 auth requisite pam_unixso nullok_secure try_first_pass05 auth optional pam_smbpassso migrate missingok0607 etcpamdcommon-session08 session optional pam_mountso09 auth sufficient libsecuritypam_lwidentityso10 session required pam_unixso

copy Linux New Media do Brasil Editora Ltda

40 httpwwwlinuxmagazinecombr

Serviccedilo RDP Linux para clientes de terminal Windows

O manda-chuva do terminal

O xrdp ajuda os seus clientes de terminal Windows a se conectarem ao Linuxpor Kenneth Hess

A conexatildeo de desktops remotos do Windows no Linux ge-ralmente consome bastante

banda da rede eacute insegura e difiacutecil de configurar E se um sistema Windows pudesse se conectar a um sistema Linux tatildeo facilmente quanto o faz com outro sistema Windows ndash utili-zando para isso o mesmo aplicativo usado para conectar originalmente ao Windows

O xrdp eacute uma implementaccedilatildeo de coacutedigo aberto do RDP (Remote Desktop Protocol ndash ou Protocolo de Ambiente de Trabalho Remoto na

traduccedilatildeo em portuguecircs) o protoco-lo usado nos serviccedilos de terminal do Windows para conexatildeo nativa a desktops Windows O Pacote xrdp fornece a funcionalidade RDP bem como um servidor graacutefico que seja capaz de aceitar conexotildees do rdesktop [1] e de clientes de serviccedilos de ter-minais Windows

Uma vez conectado e autenticado no servidor RDP Linux o usuaacuterio remoto teraacute disponiacutevel um ambiente de trabalho Linux em modo graacutefico E o melhor eacute que natildeo eacute necessaacuterio executar um servidor graacutefico na maacute-quina com Windows nem eacute preciso exportar a tela do Linux para o com-putador com Windows

Configurar o servidor RDP no Linux eacute faacutecil e leva apenas alguns minutos Para os usuaacuterios novatos de Linux ou os administradores de sistemas Windows segue a lista de requisitos necessaacuterios para fazer o sistema funcionar uma conta de usuaacuterio padratildeo

na maacutequina Linux acesso remoto ou ao console do

servidor Linux acesso com privileacutegios administrati-

vos (de root) no servidor Linux

Tambeacutem ajuda se vocecirc souber al-guma coisa sobre RDP e sobre a otimizaccedilatildeo da configuraccedilatildeo de um cliente RDP

Instalaccedilatildeo e configuraccedilatildeoPara nos certificarmos de que esta-mos usando a versatildeo mais recente do xrdp vamos instalaacute-lo a partir do coacutedigo-fonte Haacute pacotes do pro-grama para algumas distribuiccedilotildees o que pode facilitar a instalaccedilatildeo e a integraccedilatildeo agrave distribuiccedilatildeo Poreacutem o objetivo deste artigo eacute possibili-tar a instalaccedilatildeo em qualquer sis-tema Assim baixe o coacutedigo-fonte do pacote xrdp [2] descompacte-o e compile-o

$ tar zxvf xrdp-041targz$ cd xrdp-041$ make

Em seguida instale-o usando pri-vileacutegios de root

make install

Os arquivos executaacuteveis scripts e bibliotecas seratildeo instalados no diretoacuterio usrlocalxrdp e os arquivos de con-figuraccedilatildeo no diretoacuterio etcxrdp

A documentaccedilatildeo do aplicativo eacute um pouco obscura sobre o que fazer a seguir Embora tenhamos decidido no comeccedilo natildeo mudar nenhum dos paracircmetros nos arquivos sesmanini e xrdpini disponiacuteveis em etcxrdp e tenhamos abordado a situaccedilatildeo

CA

PA

Figura 2 Forneccedila seu usuaacuterio e sua senha do sistema Linux

Figura 1 Janela de conexatildeo com o desktop remoto

copy Linux New Media do Brasil Editora Ltda

41

| CAPAxrdp

como um administrador de sistemas Windows assumindo que as coisas iriam funcionar sem necessidade de muitos ajustes agrave configuraccedilatildeo nesse ponto essa abordagem comeccedila a se tornar frustrante

Uma vez com o sistema instala-do os seguintes comandos devem ser executados como root

cd usrlocalxrdp cp xrdp_controlsh etcinitdxrdp_control

Em seguida em distribuiccedilotildees derivadas do Red Hat os seguintes comandos se aplicam

chkconfig --add xrdp_control

chkconfig xrdp_control on service xrdp_control start

Jaacute em distribuiccedilotildees derivadas do De-bian esses satildeo os comandos

update-rcd xrdp_control defaults update-rcd xrdp_control start 80 3 4 stop 0 1 6 etcinitdxrdp_control start

O script xrdp_controlsh controla os serviccedilos de ativaccedilatildeo desativaccedilatildeo e reinicializaccedilatildeo do pro-grama Ao copiar o script para o diretoacuterio etcinitd pode-se retirar a ex-tensatildeo sh por motivos esteacuteticos ndash nenhum ou-tro script desse diretoacuterio possui essa extensatildeo em-bora todos sejam scripts de shell

Em sistemas baseados em FedoraRed Hat o comando chkconfig eacute um utilitaacuterio para atualizar e buscar informaccedilotildees sobre o niacutevel de execuccedilatildeo para serviccedilos de sistema ma-nipulando os vaacuterios links simboacutelicos em etcinitd para ali-viar um pouco os administradores de

sistema da tarefa tediosa de editar os links simboacuteli-cos e a necessi-dade de manipu-lar esses serviccedilos manualmente

Haacute pacotes para esse apli-cativo disponiacute-veis para outras distribuiccedilotildees como Debian e Ubuntu mas o correto eacute usar a ferramenta ade-quada para a sua distribuiccedilatildeo

Assim para criar um novo serviccedilo de inicializaccedilatildeo copie seu script de controle para etcinitd confor-me mostrado acima e entatildeo use o comando chkconfig para ativaacute-lo A linha chkconfig xrdp_control on de-fine os niacuteveis de execuccedilatildeo (runlevels) do serviccedilo (ver tabela 1) Por exemplo o comando chkconfig --level 35 xrdp_control configura o xrdp_con-trol para funcionar nos niacuteveis de execuccedilatildeo 3 e 5 O uacuteltimo comando na listagem acima inicia os serviccedilos sesman e xrdp

Para se conectar ao serviccedilo RDP no servidor Linux a partir de um PC com Windows basta fazer exatamente como se faria com um servidor Win-dows como mostra a figura 1

O cliente RDP abre uma nova janela conforme ilustrado na figura 2 solicitando o nome de usuaacuterio e a senha que satildeo aqueles configu-rados no servidor Linux Forneccedila um nome e uma senha vaacutelidos e clique em OK Mesmo que a maacute-quina Linux esteja configurada para usar um domiacutenio do serviccedilo Active Directory ainda seraacute preciso adicio-nar cada usuaacuterio aos sistemas Linux que se desejar acessar via RDP Para fazer isso crie primeiramente um grupo para todos os usuaacuterios do serviccedilo RDP

Tabela 1 Niacuteveis de execuccedilatildeo no Linux

0 Desligar

1 Modo monousuaacuterio

2 Multiusuaacuterio sem NFS

3 Multiusuaacuterio completo

4 Natildeo utilizada

5 X11 (graacutefico)

Detalhe haacute distribuiccedilotildees que utilizam o niacutevel 4 como ambiente graacutefico semelhante ao niacutevel 5

Figura 3 Registro do gerenciador de sessatildeo da conexatildeo xrdp

Figura 4 Uma conexatildeo com o desktop pronta para usar

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

42 httpwwwlinuxmagazinecombr

CAPA | xrdp

groupadd rdpusers useradd -g rdpusers fulano passwd fulano

Caso o usuaacuterio jaacute exista no sis-

tema use o comando usermod para adicionaacute-lo ao grupo de usuaacuterios do serviccedilo RDP

usemod -G rdpusers fulano

Embora natildeo seja explicitamente necessaacuterio para o acesso um grupo especial simplifi ca a administraccedilatildeo do sistema Forneccedila agora o nome do usuaacuterio criado e a sua senha e entatildeo clique em OK

A tela mostrada na figura 3 de-veraacute aparecer Essa eacute a janela de registro do gerenciador de sessotildees da conexatildeo que ilustra a negocia-ccedilatildeo entre o cliente e o servidor Perceba que o gerenciador de ses-sotildees conecta primeiramente agrave porta associada ao serviccedilo RDP e entatildeo agrave porta de um serviccedilo VNC para entatildeo apresentar o desktop Linux a vocecirc A figura 4 mostra um desktop CentOS 5

Quando desconectando de uma sessatildeo RDP em Linux vocecirc veraacute a tela mostrada na fi gura 5 Perceba que somente duas accedilotildees estatildeo dis-poniacuteveis Encerrar sessatildeo atual e Cancelar que satildeo recursos padratildeo de conexotildees VNC remotas

O servidor Linux executa os progra-mas xrdp e sesman e fi ca aguardando co-nexotildees RDP Assim que um cliente de serviccedilos de terminais Windows tenta se conectar ao servidor RDP o servidor e o cliente negociam um niacutevel de criptografi a trocam chaves e veri-fi cam quais recursos estatildeo disponiacuteveis A partir daiacute o cliente escolhe a quantidade de cores e a resoluccedilatildeo da tela que seraacute usada na sessatildeo

Se o usuaacuterio fornecer um nome e uma senha no aplicativo cliente a autenticaccedilatildeo eacute iniciada Caso con-traacuterio o usuaacuterio seleciona o moacutedu-lo de uma lista do tipo drop-down e fornece um usuaacuterio e uma senha na tela de login conforme ilustra a fi gura 6

O moacutedulo libvnc eacute carregado e uma conexatildeo TCP eacute feita para o endereccedilo 127001 ou para o en-dereccedilo IP especifi cado no arquivo etcxrdpxrdpini As credenciais de login do usuaacuterio a resoluccedilatildeo da tela e a quantidade de cores satildeo fornecidas ao aplicativo sesman para fi ns de autenticaccedilatildeo Se o sesman

encontrar uma sessatildeo ativa com a resoluccedilatildeo e a quantidade de cores especifi cadas ele retor-na essa tela ao usuaacute-rio Caso contraacuterio ele inicia uma nova instacircncia xvnc com as especifi caccedilotildees de am-biente do usuaacuterio

Conclusotildees O xrdp eacute faacutecil de ins-talar confi gurar cus-tomizar e usar E ndash o que eacute melhor ndash natildeo eacute

necessaacuterio experiecircncia em Linux para trabalhar com essa poderosa ferra-menta Como natildeo haacute o que instalar no cliente Windows natildeo daacute para se complicar com o xrdp

Muito embora este artigo natildeo mostre qualquer tipo de anaacutelise ex-tensiva de desempenho de rede ou uso de banda com esse aplicativo como se trata de RDP eacute sabido que a performance comeccedila a cair quando o nuacutemero de usuaacuterios simultacircneos conectados se aproxima da marca de 25 Contudo vale a pena conhe-cer o xrdp e integraacute-lo ao seu arse-nal de ferramentas independentes de plataforma

Sobre o autor Ken Hess eacute editor de material teacutecnico e jornalista freelance Ele escreve sobre uma grande variedade de temas envolvendo sistemas de coacutedigo aberto entre eles Li-nux bancos de dados e virtualizaccedilatildeo Agradecimentos especiais a Jay Sorg do projeto xrdp e a Matt Chapman do proje-to rdesktop pela ajuda no desenvolvimen-to deste artigo

Mais informaccedilotildees

[1] rdesktop httpwwwrdesktoporg

[2] xrdp httpxrdpsourceforgenet

Figura 5 Janela de fi nalizaccedilatildeo de sessatildeo do VNC

Figura 6 Tela de login do xrdp

copy Linux New Media do Brasil Editora Ltda

43

| CAPAxrdp

Linux Magazine 50 | Dezembro de 2008

SE

CcedilAtilde

O

pocket_atualizadoindd 61 261108 142709

copy Linux New Media do Brasil Editora Ltda

44 httpwwwlinuxmagazinecombr

A possibilidade de realizar uma certa tarefa num momento especiacutefico ou em intervalos

regulares eacute obrigatoacuteria para adminis-tradores de sistemas O cron daemon original oferece um meacutetodo faacutecil para agendar tarefas em sistemas baseados em Unix Embora o Cron tenha recebido diversas melhorias ao longo dos anos suas versotildees mais recentes ainda satildeo projetadas para agendamentos muito simples Administradores que precisam de algo minimamente incomum satildeo obrigados a criar scripts ou a incluir os recursos de que precisam em um dos scripts iniciados pelo Cron

Imagine quanto tempo seria eco-nomizado se natildeo fosse mais neces-saacuterio criar e alterar esses scripts ou ter qualquer outro trabalho para fazer com que os programas rea-jam a condiccedilotildees de erro e sejam executados na exata hora em que deveriam Vaacuterios produtos comer-

ciais oferecem esse recurso mas podem significar uma mordida no orccedilamento de TI Felizmente o mundo do Coacutedigo Aberto tambeacutem oferece soluccedilotildees de agendamento aleacutem do Cron

Assim como em qualquer software de agendamento a unidade primaacuteria eacute o job ou tarefa que geralmente eacute um script ou programa iniciado pelo software de agendamento Em vaacuterios casos o Cron eacute suficiente para suprir os requisitos mais baacutesicos de agen-damento tais como executar uma tarefa uma vez por dia (becapes por exemplo) ou tarefas que precisem ser executadas em intervalos mais frequumlentes menos frequumlentes ou em datas especiacuteficas

Poreacutem quando comeccedilamos a lidar com dependecircncias de algum tipo rapidamente eacute possiacutevel perceber as limitaccedilotildees do Cron ndash por exemplo se for necessaacuterio iniciar um progra-ma especiacutefico apoacutes um certo evento

Haacute casos de verdadeiras seacuteries de co-mandos que precisam ser executados em ordem e precisam todos ter su-cesso ndash se um dos comandos falhar a execuccedilatildeo dos seguintes causaria grandes problemas Nem as versotildees mais novas do Cron conseguem li-dar com isso principalmente se for necessaacuterio iniciar uma tarefa jaacute no meio da cadeia de comandos

Muitas tarefas precisam ser ge-renciadas em muacuteltiplas maacutequinas entatildeo um bom software de agen-damento permite que se gerencie todas as maacutequinas a partir de um ponto central inicie tarefas remo-tamente e assim por diante Para distribuir crontabs para essas maacutequi-nas remotas pode-se usar o Rsync mas isso rapidamente se torna um pesadelo administrativo quando a configuraccedilatildeo eacute diferente ao longo das maacutequinas ou quando as tare-fas agraves vezes precisam ser iniciadas manualmente ou ainda quando haacute

CA

PA

O agendador Open Source Job Scheduler

Muito aleacutem do CronPlanejar e agendar tarefas computacionais pode exigir muito trabalho principalmente se abranger muacuteltiplas maacutequinas Conheccedila uma ferramenta que facilita muito essa aacutereapor James Mohr

copy Linux New Media do Brasil Editora Ltda

45

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

outras tarefas que natildeo fazem parte do Cron

MultiplataformaApesar de ser possiacutevel instalar ver-sotildees abertas do Cron no Windows lidar com diferentes sistemas ope-racionais causa ainda mais proble-mas Por exemplo alguns dialetos de Unix natildeo suportam um arquivo etccrontab central entatildeo eacute preciso criar um arquivo para cada usuaacuterio O Cron era uma boa ferramenta nessa eacutepoca e geralmente ainda eacute mas as necessidades de muitas empresas jaacute superam suas funcionalidades

As limitaccedilotildees do Cron natildeo pas-saram despercebidas Haacute produtos comerciais que custam pequenas fortunas e costumam ser licenciados com base no nuacutemero de servidores ou de scripts a serem iniciados

Por sua vez os problemas dos pro-dutos comerciais tambeacutem natildeo passa-ram despercebidos pela comunida-de do Coacutedigo Aberto Uma soluccedilatildeo surpreendente eacute o Open Source Job Scheduler desenvolvido pela alematilde SOS (Software- und Organisations-Service) Haacute versotildees para Linux So-laris HP-UX (PA-RISC IA64) AIX e Windows Ele tambeacutem suporta vaacuterios bancos de dados incluindo DB2 Oracle MS SQL Server PostgreSQL e MySQL

O software adota um esquema de duplo licenciamento pela GPL e a Guaranteed License (Licenccedila Ga-rantida) Trata-se do mesmo coacutedigo com funcionalidades atualizaccedilotildees e coacutedigo-fonte idecircnticos

A receita da SOS natildeo proveacutem da venda de seu produto mas dos serviccedilos e do suporte Poreacutem estra-nhamente a empresa natildeo anuncia seu produto ndash nem seus serviccedilos ndash da forma tradicional Ao demonstrar o produto o objetivo natildeo eacute convencer clientes potenciais mas mostrar-lhes o que o produto pode fazer e deixar que eles decidam se ele supre suas necessidades

A versatildeo comercial tambeacutem oferece uma ldquopessoa responsaacutevelrdquo para cada chamado de serviccedilo com tempos de resposta garantidos e pedidos de re-cursos recebem maior prioridade de implementaccedilatildeo Aleacutem disso essa ver-satildeo natildeo possui as restriccedilotildees da GPL entatildeo pode ser embutida em outros aplicativos (comerciais ou natildeo) sem que este precise aderir agrave GPL

Diferente da maioria dos softwa-res comerciais e de coacutedigo aberto a SOS oferece garantia limitada de dois anos e um acordo de indeni-zaccedilatildeo Segundo seu diretor a em-presa se sente obrigada a fornecer ao cliente um retorno por seu pa-gamento e isso tambeacutem se estende a discrepacircncias entre o produto e a documentaccedilatildeo

EstruturaO componente central do pacote eacute o mecanismo de agendamento de tarefas que roda em cada uma das maacutequinas que as agendaratildeo Esse meacute-todo eacute diferente de executar a tarefa pode-se ter um agendador em cada

maacutequina com todos agindo como escravos de um central mas tam-beacutem eacute possiacutevel usar um agendador completo em cada uma delas Esse mecanismo pode ser expandido para permitir o balanceamento de carga por meio de muacuteltiplos servidores

Um aspecto importante a ser considerado eacute chamado de order (pedido) que consiste em um sinal passado entre tarefas Dependendo de suas configuraccedilotildees as tarefas natildeo tecircm permissatildeo de iniciar ateacute rece-berem seu pedido

Na forma mais simples pedidos satildeo como o bastatildeo numa corrida de revezamento entregues por cada tarefa para a seguinte Aleacutem disso eacute possiacutevel configurar pedidos com horas especiacuteficas de iniacutecio para que sejam gerados automaticamente pelo sistema no momento especificado e depois a cadeia respectiva possa se iniciar

Note que para conseguir reagir a um pedido uma tarefa precisa ser configurada para aceitaacute-lo mas o pedido soacute pode ser associado a uma

Figura 1 Janela do editor graacutefico do agendador de tarefas

copy Linux New Media do Brasil Editora Ltda

46 httpwwwlinuxmagazinecombr

CAPA | Agendamento

cadeia de tarefas e natildeo a uma ta-refa especiacutefica Ou seja o pedido eacute passado de tarefa para tarefa dentro da cadeia mas eacute associado somente agrave cadeia Se for desejaacutevel que uma uacutenica tarefa se inicie num momento especiacutefico por exemplo isso pode ser feito dentro da proacutepria tarefa Outro componente importante satildeo os Hot Folders (pastas quentes) que seatildeo di-retoacuterios monitorados pelo agendador em busca de alteraccedilotildees tais como a alteraccedilatildeo ou criaccedilatildeo de tarefas

TarefasTarefas podem ser configuradas a partir da interface graacutefica do editor do agendador (figura 1 chamado aqui de ldquoeditor de tarefasrdquo) ou por arqui-vos XML editados manualmente O editor de tarefas eacute um aplicativo em Java que configura vaacuterias tarefas ca-deias e outros aspectos do sistema Todas as informaccedilotildees de configura-

ccedilatildeo do sistema satildeo armazenadas em arquivos XML e basta abrir o arquivo XML respectivo no editor de tarefas para fazer alteraccedilotildees Poder usar o Vim em arquivos de configuraccedilatildeo eacute mais que uma becircnccedilatildeo em casos de alteraccedilotildees em massa

Os arquivos XML podem ser copiados para maacutequinas remotas e salvos via FTP diretamente a partir do editor de tarefas Quando ater-rissam num Hot Folder os arquivos ficam imediatamente disponiacuteveis para o mecanismo do agendador na maacutequina remota

A interface graacutefica do editor de tarefas natildeo eacute tatildeo intuitiva quanto poderia e vaacuterios campos parecem misteriosos a princiacutepio Como a documentaccedilatildeo deixa a desejar fal-tam explicaccedilotildees sobre muitos desses campos Em alguns casos a docu-mentaccedilatildeo dos arquivos XML ajuda a tirar as duacutevidas

Apesar de as informaccedilotildees de con-figuraccedilatildeo serem armazenadas em arquivos XML por padratildeo eacute pos-siacutevel configurar o agendador para usar diversos bancos de dados dife-rentes Essas tarefas satildeo chamadas de ldquogerenciadasrdquo e cada agendador instalado pode ser configurado para acessar as tarefas no banco de da-dos para natildeo ser necessaacuterio copiar os arquivos manualmente

A operaccedilatildeo cotidiana do siste-ma eacute realizada pela sua interface graacutefica (chamada neste artigo de ldquointerface de operaccedilatildeordquo) que eacute acessada por um navegador e per-mite o gerenciamento das tarefas a partir de qualquer maacutequina Com essa interface eacute possiacutevel natildeo apenas monitorar as tarefas mas tambeacutem iniciaacute-las paraacute-las tratar seus erros e muitas outras funccedilotildees

O agendador de tarefas tambeacutem oferece uma API que permite o ge-renciamento e o controle externos de tarefas A API suporta vaacuterias lin-guagens incluindo Perl VBScript JavaScript e Java Surpreendente-mente natildeo haacute suporte a PHP ape-sar da possibilidade de se gerenciar tarefas a partir de um navegador web e da documentaccedilatildeo de scripts PHP de exemplo

InstalaccedilatildeoOs exemplos deste artigo foram feitos com a versatildeo 134 para Li-nux que pode ser baixada do site do Job Scheduler no SourceForge [1] Se houver intenccedilatildeo de se usar um banco de dados MySQL como neste artigo note que o programa natildeo fornece um driver JDBC para esse banco embora haja drivers para Oracle e outros bancos O driver JDBC para MySQL pode ser baixado diretamente do site do MySQL [2] Basta digitar o caminho do arquivo jar apropriado durante a instalaccedilatildeo

Antes de comeccedilar eacute recomen-daacutevel ler o guia de instalaccedilatildeo em Figura 2 Digitaccedilatildeo do coacutedigo-fonte diretamente no editor de tarefas

copy Linux New Media do Brasil Editora Ltda

47

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

PDF incluiacutedo no pacote Aleacutem dis-so haacute vaacuterios outros PDFs no site da empresa [3] mais aprofundados em diversos toacutepicos Fique ciente ateacute para obter as informaccedilotildees mais baacutesicas na documentaccedilatildeo eacute preciso ser um tanto familiarizado com a programaccedilatildeo orientada a objetos e XML pois a documentaccedilatildeo natildeo fornece qualquer introduccedilatildeo a esses toacutepicos Aleacutem disso ela natildeo eacute bem organizada entatildeo saiba que seraacute preciso procurar bastante Apesar de ser volumosa a documentaccedilatildeo natildeo eacute faacutecil de usar o que eacute algo que a empresa pretente melhorar

No Linux a instalaccedilatildeo ocorre por meio de um instalador em Java e se for feita por um usuaacuterio nor-mal o padratildeo eacute os arquivos serem abrigados em $HOMEscheduler Se for instalado como root o diretoacuterio do programa eacute usrlocalschedu-ler Apoacutes instalar o produto haacute um arquivo README que recomenda que o programa natildeo seja instalado como root mas natildeo haacute menccedilatildeo a isso no guia de instalaccedilatildeo e con-figuraccedilatildeo Para evitar problemas potenciais vamos instalaacute-lo como usuaacuterio normal

Durante a instalaccedilatildeo satildeo pedidos o tipo do banco de dados e infor-maccedilotildees da conexatildeo Natildeo fica claro se o campo ldquodatabase parametersrdquo deve receber os paracircmetros de co-nexatildeo apoacutes o banco de dados estar em execuccedilatildeo ou os paracircmetros de conexatildeo para criaccedilatildeo do banco de dados Infelizmente recomenda-se criar um banco de dados e um usuaacuterio para o programa usar mas isso soacute eacute mencionado apoacutes todas as etapas de instalaccedilatildeo Criar o banco de dados manualmente e conferir privileacutegios do banco antes de iniciar a instalaccedilatildeo jaacute resolve

A instalaccedilatildeo eacute relativamente in-tuitiva mas leva alguns minutos para criar e preencher as tabelas do banco de dados Para instalar o Scheduler em muacuteltiplas maacutequinas com os mes-

mos paracircmetros haacute a opccedilatildeo de criar um script automaticamente ao final da primeira instalaccedilatildeo

IniciandoIndependentemente de a instala-ccedilatildeo ocorrer sob o root ou um usuaacute-rio normal eacute necessaacuterio iniciar o agendador manualmente Seu controle eacute feito como num script rc comum

$HOMEschedulerbinjobschedulersh start$HOMEschedulerbinjobschedulersh stop

Para iniciar o Scheduler auto-maticamente na inicializaccedilatildeo re-comenda-se criar um usuaacuterio espe-ciacutefico para ele e depois um script rc que use o comando su para se tornar esse usuaacuterio e iniciar o programa Se houver necessidade de tarefas serem executadas sob o root ou ou-tro usuaacuterio com mais privileacutegios eacute possiacutevel configurar um ambiente sudo apropriado

Novas tarefasPara criar tarefas pode-se ou edi-tar os arquivos XML diretamente ou pelo editor de tarefas No Li-nux execute o script jobeditorsh localizado por padratildeo em usrlo-calschedulerbin ou $HOMEsche-dulerbin

Como exemplo considere a ta-refa tiacutepica de criaccedilatildeo de um beca-pe da configuraccedilatildeo do sistema Por ora vamos supor que isso seja feito diariamente com o script usrbinbecapesh

Primeiramente inicie o editor de tarefas e selecione New | Hot Folder Element | Job (figura 1) No primei-ro formulaacuterio comece digitando as informaccedilotildees baacutesicas de sua tarefa Para este exemplo digite o nome Becape das configuraccedilotildees no campo Job Title adicione uma descriccedilatildeo ou deixe em branco

No painel esquerdo clique em Execute para digitar os detalhes sobre o programa ou script que se deseja iniciar Como o objetivo eacute executar um script externo selecione o botatildeo

Figura 3 Interface de operaccedilatildeo do Job Scheduler

copy Linux New Media do Brasil Editora Ltda

48 httpwwwlinuxmagazinecombr

CAPA | Agendamento

Run executable e digite o caminho completo do script referido Nesse ponto tambeacutem eacute possiacutevel definir masi paracircmetros a ser passados para o script Por exemplo se o becape comprimir os arquivos armazenados pode ser interessante acrescentar um -c a esse campo

Aleacutem disso pode-se incluir os passos individuais de execuccedilatildeo se-lecionando-se o botatildeo Script e o tipo de coacutedigo do programa depois digitando o coacutedigo-fonte na caixa apropriada Note que isso eacute mais que o nome de um script e pode incluir estruturas de programaccedilatildeo baseadas na linguagem seleciona-da (figura 2)

Para salvar a tarefa pressione o botatildeo Save ou escolha Save no menu File Na primeira vez em que o ar-quivo eacute salvo eacute preciso digitar um nome para ele Para isso navegue ateacute o diretoacuterio configlive e salve o arquivo como becape assim

a extensatildeo xml seraacute adicionada au-tomaticamente

Via navegadorComo o arquivo foi salvo no dire-toacuterio live ele fica imediatamente visiacutevel para o sistema Esse diretoacuterio eacute preacute-definido como um Hot Folder que o sistema lecirc regularmente Nesse ponto a tarefa natildeo foi agendada mas apenas adicionada ao sistema Para iniciar a tarefa eacute preciso executar a interface de operaccedilatildeo apontando seu navegador para httplocal-host4444

Em conexotildees pelo navegador o Scheduler exibe uma interface semelhante agrave da figura 3 Para ver os detalhes da tarefa decirc um duplo clique na tarefa de becape na colu-na agrave esquerda Para executar a tarefa imediatamente clique no botatildeo Job menu e selecione Start task now

Por ser muito faacutecil iniciar o script pela linha de comando isso natildeo eacute

nada espetacular Eacute possiacutevel voltar ao editor de tarefas e clicar na en-trada Run Time no painel esquerdo e selecionar uma hora para a exe-cuccedilatildeo da tarefa Para isso clique em Everyday (todos os dias) e de-fina um novo periacuteodo clicando no botatildeo new Period Em Start Time digite algo como 0900 no campo Single Start Depois clique no bo-tatildeo Save e essa nova configuraccedilatildeo seraacute ativada ndash a tarefa teraacute iniacutecio todos os dias agraves 9 horas

Ateacute agora a uacutenica vantagem do programa sobre o Cron eacute uma inter-face amigaacutevel ndash mas isso eacute apenas o comeccedilo Quando comeccedilamos a conhecer as cadeias de tarefas vemos o poder do agendamento de tarefas

BecapePrimeiro suponha que vocecirc tenha criado uma segunda tarefa que faccedila um becape do banco de dados que deve ser executada imediatamente apoacutes o fim do becape das configu-raccedilotildees Uma alternativa eacute criar um uacutenico script que faccedila primeiro o becape das configuraccedilotildees e imedia-tamente depois inicie o do banco de dados Poreacutem cadeias de tarefas satildeo uacuteteis em vaacuterias situaccedilotildees mais complexas em que natildeo eacute possiacutevel simplesmente lanccedilar matildeo de um script shell as quais seratildeo discutidas mais adiante

Assim como na primeira tarefa crie um novo elemento no Hot Folder mas selecione Job Chains Digite o nome da cadeia (Chain Name) e caso se deseje tambeacutem um tiacutetulo (Title) Como cada ele-mento de uma cadeia eacute chamado de noacute (Node) eacute preciso adicionar um New Chain Node a seguir clicando no botatildeo respectivo Caso o nome da tarefa seja conhecido pode-se digitaacute-lo manualmente ou usar o botatildeo Browse para procuraacute-la

No campo State eacute possiacutevel definir um estado para essa etapa ou noacute

Figura 4 As dependecircncias entre as tarefas podem ser exibidas com uso do Job Chain Illustration

copy Linux New Media do Brasil Editora Ltda

49

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

Definido estados eacute possiacutevel criar um fluxo mais complexo para as tarefas Por exemplo pode-se criar um esta-do chamado Erro e se alguma tarefa anterior apresentar um erro pula-se imediatamente para a tarefa definida com esse estado pulando todas as outras Aleacutem disso eacute possiacutevel exe-cutar diferentes tarefas de erro para cada uma das vaacuterias etapas

Mais cadeiasEmbora criar uma cadeia de tare-fas que consista em apenas uma uacutenica tarefa possua certas vanta-gens natildeo pare nesse ponto Como mencionado eacute melhor uma tarefa de becape constituiacuteda por duas etapas entatildeo vamos criar uma segunda cadeia com a tarefa de becape do banco de dados e con-figuraacute-la de forma semelhante agrave segunda tarefa Em nosso exem-plo definimos o primeiro noacute com o estado Iniacutecio e o segundo com o estado Fim embora isso natildeo seja necessaacuterio

Ao se clicar no botatildeo Save eacute mostrada a nova cadeia na aba Job Chains da interface de operaccedilatildeo Marcar a caixa Show Jobs exibe as tarefas individuais que compotildeem a cadeia Um duplo clique na ca-deia abre o painel de detalhes no lado direito como ocorreu com a tarefa uacutenica

Nesse ponto a cadeia de tarefas ainda natildeo seraacute executada porque precisa de um pedido que pode ser inserido manualmente no menu Job | Add Order Eacute mostrada uma nova janela que permite a definiccedilatildeo de vaacuterias caracteriacutesticas do pedido como ID horaacuterio de iniacutecio e ateacute estado da cadeia Neste exemplo apenas deixe tudo em branco e o sistema criaraacute sozinho uma ID de pedido

Se natildeo tiver sido definida uma condiccedilatildeo a cadeia inicia imedia-tamente poreacutem pode ser definida uma fatia de tempo (Time Slot) para qualquer uma dessas tarefas e

o Scheduler esperaria a hora certa para iniciar a tarefa

Note que as tarefas precisam ser capazes de aceitar pedidos para reagir a eles Esta etapa eacute feita na janela de configuraccedilatildeo para as ta-refas individuais Na janela Main Options haacute um botatildeo On Order que precisa ser definido como Yes caso contraacuterio o pedido natildeo ini-ciaraacute a tarefa

Ateacute aqui iniciamos tudo manu-almente Como precisamos definir um pedido para iniciar a cadeia de tarefas obviamente eacute necessaacuteria uma forma de criar pedidos dinami-camente Uma maneira seria criar um pedido numa hora especiacutefica o que por sua vez aciona a cadeia de tarefas Como se pode esperar isso eacute feito pelo menu New | Hot Folder Element | Order Apoacutes dar um nome ao pedido e selecionar a janela Job Chains selecione a cadeia especiacutefica a ser associada a esse pedido Note que um pe-dido soacute pode ser associado a uma uacutenica cadeia Depois defina um novo horaacuterio (Time Period) e um Single Start agraves 0900 Para ativar imediatamente as alteraccedilotildees eacute preciso armazenaacute-la no diretoacuterio configlive

Ao retornar agrave interface de opera-ccedilatildeo pode-se ver que agora haacute um pedido associado agrave cadeia criada Abaixo do pedido uma entrada next start (proacuteximo iniacutecio) mostra a data e hora em que o pedido iniciaraacute Como jaacute passou das 900 am neste exemplo a data eacute amanhatilde Se for usado outro horaacuterio de iniacutecio como o dia primeiro o proacuteximo iniacutecio se-ria nessa data

ControlePara definir o periacuteodo das tarefas cadeias e pedidos eacute possiacutevel esta-belecer um horaacuterio para o iniacutecio de uma tarefa assim como um in-tervalo entre execuccedilotildees (a cada 12 horas por exemplo) Essa segunda

opccedilatildeo natildeo eacute uacutetil no caso de cadeias em que as tarefas precisem seguir uma determinada ordem Poreacutem eacute possiacutevel definir um pedido que seja iniciado diariamente agraves 700 que por sua vez inicie uma cadeia

Haacute tambeacutem definiccedilotildees de tempo como ldquosegundo domingo de cada mecircsrdquo ldquouacuteltimo dia do mecircsrdquo ou ldquoso-mente 8janeiro e 16fevereirordquo

Horaacuterios e intervalos preacute-estabe-lecidos satildeo uacuteteis mas nem sempre eacute possiacutevel saber a priori quando uma tarefa precisaraacute ser realizada No caso daquelas que dependem da existecircncia ou inexistecircncia de algum arquivo eacute possiacutevel definir watch directories (diretoacuterios a ser observados) com regras que aceitam ateacute expressotildees regulares (figura 4)

Pedido proacuteprioDepois de superar as dificuldades iniciais nota-se que o Open Source Job Scheduler eacute um bom produto Com intimidade ele se torna faacutecil de configurar e administrar

A SOS tambeacutem presta um oacutetimo serviccedilo Identifiquei um bug e enviei um patch para um arquivo jar que foi disponibilizado por eles no ser-vidor em menos de um dia Ateacute em uma rede pequena o Open Source Job Scheduler oferece recursos muito uacuteteis Em instalaccedilotildees maiores ele eacute quase indispensaacutevel

Mais informaccedilotildees

[1] Open Source Job Scheduler httpjobschedulersourceforgenet

[2] Driver JDBC para MySQL httpwwwmysqlcomproductsconnector

[3] Software- und Organisations-Service GmbH httpwwwsos-berlincomscheduler

copy Linux New Media do Brasil Editora Ltda

50 httpwwwlinuxmagazinecombr

Faccedila belos graacuteficos via navegador com a API do Google Chart

Graacuteficos via webA API do Google Chart permite desenhar graacuteficos planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simplespor Martin Streicher

Se uma imagem vale mais que mil palavras um graacutefico deve ser algo semelhante a uma no-

vela Em apenas um piscar de olhos um graacutefico pode transmitir o estado do mercado de accedilotildees a tendecircncia de traacutefego em um website a distribui-ccedilatildeo dos eleitores por regiatildeo aleacutem de informar como a verba eacute distribuiacuteda em um orccedilamento familiar Aleacutem dis-so um graacutefico eacute simplesmente mais compreensiacutevel do que uma enorme tabela cheia de nuacutemeros

Poreacutem eacute estranho vermos que muito poucos sites utilizam graacuteficos em seu benefiacutecio Isso acontece em grande parte porque a criaccedilatildeo de graacuteficos requer um software espe-cializado Por exemplo se o site eacute baseado em PHP eacute preciso instalar o pChart [1] adicionar a biblioteca

graacutefica GD e escrever o coacutedigo para produzir algum tipo de graacutefico Ide-almente qualquer um ndash um editor escritor ou mesmo um usuaacuterio adi-cionando comentaacuterios ndash deve ser capaz de criar e embutir graacuteficos em suas paacuteginas

Na verdade o dinamismo a sim-plicidade e a conveniecircncia estatildeo no cerne da interface de programaccedilatildeo de aplicaccedilatildeo (API) Google Chart [2] e talvez essa seja a descriccedilatildeo mais pre-cisa para um Software como Serviccedilo (SaaS) Simplesmente crie uma URL parametrizada como httpchartapisgooglecomchartparacircmetro1ampparacircmetro2ampparacircmetroN e deixe o Google Chart fazer todo o trabalho pesado O Google Chart permite que vocecirc renderize seis tipos de graacuteficos um Google-o-meter um QR code (espeacutecie de coacutedigo de barras) e mapas Aleacutem disso eacute possiacutevel usar praticamente um gugol de opccedilotildees de personalizaccedilatildeo tais como a barra de cores a cor de fundo a legenda e muito mais

Este artigo ajuda nos primeiros passos no uso do Google Chart Vocecirc aprenderaacute a desenhar graacuteficos e adi-cionar efeitos especiais para melhorar suas criaccedilotildees graacuteficas

Elementos de graacuteficosPara gerar um graacutefico com o Google Chart forneccedila o prefixo httpchartapisgooglecomchart o tipo de graacute-

fico (tal como torta ou de linhas) o tamanho do graacutefico seus dados e quaisquer paracircmetros especiacuteficos como as cores e os roacutetulos dos eixos para adequaacute-lo ao resultado final

Todas as opccedilotildees do graacutefico satildeo associadas a pares de valores do tipo chave=valor Algumas chaves satildeo comuns para todos os graacuteficos en-quanto outras satildeo exclusivas para um determinado tipo Da mesma forma a sintaxe para o valor especificado no par tende a variar de acordo com o tipo de graacutefico

O tamanho do graacutefico eacute medido em pixels e especificado com o paracircmetro chs=LxA em que L eacute a largura e A eacute a altura Por exemplo chs=200x100 gera um graacutefico de 200 pixels de lar-gura por 100 pixels de altura A aacuterea de um mapa natildeo pode exceder 440 pixels de largura por 220 de altura Para todos os outros graacuteficos nem a largura nem a altura podem exceder 1000 pixels e a aacuterea maacutexima eacute de 300000 pixels quadrados

O tipo de graacutefico eacute escolhido com o par cht=tipo em que tipo eacute uma das diversas constantes preacute-de-finidas Por exemplo para desenhar um graacutefico de linhas simples com pontos equidistantes do eixo x es-pecifique cht=lc Para cada tipo de graacutefico pode-se consultar a constan-te apropriada na documentaccedilatildeo do Google Chart

TU

TO

RIA

L

Figura 1 Um graacutefico de linha simples produzido pela API do Google Chart

copy Linux New Media do Brasil Editora Ltda

51

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Os dados de um graacutefico podem ser fornecidos em vaacuterios formatos ndash a partir de uma lista de dados brutos simples ateacute uma coleccedilatildeo de coacutedigos alfanumeacutericos para mapear valores de uma escala preacute-definida

Normalmente o conjunto de da-dos brutos eacute constituiacutedo por uma lista de valores separados por viacutergulas e um conjunto de dados codificados eacute uma sequumlecircncia contiacutenua de caracte-res alfanumeacutericos Por exemplo para fornecer dados como texto simples utilize chd=tvalores em que valo-res eacute uma lista de valores de ponto flutuante positivos entre 0 e 100 de-limitados por viacutergula O caractere _ (traccedilo baixo) pode ser usado como um espaccedilo reservado para a falta de um dado Muacuteltiplos conjuntos de dados satildeo delimitados pelo caractere | (pipe ou barra vertical)

Para demonstrar abra um nave-gador e digite a URL httpchartapisgooglecomchartcht=lcampchs=500x400ampchd=t7392079|1515181101612ampchco=FF000000FF00 na barra de endereccedilos Como se pode adivinhar o paracircmetro chco lista os valores RGB para colorir cada gru-po de dados

A figura 1 mostra o exemplo de um graacutefi-co de linha incluindo seus elementos (eixos tiacutetulos e legendas) A URL utilizada para gerar o graacutefico eacute mostrada no exemplo 1 Cada URL mostrada nesse artigo abrange vaacuterias linhas de forma intencional para melhor legibilidade

De forma resumida chtt fornece o tiacutetulo do graacutefico Os dados satildeo fornecidos como valores brutos expres-sos em texto simples mas como os valores satildeo superiores a 100 chds fornece um valor

miacutenimo e um maacuteximo para norma-lizar os dados para um percentual Aqui como os dois conjuntos de dados estatildeo dentro do mes-mo intervalo bastam um valor miacutenimo e um maacuteximo para ambos No entanto se cada um dos conjuntos de dados for traccedilado a partir de uma uacutenica seacuterie eacute preciso fornecer um valor miacutenimo e maacuteximo para cada conjunto O paracircmetro chxt eacute combi-nado com o chxl e com o chxp para criar e posicionar os roacutetulos dos eixos

Acredite ou natildeo desenhar um graacutefico eacute realmente sim-ples Para inserir um graacutefico em um paacutegina web use uma tag img src e defina seu atri-buto src para a URL do graacute-fico Forneccedila uma descriccedilatildeo para o graacutefico por meio do atributo alt

CartografiaDesenhar um mapa com o serviccedilo Google Chart eacute tatildeo simples quanto desenhar qualquer outro graacutefico pri-

meiramente especifique o mape-amento do graacutefico selecione uma regiatildeo do mundo para desenhar e em seguida associe os dados a cada paiacutes proviacutencia ou estado encontrados no mapa Os dados podem ser discretos ndash digamos representar os estados azuis e ver-melhos nos Estados Unidos ndash ou contiacutenuos Aleacutem disso vocecirc pode associar uma cor com o miacutenimo e o maacuteximo em um intervalo e o Google Chart renderiza os valores intermediaacuterios em uma graduaccedilatildeo de cores (degradecirc)

Por exemplo o exemplo 2 gera um mapa dos Estados Unidos mostrando como os estados votaram na eleiccedilatildeo presidencial de 2004 A figura 2 apre-senta os resultados

No exemplo 2 cht=t seleciona o graacutefico de mapa chtm=usa especifica os Estados Unidos como regiatildeo e chs=440x220 desenha o maior mapa

Figura 2 Divisatildeo dos estados em vermelho (republicanos) e azuis (democratas) na eleiccedilatildeo presidencial dos Estados Unidos em 2004

Exemplo 1 Roubo de automoacuteveis na Carolina do Norte

01 httpchartapisgooglecomchart02 cht=lcamp03 chtt=Nuacutemero de automoacuteveis roubadosna NC por mecircs e anoamp04 chs=400x300amp05 chd=t223116582156231823432450258326122522268123262371|06 238119392309224225902642284028372555255824372319amp07 chds=03000amp08 chco=FF00000000FFamp09 chdl=2005|2006amp10 chxt=xyamp11 chxl=0|Jan|June|Dec|1|0|1500|30 00|amp12 chxp=0050100|1050100

Exemplo 2 Estados vermelhos e azuis

01 httpchartapisgooglecomchart02 cht=tamp03 chtm=usaamp04 chs=440x220amp05 chco=FF00000000FF0000FFamp06 chld=CACTDEDCHIILMEMDMAMIMNNHNJNYORPARIVTWAWIamp07 chd=sAAAAAAAAAAAAAAAAAAAA

copy Linux New Media do Brasil Editora Ltda

52 httpwwwlinuxmagazinecombr

TUTORIAL | Google Chart

possiacutevel No graacutefico de mapa chco=FF00000000FF0000FF define as cores padratildeo de cada estado (vermelho)

e a cor de iniacutecio e de final (ambas em azul) do gradiente

O paracircmetro chld conteacutem o coacute-digo de duas letras de cada um dos estados conquistados pelo candidato presidencial democrata Finalmente o paracircmetro chd=s seleciona o es-quema de codificaccedilatildeo simplificada de dados em que todos os valores devem ser representados por um dos caracteres na sequumlecircncia de A-Z a-z e 0-9 sendo A o miacutenimo e 9 o maacuteximo Em outras palavras o es-quema de codificaccedilatildeo simplificada fornece uma granularidade de 62 valores distintos Tendo em conta que todos os estados satildeo coloridos

em vermelho por padratildeo qualquer estado com outro valor ndash aqui A ndash eacute colorido de azul

Quadro 1 Dicas e truques do Google Chart

Essas dicas e truques tornaratildeo seus graacuteficos mais legiacuteveis

Certifique-se de que o tamanho de seu graacutefico eacute su-ficiente para exibir o tiacutetulo os roacutetulos e a legenda da imagem Infelizmente a determinaccedilatildeo da largura miacuteni-ma natildeo tem uma forma algoriacutetmica ndash pode ser preciso utilizar um pouco de tentativa e erro

Para alterar a cor e o tamanho do texto no tiacutetulo do graacute-fico use chts=colorfontsize Aleacutem disso eacute possiacutevel alterar a cor e o tamanho da fonte de um eixo com o roacutetulo chxs Infelizmente natildeo eacute possiacutevel especificar o tipo de fonte

Os quatro eixos satildeo x t y e r ou seja a forma resumi-da para delimitar o eixo inferior x o eixo superior x o eixo agrave esquerda y e o eixo agrave direita y respectivamente Se vocecirc quiser vaacuterios roacutetulos para qualquer eixo repita o nome do eixo no paracircmetro chxt e especifique seus detalhes no chxl

Leia a documentaccedilatildeo da API do Google Chart e dedi-que atenccedilatildeo especial agrave sintaxe de cada opccedilatildeo Mes-mo um erro de um caractere pode tornar um graacutefico ilegiacutevel Por exemplo o paracircmetro chd utiliza a barra vertical para separar cada conjunto de dados dife-rentemente de chds Infelizmente essa natildeo eacute a uacutenica inconsistecircncia na API do Google Chart (o clipping do graacutefico de barras eacute outro) portanto mantenha o manu-al por perto

Antigamente um graacutefico de barras com valores negati-vos e positivos requeria truques para renderizar corre-tamente Agora eacute possiacutevel usar o paracircmetro chp e uma porcentagem para colocar a linha zero a partir de uma distacircncia proporcional da origem sobre o eixo y Os va-lores devem entatildeo ser interpolados para serem rende-rizados adequadamente Por exemplo suponha que o fluxo de caixa da empresa seja (em milhotildees) de -20 -5 1 3 10 Para colocar a linha zero em 05 ou na

metade do caminho para cima do eixo y valores meno-res que 50 seratildeo desenhados ldquoabaixo da linhardquo e todos os valores acima de 100 seratildeo desenhados ldquoacima da linhardquo Para normalizar os dados adicione 50 a todos os valores e plote os novos valores

httpchartapisgooglecomchartcht=bvgampchs=400x400ampchbh=405ampchd=t3045515360ampchp=5ampchm=r00000004955

A figura 5 mostra o graacutefico final

O paracircmetro bvg eacute a constante para o graacutefico do tipo barra vertical e o chd expressa o conjunto de dados normalizado O paracircmetro chp coloca a linha zero a meio caminho acima do eixo y enquanto que o chm eacute uma opccedilatildeo para desenhar uma faixa de marca-ccedilatildeo no graacutefico Os seus paracircmetros satildeo (na ordem) r para um marcador horizontal 000000 para desenhar o marcador em preto 0 que eacute ignorado e 495 e 5 para expressar as margens inferior e superior da faixa de marcaccedilatildeo em termos de proporccedilatildeo sobre o eixo-y Isso porque a linha zero estaacute colocada a 05495 e 5 desenha uma linha bem fina em zero

O paracircmetro chbh especifica a largura de uma barra e o espaccedilo entre cada uma barra Diferentemente de outros tipos de graacuteficos se chbh for grande demais e chs for muito pequeno parte do graacutefico seraacute cor-tada Certifique-se de ajustar o tamanho de um ou todos esses paracircmetros quando estiver desenhando um graacutefico de barras

Exemplo 3 Informaccedilotildees num coacutedigo QR

01 httpchartapisgooglecomchart02 cht=qramp03 chs=200x200amp04 choe=UTF-8amp05 chld=Qamp06 chl=httpwwwlinuxnewmediacombrlmFigura 3 O endereccedilo do site da

revista capturado num coacutedigo QR

copy Linux New Media do Brasil Editora Ltda

53

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] pChart httppchartsourceforgenet

[2] Documentaccedilatildeo do Google Chart httpcodegooglecomapischart

[3] BeeTagg httpwwwbeetaggcom

[4] Zebra biblioteca livre do Google para leitura de coacutedigos de barra httpcodegooglecompzxing

[5] Guia para codificaccedilatildeo de dados em coacutedigos QR httpcodegooglecompzxingwikiBarcodeContents

[6] Gerador simples para o Google Chart httpalmaercomchartmaker

O Google Chart tambeacutem oferece graacuteficos para Aacutefrica Aacutesia Europa Oriente Meacutedio Ameacuterica do Sul e todo o globo

Coacutedigo de barrasNo Japatildeo moderno jovens compar-tilham informaccedilotildees de uma forma digital verdadeiramente inovado-ra eles trocam coacutedigos de barras E agora vocecirc tambeacutem pode O Google Chart fornece uma API para codificar ateacute 4296 caracteres em uma imagem bidimensional e monocromaacutetica chamado QR code ou coacutedigo QR

Para comeccedilar vamos codificar o email da Linux Magazine em um QR code O exemplo 3 mos-tra como a imagem na figura 3 foi criada Ao usar o graacutefico QR choe especifica a codificaccedilatildeo do texto O paracircmetro chld dita o grau de correccedilotildees de erros aplicado agrave ima-gem O valor Q inclui informaccedilotildees duplicadas o suficiente a ponto de 25 da imagem poder ser destruiacuteda sem afetar a legibilidade O paracirc-metro chl eacute o texto a ser codificado geralmente fornecido como uma URL que eacute entatildeo interpretada por um aplicativo

Se vocecirc tem um telefone celu-lar pode baixar gratuitamente o BeeTagg [3] tirar uma fotografia da figura 3 e decodificar os resul-tados para entrar no site da revista

Como uma alternativa o Google oferece gratuitamente uma biblio-teca gratuita para leitura de coacutedigos QR chamada Zebra Crossing [4][5] e um leitor de coacutedigos de barras online experimental que interpreta as imagens recebidas

Um coacutedigo QR pode capturar ateacute 4296 caracteres A figura 4 por exemplo codifica um vCard (cartatildeo de visitas) inteiro

Como vai o coraccedilatildeoA API do Google Chart eacute simples de usar e faacutecil de integrar em apli-caccedilotildees web Conforme mostrado eacute possiacutevel usar a API imediatamente ndash basta inse-rir um link estaacutetico em sua paacutegina web e permitir que o navegador efetue a requisiccedilatildeo e a renderiza-ccedilatildeo de um graacutefico a cada vez que a paacutegina eacute desenhada

Para acelerar a renderizaccedilatildeo da paacutegina vocecirc pode solicitar e efetuar o cache da imagem do graacutefico em seu proacuteprio servidor recriando o graacutefico apenas quando os dados contidos nele forem alterados Aleacutem de proporcionar melhor eficiecircn-cia essa teacutecnica protege melhor os dados brutos Um visitante do site natildeo poderaacute ldquover os fontesrdquo e copiar a URL

Naturalmente tambeacutem eacute pos-siacutevel misturar a API do Google Chart com teacutecnicas AJAX para mo-dificar os graacuteficos dinamicamente em resposta agrave requisiccedilatildeo do usuaacute-rio O Chart Maker [6] eacute uma de-monstraccedilatildeo baacutesica mas efetiva da dinacircmica de graacuteficos outros tecircm usado a API do Google Chart para implementar uma calculadora de empreacutestimos executiva

Naturalmente o Google Chart costuma ser mais lento que as ferra-mentas para geraccedilatildeo de graacuteficos no desktop como o Apple Numbers ou mesmo o Microsoft Excel Estas uti-lizam mecanismos de renderizaccedilatildeo nativos e natildeo requerem consultas

agrave Internet para transmitir dados e baixar um grande graacutefico na forma de uma imagem No entanto o Google Chart eacute um aplicativo gra-tuito que estaacute disponiacutevel em qual-quer lugar Se vocecirc estaacute realmente interessado em utilizar o Google Chart em ambiente de produccedilatildeo o uso de cache pode melhorar o tempo de resposta

Figura 4 Um vCard inteiro represen-tado como coacutedigo QR

Figura 5 Renderizaccedilatildeo de valores positivos e negativos num graacutefico de barras

copy Linux New Media do Brasil Editora Ltda

54 httpwwwlinuxmagazinecombr

Alta disponibilidade em PostgreSQL

Banco cheio mas disponiacutevel

O PostgreSQL natildeo possui embutido um mecanismo para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia por Fernando Ike

O tema alta disponibilida-de abordado na ediccedilatildeo 43 da Linux Magazine [1] eacute

abrangente e envolve vaacuterias aacutereas desenvolvedores administradores de sistemas rede e banco de dados

Geralmente alta disponibilidade em bancos de dados eacute um objetivo mais complexo e criacutetico do que se costuma acreditar Natildeo eacute simples-mente pensar que uma soluccedilatildeo como Oracle RAC garantiraacute disponibili-dade de 100 do banco de dados Para aumentar a disponibilidade eacute necessaacuterio analisar uma seacuterie de variaacuteveis entre elas Se o datacenter tem grupo ge-

rador de energia eleacutetrica Se haacute conexatildeo agrave Internet por

mais de dois links Servidores com fontes redun-

dantes discos etc Circuitos eleacutetricos e rede redun-

dantes Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias de banco de dados Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias dela mesma Se a modelagem permite ins-

tacircncias de banco de dados fi si-camente distantes

Quanto se pode investir Tais variaacuteveis dependem do pro-

jeto em questatildeo ou seja variam de

TU

TO

RIA

L

projeto para projeto Em geral a grande difi culdade para banco de dados eacute o sincronismo das bases de dados entre vaacuterios servidores jaacute que haacute a necessidade de garantir a con-sistecircncia entre eles Aplicaccedilotildees que usam banco de dados para operaccedilotildees somente leitura (como aplicaccedilotildees web por exemplo) tecircm facilidade de trabalhar com vaacuterios servidores de banco de dados usando balan-ceamento de carga Entretanto o mesmo natildeo acontece quando uma aplicaccedilatildeo tem operaccedilotildees de leitu-ra e escrita pois natildeo existe uma soluccedilatildeo defi nitiva uma vez que depende de como a aplicaccedilatildeo foi projetada Uma alternativa seria modelar a aplicaccedilatildeo para acessar um servidor de banco de dados para operaccedilotildees de leituraescrita e os outros servidores para operaccedilotildees de leitura

Para PostgreSQL essa tarefa eacute um pouco mais difiacutecil ndash mas natildeo impossiacutevel ndash pois ofi cialmente exis-tem poucas formas de aumentar sua disponibilidade sem que se use ex-tensotildees ou aplicaccedilotildees de terceiros Existe uma discussatildeo [2] dentro do PostgreSQL Global Development Group para incorporar recursos de replicaccedilatildeo MasterSlave na versatildeo 84 (atualmente em desenvolvimento) e posteriores

PostgreSQL hoje Vejamos o que eacute possiacutevel fazer com o PostgreSQL sem ferramentas de terceiros

Warm Standby usando PITR ( Point-In-Time Recovery ) um servidor pri-maacuterio envia para um ou mais servido-res secundaacuterios os arquivos do WAL ( Write Ahead Log ) que contecircm as modifi caccedilotildees nas bases de dados do servidor primaacuterio Tais arquivos quan-do enviados seratildeo processados pelos servidores secundaacuterios Esse meacutetodo para o PostgreSQL natildeo permite por enquanto que os servidores secundaacute-rios sejam usados para leitura Esses servidores natildeo estaratildeo disponiacuteveis para nenhuma operaccedilatildeo ateacute que haja uma falha no servidor primaacuterio

Em caso de falha no servidor pri-maacuterio falhando a transmissatildeo dos uacuteltimos arquivos do WAL para os servidores secundaacuterios estes perde-ratildeo as uacuteltimas alteraccedilotildees realizadas no servidor primaacuterio Essa perda eacute pequena se comparada agraves estrateacutegias de recuperaccedilatildeo mais comuns para estes tipos de incidentes as quais satildeo becape completo da uacuteltima noite ou recuperaccedilatildeo utilizando os arquivos do WAL A comparaccedilatildeo eacute de alguns segundos usando Warm Standby e de alguns minutos ou horas com recuperaccedilatildeo de becape ou por arquivos do WAL

copy Linux New Media do Brasil Editora Ltda

55

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Compartilhamento de disco usando a mesma aacuterea num equipa-mento remoto (como storage) os servidores poderatildeo ter a aacuterea mon-tada nele mas somente o servidor primaacuterio ou ativo poderaacute ter o serviccedilo do PostgreSQL em execuccedilatildeo O ser-vidor secundaacuterio soacute deve entrar em accedilatildeo em caso de falha do primaacuterio caso contraacuterio haacute o risco de corrom-pimento das bases de dados

Neste meacutetodo numa eventual fa-lha do servidor ativo eacute praticamen-te nula a perda de dados jaacute que as bases de dados estatildeo em um stora-ge Geralmente usa-se NFS como forma de acesso ao storage Uma recomendaccedilatildeo importante ao usar NFS eacute montaacute-lo usando a opccedilatildeo sync (siacutencrono) desabilitar o cache e jamais usar a opccedilatildeo async (assiacuten-crono) jaacute que ela poderaacute corromper as bases de dados do PostgreSQL O recomendaacutevel para esse meacutetodo eacute o uso de SAN (iSCSI AoE etc) em vez de NAS (SMB NFS etc) uma vez que a arquitetura SAN eacute projetada para situaccedilotildees de grande volumes de dados e menor tempo de recuperaccedilatildeo em caso de incidente comparado com NAS

Replicaccedilatildeo por dispositivo de blo-co uma variaccedilatildeo do compartilhamento de disco Quando usado esse recurso o dispositivo de bloco eacute a unidade de replicaccedilatildeo Assim como nos outros meacute-todos natildeo pode haver dois servidores PostgreSQL em execuccedilatildeo ao mesmo tempo O DRBD eacute um software muito popular para essa fi nalidade

Terceiros Existe a possibilidade de se usar ex-tensotildees ou aplicaccedilotildees de terceiros para aumentar a disponibilidade do PostgreSQL em tarefas como repli-caccedilatildeo mestre-escravo middleware de replicaccedilatildeo orientado a sentenccedila e replicaccedilatildeo multimaster assiacutencrona ou siacutencrona

Replicaccedilatildeo mestre-escravo esse meacutetodo envia todas as consultas de

modifi caccedilotildees das bases de dados para o servidor mestre Este envia as mo-difi caccedilotildees que nele ocorreram para o servidor escravo Essas modifi caccedilotildees ocorrem por lote e de forma assiacutencro-na permitindo que se tenha muacuteltiplos servidores escravos O servidor escravo pode responder somente consultas de leitura as quais satildeo ideais para consultas do tipo data warehouse O Slony-1 eacute um exemplo desse tipo de replicaccedilatildeo com granularidade de ta-bela e suporte a muacuteltiplos servidores escravos Em caso de falha no servidor mestre poderaacute haver perda de dados que ainda natildeo foram replicados para o servidor secundaacuterio

Middleware de replicaccedilatildeo orien-tado a sentenccedila programa que intercepta cada consulta SQL e a envia para um ou todos os servido-res Cada servidor opera indepen-dentemente Consultas de leitura e escrita satildeo enviadas para todos os servidores enquanto as consultas somente-leitura podem ser enviadas para qualquer um dos servidores permitindo que o trabalho de leitura seja distribuiacutedo

Se as consultas forem simplesmen-te transmitidas sem modifi caccedilotildees alguns valores especiacutefi cos de cada servidor (como a funccedilatildeo random() e os valores de TIMESTAMP ) teratildeo va-lores diferentes nos servidores Isso ocorre porque cada servidor opera de forma independente e porque as consultas SQL satildeo realizadas em broadcast (e natildeo atuando na modifi caccedilatildeo das colunas) Se isso for inaceitaacutevel o middleware ou aplicaccedilatildeo deve consultar tais valo-res a partir de um servidor e depois usaacute-los para escrever as consultas Exemplos desse tipo de replicaccedilatildeo satildeo o pgpool-II e Sequoia

Replicaccedilatildeo Multimaster Assiacutencro-na para os servidores que natildeo estatildeo regularmente ligados como laptops e servidores remotos manter os da-dos consistentes entre os servidores eacute um desafi o Usando replicaccedilatildeo assiacutencrona multimaster cada servi-dor trabalha com independecircncia e periodicamente se comunica com os outros servidores a fi m de identifi car transaccedilotildees confl itantes Os confl itos podem ser resolvidos pelos usuaacuterios

Figura 1 Soluccedilatildeo de alta disponibilidade do banco de dados proposta

copy Linux New Media do Brasil Editora Ltda

56 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

ou por meio de regras Bucardo eacute um exemplo desse tipo de replicaccedilatildeo

Replicaccedilatildeo multimaster siacutencro-na em replicaccedilatildeo multimaster siacuten-crona cada servidor pode aceitar conexotildees com transaccedilotildees de escrita (como INSERT UPDATE e DELETE) Tais transaccedilotildees satildeo transmitidas a partir do servidor de origem para todos os outros servidores antes de efetivar a transaccedilatildeo Em situaccedilotildees com mui-tas transaccedilotildees isso poderaacute causar bloqueio dos registros degradando consideravelmente a performance Neste tipo de replicaccedilatildeo as transa-ccedilotildees com escrita geralmente satildeo mais lentas do que as feitas em um servi-dor uacutenico Aleacutem de dividir a carga de transaccedilotildees para leitura e escrita como na replicaccedilatildeo mestre-escravo a replicaccedilatildeo multimaster siacutencrona eacute muito usada para balanceamento de carga em alguns casos podendo ha-ver problemas de consistecircncia ao se usar funccedilotildees como random()

Soluccedilatildeo simplesUma soluccedilatildeo muito comum e ba-rata para alta disponibilidade em PostgreSQL eacute o uso de um dispositivo de storage comunicando-se com os

servidores PostgreSQL via NFS (fi-gura 1) A soluccedilatildeo consiste em dois servidores PostgreSQL e Heartbeat Um deles seraacute o primaacuterio e o outro o secundaacuterio O secundaacuterio aguarda-raacute algum problema com o servidor primaacuterio e caso ocorra iniciaraacute o serviccedilo do PostgreSQL assumindo o endereccedilo de rede (VIP) usado para comunicaccedilatildeo com a aplicaccedilatildeo

Essa soluccedilatildeo natildeo foi planejada para que o servidor primaacuterio assuma o controle novamente do ambiente caso retorne a operar pois eacute reco-mendaacutevel verificar a razatildeo do inci-dente corrigir e retornar a operaccedilatildeo ao ambiente num periacuteodo de pouco uso do banco de dados

Haacute alguns pontos importantes nessa soluccedilatildeo Sempre que ocorrer uma atualizaccedilatildeo de seguranccedila no PostgreSQL eacute recomendaacutevel apli-caacute-la a todos os servidores pois natildeo se deve executar uma versatildeo dife-rente do binaacuterio em cada maacutequina Aleacutem disso nesse tipo de soluccedilatildeo de alta disponibilidade natildeo eacute pos-siacutevel haver dois servidores com o serviccedilo PostgreSQL em execuccedilatildeo A disponibilidade eacute garantida pelo armazenamento dos dados no stora-

ge sem necessidade de mecanismos de replicaccedilatildeo de dados externos Por uacuteltimo poliacuteticas de backup devem continuar sendo usadas sem altera-ccedilotildees Caso aconteccedila algum incidente que indisponibilize os dados haveraacute formas de recuperaacute-los

ImplementaccedilatildeoO procedimento de instalaccedilatildeo seraacute dividido por servidores a primeira parte consiste na instalaccedilatildeo do servi-dor primaacuterio e a segunda parte trata do servidor secundaacuterio considerando que um ponto de montagem foi dis-ponibilizado previamente em ambos os servidores em varlibpostgre-sqlstorage

Depois de instalar o pacote do PostgreSQL 83 (versatildeo estaacutevel mais recente) do Debian 50 (Lenny) o di-retoacuterio padratildeo da instalaccedilatildeo do cluster de base de dados[3] eacute o local em que estaacute uma instacircncia do PostgreSQL com seu cataacutelogo de sistema Esse diretoacuterio seraacute movido para o storage usando uma particcedilatildeo NFS montada no servidor o que exige uma parada no serviccedilo do PostgreSQL

Parado o serviccedilo do PostgreSQL mova o diretoacuterio com o cluster de base de dados armazenado local-mente para o diretoacuterio NFS remo-to Depois disso eacute necessaacuterio ainda criar um link simboacutelico para que o serviccedilo inicie corretamente

mv varlibpostgresql83 varlibpostgresqlstorage ln -s varlibpostgresqlstorage83 varlibpostgresql83

Feito isso reinicie o PostgreSQL e crie um arquivo com ajustes de per-formance do PostgreSQL chamado tuningsh em usrlocalsbin (exemplo 1) Esse arquivo conteraacute ajustes de paracirc-metros do kernel Linux para o Postgre-SQL aproveitar melhor os recursos de hardware Seria possiacutevel usar o arquivo etcsysctlconf mas ele natildeo oferece

Exemplo 1 Arquivo tuningsh

01 binbash0203 echo ldquo2rdquo gt procsysvmovercommit_memory0405 kernelshmmax = 447177599906 25 do total da RAM07 echo ldquo17179869184rdquo gt procsyskernelshmmax08 kernelshmmax = 429496729609 echo ldquo17179869184rdquo gt procsyskernelshmall10 echo ldquo300 32500 150 160rdquo gt procsyskernelsem11 echo ldquo65536rdquo gt procsysfsfile-max12 echo ldquodeadlinerdquo gt sysblocksdaqueuescheduler13 echo ldquo16777216rdquo gt procsysnetcorermem_default14 echo ldquo16777216rdquo gt procsysnetcorewmem_default15 echo ldquo16777216rdquo gt procsysnetcorermem_max16 echo ldquo16777216rdquo gt procsysnetcorewmem_max

copy Linux New Media do Brasil Editora Ltda

57

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

a possibilidade de alterar tambeacutem o sistema de arquivos sysfs

Entre os paracircmetros a serem mo-dificados shmmax geralmente deveraacute ser de 25 a 50 do total da memoacute-ria RAM dependendo do tipo de aplicaccedilatildeo e modelagem de dados Nesse caso usamos usamos 50 (16 GB) (linha 7)

Torne o script executaacutevel e crie um link simboacutelico para que ele seja carregado na inicializaccedilatildeo

chmod 0755 usrlocalsbintuningsh ln -s usrlocasbintuningsh etcrcSdS99tuningsh

Em seguida execute-o para efetivar as alteraccedilotildees dos paracircmetros do sis-tema operacional

Ajuste do PostgreSQLCom o sistema operacional pronto eacute hora de ajustar o banco de dados Para isso comece editando o arqui-vo postgresqlconf de acordo com as determinaccedilotildees listen_adresses um asterisco

permite que o PostgreSQL escu-te conexotildees vindas de qualquer rede Ainda eacute necessaacuterio alterar o arquivo pg_hbaconf para que essa alteraccedilatildeo tenha efeito

max_connections nuacutemero total de conexatildeo simultacircneas aceitas pelo PostgreSQL

shared_buffers 20 a 25 do total da memoacuteria RAM

wal_write_delay 500 milisse-gundos

commit_delay 100 checkpoint_segments 128 checkpoint_timeout 30 min checkpoint_completion_

target 07

Exemplo 2 Arquivo postgresqlconf

data_directory = lsquovarlibpostgresql83mainrsquo usar dados em outro diretoacuteriohba_file = lsquoetcpostgresql83mainpg_hbaconfrsquo arquivo de autenticaccedilatildeo por maacutequina (host-based authentication)ident_file = lsquoetcpostgresql83mainpg_identconfrsquo arquivo de configuraccedilatildeo de identexternal_pid_file = lsquovarrunpostgresql83-mainpidrsquo gravar um arquivo extra com o PIDlisten_addresses = lsquorsquo IP(s) para escutarport = 5432 porta (necessaacuterio reiniciar)max_connections = 1000 (necessaacuterio reiniciar)unix_socket_directory = lsquovarrunpostgresqlrsquo (necessaacuterio reiniciar)ssl = false (necessaacuterio reiniciar)shared_buffers = 12GB miacutenimo=128 kB maacuteximo=max_connections16kBmax_fsm_pages = 204800 miacutenimo=max_fsm_relations16 6 bytes cadafsync = on (des)ativa sincronizaccedilatildeo forccediladawal_sync_method = open_sync o padratildeo eacute a primeira opccedilatildeofull_page_writes = on recuperar-se de gravaccedilotildees de paacutegina parciaiswal_writer_delay = 500ms 1-10000 milissegundoscommit_delay = 100 0-100000 em microssegundoscheckpoint_segments = 128 em segmentos de logfile miacutenimo=1 16MB cadacheckpoint_timeout = 30min 30s-1hcheckpoint_completion_target = 07 duraccedilatildeo do alvo do checkpoint 00 - 10effective_cache_size = 48GBdatestyle = lsquoiso dmyrsquolc_messages = lsquopt_BRUTF-8rsquo locale para mensagens de erro do sistemalc_monetary = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo monetaacuterialc_numeric = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo numeacutericalc_time = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo de tempodefault_text_search_config = lsquopg_catalogportuguesersquo

Exemplo 3 Arquivo pg_hbaconf

local all postgres md5local all all md5host all all 12700132 md5host all all 1128 md5host intportal portal 192168103032 md5

copy Linux New Media do Brasil Editora Ltda

58 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

effective_cache_size 75 da memoacuteria RAM

Poreacutem tenha em mente que conforme a base de dados cresce esses e outros paracircmetros do ar-quivo de configuraccedilatildeo precisaratildeo ser alterados

O exemplo 2 mostra o conteuacutedo do arquivo postgresqlconf apoacutes sua ediccedilatildeo

No arquivo pg_hbaconf altere as poliacuteticas de acesso conforme a poliacutetica da instituiccedilatildeo ativando ou desativando a criptografia definindo quais redes podem acessar o banco etc No exemplo 3 o arquivo permite que o usuaacuterio portal acesse a base de dados intportal com o endereccedilo de rede 192168103032 usando cripto-grafia MD5

Para efetivar as al-teraccedilotildees reinicie o PostgreSQL

HeartbeatO hearbeat eacute tido por muitos como si-nocircnimo de alta dis-ponibilidade mas eacute apenas um meio para esse fim e a soluccedilatildeo para alta disponibi-lidade de bancos de dados PostgreSQL proposta neste artigo o utiliza

Apoacutes instalar o pa-cote do heartbeat na distribuiccedilatildeo usada no servidor adicione ao arquivo etchosts os nomes e IPs dos ser-vidores primaacuterio e se-cundaacuterio No exem-plo deste artigo esses valores satildeo

1921681010 pgprimario1921681011 pgsecundario

O arquivo de con-figuraccedilatildeo do heart-beat pode se localizar em etchad ou em etcheartbeat O exemplo 4 mostra o conteuacutedo do arquivo hacf que deve resi-dir no diretoacuterio usa-do pela distribuiccedilatildeo

em questatildeo cujas opccedilotildees tecircm os seguintes efeitos logfacility executar o heart-

beat como serviccedilo logfile local onde seraacute gravado

o registro de atividades do heart-beat

keepalive intervalo de tempo de comunicaccedilatildeo entre os noacutes

deadtime intervalo de tempo para que heartbeat reconheccedila um noacute como morto

bcast forma de comunicaccedilatildeo en-tre os servidores hearbeat neste caso com uma placa exclusiva para comunicaccedilatildeo (eth1)

ping checa se o IP virtual estaacute no ar

auto_failback caso o servi-dor primaacuterio saia do ar quan-do voltar ele natildeo tentaraacute assu-mir como servidor principal no cluster

respawn hacluster usrlibheart-beatipfail serviccedilo do heartbeat para trocar o IP Virtual em caso de falha no noacute principal

Ainda no diretoacuterio de configu-raccedilatildeo do heartbeat crie o arquivo haresources Eacute nesse arquivo que o heartbeat procuraraacute os serviccedilos que precisam ser executados no cluster Tais serviccedilos satildeo scripts que podem ou natildeo ter paracircmetros e estatildeo loca-lizados em etchadresourced Acrescente ao arquivo haresources o seguinte conteuacutedo

pgprimario IPaddr192168105pgprimario PostgreSQL

O paracircmetro IPaddr adiciona o en-dereccedilo de rede virtual (VIP) ao clus-ter e PostgreSQL controla o Postgre-SQL no heartbeat Esse script natildeo eacute distribuiacutedo oficialmente e pode ser personalizado conforme a necessida-de do ambiente

Crie tambeacutem o arquivo authkeys para abrigar a senha (criptografada com SHA1) necessaacuteria agrave comunica-

Exemplo 5 Script PostgreSQL do heartbeat

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 case $1 in07 start)08 etcinitdpostgresql-83 start09 sleep 210 check_pgsqlsh amp11 exit 012 13 14 stop)15 etcinitdpostgresql-83 stop16 kill $(ps a|grep check_pgsql|awk lsquo print $1 rsquo|head -n 1)17 exit 018 19 )20 21 esac

Exemplo 4 Arquivo hacf

logfacility daemonlogfile varloghalognode pgprimario pgsecundariokeepalive 2deadtime 10bcast eth1ping 192168105auto_failback offrespawn hacluster usrlibheartbeatipfail

copy Linux New Media do Brasil Editora Ltda

59

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

ccedilatildeo entre os noacutes do heartbeat Para criar a senha use algo como

echo ldquosuasenhardquo | sha1sum2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53 -

Adicione esse hash ao arquivo authkeys da seguinte forma

auth 11 sha1 2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53

Em seguida altere as permis-sotildees do arquivo para 600 para que somente o usuaacuterio root possa ler e escrever nele

No diretoacuterio etchadresourced ficam os scripts de interaccedilatildeo dos ser-viccedilos do heartbeat Crie nele o script PostgreSQL referenciado no arquivo haresources que criamos antes com o conteuacutedo mostrado no exemplo 5 Esse arquivo tambeacutem precisaraacute ter suas permissotildees alteradas mas dessa vez para permitir que ele seja executado Portanto recomenda-se usar 755 como permissotildees

Crie tambeacutem um script (usrlo-calsbincheck_pgsqlsh) para verificar se o PostgreSQL continua no ar de acordo com o exemplo 6 Esses satildeo os significados das variaacuteveis HOST endereccedilo de rede do ser-

vidor USER usuaacuterio do PostgreSQL DB banco de dados a ser usado TEST tipo de consulta que serviraacute

como teste REPEAT nuacutemero de repeticcedilotildees do

teste ateacute considerar o servidor como inativo

OTHER endereccedilo de rede do ser-vidor secundaacuterio

Apoacutes tornar esse script executaacutevel eacute necessaacuterio novamente reiniciar o PostgreSQL e o proacuteprio heartbeat Com isso fica concluiacuteda a confi-guraccedilatildeo do servidor PostgreSQL primaacuterio

Servidor secundaacuterioPara o servidor secundaacuterio seratildeo repe-tidos os mesmos passos da instalaccedilatildeo e configuraccedilatildeo do servidor primaacuterio

poreacutem com certas diferenccedilasDepois de instalar o pacote do

PostgreSQL 83 pare o serviccedilo deste e apague o diretoacuterio varlibpostgre-

Exemplo 6 Script check_pgsqlsh no servidor primaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101008 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101114 15 check()16 17 while true18 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull19 if [ $ -eq 0 ]20 then21 break22 do23 sleep 224 25 if [ $COUNTER -eq $REPEAT ]26 then27 etcinitdpostgresql-83 stop28 etcinitdheartbeat stop29 else30 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull31 if [ $ -eq 0 ]32 then33 COUNTER=rdquo1rdquo34 else35 let COUNTER=$COUNTER+136 fi37 fi38 39 done40 fi41 42 43 check

copy Linux New Media do Brasil Editora Ltda

60 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

Exemplo 7 Script check_pgsqlsh no servidor secundaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101108 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101014 15 16 check()17 18 while true19 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull20 if [ $ -eq 0 ]21 then22 break23 do24 sleep 225 26 if [ $COUNTER -eq $REPEAT ]27 then28 etcinitdpostgresql-83 stop29 etcinitdheartbeat stop30 else31 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull32 if [ $ -eq 0 ]33 then34 COUNTER=rdquo1rdquo35 else36 let COUNTER=$COUNTER+137 fi38 fi39 40 done41 fi42 43 44 check

sql83 pois ele usaraacute quando ativo o mesmo cluster de base de dados do servidor primaacuterio que estaacute arma-

zenado no storage Esse passo eacute o primeiro em que os procedimentos dos dois servidores diferem

Com o diretoacuterio apagado eacute ne-cessaacuterio criar um link simboacutelico para que o serviccedilo inicie correta-

mente quando for solicitado pelo heartbeat

ln -s varlibpostgresqlstorage83 varlibpostgresql83

Assim como no servidor primaacuterio crie um arquivo tuningsh com ajustes de per-formance para o PostgreSQL em usrlocalsbin Como os servidores tecircm hardwares semelhantes usaremos os mesmos ajustes de perfor-mance (exemplo 1) Apoacutes salvar o script crie um link simboacutelico para que ele seja carregado ao iniciar os servi-ccedilos do servidor

ln -s usrlocalsbintuningsh etcrcSdS99tuningsh

Execute o script receacutem-criado para efetivar as mo-dificaccedilotildees dos paracircmetros do sistema operacional

Diferentemente do servi-dor primaacuterio natildeo seratildeo neces-saacuterias alteraccedilotildees aos arquivos postgresqlconf e pg_hbaconf pois os arquivos usados seratildeo os mesmos

Assim como no servidor primaacuterio instale o heartbeat e acrescente as seguintes linhas ao arquivo etchosts

1921681011 pgprimario1921681010 pgsecundario

Note que os IPs satildeo inver-tidos com relaccedilatildeo ao con-teuacutedo do arquivo no servidor primaacuterio

Em seguida crie o arquivo de configuraccedilatildeo etchad

copy Linux New Media do Brasil Editora Ltda

61

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] Linux Magazine 43 httplnmcombrissuelm_43_alta_disponibilidade

[2] Discussatildeo no PGDG sobre replicaccedilatildeo httparchivespostgresqlorgpgsql-hackers2008-05msg00913php

[3] Criaccedilatildeo de clusters PostgreSQL httpwwwpostgresqlorgdocs83interactivecreating-clusterhtml

hacf de acordo com o exemplo 4 e etchadharesources com conteuacutedo igual ao do servidor primaacuterio

pgprimario IPaddr192168105pgprimario PostgreSQL

Todos os procedimentos com o arquivo etchadauthkeys tambeacutem devem ser repetidos assim como os do script etchadresourcedPostgreSQL (exemplo 5) O script diferente entre os servidores primaacute-rio e secundaacuterio eacute o check_pgsqlsh em usrlocalsbin (exemplo 7) pois os valores das variaacuteveis HOST e OTHER devem ter seus valores troca-dos entre si

Ao final no entanto o mesmo procedimento do servidor primaacuterio eacute necessaacuterio permitir a execuccedilatildeo dos scripts criados e reiniciar o Postgre-SQL e o heartbeat

ConsideraccedilotildeesAs atualizaccedilotildees de seguranccedila deveratildeo ser realizadas em ambos os servido-res com diferentes procedimentos para cada No servidor que estiver ativo no cluster deve-se atualizar conforme a liberaccedilatildeo de novas ver-sotildees do pacote do PostgreSQL e os procedimentos de atualizaccedilatildeo da distribuiccedilatildeo em uso Eacute recomendaacute-vel para ambos os servidores fazer a atualizaccedilatildeo em um horaacuterio de pou-co uso ou numa parada programada para manutenccedilatildeo

As atualizaccedilotildees de seguranccedila no servidor secundaacuterio precisam de atenccedilatildeo pois distribuiccedilotildees baseadas em Debian reiniciam o serviccedilo do PostgreSQL Nesse caso esse rei-niacutecio pode afetar o funcionamento do servidor primaacuterio Para contornar esse problema podemos alterar a permissatildeo do arquivo etcinitdpostgresql-83 antes de atualizar o pacote do PostgreSQL

chmod 000 etcinitdpostgresql-83

Depois de atualizar o pacote basta retornar o pacote agraves permis-sotildees anteriores (e corretas para a operaccedilatildeo)

chmod 755 etcinitdpostgresql-83

O quadro 1 oferece ajuda caso ocorra algum problema com o storage durante a operaccedilatildeo do cluster

ConclusatildeoUma soluccedilatildeo de alta disponibilidade como essa natildeo elimina a necessidade de uma poliacutetica de becape e proce-dimentos de melhora contiacutenua de performance O becape pode ser res-taurado a partir de qualquer maacutequina na soluccedilatildeo de alta disponibilidade desde que elas estejam com o serviccedilo do PostgreSQL em execuccedilatildeo Novos procedimentos de becape podem ser adotados como armazenamento dos logs diaacuterios como complemento da poliacutetica existente

O aumento da disponibilidade do banco de dados natildeo significa aban-donar as poliacuteticas de contingecircncia e becape Tambeacutem eacute necessaacuterio plane-jar o aumento da disponibilidade de todo o ambiente (aplicaccedilatildeo e banco de dados) Natildeo desconsidere o uso de storages com iSCSI ou fibra oacutetica para melhor performance

Quadro 1 Problemas no storage

Em caso de problemas no storage o melhor eacute recriar o cluster de banco de dados com o comando initdb e restaurar seu conteuacutedo a partir do becape Dependendo do incidente pode-se optar por criar o cluster localmente ou em outro storage Caso seja local eacute possiacutevel criar um cluster provisoacuterio ateacute que o storage volte a ficar disponiacutevel para o servidor

O comando para isso eacute

pg_createcluster -u postgres -d varlibpostgresqlprovisorio --start-conf=auto 83 provisorio

e suas opccedilotildees satildeo

-u usuaacuterio que seraacute usado pelo cluster

-d diretoacuterio onde ficaraacute o cluster

--start-conf= opccedilatildeo para acrescentar a etcinitdpostgresq-83 o iniacutecio do cluster que estaacute sendo acrescentado

83 versatildeo instalada do PostgreSQL

provisorio identificaccedilatildeo do novo cluster

copy Linux New Media do Brasil Editora Ltda

62 httpwwwlinuxmagazinecombr

Integraccedilatildeo de dados com o ETL Talend

O talento do Talend Quem procura uma soluccedilatildeo ETL para Business Intelligence natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda por Miguel Koren OrsquoBrien de Lacy

Um dos componentes essen-ciais de uma soluccedilatildeo para a inteligecircncia de negoacutecios (BI

ndash Business Intelligence ) eacute o moacutedulo de integraccedilatildeo de informaccedilotildees de di-versas fontes de dados Felizmente o mercado de Software Livre e de coacutedigo aberto oferece algumas so-luccedilotildees bastante completas que satildeo usadas dentro dos pacotes de BI ou em modo stand alone As soluccedilotildees de integraccedilatildeo de dados satildeo conheci-das como ETL ( Extract Transform Load ) pois a missatildeo dessas soluccedilotildees eacute integrar informaccedilotildees e preparaacute-las para a formaccedilatildeo de tabelas no data mart Normalmente os dados precisam ser manipulados depois de obtidos e logo inseridos nas tabelas dos bancos de dados em que reside o data mart Ou seja estamos falando em obter os dados aplicar regras de negoacutecios da empresa facilitar as consultas pos-teriores ou validar a qualidade dos dados e entregaacute-los transformados ao destino fi nal Dentre as transfor-maccedilotildees normalmente aplicadas aos dados podemos destacar a seleccedilatildeo de campos importantes para a anaacutelise a fi ltragem dos registros necessaacuterios a limpeza dos dados (ldquoSrrdquo ou ldquoSe-nhorrdquo passam a valer ldquoSrdquo) a geraccedilatildeo dos campos calculados (por exemplo ldquovalor nf = quantidade valor unitaacute-riordquo) etc Mas essas soluccedilotildees tambeacutem podem ser consideradas integradores e manipuladores de dados para outras

necessidades podendo substituir mui-tos sistemas de ldquointerfacesrdquo de dados que satildeo desenvolvidos pelas aacutereas de TI de grandes empresas

Originalmente os sistemas cor-porativos foram desenvolvidos de forma isolada para cumprir alguma funccedilatildeo especiacutefi ca natildeo sendo parte do objetivo de projeto a necessidade de compartilhar dados Quando a quan-tidade desses sistemas comeccedilou a ser mais importante dentro das empresas surgiram as primeiras necessidades de integraccedilatildeo de dados como a carga de pedidos aos sistemas de estoque e fatu-ramento Tais necessidades de integra-ccedilatildeo foram implementadas diretamente por programas ou scripts especiacutefi cos Com a crescente complexidade das integraccedilotildees requeridas iniciou-se um encarecimento do desenvolvimento desses processos Os sistemas tinham manutenccedilatildeo complexa e as loacutegicas de integraccedilatildeo difiacuteceis de documentar auditar e entender Por isso as em-presas comeccedilaram a implementar ferramentas prontas ou semi-pron-tas para essa necessidade Essa foi a origem dos sistemas ETL

Esses sistemas poreacutem natildeo pos-suem a popularidade que merecem em razatildeo de certos fatores que impe-dem sua adoccedilatildeo Entre estes fatores devemos destacar Custo inicial Complexidade no uso com curva de

aprendizado muito empinada

Escalabilidade a necessidades de integraccedilotildees pequenas

A empresa Talend eacute fabricante

do Talend Open Studio [1] apre-sentado como ldquoo sistema ETL mais abrangente no mercado de software livre e coacutedigo abertordquo O modelo de negoacutecios da empresa eacute um dos claacutes-sicos para Software Livre A empresa desenvolve um produto que licencia sem custo usando licenciamento em modalidade livre no caso a GPL [2] e oferece serviccedilos e suporte co-merciais O software licenciado sob a GPL natildeo possui todos os compo-nentes que satildeo oferecidos a clientes sob o licenciamento de subscriccedilatildeo do serviccedilo mas mesmo dessa forma eacute extremamente uacutetil para as neces-sidades ETL de qualquer empresa O Talend Open Studio foi liberado no mercado em 2005 pela empresa Talend com bases na Franccedila paiacutes com uma poliacutetica ofi cial de apoio a Software Livre e Coacutedigo Aberto Analistas de TI como Forrester Rese-arch [3] IDC [4] e Bloor Research [5] posicionam o Talend como o melhor sistema para necessidades de integraccedilatildeo de dados O sistema BI em software livre SpagoBI [6] [7] eacute um exemplo de uso do Talend como seu componente ETL padronizado

O modelo de Software Livre eacute bem apropriado para esse tipo de soluccedilatildeo pois faz bom uso de desen-

AN

AacuteLIS

E

AN

AacuteLIS

E

copy Linux New Media do Brasil Editora Ltda

63

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

volvimento colaborativo em que muitas pessoas contribuem com moacutedulos para conexotildees a fontes de dados variadas Mas o sucesso do Talend tambeacutem mostra que o Software Livre natildeo eacute apenas bem sucedido em soluccedilotildees ldquocomoditiza-dasrdquo como sistemas operacionais e utilitaacuterios de infra-estrutura O Talend mostra que uma soluccedilatildeo livre pode ser muito atrativa num mercado novo em formaccedilatildeo com-petindo com sistemas proprietaacuterios de grandes empresas como IBM SAS e SAP as quais tecircm preccedilos de licenciamento de niacutevel corporativo Empresas como Oracle e Microsoft tambeacutem competem nesse mercado poreacutem com uma visatildeo mais restrita focada nos produtos de base de cada uma banco de dados Oracle e SQL Server respectivamente

Um forte apelo do Talend eacute a disponibilidade de uma ferramenta abrangente em que os proacuteprios usuaacute-rios da informaccedilatildeo podem modelar as regras de negoacutecios (fontes de dados campos requeridos regras de trans-formaccedilatildeo etc) para a integraccedilatildeo dos dados Hoje a aacuterea de TI de qualquer

empresa tem diariamente mais e mais dados e os usuaacuterios tecircm necessida-des de visualizaccedilatildeo que satildeo mais urgentes a cada dia Assim eacute muito uacutetil que os proacute-prios usuaacuterios possam usar o sistema de for-ma natildeo teacutecnica para especificar as regras de integraccedilatildeo

Recurso e TecnologiaO Talend eacute um sistema desenvolvi-do em Java que usa uma arquitetura modular formada por Gerenciador graacutefico de negoacutecios

(visatildeo natildeo teacutecnica de necessida-des de fluxo de dados)

Gerenciador graacutefico de proces-sos ETL

Gerenciador de metadados (repositoacuterio para reutilizaccedilatildeo de objetos)

Repositoacuterio de processos (moacutedulo adicional da versatildeo comercial)

Interface web services a proces-sos ETL

Monitor de processos Componentes modulares (atu-

almente mais de 400) Usando a API do sistema podem ser desenvolvidos componentes personalizados

O gerenciador graacutefico de processos ETL roda dentro do ambiente Eclipse [8][9] seguindo a filosofia de inte-graccedilatildeo de ferramentas dentro desse ambiente para desenvolvimento

Normalmente os primeiros trecircs moacutedulos satildeo usados na ordem listada O gerenciador de negoacutecios eacute usado pelos usuaacuterios do sistema enquanto o gerenciador de processos ETL e o gerenciador de metadados satildeo usados pelos programadores Mesmo que o repositoacuterio de projetos ETL com apoio a equipes de trabalho seja um componente oferecido comer-cialmente o Talend Open Studio inclui a possibilidade de versio-

namento do desenvolvimento dos processos A figura 1 mostra o uso desse recurso

O Talend eacute um sistema ldquogera-dor de coacutedigordquo em oposiccedilatildeo a um sistema de ldquocaixa pretardquo ndash a qual eacute responsaacutevel pela execuccedilatildeo dos pro-cessos ETL ndash ou seja o Talend natildeo requer um servidor de execuccedilatildeo de processos ETL A vantagem da gera-ccedilatildeo de coacutedigo eacute que eacute mais simples integrar os processos ETL dentro de outros aplicativos e os modelos satildeo de portabilidade muito mais flexiacutevel Aleacutem de sistemas como SpagoBI o

Figura 1 Gerenciamento de versotildees

Figura 2 Tela de iniacutecio do Talend

copy Linux New Media do Brasil Editora Ltda

64 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

Talend eacute integrado em sistemas de empresas como Ingres Teradata e JasperSoft O mecanismo de geraccedilatildeo de coacutedigo permite a integraccedilatildeo do coacutedigo gerado pelo Talend dentro de outras soluccedilotildees aleacutem de ter maior portabilidade Outra vantagem de mecanismos de geraccedilatildeo de coacutedigo eacute que mecanismos de integraccedilatildeo ldquoonlinerdquo conhecidos hoje como ldquointegraccedilatildeo operacionalrdquo podem ser implementados com maior fa-cilidade O conceito de geraccedilatildeo de coacutedigo versus ldquocaixa pretardquo de exe-cuccedilatildeo dos processos ETL eacute a maior diferenccedila entre o Talend e muitos outros sistemas O conceito de ge-raccedilatildeo de coacutedigo natildeo foi popular no passado possivelmente por causa do marketing das empresas comerciais destas soluccedilotildees mas as vantagens que o Talend apresenta usando este conceito satildeo importantes

No caso o Talend gera coacutedigo Java ou Perl e SQL para os proces-sos ETL Aleacutem de aplicar o conceito ETL ele aplica tambeacutem o conceito ELT (Extract Load Transform) o que significa que pode aproveitar a eficiecircncia e performance nativas de bancos de dados SQL ou seja os dados satildeo extraiacutedos carregados no destino e somente depois jaacute den-tro do banco de destino eacute aplicada a loacutegica de transformaccedilatildeo usando SQL e linguagem procedural de

cada banco de dados Para a funcio-nalidade ELT satildeo suportados nati-vamente hoje os bancos de dados Oracle MySQL e Teradata

OperaccedilatildeoO sistema estaacute disponiacutevel em versotildees para Linux Unix e Windows Para todas as plataformas eacute necessaacuterio ter Java e Perl no equipamento considerando seu conceito de de-senho que eacute de geraccedilatildeo de coacutedigo ou seja que os processos do Talend satildeo executados pela maacutequina vir-tual Java (JVM) ou pelo interpre-tador Perl

O download do sistema ainda eacute relativamente pesado (235 MB) mas com conexotildees de banda larga cada dia mais confiaacuteveis e raacutepidas pode ser feito em poucas horas Neste artigo exploraremos o Ta-lend Open Studio para Linux em ambiente graacutefico Gnome rodando em OpenSUSE 102 No caso de usaacute-lo em Windows 2000 existe um preacute-requisito adicional que eacute a instalaccedilatildeo do GDI requerido pelo Eclipse [10] A partir do Windows XP essa biblioteca estaacute incluiacuteda nativamente Vale a pena fazer o download tambeacutem do pacote com-pleto de documentaccedilatildeo Referente ao produto e agrave documentaccedilatildeo o Talend apresenta as vantagens de suporte por uma empresa comercial pois a documentaccedilatildeo eacute bastante comple-ta Outro destaque importante do Talend eacute o acesso a um sistema de ajuda online muito completo In-felizmente isso ainda natildeo eacute norma na maioria dos sistemas de coacutedigo aberto O site do Talend oferece um wiki e uma aacuterea de tutoriais

Simplesmente descompacte o pacote obtido por download e atri-bua propriedades de executaacutevel ao binaacuterio de iniacutecio do sistemaFigura 4 Geraccedilatildeo de um novo projeto

Figura 3 Definiccedilatildeo de repositoacuterio local inicial

copy Linux New Media do Brasil Editora Ltda

65

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

chmod a+x TalendOpenStudio-linux-gtk-x86

Selecione o binaacuterio de iniacutecio apropriado para sua arquitetura de CPU Para iniciar o gerenciador de processos execute o binaacuterio

TalendOpenStudio-linux-gtk-x86 amp

Isso exibiraacute a tela de abertura do sistema (figura 2)

Leia e aceite o contrato de licen-ciamento Apareceraacute finalmente a tela de conexatildeo ao repositoacuterio de processos ETL (figura 3) No caso do Talend Open Studio o repositoacuterio somente poderaacute ser local

Com o repositoacuterio local defini-do gere um projeto novo selecio-nando Create a new local project (figura 4)

Ao definir o tiacutetulo e a descriccedilatildeo do projeto deve-se selecionar tambeacutem a linguagem de geraccedilatildeo do coacutedigo No exemplo para o artigo escolhemos coacutedigo em Java A figura 5 mostra as opccedilotildees de definiccedilatildeo do projeto

Finalmente jaacute se pode entrar no projeto escolhido pela tela principal bastando selecionar nela o projeto e pressionar o botatildeo open Apoacutes alguns momentos apareceraacute a tela principal do sistema Na primeira vez seraacute pedido ao usuaacuterio que re-

gistre o uso digitando seu email e selecionando o paiacutes Este passo natildeo eacute obrigatoacuterio mas eacute recomendado para receber notificaccedilotildees de novas versotildees do sistema

Antes de usar o Talend Open Stu-dio deve ser configurada a lista de elementos disponiacuteveis para o dese-nho Isso pode ser feito modifican-do-se as propriedades do projeto na

opccedilatildeo de ldquopalette settingsrdquo A figura 6 mostra a inclusatildeo de conectores para MS SQL Server e PostgreSQL que devem ser selecionados no caso de precisarmos desenhar um processo de integraccedilatildeo de dados entre estes dois bancos de dados

O desenho de um processo ETL requer vaacuterias etapas incluindo de-senho dos componentes de negoacute-cios dos jobs de processamento de conexotildees JDBC acoplamento de moacutedulos de processamento e outros elementos A figura 7 mostra um exemplo de configuraccedilatildeo de cone-xatildeo JDBC ao banco Microsoft SQL Server O driver JDBC utilizado vem junto com a instalaccedilatildeo do Talend no caso o excelente JTDS [11] A figura 8 mostra a tela do Talend Open Studio com a visatildeo da paleta de fer-ramentas componentes tratados e a ediccedilatildeo de um elemento de negoacutecios (business object)

Aleacutem das possibilidades de desen-volvimento loacutegico da soluccedilatildeo dentro do ambiente graacutefico o Talend oferece

Figura 5 Detalhes de um novo projeto ETL

Figura 6 Formaccedilatildeo da lista de ferramentas

copy Linux New Media do Brasil Editora Ltda

66 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

ferramentas para preparar diagramas formatados para necessidades de documentaccedilatildeo e apresentaccedilatildeo Por exemplo podem ser escolhidas as fontes as cores e os estilos de linhas para os objetos do diagrama aleacutem de haver a possibilidade de alinhamen-to numa grade e a opccedilatildeo de layout automaacutetico dos componentes

Entre as caracteriacutesticas que mais flexibilidade oferecem ao Talend estaacute a biblioteca de componentes Esses componentes estatildeo divididos em grupos funcionais em que os de maior utilidade para uso corporativo podem ser os componentes prepa-rados para acesso a outros sistemas tais como SugarCRM Salesforce e SAP O Talend apresenta um des-taque no mercado ao oferecer um conector ao SAP A figura 9 mostra alguns componentes do Forge do sistema que podem ser baixados e instalados para aumentar a funcio-nalidade padratildeo do Talend

Um destaque do mecanismo de componentes do Talend eacute a possibili-dade de publicar os processos automa-ticamente por exemplo no servidor de BI SpagoBI Outro componente de uso geral e que incrementa em

muito a complexi-dade de processos que podem ser de-finidos eacute o executor de scripts em Groo-vy Aleacutem de poder desenvolver com-ponentes especiacutefi-cos a possibilidade de gerar scripts em Groovy para trata-mento avanccedilado dos dados permite que as transforma-ccedilotildees sigam regras muito especiais da empresa A figura 10 mostra a definiccedilatildeo de integraccedilatildeo com o SpagoBI

Vale a pena des-tacar algumas ca-

racteriacutesticas conceituais do editor graacutefico que satildeo importantes para uso corporativo do Talend Os desenhos satildeo versionados

com a data de cada versatildeo Cada objeto dos modelos re-

cebe um estado que pode ser ldquonatildeo verificadordquo ldquoverificadordquo ou ldquovalidadordquo por default no caso

dos business objects Entretan-to podem ser definidos outros estados usados na empresa

Existe uma aacuterea em cada proje-to para reunir a documentaccedilatildeo que pode conter objetivos justi-ficativas exemplos de resultados desejados etc O Talend tambeacutem gera documentaccedilatildeo teacutecnica e de processo automaticamente

Separaccedilatildeo de papeacuteis entre usuaacute-rios de negoacutecios que descrevem suas necessidades a niacutevel macro (definindo business objects) e desenvolvedores (definindo jobs e outros elementos)

Notificaccedilatildeo ou atualizaccedilatildeo au-tomaacutetica do sistema quando disponibilizadas novas versotildees Talend ou dos componentes

Facilidade para execuccedilatildeo de testes individuais e integrados de componentes

Importaccedilatildeo e exportaccedilatildeo de pro-jetos completos ou elementos

O Talend eacute um sistema muito completo com o apoio de uma empresa comercial um ecossiste-ma de componentes muito amplo e com um ambiente de definiccedilatildeo

Figura 7 Definiccedilatildeo de conexatildeo JDBC

Figura 8 Tela do Talend Open Studio

copy Linux New Media do Brasil Editora Ltda

67

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

e desenvolvimento faacutecil de usar aleacutem de poderoso e visualmente atraente Assim o projeto pode re-solver a questatildeo relatada no iniacutecio do artigo sobre os motivos da falta de popularizaccedilatildeo de sistemas ETL no mercado

ConclusatildeoHoje qualquer empresa tem ne-cessidades de ETL e integraccedilatildeo de dados e em muitos casos eacute caro e complexo desenvolver soluccedilotildees caseiras especiacuteficas O Talend apre-senta uma soluccedilatildeo flexiacutevel com a qual estes processos podem ser

modelados e executados de forma confiaacutevel Podem ser definidos e documentados com a participaccedilatildeo dos usuaacuterios que satildeo os principais interessados no resultado final Naturalmente esse tipo de divisatildeo de atividades ou responsabilidades requer que todos os usuaacuterios in-dependentemente do papel que desempenham no sistema sejam devidamente treinados Em TI eacute cada vez mais comum haver situ-accedilotildees em que os sistemas satildeo sim-ples e poderosos para usar mas os usuaacuterios devem ser treinados nos princiacutepios da tecnologia apresen-

tada Quem usa o Talend deveraacute estar ciente da documentaccedilatildeo em inglecircs ou em francecircs aleacutem do uso do sistema em inglecircs

O uso do Talend dentro de uma empresa eacute facilitado pelas caracte-riacutesticas corporativas do sistema que permitem entre outras possibilida-des ter alta produtividade e visibi-lidade dos processos pelo apoio a componentes especiacuteficos tais como conectores SAP Salesforce ou cus-tomizados e geraccedilatildeo de documen-taccedilatildeo Provavelmente seraacute difiacutecil encontrar um caso de uso que natildeo possa ser atendido com comodidade pelo Talend

Mais informaccedilotildees

[1] Talend httpwwwtalendcom

[2] GPL versatildeo 2 httpwwwgnuorglicensesold-licensesgpl-20html

[3] Forrester Research httpwwwforrestercom

[4] IDC httpwwwidccom

[5] Bloor Research httpwwwbloor-researchcom

[6] SpagoBI httpspagobiengit

[7] Miguel KO de Lacy ldquoNegoacutecio inteligenterdquo httpwwwlnmcombrarticle1747

[8] Eclipse httpwwweclipseorg

[9] Linux Magazine 36 ndash Eclipse httpwwwlnmcombrissue1353

[10] GDI httpwwweclipseorgswtfaqphpnographicslibrary

[11] JTDS httpjtdssourceforgenet

Figura 9 Forge de componentes mostrando aqueles especiacuteficos de algum sistema

Figura 10 Integraccedilatildeo com o SpagoBI Server

copy Linux New Media do Brasil Editora Ltda

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

68 httpwwwlinuxmagazinecombr

Gerenciamento de identidade na web com o Open ID

Identidade aberta mas segura

O OpenID oferece um padratildeo aberto para login em websites fechadospor Nils Magnus

A Web 20 eacute uma boa coisa como todo mundo imagina Um problema eacute a multiplici-

dade de sites protegidos por senha para acesso Blogs pessoais comu-nidades virtuais do Xing ao Orkut e Facebook e sites que gerenciam fluxo de trabalho despesas plane-jamento de feacuterias frequumlentemente confiam em aplicaccedilotildees baseadas na web com o uso de contas de usuaacuterio privadas Esse excesso de senhas de login estaacute fazendo com que alguns usuaacuterios descontentes percam a pa-ciecircncia Enquanto os usuaacuterios usam um dispositivo fiacutesico uacutenico e local ferramentas como os gerenciadores de senhas oferecidos pela maioria dos navegadores e alternativas como o KDE Wallet satildeo de grande ajuda

Mas o paradigma da Web 20 su-potildee que o usuaacuterio tem a liberdade de se mover e efetuar login de dife-rentes locais

Opccedilatildeo da comunidadeSoluccedilotildees para o gerenciamento de identidades fornecem uma soluccedilatildeo de maior mobilidade e flexibilida-de para simplificar o login via web Essas ferramentas muitas vezes empregam o princiacutepio da idonei-dade com terceiros Alguns grandes

players globais tecircm avanccedilado com serviccedilos que oferecem soluccedilotildees de login confiaacuteveis desenvolvidas por terceiros de uma uacutenica fonte O sis-tema Microsoft Passport foi criado em sintonia com esse sentimento Hoje o mercado do Microsoft Passport eacute o ldquoWindows Live IDrdquo [1] Muitos usuaacuterios no entanto estatildeo receo-sos de se tornarem dependentes de aplicativos proprietaacuterios

Uma recente alternativa conhe-cida como Liberty Alliance Project [2] ofereceu uma abordagem mais aberta mas foi amplamente consi-derada como um exagero de especi-ficaccedilotildees e por isso ainda natildeo obteve grande adoccedilatildeo apesar de seus sete anos de esforccedilo O projeto OpenID sob os auspiacutecios da OpenID Foun-dation [3] se baseia na mais simples funcionalidade podendo ser mais facilmente integrado a sistemas de autenticaccedilatildeo online

Os usuaacuterios que optaram pela alternativa do OpenID natildeo inserem um nome de usuaacuterio mas em vez disso identificam-se com uma URI que pode ser exibida em um navega-dor web A URI pode ser um ende-reccedilo web oferecido por um serviccedilo OpenID como httpnilsmagnusmyopenidcom no MyopenID [4] O tipo de identidade natildeo eacute importan-te contanto que qualquer navegador

consiga acessar a paacutegina A paacutegina teraacute que adicionar uma tag que aponte para o provedor do serviccedilo

ltlink rel=rdquoopenidserverrdquo href=rdquohttpwwwmyopenidcomserverrdquo gtltlink rel=rdquoopeniddelegaterdquo href=rdquohttpnilsmagnusmyopenidcomrdquo gt

O servidor do lado do provedor especifica a primeira relaccedilatildeo a segun-da reafirma o nome da identidade O provedor normalmente cria uma paacutegina para tornar essa informaccedilatildeo disponiacutevel para os sites na Web que requisitem as informaccedilotildees de login Contudo um usuaacuterio poderia de forma alternativa integrar os deta-lhes necessaacuterios em uma paacutegina ou blog pessoal Nesse caso seu proacute-prio endereccedilo poderia servir como sua OpenID

O loginUma aplicaccedilatildeo que suporte o OpenID exibiraacute um campo de login OpenID aleacutem da paacutegina de login tradicional Por exemplo a figura 1 mostra a paacute-gina de autenticaccedilatildeo do OpenID no wiki do Amarok

Quando um usuaacuterio digita seu ID baseado em uma URI a aplica-ccedilatildeo web que eacute conhecida como o

RE

DE

S

RE

DE

S

copy Linux New Media do Brasil Editora Ltda

69

cliente na linguagem do OpenID recupera a porccedilatildeo do servidor da URI O OpenID se refere ao servi-dor como ldquoprovedor de identidaderdquo (identity provider)

O cliente (o wiki do Amarok nes-te caso) solicita ao provedor o nome associado agrave URI Para fazer isso ele redireciona a requisiccedilatildeo para o pro-vedor do site e o provedor indica que foi emitida a solicitaccedilatildeo O usuaacuterio entatildeo concorda com o pedido digi-tando uma senha O provedor redi-reciona o navegador de volta para o site do cliente onde o usuaacuterio estaacute agora logado

Uma praacutetica caracteriacutestica do OpenID eacute a possibilidade de ar-mazenar vaacuterios atributos para uma uacutenica identidade com um provedor por exemplo seu nome completo seu idioma preferido ou sua data de nascimento (ver figura 2) O usuaacuterio que recebe um pedido do cliente pode especificar quais os dados que o prestador deve divulgar para o cliente e quais ele deve conservar como secretos

Esse processo de aprovaccedilatildeo eacute im-portante para evitar o mau uso de

um paracircmetro criacutetico tal como o PIN de um banco que na verdade ateacute pode ser armazenado junto ao seu ID Alguns provedores permitem que o usuaacuterio crie muacuteltiplas identi-dades cada uma com um conjunto distinto de atributos

Essa abordagem tambeacutem eacute co-nhecida como Gerenciamento de Identidade Centrada no Usuaacuterio (do inglecircs User-Centric Identity Mana-gement) em que cada usuaacuterio pode definir individualmente as informa-

ccedilotildees fornecidas pelo provedor para os clientes que pedirem

Alguns provedores de identidade associam-nas gratuitamente Cabe ao usuaacuterio decidir em qual provedor con-fiar Diferentemente da abordagem centralizada utilizada pelo Passport um conjunto descentralizado de pro-vedores OpenID competem entre si na oferta de serviccedilos Os usuaacuterios tecircm ateacute mesmo a liberdade de criar seu proacuteprio provedor

Para quem se interessar pelo desenvolvimento de uma soluccedilatildeo proacutepria haacute pacotes de coacutedigo aberto em vaacuterias linguagens de programa-ccedilatildeo como Perl PHP Ruby Python e Java [5]

Tem seguranccedilaO OpenID pode gerar duacutevidas so-bre sua seguranccedila jaacute que qualquer um pode atuar como provedor Um agressor pode forjar (spoof) ou sequumlestrar uma identidade A primeira questatildeo aponta para um claacutessico problema de seguranccedila se vocecirc pode manipular um site de terceiros vocecirc pode redirecionar os visitantes para o seu proacuteprio prove-dor de identidade ou escrever um para se adequar agrave demanda

Em outras palavras a seguranccedila estaacute nas matildeos das pessoas responsaacuteveis pelo site hospedeiro Considerando-

Linux Magazine 50 | Janeiro de 2009

| REDESOpenID

Figura 2 O provedor especifica os detalhes que pretende enviar para o cliente

Figura 1 O wiki do Amarok permite que seus usuaacuterios efetuem login com o OpenID

copy Linux New Media do Brasil Editora Ltda

70 httpwwwlinuxmagazinecombr

se a qualidade do coacutedigo dos muitos sites escritos nas populares linguagens de script essa eacute uma preocupaccedilatildeo real mas natildeo um argumento funda-mental contra o OpenID

A segunda pergunta eacute complica-da eacute possiacutevel que um hacker capture as comunicaccedilotildees entre o cliente e o provedor de identidade e com isso ar-mazene as sessotildees Afi nal o provedor envia uma confi rmaccedilatildeo de mensagem em caso de sucesso na autenticaccedilatildeo Um agressor poderia tentar apresentar uma sessatildeo gravada na proacutexima ten-tativa de login No entanto isso pode ser evitado com a ativaccedilatildeo do SSL ou do TLS no OpenID para proteger a conexatildeo e adicionar um desafi o para cada solicitaccedilatildeo Essa abordagem

signifi ca que qualquer resposta seraacute vaacutelida apenas uma vez o que exclui a reciclagem trivial

Apesar disso natildeo eacute uma boa ideacuteia subestimar a complexidade do ge-renciamento de sessatildeo baseado em estado ( stateful ) que trafega sobre um protocolo sem base em sessatildeo ( state-less ) como o HTTP que eacute a base do OpenID O fato de vaacuterias aplicaccedilotildees web estarem sendo comprometidas eacute uma indicaccedilatildeo clara dos perigos supondo que vocecirc acredite em pes-quisas e whitepapers [6]

Praacutetico e aberto O OpenID eacute um passo na direccedilatildeo certa para o gerenciamento de iden-tidades Como ele implementa o lo-

gin uacutenico ( single sign-on ) tambeacutem se torna mais con-veniente para os usuaacuterios reduzindo o nuacutemero de senhas a serem lembradas A capacidade de gerenciar atributos eacute muito mais po-derosa do que parece agrave pri-meira vista

O nuacutemero de sites que usam OpenID continua crescendo vertiginosamente mas algumas grandes aplica-ccedilotildees continuaratildeo precisando provar se preenchem todas

as exigecircncias operacionais e concei-tuais no que diz respeito agrave confi anccedila e agrave disponibilidade

Mais informaccedilotildees

[1] Microsoft Passport httpwwwpassportnet

[2] Projeto Liberty Alliance httpwwwprojectlibertyorg

[3] Projeto OpenID httpopenidnet

[4] MyOpenID httpmyopenidcom

[5] Bibliotecas abertas de OpenID httpwikiopenidnetLibraries

[6] Secure Computing ldquoKeeping Customers and Merchants Securerdquo (em inglecircs) httpwwwsecurecomputingcomwebformcfmid=289ampref=pci

[7] Feder ID httpfederidobjectweborg

[8] Extensotildees do Mediawiki para OpenID httpwwwmediawikiorgwikiExtensionOpenID

[9] Suporte a OpenID no Drupal httpdrupalorgprojectopenid

REDES | OpenID

Quadro 1 Gerenciamento de identidade e federaccedilatildeo

O OpenID natildeo eacute soacute um projeto de gerenciamento de identidade O Feder ID [7] por exemplo eacute um projeto de coacutedigo aberto da Franccedila Um dos fi nanciadores do projeto Oudot Cleacutement enfatiza a importacircncia das identidades digitais para o acesso aos recursos da Web em uma recente entrevista com a Linux Magazine

De acordo com Oudot muitos usuaacuterios possuem uma identidade distinta para cada site Isto eacute um grande problema para grandes empresas e organizaccedilotildees jaacute que os usuaacuterios precisam memorizar muacuteltiplas senhas O Feder ID fornece ferramentas para a sincronizaccedilatildeo de repositoacuterios de identidade Estes atributos natildeo estatildeo disponiacuteveis apenas para uma uacutenica organizaccedilatildeo local eles podem ser compartilhados por parceiros confi aacuteveis

As ferramentas do Feder ID satildeo de coacutedigo aberto e respeitam os padrotildees da IETF ( Internet Engineering Task Force ) OASIS ( Organization of Structured Information Standards ) e da Liberty Alliance para a gestatildeo de identidades

Tabela 1 Provedores de identidade para aplicaccedilotildees web

Provedor OpenID

AOL httpopenidaolcomnome_do_usuaacuterio

Blogger httpnome_do_blogblogspotcom

Flickr httpwwwflickrcomphotosusuaacuterio

Livedoor httpprofilelivedoorcomusuaacuterio

Livejournal httpusuaacuteriolivejournalcom

Technorati httptechnoraticompeopletechnoratiusuaacuterio

Wordpress httpusuaacuteriowordpresscom

Yahoo httpopenidyahoocom

copy Linux New Media do Brasil Editora Ltda

71

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

LTRindd 67 251108 173039

copy Linux New Media do Brasil Editora Ltda

72 httpwwwlinuxmagazinecombr

Login no Linux pela impressatildeo digital

Autenticaccedilatildeo biomeacutetrica A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e a confi gurar esse recurso de seguranccedila por Alessandro de Oliveira Faria (Cabelo)

Hoje a autenticaccedilatildeo biomeacute-trica eacute imprescindiacutevel para elevarmos o niacutevel de segu-

ranccedila computacional Na Linux Magazine 48 foram mencionadas as principais tecnologias biomeacutetri-cas de coacutedigo aberto Agora neste documento veremos na praacutetica o uso da biometria para autentica-ccedilatildeo de identidade Esse recurso natildeo faz parte apenas dos fi lmes de

fi cccedilatildeo cientiacutefi ca eacute uma realidade cada vez mais presente no nosso dia-a-dia em diversos segmentos do mercado

Com o crescimento dos equi-pamentos em redes abertas sur-giram problemas de seguranccedila e confi abilidade de autenticaccedilatildeo Uma autenticaccedilatildeo indevida for-nece acesso privilegiado a pessoas natildeo autorizadas dando margem a roubo de informaccedilotildees interrup-ccedilotildees de serviccedilos fraudes sistemaacute-ticas entre outros transtornos do seacuteculo XXI

Neste cenaacuterio surgiu a necessida-de da autenticaccedilatildeo biomeacutetrica ou seja verifi caccedilatildeo da autenticidade do usuaacuterio em operaccedilatildeo Esse me-canismo computacional eacute baseado em caracteriacutesticas (ldquoo que vocecirc eacuterdquo) A biometria aplicada agrave autenticaccedilatildeo de usuaacuterios eacute um meacutetodo automa-tizado para medir as caracteriacutesticas humanas e confrontaacute-las em uma base de dados obtendo assim a au-tenticidade do usuaacuterio

A efi caacutecia da autenticaccedilatildeo biomeacute-trica estaacute diretamente relacionada agrave qualidade dos dados obtidos na fase de cadastramento da caracteriacutestica

biomeacutetrica Nessa etapa a base de dados recebe o template matemaacuteti-co calculado pelo sistema isto eacute a representaccedilatildeo binaacuteria da caracteriacutes-tica humana Essa informaccedilatildeo seraacute utilizada posteriormente na compa-raccedilatildeo biomeacutetrica para autenticaccedilatildeo do sistema obtendo assim um re-sultado positivo ou negativo

Este artigo apresenta um foco teacutecnico e pouco teoacuterico assim obje-

SE

GU

RA

NCcedil

A

Figura 1 Imagem extraiacuteda de um leitor de impressatildeo digital UAreU da Digital Persona

Figura 2 Imagem binarizada (branco e preto)

copy Linux New Media do Brasil Editora Ltda

73

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

tivando configurar ou acrescentar a autenticaccedilatildeo biomeacutetrica como niacutevel adicional de seguranccedila ao login do sistema operacional Linux Para tal operaccedilatildeo utilizaremos a tecnologia de impressatildeo digital e pacotes de coacute-digo aberto (biblioteca fprint)

A tecnologia utilizada para a con-fecccedilatildeo deste artigo foi OpenSuse 103 ndash kernel 26225-

31-bigsmp Notebook Dell Vostro 1510 4 GB de memoacuteria RAM Processador Core 2 Duo Leitor de impressatildeo digital Uare

U Digital Persona 4000B Biblioteca fprint

Fprint conceitosO pacote fprint[1] eacute o sonho de todo desenvolvedor de coacutedigo aberto O kit de integraccedilatildeo permite o desen-volvimento de rotinas para identi-ficaccedilatildeo e verificaccedilatildeo de impressotildees digitais do usuaacuterio Um dos pontos fortes dessa soluccedilatildeo livre eacute a compa-tibilidade com diversos modelos de sensores disponiacuteveis no mercado A lista de aparelhos compatiacuteveis en-contra-se em [2]

A impressatildeo digital eacute composta por linhas formadas pelas elevaccedilotildees da pele A comparaccedilatildeo por impressatildeo digital eacute um meacutetodo utilizado haacute mais de mil anos como forma de identificaccedilatildeo de usuaacuterios Eacute uma caracteriacutestica uacutenica entre os seres humanos inclusive entre irmatildeos gecircmeos univitelinos

Formada ainda quando feto a impressatildeo digital acompanha a pessoa por toda a sua existecircncia sem apresentar grandes mudanccedilas Extraindo os pontos caracteriacutesticos ou ldquopontos de minuacuteciasrdquo de uma impressatildeo digital um papiloscopista ou sistemas computadorizados po-dem identificar pessoas utilizando caacutelculos bastante confiaacuteveis Grande parte dos algoritmos trabalham com o princiacutepio de extraccedilatildeo desses pontos caracteriacutesticos Apoacutes a extraccedilatildeo satildeo calculados a relaccedilatildeo entre as distacircn-cias desses pontos Cada algoritmo possui sua base de caacutelculo seja por anaacutelise dos pontos entre si ou por agrupamentos de pontos para anaacute-lise de semelhanccedilas de triacircngulos com os acircngulos internos

A biblioteca fprint incorpora abstraccedilatildeo de hardware para aces-so ao leitor Com esse recurso natildeo precisamos instalar qualquer moacutedulo do kernel para o funcio-namento de cada modelo de leitor de impressatildeo digital

Na primeira fase a biblioteca extrai a imagem do sensor (figura 1) e logo a seguir a linha da impressatildeo digital eacute realccedilada com a cor preta (figura 2)

Figura 3 Linhas reduzidas para um uacutenico pixel

Figura 4 Pontos de bifurcaccedilatildeo e terminadores

copy Linux New Media do Brasil Editora Ltda

74 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

utilizando algoritmos de extraccedilatildeo com filtros Na proacutexima etapa a imagem jaacute estaacute binarizada (branco e preto figura 3) e as linhas foram reduzidas a um uacutenico pixel de largura Por uacuteltimo a tarefa mais faacutecil ou seja

detectar os pontos de minuacutecias Fa-zendo um exame de cada pixel na imagem se houver um pixel branco sem vizinhos isso significa que en-contramos um ponto terminal Caso um ponto branco possua trecircs pontos

vizinhos significa que en-contramos uma bifurcaccedilatildeo Os pontos de minuacutecias satildeo entatildeo destacados (fi-gura 4) e compotildeem a ver-dadeira identidade da im-pressatildeo digital

As impressotildees digitais satildeo classificadas em cinco grupos conforme mostra a figura 5 ciacuterculo direito ciacuterculo esquerdo espiral arco e arco incompletoA estrutura de uma im-pressatildeo digital eacute forma-da por cruzamentos das linhas core (centro) bi-furcaccedilotildees terminaccedilotildees ilhas deltas (bifurcaccedilotildees inferiores) e poros Os pon-tos terminais assim como os pontos de bifurcaccedilotildees satildeo definidos em funccedilatildeo da distacircncia (coordena-da relativa) para o core Nos pontos terminais eacute co-mum calcular seu acircngulo de inclinaccedilatildeo

InstalaccedilatildeoHaacute pacotes da biblioteca fprint preacute-compilados para OpenSuse [3] e Ubuntu [4] No entanto este artigo sugere a compilaccedilatildeo da biblioteca a partir de seu coacutedigo-fonte que pode ser obtido em [5] Haacute tambeacutem uma demonstraccedilatildeo do software fprint que pode ser baixada a partir de [6]

Apoacutes o download devemos des-compactar os arquivos fontes O exemplo 1 detalha o procedimen-

Exemplo 1 Preparaccedilatildeo da libfprint

$ tar -jxvf libfprint-006tarbz2$ cd libfprint-006$ configure$ make$ suSenha make install ldconfig

Figura 5 Os cinco grupos de impressotildees digitais

Exemplo 3 Arquivo de login do PAM

01 PAM-1002 auth requisite pam_nologinso03 auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securettyso04 auth include common-auth05 auth requisite pam_fprintso06 account include common-account07 password include common-password08 session required pam_loginuidso09 session include common-session10 session required pam_lastlogso nowtmp11 session required pam_resmgrso12 session optional pam_mailso standard13 session optional pam_ck_connectorso

Exemplo 2 Compilaccedilatildeo do pam_fprint

$ wget httpufprdlsourceforgenetsourceforgefprintpam_fprint-02tarbz2$ tar -jxvf pam_fprint-02tarbz2$ cd pam_fprint-02$ configure$ make$ sudo make install

copy Linux New Media do Brasil Editora Ltda

75

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

Exemplo 4 pam_fprint_enroll --help

pam_fprint_enroll --helpUsage pam_fprint_enroll options -h --help Display this usage information -f --enroll-finger index Enroll finger with index Valid indexes are 1 - Left Thumb 2 - Left Index Finger 3 - Left Middle Finger 4 - Left Ring Finger 5 - Left Little Finger 6 - Right Thumb 7 - Right Index Finger 8 - Right Middle Finger 9 - Right Ring Finger 10 - Right Little Finger

Exemplo 5 Cadastramento de digital

pam_fprint_enroll --enroll-finger 7

This program will enroll your finger unconditionally overwriting any selected print that was enrolled previously If you want to continue press enter otherwise hit Ctrl+C Found device claimed by Digital Persona UareU 40004000B driverOpened device Itrsquos now time to enroll your finger You will need to successfully scan your Right Index Finger 1 timesto complete the process Scan your finger nowEnroll completeEnrollment completed

Exemplo 6 Sucesso na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1)lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BUacutetimo loginDom Nov 16 231501 BRST 2008em tty2

Have a lot of fun

copy Linux New Media do Brasil Editora Ltda

76 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

to de configuraccedilatildeo e compilaccedilatildeo da biblioteca

Execute o comando ldquomakerdquo con-vencional para efetuar a compilaccedilatildeo na iacutentegra do coacutedigo-fonte a seguir transforme-se em super-usuaacuterio (root) para efetuar a instalaccedilatildeo da biblioteca por meio do comando ldquomake installrdquo seguido do ldquoldconfigrdquo conforme as instruccedilotildees a seguir

Autenticaccedilatildeo pam_fprintO moacutedulo biomeacutetrico que trabalha em conjunto com o sistema de au-tenticaccedilatildeo PAM (Pluggable Authen-tication Modules) eacute o pam_fprint Sua base tecnoloacutegica eacute a biblioteca fprint receacutem compilada e instalada O pacote pam_fprint utiliza as fun-ccedilotildees biomeacutetricas para processar e verificar a autenticaccedilatildeo do usuaacuterio Em outras palavras a sua impressatildeo digital eacute utilizada para efetuar o login no sistema operacional

Vale a pena mencionar que o PAM eacute um sistema para autenticaccedilatildeo de usuaacuterios em ambientes Linux e Unix Uma de suas principais vantagens eacute a centralizaccedilatildeo das chamadas e funccedilotildees de login assim facilitando a tarefa do desenvolvedor

Continuando nossa jornada vamos agora baixar descompactar compilar e instalar o pacote pam_fprint como no exemplo 2

Sobre o autorAlessandro Faria eacute soacutecio-proprietaacuterio da NETi TECNOLOGIA fundada em Junho de 1996 (httpwwwnetiteccombr) empre-sa especializada em desenvolvimento de software e soluccedilotildees biomeacutetricas Consultor Biomeacutetrico na tecnologia de reconhecimen-to facial atua na aacuterea de tecnologia desde 1986 propiciando assim ao mercado solu-ccedilotildees em software Leva o Linux a seacuterio des-de 1998 com desenvolvimento de soluccedilotildees open source eacute membro colaborador da co-munidade Viva O Linux e mantenedor da bi-blioteca open source de viacutedeo captura aleacuten de participar entre outros projetos

Mais informaccedilotildees

[1] Fprint httpreactivatednetfprintwikiMain_Page

[2] Dispositivos compatiacuteveis com a fprint httpreactivatednetfprintwikiSupported_devices

[3] Pacotes fprint para OpenSuse httpdownloadopensuseorgrepositorieshomedgege

[4] Pacotes fprint para Ubuntu httpwwwmadman2knetcomments105

[5] Download da biblioteca fprint httpufprdlsourceforgenetsourceforgefprintlibfprint-006tarbz2

[6] Demo do fprint httpufprdlsourceforgenetsourceforgefprintfprint_demo-04tarbz2

[7] Portal Viva o Linux httpwwwvivaolinuxcombr

ConfiguraccedilatildeoNo OpenSuse eacute preciso modi-ficar o arquivo de configuraccedilatildeo para autenticaccedilatildeo no modo conso-le etcpamdlogin Esse arquivo pode ter nome diferente em ou-tras distribuiccedilotildees Seu conteuacutedo eacute mostrado no exemplo 3 e a linha 5 deve ser acrescentada pois eacute a res-ponsaacutevel por requisitar o moacutedulo pam_fprint

Eacute importante notar a utilizaccedilatildeo do modo requisite de autenticaccedilatildeo no PAM Para maiores informaccedilotildees sobre o tipo de autenticaccedilatildeo reco-menda-se consultar a documentaccedilatildeo do PAM

CadastramentoO proacuteximo passo eacute efetuar o cadastra-mento biomeacutetrico da sua impressatildeo digital Se concluiacuteda com sucesso essa tarefa no proacuteximo login o usuaacute-rio deveraacute fornecer aleacutem da senha sua impressatildeo digital para ter acesso ao sistema

O programa pam_fprint_enroll eacute responsaacutevel pelo cadastramento das impressotildees digitais Para en-tender melhor sua sintaxe digite pam_fprint_enroll --help e perceba (exemplo 4) que eacute preciso informar o nuacutemero correspondente ao dedo utilizado para cadastro A numeraccedilatildeo comeccedila em 1 no polegar esquerdo e segue ateacute o dedo mindinho esquerdo (nuacutemero 5) seguindo depois para o polegar direito (6) e terminando no mindinho direito (10)

No meu caso utilizei o nuacutemero 7 representando o dedo indicador da matildeo direita (exemplo 5) Ao exe-cutar o programa pressione [ENTER] encoste o dedo no leitor de impres-satildeo digital e pronto Nessa fase ao efetuar o login o sistema opera-cional solicitaraacute a senha seguida da autenticaccedilatildeo biomeacutetrica como mostram os exemplos 6 (sucesso na autenticaccedilatildeo) e 7 (falha na autenti-caccedilatildeo biomeacutetrica)

ConclusatildeoA biblioteca fprint proporciona inuacute-meros recursos aleacutem dos mencio-nados neste artigo Para um estudo detalhado sobre o assunto sugiro algumas leituras no portal Viva o Linux [7] e tambeacutem no site oficial do projeto

Exemplo 7 Falha na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1) lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BLogin incorreto

copy Linux New Media do Brasil Editora Ltda

77

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

SE

CcedilAtilde

O

Site_LNMindd 55 191208 205243

copy Linux New Media do Brasil Editora Ltda

78

SE

RV

ICcedilO

S

httpwwwlinuxmagazinecombr

Fornecedor de Hardware = 1 Redes e Telefonia PBX = 2 Integrador de Soluccedilotildees = 3

Literatura Editora = 4 Fornecedor de Software = 5

Consultoria Treinamento = 6

Linuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

CearaacuteF13 Tecnologia Fortaleza Rua Coronel Solon 480 ndash Bairro de Faacutetima

Fortaleza - CE - CEP 60040-270 85 3252-3836 wwwf13combr

Espiacuterito SantoLinux Shopp Vila Velha Rua Satildeo Simatildeo (Correspondecircncia) 18 ndash CEP 29113-120 27 3082-0932 wwwlinuxshoppcombr

Megawork Consultoria e Sistemas

Vitoacuteria Rua Chapot Presvot 389 ndash Praia do Can-to ndash CEP 29055-410 sl 201 202

27 3315-2370 wwwmegaworkcombr

Spirit Linux Vitoacuteria Rua Marins Alvarino 150 ndash CEP 29047-660 27 3227-5543 wwwspiritlinuxcombr

Minas GeraisInstituto Online Belo Horizonte Av Bias Fortes 932 Sala 204 ndash CEP 30170-011 31 3224-7920 wwwinstitutoonlinecombr

Linux Place Belo Horizonte Rua do Ouro 136 Sala 301 ndash Serra ndash CEP 30220-000 31 3284-0575 corporatelinuxplacecombr

Microhard Belo Horizonte Rua Repuacuteblica da Argentina 520 ndash Sion ndash CEP 30315-490 31 3281-5522 wwwmicrohardcombr

TurboSite Belo Horizonte Rua Paraiacuteba 966 Sala 303 ndash Savassi ndash CEP 30130-141 0800 702-9004 wwwturbositecombr

ParanaacuteiSolve Curitiba Av Cacircndido de Abreu 526 Cj 1206B ndash CEP 80530-000 41 252-2977 wwwisolvecombr

Mandriva Conectiva Curitiba Rua Tocantins 89 ndash Cristo Rei ndash CEP 80050-430 41 3360-2600 wwwmandrivacombr

Telway Tecnologia Curitiba Rua Francisco Rocha 183071 41 3203-0375 wwwtelwaycombr

Rio de JaneiroMuacuteltipla Tecnologia da Informaccedilatildeo

Rio de Janeiro Av Rio Branco 37 14deg andar ndash CEP 20090-003 21 2203-2622 wwwmultipla-ticombr

NSI Training Rio de Janeiro Rua Arauacutejo Porto Alegre 71 4ordm andar Centro ndash CEP 20030-012 21 2220-7055 wwwnsicombr

Open IT Rio de Janeiro Rua do Mercado 34 Sl 402 ndash Centro ndash CEP 20010-120 21 2508-9103 wwwopenitcombr

Unipi Tecnologias Campos dos Goytacazes

Av Alberto Torres 303 1ordmandar ndash Centro ndash CEP 28035-581 22 2725-1041 wwwunipicombr

Rio Grande do Sul4up Soluccedilotildees Corporativas Novo Hamburgo Pso Calccediladatildeo Osvaldo Cruz 54 sl 301 CEP 93510-015 51 3581-4383 www4upcombr

Definitiva Informaacutetica Novo Hamburgo Rua General Osoacuterio 402 - Hamburgo Velho 51 3594 3140 wwwdefinitivacombr

Solis Lajeado Av 7 de Setembro 184 sala 401 ndash Bairro Moinhos CEP 95900-000

51 3714-6653 wwwsoliscoopbr

DualCon Novo Hamburgo Rua Joaquim Pedro Soares 1099 Sl 305 ndash Centro 51 3593-5437 wwwdualconcombr

Datarecover Porto Alegre Av Carlos Gomes 403 Sala 908 Centro Comer-cial Atrium Center ndash Bela Vista ndash CEP 90480-003

51 3018-1200 wwwdatarecovercombr

LM2 Consulting Porto Alegre Rua Germano Petersen Junior 101-Sl 202 ndash Hi-gienoacutepolis ndash CEP 90540-140

51 3018-1007 wwwlm2combr

Lnx-IT Informaccedilatildeo e Tecnologia Porto Alegre Av Venacircncio Aires 1137 ndash Rio Branco ndash CEP 90040193 51 3331-1446 wwwlnx-itinfbr

Plugin Porto Alegre Av Juacutelio de Castilhos 132 11ordm andar Centro ndash CEP 90030-130 51 4003-1001 wwwplugincombr

TeHospedo Porto Alegre Rua dos Andradas 1234610 ndash Centro ndash CEP 90020-008 51 3286-3799 wwwtehospedocombr

Satildeo PauloWs Host Arthur Nogueira Rua Jerere 36 ndash Vista Alegre ndash CEP 13280-000 19 3846-1137 wwwwshostcombr

DigiVoice Barueri Al Juruaacute 159 Teacuterreo ndash Alphaville ndash CEP 06455-010 11 4195-2557 wwwdigivoicecombr

Dextra Sistemas Campinas Rua Antocircnio Paioli 320 ndash Pq das Universidades ndash CEP 13086-045 19 3256-6722 wwwdextracombr

Insigne Free Software do Brasil Campinas Av Andrades Neves 1579 ndash Castelo ndash CEP 13070-001 19 3213-2100 wwwinsignesoftwarecom

Microcamp Campinas Av Thomaz Alves 20 ndash Centro ndash CEP 13010-160 19 3236-1915 wwwmicrocampcombr

PC2 Consultoria em Software Livre

Carapicuiba Rua Edeia 500 - CEP 06350-080 11 3213-6388 wwwpc2consultoriacom

Savant Tecnologia Diadema Av Senador Vitorino Freire 465 ndash CEP 09910-550 11 5034-4199 wwwsavantcombr

Epopeacuteia Informaacutetica Mariacutelia Rua Goiaacutes 392 ndash Bairro Cascata ndash CEP 17509-140 14 3413-1137 wwwepopeiacombr

Redentor Osasco Rua Costante Piovan 150 ndash Jd Trecircs Montanhas ndash CEP 06263-270 11 2106-9392 wwwredentorindbr

Go-Global Santana de Parnaiacuteba

Av Yojiro Takaoca 4384 Ed Shopping Ser-vice Cj 1013 ndash CEP 06541-038

11 2173-4211 wwwgo-globalcombr

AW2NET Santo Andreacute Rua Edson Soares 59 ndash CEP 09760-350 11 4990-0065 wwwaw2netcombr

Async Open Source Satildeo Carlos Rua Orlando Damiano 2212 ndash CEP 13560-450 16 3376-0125 wwwasynccombr

O maior diretoacuterio de empresas que oferecem produtos soluccedilotildees e serviccedilos 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 anuncioslinuxmagazinecombr

copy Linux New Media do Brasil Editora Ltda

79

| SERVICcedilOSLinuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

Satildeo Paulo (continuaccedilatildeo)Delix Internet Satildeo Joseacute do

Rio PretoRua Voluntaacuterio de Satildeo Paulo 3066 9ordm ndash Centro ndash CEP 15015-909 11 4062-9889 wwwdelixhostingcombr

4Linux Satildeo Paulo Rua Teixeira da Silva 660 6ordm andar ndash CEP 04002-031 11 2125-4747 www4linuxcombr

A Casa do Linux Satildeo Paulo Al Jauacute 490 ndash Jd Paulista ndash CEP 01420-000 11 3549-5151 wwwacasadolinuxcombr

Accenture do Brasil Ltda Satildeo Paulo Rua Alexandre Dumas 2051 ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 5188-3000 wwwaccenturecombr

ACR Informaacutetica Satildeo Paulo Rua Lincoln de Albuquerque 65 ndashPerdizes ndash CEP 05004-010 11 3873-1515 wwwacrinformaticacombr

Agit Informaacutetica Satildeo Paulo Rua Major Quedinho 111 5ordm andar Cj 508 ndash Centro ndash CEP 01050-030

11 3255-4945 wwwagitcombr

Altbit - Informaacutetica Comeacutercio e Serviccedilos LTDA

Satildeo Paulo Av Francisco Matarazzo 229 Cj 57 ndash Aacutegua Branca ndash CEP 05001-000

11 3879-9390 wwwaltbitcombr

AS2M -WPC Consultoria Satildeo Paulo Rua Trecircs Rios 131 Cj 61A ndash Bom Retiro ndash CEP 01123-001 11 3228-3709 wwwwpccombr

Big Host Satildeo Paulo Rua Dr Miguel Couto 58 ndash Centro ndash CEP 01008-010 11 3033-4000 wwwbighostcombr

Blanes Satildeo Paulo Rua Andreacute Ampeacutere 153 ndash 9ordm andar ndash Conj 91 CEP 04562-907 (proacutex Av L C Berrini)

11 5506-9677 wwwblanescombr

Commlogik do Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 13797 Bloco II 6ordm andar ndash Morumbi ndash CEP 04794-000

11 5503-1011 wwwcommlogikcombr

Computer Consulting Projeto e Consultoria Ltda

Satildeo Paulo Rua Vergueiro 6455 Cj 06 ndash Alto do Ipiranga ndash CEP 04273-100 11 5062-3927 wwwcomputerconsultingcombr

Consist Consultoria Siste-mas e Representaccedilotildees Ltda

Satildeo Paulo Av das Naccedilotildees Unidas 20727 ndash CEP 04795-100 11 5693-7210 wwwconsistcombr

Domiacutenio Tecnologia Satildeo Paulo Rua das Carnaubeiras 98 ndash Metrocirc Conceiccedilatildeo ndash CEP 04343-080 11 5017-0040 wwwdominiotecnologiacombr

EDS do Brasil Satildeo Paulo Av Pres Juscelino Kubistcheck 1830 Torre 4 - 5ordm andar 11 3707-4100 wwwedscom

Eacutetica Tecnologia Satildeo Paulo Rua Nova York 945 ndash Brooklin ndash CEP04560-002 11 5093-3025 wwweticanet

Getronics ICT Solu-tions and Services

Satildeo Paulo Rua Verbo Divino 1207 ndash CEP 04719-002 11 5187-2700 wwwgetronicscombr

Hewlett-Packard Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 12901 25ordm andar ndash CEP 04578-000 11 5502-5000 wwwhpcombr

IBM Brasil Ltda Satildeo Paulo Rua Tutoacuteia 1157 ndash CEP 04007-900 0800-7074 837 wwwbribmcom

iFractal Satildeo Paulo Rua Fiaccedilatildeo da Sauacutede 145 Conj 66 ndash Sauacutede ndash CEP 04144-020 11 5078-6618 wwwifractalcombr

Integral Satildeo Paulo Rua Dr Gentil Leite Martins 295 2ordm andar Jd Prudecircncia ndash CEP 04648-001

11 5545-2600 wwwintegralcombr

Itautec SA Satildeo Paulo Av Paulista 2028 ndash CEP 01310-200 11 3543-5543 wwwitauteccombr

Kenos Consultoria Satildeo Paulo Av Fagundes Filho 13 Conj 53 ndash CEP 04304-000 11 40821305 wwwkenoscombr

Konsultex Informatica Satildeo Paulo Av Dr Guilherme Dumont Villares 1410 6 andar CEP 05640-003 11 3773-9009 wwwkonsultexcombr

Linux Komputer Informaacutetica Satildeo Paulo Av Dr Lino de Moraes Leme 185 ndash CEP 04360-001 11 5034-4191 wwwkomputercombr

Linux Mall Satildeo Paulo Rua Machado Bittencourt 190 Cj 2087 ndash CEP 04044-001 11 5087-9441 wwwlinuxmallcombr

Livraria Tempo Real Satildeo Paulo Al Santos 1202 ndash Cerqueira Ceacutesar ndash CEP 01418-100 11 3266-2988 wwwtemporealcombr

Locasite Internet Service Satildeo Paulo Av Brigadeiro Luiz Antonio 2482 3ordm andar ndash Centro ndash CEP 01402-000

11 2121-4555 wwwlocasitecombr

Microsiga Satildeo Paulo Av Braz Leme 1631 ndash CEP 02511-000 11 3981-7200 wwwmicrosigacombr

Novatec Editora Ltda Satildeo Paulo Rua Luis Antonio dos Santos 110 ndash Santana ndash CEP 02460-000 11 6979-0071 wwwnovateceditoracombr

Novell Ameacuterica Latina Satildeo Paulo Rua Funchal 418 ndash Vila Oliacutempia 11 3345-3900 wwwnovellcombrasil

Oracle do Brasil Sistemas Ltda Satildeo Paulo Av Alfredo Egiacutedio de Souza Aranha 100 ndash Bloco B ndash 5ordm andar ndash CEP 04726-170

11 5189-3000 wwworaclecombr

Proelbra Tecnolo-gia Eletrocircnica Ltda

Satildeo Paulo Av Rouxinol 1041 Cj 204 2ordm andar Moema ndash CEP 04516-001 11 5052- 8044 wwwproelbracombr

Provider Satildeo Paulo Av Cardoso de Melo 1450 6ordm andar ndash Vila Oliacutempia ndash CEP 04548-005

11 2165-6500 wwwe-providercombr

Red Hat Brasil Satildeo Paulo Av Brigadeiro Faria Lima 3900 Cj 81 8ordm andar Itaim Bibi ndash CEP 04538-132

11 3529-6000 wwwredhatcombr

Samurai Projetos Especiais Satildeo Paulo Rua Baratildeo do Triunfo 550 6ordm andar ndash CEP 04602-002 11 5097-3014 wwwsamuraicombr

SAP Brasil Satildeo Paulo Av das Naccedilotildees Unidas 11541 16ordm andar ndash CEP 04578-000 11 5503-2400 wwwsapcombr

Simples Consultoria Satildeo Paulo Rua Mourato Coelho 299 Cj 02 Pinheiros ndash CEP 05417-010 11 3898-2121 wwwsimplesconsultoriacombr

Smart Solutions Satildeo Paulo Av Jabaquara 2940 cj 56 e 57 11 5052-5958 wwwsmart-teccombr

Snap IT Satildeo Paulo Rua Joatildeo Gomes Junior 131 ndash Jd Bonfiglioli ndash CEP 05299-000 11 3731-8008 wwwsnapitcombr

Stefanini IT Solutions Satildeo Paulo Av Brig Faria Lima 1355 19ordm ndash Pinheiros ndash CEP 01452-919 11 3039-2000 wwwstefaninicombr

Sun Microsystems Satildeo Paulo Rua Alexandre Dumas 2016 ndash CEP 04717-004 11 5187-2100 wwwsuncombr

Sybase Brasil Satildeo Paulo Av Juscelino Kubitschek 510 9ordm andar Itaim Bibi ndash CEP 04543-000 11 3046-7388 wwwsybasecombr

The Source Satildeo Paulo Rua Marquecircs de Abrantes 203 ndash Chaacutecara Tatuapeacute ndash CEP 03060-020

11 6698-5090 wwwthesourcecombr

Unisys Brasil Ltda Satildeo Paulo R Alexandre Dumas 1658 ndash 6ordm 7ordm e 8ordm andares ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 3305-7000 wwwunisyscombr

Utah Satildeo Paulo Av Paulista 925 13ordm andar ndash Cerqueira Ceacutesar ndash CEP 01311-916 11 3145-5888 wwwutahcombr

Visuelles Satildeo Paulo Rua Eng Domicio Diele Pacheco e Silva 585 ndash Interlagos ndash CEP 04455-310

11 5614-1010 wwwvisuellescombr

Webnow Satildeo Paulo Av Naccedilotildees Unidas 12995 10ordm andar Ed Plaza Centenaacuterio ndash Chaacutecara Itaim ndash CEP 04578-000

11 5503-6510 wwwwebnowcombr

WRL Informaacutetica Ltda Satildeo Paulo Rua Santa Ifigecircnia 211213 Box 02ndash Centro ndash CEP 01207-001 11 3362-1334 wwwwrlcombr

Systech Taquaritinga Rua Satildeo Joseacute 1126 ndash Centro - Caixa Postal 71 ndash CEP 15900-000 16 3252-7308 wwwsystech-ltdcombr

2MI Tecnologia e Informaccedilatildeo Embu Rua Joseacute Bonifaacutecio 55 ndash Jd Independecircncia ndash SP CEP 06826-080 11 4203-3937 www2micombr

Linuxlocal

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

80

SERVICcedil

OS

httpwwwlinuxmagazinecombr

Nerdson ndash Os quadrinhos mensais da Linux Magazine

Calendaacuterio de eventos

Evento Data Local Website

Campus Party 15 a 25 de janeiro Satildeo Paulo SP wwwcampus-partycombr

Bossa Conference 08 a 11 de marccediloPorto de Galinhas PE

wwwbossaconferenceorg

FISL 24 a 27 de junho Porto Alegre RS wwwfislsoftwarelivreorg

Interop 02 e 03 de setembro Satildeo Paulo SP wwwinteropsaopaulocombr

Futurecom 2009 13 a 16 de outubro Satildeo Paulo SP wwwfuturecom2009combr

Iacutendice de anunciantes

Empresa Paacuteg

Campus Party 02

Plusserver 07

Insigne 09

UOL 11

Xandros 13

Impacta 15

Linux Pro 33

Pocket Pro 43

Linuz Technical Review 71

Site LNM 77

Guia de TI 81

Bull 83

Ubiquiti 84

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

82 httpwwwlinuxmagazinecombr

Na Linux Magazine 51

PREVIE

W

Na EasyLinux 14 Monitores gigantes Os monitores LCD de 19 polegadas jaacute tecircm preccedilos bem melhores que haacute um ano Seraacute que jaacute chegou o momento de vocecirc comprar aquele monitor cine-matograacutefi co Quais satildeo as vantagens e desvantagens

do LCD em relaccedilatildeo aos antigos monitores de tubo Ateacute onde 21 polegadas va-lem mais que 19 Na Easy Linux 14 vamos comparar marcas modelos e tecno-logias de monitores agrave ven-da no Brasil para orientar suas compras

A melhor parte de todos os sistemas Empresas como Apple e Micro-soft investem pesado em design para deixarem seus sistemas mais atraentes Como resultado tanto o Mac OS quanto o Windows Vista tecircm forte apelo visual Poreacutem engana-se quem pensa que eacute impossiacutevel alcanccedilar um grau de beleza semelhante no Linux Na Easy Linux 14 vamos mostrar o caminho das pedras para deixar seu Linux com a cara do Mac OS X do Vista e do Windows XP seja por pura diversatildeo ou para facilitar o uso do Linux por quem jaacute estaacute habituado a esses sistemas e tem difi culdade de adaptaccedilatildeo ao pinguumlim

DESTAQUE

Seguranccedila com VoIP Verdadeiros administra-dores pensam em segu-ranccedila o tempo inteiro Mesmo que vocecirc seja um usuaacuterio comum eacute importante saber o que os invasores podem fazer Serviccedilos que costumavam ser seguros se tornam brechas de seguranccedila a menos que vocecirc se mantenha atualizado com essas questotildees

Na Linux Magazine 51 vamos examinar algumas estrateacutegias de seguranccedila recomendadas por especialistas Vocecirc jamais teraacute a rede perfeita ou sequer as ferramentas perfeitas ndash o mundo da seguranccedila de redes muda a todo tempo ndash e como eacute impos-siacutevel descartar defi nitivamente os problemas eacute melhor man-ter-se informado

TUTORIAL

Defi cientes visuais O Linux possui muitos ambientes desktop be-liacutessimos incluindo cubos rotativos e janelas que balanccedilam e queimam Poreacutem considere por exemplo uma aacuterea de trabalho com iacutecones cuidadosamente organizados vocecirc conseguiria utilizaacute-la com o monitor desligado

Apesar das vaacuterias ofertas de softwares pro-prietaacuterios cariacutessimos para leitura da tela e teclados sofi sticados que realmente possibi-litam o uso do computador por defi cientes visuais a maioria das ferramentas e extensotildees necessaacuterias para usuaacuterios cegos ou com visatildeo prejudicada aleacutem daqueles com difi culdades motoras ou mentais jaacute estatildeo presentes nos re-positoacuterios da maioria das distribuiccedilotildees Linux Veja como o projeto Adriane une todos esses recursos num uacutenico sistema desktop destinado a defi cientes visuais

os invasores podem fazer

os invasores podem fazer

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRAacuteTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA AacuteREA p36

44 0708

R$ 1390 euro 750

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWWLINUXMAGAZINECOMBR

CASE ALFRESCO p26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p28Iniciada em Porto Alegre a temporada de seminaacuterios Linux Park de 2008

CEZAR TAURION p34O Coacutedigo Aberto como incentivo agrave inovaccedilatildeo

GOVERNANCcedilA COM

raquo O que dizem os profissionais certificados p24

raquo Cobit CMMI ITIL Quais as melhores praacuteticas p36

raquo ITIL na praacutetica p39

raquo Novidades do ITIL v3 p44

SEGURANCcedilA DNSSEC p69

Com o DNSSEC a resoluccedilatildeo de nomes fica protegida de ataques Mas seupreccedilo vale a pena

REDES IPV6 p64

Conheccedila as vantagens da nova versatildeo do Internet Protocol e veja por queeacute difiacutecil adotaacute-la

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo Relatoacuterios do Squid com o SARG p60

raquo Java Ruby e Rails conheccedila o JRuby on Rails p74

raquo Benchmarks do GCC 43 p58

raquo Becape de bancos de dados com a Libferris p46

raquo LPI niacutevel 2 Servidores NIS e DHCP p52

A REVISTA DO PROFISSIONAL DE TI

AS REDES ATUAIS SAtildeO AMBIENTES HETEROGEcircNEOSO BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p27

raquo Conecte o Linux agrave VPN do Windows p28

raquo MS AD e clientes Linux a soluccedilatildeo definitiva p34

raquo Linux como servidor RDP p40

raquo Agendamento de tarefas livre tambeacutem no Windows p44

Interoperabilidade

Linu

x M

agazin

e

50012009

INTEROPERABILIDADE

VPN

AD

RDP AGEN

DADOR DE TAREFAS BIOM

ETRIA OPEN

ID M

IDS GOOGLE CHARTS

HA POSTGRESQL TALEN

D

WWWLINUXMAGAZINECOMBR

50 Janeiro 2009

SANEADA PELO LINUX P22 Linux na Companhia de Aacuteguas do Maranhatildeo

LEI DOS CALL CENTERS P26 Edgar Silva mostra como a nova lei requer TI

BOCA NO TROMBONE P25 Maddog explica como fazer sua parte nas poliacuteticas puacuteblicas

SEGURANCcedilA BIOMETRIA p72

A autenticaccedilatildeo por impressatildeo digital jaacute eacute realidade Aprenda a implementaacute-la com um especialista

REDES OPENID p68

Uma uacutenica identidade para vaacuterios serviccedilos na Web Mas como fica a seguranccedila

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo MIDs seraacute que a moda pega p17

raquo Faccedila graacuteficos pelo Google p50

raquo HA e PostgreSQL uma oacutetima mistura p54

raquo ETL muito competente com o Talend p62

SUPORTANDO O VISTA

50 0109

R$ 1490 euro 750

9 771806 942009

0 0 0 5 0

copy Linux New Media do Brasil Editora Ltda

Page 2: Interoperabilidade SUPORTANDO O VISTA

copy Linux New Media do Brasil Editora Ltda

3

Expediente editorialDiretor Geral Rafael Peregrino da Silva rperegrinolinuxmagazinecombr

Editor Pablo Hess phesslinuxmagazinecombr

Revisora Aileen Otomi Nakamura anakamuralinuxmagazinecombr

Editora de Arte Paola Viveiros pviveiroslinuxmagazinecombr

Centros de Competecircncia Centro de Competecircncia em Software Oliver Frommel ofrommellinuxnewmediade Kristian Kiszligling kkisslinglinuxnewmediade Peter Kreussel pkreussellinuxnewmediade Marcel Hilzinger hilzingerlinuxnewmediade Centro de Competecircncia em Redes e Seguranccedila Achim Leitner aleitnerlinuxnewmediade Jens-Christoph B jbrendellinuxnewmediade Hans-Georg Eszliger hgesserlinuxnewmediade Thomas Leichtenstern tleichtensternlinuxnewmediade Max Werner mwernerlinuxnewmediade Markus Feilner mfeilnerlinuxnewmediade Nils Magnus nmagnuslinuxnewmediade

Anuacutencios Rafael Peregrino da Silva (Brasil) anuncioslinuxmagazinecombr Tel +55 (0)11 4082 1300 Fax +55 (0)11 4082 1302

Petra Jaser (Alemanha Aacuteustria e Suiacuteccedila) anzeigenlinuxnewmediade

Penny Wilby (Reino Unido e Irlanda) pwilbylinux-magazinecom

Amy Phalen (Estados Unidos) aphalenlinuxmagazinecom

Hubert Wiest (Outros paiacuteses) hwiestlinuxnewmediade

Gerente de Circulaccedilatildeo Claudio Bazzoli cbazzolilinuxmagazinecombr

Na Internet wwwlinuxmagazinecombr ndash Brasil wwwlinux-magazinde ndash Alemanha wwwlinux-magazinecom ndash Portal Mundial wwwlinuxmagazinecomau ndash Austraacutelia wwwlinux-magazineca ndash Canadaacute wwwlinux-magazinees ndash Espanha wwwlinux-magazinepl ndash Polocircnia wwwlinux-magazinecouk ndash Reino Unido wwwlinux-magazinro ndash Romecircnia

Apesar de todos os cuidados possiacuteveis terem sido tomados durante a produccedilatildeo desta revista a editora natildeo eacute responsaacutevel por eventuais imprecisotildees nela contidas ou por consequumlecircncias que advenham de seu uso A utilizaccedilatildeo de qualquer material da revista ocorre por conta e risco do leitor

Nenhum material pode ser reproduzido em qualquer meio em par-te ou no todo sem permissatildeo expressa da editora Assume-se que qualquer correspondecircncia recebida tal como cartas emails faxes fotografi as artigos e desenhos sejam fornecidos para publicaccedilatildeo ou licenciamento a terceiros de forma mundial natildeo-exclusiva pela Linux New Media do Brasil a menos que explicitamente indicado

Linux eacute uma marca registrada de Linus Torvalds

Linux Magazine eacute publicada mensalmente por

Linux New Media do Brasil Editora Ltda Av Fagundes Filho 134 Conj 53 ndash Sauacutede 04304-000 ndash Satildeo Paulo ndash SP ndash Brasil Tel +55 (0)11 4082 1300 ndash Fax +55 (0)11 4082 1302

Direitos Autorais e Marcas Registradas copy 2004 - 2008Linux New Media do Brasil Editora LtdaImpressatildeo e Acabamento ParmaDistribuiacuteda em todo o paiacutes pela Dinap SA Distribuidora Nacional de Publicaccedilotildees Satildeo Paulo

Atendimento Assinante

wwwlinuxnewmediacombratendimentoSatildeo Paulo +55 (0)11 3512 9460Rio de Janeiro +55 (0)21 3512 0888 Belo Horizonte +55 (0)31 3516 1280

ISSN 1806-9428 Impresso no Brasil

Prezados leitores Muitos de vocecircs provavelmente jaacute tiveram a experiecircncia de tentar ex-plicar a outras pessoas o conceito de Software Livre Recentemente tomei conhecimento da iniciativa da Fundaccedilatildeo Mozilla de adotar um novo nome ndash software natural ndash para designar os softwares produ-zidos por ela e creio que essa pequena diferenccedila pode facilitar signi-fi cativamente a compreensatildeo dos princiacutepios do Software Livre pelo puacuteblico em geral

Para explicar a algueacutem do ramo teacutecnico os preceitos do Software Livre o maior desafi o eacute esclarecer como uma empresa pode ganhar dinheiro sem vender seu software e isso muitas vezes se mostra difiacutecil o sufi ciente Para interlocutores natildeo teacutecnicos eacute difiacutecil imaginar como liberdade pode ser associada a um programa pois ldquosoftwarerdquo e ldquolivrerdquo para essas pessoas se relacionam tanto quanto ldquopedrardquo e ldquosatisfeitardquo por exemplo

Quando olho para essa tarefa por vezes tatildeo complicada lamento a infelicidade de quem tenta explicar o termo em inglecircs ndash ldquofree softwarerdquo ndash que traz agrave mente o sentido de gratuidade em vez de liberdade e por isso exige a complementaccedilatildeo ldquofree as in freedomrdquo Estranhamente jaacute ouvi de muitos executivos que pareciam entender o conceito de software livre frases como ldquoaquele software eacute freerdquo o que introduz um novo elemento de duacutevida para quem escuta trata-se de liberdade ou gratuidade

Com o novo ldquosoftware naturalrdquo da Fundaccedilatildeo Mozilla a compreensatildeo do conceito por qualquer pessoa eacute muito mais praacutetica O termo ldquonaturalrdquo traz com facilidade a ideacuteia de uma fruta Para colhermos uma laranja precisamos plantar uma laranjeira antes Embora colher a laranja ateacute seja graacutetis ndash assim como o software natural ndash isso natildeo signifi ca que o processo todo teve custo zero No miacutenimo levou tempo para se realizar ainda que natildeo se tenha gasto dinheiro com adubo sementes aacutegua ou manutenccedilatildeo da terra Alternativamente a laranja ndash ainda natural ndash pode ser comprada no mercado ou feira mais proacuteximos

ldquoNaturalrdquo tambeacutem possui conotaccedilatildeo positiva alimentos naturais fazem bem agrave sauacutede e medicamentos naturais tendem a ter menos efeitos colaterais

Quanto mais penso no adjetivo ldquonaturalrdquo para o software mais me con-venccedilo da escolha acertada da Fundaccedilatildeo Mozilla Minha lista de argumen-tos em favor do novo nome eacute infi ndaacutevel

A quem questiona a relevacircncia de um aspecto aparentemente tatildeo inoacutecuo quanto um nome lembro que CIOs satildeo pessoas assim como usuaacuterios fi nais e todos estamos sujeitos agravequele primeiriacutessimo julgamento por vezes completamente inconsciente de qualquer objeto pessoa ou fenocircmeno com base em seu nome Naturalmente

Pablo HessEditor

ISSN 1806-9428 Impresso no BrasilISSN 1806-9428 Impresso no Brasil

Software natural EDITORIA

L

copy Linux New Media do Brasil Editora Ltda

4 httpwwwlinuxmagazinecombr

CAPAIntegraccedilatildeo transparente 27

Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo

que vocecirc queira viver em um mundo de coacutedigo aberto

ele ainda estaacute cheio de Windows A ediccedilatildeo deste

mecircs traz um apanhado de estrateacutegias para facilitar o

conviacutevio com o sistema operacional da Microsoft

Rede fechada 28

Clientes Linux eventualmente precisam de uma matildeozinha

para se conectar a servidores VPN do Windows

Na ativa 34

O Likewise Open oferece integraccedilatildeo faacutecil a ambientes

Active Directory Mostramos como instalar e configurar o

sistema de autenticaccedilatildeo amigaacutevel para administradores

O manda-chuva do terminal 40

O xrdp ajuda os seus clientes de terminal

Windows a se conectarem ao Linux

Muito aleacutem do Cron 44

Planejar e agendar tarefas computacionais pode exigir muito

trabalho principalmente se abranger muacuteltiplas maacutequinas

Conheccedila uma ferramenta que facilita muito essa aacuterea

IacuteND

ICE

copy Linux New Media do Brasil Editora Ltda

5Linux Magazine 50 | Janeiro de 2009

| IacuteNDICELinux Magazine 50

COLUNASKlaus Knopper 08

Charly Kuumlhnast 10

Zack Brown 12

Inseguranccedila 14

Augusto Campos 17

NOTIacuteCIASGeral 18 Xen ganha recursos e promete integraccedilatildeo

LPI lanccedila provas 303 no Brasil

Lanccedilado o Fedora 10

Alta disponibilidade

Linux versus OpenSolaris e FreeBSD

Google Android no Openmoko

CORPORATENotiacutecias 20 ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

MS Windows eacute mais econocircmico

Sun lanccedila MySQL 51

VMware adquire Tungsten Graphics

Google e Red Hat fi rmam parceria

Insigne jaacute planeja 2012

Mandriva demite dois desenvolvedores

Entrevista CAEMA 22

Coluna Cezar Taurion 24

Coluna Jon ldquomaddogrdquo Hall 25

Coluna Edgar Silva 26

TUTORIALGraacutefi cos via Web 50 A API do Google Chart permite desenhar graacutefi cos

planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simples

Banco cheio mas disponiacutevel 54 O PostgreSQL natildeo possui embutido um mecanismo

para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia

ANAacuteLISE O talento do Talend 62 Quem procura uma soluccedilatildeo ETL para Business Intelligence

natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda

REDESIdentidade aberta mas segura 68 O OpenID oferece um padratildeo aberto para

login em websites fechados

SEGURANCcedilAAutenticaccedilatildeo biomeacutetrica 72

A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e confi gurar esse recurso de seguranccedila

SERVICcedilOSEditorial 03Emails 06Linuxlocal 78Eventos 80Iacutendice de anunciantes 80Preview 82

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

copy Linux New Media do Brasil Editora Ltda

6 httpwwwlinuxmagazinecombr

CA

RTA

S

sanj

a gj

ener

o ndash

ww

ws

xch

u

Emails para o editor

Permissatildeo de EscritaSe vocecirc tem duacutevidas sobre o mundo Linux criacuteticas ou sugestotildees que possam ajudar a melhorar a nossa revista escreva para o seguinte endereccedilo cartaslinuxmagazinecombr Devido ao grande volume de correspondecircncia torna-se impossiacutevel responder a todas as duacutevidas sobre aplicativos confi guraccedilotildees e problemas de hardware que chegam agrave Redaccedilatildeo mas garantimos que elas satildeo lidas e analisadas As mais interessantes satildeo publicadas nesta seccedilatildeo

Gestatildeo empresarial Primeiramente gostaria de parabenizaacute-los pela revista que possui oacutetimo conteuacutedo poucas propagandas e eacute muito objetiva em suas mateacuterias

Jaacute estive pesquisando poreacutem eacute muito difiacutecil en-contrar sistemas para gerenciamento de empresas como contas a pagar a receber controle de estoque etc Este eacute acredito eu um dos maiores problemas para conseguirmos migrar os nossos clientes para a plataforma Linux

Gostaria de pedir agrave Linux Magazine que se pos-siacutevel indicasse algumas opccedilotildees de softwares (livres ou natildeo) para gestatildeo de empresas para que pudeacutesse-mos analisaacute-los

Ivan Moretto Leme SP

Resposta Prezado Ivan muito obrigado pelos elogios Eacute sempre muito gratifi cante receber o reconhecimento por parte de nossos leitores Mas por favor natildeo hesite em nos informar tambeacutem o que poderia ser melhorado na Li-nux Magazine

Sobre a sua questatildeo jaacute publicamos duas ediccedilotildees (39 e 30) sobre esses sistemas cha-mados ERP (do inglecircs ldquoEnterprise Resour-ce Planningrdquo ndash Planejamento de Recursos da Empresa)

Como vocecirc pode conferir na listagem das mateacuterias de capa dessas ediccedilotildees haacute diversos sistemas ERP (proprietaacuterios ou de coacutedigo aberto) para Linux com destaque para Adem-piere Compiere e Openbravo ndash por sinal todos os trecircs tecircm o coacutedigo aberto

copy Linux New Media do Brasil Editora Ltda

7

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

8 httpwwwlinuxmagazinecombr

Pergunte ao Klaus

Klaus KnopperO professor Klaus responde as mais diversas duacutevidas dos leitores

Espaccedilo na telaHaacute uns dois anos eu comprei um PC bem baacutesico com chip graacutefico onboard Pluguei nele um moni-tor LCD de 19 polegadas (1280x1024) mas troquei-o por um de 22 polegadas (1680x1050) um ano de-pois No Centro de Controle do KDE selecionei a resoluccedilatildeo de 1680x1050 mas agora ele exibe e usa 1680x1200

Como meu monitor natildeo suporta essa resoluccedilatildeo eacute como se meu monitor estivesse ldquoflutuandordquo sobre a aacuterea de trabalho quando chego o mouse perto da base do monitor ele desliza a imagem para baixo mostrando a barra inferior do KDE e escondendo os 150 pixels laacute de cima

Eu gosto desse comportamento pois os progra-mas costumam ter seus menus na parte de cima da janela entatildeo eu natildeo preciso descer para a base com frequumlecircncia Aleacutem disso a base se torna um bom lo-cal para eu jogar janelas que natildeo quero visualizar no momento

Minha duacutevida eacute se essa nova configuraccedilatildeo eacute causa-da por um problema de driver ou se eu encontrei um recurso do Xorg que eacute comum mas pouco usado

Testei recentemente o Fedora 8 e ele reconhece automaticamente o tamanho do monitor Agraves vezes eu sinto falta dos 150 pixels de altura que sobram para baixo Existe alguma forma de recuperaacute-los

RespostaOs ldquo150 pixels ocultosrdquo de fato satildeo causados por

um recurso do servidor X Se o tamanho da tela for configurado como 1680x1050 o Xorg entraraacute no modo de deslizamento (scrolling mode)

Novas versotildees do Xorg substituem esse recurso pela alteraccedilatildeo da resoluccedilatildeo da aacuterea de trabalho usando a extensatildeo randr A vantagem eacute que a aacuterea de trabalho ajusta seu tamanho automaticamente ao se alterar a resoluccedilatildeo

Aleacutem disso alternar entre diferentes dispositivos de saiacuteda eacute mais faacutecil (por exemplo conectar um projetor com uma resoluccedilatildeo diferente ou usar no monitor interno a resoluccedilatildeo do externo) O Xorg carrega automaticamente a extensatildeo randr e depois

as configuraccedilotildees de Modes no arquivo etcX11xorgconf satildeo ignoradas em favor do que o monitor especifica como resoluccedilatildeo favorita

Eacute possiacutevel fazer o Xorg alterar sua resoluccedilatildeo dinami-camente usando o krandtray (no KDE) ou o comando xrandr (na linha de comando) Por exemplo

xrandr --output LVDS --auto

tentaraacute alinhar automaticamente a resoluccedilatildeo do servidor X agrave do monitor enquanto

xrandr --output LVDS --mode 800x600

ou

xrandr --output LVDS -s 800x600

usaraacute o modo ou resoluccedilatildeo para o tamanho de 800x600 especificado no comando o que tambeacutem faz certos ambientes desktop adotarem um tama-nho de tela diferente

xrandr --output VGA --auto

deve ativar a porta VGA externa de um notebook e tambeacutem fazer o desktop adotar a resoluccedilatildeo preferida do monitor ou projetor ligado a essa porta

No seu caso para retornar ao comportamento original com 150 pixels ldquosobrandordquo (desativando o randr no Xorg) basta adicionar a seguinte seccedilatildeo ao seu arquivo etcX11xorgconf

Section ldquoServerFlagsrdquo Option ldquoRandRrdquo ldquofalserdquoEndSection

CO

LU

NA

Escreva para o KlausEnvie suas perguntas em portuguecircs ou inglecircs para klauslinuxmagazinecombr e tire todas as suas duacutevidas

Linux Magazine 50 | Janeiro de 2009

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

9

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

10 httpwwwlinuxmagazinecombr

Siege

Charly Kuumlhnast O cerco a Troacuteia durou dez anos e terminou somente quanto Ulisses introduziu um cavalo de madeira dentro da cidade Charly tambeacutem estaacute planejando um cerco e o alvo eacute seu proacuteprio servidor web Naturalmente ele natildeo tem dez anos para completar essa tarefa nem Ulisses como parte de sua equipe

Estava checando meu servidor Apache e me lembrei do mito do monstro marinho Cila que deu cabo de nada menos que seis ho-

mens de Ulisses voltando de Troacuteia a caminho de casa O moacutedulo de multi-processamento ndash MPM worker ndash do meu servidor tambeacutem eacute capaz de devo-rar muacuteltiplas requisiccedilotildees numa talagada soacute mas ateacute onde ele aguumlenta Quantas threads eu preciso con-fi gurar para conseguir que ele entregue o maacuteximo de desempenho E a partir de quantas threads isso se torna um desperdiacutecio

Teste de carga Usando a ferramenta de ataque Siege [1] vou tentar responder essas questotildees por meio de um teste de car-ga O programa contempla dois modos de ataque o primeiro simula o comportamento de um ser humano navegando na Internet o que explica o intervalo de trecircs segundos entre cada dois acessos No segundo conhecido como modo benchmark esses intervalos satildeo eliminados e a ferramenta faz solicitaccedilotildees ao servidor ininterruptamente Para fazer o servidor ldquosuarrdquo o Sie-ge dispotildee de um exeacutercito de usuaacuterios de contingente confi guraacutevel ndash dez por padratildeo mas eacute possiacutevel usar o paracircmetro a seguir para aumentar o tamanho da tro-pa ateacute que o servidor web peccedila misericoacuterdia e nossos agressores consumam todos os recursos do sistema

--concurrent=ltnuacutemerogt

Como entrar em Troacuteia Como o Siege sabe qual servidor atacar Haacute duas opccedilotildees para isso o paracircmetro

--url=rdquohttpltmeusitecomgtltindexhtmlgtrdquo permite que vocecirc forneccedila a URL que o programa solicitaraacute repetidamente Jaacute a opccedilatildeo

--file=rdquohomecharlysiege-urlstxtrdquo

eacute mais interessante pois permite a criaccedilatildeo de uma sequumlecircncia arbitrariamente longa de endereccedilos web para o Siege atacar O parametro --reps=ltnuacutemerogt permite especifi car quantas vezes o programa deveraacute repetir o teste de carga

Tambeacutem eacute possiacutevel usar o paracircmetro --internet para dizer ao Siege para natildeo realizar as requisiccedilotildees na ordem especifi cada no arquivo siege-urlstxt mas fazecirc-lo de maneira aleatoacuteria o que eacute muito mais proacuteximo da realidade

Fim da batalha Para evitar que o teste de carga se estenda indefi nida-mente eacute prudente utilizar o paracircmetro --time para limitar seu tempo de execuccedilatildeo O ataque cessaraacute ao fi nal do tempo indicado mesmo que a quantidade de execuccedilotildees especifi cada pelo paracircmetro --rep ainda natildeo tenha sido atingida

Apoacutes sua execuccedilatildeo ter sido completada o Siege mostra um resumo dos resultados encontrados (veja a fi gura 1 )

CO

LU

NA

Mais informaccedilotildees

[1] Siege httpwwwjoedogorgJoeDogSiege

Figura 1 Apoacutes a batalha contra o servidor web o Siege apresenta os resultados

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

11

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

Gab

arit

o

Soluccedilatildeo faacutecil e descomplicada para empresas de qualquer tamanho colocarem seus produtos agrave venda na internet

R$4900

por mecircs

a partir de

senhorlojasimplesindd 1 121008 110411 AM

copy Linux New Media do Brasil Editora Ltda

12 httpwwwlinuxmagazinecombr

Crocircnicas do kernel

Zack BrownOs acontecimentos mais recentes na histoacuteria do kernel

Erradicaccedilatildeo do Big LockFrederic Weisbecker criou o Big Kernel Lock Tracer (rastreador do Big Lock ndash grande bloqueio ndash do ker-nel) que rastreia os tempos de atraso causados pelo Big Kernel Lock ou BKL Isso pode ajudar a iden-tificar aacutereas especiacuteficas nas quais o BKL deveria ser eliminado primeiro Linus Torvalds sugeriu livrar-se do BKL e substituiacute-lo por estruturas de bloqueio mais simples Entretanto nem todas as situaccedilotildees podem ser resolvidas com um bloqueio geneacuterico e o coacute-digo de bloqueio estaacute espalhado por todo o kernel o que dificulta qualquer tipo de esforccedilo conjunto Uma tentativa no momento eacute ldquoempurrarrdquo todo o

coacutedigo do BKL para sua proacutepria parte da aacutervore do kernel para centralizaacute-lo de forma a trataacute-lo de uma soacute vez Os participantes de todo o espectro do desen-volvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho A ferramenta de Frederic pode ajudar os desenvolvedores a concentrar sua atenccedilatildeo em aacutereas que beneficiariam a maioria

Redefinindo Load AverageSena Senerviratne e David Levy estatildeo preparando algumas mudanccedilas para o caacutelculo do valor de load average (carga meacutedia) no Linux Sua ideacuteia eacute em vez de calcular apenas um uacutenico nuacutemero para re-presentar toda a carga meacutedia do sistema fornecer muacuteltiplas estatiacutesticas Por exemplo eles querem separar do resto do sistema a carga de IO de disco

para visualizarem esse dado independentemente Aleacutem disso desejam ativar o caacutelculo de load avera-ge por usuaacuterio para que cada usuaacuterio visualize os efeitos sobre o seu sistema Arjan van de Ven pediu encarecidamente que eles apenas acrescentem esta-tiacutesticas sem alterar o comportamento dos nuacutemeros que o sistema jaacute produz

MantenedoresTheodore (Ted) Y Tsrsquoo atualizou o arquivo MAINTAINERS listando-se como mantenedor do sistema de arquivos Ext4 no lugar de Andrew Morton e Stephen Tweedie embora isso natildeo represente uma mudanccedila real de man-tenedor De acordo com Ted a entrada originalmente foi simplesmente copiada daquela do Ext3 e jamais foi precisa o que seu patch agora corrigiu

Um detalhe interessante eacute que embora Andreas Dilger natildeo esteja incluiacutedo como co-mantenedor no patch de Ted a lista de emails para submissatildeo de patches relatoacuterios de bug etc inclui o email de Andreas junto com o de Ted O email de Andreas tambeacutem estaacute listado junto com o de Andrew e Ste-phen na entrada original equivocada Geralmente isso significaria que ele dedica muito trabalho ao projeto e pode atuar como ldquotenenterdquo de Ted da mesma forma que Linus Torvalds confia em seus ldquotenentesrdquo para facilitar seu trabalho de inclusatildeo de coacutedigos no kernel

Mike Frysinger postou um patch para o arquivo MAINTAINERS listando a si mesmo e Subrata Modak como co-mantenedores do LTP (Linux Test Project) Esse projeto patrocinado pela SGI e IBM oferece um conjunto de aproximadamente 3 mil testes para avaliar a confiabilidade robustez e estabilidade do sistema operacional Linux

CO

LU

NA

Sobre o autorA lista de discussatildeo Linux-kernel eacute o nuacutecleo das atividades de desenvolvimento do ker-nel Zack Brown consegue se perder nesse oceano de mensagens e extrair significado Sua newsletter Kernel Traffic esteve em ativi-dade de 1999 a 2005

Os participantes de todo o espectro do desenvolvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho

copy Linux New Media do Brasil Editora Ltda

13

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

O Scalix eacute uma soluccedilatildeo completa para mensagens que suporta muacuteltiplos servidores e atende agraves necessidades de sua empresa Natildeo importa otamanho dela Baseia-se em uma Plataforma Colaborativa que serve de fundaccedilatildeo para todas as ediccedilotildees desse produto

Maiores informaccedilotildees wwwsentegritycombr EUA 646-747-7648 | Satildeo Paulo 11 5105-9037 | Rio de Janeiro 21 2526-7262

Reduza os custos de comunicaccedilatildeo usando Scalix

copy Linux New Media do Brasil Editora Ltda

14 httpwwwlinuxmagazinecombr

A quarta geraccedilatildeo dos rootkits se baseia no hardware e eacute quase indetectaacutevel

InseguranccedilaAnalisamos a histoacuteria dos rootkits incluindo a sua mais nova encarnaccedilatildeo o DR RootKitpor Kurt Seifried

Originalmente eu pretendia escrever um artigo sobre o estado da arte dos rootkits

e as ferramentas que poderiam ser usadas para detectaacute-los Foi aiacute que acabei topando com um problemi-nha os rootkits mais avanccedilados e modernos tendem a ser realmente bons em evitar sua detecccedilatildeo Com ldquorealmente bonsrdquo quero dizer que seraacute improvaacutevel para qualquer um detectaacute-los a menos que se lance matildeo de teacutecnicas como a anaacutelise detalhada de uma coacutepia (dump) da memoacuteria por exemplo comparan-do-se a partir daiacute a imagem real do kernel carregada na memoacuteria com aquela que seria de se esperar

Liccedilotildees histoacutericasRootkits tradicionais satildeo programas simples geralmente rodando como um serviccedilo isolado e fornecendo aces-so a uma backdoor Eles satildeo relativa-mente faacuteceis de detectar bastando para isso procurar novos processos ou programas recentemente instalados Isso levou os agressores a comeccedilar a sobrescrever os programas executaacuteveis do sistema Via de regra esses pro-gramas satildeo substituiacutedos por versotildees modificadas pelo agressor tais como versotildees do OpenSSH com nome e senha do administrador embutidas diretamente no programa com o intuito de escalar privileacutegios e obter direitos de root no sistema O adven-to de ferramentas como o Tripwire e o uso cada vez mais comum de gerenciadores de pacotes com a ca-

pacidade de verificar a integridade dos arquivos instalados no sistema ndash tais como rpm e dpkg ndash acabou por facilitar a detecccedilatildeo desse tipo de rootkit tambeacutem [1]

Rootkits para o kernelNatildeo demorou muito para que os agressores percebessem que meacuteto-dos mais sofisticados de ocultaccedilatildeo e subversatildeo eram necessaacuterios para controlar um sistema o que levou agrave criaccedilatildeo de rootkits para o kernel Assim ao modificar a tabela de ca-madas do sistema um agressor pode evitar facilmente a sua detecccedilatildeo pois em poucas palavras ele controla o que eacute exibido e como seus programas estatildeo sendo executados

Tradicionalmente um agressor usa um dos dois meacutetodos para modificar o kernel do sistema ou ele carrega um moacutedulo com coacutedigo malicioso no kernel (como o heroin por exemplo) ou modifica o kernel carregado na memoacuteria escrevendo no dispositivo especial devkmem (como o SucKIT por exemplo) A desvantagem dessa teacutecnica eacute que como esses ataques estatildeo carregados apenas na memoacuteria do sistema normalmente natildeo sobre-vivem a uma reinicializaccedilatildeo

Por mais difiacutecil que possa parecer esses rootkits podem ser detectados comparando-se a tabela atual de cha-madas do sistema com a que seria de se esperar originalmente (isto eacute examinando-se o arquivo Systemmap) Coacutepias da memoacuteria do sistema po-dem ser feitas e usadas para verificar

se o kernel carregado na memoacuteria estaacute intacto

Quando chegam a esse niacutevel o que vocecirc acha que os agressores fazem Vatildeo mais fundo ainda claro

Hardware e virtualizaccedilatildeoLanccedilado em 2006 durante a Black Hat Conference em Las Vegas o primeiro rootkit desenvolvido para comprometer diretamente o hardware foi chamado de Blue Pill [2] Os processadores mo-dernos da AMD e da Intel dispotildeem de uma gama de recursos para suportar virtualizaccedilatildeo de sistemas operacionais E como natildeo eacute mais necessaacuterio que esses rootkits modifiquem o que quer que seja no sistema operacional para funcionar eles satildeo muito mais difiacuteceis de detec-tar de modo que somente verificar a integridade da tabela de chamadas do sistema natildeo vai funcionar Contudo esses rootkits modificam a tabela de descritores de interrupccedilatildeo (IDT na sigla em inglecircs) que eacute mantida em um dos registradores do processador (o IDTR) [3]

Como passam a existir dois IDTRs no sistema comprometido ndash um real e outro falso que eacute apresentado ao sistema operacional ndash este uacuteltimo vai ocupar uma posiccedilatildeo de memoacuteria diferente da de costume Felizmente a instruccedilatildeo privilegiada Store Inter-rupt Descriptor Table (SIDT) pode ser executada a partir do espaccedilo de usuaacuterio do sistema retornando de forma confiaacutevel o conteuacutedo do IDTR

CO

LU

NA

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

15Linux Magazine 50 | Janeiro de 2009

disponiacutevel para o sistema operacional (o que natildeo serve para muita coisa pois o sistema jaacute foi comprometi-do) bem como ndash e o que eacute mais importante ndash a posiccedilatildeo da memoacuteria em que o IDTR se encontra Pare-ce que chegamos a um beco sem saiacuteda os agressores criaram novos meacutetodos para esconder os rootkits e os defensores encontraram meios para detectaacute-los

A nova geraccedilatildeo de rootkitsLanccedilados em setembro de 2008 pela Immunity Inc o DR RootKit [4] im-plementa ldquoganchosrdquo (hooks) para as chamadas de sistema no kernel Linux 26 sem modificar nem a tabela de chamadas do sistema nem a tabela de descritores de interrupccedilatildeo Para fazer isso ele introduz breakpoints de hardware no manipulador de chamadas do sistema Isso corres-

ponde agrave inclusatildeo de um ldquovigiardquo na memoacuteria da tabela de chamadas do sistema especificamente observando a entrada __NR_syscall usada para exportar nuacutemeros de chamadas do sistema Basicamente o rookit se comporta como uma ferramenta de depuraccedilatildeo de programas espe-rando que determinadas chamadas do sistema sejam executadas e mo-

dificando-as quando isso acontece Os ganchos do DR RootKit estatildeo listados na tabela 1

O DR RootKit dispotildee de recursos tais como ocultaccedilatildeo de processos e prevenccedilatildeo do teacutermino de execuccedilatildeo de processos ocultos (o que significa que um agressor pode executar pro-gramas ocultos e vocecirc natildeo tem como terminaacute-los com o comando kill

Tabela 1 Chamadas do sistema

getdents64 Lecirc entradas de diretoacuterio

getdents Lecirc entradas de diretoacuterio

chdir Muda o diretoacuterio de trabalho

open Abre um arquivo ou dispositivo

execve Executa um programa

socketcall Chamadas de sistema via socket

fork Cria um processo filho

exit Encerra o processo atual

kill Envia um sinal a um processo

getpriority Obteacutem prioridade de escalonamento para um programa

| COLUNAInseguranccedila

copy Linux New Media do Brasil Editora Ltda

16 httpwwwlinuxmagazinecombr

Mais informaccedilotildees

[1] Amir Alsbih ldquoPassagem Secreta Teacutecnicas de criaccedilatildeo de backdoorsrdquo httpwwwlinuxmagazinecombrarticlepassagem_secreta

[2] Blue Pill httpbluepillprojectorg

[3] Red Pill httpwwwinvisiblethingsorgpapersredpillhtml

[4] DR RootKit httpwwwimmunityinccomresources-freesoftwareshtml

[5] Core Security Technologies httpwwwcoresecuritycom

mesmo que vocecirc consiga descobrir a identidade ndash o ID ndash do processo) Se vocecirc usar os exemplos forneci-dos com o pacote eacute relativamente simples estender e criar outras cha-madas de sistema modificadas Por exemplo vocecirc pode alterar o conjun-to de recursos disponiacuteveis para pro-cessos ndash o capset O proacuteprio rootkit eacute um moacutedulo carregaacutevel no kernel o que simplifica sua inserccedilatildeo em um sistema comprometido Poreacutem da mesma forma que acontece com outros rootkits residentes na memoacute-ria a reinicializaccedilatildeo do sistema iraacute removecirc-lo da memoacuteria

Se vocecirc quiser estender o rootkit pode por exemplo inserir suas proacuteprias chamadas do sistema personalizadas Forneci um exemplo para alterar a chamada de sistema exit Em poucas palavras o processo consiste em de-clarar seu proacuteprio gancho para alterar uma chamada de sistema e entatildeo im-plementar uma chamada de sistema customizada ndash isso eacute realmente simples O melhor lugar para comeccedilar eacute o coacute-digo-fonte do kernel ndash mais especifica-mente no subdiretoacuterio kernel onde a maioria das chamadas do sistema satildeo definidas Por exemplo se houver um sistema no qual os recursos em uso restringem o que programas podem ou natildeo fazer vocecirc pode simplesmen-te modificar a chamada de sistema do_sys_capset_other_tasks que sempre retorna todos os recursos de um ID de processo especiacutefico como

-2376 +2379 if (capable(CAP_SETPCAP))return -EPERM+ if (pid == 12345) magic process number + return cap_set_all_evil(effective inheritable permitted)

Como vocecirc pode notar mesmo a menor das modificaccedilotildees pode ter um efeito significativo Assim de uma hora para outra o processo

com o ID 12345 teraacute sempre todos os recursos o que permite a ele fa-zer praticamente tudo o que quiser Assim com apenas uma chamada de sistema um agressor pode criar uma backdoor eficiente

O uacutenico modo de detectar um rootkit desses eacute por meio da mediccedilatildeo de atrasos ou de condiccedilotildees de corri-da (race conditions) que sejam intro-duzidas pelo rootkit Se um rootkit estivesse presente o sistema deveria ficar mais lento do que de costume mas a mediccedilatildeo dessa variaccedilatildeo natildeo eacute uma tarefa simples Aleacutem disso o programa eacute relativamente simples e pode ser estendido facilmente de modo a se esconder de maneira mais eficiente e tornando sua detecccedilatildeo ainda mais difiacutecil

Abordagem alternativaClaro que vocecirc pode comprometer um sistema e manter o acesso de outras formas enquanto permanece escondido Uma outra empresa que desenvolve software de verificaccedilatildeo de invasatildeo chamada Core Security [5] adotou uma abordagem de injetar coacutedigo hostil em processos que jaacute te-nham sido atacados Por exemplo se vocecirc criar uma brecha no conhecido servidor web Apache conseguiraacute inje-tar coacutedigo nele que lhe garanta acesso remoto ao sistema Essa teacutecnica eacute algo limitado se comparada com um roo-tkit de kernel completo ou com um rootkit de hardware A desvantagem dessa teacutecnica satildeo os mecanismos de proteccedilatildeo do sistema operacional tais como o SELinux que permanecem capazes de forccedilar uma poliacutetica de seguranccedila Contudo para agressores obstinados isso natildeo costuma ser um problema muito seacuterio pois eles podem usar um exploit local para comprome-ter ainda mais o sistema ou mesmo permanecer dentro das condiccedilotildees impostas pela poliacutetica definida pelo SELinux mas ainda sim obter infor-maccedilotildees ou usar o sistema para realizar outros ataques maliciosos

ConclusatildeoA boa notiacutecia eacute que chegando agrave camada de hardware os agresso-res (pelo menos conceitualmente) atingiram a uacuteltima camada passiacute-vel de abuso A maacute notiacutecia eacute que um grande contingente de truques de hardware pode ser usado para manter o controle sobre um sistema comprometido Por exemplo uma placa de viacutedeo moderna tem acesso direto agrave memoacuteria (o que significa que ela pode fazer o que bem en-tender com a memoacuteria do sistema sem que o sistema operacional possa interferir significativamente no pro-cesso) dispotildee de memoacuteria proacutepria e de uma grande quantidade de poder de processamento (tanto que estatildeo sendo usadas por muitos para criar clusters de baixo custo) Placas mais modernas tecircm seu firmware arma-zenado em memoacuteria flash passiacutevel de atualizaccedilatildeo por software e eu natildeo tenho a miacutenima duacutevida de que algum dia algueacutem vai criar algum meacutetodo para abusar da placa de viacutedeo com o propoacutesito de controlar um sistema comprometido

COLUNA | Inseguranccedila

copy Linux New Media do Brasil Editora Ltda

17Linux Magazine 50 | Janeiro de 2009

COLUNA

MID mais um degrau na escadaria da mobilidade

Augusto CamposNem smartphone nem subnotebook os MIDs chegam como uma nova categoria para facilitar nossas vidas

Neste iniacutecio de 2009 tive a oportunidade de segurar em minhas matildeos um pedaccedilo do futuro do desktop Soacute que natildeo se tra-

tava propriamente de um desktop ou pelo menos natildeo daquele modelo que aprendemos a conhecer com uma infinidade de arquivos gravados em um disco riacutegido ao meu alcance um ambiente de trabalho cheio de aplicativos instalados local-mente e a ocupaccedilatildeo de uma vasta aacuterea em cima da escrivaninha

Natildeo era nem mesmo um daqueles notebooks pequeninos estilo Eee PC que foram se popula-rizando mundialmente ao longo de 2008 Era algo menor mais singelo mas com poder de processa-mento surpreendente um Aigo MID equipamento do qual provavelmente vocecirc ainda natildeo ouviu falar ndash ateacute porque ele parece estar bem distante do nosso mercado neste momento

Os MIDs ou Mobile Internet Devices satildeo dis-positivos que parecem ficar entre os smartphones e os subnotebooks de hoje Como em uma cadeia darwiniana eu ateacute apostaria que os mais bem-suce-didos entre eles vatildeo acabar ficando no nicho exato que hoje eacute ocupado por um destes dois extremos (os smartphones ou os subnotebooks) ateacute mesmo porque essas fronteiras vatildeo ficando cada vez mais difusas com o passar do tempo Mas hoje eles satildeo uma categoria agrave parte e torccedilo para que suas carac-teriacutesticas e possibilidades sejam logo herdadas pelos celulares (ou pelos subnotebooks)

O equipamento com o qual tive oportunidade de brincar um pouco tem caracteriacutesticas de um PC de pequeniacutessimo porte com um display sufi-cientemente grande para mostrar os sites da web 20 nossos de cada dia um teclado escamoteaacutevel cacircmera microfone e acesso a redes Wi-Fi Alguns modelos tecircm acesso agrave conectividade via redes mais amplas (CDMA 3G etc) mas natildeo eacute o caso do meu E eles permitem fazer o que eu mais faccedilo no meu desktop diariamente acessar a web comuni-car-me por IM VoIP e email consultar (ou editar levemente) documentos e textos e ateacute digitar esta coluna que vocecirc estaacute lendo

E o mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres como o Firefox e o Pidgin entre vaacuterios outros E nem eacute soacute pela questatildeo do custo de aquisiccedilatildeo esses aplicativos livres satildeo leves por natureza e ainda podem ser alterados de acordo com as especificaccedilotildees do aparelho no qual seratildeo distribuiacute-dos seja para ocupar menos disco preencher menos memoacuteria RAM ou mesmo gastar menos bateria

Hoje o acesso agrave Web eacute cada vez mais uma condiccedilatildeo para que eu possa desempenhar bem as minhas ativi-dades e quanto mais rico esse acesso melhor a cada dia eacute necessaacuterio interagir digitar textos captar imagens comunicar-se por viacutedeo e voz conectar-se a redes de

variadas tecnologias abertas Acredito que em algum momento os celulares vatildeo estar aptos a prover com con-forto e economia esses recursos e que vatildeo estar rodando um sistema operacional livre quando o fizerem

Enquanto esse dia natildeo chega eacute interessante ver como a induacutestria avanccedila nesta direccedilatildeo por vias obliacute-quas que convergem em uma direccedilatildeo que muito nos interessa softwares livres conectando-se a pro-tocolos abertos e provendo serviccedilos que facilitam as nossas vidas

COLUNA

Sobre o autorAugusto Ceacutesar Campos eacute administrador de TI e desde 1996 manteacutem o site BR-linuxorg que cobre a cena do Software Li-vre no Brasil e no mundo

O mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres

copy Linux New Media do Brasil Editora Ltda

18

NO

TIacuteC

IAS

httpwwwlinuxmagazinecombr

Xen ganha recursos e promete integraccedilatildeoKeir Fraser da Xensource (atualmente Citrix) anunciou na lista xen-devel a disponibilidade de uma aacutervore com o coacutedigo-fonte para criaccedilatildeo de um dom0 completo do Xen no kernel Linux 2627

Segundo Keir ldquoa intenccedilatildeo eacute fornecer uma aacutervore uacutenica para desenvolvimento e testes voltada aos desenvolvedores que pre-cisarem de um kernel 26 mais modernordquo e menciona o geren-ciamento de energia como um dos motivos para isso

O porte da funcionalidade de dom0 do Xen para o Linux atu-almente depende da implementaccedilatildeo final das pv_ops (operaccedilotildees para-virtualizadas) um conjunto de ldquoganchos de coacutedigordquo (hooks) no kernel que permitem sua operaccedilatildeo mediante o uso da teacutecnica de para-virtualizaccedilatildeo Atualmente o escopo de funcionalidade das pv_ops permite apenas o funcionamento do Linux como

Alta disponibilidadeManter a sincronizaccedilatildeo perfeita de muacuteltiplos servidores Xen cada um com diversas maacutequinas virtuais natildeo eacute tarefa das mais faacuteceis Atualmente eacute preciso replicar arquivos de configuraccedilatildeo entre os servidores e manter sincronizado todo o restante da estrutura

Felizmente tudo isso pode mudar para melhor com o projeto Kemari Trata-se de um software de coacutedigo aberto (GPL) descrito por seus autores como ldquoum mecanismo de coacutedigo aberto para sin-cronizaccedilatildeo de maacutequinas virtuais para toleracircncia a falhas Oferece uma teacutecnica utilizaacutevel para toleracircncia a falhas que natildeo requer o uso de hardware especiacutefico ou a modificaccedilatildeo dos aplicativos ou sistema operacionalrdquo

Lanccedilado o Fedora 10Seis meses apoacutes o lanccedilamento do Fedora 9 o projeto livre lanccedilou a versatildeo 10 da popular distribuiccedilatildeo Linux codinome Cambridge

O Fedora 10 usa o kernel Linux 26275 anunciado no uacuteltimo dia 7 O projeto tambeacutem estaacute buscando trazer seus softwares a um novo niacutevel e ele inclui o OpenOfficeorg 30 Gnome 2241 Eclipse 34 e RPM 46 O produto promete um melhor gerenciamento de impressoras e alguns interessantes recursos de vir-tualizaccedilatildeo No momento o KVM estaacute disponiacutevel por padratildeo no Fedora 10 na versatildeo 74-5 (no Fedora 9 o KVM era apenas uma opccedilatildeo) Certamente a aquisiccedilatildeo da Qumranet criadora e desenvolvedora do KVM pela Red Hat patrocinadora do Fedora tem grande influecircncia nisso No entanto o uso do KVM natildeo implica a rejeiccedilatildeo do ldquoconcorrenterdquo Xen o hypervisor tradicional estaacute presente na versatildeo 330-1 As ferramentas de virtualizaccedilatildeo de criaccedilatildeo do proacuteprio Fedora como a libvirt e o virt-manager tambeacutem estatildeo incluiacutedas

Outra importante novidade do Fedora 10 eacute seu tempo de inicializaccedilatildeo que foi reduzido graccedilas ao novo sistema graacutefico de inicializaccedilatildeo Plymouth

domU (ou seja como maacutequina virtual) enquanto o kernel do dom0 ainda eacute res-trito agrave versatildeo 2618 do Linux

A expectativa eacute que os desenvolvedores da Novell que estatildeo trabalhando nessa ta-refa consigam incrementar as pv_ops de forma a permitir seu uso tambeacutem como dom0 o que permitiria o uso de versotildees mais recentes do kernel Linux (com to-das as vantagens que trazem) no dom0 Posteriormente as novas pv_ops tambeacutem devem ser incluiacutedas na aacutervore principal do kernel unindo definitivamente os projetos Xen e Linux

O objetivo do projeto eacute ldquomanter as maacute-quinas virtuais rodando transparentemente em caso de falhas de hardwarerdquo Para isso ele ldquotransfere o estado da maacutequina virtual primaacuteria para a secundaacuteria quando a pri-maacuteria estaacute prestes a enviar um evento para dispositivos como armazenamento e rederdquo como descreve o anuacutencio do projeto

Espera-se que o Kemari seja integra-do ao Xen 34 a proacutexima versatildeo estaacutevel do popular sistema de virtualizaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

O Linux Professional Institute ndash oacutergatildeo responsaacutevel pela certificaccedilatildeo em Linux que mais cresce no mundo ndash realizou no Brasil a primeira aplicaccedilatildeo das provas 303 Elas correspon-dem agrave categoria especialista do niacutevel 3 da certificaccedilatildeo e qualificam o profissional aprovado como ldquoSecurity Specialistrdquo As provas (grauitas) ocorreram na cidade de Satildeo Paulo no dia 20 de dezembro de 2008

O Programa de Certificaccedilatildeo LPI eacute composto por dois niacuteveis baacutesicos com duas provas cada um As provas do niacutevel 1 (101 e 102) certificam o profissional como ldquoAdministrador Linux Juacuteniorrdquo e as do niacutevel 2 (201 e 202) como ldquoAdministrador Linux Plenordquo

O niacutevel 3 da certificaccedilatildeo LPI eacute focado no mercado corporativo O profissional precisa se certificar obrigatoria-mente na prova 301 (Core) e depois escolher uma das especialidades disponiacuteveis Atualmente a uacutenica disponiacutevel eacute a prova 302 (Mixed Environment) para profissionais que queiram se especializar em interoperabilidade em ambientes mistos (Linux Unix Netware e Windows) A prova lsquo303 - Securityrsquo eacute a segunda especialidade a ser lanccedilada pelo LPI A prova 303 estaacute sendo realizada em caraacuteter de teste antes de ser lanccedilada oficialmente

19

Xen ganha recursos e promete integraccedilatildeo

Linux Magazine 50 | Janeiro de 2009

Gerais | NOTIacuteCIAS

LPI lanccedila provas 303 no Brasil

Google Android no Openmoko Linux versus OpenSolaris e FreeBSD

O site dedicado a Software Livre e hard-ware Phoronix publicou um comparativo de velocidade (benchmark) na realizaccedilatildeo de diversas tarefas entre os sistemas ope-racionais mais famosos baseados em ker-nels de coacutedigo aberto Ubuntu OpenSolaris e FreeBSD

Os testes utilizaram a versatildeo instaacutevel de 64 bits mais recente de cada um dos sistemas (com exceccedilatildeo do Ubuntu cuja versatildeo foi a 810 final) e se basearam no proacuteprio pacote de benchmarks de coacutedigo aberto desenvol-vido pela equipe do Phoronix (e em raacutepida evoluccedilatildeo) o Phoronix Test Suite

Os autores concluem o artigo decla-rando o Ubuntu 810 como vencedor no desempenho mas o representante do ker-nel Linux natildeo foi o campeatildeo em todas as categorias venceu em oito dos 18 testes contra sete vitoacuterias do OpenSolaris e trecircs do FreeBSD

Poucos dias depois os autores retornaram ao ambiente de testes e fizeram o compara-tivo entre o tambeacutem recente Ubuntu 810 e o Fedora

Foram usadas as versotildees de 32 e 64 bits de ambos os sistemas e os testes empregados foram os mesmos do benchmark anterior com o Phoronix Test Suite

O resultado dessa comparaccedilatildeo no entan-to natildeo foi conclusivo as distribuiccedilotildees Linux se saiacuteram praticamente igual com respeito ao desempenho nos testes

Institute

LinuxProfessional

R

A Koolu empresa canadense especializada no desenvolvimento de soluccedilotildees de tecnologia ambientalmente corretas disponibili-zou o coacutedigo-fonte da plataforma Android do Google adaptado ao telefone Openmoko FreeRunner cujo desenvolvimento contou com esforccedilo e total colaboraccedilatildeo da comunidade internacional do Software Livre

O anuacutencio foi realizado no IP Communications Brasil 2008 evento internacional sobre comunicaccedilotildees IP por Jon lsquomaddogrsquo Hall CTO da Koolu e Denis Galvatildeo presidente da paranaense iSolve Durante o evento tambeacutem foi anunciado o acordo nome-ando a iSolve como canal master de distribuiccedilatildeo do Openmoko FreeRunner no Brasil

O Android foi lanccedilado como um software livre no final de outu-bro de 2008 poreacutem muito trabalho precisou ser realizado para que esse coacutedigo pudesse funcionar em telefones de outros fabricantes O FreeRunner telefone com design aberto desenvolvido pela empresa taiwanesa Openmoko demandou uma seacuterie de alteraccedilotildees no coacutedigo-fonte do Android para que ele pudesse fun-cionar corretamente A comunidade de Software Li-vre com ajuda de vaacuterias pessoas ao redor do mundo realizou as implementaccedilotildees necessaacuterias e tornou possiacutevel a execuccedilatildeo do Android no FreeRunner

ldquoAgora que o coacutedigo-fonte jaacute estaacute rodando no FreeRunner es-peramos que os retoques finais estejam prontos rapidamenterdquo dis-se Brian Code diretor teacutecnico da Koolu ldquoA criaccedilatildeo do ambiente para compilaccedilatildeo (toolchain) a criaccedilatildeo dos patches necessaacuterios para tornar o coacutedigo compatiacutevel com o telefone e a documentaccedilatildeo de todo o passo-a-passo do processo de construccedilatildeo do software toma-ram um bom tempo mas agora estaacute mais faacutecil para a comunidade do Software Livre desenvolver e realizar modificaccedilotildees nessa pla-taforma Como um exemplo as aplicaccedilotildees moacuteveis Google Apps bem como outra aplicaccedilotildees corporativas podem ser instaladas e otimizadas para essa plataformardquo

copy Linux New Media do Brasil Editora Ltda

20

CO

RP

OR

ATE

httpwwwlinuxmagazinecombr

ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

Keith Curtis funcionaacuterio por vaacuterios anos da Microsoft conclui em seu livro receacutem-lanccedilado que o futuro do software estaacute no modelo de desenvolvimento de coacutedigo aberto Curtis trabalhou para a Microsoft como de-senvolvedor de software de 1993 a 2004 tendo participado do desenvolvimento dos produtos para bancos de dados da empresa bem como na programaccedilatildeo do Windows do Office e do MSN entre outros No final de 2008 ele publicou o livro intitulado ldquoAfter the Software Warsrdquo (Depois das Guerras do Software) que descreve o processo de produccedilatildeo de software do ponto de vista de um desenvolvedor analisa os possiacuteveis avanccedilos nesse processo no futuro e aborda desde toacutepicos como inteligecircncia artificial culminando no desenvolvimento de sistemas que possibilitem viagens espaciais

A ediccedilatildeo online do The New York Times fez uma resenha do livro e relatou a nova trajetoacuteria do ex-funcio-naacuterio da gigante de Redmond ldquoPara o Sr Curtis a forccedila do software de coacutedigo aberto e o motivo pelo qual esse eacute o modelo de desenvolvimento do futuro estatildeo no fato de que por meio deste a inteligecircncia coletiva eacute estimuladardquo Segundo Curtis ldquoas diferenccedilas entre Software Livre e software natildeo-livre ou proprietaacuterio satildeo comparaacuteveis agraves diferenccedilas existentes entre ciecircncia e alquimia Antes de a ciecircncia se estabelecer havia apenas alquimia na qual as pessoas tentavam proteger suas ideacuteias pois elas desejavam dominar o mercado desenvol-vendo um processo para transformar chumbo em ourordquo

Curtis publicou seu livro usando a plataforma lulucom cujo fundador e diretor executivo eacute Bob Young veterano da cena Open Source e ex-CEO da Red Hat

Sun lanccedila MySQL 51Na nova versatildeo do banco de dados de coacute-digo aberto os desenvolvedores se concen-traram no desempenho o que aumentou a velocidade do programa em surpreendentes 15 Entre as novidades haacute cinco novos meacutetodos de particionamento horizontal range hash key list e composite Outros recursos novos satildeo a replicaccedilatildeo hiacutebrida e o agendador de eventos (event scheduler) que permite a automatizaccedilatildeo de tarefas SQL repetitivas

Os sistemas operacionais suportados satildeo Red Hat Enterprise Linux Suse Linux En-terprise Windows Mac OS X FreeBSD HP-UX IBM AIX IBM i5OS e todas as distribuiccedilotildees Linux

A Sun disponibiliza trecircs versotildees do soft-ware para download Community Server sob a GPL Enterprise Server com base em subscriccedilatildeo (assinatura do serviccedilo) e Embedded Server esta com licenccedila co-mercial proprietaacuteria

MS Windows eacute mais econocircmicoA Microsoft fez de novo um estudo recente encomendado pela empresa ldquoconcluiurdquo que eacute mais barato para empresas usar o Win-dows como plataforma de software A revista australiana iTWire analisou o estudo e fez algumas descobertas interessantes

O que parece agrave primeira vista (com perdatildeo do trocadilho) ser uma histoacuteria de sucesso na realidade natildeo eacute mdash nem de longe em primeiro lugar natildeo haacute economia alguma O que haacute satildeo apenas estimativas da Microsoft segundo as quais a empresa britacircnica Speedy Hire deveraacute economizar 200 mil libras por ano em de-corriencia da utilizaccedilatildeo do Windows

A anaacutelise do estudo disponiacutevel em artigo no site australiano iTWirecom faz um raio-X da ldquoeconomiardquo sugerida pela em-presa de Bill Gates Elas comeccedilam pelo hardware jaacute que no projeto foram utilizados terminais leves para Windows mdash que seriam inexplicavelmente mais baratos do que aqueles equipados com Linux O estudo natildeo menciona nem ldquoen passantrdquo que haacute

alternativas bem mais baratas aos modelos V90 da empresa Wyse equipados com Windows como

os V50 preacute-carregados com Linux Nesse esti-lo o artigo vai revelando de onde vieram as ldquoreduccedilotildees de custordquo obtidas pela Microsoft que vatildeo transformam em vapor agrave medida que

prosseguimos na leitura Estamos curiosos para saber o que sobra da economia de 1 milhatildeo de

libras apoacutes os cinco anos

copy Linux New Media do Brasil Editora Ltda

21

Google e Red Hat firmam parceria

A Red Hat assinou em dezembro um acordo com o Google para trazer os principais de-senvolvedores da empresa para a plataforma de construccedilatildeo de aplicaccedilotildees web Google Web Tookit Com o acordo estabelece-se tambeacutem o suporte do servidor de aplicaccedilotildees da Red Hat o JBoss ao GWT

Aleacutem da assinatura do acordo a Red Hat tambeacutem anunciou que jaacute completou algumas integraccedilotildees preliminares entre o GWT e o JBoss Seam Framework Com a integraccedilatildeo a empresa alavanca o Seam para que os desen-volvedores possam combinar o poder do Java agraves modernas tecnologias view-layer como GWT RichFaces e Spring para desenvolver os Rich Internet Applications

Linux Magazine 50 | Janeiro de 2009

| CORPORATENotiacutecias

Insigne jaacute planeja 2012A fornecedora do Insigne Momentum 50 quer manter sua po-siccedilatildeo de lideranccedila no Brasil e conquistar novos mercados in-clusive no exterior O sucesso de sua participaccedilatildeo no projeto de inclusatildeo digital Computador para Todos fez com que a Insigne Free Software do Brasil conquistasse forte posiccedilatildeo de lideran-ccedila no mercado dos PC populares e tambeacutem ficasse conhecida em outros paiacuteses Esse cenaacuterio positivo lhe permitiu iniciar ne-gociaccedilotildees com fabricantes estrangeiros de PC para embarcar o Insigne Momentum 50 sistema operacional de coacutedigo aberto em microcomputadores fora das fronteiras nacionais

Para atingir a meta de manter seu crescimento perante a perspectiva de elevaccedilatildeo das vendas de PCs nos proacuteximos anos a empresa contratou o consultor de estrateacutegia e professor de engenharia Carlos Roberto Lopes As atividades envolvidas no planejamento estrateacutegico incluem uma seacuterie de workshops com todas as equipes e departamentos da Insigne O objetivo eacute coletar impressotildees dos colaboradores e lhes apresentar as mais recentes mudanccedilas ocorridas no mercado global incluindo a atual situaccedilatildeo econocircmica mundial que poderaacute alterar a correlaccedilatildeo de forccedilas entre os fornecedores de tecnologia nos proacuteximos anos

De acordo com Joatildeo Pereira da Silva Jr presidente da Insigne esse planejamento incluiraacute natildeo apenas o foco no seu cliente que eacute o usuaacuterio do PC popular mas tambeacutem em toda a sua equipe de profissionais envolvidos em todas as etapas de desenvolvimento de um sistema operacional de coacutedigo abertordquo

VMware adquire Tungsten GraphicsA VMware adquiriu por um valor natildeo revelado as operaccedilotildees da empresa Tungsten Graphics fundada em 2001 e motor por traacutes do desenvolvimento da implementa-ccedilatildeo de coacutedigo aberto do OpenGL no Linux a biblioteca Mesa 3D

Aleacutem da Mesa 3D a empresa tambeacutem desenvolve o Gallium 3D framework para desenvolvimento de drivers graacuteficos 3D A Tungsten Graphics eacute formada por um grupo de desenvolvedores de aplicativos graacuteficos de coacutedigo aberto Segundo a FAQ no site da empresa o desenvolvimento dos projetos de coacutedigo aberto encabeccedilados por ela continuaraacute agora como parte das atividades da equipe de engenharia da VMware A aquisiccedilatildeo teria como objetivo melhorar o suporte a graacuteficos 3D em ambientes virtualizados

Mandriva demite dois desenvolvedoresA situaccedilatildeo financeira da Mandriva parece estar ruim Em dezembro a empresa anunciou que ao final de 2008 terminaria o contrato de dois de seus funcionaacuterios Adam Williams (na praacutetica o Community Manager) e o mantenedor de pacotes Oden Eriksson

Os dois desenvolvedores escreveram para a lista de emails do Cooker (Adam Williams Oden Eriksson) Enquanto Adam Williams eacute considerado por muitos como a base da co-munidade do Mandriva Oden manteacutem aproximadamente 1200 pacotes principalmente na aacuterea de servidores incluindo todos os pacotes do stack LAMP

Entretanto a comunidade do Mandriva natildeo pretende esperar sentada a efetivaccedilatildeo dessa decisatildeo Jaacute haacute uma peticcedilatildeo para tentar convencer a empresa a manter pelo me-nos Williams

copy Linux New Media do Brasil Editora Ltda

22 httpwwwlinuxmagazinecombr

CO

RP

OR

ATE

Entrevista com Armstrong Lemos chefe do departamento de TI da CAEMA

Saneada pelo LinuxO Linux entrou com forccedila na Companhia de Aacuteguas e Esgotos do Maranhatildeo proporcionando economia e ganhos fundamentais para a sauacutede da empresa por Pablo Hess

A Companhia de Aacuteguas e Esgo-tos do Maranhatildeo (CAEMA) eacute uma sociedade de economia

mista com capital de investimento predominantemente do Estado do Maranhatildeo Fundada haacute 42 anos a CAEMA atua no fornecimento de aacutegua coleta e tratamento de esgotos Atua em 146 municiacutepios maranhenses com abastecimento de aacutegua sendo que somente em trecircs (Satildeo Luis Im-peratriz e Barreirinhas) faz a coleta de esgotosLinux Magazineraquo Como e por que a CAEMA comeccedilou a usar LinuxArmstrong Lemosraquo A CAEMA opera com deacuteficit de quase R$ 5 milhotildees por mecircs que satildeo repassados pelo governo do estado para comple-mentaccedilatildeo das despesas Isso muito se deve a sua funccedilatildeo social que eacute a de universalizaccedilatildeo do abastecimento de aacutegua no estado Natildeo eacute uma ati-vidade meramente econocircmica mas tambeacutem social

O sistema comercial jaacute foi bloque-ado por falta de pagamento Quanto mais a CAEMA ampliava sua rede de atendimento mais caro pagava pelo uso do sistema sendo que a empresa prestadora mantinha relaccedilatildeo de pou-ca paciecircncia com os atrasos no paga-mento que deveriam ser realizados no dia cinco de cada mecircs Como a

companhia possuiacutea e ainda possui di-ficuldades de arrecadaccedilatildeo esse prazo nem sempre era cumprido

Outros fatores aliados a esse contri-buiacuteram para que no iacutenicio da gestatildeo da atual diretoria se iniciasse um pro-cesso de diagnoacutestico geral da empresa Com esse estudo ficou clara a situa-ccedilatildeo em que se encontravam diversos setores estrateacutegicos da companhia entre eles o de informaacutetica

Tiacutenhamos um parque de aproxi-madamente 500 maacutequinas com vaacuterios problemas principalmente adwares spywares e viacuterus Havia ainda proble-mas de conectividade e processamento em fun-ccedilatildeo do Windows natildeo se adequar ao perfil do hardware fazendo com que o equipamento ti-vesse baixa performan-ce As atualizaccedilotildees com Windows tornavam-se inviaacuteveis nos computa-dores com perfil padratildeo de dois ou mais anos

O departamento natildeo possuiacutea outra funccedilatildeo aleacutem do suporte de ma-nutenccedilatildeo de computado-res e impressoras muitos jaacute ultrapassados uma vez que o uacuteltimo investimen-

to feito em TI na companhia ocorreu no ano 2000

A telefonia as escolhas teacutecni-cas o gerenciamento de contratos de sistemas e outras atividades natildeo eram exercidas pelo departamen-to de informaacutetica Natildeo havia uma poliacutetica definida de TI na empresa e natildeo se dispunha de recursos para investimento Muitos dos sistemas utilizados pela empresa eram piratas e natildeo possuiacuteam suporte O banco de dados da companhia natildeo dispunha mais de suporte de software e o de-partamento de informaacutetica natildeo tinha

Armstrong Lemos chefe do departamento de TI da CAEMA

copy Linux New Media do Brasil Editora Ltda

23Linux Magazine 50 | Janeiro de 2009

| CORPORATECAEMA

conhecimento dos relacionamentos dos dados contidos nele

Apoacutes o diagnoacutestico e reuniotildees so-licitou-se agrave diretoria administrativa da empresa agrave qual a informaacutetica eacute subordinada para que submetesse ao conselho de administraccedilatildeo o resta-belecimento das funccedilotildees relativas agrave aacuterea de TI incluindo telefonia

Aleacutem dessas accedilotildees de retomada das atribuiccedilotildees estruturamos uma equipe de programaccedilatildeo uma equipe de projetos estrateacutegicos e reestrutu-ramos a equipe de suporte teacutecnico tudo isso para viabilizar a poliacutetica de Software Livre da CAEMA

LMraquo Em que consiste essa poliacutetica de Software LivreALraquo Estabelecemos vaacuterias etapas como o desenvolvimento do Livre Linux e do sistema de protocolo via Web a migraccedilatildeo do sistema comer-cial (GSAN) a formaccedilatildeo de monito-res de treinamento e o treinamento dos usuaacuterios na soluccedilatildeo completa (GSAN Livre Linux BrOfficeorg e sistema de protocolo) seguida pela articulaccedilatildeo do Movimento Software Livre Maranhatildeo

LMraquo Como foi a evoluccedilatildeo do uso do Software Livre dentro da empresaALraquo Precisaacutevamos resolver dois fatores que impediam o avanccedilo da politica de Software Livre na empresa o sistema de protocolo em Windows e o sistema comercial tambeacutem em Windows e com arquitetura cliente-servidor Aleacutem disso determinou-se a substituiccedilatildeo deles por um novo sistema que per-mitisse a ampliaccedilatildeo da nossa rede de atendimento e que ainda propiciasse a autonomia no gerenciamento dos dados da companhia

O sistema de protocolo foi resol-vido a partir do desenvolvimento do sistema livre Balula feito pela equi-pe de programaccedilatildeo e Software Livre da CAEMA Hoje o protocolo estaacute agrave disposiccedilatildeo dos demais oacutergatildeos puacutebli-cos para serem implementados sem

qualquer custo adicional atraveacutes de parceria sem ocircnus entre a CAEMA e o oacutergatildeo interessado

Ainda em novembro todos os computadores de atendimento co-mercial das unidades da CAEMA passaram a utilizar o Livre Linux como sistema operacional

LMraquo Como eacute a situaccedilatildeo atualALraquo Hoje utilizamos o GSAN com banco de dados PostgreSQL Com isso estamos ampliando o atendi-mento aos municiacutepios onde nosso sistema comercial antigo natildeo fun-cionava pois era inviabilizado pelo custo alto de contrataccedilatildeo de serviccedilos de transmissatildeo de dados junto agraves operadoras locais Atualmente com uma simples conexatildeo via raacutedio que existe em todos os municiacutepios onde a CAEMA atua faremos a integraccedilatildeo com o novo sistema

Estatildeo rodando na plataforma Linux todos os sistemas Web (comercial protocolo frotas juriacutedico cadastro segunda via de contracheque) etc Estamos com Livre Linux nos setores de atendimento help desk adminis-trativo e em todos os servidores

Vamos estender essa implantaccedilatildeo para os demais setores salvo maacutequinas que possuam aplicativos em Windows sem similares no mundo Linux (que satildeo casos mais raros)

LMraquo Em quanto tempo a CAEMA espera obter o retorno do investi-mento em Software Livre

ALraquo O custo total foi de R$ 104 milhotildees para o sistema comercial e o banco de dados Isso representa uma economia de R$ 360 milhotildees ao lon-go de quatro anos somente nesses dois sistemas Os levantamentos sobre a substituiccedilatildeo do sistema operacional Windows por Linux do proprietaacuterio Microsoft Office pelo BrOfficeorg e programas pagos estatildeo sendo le-vantados o que poderaacute representar uma economia de aproximadamente meio milhatildeo de reais

LMraquo Quanto tempo durou a mi-graccedilatildeoALraquo Aproximadamente oito meses com um analista de sistemas da CAE-MA e mais dois analistas de sistemas quatro programadores e um analista de suporte e bancos de dados de nos-so prestador de serviccedilos (Domiacutenio) aleacutem de quatro analistas de sistemas e um DBA do IPAD

LMraquo Qual a opiniatildeo da direccedilatildeo da empresa sobre o Software LivreALraquo O convencimento junto agrave dire-toria foi de estabilidade e custo fi-nanceiro devido agrave situaccedilatildeo em que estaacutevamos Hoje haacute o reconhecimento quanto agraves soluccedilotildees implantadas e o estiacutemulo para a descoberta de novas alternativas A diretoria percebe as vantagens de total liberdade e au-tonomia de uso e configuraccedilatildeo das ferramentas livres que tornaram a migraccedilatildeo teacutecnica e economicamen-te viaacutevel

LMraquo E a sua opiniatildeo sobre o mer-cado de Software LivreALraquo O mercado de Software Livre no paiacutes estaacute maduro Muitas empresas estatildeo habilitadas para a execuccedilatildeo e a manutenccedilatildeo de projetos livres Seguindo essa tendecircncia grandes empresas tecircm accedilotildees nesse foco No entanto temos carecircncia de empresas privadas que prestem suporte a bancos de dados livres assim como eacute carente o uso desses bancos em aplicaccedilotildees comerciais proprietaacuterias

LMraquo O movimento Software Livre Maranhatildeo jaacute rendeu frutosALraquo No dia 14 de novembro reali-zamos o I Encontro de Articulaccedilatildeo de Software Livre Maranhatildeo para apresentar aos demais gestores de TI do Estado a alternativa de uso de Software Livre pelo governo e articulaccedilatildeo de um movimento in-dependente para fortalecimento dessa poliacutetica

copy Linux New Media do Brasil Editora Ltda

24 httpwwwlinuxmagazinecombr

Como participar da comunidade Open Souce

Cezar TaurionUma anaacutelise do desenvolvimento do kernel Linux

Haacute alguns dias li um interessante artigo de Jona-than Corbet ldquoHow to participate in the Linux Communityrdquo[1] Ele descreve como funciona

o processo de desenvolvimento do kernel Linux e eacute uma excelente fonte de referecircncia para quem estiver interessado em colaborar com a comunidade ou mes-mo conhecer como funciona por dentro o modelo de governanccedila de um projeto de coacutedigo aberto

O kernel Linux tem mais de 6 milhotildees de linhas de coacutedigo e aglutina mais de mil contribuidores ativos Eacute um dos maiores projetos de coacutedigo aberto do mun-do Seu sucesso tem atraiacutedo muitos colaboradores a maioria inclusive pertencendo a empresas que que-rem participar do projeto A questatildeo eacute como entrar e ser um participante ativo da comunidade

Cada comunidade Open Source tem suas proacuteprias regras de conduta e modelos de governanccedila Enten-der como funciona a comunidade que desenvolve o kernel eacute essencial para ser um colaborador e tam-beacutem abre ideacuteias para aprendermos como funciona um projeto Open Source

A primeira seccedilatildeo do artigo mostra a importacircncia de se inserir todo coacutedigo na aacutervore principal do ker-nel para se evitar a proliferaccedilatildeo de forks e futuras ldquobombas reloacutegiordquo Por exemplo um coacutedigo inse-rido no kernel principal passa a ser visto mantido e refinado por toda a comunidade resultando em coacutedigo de alta qualidade Quando o coacutedigo eacute man-tido separado natildeo soacute natildeo recebe contribuiccedilotildees ex-ternas como corre o risco de funcionalidade similar ser incorporada por outro desenvolvedor ao coacutedigo principal fazendo com que o coacutedigo isolado fique cada vez mais difiacutecil e custoso de ser mantido Esse alerta eacute feito porque muitas empresas envolvidas em projetos de software embarcado tendem a acre-ditar que seu coacutedigo pela sua especificidade deve ser mantido de forma isolada da aacutervore principal do kernel o que eacute um grande erro A seccedilatildeo tambeacutem descreve as razotildees por que toda contribuiccedilatildeo deve ser ldquoassinadardquo Eacute necessaacuterio para se evitar eventuais problemas de propriedade intelectual

A seccedilatildeo dois eacute bem interessante pois descreve como funciona o processo de desenvolvimento do kernel e a nomenclatura usada para designar as diversas versotildees

Explica tambeacutem como eacute criado uma versatildeo estaacutevel e o ciclo de vida dos patches Descreve como um patch eacute inserido no kernel e cita alguns dados curiosos A seccedilatildeo tambeacutem descreve as regras de etiqueta da comunidade na troca de mensagens e o uso das listas de email

As outras seccedilotildees descrevem o processo de plane-jamento da evoluccedilatildeo do kernel debatendo as etapas de avaliaccedilatildeo as discussotildees com a comunidade para definir o que e como seraacute feito os estilos de escrita (que garantem a qualidade do coacutedigo) as ferramen-tas de depuraccedilatildeo usadas a documentaccedilatildeo que deve ser gerada e assim por diante

A seccedilatildeo seis mostra como deve ser feito o tra-balho em colaboraccedilatildeo Cada patch eacute revisado por desenvolvedores que vocecirc natildeo conhece o que mui-tas vezes pode gerar algum desconforto Existem algumas recomendaccedilotildees de como se portar nessas situaccedilotildees meio desagradaacuteveis e de como evitar dis-cussotildees desgastantes Trabalhar em colaboraccedilatildeo eacute um exerciacutecio ao qual muitos desenvolvedores natildeo estatildeo acostumados Para muita gente ter um estra-nho revisando seu coacutedigo e expondo as falhas em puacuteblico eacute no miacutenimo desconfortaacutevel

Enfim a leitura desse documento eacute obrigatoacuteria para todos que estejam realmente interessados em conhecer mais a fundo o que eacute o movimento Open Source e os aspectos do desenvolvimento colabora-tivo que o caracterizam

CORPORATE

Mais informaccedilotildees

[1] Jonathan Corbet ldquoHow to participate in the Linux Communityrdquo httpldnlinuxfoundationorgbookhow-participate-linux-community

Sobre o autor

Cezar Taurion (ctaurionbribmcom) eacute geren-te de novas tecnologias aplicadas da IBM Bra-sil e editor do primeiro blog da Ameacuterica Latina do Portal de Tecnologia da IBM developerWorks Seu blog estaacute disponiacutevel em httpwww-03ibmcomdeveloperworksblogspagectaurion

CORPORATE

copy Linux New Media do Brasil Editora Ltda

25

Argumentando em favor do Software Livre

Jon lsquomaddogrsquo HallA comunidade do Coacutedigo Aberto natildeo dispotildee de um seacutequumlito de advogados e consultores de marketing e comunicaccedilatildeo Quando se trata de argumentar em favor do Software Livre vocecirc provavelmente teraacute que assumir esse papel

A ldquocenardquo juriacutedica envolvendo o Software Li-vre estaacute sempre em movimento Decisotildees de tribunais e accedilotildees governamentais estatildeo

sempre reformulando o panorama legal e tecircm efei-tos bruscos na ldquotemperaturardquo do desenvolvimento desse tipo de aplicaccedilatildeo

Uma lei proposta recentemente tinha por obje-tivo ajudar a eliminar a pornografia infantil mas foi modificada para limitar todo e qualquer tipo de liberdade na Internet a ponto de ndash nas palavras de um dos legisladores ndash dificultar o desenvolvimento de tecnologias como redes mesh

No mecircs passado escrevi sobre minha experiecircncia em testemunhar perante uma assembleacuteia nacional sobre uma lei considerada pioneira relativa ao mun-do open source Muito embora oportunidades como essa natildeo apareccedilam todos os dias eacute surpreendente a frequumlecircncia com que os governos ndash em todos os niacute-veis ndash satildeo confrontados com toacutepicos relacionados agrave comunidade open source

Seu governo local tambeacutem gasta dinheiro com software Algumas diretorias de escola gastam mes-mo milhares de doacutelares em aplicativos proprietaacuterios mesmo que suas contrapartes de coacutedigo aberto este-jam disponiacuteveis a um preccedilo muito inferior A maio-ria dos governos locais e das diretorias das escolas dispotildeem entretanto de um tempo para ouvir o cidadatildeo ndash e vocecirc poderia usar esse tempo para lhes dizer o que vocecirc pensa a respeito disso Melhor ain-da vocecirc poderia reunir um grupo de amigos com os mesmos ideais para argumentar em favor do uso de Software Livre

Se vocecirc for chamado para avaliar uma proposta de regulamentaccedilatildeo ou orccedilamento certifique-se de tecirc-la estudado profundamente Natildeo deixe de co-nhecer os poliacuteticos eleitos envolvidos no processo Com frequumlecircncia poliacuteticos locais estatildeo dispostos a discutir esses toacutepicos com vocecirc diretamente E se vocecirc marcar uma reuniatildeo natildeo se esqueccedila de ldquoestar apresentaacutevelrdquo (como sua matildee provavelmente diria)

e de manter a calma lanccedilando matildeo de uma argu-mentaccedilatildeo plausiacutevel

A maneira mais simples de se envolver em niacutevel nacional com esse tipo de legislaccedilatildeo eacute por meio de uma carta A maioria dos legisladores possui um email mas eles recebem milhares de mensagens todos os dias e a sua pode simplesmente ldquose afogarrdquo nesse oceano sem jamais ter sido lida Uma carta tradicional impressa e assinada pode receber mais atenccedilatildeo do que um email e uma carta enviada via portador como encomenda expressa ou registrada tem ainda maiores chances de ser notada Natildeo se esqueccedila de usar um corretor ortograacutefico ao escre-ver ndash nem de deixar algueacutem mais ler a carta antes de enviaacute-la como medida para garantir que o con-teuacutedo esteja inteligiacutevel

Cartas para editores de publicaccedilotildees tambeacutem satildeo eficazes Oficiais de governo ndash bem como cidadatildeos interessados que podem ser persuadidos por argu-mentos bem formulados ndash lecircem jornais Cartas concisas com argumentos claros satildeo preferiacuteveis a cartas longas sem um objetivo claramente definido Evite criticar o caraacuteter dos proponentes da legislaccedilatildeo a que vocecirc se opotildee Em vez disso concentre seus comentaacuterios no conteuacutedo

Se vocecirc busca um modo simples de se envolver no movimento em torno do Software Livre observe as oportunidades para dar a sua opiniatildeo sobre leis regulamentaccedilotildees e decisotildees de compra que afetem de algum modo o ecossistema open source O esfor-ccedilo eacute vaacutelido jaacute que manter os braccedilos cruzados natildeo eacute uma alternativa capaz de lhe dar voz ativa nesse tipo de processo

Sobre o autorJon lsquomaddogrsquo Hall eacute presidente da Linux International insti-tuiccedilatildeo internacional dedicada a promover o Linux e o Software Livre e de Coacutedigo Aberto Maddog viaja o mundo ministrando palestras e debatendo com decisores sobre o uso do Software Livre em acircmbito tanto corporativo quanto comunitaacuterio

CORPORATE

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

26 httpwwwlinuxmagazinecombr

CORPORATE

Nova lei de call center Oacutetima oportunidade para TI

Edgar SilvaHaacute inuacutemeras tecnologias de coacutedigo ou padrotildees abertos que podem ajudar a superar as dificuldades decorrentes da nova lei de call centers

ldquoO brasileiro mesmo com todas as adver-sidades eacute um povo criativo que na dificuldade cria oportunidadesrdquo Essa

afirmaccedilatildeo cabe muito bem quando observarmos a nova lei para call centers Afinal quem nunca ficou esperando horas numa linha telefocircnica e repetindo nuacutemero de documentos nome da matildee endereccedilo etc O decreto visa natildeo soacute a melhorar a vida de todos que precisam dos serviccedilos de empresas de telefonia fixa e moacutevel TV a cabo e outros mas tambeacutem ge-rar novos empregos assim como oportunidades de negoacutecios que eacute o tema deste artigo

Certamente em razatildeo da tradicional morosidade dos atendimentos de call center o comportamento padratildeo de noacutes consumidores eacute procurar alternativas Uma delas foi a Internet o que fez com que as em-presas investissem em portais para evitar o gargalo no atendimento de suas redes e tambeacutem porque re-presenta um aumento no atendimento sem elevar os custos Entatildeo por que natildeo criar novos canais de atendimento A tecnologia Java e algumas especi-ficaccedilotildees padrotildees e projetos open source fazem a diferenccedila nessa induacutestria de atendimento

Java por exemplo eacute extensamente utilizado Dentre os inuacutemeros motivadores destaco liberda-de de escolha de seus fornecedores a existecircncia de padrotildees da induacutestria que garantem maior ROI bem como facilidade de obtenccedilatildeo e formaccedilatildeo de profissionais Java conta com alguns padrotildees de tecnologia que ajudam principalmente a aprovei-tar parte do legado permitindo novos canais de interaccedilatildeo com os clientes Por exemplo os com-ponentes ou serviccedilos que atendem um navegador web podem tambeacutem atender uma chamada te-lefocircnica uma interaccedilatildeo SMS ou ateacute mesmo um canal VoIP via Skype

Entre as tecnologias disponiacuteveis cito as APIs padrotildees JSR116-SIP Servlets 10 [1] e JSR289-SIP Servlets 11 [2] que possibilitam a interaccedilatildeo com servidores SIP (Session Initiation Protocol) protocolo que dentre inuacutemeras funcionalidades estabelece

chamadas de voz via Internet O funcionamento do SIPServlet eacute similar ao do Servlet tradicional Java entretanto em vez de interagir com o protocolo HTTP estaacute apto a processar requisiccedilotildees e respostas do protocolo SIP Eacute por isso que seus componentes e serviccedilos podem ser reaproveitados

O Mobicents [3] tambeacutem eacute uma soluccedilatildeo que combina aleacutem de SIP vaacuterios outros serviccedilos para o segmento de telecomunicaccedilotildees que por sua vez eacute a implementaccedilatildeo de referecircncia do padratildeo JS-LEE 10 que em resumo eacute uma complementaccedilatildeo do jaacute conhecido JEE (J2EE para os mais antigos) especiacutefico para a comunicaccedilatildeo de componentes existentes em arquiteturas que agrupam web Voip som e imagem

Outro portal open source com soluccedilotildees interes-santes eacute o Ignite Real Time [4] que hospeda proje-tos como o OpenFire servidor Jabber (XMPP) com inuacutemeros plugins entre eles para chamadas SIP e comunicaccedilatildeo com o legendaacuterio Asterisk

Mais informaccedilotildees

[1] JSR116 httpjcporgenjsrdetailid=116

[2] JSR289 httpjcporgenjsrdetailid=289

[3] Mobicents httpwwwmobicentsorg

[4] Ignite Real Time httpwwwigniterealtimeorg

Sobre o autor

Edgar A Silva (edgarsilvaredhatcom) eacute Middleware Technology Lead da Red Hat no Brasil com atuaccedilatildeo desde 1998 em objetos distribuiacutedos (Corba COM+ e Java) Edgar vem nos uacuteltimos anos pesquisando aplicando e ministrando pales-tras e treinamentos no Brasil e exterior sobre assuntos de alta tecnologia entre eles JavaEE e SOA

copy Linux New Media do Brasil Editora Ltda

Dicas de especialistas para conviver com o Windows

Integraccedilatildeo transparente Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo que vocecirc queira viver em um mundo de coacutedigo aberto ele ainda estaacute cheio de Windows A ediccedilatildeo deste mecircs traz um apanhado de estrateacutegias para facilitar o conviacutevio com o sistema operacional da Microsoft por Joe Casad e Rafael Peregrino da Silva

As redes de hoje contam com um sortimento consideraacutevel de sistemas e dispositivos

Se todos esses componentes natildeo precisassem se comunicar natildeo as chamariacuteamos de rede Mesmo que vocecirc sonhe com um mundo sem Windows ndash e a IBM se esforce para tornar seu sonho realidade ndash essa rea-lidade ainda estaacute um pouco distante Por conta disso a ediccedilatildeo deste mecircs traz diversos artigos versando sobre interoperabilidade e integraccedilatildeo de sistemas No nosso primeiro artigo examinamos algumas teacutecnicas para conexatildeo de clientes VPN para Linux a servidores Windows

Tambeacutem vamos mostrar alguns aplicativos Linux para gerenciamento de conexotildees a VPNs e descreveremos algumas teacutecnicas de resoluccedilatildeo dos problemas para fazer o sistema do pinguumlim funcionar com o protoco-lo PPTP usado em redes Windows No artigo seguinte abordamos a integraccedilatildeo de sistemas Linux a um ambiente Windows usando o famo-so (alguns diriam infame) Microsoft Active Directory lanccedilando matildeo para tanto do sistema de autenticaccedilatildeo Likewise Open O Likewise eacute uma ferramenta de coacutedigo aberto que fornece uma confi guraccedilatildeo faacutecil para autenticaccedilatildeo dos tipos single sign-on e Kerberos O terceiro artigo da ses-satildeo mostra como confi gurar o Linux como um servidor de terminais para clientes Windows utilizando o xrdp ndash uma implementaccedilatildeo de coacutedigo aberto do Remote Desktop Protocol

(RDP) da Microsoft Nesse artigo vocecirc vai entender por que o siste-ma das janelas natildeo eacute necessaacuterio no servidor para criar um ambiente de terminais Windows e aprenderaacute como fazer os usuaacuterios desse sistema visualizarem um desktop Linux na sua aacuterea de trabalho tudo isso em apenas alguns passos

Por uacuteltimo apresentamos um soft-ware de coacutedigo aberto para agenda-mento de tarefas muito mais comple-xo que o veneraacutevel Cron e que tem como uma de suas maiores vantagens o fato de ser multiplataforma ndash o que facilita muito a administraccedilatildeo de um ambiente heterogecircneo de servidores

Se vocecirc precisa conviver com o Windows por que natildeo vi-ver em paz e com con-

forto Se esse eacute o seu caso esperamos tornar a sua vida um pouco menos atribulada com esta ediccedilatildeo de inte-graccedilatildeo com as tecnologias da gigante de Redmond

CAPA

Linux Magazine 50 | Janeiro de 2009

Iacutendice das mateacuterias de capa

Rede fechada 28Na ativa 34O manda-chuva do terminal 40 Muito aleacutem do Cron 44

27copy Linux New Media do Brasil Editora Ltda

28 httpwwwlinuxmagazinecombr

Configurando conexotildees VPN em clientes Linux

Rede fechadaClientes Linux eventualmente precisam de uma matildeozinha para se conectar a servidores VPN do Windowspor James Stanger

Dois benefiacutecios de se usar tuacute-neis VPN (Virtual Private Networks ou redes virtuais

privadas) satildeo as conexotildees criptografa-das e o acesso aos recursos localizados atraacutes do firewall Quando a questatildeo eacute interoperabilidade entretanto confi-gurar essas conexotildees pode ser difiacutecil em clientes Linux As distribuiccedilotildees Linux frequumlentemente tecircm problemas em es-tabelecer conexotildees a VPNs em servido-res cuja tecnologia eacute baseada em outros sistemas operacionais especialmente porque os aplicativos graacuteficos utiliza-dos para configurar essas conexotildees normalmente natildeo conseguem manter

o mesmo ritmo de desenvolvimento do Linux que estaacute geralmente duas geraccedilotildees agrave frente delas Assim pouco tempo apoacutes as distribuiccedilotildees terem sido lanccediladas as bibliotecas usadas para a criaccedilatildeo de VPNs satildeo modificadas e o aplicativo que vocecirc utilizava para fazer esse tipo de conexatildeo simplesmente paacutera de funcionar em ambientes he-terogecircneos Recentemente houve um avanccedilo nessa situaccedilatildeo e este artigo daacute algumas dicas sobre como estabele-cer conexotildees a VPNs a partir de um desktop Linux

Uma VPN cria um tuacutenel ponto-a-ponto por meio de uma rede puacuteblica

Vaacuterios protocolos oferecem suporte a conexotildees VPN entre eles as seguintes alternativas bastante populares L2TP via IPsec Foi o primeiro

protocolo desenvolvido pela Cisco para criaccedilatildeo de tuacuteneis de acesso criptografados L2TPv3 eacute a versatildeo mais recente mas certifique-se de escolher a ver-satildeo apropriada para a sua rede Lembre-se de que haacute duas im-plementaccedilotildees de IPsec principais no Linux Por exemplo sistemas mais antigos usam FreeSWAN ou Openswan para IPsec Sis-temas mais recentes com qual-

CA

PA

Quadro 1 Problemas e soluccedilotildees

Ao resolver problemas em conexotildees certifique-se de es-tar com os moacutedulos instalados e carregados Por exem-plo num sistema Ubuntu 8041 uma conexatildeo PPTP precisa dos seguintes moacutedulos

ppp_mppe 8068 2ppp_async 13312 1crc_ccitt 3072 1 ppp_asyncppp_generic 29588 6 ppp_mppe ppp_asyncslhc 7040 1 ppp_genericppdev 10372 0

A MTU (unidade maacutexima de transmissatildeo) eacute outra configu-raccedilatildeo importante pode ser necessaacuterio reduzir o valor de 1500 para algo menor como 1490

Em caso de problemas lembre-se de ativar as opccedilotildees de depuraccedilatildeo no cliente ndash sempre eacute possiacutevel desativaacute-las depois As opccedilotildees de depuraccedilatildeo podem incluir especifi-car pacotes ICMP para testar uma conexatildeo assim como determinar o tamanho do intervalo de eco

Uma opccedilatildeo estranha mas eventualmente uacutetil eacute desativar a criptografia Obviamente com isso perdem-se os benefiacutecios da conexatildeo VPN A maioria dos servidores rejeita conexotildees sem criptografia mas ainda assim essa opccedilatildeo pode ser de alguma ajuda para eliminar fontes de problemas

O mascaramento de IP e outras formas de NAT tambeacutem im-potildeem alguns problemas para conexotildees VPN Se estiverem sendo usados ESP ou AH (cabeccedilalhos de autenticaccedilatildeo) por exemplo haveraacute problemas com o NAT pois o AH executa uma verificaccedilatildeo que inclui valores como o endereccedilo IP da conexatildeo Como o NAT modifica o endereccedilo IP a verificaccedilatildeo falharaacute e portanto tambeacutem a comunicaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

29

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

quer versatildeo do kernel da seacuterie 26 dispotildeem de suporte nativo a Ipsec

Point-to-Point Tunneling Pro-tocol (PPTP) trata-se de um protocolo antigo que ainda eacute usado em diversos ambientes Microsoft

Secure Sockets LayerTransport Layer Security (SSLTLS) eacute um dos mais poderosos protocolos de interoperabilidade disponiacute-veis atualmente fornecendo suporte para muitos tipos de conexotildees VPN O OpenVPN [1] por exemplo eacute uma solu-ccedilatildeo para criaccedilatildeo de tuacuteneis de acesso criptografados baseada em SSLTLS

Com o passar dos anos jaacute houve muitas discussotildees sobre qual proto-colo eacute o mais seguro ou qual seria mais favoraacutevel ao modelo de desen-volvimento de coacutedigo aberto Muitas dessas discussotildees chegaram a assumir um teor quase religioso Poreacutem em vez de se envolver em tais discussotildees eacute mais uacutetil simplesmente descobrir qual dos protocolos funciona melhor para o seu tipo de rede em particular e entatildeo adotaacute-lo

Qualquer que seja o protocolo usado para criar o tuacutenel eacute possiacutevel enviar pacotes atraveacutes dele os quais seratildeo considerados pelo firewall como pacotes internos A chave como veremos a seguir eacute se certificar de que os pacotes certos atravessem a interface correta do tuacutenel

O ambiente Linux dispotildee de diversas ferramentas para configu-rar e gerenciar conexotildees VPN O utilitaacuterio KVpnc do projeto KDE oferece suporte para vaacuterias tecnolo-gias VPN (da Cisco passando pela Microsoft e culminando no Open-VPN) O vpnc eacute um programa de linha de comando para sistemas Cisco Muitas distribuiccedilotildees Linux passaram a usar o NetworkManager [2] desenvolvido pela Red Hat que

permite instalar extensotildees para redes Cisco e Microsoft Dependendo da tecnologia VPN que vocecirc pretende usar vocecirc teraacute que instalar a exten-satildeo apropriada

O pptpconfig [3] eacute um aplicativo antigo que funciona especialmente bem para distribuiccedilotildees Linux da Red Hat e da Novell bem como com BSDs e vaacuterios outros sistemas Como o nome sugere o pptpconfig eacute usado para gerenciar VPNs basea-dos em tecnologia Microsoft

Criando um tuacutenelIndependentemente de qual aplicati-vo ou protocolo for usado eacute necessaacuterio obter algumas informaccedilotildees baacutesicas para estabelecer uma conexatildeo com sucesso Por exemplo Informaccedilotildees sobre autenti-

caccedilatildeo dependendo do que o administrador da rede exigir seraacute preciso fornecer informa-ccedilotildees especiacuteficas a respeito do usuaacuterio para se autenticar no servidor VPN A alternativa menos segura (embora mais comum) eacute fornecer um nome de usuaacuterio e uma senha Outras opccedilotildees incluem chaves priva-das e certificados A Cisco daacute preferecircncia ao uso de chaves e certificados por exemplo

Gateway (tambeacutem conhecido popularmente como nome do servidor VPN) eacute o endereccedilo IP

ou nome do equipamento VPN que fornece o tuacutenel depois da autenticaccedilatildeo

Tipo de protocolo como dis-cutido acima eacute necessaacuterio es-colher entre os protocolos exis-tentes tais como L2TP PPTP OpenVPN etc A ferramenta de configuraccedilatildeo vai solicitar que sejam especificadas as opccedilotildees adequadas para o(s) protocolo(s) escolhido(s)- pelo administrador da rede

Configuraccedilotildees gerais qualquer que seja o protocolo de autenti-caccedilatildeo seraacute preciso fornecer in-formaccedilotildees especiacuteficas para a sua conexatildeo Por exemplo algumas redes solicitam a configuraccedilatildeo de uma unidade maacutexima de transmissatildeo (do inglecircs Maximum Transmission Unit o famigerado MTU) especiacutefica o aplicativo permite que sejam realizadas as modificaccedilotildees especiacuteficas para a conexatildeo em questatildeo

Informaccedilotildees de roteamento natildeo importa os tipos de proto-colo ou autenticaccedilatildeo escolhi-dos normalmente tambeacutem eacute necessaacuterio assegurar-se de que os pacotes certos estatildeo de fato sendo roteados atraveacutes da inter-face correta

Assim eacute certo depender da ajuda de um administrador de redes compre-

Quadro 2 Preso do lado de fora

Conforme satildeo feitos experimentos com a conexatildeo VPN certifique-se de que sua conta natildeo seja trancada do lado de fora A maioria das VPNs tem dificuldade em diferenciar entre experimentos com a configuraccedilatildeo e tentati-vas de invasatildeo Se vocecirc ficar trancado de fora natildeo conseguiraacute entrar nem mesmo com as configuraccedilotildees corretas

Se ficar impossiacutevel conectar-se preste atenccedilatildeo ao arquivo de log e agraves men-sagens de depuraccedilatildeo para verificar se as mensagens de autenticaccedilatildeo e conexatildeo mudaram de alguma forma uma mudanccedila sutil pode indicar que se estaacute na verdade trancado do lado de fora da conta Se for esse o caso seraacute preciso esperar a conta ser desbloqueada Com sorte essa limitaccedilatildeo seraacute temporaacuteria Caso contraacuterio seraacute preciso contatar o administrador da rede cada vez que ocorrer esse imprevisto

copy Linux New Media do Brasil Editora Ltda

30 httpwwwlinuxmagazinecombr

CAPA | VPNS

ensivo para ajudar o usuaacuterio a obter as informaccedilotildees listadas acima

PPTP com Microsoft Mesmo que o protocolo PPTP seja considerado menos seguro que o da Cisco ou o OpenVPN ele ainda eacute bastante popular Para confi gurar uma conexatildeo PPTP haacute um grande rol de opccedilotildees de autenticaccedilatildeo com-pressatildeo e criptografi a

Um dos desafi os eacute escolher o meacute-todo de autenticaccedilatildeo Autenticaccedilatildeo direta ( peer authentication ) signifi -ca que o servidor solicitaraacute que o cliente se identifi que As opccedilotildees para essa modalidade de autentica-ccedilatildeo incluem Challenge Handshake Authenti-

cation Protocol (CHAP) proto-colo padratildeo em conformidade com o RFC correspondente Basta fornecer um nome de usuaacuterio e uma senha para se autenticar MS-CHAP eacute a im-plementaccedilatildeo do protocolo pela Microsoft Se o administrador da rede natildeo revelar o protocolo empregado use o MS-CHAP no caso de servidores Windows

EAP eacute uma extensatildeo do pro-tocolo de autenticaccedilatildeo PPP original que permite o uso de um certifi cado em vez de nome de usuaacuterio e senha Me-nos comum do que MS-CHAP e CHAP

Muitos clientes oferecem a opccedilatildeo de recusar todos esses meacutetodos de autenticaccedilatildeo Para trabalhar bem com um servidor VPN remoto talvez a melhor opccedilatildeo seja usar diretamente o daemon PPP do seu sistema Compactar os dados para trans-

missatildeo pela VPN tambeacutem eacute uma boa ideacuteia Geralmente haacute trecircs opccedilotildees de compressatildeo

Microsoft Point-to-Point Com-pression (MPPC) protocolo an-tigo baseado no algoritmo LZ e geralmente reservado a clientes Windows antigos (Windows 95 e NT) Contudo pode funcionar em outras VPNs

Defl ate compression protocolo similar ao MPPC mas livre de patentes Eacute mais universal que

o MPPC mas raramente usado em VPNs Microsoft

BSD compression descrito na RFC 1977 eacute o protocolo de compressatildeo tradicional

O tipo de compressatildeo geralmente causa problemas nas conexotildees Caso o administrador da rede natildeo coope-re eacute melhor tentar primeiro uma conexatildeo sem compressatildeo

A confi guraccedilatildeo da criptografi a tambeacutem eacute importante O Microsoft Point-to-Point Encryption (MPPE) eacute um subconjunto do MPPC Pode-se usar dois comprimentos de chave di-ferentes 40 bits e 128 bits Empresas de muitos paiacuteses usam apenas cha-ves de 40 bits Na confi guraccedilatildeo de clientes PPTP o administrador deve informar o comprimento da chave Senatildeo basta testar ateacute descobrir

Stateful MPPE geralmente eacute a melhor opccedilatildeo de criptografi a uma vez que fornece conexotildees de rede mais raacutepidas Como veremos mais agrave frente eacute necessaacuterio habilitar o moacutedulo MPPE para qualquer uma dessas confi guraccedilotildees

DNS A maioria dos clientes DNS pergunta se deve usar as informaccedilotildees de DNS em etcresolvconf ou aquelas for-necidas pelo servidor VPN A proacutepria conexatildeo VPN pode causar modifi ca-ccedilotildees na resoluccedilatildeo de DNS principal-

Figura 2 Criaccedilatildeo de rotas no cliente NetworkManager

Figura 1 Criaccedilatildeo de rotas no cliente VPN KVpnc

copy Linux New Media do Brasil Editora Ltda

31

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

mente porque o cliente VPN altera o conteuacutedo do arquivo etcresolvconf mesmo quando confi gurado ex-plicitamente para natildeo fazecirc-lo

A melhor soluccedilatildeo eacute usar um clien-te VPN que funcione da forma que se espera Na falta de tal soluccedilatildeo pode-se contornar o problema crian-do um script que faccedila uma coacutepia do arquivo etcresolvconf correto Quando o cliente VPN pergunta se deve ldquorealizar acessos ao DNS atra-veacutes do tuacutenelrdquo geralmente o que ele realmente quer dizer eacute se pode alte-rar o arquivo etcresolvconf com seus novos dados A escolha correta depende de informaccedilotildees fornecidas pelo administrador da rede Se o ob-jetivo natildeo for usar o DNS da VPN seraacute difiacutecil o cliente acessar as outras maacutequinas detraacutes da VPN

Suporte ao GRE Para conectar um cliente a uma VPN Microsoft atraveacutes de um fi -rewall Linux haacute um ajuste extra a ser feito nele para que tudo funcio-ne a ativaccedilatildeo do protocolo Generic Route Encapsulation (GRE) para atravessar o fi rewall Supondo o uso do iptables no fi rewall Linux e um servidor VPN com o endereccedilo 18944453 eacute necessaacuterio executar o seguinte comando

iptables -I FORWARD -p 47 -d 18944453 -j ACCEPT

Roteamento Pode ser necessaacuterio rotear pacotes ex-plicitamente atraveacutes de uma interface especiacutefi ca Muitos administradores de sistemas Windows consideram esse um dos maiores desafi os do trabalho com clientes Linux

A necessidade de rotear pacotes explicitamente eacute especialmente importante quando a rede remota utiliza IPs puacuteblicos Mesmo que seja usado um tuacutenel VPN a in-

terface de rede ainda pode tentar rotear pacotes pela Internet em vez de simplesmente usar o tuacutenel Satildeo muito frequumlentes problemas em conexotildees VPN cuja soluccedilatildeo eacute sim-plesmente adicionar algumas rotas alternativas agrave tabela de roteamento padratildeo do sistema Isso pode ser feito tanto com o aplicativo graacutefi co de confi guraccedilatildeo do VPN quanto pela linha de comando com os utilitaacuterios route ou iproute

route add -net 131639723 netmask 255255255255 dev ppp0 ou iproute

ip route add 17187445424 dev ppp0

Em alguns casos sem essas rotas

natildeo eacute possiacutevel fazer com que os paco-tes que deveriam trafegar pela VPN realmente o faccedilam e eles acabam saindo pela placa de rede

Figura 3 KVpnc com uma sessatildeo PPTP legada

Figura 4 Importaccedilatildeo de um certifi cado Cisco no KVpnc

copy Linux New Media do Brasil Editora Ltda

32 httpwwwlinuxmagazinecombr

CAPA | VPNS

Interface graacutefi ca Os aplicativos graacutefi cos para confi gu-raccedilatildeo de VPNs estatildeo fi cando cada vez melhores quando se trata de adicionar as rotas necessaacuterias auto-maticamente A fi gura 1 mostra as confi guraccedilotildees para o KVpnc A fi gura 2 ilustra uma confi guraccedilatildeo similar no NetworkManager

Assim como essas capturas de tela ilustram pacotes que coincidam com o endereccedilo IP e a maacutescara de rede defi nidos natildeo seratildeo enviados atraveacutes da conexatildeo de rede padratildeo mas simpelo tuacutenel VPN

O KVpnc ( fi gura 3 ) disponiacutevel em vaacuterias distribuiccedilotildees talvez seja o mais versaacutetil entre os clientes atuais pois oferece suporte a L2TP aos protocolos VPN tanto livres quanto proprietaacuterios da Cisco ao OpenVPN e ao PPTP da Microsoft O KVpnc tambeacutem permite a importaccedilatildeo de certifi cados conforme mostra a fi gura 4

Apesar de os desenvolvedores da interface graacutefi ca do programa terem cometido alguns deslizes ortograacutefi -

cos na interface os desenvolvedores do KVpnc realmente criaram um produto que trabalha parti-cularmente bem em conjunto com dispo-sitivos Cisco

O veneraacutevel pptp-config tambeacutem estaacute disponiacutevel em muitas distribuiccedilotildees O se-gredo para o sucesso no seu uso pptpconfig estaacute na confi guraccedilatildeo da criptografi a usada pelo programa que precisa ser exatamen-te aquele previsto pelo administrador

Com frequumlecircncia eacute importante usar de criptografi a MPPE e habilitar o modo stateful desse proto-

colo No caso do pptpconfig seria preciso selecionar Require Microsoft Point-to-Point Encryption (MPPE) e Refuse Stateless Encryption para conseguir isso

O pptpconfig tambeacutem tem capaci-dade de adicionar rotas automatica-mente Simplesmente clique na aba Routing marque o botatildeo Client to LAN e digite as rotas dos sistemas que devem ser conectados pela VPN

Muitos usuaacuterios Linux preferem o NetworkManager por um simples motivo ele costuma funcionar Haacute plugins para ele que suportam vaacuterios protocolos incluindo OpenVPN Microsoft PPTP e L2TP Apoacutes insta-laacute-los basta clicar no iacutecone de rede e selecionar as conexotildees VPN para comeccedilar a fornecer as informaccedilotildees apropriadas A fi gura 5 mostra as etapas para confi gurar uma conexatildeo Cisco num sistema Ubuntu

O NetworkManager suporta a criptografi a por chave compartilhada quanto por certifi cado X509 Para fazecirc-lo funcionar adequadamente

eacute preciso instalar o daemon racoon para fazer a troca de chaves pela In-ternet Depois deve-se obter com o administrador da rede a chave com-partilhada e os certifi cados assinados caso eles sejam usados

IPsec e kernel 26 Certifi que-se de instalar os daemons certos para a conexatildeo Se o sistema utilizar alguma versatildeo do kernel 26 ele jaacute suporta nativametne o IPsec mas se for usado o KVpnc ou o vpnc ainda seraacute preciso instalar o daemon racoon que se encarrega da troca de chaves em implementaccedilotildees IPsec Se o racoon natildeo estiver disponiacutevel no re-positoacuterio da distribuiccedilatildeo em questatildeo basta conferir o site do projeto [4]

Para suportar o FreeSWAN o padratildeo antigo para o IPsec eacute pre-ciso instalar o daemon ipsec caso contraacuterio a implementaccedilatildeo falharaacute pois o sistema natildeo conseguiraacute con-duzir as trocas de senha necessaacuterias ao estabelecer o tuacutenel

Conclusatildeo Estabelecer uma VPN hoje em dia eacute muito mais faacutecil mas os clien-tes VPN graacutefi cos ainda natildeo fazem tudo pelo usuaacuterio Apesar de ainda ser trabalhoso fazer a comunicaccedilatildeo com servidores Microsoft Cisco e OpenVPN basta uma certa dedica-ccedilatildeo para se obter sucesso

Mais informaccedilotildees

[1] OpenVPN httpopenvpnnet

[2] NetworkManager httpwwwgnomeorgprojectsNetworkManager

[3] pptpclient httppptpclientsourceforgenet

[4] Rasvpn httpwwwnetbsdorgdocsnetworkipsecrasvpnhtml

Figura 5 Confi guraccedilatildeo de VPN Cisco no NetworkManager

copy Linux New Media do Brasil Editora Ltda

33

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

Linux Pro novo (julho) 77 251108 172941

copy Linux New Media do Brasil Editora Ltda

34 httpwwwlinuxmagazinecombr

Integraccedilatildeo faacutecil ao Active Directory com o Likewise Open

Na ativaO Likewise Open oferece integraccedilatildeo faacutecil a ambientes Active Directory Mostramos como instalar e configurar o sistema de autenticaccedilatildeo amigaacutevel para administradorespor Walter Neu

O sistema de autenticaccedilatildeo Li-kewise Open [1] integra clien-tes Linux ao ambiente Active

Directory Obviamente tambeacutem eacute possiacutevel configurar o Active Directory pelo Samba e seus atores coadjuvantes [2] mas a soluccedilatildeo da Likewise oferece vaacuterios benefiacutecios para facilitar a confi-guraccedilatildeo e a administraccedilatildeo

A versatildeo gratuita e GPL do Likewi-se suporta autenticaccedilatildeo em diretoacuterios AD a autorizaccedilatildeo de serviccedilos ldquoker-berizadosrdquo e ateacute o recurso de single sign-on Isso pode se parecer bastante com o Samba que faz as mesmas coisas na verdade o gerente de pro-jetos da Likewise Gerald Carter eacute um antigo membro da equipe central

de desenvolvimento do Samba O Likewise Open se aproveita do tra-balho do Samba embora acrescente diversos recursos proacuteprios

Pacotes prontosHaacute pacotes do Likewise para distri-buiccedilotildees da Red Hat Novell e Cano-nical aleacutem de alguns sistemas Unix comerciais e do MacOS X

O site do Likewise exibe a versatildeo 50 embora os pacotes especiacuteficos por distribuiccedilatildeo incluam a versatildeo 4 usada neste artigo Usuaacuterios do Ubuntu tecircm agrave disposiccedilatildeo os pacotes likewise-open e likewise-open-gui no repositoacuterio Uni-verse Os pacotes do Likewise incluem vaacuterias dependecircncias ndash primordialmente

relacionadas ao Kerberos O Likewise Open se baseia na versatildeo MIT do Ker-beros como back-end [3] Durante a instalaccedilatildeo no Ubuntu o pacote pede para o administrador especificar os servidores Kerberos e administrativo (figuras 1 e 2)

Aleacutem de um servidor AD e uma estrutura de domiacutenio gerenciada pelo Windows o Likewise possui dois ou-tros requisitos um servidor de nomes funcional e um reloacutegio do sistema sincronizado Se os reloacutegios do cliente e do servidor estiverem mais de cinco minutos fora de sincronia o servidor Kerberos certamente se recusaraacute a emitir tiacutequetes por medida de segu-ranccedila para evitar ataques

Nova abordagemAdicionar um sistema Linux ldquocrurdquo a um domiacutenio exige certo trabalho de configuraccedilatildeo [2] O Likewise Agent faz a maior parte desse trabalho adi-cionando-se ao Name Service Switch (NSS) e aos Pluggable Authentication Modules (PAM) no cliente local

No lado do servidor o agente re-passa as requisiccedilotildees de autenticaccedilatildeo ao servidor Kerberos 5 e ao AD base-ado em LDAP Para permitir que isso aconteccedila o pacote instala algumas bi-bliotecas e arquivos de configuraccedilatildeo Por exemplo liblibnss_lwidentityso integra o Likewise ao NSS e etcpamdpam_lwidentityso faz o mesmo para o PAM O arquivo de configu-

CA

PA

Figura 1 O gerenciador de pacotes do Ubuntu pede o nome do servidor Kerberos ao se instalar os pacotes do Kerberos

copy Linux New Media do Brasil Editora Ltda

35

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

raccedilatildeo etcsecuritypam_lwidentityconf configura o moacutedulo e a interface do controlador de domiacutenio remoto eacute implementada pelo servidor Winbind do Likewise o likewise-winbindd O servior tem seu proacuteprio arquivo de configuraccedilatildeo etcsambalwiauthdconf semelhante ao arquivo smbconf do pacote Samba

O Likewise Open integra esses com-ponentes para suportar um login de domiacutenio transparente para os usuaacuterios O processo de login repassa o nome do usuaacuterio e sua senha para o PAM O moacutedulo pam_lwidentityso se comuni-ca com o serviccedilo de autenticaccedilatildeo do Likewise que gera uma chave secreta a partir do nome e da senha do usuaacute-rio O daemon do Likewise utiliza a chave secreta para solicitar um tiacutequete para solicitaccedilatildeo de tiacutequetes (TGT na nomenclatura do Kerberos) ao ser-vidor de autenticaccedilatildeo Kerberos que roda como parte do Key Distribution Center (KDC) no servidor AD

Ao apresentar o TGT o serviccedilo de autenticaccedilatildeo do Likewise recebe tiacutequetes de serviccedilo para outros ser-viccedilos de rede como SSH Os usuaacute-rios entatildeo jaacute podem fazer logon nos servidores kerberizados sem digitar suas senhas novamente

Configure o pacote de instalaccedilatildeo do Likewise em cada maacutequina Li-nux que vai se tornar um membro do domiacutenio AD (e ser gerenciada pelo Likewise) Se forem usados os pacotes de instalaccedilatildeo fornecidos no site o Likewise Open seraacute instalado com uso de um Bitrock Installer ndash um executaacutevel cujo nome de arquivo ter-mina com installer Para executar o programa eacute preciso tornar-se root e seguir as instruccedilotildees na tela

O instalador exibe informaccedilotildees sobre as licenccedilas de coacutedigo aberto dos componentes instalados antes de o Likewise instalar seus arquivos Depois disso o instalador leva o ad-ministrador ao domainjoin-cli que se localiza no diretoacuterio usrcente-risbin (violando as-sim as convenccedilotildees do FHS [4] os pacotes das distribuiccedilotildees e as versotildees mais recentes do Likewise corrigem esse erro) O agente ar-mazena informaccedilotildees de log em varloglw-identity ndash se for usada a versatildeo do repositoacuterio do Ubuntu ndash em varloglikewise-open

Pode entrarUm domiacutenio AD precisa que os siste-mas usuaacuterio e cliente tornem-se mem-bros dele O ato de criar uma conta de maacutequina no serviccedilo de diretoacuterio da Microsoft eacute chamado no idioma do AD de ldquojuntar-se ao domiacuteniordquo (ou ldquoJoining the domainrdquo em inglecircs)

Haacute uma ferramenta de linha de co-mando chamada domainjoin-cli que permite que o usuaacuterio root se junte ao domiacutenio AD criando uma conta de maacutequina no diretoacuterio nesse processo A ferramenta domainjoin-cli aceita a opccedilatildeo join e o domiacutenio como argumen-tos O argumento do domiacutenio precisa ser especificado como um nome DNS completamente qualificado

Aleacutem disso o comando espera o nome de um usuaacuterio com autorizaccedilatildeo para criar contas de computador no ambiente AD O exemplo 1 mostra um computador chamado ubuntu se juntando ao domiacutenio exemploorg A conta Administrator possui os privileacute-gios necessaacuterios para essa etapa

A segunda opccedilatildeo para se juntar a um domiacutenio eacute a interface graacutefica do Likewise Open (figura 3) Poreacutem a interface natildeo estaacute incluiacuteda no pacote baacutesico do programa Para acrescentaacute-la simplesmente instale o pacote likewise-open-gui e inicie-o com privileacutegios de root digitando domainjoin-gui

Manual e automaacuteticoNos dois casos o Likewise Open lida com a tarefa de configuraccedilatildeo em se-gundo plano eliminando a necessi-

Figura 2 Eacute preciso especificar o servidor administrativo para o domiacutenio do Kerberos

Exemplo 1 Juntando-se a um domiacutenio

01 domainjoin-cli join exampleorg Administrator02 Joining to AD Domain exampleorg03 With Computer DNS Name ubuntuexampleorg04 05 AdministratorEXAMPLEORGrsquos password06 Enter AdministratorEXAMPLEORGrsquos password07 SUCCESS

copy Linux New Media do Brasil Editora Ltda

36 httpwwwlinuxmagazinecombr

CAPA | Likewise

dade de etapas manuais complexas O software modifica as configuraccedilotildees para interaccedilatildeo do usuaacuterio com o AD (figura 4) incluindo os arquivos neces-saacuterios para a comunicaccedilatildeo do Kerberos com o KDC krb5conf e os arquivos do PAM em etcpamd

Para fazer login usando um domiacutenio de cliente Linux os usuaacuterios precisam de um diretoacuterio home no cliente O Likewise cria o diretoacuterio localmente se for modificado o arquivo etcse-curitypam_lwidentityconf

O arquivo etcnsswitchconf faz o Likewise Open retomar o controle e especifica o meacutetodo lwidentity O servi-ccedilo de nomes do NSS verifica primeiro arquivos locais como etcpasswd

passwd files lwidentitygroup files lwidentity

Se ele natildeo conseguir encontrar uma conta ele acessa o AD em se-guida Isso significa que usuaacuterios lo-cais ainda podem acessar a maacutequina local caso o AD falhe

Configuraccedilatildeo cuidadosaO Likewise eacute cuidadoso na configura-ccedilatildeo do sistema Linux Ele cria becapes de todos os arquivos que modifica acrescentando um sufixo lwid-entitybak e por um bom motivo executar domainjoin-cli leave como root na li-nha de comando ou na interface graacutefica apaga a conta da maacutequina

Nesse caso o Likewise recupera todos os arquivos de configuraccedilatildeo que tive-

rem sido alterados Ele usa o arquivo etcsambalwiauthdconf para permitir que os ad-ministradores especifiquem opccedilotildees de configuraccedilatildeo para seu proacuteprio sistema Winbind essas configuraccedilotildees devem ser familiares agravequeles que utilizam o Samba num am-biente AD

Configuraccedilatildeo individualO paracircmetro template shell define o shell de login para todos os usuaacuterios de forma centralizada O diretoacuterio home do usuaacuterio natildeo eacute definido no banco de dados de usuaacuterios do AD portanto eacute preciso especificar o caminho no ar-quivo de configuraccedilatildeo com o paracircmetro template homedir do Samba

template shell = binbashtemplate homedir = homeDU

O Likewise-Winbind substitui D pelo nome de domiacutenio curto e U pelo usuaacuterio do domiacutenio

Para evitar colisotildees de nomes em relacionamentos de confianccedila faz sentido adicionar o domiacutenio ao caminho do usuaacuterio ndash e aplicar os padrotildees para diretoacuterios dos usuaacuterios Se a configuraccedilatildeo natildeo for alterada o Likewise Open usaraacute a contra-barra como separador de domiacutenios e nomes de usuaacuterios Obviamente a contrabarra possui um significado especial em shells Unix Os especia-listas recomendam mudar isso para outro caractere em todos os clientes usando a variaacutevel winbind separator A sugestatildeo eacute o sinal +

Se houver apenas um domiacutenio eacute possiacutevel definir winbind use default domain = yes para evitar separar o domiacutenio dos nomes de usuaacuterios Se isso natildeo for feito os usuaacuterios do domiacutenio fornecidos pelo Winbind natildeo funcionaratildeo a menos que se adicione um prefixo de domiacutenio Reiniciar o Likewise Open por seu script de inicializaccedilatildeo aplica as mudanccedilas

VerbosoO pacote likewise-open conteacutem trecircs ferramentas de diagnoacutestico ndash lwinet lwimsg e lwiinfo ndash uacuteteis para fins de depuraccedilatildeo entre outros

Exemplo 2 klist exibe os tiacutequetes locais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081208 134808 081208 234808 krbtgtEXAMPLEORGEXAMPLEORG07 renew until 081908 13480808 081208 134808 081208 234808 SUSE$EXAMPLEORG09 renew until 081908 134808

Figura 3 A interface do Likewise Open pede o nome DNS do domiacutenio e os nomes das maacutequinas

copy Linux New Media do Brasil Editora Ltda

37

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

Como o Likewise se baseia no coacutedigo do Winbindd do Samba as ferramentas vatildeo lidar com as tarefas normalmente realizadas pelo dae-mon Winbind do Samba Digitando lwiinfo eacute possiacutevel verificar a conexatildeo ao controlador do domiacutenio

A ferramenta corresponde ao wbin-fo do Samba As duas consultam o daemon do Winbind Por exemplo o lwiinfo -u lista todos os usuaacuterios do domiacutenio padratildeo

EXAMPLE+mokr000EXAMPLE+phkr000EXAMPLE+wane000

O mesmo princiacutepio se aplica a grupos no serviccedilo de diretoacuterio que satildeo exibidos pela opccedilatildeo -g Isso ga-rante que o Linux saiba os nomes do AD O comado lwiinfo -g lista os grupos conhecidos

EXAMPLE+contasEXAMPLE+marketing []

Novamente o Likewise usa o ca-ractere + configurado em lwiauthdconf como separador no Winbind A ferramenta lwimsg corresponde ao smbcontrol e eacute usada para controlar o Winbindd definindo o niacutevel de depuraccedilatildeo por exemplo A contra-parte da ferramenta net do Samba usada para administraccedilatildeo remota de um domiacutenio eacute o lwinet

Apoacutes instalar o software eacute uma boa ideacuteia tentar fazer logon no AD O

formato do nome do usuaacuterio precisa corresponder agravequele definido para o serviccedilo de diretoacuterio Por exemplo se for mantida a configuraccedilatildeo padratildeo para separaccedilatildeo entre o domiacutenio e o nome do usuaacuterio mas o separador for alterado para o sinal de soma os usuaacuterios precisaratildeo digitar seus nomes como DOMIacuteNIO+usuaacuterio no login pelo console ou por um gerenciador de desktop (veja a fi-gura 5)

ubuntu Login EXAMPLE+wane000PasswordEXAMPLE+wane000ubuntu~$

Conforme mencionado anterior-mente o Likewise autentica usuaacute-rios pelo protocolo Kerberos por meio da requisiccedilatildeo de um TGT ao KDC antes de prosseguir agrave instala-ccedilatildeo local do tiacutequete no cliente como tmpkrb5cc_UID (veja o exemplo 2) O comando klist exibe os tiacutequetes vaacutelidos de um usuaacuterio

O usuaacuterio que posuir um tiacutequete tem permissatildeo para acessar serviccedilos kerberizados na rede sem fazer logon separadamente no serviccedilo de rede

Single sign-onPara permitir que um serviccedilo de rede decirc acesso sem senha a um usuaacuterio o administrador precisa atribuir um Service Principal Name (SPN) ao serviccedilo O SPN identifica o serviccedilo dentro do ambiente AD O serviccedilo pede um tiacutequete de serviccedilo para o Service Principal ao KDC identifi-cando-se com seu TGT

O SPN compreende uma defi-niccedilatildeo de serviccedilo seguida por uma barra e o hostname completamente qualificado do servidor um siacutembolo de arroba e o domiacutenio

Figura 4 Depois de entrar no domiacutenio o Likewise cria uma conta de maacutequina para o computador Ubuntu no Active Directory

Figura 5 O GDM pede um nome para login na autenticaccedilatildeo Neste AD o nome eacute composto pelo nome do domiacutenio (EXAMPLE) um sinal + e o nome do usuaacuterio

copy Linux New Media do Brasil Editora Ltda

38 httpwwwlinuxmagazinecombr

CAPA | Likewise

As definiccedilotildees de serviccedilos incluem host ftp ou pop Se um usuaacuterio es-tabelecer uma conexatildeo SSH com outro computador membro de um AD gerenciado pelo Likewise o serviccedilo kerberizado apresentaraacute o TGT do usuaacuterio e pediraacute um tiacute-quete de serviccedilo ao KDC para por exemplo o SPN hostubuntuexam-pleorgEXAMPLEORG ndash isso pressupotildee que o cache local de tiacutequetes ainda natildeo tenha um tiacutequete O tiacutequete de serviccedilo conteacutem o ID do usuaacuterio que faz a requisiccedilatildeo e a chave da sessatildeo O Likewise Open criptograva isso com a chave do servidor e a arma-zena no cache de usuaacuterios como o TGT (exemplo 3)

O cliente SSH envia automati-camente o tiacutequete de serviccedilo crip-tografado e um timestamp tambeacutem criptografado para validar o sshd do autenticador Isso garante que cada requisiccedilatildeo de tiacutequete seja uacutenica enquanto assegura que o cliente re-almente natildeo possui a chave da ses-satildeo Sem o autenticador seria mais faacutecil para um agressor capturar um tiacutequete no traacutefego da rede e iniciar um ataque de repeticcedilatildeo

O servidor valida o tiacutequete de ser-viccedilo apresentado a ele Para isso ele faz referecircncia ao arquivo etckrb5keytab local Esse arquivo armazena a chave do servidor que o usuaacuterio utiliza para decifrar o tiacutequete de serviccedilo revelando assim a chave da sessatildeo O autenticador se baseia na chave da sessatildeo caso tenha sucesso o usuaacuterio eacute autenticado sem neces-sidade de senha (figura 6)

ConexatildeoO Likewise Open configura automa-ticamente clientes SSH preacute-existen-tes e outros clientes ao se juntarem ao domiacutenio permitindo que usem o Kerberos para se autenticarem no futuro No lado do servidor o Likewise adiciona as linhas

GSSAPIAuthentication yesGSSAPICleanupCredentials yes

ao arquivo de configuraccedilatildeo etcsshsshd_config O Likewise tambeacutem acrescenta as seguintes linhas para um cliente SSH

GSAPIAuthentication yesGSSAPIDelegateCredentials yes

A instruccedilatildeo GSSAPIDelegateCreden-tials passa o TGT para o servidor de des-tino Para todas as outras configuraccedilotildees o software utiliza a Generic Security Ser-vices API (API de serviccedilos geneacutericos de seguranccedila GSSAPI) uma interface ge-neacuterica para serviccedilos de seguranccedila como o Kerberos

Figura 6 O Likewise implementa o single sign-on por meio do Kerberos Os usuaacuterios natildeo precisam digitar uma senha para fazer logon

Exemplo 4 Montagem de compartilhamentos Samba

01 ltxml version=rdquo10rdquo encoding=rdquoUTF-8rdquogt02 ltpam_mountgt03 ltvolume user = ldquordquo04 server = ldquoSAMBASERVERrdquo05 mountpoint = ldquohomeEXAMPLE(USER)Documentrdquo06 path = ldquo(USER)rdquo07 fstype = ldquosmbfsrdquo gt08 ltpam_mountgt

Exemplo 3 Tiacutequetes no cache de credenciais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081308 154829 081408 014830 krbtgtEXAMPLEORG EXAMPLEORG07 renew until 082008 15482908 081308 154830 081408 014830 SUSE$EXAMPLEORG09 renew until 082008 15482910 081308 154838 081408 014830 hostubuntuexampleorg11 renew until 082008 15482912 081308 154838 081408 014830 hostubuntuexampleorgEXAMPLEORG13 renew until 082008 154829

copy Linux New Media do Brasil Editora Ltda

39

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

LocalNa primeira vez em que um usuaacuterio do domiacutenio faz logon num cliente o Likewise Open usa o PAM (pam_lwidentityso) para criar diretoacuterios locais para esse usuaacuterio Alterna-tivamente o moacutedulo pam_mount pode montar diretoacuterios centrais do usuaacuterio num servidor remoto por SMBCIFS [5] Isso garante a todos os usuaacuterio o acesso a seus proacuteprios arquivos independentemente do cliente usado por eles no login O compartilhamento eacute definido por uma linha no arquivo etcsecuri-typam_mountconf que usa a palavra-chave volume

volume usuaacuterio sistema_de_arquivos servidor compartilhamento ponto_de_montagem opccedilotildees algoritmo caminho

A presenccedila de um curinga () no paracircmetro usuaacuterio faz o moacutedulo inserir o nome do usuaacuterio Sistema_de_arquivos pode ser smbfs ou cifs O servidor pode ser um IP ou um nome NetBIOS e compartilhamento pode usar o amp como curinga para o nome do usuaacuterio

Os trecircs uacuteltimos paracircmetros geral-mente natildeo satildeo necessaacuterios traccedilos satildeo aceitaacuteveis nesse caso montar o diretoacuterio Documentos ou o diretoacuterio home completo eacute questatildeo de gosto e depende de como a empresa orga-niza seus servidores centrais

Caso o ponto de montagem natildeo exista o moacutedulo pam_mount do PAM o cria se sua opccedilatildeo mkmountpoint 1 estiver presente Na versatildeo 029 o pam_mount armazena as configura-ccedilotildees num formato XML equivalente conforme mostra o exemplo 4

Antes das linhas sufficient na seccedilatildeo auth de etcpamd eacute possiacutevel inserir uma linha para o moacutedulo O exemplo 5 mostra uma configuraccedilatildeo nos arquivos common-auth e common-session no Ubuntu Para evitar a necessidade de os usuaacuterios digitarem suas senhas repetidamente a linha tr_first_pass = yes do arquivo etcsecuritypam_lwidentityconf ativa a opccedilatildeo para tentar novamente uma senha jaacute digitada antes

Versatildeo comercialAleacutem da versatildeo de coacutedigo aberto do Likewise a corporaccedilatildeo america-na Likewise Software oferece uma versatildeo comercial de seu software o Likewise Enterprise [6] A versatildeo comercial possui suporte a poliacuteticas de grupo no AD aleacutem das funciona-lidades oferecidas pela versatildeo livre o produto define aproximadamente 500 poliacuteticas padratildeo O Likewise Ad-ministrative Console eacute capaz de usar uma maacutequina Linux ou Unix para gerenciar registros do AD

Aleacutem disso tudo o Likewise En-terprise suporta desktops Linux que fazem referecircncia ao AD para obten-ccedilatildeo de configuraccedilotildees e restriccedilotildees Isso

ativa a implementaccedilatildeo de poliacuteticas estritas de seguranccedila A variante corporativa estaacute disponiacutevel gratuita-mente para fins de avaliaccedilatildeo ou por US$ 250 na versatildeo para servidores A empresa oferece dois niacuteveis de suporte comercial

Nova caraUma vez configurado o Likewi-se Open oferece o mesmo escopo funcional de uma combinaccedilatildeo de Samba Kerberos PAM e NSS Ele livra o administrador de vaacuterias tarefas monoacutetonas e repetitivas de configu-raccedilatildeo e suporta o gerenciamento de usuaacuterios centralizado e independente de plataforma O serviccedilo de autenti-caccedilatildeo por tiacutequetes do Kerberos e o single sign-on satildeo bocircnus

Quem se interessar pelo Likewi-se Open pode apreciar os recursos adicionais oferecidos pela versatildeo co-mercial ou os benefiacutecios do suporte profissional O uacutenico trabalho ma-nual que resta para o administrador eacute o gerenciamento centralizado dos diretoacuterios dos usuaacuterios

Mais informaccedilotildees

[1] Likewise Open httpwwwlikewisesoftwarecomproductslikewise_open

[2] Walter Neu ldquoDomando os catildees do infernordquo httplnmcombrarticle2424

[3] Kerberos MIT httpwebmitedukerberos

[4] Padratildeo Hieraacuterquico de Arquivos (FHS) httpwwwpathnamecomfhs

[5] Montagem de diretoacuterios home com PAM httppam-mountsourceforgenet

[6] Likewise Enterprise httpwwwlikewisesoftwarecomproductslikewise_enterprise

Exemplo 5 Configuraccedilatildeo do pam_mount

01 etcpamdcommon-auth02 auth required pam_mountso03 auth sufficient libsecuritypam_lwidentityso04 auth requisite pam_unixso nullok_secure try_first_pass05 auth optional pam_smbpassso migrate missingok0607 etcpamdcommon-session08 session optional pam_mountso09 auth sufficient libsecuritypam_lwidentityso10 session required pam_unixso

copy Linux New Media do Brasil Editora Ltda

40 httpwwwlinuxmagazinecombr

Serviccedilo RDP Linux para clientes de terminal Windows

O manda-chuva do terminal

O xrdp ajuda os seus clientes de terminal Windows a se conectarem ao Linuxpor Kenneth Hess

A conexatildeo de desktops remotos do Windows no Linux ge-ralmente consome bastante

banda da rede eacute insegura e difiacutecil de configurar E se um sistema Windows pudesse se conectar a um sistema Linux tatildeo facilmente quanto o faz com outro sistema Windows ndash utili-zando para isso o mesmo aplicativo usado para conectar originalmente ao Windows

O xrdp eacute uma implementaccedilatildeo de coacutedigo aberto do RDP (Remote Desktop Protocol ndash ou Protocolo de Ambiente de Trabalho Remoto na

traduccedilatildeo em portuguecircs) o protoco-lo usado nos serviccedilos de terminal do Windows para conexatildeo nativa a desktops Windows O Pacote xrdp fornece a funcionalidade RDP bem como um servidor graacutefico que seja capaz de aceitar conexotildees do rdesktop [1] e de clientes de serviccedilos de ter-minais Windows

Uma vez conectado e autenticado no servidor RDP Linux o usuaacuterio remoto teraacute disponiacutevel um ambiente de trabalho Linux em modo graacutefico E o melhor eacute que natildeo eacute necessaacuterio executar um servidor graacutefico na maacute-quina com Windows nem eacute preciso exportar a tela do Linux para o com-putador com Windows

Configurar o servidor RDP no Linux eacute faacutecil e leva apenas alguns minutos Para os usuaacuterios novatos de Linux ou os administradores de sistemas Windows segue a lista de requisitos necessaacuterios para fazer o sistema funcionar uma conta de usuaacuterio padratildeo

na maacutequina Linux acesso remoto ou ao console do

servidor Linux acesso com privileacutegios administrati-

vos (de root) no servidor Linux

Tambeacutem ajuda se vocecirc souber al-guma coisa sobre RDP e sobre a otimizaccedilatildeo da configuraccedilatildeo de um cliente RDP

Instalaccedilatildeo e configuraccedilatildeoPara nos certificarmos de que esta-mos usando a versatildeo mais recente do xrdp vamos instalaacute-lo a partir do coacutedigo-fonte Haacute pacotes do pro-grama para algumas distribuiccedilotildees o que pode facilitar a instalaccedilatildeo e a integraccedilatildeo agrave distribuiccedilatildeo Poreacutem o objetivo deste artigo eacute possibili-tar a instalaccedilatildeo em qualquer sis-tema Assim baixe o coacutedigo-fonte do pacote xrdp [2] descompacte-o e compile-o

$ tar zxvf xrdp-041targz$ cd xrdp-041$ make

Em seguida instale-o usando pri-vileacutegios de root

make install

Os arquivos executaacuteveis scripts e bibliotecas seratildeo instalados no diretoacuterio usrlocalxrdp e os arquivos de con-figuraccedilatildeo no diretoacuterio etcxrdp

A documentaccedilatildeo do aplicativo eacute um pouco obscura sobre o que fazer a seguir Embora tenhamos decidido no comeccedilo natildeo mudar nenhum dos paracircmetros nos arquivos sesmanini e xrdpini disponiacuteveis em etcxrdp e tenhamos abordado a situaccedilatildeo

CA

PA

Figura 2 Forneccedila seu usuaacuterio e sua senha do sistema Linux

Figura 1 Janela de conexatildeo com o desktop remoto

copy Linux New Media do Brasil Editora Ltda

41

| CAPAxrdp

como um administrador de sistemas Windows assumindo que as coisas iriam funcionar sem necessidade de muitos ajustes agrave configuraccedilatildeo nesse ponto essa abordagem comeccedila a se tornar frustrante

Uma vez com o sistema instala-do os seguintes comandos devem ser executados como root

cd usrlocalxrdp cp xrdp_controlsh etcinitdxrdp_control

Em seguida em distribuiccedilotildees derivadas do Red Hat os seguintes comandos se aplicam

chkconfig --add xrdp_control

chkconfig xrdp_control on service xrdp_control start

Jaacute em distribuiccedilotildees derivadas do De-bian esses satildeo os comandos

update-rcd xrdp_control defaults update-rcd xrdp_control start 80 3 4 stop 0 1 6 etcinitdxrdp_control start

O script xrdp_controlsh controla os serviccedilos de ativaccedilatildeo desativaccedilatildeo e reinicializaccedilatildeo do pro-grama Ao copiar o script para o diretoacuterio etcinitd pode-se retirar a ex-tensatildeo sh por motivos esteacuteticos ndash nenhum ou-tro script desse diretoacuterio possui essa extensatildeo em-bora todos sejam scripts de shell

Em sistemas baseados em FedoraRed Hat o comando chkconfig eacute um utilitaacuterio para atualizar e buscar informaccedilotildees sobre o niacutevel de execuccedilatildeo para serviccedilos de sistema ma-nipulando os vaacuterios links simboacutelicos em etcinitd para ali-viar um pouco os administradores de

sistema da tarefa tediosa de editar os links simboacuteli-cos e a necessi-dade de manipu-lar esses serviccedilos manualmente

Haacute pacotes para esse apli-cativo disponiacute-veis para outras distribuiccedilotildees como Debian e Ubuntu mas o correto eacute usar a ferramenta ade-quada para a sua distribuiccedilatildeo

Assim para criar um novo serviccedilo de inicializaccedilatildeo copie seu script de controle para etcinitd confor-me mostrado acima e entatildeo use o comando chkconfig para ativaacute-lo A linha chkconfig xrdp_control on de-fine os niacuteveis de execuccedilatildeo (runlevels) do serviccedilo (ver tabela 1) Por exemplo o comando chkconfig --level 35 xrdp_control configura o xrdp_con-trol para funcionar nos niacuteveis de execuccedilatildeo 3 e 5 O uacuteltimo comando na listagem acima inicia os serviccedilos sesman e xrdp

Para se conectar ao serviccedilo RDP no servidor Linux a partir de um PC com Windows basta fazer exatamente como se faria com um servidor Win-dows como mostra a figura 1

O cliente RDP abre uma nova janela conforme ilustrado na figura 2 solicitando o nome de usuaacuterio e a senha que satildeo aqueles configu-rados no servidor Linux Forneccedila um nome e uma senha vaacutelidos e clique em OK Mesmo que a maacute-quina Linux esteja configurada para usar um domiacutenio do serviccedilo Active Directory ainda seraacute preciso adicio-nar cada usuaacuterio aos sistemas Linux que se desejar acessar via RDP Para fazer isso crie primeiramente um grupo para todos os usuaacuterios do serviccedilo RDP

Tabela 1 Niacuteveis de execuccedilatildeo no Linux

0 Desligar

1 Modo monousuaacuterio

2 Multiusuaacuterio sem NFS

3 Multiusuaacuterio completo

4 Natildeo utilizada

5 X11 (graacutefico)

Detalhe haacute distribuiccedilotildees que utilizam o niacutevel 4 como ambiente graacutefico semelhante ao niacutevel 5

Figura 3 Registro do gerenciador de sessatildeo da conexatildeo xrdp

Figura 4 Uma conexatildeo com o desktop pronta para usar

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

42 httpwwwlinuxmagazinecombr

CAPA | xrdp

groupadd rdpusers useradd -g rdpusers fulano passwd fulano

Caso o usuaacuterio jaacute exista no sis-

tema use o comando usermod para adicionaacute-lo ao grupo de usuaacuterios do serviccedilo RDP

usemod -G rdpusers fulano

Embora natildeo seja explicitamente necessaacuterio para o acesso um grupo especial simplifi ca a administraccedilatildeo do sistema Forneccedila agora o nome do usuaacuterio criado e a sua senha e entatildeo clique em OK

A tela mostrada na figura 3 de-veraacute aparecer Essa eacute a janela de registro do gerenciador de sessotildees da conexatildeo que ilustra a negocia-ccedilatildeo entre o cliente e o servidor Perceba que o gerenciador de ses-sotildees conecta primeiramente agrave porta associada ao serviccedilo RDP e entatildeo agrave porta de um serviccedilo VNC para entatildeo apresentar o desktop Linux a vocecirc A figura 4 mostra um desktop CentOS 5

Quando desconectando de uma sessatildeo RDP em Linux vocecirc veraacute a tela mostrada na fi gura 5 Perceba que somente duas accedilotildees estatildeo dis-poniacuteveis Encerrar sessatildeo atual e Cancelar que satildeo recursos padratildeo de conexotildees VNC remotas

O servidor Linux executa os progra-mas xrdp e sesman e fi ca aguardando co-nexotildees RDP Assim que um cliente de serviccedilos de terminais Windows tenta se conectar ao servidor RDP o servidor e o cliente negociam um niacutevel de criptografi a trocam chaves e veri-fi cam quais recursos estatildeo disponiacuteveis A partir daiacute o cliente escolhe a quantidade de cores e a resoluccedilatildeo da tela que seraacute usada na sessatildeo

Se o usuaacuterio fornecer um nome e uma senha no aplicativo cliente a autenticaccedilatildeo eacute iniciada Caso con-traacuterio o usuaacuterio seleciona o moacutedu-lo de uma lista do tipo drop-down e fornece um usuaacuterio e uma senha na tela de login conforme ilustra a fi gura 6

O moacutedulo libvnc eacute carregado e uma conexatildeo TCP eacute feita para o endereccedilo 127001 ou para o en-dereccedilo IP especifi cado no arquivo etcxrdpxrdpini As credenciais de login do usuaacuterio a resoluccedilatildeo da tela e a quantidade de cores satildeo fornecidas ao aplicativo sesman para fi ns de autenticaccedilatildeo Se o sesman

encontrar uma sessatildeo ativa com a resoluccedilatildeo e a quantidade de cores especifi cadas ele retor-na essa tela ao usuaacute-rio Caso contraacuterio ele inicia uma nova instacircncia xvnc com as especifi caccedilotildees de am-biente do usuaacuterio

Conclusotildees O xrdp eacute faacutecil de ins-talar confi gurar cus-tomizar e usar E ndash o que eacute melhor ndash natildeo eacute

necessaacuterio experiecircncia em Linux para trabalhar com essa poderosa ferra-menta Como natildeo haacute o que instalar no cliente Windows natildeo daacute para se complicar com o xrdp

Muito embora este artigo natildeo mostre qualquer tipo de anaacutelise ex-tensiva de desempenho de rede ou uso de banda com esse aplicativo como se trata de RDP eacute sabido que a performance comeccedila a cair quando o nuacutemero de usuaacuterios simultacircneos conectados se aproxima da marca de 25 Contudo vale a pena conhe-cer o xrdp e integraacute-lo ao seu arse-nal de ferramentas independentes de plataforma

Sobre o autor Ken Hess eacute editor de material teacutecnico e jornalista freelance Ele escreve sobre uma grande variedade de temas envolvendo sistemas de coacutedigo aberto entre eles Li-nux bancos de dados e virtualizaccedilatildeo Agradecimentos especiais a Jay Sorg do projeto xrdp e a Matt Chapman do proje-to rdesktop pela ajuda no desenvolvimen-to deste artigo

Mais informaccedilotildees

[1] rdesktop httpwwwrdesktoporg

[2] xrdp httpxrdpsourceforgenet

Figura 5 Janela de fi nalizaccedilatildeo de sessatildeo do VNC

Figura 6 Tela de login do xrdp

copy Linux New Media do Brasil Editora Ltda

43

| CAPAxrdp

Linux Magazine 50 | Dezembro de 2008

SE

CcedilAtilde

O

pocket_atualizadoindd 61 261108 142709

copy Linux New Media do Brasil Editora Ltda

44 httpwwwlinuxmagazinecombr

A possibilidade de realizar uma certa tarefa num momento especiacutefico ou em intervalos

regulares eacute obrigatoacuteria para adminis-tradores de sistemas O cron daemon original oferece um meacutetodo faacutecil para agendar tarefas em sistemas baseados em Unix Embora o Cron tenha recebido diversas melhorias ao longo dos anos suas versotildees mais recentes ainda satildeo projetadas para agendamentos muito simples Administradores que precisam de algo minimamente incomum satildeo obrigados a criar scripts ou a incluir os recursos de que precisam em um dos scripts iniciados pelo Cron

Imagine quanto tempo seria eco-nomizado se natildeo fosse mais neces-saacuterio criar e alterar esses scripts ou ter qualquer outro trabalho para fazer com que os programas rea-jam a condiccedilotildees de erro e sejam executados na exata hora em que deveriam Vaacuterios produtos comer-

ciais oferecem esse recurso mas podem significar uma mordida no orccedilamento de TI Felizmente o mundo do Coacutedigo Aberto tambeacutem oferece soluccedilotildees de agendamento aleacutem do Cron

Assim como em qualquer software de agendamento a unidade primaacuteria eacute o job ou tarefa que geralmente eacute um script ou programa iniciado pelo software de agendamento Em vaacuterios casos o Cron eacute suficiente para suprir os requisitos mais baacutesicos de agen-damento tais como executar uma tarefa uma vez por dia (becapes por exemplo) ou tarefas que precisem ser executadas em intervalos mais frequumlentes menos frequumlentes ou em datas especiacuteficas

Poreacutem quando comeccedilamos a lidar com dependecircncias de algum tipo rapidamente eacute possiacutevel perceber as limitaccedilotildees do Cron ndash por exemplo se for necessaacuterio iniciar um progra-ma especiacutefico apoacutes um certo evento

Haacute casos de verdadeiras seacuteries de co-mandos que precisam ser executados em ordem e precisam todos ter su-cesso ndash se um dos comandos falhar a execuccedilatildeo dos seguintes causaria grandes problemas Nem as versotildees mais novas do Cron conseguem li-dar com isso principalmente se for necessaacuterio iniciar uma tarefa jaacute no meio da cadeia de comandos

Muitas tarefas precisam ser ge-renciadas em muacuteltiplas maacutequinas entatildeo um bom software de agen-damento permite que se gerencie todas as maacutequinas a partir de um ponto central inicie tarefas remo-tamente e assim por diante Para distribuir crontabs para essas maacutequi-nas remotas pode-se usar o Rsync mas isso rapidamente se torna um pesadelo administrativo quando a configuraccedilatildeo eacute diferente ao longo das maacutequinas ou quando as tare-fas agraves vezes precisam ser iniciadas manualmente ou ainda quando haacute

CA

PA

O agendador Open Source Job Scheduler

Muito aleacutem do CronPlanejar e agendar tarefas computacionais pode exigir muito trabalho principalmente se abranger muacuteltiplas maacutequinas Conheccedila uma ferramenta que facilita muito essa aacutereapor James Mohr

copy Linux New Media do Brasil Editora Ltda

45

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

outras tarefas que natildeo fazem parte do Cron

MultiplataformaApesar de ser possiacutevel instalar ver-sotildees abertas do Cron no Windows lidar com diferentes sistemas ope-racionais causa ainda mais proble-mas Por exemplo alguns dialetos de Unix natildeo suportam um arquivo etccrontab central entatildeo eacute preciso criar um arquivo para cada usuaacuterio O Cron era uma boa ferramenta nessa eacutepoca e geralmente ainda eacute mas as necessidades de muitas empresas jaacute superam suas funcionalidades

As limitaccedilotildees do Cron natildeo pas-saram despercebidas Haacute produtos comerciais que custam pequenas fortunas e costumam ser licenciados com base no nuacutemero de servidores ou de scripts a serem iniciados

Por sua vez os problemas dos pro-dutos comerciais tambeacutem natildeo passa-ram despercebidos pela comunida-de do Coacutedigo Aberto Uma soluccedilatildeo surpreendente eacute o Open Source Job Scheduler desenvolvido pela alematilde SOS (Software- und Organisations-Service) Haacute versotildees para Linux So-laris HP-UX (PA-RISC IA64) AIX e Windows Ele tambeacutem suporta vaacuterios bancos de dados incluindo DB2 Oracle MS SQL Server PostgreSQL e MySQL

O software adota um esquema de duplo licenciamento pela GPL e a Guaranteed License (Licenccedila Ga-rantida) Trata-se do mesmo coacutedigo com funcionalidades atualizaccedilotildees e coacutedigo-fonte idecircnticos

A receita da SOS natildeo proveacutem da venda de seu produto mas dos serviccedilos e do suporte Poreacutem estra-nhamente a empresa natildeo anuncia seu produto ndash nem seus serviccedilos ndash da forma tradicional Ao demonstrar o produto o objetivo natildeo eacute convencer clientes potenciais mas mostrar-lhes o que o produto pode fazer e deixar que eles decidam se ele supre suas necessidades

A versatildeo comercial tambeacutem oferece uma ldquopessoa responsaacutevelrdquo para cada chamado de serviccedilo com tempos de resposta garantidos e pedidos de re-cursos recebem maior prioridade de implementaccedilatildeo Aleacutem disso essa ver-satildeo natildeo possui as restriccedilotildees da GPL entatildeo pode ser embutida em outros aplicativos (comerciais ou natildeo) sem que este precise aderir agrave GPL

Diferente da maioria dos softwa-res comerciais e de coacutedigo aberto a SOS oferece garantia limitada de dois anos e um acordo de indeni-zaccedilatildeo Segundo seu diretor a em-presa se sente obrigada a fornecer ao cliente um retorno por seu pa-gamento e isso tambeacutem se estende a discrepacircncias entre o produto e a documentaccedilatildeo

EstruturaO componente central do pacote eacute o mecanismo de agendamento de tarefas que roda em cada uma das maacutequinas que as agendaratildeo Esse meacute-todo eacute diferente de executar a tarefa pode-se ter um agendador em cada

maacutequina com todos agindo como escravos de um central mas tam-beacutem eacute possiacutevel usar um agendador completo em cada uma delas Esse mecanismo pode ser expandido para permitir o balanceamento de carga por meio de muacuteltiplos servidores

Um aspecto importante a ser considerado eacute chamado de order (pedido) que consiste em um sinal passado entre tarefas Dependendo de suas configuraccedilotildees as tarefas natildeo tecircm permissatildeo de iniciar ateacute rece-berem seu pedido

Na forma mais simples pedidos satildeo como o bastatildeo numa corrida de revezamento entregues por cada tarefa para a seguinte Aleacutem disso eacute possiacutevel configurar pedidos com horas especiacuteficas de iniacutecio para que sejam gerados automaticamente pelo sistema no momento especificado e depois a cadeia respectiva possa se iniciar

Note que para conseguir reagir a um pedido uma tarefa precisa ser configurada para aceitaacute-lo mas o pedido soacute pode ser associado a uma

Figura 1 Janela do editor graacutefico do agendador de tarefas

copy Linux New Media do Brasil Editora Ltda

46 httpwwwlinuxmagazinecombr

CAPA | Agendamento

cadeia de tarefas e natildeo a uma ta-refa especiacutefica Ou seja o pedido eacute passado de tarefa para tarefa dentro da cadeia mas eacute associado somente agrave cadeia Se for desejaacutevel que uma uacutenica tarefa se inicie num momento especiacutefico por exemplo isso pode ser feito dentro da proacutepria tarefa Outro componente importante satildeo os Hot Folders (pastas quentes) que seatildeo di-retoacuterios monitorados pelo agendador em busca de alteraccedilotildees tais como a alteraccedilatildeo ou criaccedilatildeo de tarefas

TarefasTarefas podem ser configuradas a partir da interface graacutefica do editor do agendador (figura 1 chamado aqui de ldquoeditor de tarefasrdquo) ou por arqui-vos XML editados manualmente O editor de tarefas eacute um aplicativo em Java que configura vaacuterias tarefas ca-deias e outros aspectos do sistema Todas as informaccedilotildees de configura-

ccedilatildeo do sistema satildeo armazenadas em arquivos XML e basta abrir o arquivo XML respectivo no editor de tarefas para fazer alteraccedilotildees Poder usar o Vim em arquivos de configuraccedilatildeo eacute mais que uma becircnccedilatildeo em casos de alteraccedilotildees em massa

Os arquivos XML podem ser copiados para maacutequinas remotas e salvos via FTP diretamente a partir do editor de tarefas Quando ater-rissam num Hot Folder os arquivos ficam imediatamente disponiacuteveis para o mecanismo do agendador na maacutequina remota

A interface graacutefica do editor de tarefas natildeo eacute tatildeo intuitiva quanto poderia e vaacuterios campos parecem misteriosos a princiacutepio Como a documentaccedilatildeo deixa a desejar fal-tam explicaccedilotildees sobre muitos desses campos Em alguns casos a docu-mentaccedilatildeo dos arquivos XML ajuda a tirar as duacutevidas

Apesar de as informaccedilotildees de con-figuraccedilatildeo serem armazenadas em arquivos XML por padratildeo eacute pos-siacutevel configurar o agendador para usar diversos bancos de dados dife-rentes Essas tarefas satildeo chamadas de ldquogerenciadasrdquo e cada agendador instalado pode ser configurado para acessar as tarefas no banco de da-dos para natildeo ser necessaacuterio copiar os arquivos manualmente

A operaccedilatildeo cotidiana do siste-ma eacute realizada pela sua interface graacutefica (chamada neste artigo de ldquointerface de operaccedilatildeordquo) que eacute acessada por um navegador e per-mite o gerenciamento das tarefas a partir de qualquer maacutequina Com essa interface eacute possiacutevel natildeo apenas monitorar as tarefas mas tambeacutem iniciaacute-las paraacute-las tratar seus erros e muitas outras funccedilotildees

O agendador de tarefas tambeacutem oferece uma API que permite o ge-renciamento e o controle externos de tarefas A API suporta vaacuterias lin-guagens incluindo Perl VBScript JavaScript e Java Surpreendente-mente natildeo haacute suporte a PHP ape-sar da possibilidade de se gerenciar tarefas a partir de um navegador web e da documentaccedilatildeo de scripts PHP de exemplo

InstalaccedilatildeoOs exemplos deste artigo foram feitos com a versatildeo 134 para Li-nux que pode ser baixada do site do Job Scheduler no SourceForge [1] Se houver intenccedilatildeo de se usar um banco de dados MySQL como neste artigo note que o programa natildeo fornece um driver JDBC para esse banco embora haja drivers para Oracle e outros bancos O driver JDBC para MySQL pode ser baixado diretamente do site do MySQL [2] Basta digitar o caminho do arquivo jar apropriado durante a instalaccedilatildeo

Antes de comeccedilar eacute recomen-daacutevel ler o guia de instalaccedilatildeo em Figura 2 Digitaccedilatildeo do coacutedigo-fonte diretamente no editor de tarefas

copy Linux New Media do Brasil Editora Ltda

47

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

PDF incluiacutedo no pacote Aleacutem dis-so haacute vaacuterios outros PDFs no site da empresa [3] mais aprofundados em diversos toacutepicos Fique ciente ateacute para obter as informaccedilotildees mais baacutesicas na documentaccedilatildeo eacute preciso ser um tanto familiarizado com a programaccedilatildeo orientada a objetos e XML pois a documentaccedilatildeo natildeo fornece qualquer introduccedilatildeo a esses toacutepicos Aleacutem disso ela natildeo eacute bem organizada entatildeo saiba que seraacute preciso procurar bastante Apesar de ser volumosa a documentaccedilatildeo natildeo eacute faacutecil de usar o que eacute algo que a empresa pretente melhorar

No Linux a instalaccedilatildeo ocorre por meio de um instalador em Java e se for feita por um usuaacuterio nor-mal o padratildeo eacute os arquivos serem abrigados em $HOMEscheduler Se for instalado como root o diretoacuterio do programa eacute usrlocalschedu-ler Apoacutes instalar o produto haacute um arquivo README que recomenda que o programa natildeo seja instalado como root mas natildeo haacute menccedilatildeo a isso no guia de instalaccedilatildeo e con-figuraccedilatildeo Para evitar problemas potenciais vamos instalaacute-lo como usuaacuterio normal

Durante a instalaccedilatildeo satildeo pedidos o tipo do banco de dados e infor-maccedilotildees da conexatildeo Natildeo fica claro se o campo ldquodatabase parametersrdquo deve receber os paracircmetros de co-nexatildeo apoacutes o banco de dados estar em execuccedilatildeo ou os paracircmetros de conexatildeo para criaccedilatildeo do banco de dados Infelizmente recomenda-se criar um banco de dados e um usuaacuterio para o programa usar mas isso soacute eacute mencionado apoacutes todas as etapas de instalaccedilatildeo Criar o banco de dados manualmente e conferir privileacutegios do banco antes de iniciar a instalaccedilatildeo jaacute resolve

A instalaccedilatildeo eacute relativamente in-tuitiva mas leva alguns minutos para criar e preencher as tabelas do banco de dados Para instalar o Scheduler em muacuteltiplas maacutequinas com os mes-

mos paracircmetros haacute a opccedilatildeo de criar um script automaticamente ao final da primeira instalaccedilatildeo

IniciandoIndependentemente de a instala-ccedilatildeo ocorrer sob o root ou um usuaacute-rio normal eacute necessaacuterio iniciar o agendador manualmente Seu controle eacute feito como num script rc comum

$HOMEschedulerbinjobschedulersh start$HOMEschedulerbinjobschedulersh stop

Para iniciar o Scheduler auto-maticamente na inicializaccedilatildeo re-comenda-se criar um usuaacuterio espe-ciacutefico para ele e depois um script rc que use o comando su para se tornar esse usuaacuterio e iniciar o programa Se houver necessidade de tarefas serem executadas sob o root ou ou-tro usuaacuterio com mais privileacutegios eacute possiacutevel configurar um ambiente sudo apropriado

Novas tarefasPara criar tarefas pode-se ou edi-tar os arquivos XML diretamente ou pelo editor de tarefas No Li-nux execute o script jobeditorsh localizado por padratildeo em usrlo-calschedulerbin ou $HOMEsche-dulerbin

Como exemplo considere a ta-refa tiacutepica de criaccedilatildeo de um beca-pe da configuraccedilatildeo do sistema Por ora vamos supor que isso seja feito diariamente com o script usrbinbecapesh

Primeiramente inicie o editor de tarefas e selecione New | Hot Folder Element | Job (figura 1) No primei-ro formulaacuterio comece digitando as informaccedilotildees baacutesicas de sua tarefa Para este exemplo digite o nome Becape das configuraccedilotildees no campo Job Title adicione uma descriccedilatildeo ou deixe em branco

No painel esquerdo clique em Execute para digitar os detalhes sobre o programa ou script que se deseja iniciar Como o objetivo eacute executar um script externo selecione o botatildeo

Figura 3 Interface de operaccedilatildeo do Job Scheduler

copy Linux New Media do Brasil Editora Ltda

48 httpwwwlinuxmagazinecombr

CAPA | Agendamento

Run executable e digite o caminho completo do script referido Nesse ponto tambeacutem eacute possiacutevel definir masi paracircmetros a ser passados para o script Por exemplo se o becape comprimir os arquivos armazenados pode ser interessante acrescentar um -c a esse campo

Aleacutem disso pode-se incluir os passos individuais de execuccedilatildeo se-lecionando-se o botatildeo Script e o tipo de coacutedigo do programa depois digitando o coacutedigo-fonte na caixa apropriada Note que isso eacute mais que o nome de um script e pode incluir estruturas de programaccedilatildeo baseadas na linguagem seleciona-da (figura 2)

Para salvar a tarefa pressione o botatildeo Save ou escolha Save no menu File Na primeira vez em que o ar-quivo eacute salvo eacute preciso digitar um nome para ele Para isso navegue ateacute o diretoacuterio configlive e salve o arquivo como becape assim

a extensatildeo xml seraacute adicionada au-tomaticamente

Via navegadorComo o arquivo foi salvo no dire-toacuterio live ele fica imediatamente visiacutevel para o sistema Esse diretoacuterio eacute preacute-definido como um Hot Folder que o sistema lecirc regularmente Nesse ponto a tarefa natildeo foi agendada mas apenas adicionada ao sistema Para iniciar a tarefa eacute preciso executar a interface de operaccedilatildeo apontando seu navegador para httplocal-host4444

Em conexotildees pelo navegador o Scheduler exibe uma interface semelhante agrave da figura 3 Para ver os detalhes da tarefa decirc um duplo clique na tarefa de becape na colu-na agrave esquerda Para executar a tarefa imediatamente clique no botatildeo Job menu e selecione Start task now

Por ser muito faacutecil iniciar o script pela linha de comando isso natildeo eacute

nada espetacular Eacute possiacutevel voltar ao editor de tarefas e clicar na en-trada Run Time no painel esquerdo e selecionar uma hora para a exe-cuccedilatildeo da tarefa Para isso clique em Everyday (todos os dias) e de-fina um novo periacuteodo clicando no botatildeo new Period Em Start Time digite algo como 0900 no campo Single Start Depois clique no bo-tatildeo Save e essa nova configuraccedilatildeo seraacute ativada ndash a tarefa teraacute iniacutecio todos os dias agraves 9 horas

Ateacute agora a uacutenica vantagem do programa sobre o Cron eacute uma inter-face amigaacutevel ndash mas isso eacute apenas o comeccedilo Quando comeccedilamos a conhecer as cadeias de tarefas vemos o poder do agendamento de tarefas

BecapePrimeiro suponha que vocecirc tenha criado uma segunda tarefa que faccedila um becape do banco de dados que deve ser executada imediatamente apoacutes o fim do becape das configu-raccedilotildees Uma alternativa eacute criar um uacutenico script que faccedila primeiro o becape das configuraccedilotildees e imedia-tamente depois inicie o do banco de dados Poreacutem cadeias de tarefas satildeo uacuteteis em vaacuterias situaccedilotildees mais complexas em que natildeo eacute possiacutevel simplesmente lanccedilar matildeo de um script shell as quais seratildeo discutidas mais adiante

Assim como na primeira tarefa crie um novo elemento no Hot Folder mas selecione Job Chains Digite o nome da cadeia (Chain Name) e caso se deseje tambeacutem um tiacutetulo (Title) Como cada ele-mento de uma cadeia eacute chamado de noacute (Node) eacute preciso adicionar um New Chain Node a seguir clicando no botatildeo respectivo Caso o nome da tarefa seja conhecido pode-se digitaacute-lo manualmente ou usar o botatildeo Browse para procuraacute-la

No campo State eacute possiacutevel definir um estado para essa etapa ou noacute

Figura 4 As dependecircncias entre as tarefas podem ser exibidas com uso do Job Chain Illustration

copy Linux New Media do Brasil Editora Ltda

49

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

Definido estados eacute possiacutevel criar um fluxo mais complexo para as tarefas Por exemplo pode-se criar um esta-do chamado Erro e se alguma tarefa anterior apresentar um erro pula-se imediatamente para a tarefa definida com esse estado pulando todas as outras Aleacutem disso eacute possiacutevel exe-cutar diferentes tarefas de erro para cada uma das vaacuterias etapas

Mais cadeiasEmbora criar uma cadeia de tare-fas que consista em apenas uma uacutenica tarefa possua certas vanta-gens natildeo pare nesse ponto Como mencionado eacute melhor uma tarefa de becape constituiacuteda por duas etapas entatildeo vamos criar uma segunda cadeia com a tarefa de becape do banco de dados e con-figuraacute-la de forma semelhante agrave segunda tarefa Em nosso exem-plo definimos o primeiro noacute com o estado Iniacutecio e o segundo com o estado Fim embora isso natildeo seja necessaacuterio

Ao se clicar no botatildeo Save eacute mostrada a nova cadeia na aba Job Chains da interface de operaccedilatildeo Marcar a caixa Show Jobs exibe as tarefas individuais que compotildeem a cadeia Um duplo clique na ca-deia abre o painel de detalhes no lado direito como ocorreu com a tarefa uacutenica

Nesse ponto a cadeia de tarefas ainda natildeo seraacute executada porque precisa de um pedido que pode ser inserido manualmente no menu Job | Add Order Eacute mostrada uma nova janela que permite a definiccedilatildeo de vaacuterias caracteriacutesticas do pedido como ID horaacuterio de iniacutecio e ateacute estado da cadeia Neste exemplo apenas deixe tudo em branco e o sistema criaraacute sozinho uma ID de pedido

Se natildeo tiver sido definida uma condiccedilatildeo a cadeia inicia imedia-tamente poreacutem pode ser definida uma fatia de tempo (Time Slot) para qualquer uma dessas tarefas e

o Scheduler esperaria a hora certa para iniciar a tarefa

Note que as tarefas precisam ser capazes de aceitar pedidos para reagir a eles Esta etapa eacute feita na janela de configuraccedilatildeo para as ta-refas individuais Na janela Main Options haacute um botatildeo On Order que precisa ser definido como Yes caso contraacuterio o pedido natildeo ini-ciaraacute a tarefa

Ateacute aqui iniciamos tudo manu-almente Como precisamos definir um pedido para iniciar a cadeia de tarefas obviamente eacute necessaacuteria uma forma de criar pedidos dinami-camente Uma maneira seria criar um pedido numa hora especiacutefica o que por sua vez aciona a cadeia de tarefas Como se pode esperar isso eacute feito pelo menu New | Hot Folder Element | Order Apoacutes dar um nome ao pedido e selecionar a janela Job Chains selecione a cadeia especiacutefica a ser associada a esse pedido Note que um pe-dido soacute pode ser associado a uma uacutenica cadeia Depois defina um novo horaacuterio (Time Period) e um Single Start agraves 0900 Para ativar imediatamente as alteraccedilotildees eacute preciso armazenaacute-la no diretoacuterio configlive

Ao retornar agrave interface de opera-ccedilatildeo pode-se ver que agora haacute um pedido associado agrave cadeia criada Abaixo do pedido uma entrada next start (proacuteximo iniacutecio) mostra a data e hora em que o pedido iniciaraacute Como jaacute passou das 900 am neste exemplo a data eacute amanhatilde Se for usado outro horaacuterio de iniacutecio como o dia primeiro o proacuteximo iniacutecio se-ria nessa data

ControlePara definir o periacuteodo das tarefas cadeias e pedidos eacute possiacutevel esta-belecer um horaacuterio para o iniacutecio de uma tarefa assim como um in-tervalo entre execuccedilotildees (a cada 12 horas por exemplo) Essa segunda

opccedilatildeo natildeo eacute uacutetil no caso de cadeias em que as tarefas precisem seguir uma determinada ordem Poreacutem eacute possiacutevel definir um pedido que seja iniciado diariamente agraves 700 que por sua vez inicie uma cadeia

Haacute tambeacutem definiccedilotildees de tempo como ldquosegundo domingo de cada mecircsrdquo ldquouacuteltimo dia do mecircsrdquo ou ldquoso-mente 8janeiro e 16fevereirordquo

Horaacuterios e intervalos preacute-estabe-lecidos satildeo uacuteteis mas nem sempre eacute possiacutevel saber a priori quando uma tarefa precisaraacute ser realizada No caso daquelas que dependem da existecircncia ou inexistecircncia de algum arquivo eacute possiacutevel definir watch directories (diretoacuterios a ser observados) com regras que aceitam ateacute expressotildees regulares (figura 4)

Pedido proacuteprioDepois de superar as dificuldades iniciais nota-se que o Open Source Job Scheduler eacute um bom produto Com intimidade ele se torna faacutecil de configurar e administrar

A SOS tambeacutem presta um oacutetimo serviccedilo Identifiquei um bug e enviei um patch para um arquivo jar que foi disponibilizado por eles no ser-vidor em menos de um dia Ateacute em uma rede pequena o Open Source Job Scheduler oferece recursos muito uacuteteis Em instalaccedilotildees maiores ele eacute quase indispensaacutevel

Mais informaccedilotildees

[1] Open Source Job Scheduler httpjobschedulersourceforgenet

[2] Driver JDBC para MySQL httpwwwmysqlcomproductsconnector

[3] Software- und Organisations-Service GmbH httpwwwsos-berlincomscheduler

copy Linux New Media do Brasil Editora Ltda

50 httpwwwlinuxmagazinecombr

Faccedila belos graacuteficos via navegador com a API do Google Chart

Graacuteficos via webA API do Google Chart permite desenhar graacuteficos planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simplespor Martin Streicher

Se uma imagem vale mais que mil palavras um graacutefico deve ser algo semelhante a uma no-

vela Em apenas um piscar de olhos um graacutefico pode transmitir o estado do mercado de accedilotildees a tendecircncia de traacutefego em um website a distribui-ccedilatildeo dos eleitores por regiatildeo aleacutem de informar como a verba eacute distribuiacuteda em um orccedilamento familiar Aleacutem dis-so um graacutefico eacute simplesmente mais compreensiacutevel do que uma enorme tabela cheia de nuacutemeros

Poreacutem eacute estranho vermos que muito poucos sites utilizam graacuteficos em seu benefiacutecio Isso acontece em grande parte porque a criaccedilatildeo de graacuteficos requer um software espe-cializado Por exemplo se o site eacute baseado em PHP eacute preciso instalar o pChart [1] adicionar a biblioteca

graacutefica GD e escrever o coacutedigo para produzir algum tipo de graacutefico Ide-almente qualquer um ndash um editor escritor ou mesmo um usuaacuterio adi-cionando comentaacuterios ndash deve ser capaz de criar e embutir graacuteficos em suas paacuteginas

Na verdade o dinamismo a sim-plicidade e a conveniecircncia estatildeo no cerne da interface de programaccedilatildeo de aplicaccedilatildeo (API) Google Chart [2] e talvez essa seja a descriccedilatildeo mais pre-cisa para um Software como Serviccedilo (SaaS) Simplesmente crie uma URL parametrizada como httpchartapisgooglecomchartparacircmetro1ampparacircmetro2ampparacircmetroN e deixe o Google Chart fazer todo o trabalho pesado O Google Chart permite que vocecirc renderize seis tipos de graacuteficos um Google-o-meter um QR code (espeacutecie de coacutedigo de barras) e mapas Aleacutem disso eacute possiacutevel usar praticamente um gugol de opccedilotildees de personalizaccedilatildeo tais como a barra de cores a cor de fundo a legenda e muito mais

Este artigo ajuda nos primeiros passos no uso do Google Chart Vocecirc aprenderaacute a desenhar graacuteficos e adi-cionar efeitos especiais para melhorar suas criaccedilotildees graacuteficas

Elementos de graacuteficosPara gerar um graacutefico com o Google Chart forneccedila o prefixo httpchartapisgooglecomchart o tipo de graacute-

fico (tal como torta ou de linhas) o tamanho do graacutefico seus dados e quaisquer paracircmetros especiacuteficos como as cores e os roacutetulos dos eixos para adequaacute-lo ao resultado final

Todas as opccedilotildees do graacutefico satildeo associadas a pares de valores do tipo chave=valor Algumas chaves satildeo comuns para todos os graacuteficos en-quanto outras satildeo exclusivas para um determinado tipo Da mesma forma a sintaxe para o valor especificado no par tende a variar de acordo com o tipo de graacutefico

O tamanho do graacutefico eacute medido em pixels e especificado com o paracircmetro chs=LxA em que L eacute a largura e A eacute a altura Por exemplo chs=200x100 gera um graacutefico de 200 pixels de lar-gura por 100 pixels de altura A aacuterea de um mapa natildeo pode exceder 440 pixels de largura por 220 de altura Para todos os outros graacuteficos nem a largura nem a altura podem exceder 1000 pixels e a aacuterea maacutexima eacute de 300000 pixels quadrados

O tipo de graacutefico eacute escolhido com o par cht=tipo em que tipo eacute uma das diversas constantes preacute-de-finidas Por exemplo para desenhar um graacutefico de linhas simples com pontos equidistantes do eixo x es-pecifique cht=lc Para cada tipo de graacutefico pode-se consultar a constan-te apropriada na documentaccedilatildeo do Google Chart

TU

TO

RIA

L

Figura 1 Um graacutefico de linha simples produzido pela API do Google Chart

copy Linux New Media do Brasil Editora Ltda

51

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Os dados de um graacutefico podem ser fornecidos em vaacuterios formatos ndash a partir de uma lista de dados brutos simples ateacute uma coleccedilatildeo de coacutedigos alfanumeacutericos para mapear valores de uma escala preacute-definida

Normalmente o conjunto de da-dos brutos eacute constituiacutedo por uma lista de valores separados por viacutergulas e um conjunto de dados codificados eacute uma sequumlecircncia contiacutenua de caracte-res alfanumeacutericos Por exemplo para fornecer dados como texto simples utilize chd=tvalores em que valo-res eacute uma lista de valores de ponto flutuante positivos entre 0 e 100 de-limitados por viacutergula O caractere _ (traccedilo baixo) pode ser usado como um espaccedilo reservado para a falta de um dado Muacuteltiplos conjuntos de dados satildeo delimitados pelo caractere | (pipe ou barra vertical)

Para demonstrar abra um nave-gador e digite a URL httpchartapisgooglecomchartcht=lcampchs=500x400ampchd=t7392079|1515181101612ampchco=FF000000FF00 na barra de endereccedilos Como se pode adivinhar o paracircmetro chco lista os valores RGB para colorir cada gru-po de dados

A figura 1 mostra o exemplo de um graacutefi-co de linha incluindo seus elementos (eixos tiacutetulos e legendas) A URL utilizada para gerar o graacutefico eacute mostrada no exemplo 1 Cada URL mostrada nesse artigo abrange vaacuterias linhas de forma intencional para melhor legibilidade

De forma resumida chtt fornece o tiacutetulo do graacutefico Os dados satildeo fornecidos como valores brutos expres-sos em texto simples mas como os valores satildeo superiores a 100 chds fornece um valor

miacutenimo e um maacuteximo para norma-lizar os dados para um percentual Aqui como os dois conjuntos de dados estatildeo dentro do mes-mo intervalo bastam um valor miacutenimo e um maacuteximo para ambos No entanto se cada um dos conjuntos de dados for traccedilado a partir de uma uacutenica seacuterie eacute preciso fornecer um valor miacutenimo e maacuteximo para cada conjunto O paracircmetro chxt eacute combi-nado com o chxl e com o chxp para criar e posicionar os roacutetulos dos eixos

Acredite ou natildeo desenhar um graacutefico eacute realmente sim-ples Para inserir um graacutefico em um paacutegina web use uma tag img src e defina seu atri-buto src para a URL do graacute-fico Forneccedila uma descriccedilatildeo para o graacutefico por meio do atributo alt

CartografiaDesenhar um mapa com o serviccedilo Google Chart eacute tatildeo simples quanto desenhar qualquer outro graacutefico pri-

meiramente especifique o mape-amento do graacutefico selecione uma regiatildeo do mundo para desenhar e em seguida associe os dados a cada paiacutes proviacutencia ou estado encontrados no mapa Os dados podem ser discretos ndash digamos representar os estados azuis e ver-melhos nos Estados Unidos ndash ou contiacutenuos Aleacutem disso vocecirc pode associar uma cor com o miacutenimo e o maacuteximo em um intervalo e o Google Chart renderiza os valores intermediaacuterios em uma graduaccedilatildeo de cores (degradecirc)

Por exemplo o exemplo 2 gera um mapa dos Estados Unidos mostrando como os estados votaram na eleiccedilatildeo presidencial de 2004 A figura 2 apre-senta os resultados

No exemplo 2 cht=t seleciona o graacutefico de mapa chtm=usa especifica os Estados Unidos como regiatildeo e chs=440x220 desenha o maior mapa

Figura 2 Divisatildeo dos estados em vermelho (republicanos) e azuis (democratas) na eleiccedilatildeo presidencial dos Estados Unidos em 2004

Exemplo 1 Roubo de automoacuteveis na Carolina do Norte

01 httpchartapisgooglecomchart02 cht=lcamp03 chtt=Nuacutemero de automoacuteveis roubadosna NC por mecircs e anoamp04 chs=400x300amp05 chd=t223116582156231823432450258326122522268123262371|06 238119392309224225902642284028372555255824372319amp07 chds=03000amp08 chco=FF00000000FFamp09 chdl=2005|2006amp10 chxt=xyamp11 chxl=0|Jan|June|Dec|1|0|1500|30 00|amp12 chxp=0050100|1050100

Exemplo 2 Estados vermelhos e azuis

01 httpchartapisgooglecomchart02 cht=tamp03 chtm=usaamp04 chs=440x220amp05 chco=FF00000000FF0000FFamp06 chld=CACTDEDCHIILMEMDMAMIMNNHNJNYORPARIVTWAWIamp07 chd=sAAAAAAAAAAAAAAAAAAAA

copy Linux New Media do Brasil Editora Ltda

52 httpwwwlinuxmagazinecombr

TUTORIAL | Google Chart

possiacutevel No graacutefico de mapa chco=FF00000000FF0000FF define as cores padratildeo de cada estado (vermelho)

e a cor de iniacutecio e de final (ambas em azul) do gradiente

O paracircmetro chld conteacutem o coacute-digo de duas letras de cada um dos estados conquistados pelo candidato presidencial democrata Finalmente o paracircmetro chd=s seleciona o es-quema de codificaccedilatildeo simplificada de dados em que todos os valores devem ser representados por um dos caracteres na sequumlecircncia de A-Z a-z e 0-9 sendo A o miacutenimo e 9 o maacuteximo Em outras palavras o es-quema de codificaccedilatildeo simplificada fornece uma granularidade de 62 valores distintos Tendo em conta que todos os estados satildeo coloridos

em vermelho por padratildeo qualquer estado com outro valor ndash aqui A ndash eacute colorido de azul

Quadro 1 Dicas e truques do Google Chart

Essas dicas e truques tornaratildeo seus graacuteficos mais legiacuteveis

Certifique-se de que o tamanho de seu graacutefico eacute su-ficiente para exibir o tiacutetulo os roacutetulos e a legenda da imagem Infelizmente a determinaccedilatildeo da largura miacuteni-ma natildeo tem uma forma algoriacutetmica ndash pode ser preciso utilizar um pouco de tentativa e erro

Para alterar a cor e o tamanho do texto no tiacutetulo do graacute-fico use chts=colorfontsize Aleacutem disso eacute possiacutevel alterar a cor e o tamanho da fonte de um eixo com o roacutetulo chxs Infelizmente natildeo eacute possiacutevel especificar o tipo de fonte

Os quatro eixos satildeo x t y e r ou seja a forma resumi-da para delimitar o eixo inferior x o eixo superior x o eixo agrave esquerda y e o eixo agrave direita y respectivamente Se vocecirc quiser vaacuterios roacutetulos para qualquer eixo repita o nome do eixo no paracircmetro chxt e especifique seus detalhes no chxl

Leia a documentaccedilatildeo da API do Google Chart e dedi-que atenccedilatildeo especial agrave sintaxe de cada opccedilatildeo Mes-mo um erro de um caractere pode tornar um graacutefico ilegiacutevel Por exemplo o paracircmetro chd utiliza a barra vertical para separar cada conjunto de dados dife-rentemente de chds Infelizmente essa natildeo eacute a uacutenica inconsistecircncia na API do Google Chart (o clipping do graacutefico de barras eacute outro) portanto mantenha o manu-al por perto

Antigamente um graacutefico de barras com valores negati-vos e positivos requeria truques para renderizar corre-tamente Agora eacute possiacutevel usar o paracircmetro chp e uma porcentagem para colocar a linha zero a partir de uma distacircncia proporcional da origem sobre o eixo y Os va-lores devem entatildeo ser interpolados para serem rende-rizados adequadamente Por exemplo suponha que o fluxo de caixa da empresa seja (em milhotildees) de -20 -5 1 3 10 Para colocar a linha zero em 05 ou na

metade do caminho para cima do eixo y valores meno-res que 50 seratildeo desenhados ldquoabaixo da linhardquo e todos os valores acima de 100 seratildeo desenhados ldquoacima da linhardquo Para normalizar os dados adicione 50 a todos os valores e plote os novos valores

httpchartapisgooglecomchartcht=bvgampchs=400x400ampchbh=405ampchd=t3045515360ampchp=5ampchm=r00000004955

A figura 5 mostra o graacutefico final

O paracircmetro bvg eacute a constante para o graacutefico do tipo barra vertical e o chd expressa o conjunto de dados normalizado O paracircmetro chp coloca a linha zero a meio caminho acima do eixo y enquanto que o chm eacute uma opccedilatildeo para desenhar uma faixa de marca-ccedilatildeo no graacutefico Os seus paracircmetros satildeo (na ordem) r para um marcador horizontal 000000 para desenhar o marcador em preto 0 que eacute ignorado e 495 e 5 para expressar as margens inferior e superior da faixa de marcaccedilatildeo em termos de proporccedilatildeo sobre o eixo-y Isso porque a linha zero estaacute colocada a 05495 e 5 desenha uma linha bem fina em zero

O paracircmetro chbh especifica a largura de uma barra e o espaccedilo entre cada uma barra Diferentemente de outros tipos de graacuteficos se chbh for grande demais e chs for muito pequeno parte do graacutefico seraacute cor-tada Certifique-se de ajustar o tamanho de um ou todos esses paracircmetros quando estiver desenhando um graacutefico de barras

Exemplo 3 Informaccedilotildees num coacutedigo QR

01 httpchartapisgooglecomchart02 cht=qramp03 chs=200x200amp04 choe=UTF-8amp05 chld=Qamp06 chl=httpwwwlinuxnewmediacombrlmFigura 3 O endereccedilo do site da

revista capturado num coacutedigo QR

copy Linux New Media do Brasil Editora Ltda

53

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] pChart httppchartsourceforgenet

[2] Documentaccedilatildeo do Google Chart httpcodegooglecomapischart

[3] BeeTagg httpwwwbeetaggcom

[4] Zebra biblioteca livre do Google para leitura de coacutedigos de barra httpcodegooglecompzxing

[5] Guia para codificaccedilatildeo de dados em coacutedigos QR httpcodegooglecompzxingwikiBarcodeContents

[6] Gerador simples para o Google Chart httpalmaercomchartmaker

O Google Chart tambeacutem oferece graacuteficos para Aacutefrica Aacutesia Europa Oriente Meacutedio Ameacuterica do Sul e todo o globo

Coacutedigo de barrasNo Japatildeo moderno jovens compar-tilham informaccedilotildees de uma forma digital verdadeiramente inovado-ra eles trocam coacutedigos de barras E agora vocecirc tambeacutem pode O Google Chart fornece uma API para codificar ateacute 4296 caracteres em uma imagem bidimensional e monocromaacutetica chamado QR code ou coacutedigo QR

Para comeccedilar vamos codificar o email da Linux Magazine em um QR code O exemplo 3 mos-tra como a imagem na figura 3 foi criada Ao usar o graacutefico QR choe especifica a codificaccedilatildeo do texto O paracircmetro chld dita o grau de correccedilotildees de erros aplicado agrave ima-gem O valor Q inclui informaccedilotildees duplicadas o suficiente a ponto de 25 da imagem poder ser destruiacuteda sem afetar a legibilidade O paracirc-metro chl eacute o texto a ser codificado geralmente fornecido como uma URL que eacute entatildeo interpretada por um aplicativo

Se vocecirc tem um telefone celu-lar pode baixar gratuitamente o BeeTagg [3] tirar uma fotografia da figura 3 e decodificar os resul-tados para entrar no site da revista

Como uma alternativa o Google oferece gratuitamente uma biblio-teca gratuita para leitura de coacutedigos QR chamada Zebra Crossing [4][5] e um leitor de coacutedigos de barras online experimental que interpreta as imagens recebidas

Um coacutedigo QR pode capturar ateacute 4296 caracteres A figura 4 por exemplo codifica um vCard (cartatildeo de visitas) inteiro

Como vai o coraccedilatildeoA API do Google Chart eacute simples de usar e faacutecil de integrar em apli-caccedilotildees web Conforme mostrado eacute possiacutevel usar a API imediatamente ndash basta inse-rir um link estaacutetico em sua paacutegina web e permitir que o navegador efetue a requisiccedilatildeo e a renderiza-ccedilatildeo de um graacutefico a cada vez que a paacutegina eacute desenhada

Para acelerar a renderizaccedilatildeo da paacutegina vocecirc pode solicitar e efetuar o cache da imagem do graacutefico em seu proacuteprio servidor recriando o graacutefico apenas quando os dados contidos nele forem alterados Aleacutem de proporcionar melhor eficiecircn-cia essa teacutecnica protege melhor os dados brutos Um visitante do site natildeo poderaacute ldquover os fontesrdquo e copiar a URL

Naturalmente tambeacutem eacute pos-siacutevel misturar a API do Google Chart com teacutecnicas AJAX para mo-dificar os graacuteficos dinamicamente em resposta agrave requisiccedilatildeo do usuaacute-rio O Chart Maker [6] eacute uma de-monstraccedilatildeo baacutesica mas efetiva da dinacircmica de graacuteficos outros tecircm usado a API do Google Chart para implementar uma calculadora de empreacutestimos executiva

Naturalmente o Google Chart costuma ser mais lento que as ferra-mentas para geraccedilatildeo de graacuteficos no desktop como o Apple Numbers ou mesmo o Microsoft Excel Estas uti-lizam mecanismos de renderizaccedilatildeo nativos e natildeo requerem consultas

agrave Internet para transmitir dados e baixar um grande graacutefico na forma de uma imagem No entanto o Google Chart eacute um aplicativo gra-tuito que estaacute disponiacutevel em qual-quer lugar Se vocecirc estaacute realmente interessado em utilizar o Google Chart em ambiente de produccedilatildeo o uso de cache pode melhorar o tempo de resposta

Figura 4 Um vCard inteiro represen-tado como coacutedigo QR

Figura 5 Renderizaccedilatildeo de valores positivos e negativos num graacutefico de barras

copy Linux New Media do Brasil Editora Ltda

54 httpwwwlinuxmagazinecombr

Alta disponibilidade em PostgreSQL

Banco cheio mas disponiacutevel

O PostgreSQL natildeo possui embutido um mecanismo para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia por Fernando Ike

O tema alta disponibilida-de abordado na ediccedilatildeo 43 da Linux Magazine [1] eacute

abrangente e envolve vaacuterias aacutereas desenvolvedores administradores de sistemas rede e banco de dados

Geralmente alta disponibilidade em bancos de dados eacute um objetivo mais complexo e criacutetico do que se costuma acreditar Natildeo eacute simples-mente pensar que uma soluccedilatildeo como Oracle RAC garantiraacute disponibili-dade de 100 do banco de dados Para aumentar a disponibilidade eacute necessaacuterio analisar uma seacuterie de variaacuteveis entre elas Se o datacenter tem grupo ge-

rador de energia eleacutetrica Se haacute conexatildeo agrave Internet por

mais de dois links Servidores com fontes redun-

dantes discos etc Circuitos eleacutetricos e rede redun-

dantes Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias de banco de dados Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias dela mesma Se a modelagem permite ins-

tacircncias de banco de dados fi si-camente distantes

Quanto se pode investir Tais variaacuteveis dependem do pro-

jeto em questatildeo ou seja variam de

TU

TO

RIA

L

projeto para projeto Em geral a grande difi culdade para banco de dados eacute o sincronismo das bases de dados entre vaacuterios servidores jaacute que haacute a necessidade de garantir a con-sistecircncia entre eles Aplicaccedilotildees que usam banco de dados para operaccedilotildees somente leitura (como aplicaccedilotildees web por exemplo) tecircm facilidade de trabalhar com vaacuterios servidores de banco de dados usando balan-ceamento de carga Entretanto o mesmo natildeo acontece quando uma aplicaccedilatildeo tem operaccedilotildees de leitu-ra e escrita pois natildeo existe uma soluccedilatildeo defi nitiva uma vez que depende de como a aplicaccedilatildeo foi projetada Uma alternativa seria modelar a aplicaccedilatildeo para acessar um servidor de banco de dados para operaccedilotildees de leituraescrita e os outros servidores para operaccedilotildees de leitura

Para PostgreSQL essa tarefa eacute um pouco mais difiacutecil ndash mas natildeo impossiacutevel ndash pois ofi cialmente exis-tem poucas formas de aumentar sua disponibilidade sem que se use ex-tensotildees ou aplicaccedilotildees de terceiros Existe uma discussatildeo [2] dentro do PostgreSQL Global Development Group para incorporar recursos de replicaccedilatildeo MasterSlave na versatildeo 84 (atualmente em desenvolvimento) e posteriores

PostgreSQL hoje Vejamos o que eacute possiacutevel fazer com o PostgreSQL sem ferramentas de terceiros

Warm Standby usando PITR ( Point-In-Time Recovery ) um servidor pri-maacuterio envia para um ou mais servido-res secundaacuterios os arquivos do WAL ( Write Ahead Log ) que contecircm as modifi caccedilotildees nas bases de dados do servidor primaacuterio Tais arquivos quan-do enviados seratildeo processados pelos servidores secundaacuterios Esse meacutetodo para o PostgreSQL natildeo permite por enquanto que os servidores secundaacute-rios sejam usados para leitura Esses servidores natildeo estaratildeo disponiacuteveis para nenhuma operaccedilatildeo ateacute que haja uma falha no servidor primaacuterio

Em caso de falha no servidor pri-maacuterio falhando a transmissatildeo dos uacuteltimos arquivos do WAL para os servidores secundaacuterios estes perde-ratildeo as uacuteltimas alteraccedilotildees realizadas no servidor primaacuterio Essa perda eacute pequena se comparada agraves estrateacutegias de recuperaccedilatildeo mais comuns para estes tipos de incidentes as quais satildeo becape completo da uacuteltima noite ou recuperaccedilatildeo utilizando os arquivos do WAL A comparaccedilatildeo eacute de alguns segundos usando Warm Standby e de alguns minutos ou horas com recuperaccedilatildeo de becape ou por arquivos do WAL

copy Linux New Media do Brasil Editora Ltda

55

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Compartilhamento de disco usando a mesma aacuterea num equipa-mento remoto (como storage) os servidores poderatildeo ter a aacuterea mon-tada nele mas somente o servidor primaacuterio ou ativo poderaacute ter o serviccedilo do PostgreSQL em execuccedilatildeo O ser-vidor secundaacuterio soacute deve entrar em accedilatildeo em caso de falha do primaacuterio caso contraacuterio haacute o risco de corrom-pimento das bases de dados

Neste meacutetodo numa eventual fa-lha do servidor ativo eacute praticamen-te nula a perda de dados jaacute que as bases de dados estatildeo em um stora-ge Geralmente usa-se NFS como forma de acesso ao storage Uma recomendaccedilatildeo importante ao usar NFS eacute montaacute-lo usando a opccedilatildeo sync (siacutencrono) desabilitar o cache e jamais usar a opccedilatildeo async (assiacuten-crono) jaacute que ela poderaacute corromper as bases de dados do PostgreSQL O recomendaacutevel para esse meacutetodo eacute o uso de SAN (iSCSI AoE etc) em vez de NAS (SMB NFS etc) uma vez que a arquitetura SAN eacute projetada para situaccedilotildees de grande volumes de dados e menor tempo de recuperaccedilatildeo em caso de incidente comparado com NAS

Replicaccedilatildeo por dispositivo de blo-co uma variaccedilatildeo do compartilhamento de disco Quando usado esse recurso o dispositivo de bloco eacute a unidade de replicaccedilatildeo Assim como nos outros meacute-todos natildeo pode haver dois servidores PostgreSQL em execuccedilatildeo ao mesmo tempo O DRBD eacute um software muito popular para essa fi nalidade

Terceiros Existe a possibilidade de se usar ex-tensotildees ou aplicaccedilotildees de terceiros para aumentar a disponibilidade do PostgreSQL em tarefas como repli-caccedilatildeo mestre-escravo middleware de replicaccedilatildeo orientado a sentenccedila e replicaccedilatildeo multimaster assiacutencrona ou siacutencrona

Replicaccedilatildeo mestre-escravo esse meacutetodo envia todas as consultas de

modifi caccedilotildees das bases de dados para o servidor mestre Este envia as mo-difi caccedilotildees que nele ocorreram para o servidor escravo Essas modifi caccedilotildees ocorrem por lote e de forma assiacutencro-na permitindo que se tenha muacuteltiplos servidores escravos O servidor escravo pode responder somente consultas de leitura as quais satildeo ideais para consultas do tipo data warehouse O Slony-1 eacute um exemplo desse tipo de replicaccedilatildeo com granularidade de ta-bela e suporte a muacuteltiplos servidores escravos Em caso de falha no servidor mestre poderaacute haver perda de dados que ainda natildeo foram replicados para o servidor secundaacuterio

Middleware de replicaccedilatildeo orien-tado a sentenccedila programa que intercepta cada consulta SQL e a envia para um ou todos os servido-res Cada servidor opera indepen-dentemente Consultas de leitura e escrita satildeo enviadas para todos os servidores enquanto as consultas somente-leitura podem ser enviadas para qualquer um dos servidores permitindo que o trabalho de leitura seja distribuiacutedo

Se as consultas forem simplesmen-te transmitidas sem modifi caccedilotildees alguns valores especiacutefi cos de cada servidor (como a funccedilatildeo random() e os valores de TIMESTAMP ) teratildeo va-lores diferentes nos servidores Isso ocorre porque cada servidor opera de forma independente e porque as consultas SQL satildeo realizadas em broadcast (e natildeo atuando na modifi caccedilatildeo das colunas) Se isso for inaceitaacutevel o middleware ou aplicaccedilatildeo deve consultar tais valo-res a partir de um servidor e depois usaacute-los para escrever as consultas Exemplos desse tipo de replicaccedilatildeo satildeo o pgpool-II e Sequoia

Replicaccedilatildeo Multimaster Assiacutencro-na para os servidores que natildeo estatildeo regularmente ligados como laptops e servidores remotos manter os da-dos consistentes entre os servidores eacute um desafi o Usando replicaccedilatildeo assiacutencrona multimaster cada servi-dor trabalha com independecircncia e periodicamente se comunica com os outros servidores a fi m de identifi car transaccedilotildees confl itantes Os confl itos podem ser resolvidos pelos usuaacuterios

Figura 1 Soluccedilatildeo de alta disponibilidade do banco de dados proposta

copy Linux New Media do Brasil Editora Ltda

56 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

ou por meio de regras Bucardo eacute um exemplo desse tipo de replicaccedilatildeo

Replicaccedilatildeo multimaster siacutencro-na em replicaccedilatildeo multimaster siacuten-crona cada servidor pode aceitar conexotildees com transaccedilotildees de escrita (como INSERT UPDATE e DELETE) Tais transaccedilotildees satildeo transmitidas a partir do servidor de origem para todos os outros servidores antes de efetivar a transaccedilatildeo Em situaccedilotildees com mui-tas transaccedilotildees isso poderaacute causar bloqueio dos registros degradando consideravelmente a performance Neste tipo de replicaccedilatildeo as transa-ccedilotildees com escrita geralmente satildeo mais lentas do que as feitas em um servi-dor uacutenico Aleacutem de dividir a carga de transaccedilotildees para leitura e escrita como na replicaccedilatildeo mestre-escravo a replicaccedilatildeo multimaster siacutencrona eacute muito usada para balanceamento de carga em alguns casos podendo ha-ver problemas de consistecircncia ao se usar funccedilotildees como random()

Soluccedilatildeo simplesUma soluccedilatildeo muito comum e ba-rata para alta disponibilidade em PostgreSQL eacute o uso de um dispositivo de storage comunicando-se com os

servidores PostgreSQL via NFS (fi-gura 1) A soluccedilatildeo consiste em dois servidores PostgreSQL e Heartbeat Um deles seraacute o primaacuterio e o outro o secundaacuterio O secundaacuterio aguarda-raacute algum problema com o servidor primaacuterio e caso ocorra iniciaraacute o serviccedilo do PostgreSQL assumindo o endereccedilo de rede (VIP) usado para comunicaccedilatildeo com a aplicaccedilatildeo

Essa soluccedilatildeo natildeo foi planejada para que o servidor primaacuterio assuma o controle novamente do ambiente caso retorne a operar pois eacute reco-mendaacutevel verificar a razatildeo do inci-dente corrigir e retornar a operaccedilatildeo ao ambiente num periacuteodo de pouco uso do banco de dados

Haacute alguns pontos importantes nessa soluccedilatildeo Sempre que ocorrer uma atualizaccedilatildeo de seguranccedila no PostgreSQL eacute recomendaacutevel apli-caacute-la a todos os servidores pois natildeo se deve executar uma versatildeo dife-rente do binaacuterio em cada maacutequina Aleacutem disso nesse tipo de soluccedilatildeo de alta disponibilidade natildeo eacute pos-siacutevel haver dois servidores com o serviccedilo PostgreSQL em execuccedilatildeo A disponibilidade eacute garantida pelo armazenamento dos dados no stora-

ge sem necessidade de mecanismos de replicaccedilatildeo de dados externos Por uacuteltimo poliacuteticas de backup devem continuar sendo usadas sem altera-ccedilotildees Caso aconteccedila algum incidente que indisponibilize os dados haveraacute formas de recuperaacute-los

ImplementaccedilatildeoO procedimento de instalaccedilatildeo seraacute dividido por servidores a primeira parte consiste na instalaccedilatildeo do servi-dor primaacuterio e a segunda parte trata do servidor secundaacuterio considerando que um ponto de montagem foi dis-ponibilizado previamente em ambos os servidores em varlibpostgre-sqlstorage

Depois de instalar o pacote do PostgreSQL 83 (versatildeo estaacutevel mais recente) do Debian 50 (Lenny) o di-retoacuterio padratildeo da instalaccedilatildeo do cluster de base de dados[3] eacute o local em que estaacute uma instacircncia do PostgreSQL com seu cataacutelogo de sistema Esse diretoacuterio seraacute movido para o storage usando uma particcedilatildeo NFS montada no servidor o que exige uma parada no serviccedilo do PostgreSQL

Parado o serviccedilo do PostgreSQL mova o diretoacuterio com o cluster de base de dados armazenado local-mente para o diretoacuterio NFS remo-to Depois disso eacute necessaacuterio ainda criar um link simboacutelico para que o serviccedilo inicie corretamente

mv varlibpostgresql83 varlibpostgresqlstorage ln -s varlibpostgresqlstorage83 varlibpostgresql83

Feito isso reinicie o PostgreSQL e crie um arquivo com ajustes de per-formance do PostgreSQL chamado tuningsh em usrlocalsbin (exemplo 1) Esse arquivo conteraacute ajustes de paracirc-metros do kernel Linux para o Postgre-SQL aproveitar melhor os recursos de hardware Seria possiacutevel usar o arquivo etcsysctlconf mas ele natildeo oferece

Exemplo 1 Arquivo tuningsh

01 binbash0203 echo ldquo2rdquo gt procsysvmovercommit_memory0405 kernelshmmax = 447177599906 25 do total da RAM07 echo ldquo17179869184rdquo gt procsyskernelshmmax08 kernelshmmax = 429496729609 echo ldquo17179869184rdquo gt procsyskernelshmall10 echo ldquo300 32500 150 160rdquo gt procsyskernelsem11 echo ldquo65536rdquo gt procsysfsfile-max12 echo ldquodeadlinerdquo gt sysblocksdaqueuescheduler13 echo ldquo16777216rdquo gt procsysnetcorermem_default14 echo ldquo16777216rdquo gt procsysnetcorewmem_default15 echo ldquo16777216rdquo gt procsysnetcorermem_max16 echo ldquo16777216rdquo gt procsysnetcorewmem_max

copy Linux New Media do Brasil Editora Ltda

57

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

a possibilidade de alterar tambeacutem o sistema de arquivos sysfs

Entre os paracircmetros a serem mo-dificados shmmax geralmente deveraacute ser de 25 a 50 do total da memoacute-ria RAM dependendo do tipo de aplicaccedilatildeo e modelagem de dados Nesse caso usamos usamos 50 (16 GB) (linha 7)

Torne o script executaacutevel e crie um link simboacutelico para que ele seja carregado na inicializaccedilatildeo

chmod 0755 usrlocalsbintuningsh ln -s usrlocasbintuningsh etcrcSdS99tuningsh

Em seguida execute-o para efetivar as alteraccedilotildees dos paracircmetros do sis-tema operacional

Ajuste do PostgreSQLCom o sistema operacional pronto eacute hora de ajustar o banco de dados Para isso comece editando o arqui-vo postgresqlconf de acordo com as determinaccedilotildees listen_adresses um asterisco

permite que o PostgreSQL escu-te conexotildees vindas de qualquer rede Ainda eacute necessaacuterio alterar o arquivo pg_hbaconf para que essa alteraccedilatildeo tenha efeito

max_connections nuacutemero total de conexatildeo simultacircneas aceitas pelo PostgreSQL

shared_buffers 20 a 25 do total da memoacuteria RAM

wal_write_delay 500 milisse-gundos

commit_delay 100 checkpoint_segments 128 checkpoint_timeout 30 min checkpoint_completion_

target 07

Exemplo 2 Arquivo postgresqlconf

data_directory = lsquovarlibpostgresql83mainrsquo usar dados em outro diretoacuteriohba_file = lsquoetcpostgresql83mainpg_hbaconfrsquo arquivo de autenticaccedilatildeo por maacutequina (host-based authentication)ident_file = lsquoetcpostgresql83mainpg_identconfrsquo arquivo de configuraccedilatildeo de identexternal_pid_file = lsquovarrunpostgresql83-mainpidrsquo gravar um arquivo extra com o PIDlisten_addresses = lsquorsquo IP(s) para escutarport = 5432 porta (necessaacuterio reiniciar)max_connections = 1000 (necessaacuterio reiniciar)unix_socket_directory = lsquovarrunpostgresqlrsquo (necessaacuterio reiniciar)ssl = false (necessaacuterio reiniciar)shared_buffers = 12GB miacutenimo=128 kB maacuteximo=max_connections16kBmax_fsm_pages = 204800 miacutenimo=max_fsm_relations16 6 bytes cadafsync = on (des)ativa sincronizaccedilatildeo forccediladawal_sync_method = open_sync o padratildeo eacute a primeira opccedilatildeofull_page_writes = on recuperar-se de gravaccedilotildees de paacutegina parciaiswal_writer_delay = 500ms 1-10000 milissegundoscommit_delay = 100 0-100000 em microssegundoscheckpoint_segments = 128 em segmentos de logfile miacutenimo=1 16MB cadacheckpoint_timeout = 30min 30s-1hcheckpoint_completion_target = 07 duraccedilatildeo do alvo do checkpoint 00 - 10effective_cache_size = 48GBdatestyle = lsquoiso dmyrsquolc_messages = lsquopt_BRUTF-8rsquo locale para mensagens de erro do sistemalc_monetary = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo monetaacuterialc_numeric = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo numeacutericalc_time = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo de tempodefault_text_search_config = lsquopg_catalogportuguesersquo

Exemplo 3 Arquivo pg_hbaconf

local all postgres md5local all all md5host all all 12700132 md5host all all 1128 md5host intportal portal 192168103032 md5

copy Linux New Media do Brasil Editora Ltda

58 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

effective_cache_size 75 da memoacuteria RAM

Poreacutem tenha em mente que conforme a base de dados cresce esses e outros paracircmetros do ar-quivo de configuraccedilatildeo precisaratildeo ser alterados

O exemplo 2 mostra o conteuacutedo do arquivo postgresqlconf apoacutes sua ediccedilatildeo

No arquivo pg_hbaconf altere as poliacuteticas de acesso conforme a poliacutetica da instituiccedilatildeo ativando ou desativando a criptografia definindo quais redes podem acessar o banco etc No exemplo 3 o arquivo permite que o usuaacuterio portal acesse a base de dados intportal com o endereccedilo de rede 192168103032 usando cripto-grafia MD5

Para efetivar as al-teraccedilotildees reinicie o PostgreSQL

HeartbeatO hearbeat eacute tido por muitos como si-nocircnimo de alta dis-ponibilidade mas eacute apenas um meio para esse fim e a soluccedilatildeo para alta disponibi-lidade de bancos de dados PostgreSQL proposta neste artigo o utiliza

Apoacutes instalar o pa-cote do heartbeat na distribuiccedilatildeo usada no servidor adicione ao arquivo etchosts os nomes e IPs dos ser-vidores primaacuterio e se-cundaacuterio No exem-plo deste artigo esses valores satildeo

1921681010 pgprimario1921681011 pgsecundario

O arquivo de con-figuraccedilatildeo do heart-beat pode se localizar em etchad ou em etcheartbeat O exemplo 4 mostra o conteuacutedo do arquivo hacf que deve resi-dir no diretoacuterio usa-do pela distribuiccedilatildeo

em questatildeo cujas opccedilotildees tecircm os seguintes efeitos logfacility executar o heart-

beat como serviccedilo logfile local onde seraacute gravado

o registro de atividades do heart-beat

keepalive intervalo de tempo de comunicaccedilatildeo entre os noacutes

deadtime intervalo de tempo para que heartbeat reconheccedila um noacute como morto

bcast forma de comunicaccedilatildeo en-tre os servidores hearbeat neste caso com uma placa exclusiva para comunicaccedilatildeo (eth1)

ping checa se o IP virtual estaacute no ar

auto_failback caso o servi-dor primaacuterio saia do ar quan-do voltar ele natildeo tentaraacute assu-mir como servidor principal no cluster

respawn hacluster usrlibheart-beatipfail serviccedilo do heartbeat para trocar o IP Virtual em caso de falha no noacute principal

Ainda no diretoacuterio de configu-raccedilatildeo do heartbeat crie o arquivo haresources Eacute nesse arquivo que o heartbeat procuraraacute os serviccedilos que precisam ser executados no cluster Tais serviccedilos satildeo scripts que podem ou natildeo ter paracircmetros e estatildeo loca-lizados em etchadresourced Acrescente ao arquivo haresources o seguinte conteuacutedo

pgprimario IPaddr192168105pgprimario PostgreSQL

O paracircmetro IPaddr adiciona o en-dereccedilo de rede virtual (VIP) ao clus-ter e PostgreSQL controla o Postgre-SQL no heartbeat Esse script natildeo eacute distribuiacutedo oficialmente e pode ser personalizado conforme a necessida-de do ambiente

Crie tambeacutem o arquivo authkeys para abrigar a senha (criptografada com SHA1) necessaacuteria agrave comunica-

Exemplo 5 Script PostgreSQL do heartbeat

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 case $1 in07 start)08 etcinitdpostgresql-83 start09 sleep 210 check_pgsqlsh amp11 exit 012 13 14 stop)15 etcinitdpostgresql-83 stop16 kill $(ps a|grep check_pgsql|awk lsquo print $1 rsquo|head -n 1)17 exit 018 19 )20 21 esac

Exemplo 4 Arquivo hacf

logfacility daemonlogfile varloghalognode pgprimario pgsecundariokeepalive 2deadtime 10bcast eth1ping 192168105auto_failback offrespawn hacluster usrlibheartbeatipfail

copy Linux New Media do Brasil Editora Ltda

59

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

ccedilatildeo entre os noacutes do heartbeat Para criar a senha use algo como

echo ldquosuasenhardquo | sha1sum2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53 -

Adicione esse hash ao arquivo authkeys da seguinte forma

auth 11 sha1 2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53

Em seguida altere as permis-sotildees do arquivo para 600 para que somente o usuaacuterio root possa ler e escrever nele

No diretoacuterio etchadresourced ficam os scripts de interaccedilatildeo dos ser-viccedilos do heartbeat Crie nele o script PostgreSQL referenciado no arquivo haresources que criamos antes com o conteuacutedo mostrado no exemplo 5 Esse arquivo tambeacutem precisaraacute ter suas permissotildees alteradas mas dessa vez para permitir que ele seja executado Portanto recomenda-se usar 755 como permissotildees

Crie tambeacutem um script (usrlo-calsbincheck_pgsqlsh) para verificar se o PostgreSQL continua no ar de acordo com o exemplo 6 Esses satildeo os significados das variaacuteveis HOST endereccedilo de rede do ser-

vidor USER usuaacuterio do PostgreSQL DB banco de dados a ser usado TEST tipo de consulta que serviraacute

como teste REPEAT nuacutemero de repeticcedilotildees do

teste ateacute considerar o servidor como inativo

OTHER endereccedilo de rede do ser-vidor secundaacuterio

Apoacutes tornar esse script executaacutevel eacute necessaacuterio novamente reiniciar o PostgreSQL e o proacuteprio heartbeat Com isso fica concluiacuteda a confi-guraccedilatildeo do servidor PostgreSQL primaacuterio

Servidor secundaacuterioPara o servidor secundaacuterio seratildeo repe-tidos os mesmos passos da instalaccedilatildeo e configuraccedilatildeo do servidor primaacuterio

poreacutem com certas diferenccedilasDepois de instalar o pacote do

PostgreSQL 83 pare o serviccedilo deste e apague o diretoacuterio varlibpostgre-

Exemplo 6 Script check_pgsqlsh no servidor primaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101008 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101114 15 check()16 17 while true18 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull19 if [ $ -eq 0 ]20 then21 break22 do23 sleep 224 25 if [ $COUNTER -eq $REPEAT ]26 then27 etcinitdpostgresql-83 stop28 etcinitdheartbeat stop29 else30 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull31 if [ $ -eq 0 ]32 then33 COUNTER=rdquo1rdquo34 else35 let COUNTER=$COUNTER+136 fi37 fi38 39 done40 fi41 42 43 check

copy Linux New Media do Brasil Editora Ltda

60 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

Exemplo 7 Script check_pgsqlsh no servidor secundaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101108 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101014 15 16 check()17 18 while true19 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull20 if [ $ -eq 0 ]21 then22 break23 do24 sleep 225 26 if [ $COUNTER -eq $REPEAT ]27 then28 etcinitdpostgresql-83 stop29 etcinitdheartbeat stop30 else31 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull32 if [ $ -eq 0 ]33 then34 COUNTER=rdquo1rdquo35 else36 let COUNTER=$COUNTER+137 fi38 fi39 40 done41 fi42 43 44 check

sql83 pois ele usaraacute quando ativo o mesmo cluster de base de dados do servidor primaacuterio que estaacute arma-

zenado no storage Esse passo eacute o primeiro em que os procedimentos dos dois servidores diferem

Com o diretoacuterio apagado eacute ne-cessaacuterio criar um link simboacutelico para que o serviccedilo inicie correta-

mente quando for solicitado pelo heartbeat

ln -s varlibpostgresqlstorage83 varlibpostgresql83

Assim como no servidor primaacuterio crie um arquivo tuningsh com ajustes de per-formance para o PostgreSQL em usrlocalsbin Como os servidores tecircm hardwares semelhantes usaremos os mesmos ajustes de perfor-mance (exemplo 1) Apoacutes salvar o script crie um link simboacutelico para que ele seja carregado ao iniciar os servi-ccedilos do servidor

ln -s usrlocalsbintuningsh etcrcSdS99tuningsh

Execute o script receacutem-criado para efetivar as mo-dificaccedilotildees dos paracircmetros do sistema operacional

Diferentemente do servi-dor primaacuterio natildeo seratildeo neces-saacuterias alteraccedilotildees aos arquivos postgresqlconf e pg_hbaconf pois os arquivos usados seratildeo os mesmos

Assim como no servidor primaacuterio instale o heartbeat e acrescente as seguintes linhas ao arquivo etchosts

1921681011 pgprimario1921681010 pgsecundario

Note que os IPs satildeo inver-tidos com relaccedilatildeo ao con-teuacutedo do arquivo no servidor primaacuterio

Em seguida crie o arquivo de configuraccedilatildeo etchad

copy Linux New Media do Brasil Editora Ltda

61

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] Linux Magazine 43 httplnmcombrissuelm_43_alta_disponibilidade

[2] Discussatildeo no PGDG sobre replicaccedilatildeo httparchivespostgresqlorgpgsql-hackers2008-05msg00913php

[3] Criaccedilatildeo de clusters PostgreSQL httpwwwpostgresqlorgdocs83interactivecreating-clusterhtml

hacf de acordo com o exemplo 4 e etchadharesources com conteuacutedo igual ao do servidor primaacuterio

pgprimario IPaddr192168105pgprimario PostgreSQL

Todos os procedimentos com o arquivo etchadauthkeys tambeacutem devem ser repetidos assim como os do script etchadresourcedPostgreSQL (exemplo 5) O script diferente entre os servidores primaacute-rio e secundaacuterio eacute o check_pgsqlsh em usrlocalsbin (exemplo 7) pois os valores das variaacuteveis HOST e OTHER devem ter seus valores troca-dos entre si

Ao final no entanto o mesmo procedimento do servidor primaacuterio eacute necessaacuterio permitir a execuccedilatildeo dos scripts criados e reiniciar o Postgre-SQL e o heartbeat

ConsideraccedilotildeesAs atualizaccedilotildees de seguranccedila deveratildeo ser realizadas em ambos os servido-res com diferentes procedimentos para cada No servidor que estiver ativo no cluster deve-se atualizar conforme a liberaccedilatildeo de novas ver-sotildees do pacote do PostgreSQL e os procedimentos de atualizaccedilatildeo da distribuiccedilatildeo em uso Eacute recomendaacute-vel para ambos os servidores fazer a atualizaccedilatildeo em um horaacuterio de pou-co uso ou numa parada programada para manutenccedilatildeo

As atualizaccedilotildees de seguranccedila no servidor secundaacuterio precisam de atenccedilatildeo pois distribuiccedilotildees baseadas em Debian reiniciam o serviccedilo do PostgreSQL Nesse caso esse rei-niacutecio pode afetar o funcionamento do servidor primaacuterio Para contornar esse problema podemos alterar a permissatildeo do arquivo etcinitdpostgresql-83 antes de atualizar o pacote do PostgreSQL

chmod 000 etcinitdpostgresql-83

Depois de atualizar o pacote basta retornar o pacote agraves permis-sotildees anteriores (e corretas para a operaccedilatildeo)

chmod 755 etcinitdpostgresql-83

O quadro 1 oferece ajuda caso ocorra algum problema com o storage durante a operaccedilatildeo do cluster

ConclusatildeoUma soluccedilatildeo de alta disponibilidade como essa natildeo elimina a necessidade de uma poliacutetica de becape e proce-dimentos de melhora contiacutenua de performance O becape pode ser res-taurado a partir de qualquer maacutequina na soluccedilatildeo de alta disponibilidade desde que elas estejam com o serviccedilo do PostgreSQL em execuccedilatildeo Novos procedimentos de becape podem ser adotados como armazenamento dos logs diaacuterios como complemento da poliacutetica existente

O aumento da disponibilidade do banco de dados natildeo significa aban-donar as poliacuteticas de contingecircncia e becape Tambeacutem eacute necessaacuterio plane-jar o aumento da disponibilidade de todo o ambiente (aplicaccedilatildeo e banco de dados) Natildeo desconsidere o uso de storages com iSCSI ou fibra oacutetica para melhor performance

Quadro 1 Problemas no storage

Em caso de problemas no storage o melhor eacute recriar o cluster de banco de dados com o comando initdb e restaurar seu conteuacutedo a partir do becape Dependendo do incidente pode-se optar por criar o cluster localmente ou em outro storage Caso seja local eacute possiacutevel criar um cluster provisoacuterio ateacute que o storage volte a ficar disponiacutevel para o servidor

O comando para isso eacute

pg_createcluster -u postgres -d varlibpostgresqlprovisorio --start-conf=auto 83 provisorio

e suas opccedilotildees satildeo

-u usuaacuterio que seraacute usado pelo cluster

-d diretoacuterio onde ficaraacute o cluster

--start-conf= opccedilatildeo para acrescentar a etcinitdpostgresq-83 o iniacutecio do cluster que estaacute sendo acrescentado

83 versatildeo instalada do PostgreSQL

provisorio identificaccedilatildeo do novo cluster

copy Linux New Media do Brasil Editora Ltda

62 httpwwwlinuxmagazinecombr

Integraccedilatildeo de dados com o ETL Talend

O talento do Talend Quem procura uma soluccedilatildeo ETL para Business Intelligence natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda por Miguel Koren OrsquoBrien de Lacy

Um dos componentes essen-ciais de uma soluccedilatildeo para a inteligecircncia de negoacutecios (BI

ndash Business Intelligence ) eacute o moacutedulo de integraccedilatildeo de informaccedilotildees de di-versas fontes de dados Felizmente o mercado de Software Livre e de coacutedigo aberto oferece algumas so-luccedilotildees bastante completas que satildeo usadas dentro dos pacotes de BI ou em modo stand alone As soluccedilotildees de integraccedilatildeo de dados satildeo conheci-das como ETL ( Extract Transform Load ) pois a missatildeo dessas soluccedilotildees eacute integrar informaccedilotildees e preparaacute-las para a formaccedilatildeo de tabelas no data mart Normalmente os dados precisam ser manipulados depois de obtidos e logo inseridos nas tabelas dos bancos de dados em que reside o data mart Ou seja estamos falando em obter os dados aplicar regras de negoacutecios da empresa facilitar as consultas pos-teriores ou validar a qualidade dos dados e entregaacute-los transformados ao destino fi nal Dentre as transfor-maccedilotildees normalmente aplicadas aos dados podemos destacar a seleccedilatildeo de campos importantes para a anaacutelise a fi ltragem dos registros necessaacuterios a limpeza dos dados (ldquoSrrdquo ou ldquoSe-nhorrdquo passam a valer ldquoSrdquo) a geraccedilatildeo dos campos calculados (por exemplo ldquovalor nf = quantidade valor unitaacute-riordquo) etc Mas essas soluccedilotildees tambeacutem podem ser consideradas integradores e manipuladores de dados para outras

necessidades podendo substituir mui-tos sistemas de ldquointerfacesrdquo de dados que satildeo desenvolvidos pelas aacutereas de TI de grandes empresas

Originalmente os sistemas cor-porativos foram desenvolvidos de forma isolada para cumprir alguma funccedilatildeo especiacutefi ca natildeo sendo parte do objetivo de projeto a necessidade de compartilhar dados Quando a quan-tidade desses sistemas comeccedilou a ser mais importante dentro das empresas surgiram as primeiras necessidades de integraccedilatildeo de dados como a carga de pedidos aos sistemas de estoque e fatu-ramento Tais necessidades de integra-ccedilatildeo foram implementadas diretamente por programas ou scripts especiacutefi cos Com a crescente complexidade das integraccedilotildees requeridas iniciou-se um encarecimento do desenvolvimento desses processos Os sistemas tinham manutenccedilatildeo complexa e as loacutegicas de integraccedilatildeo difiacuteceis de documentar auditar e entender Por isso as em-presas comeccedilaram a implementar ferramentas prontas ou semi-pron-tas para essa necessidade Essa foi a origem dos sistemas ETL

Esses sistemas poreacutem natildeo pos-suem a popularidade que merecem em razatildeo de certos fatores que impe-dem sua adoccedilatildeo Entre estes fatores devemos destacar Custo inicial Complexidade no uso com curva de

aprendizado muito empinada

Escalabilidade a necessidades de integraccedilotildees pequenas

A empresa Talend eacute fabricante

do Talend Open Studio [1] apre-sentado como ldquoo sistema ETL mais abrangente no mercado de software livre e coacutedigo abertordquo O modelo de negoacutecios da empresa eacute um dos claacutes-sicos para Software Livre A empresa desenvolve um produto que licencia sem custo usando licenciamento em modalidade livre no caso a GPL [2] e oferece serviccedilos e suporte co-merciais O software licenciado sob a GPL natildeo possui todos os compo-nentes que satildeo oferecidos a clientes sob o licenciamento de subscriccedilatildeo do serviccedilo mas mesmo dessa forma eacute extremamente uacutetil para as neces-sidades ETL de qualquer empresa O Talend Open Studio foi liberado no mercado em 2005 pela empresa Talend com bases na Franccedila paiacutes com uma poliacutetica ofi cial de apoio a Software Livre e Coacutedigo Aberto Analistas de TI como Forrester Rese-arch [3] IDC [4] e Bloor Research [5] posicionam o Talend como o melhor sistema para necessidades de integraccedilatildeo de dados O sistema BI em software livre SpagoBI [6] [7] eacute um exemplo de uso do Talend como seu componente ETL padronizado

O modelo de Software Livre eacute bem apropriado para esse tipo de soluccedilatildeo pois faz bom uso de desen-

AN

AacuteLIS

E

AN

AacuteLIS

E

copy Linux New Media do Brasil Editora Ltda

63

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

volvimento colaborativo em que muitas pessoas contribuem com moacutedulos para conexotildees a fontes de dados variadas Mas o sucesso do Talend tambeacutem mostra que o Software Livre natildeo eacute apenas bem sucedido em soluccedilotildees ldquocomoditiza-dasrdquo como sistemas operacionais e utilitaacuterios de infra-estrutura O Talend mostra que uma soluccedilatildeo livre pode ser muito atrativa num mercado novo em formaccedilatildeo com-petindo com sistemas proprietaacuterios de grandes empresas como IBM SAS e SAP as quais tecircm preccedilos de licenciamento de niacutevel corporativo Empresas como Oracle e Microsoft tambeacutem competem nesse mercado poreacutem com uma visatildeo mais restrita focada nos produtos de base de cada uma banco de dados Oracle e SQL Server respectivamente

Um forte apelo do Talend eacute a disponibilidade de uma ferramenta abrangente em que os proacuteprios usuaacute-rios da informaccedilatildeo podem modelar as regras de negoacutecios (fontes de dados campos requeridos regras de trans-formaccedilatildeo etc) para a integraccedilatildeo dos dados Hoje a aacuterea de TI de qualquer

empresa tem diariamente mais e mais dados e os usuaacuterios tecircm necessida-des de visualizaccedilatildeo que satildeo mais urgentes a cada dia Assim eacute muito uacutetil que os proacute-prios usuaacuterios possam usar o sistema de for-ma natildeo teacutecnica para especificar as regras de integraccedilatildeo

Recurso e TecnologiaO Talend eacute um sistema desenvolvi-do em Java que usa uma arquitetura modular formada por Gerenciador graacutefico de negoacutecios

(visatildeo natildeo teacutecnica de necessida-des de fluxo de dados)

Gerenciador graacutefico de proces-sos ETL

Gerenciador de metadados (repositoacuterio para reutilizaccedilatildeo de objetos)

Repositoacuterio de processos (moacutedulo adicional da versatildeo comercial)

Interface web services a proces-sos ETL

Monitor de processos Componentes modulares (atu-

almente mais de 400) Usando a API do sistema podem ser desenvolvidos componentes personalizados

O gerenciador graacutefico de processos ETL roda dentro do ambiente Eclipse [8][9] seguindo a filosofia de inte-graccedilatildeo de ferramentas dentro desse ambiente para desenvolvimento

Normalmente os primeiros trecircs moacutedulos satildeo usados na ordem listada O gerenciador de negoacutecios eacute usado pelos usuaacuterios do sistema enquanto o gerenciador de processos ETL e o gerenciador de metadados satildeo usados pelos programadores Mesmo que o repositoacuterio de projetos ETL com apoio a equipes de trabalho seja um componente oferecido comer-cialmente o Talend Open Studio inclui a possibilidade de versio-

namento do desenvolvimento dos processos A figura 1 mostra o uso desse recurso

O Talend eacute um sistema ldquogera-dor de coacutedigordquo em oposiccedilatildeo a um sistema de ldquocaixa pretardquo ndash a qual eacute responsaacutevel pela execuccedilatildeo dos pro-cessos ETL ndash ou seja o Talend natildeo requer um servidor de execuccedilatildeo de processos ETL A vantagem da gera-ccedilatildeo de coacutedigo eacute que eacute mais simples integrar os processos ETL dentro de outros aplicativos e os modelos satildeo de portabilidade muito mais flexiacutevel Aleacutem de sistemas como SpagoBI o

Figura 1 Gerenciamento de versotildees

Figura 2 Tela de iniacutecio do Talend

copy Linux New Media do Brasil Editora Ltda

64 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

Talend eacute integrado em sistemas de empresas como Ingres Teradata e JasperSoft O mecanismo de geraccedilatildeo de coacutedigo permite a integraccedilatildeo do coacutedigo gerado pelo Talend dentro de outras soluccedilotildees aleacutem de ter maior portabilidade Outra vantagem de mecanismos de geraccedilatildeo de coacutedigo eacute que mecanismos de integraccedilatildeo ldquoonlinerdquo conhecidos hoje como ldquointegraccedilatildeo operacionalrdquo podem ser implementados com maior fa-cilidade O conceito de geraccedilatildeo de coacutedigo versus ldquocaixa pretardquo de exe-cuccedilatildeo dos processos ETL eacute a maior diferenccedila entre o Talend e muitos outros sistemas O conceito de ge-raccedilatildeo de coacutedigo natildeo foi popular no passado possivelmente por causa do marketing das empresas comerciais destas soluccedilotildees mas as vantagens que o Talend apresenta usando este conceito satildeo importantes

No caso o Talend gera coacutedigo Java ou Perl e SQL para os proces-sos ETL Aleacutem de aplicar o conceito ETL ele aplica tambeacutem o conceito ELT (Extract Load Transform) o que significa que pode aproveitar a eficiecircncia e performance nativas de bancos de dados SQL ou seja os dados satildeo extraiacutedos carregados no destino e somente depois jaacute den-tro do banco de destino eacute aplicada a loacutegica de transformaccedilatildeo usando SQL e linguagem procedural de

cada banco de dados Para a funcio-nalidade ELT satildeo suportados nati-vamente hoje os bancos de dados Oracle MySQL e Teradata

OperaccedilatildeoO sistema estaacute disponiacutevel em versotildees para Linux Unix e Windows Para todas as plataformas eacute necessaacuterio ter Java e Perl no equipamento considerando seu conceito de de-senho que eacute de geraccedilatildeo de coacutedigo ou seja que os processos do Talend satildeo executados pela maacutequina vir-tual Java (JVM) ou pelo interpre-tador Perl

O download do sistema ainda eacute relativamente pesado (235 MB) mas com conexotildees de banda larga cada dia mais confiaacuteveis e raacutepidas pode ser feito em poucas horas Neste artigo exploraremos o Ta-lend Open Studio para Linux em ambiente graacutefico Gnome rodando em OpenSUSE 102 No caso de usaacute-lo em Windows 2000 existe um preacute-requisito adicional que eacute a instalaccedilatildeo do GDI requerido pelo Eclipse [10] A partir do Windows XP essa biblioteca estaacute incluiacuteda nativamente Vale a pena fazer o download tambeacutem do pacote com-pleto de documentaccedilatildeo Referente ao produto e agrave documentaccedilatildeo o Talend apresenta as vantagens de suporte por uma empresa comercial pois a documentaccedilatildeo eacute bastante comple-ta Outro destaque importante do Talend eacute o acesso a um sistema de ajuda online muito completo In-felizmente isso ainda natildeo eacute norma na maioria dos sistemas de coacutedigo aberto O site do Talend oferece um wiki e uma aacuterea de tutoriais

Simplesmente descompacte o pacote obtido por download e atri-bua propriedades de executaacutevel ao binaacuterio de iniacutecio do sistemaFigura 4 Geraccedilatildeo de um novo projeto

Figura 3 Definiccedilatildeo de repositoacuterio local inicial

copy Linux New Media do Brasil Editora Ltda

65

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

chmod a+x TalendOpenStudio-linux-gtk-x86

Selecione o binaacuterio de iniacutecio apropriado para sua arquitetura de CPU Para iniciar o gerenciador de processos execute o binaacuterio

TalendOpenStudio-linux-gtk-x86 amp

Isso exibiraacute a tela de abertura do sistema (figura 2)

Leia e aceite o contrato de licen-ciamento Apareceraacute finalmente a tela de conexatildeo ao repositoacuterio de processos ETL (figura 3) No caso do Talend Open Studio o repositoacuterio somente poderaacute ser local

Com o repositoacuterio local defini-do gere um projeto novo selecio-nando Create a new local project (figura 4)

Ao definir o tiacutetulo e a descriccedilatildeo do projeto deve-se selecionar tambeacutem a linguagem de geraccedilatildeo do coacutedigo No exemplo para o artigo escolhemos coacutedigo em Java A figura 5 mostra as opccedilotildees de definiccedilatildeo do projeto

Finalmente jaacute se pode entrar no projeto escolhido pela tela principal bastando selecionar nela o projeto e pressionar o botatildeo open Apoacutes alguns momentos apareceraacute a tela principal do sistema Na primeira vez seraacute pedido ao usuaacuterio que re-

gistre o uso digitando seu email e selecionando o paiacutes Este passo natildeo eacute obrigatoacuterio mas eacute recomendado para receber notificaccedilotildees de novas versotildees do sistema

Antes de usar o Talend Open Stu-dio deve ser configurada a lista de elementos disponiacuteveis para o dese-nho Isso pode ser feito modifican-do-se as propriedades do projeto na

opccedilatildeo de ldquopalette settingsrdquo A figura 6 mostra a inclusatildeo de conectores para MS SQL Server e PostgreSQL que devem ser selecionados no caso de precisarmos desenhar um processo de integraccedilatildeo de dados entre estes dois bancos de dados

O desenho de um processo ETL requer vaacuterias etapas incluindo de-senho dos componentes de negoacute-cios dos jobs de processamento de conexotildees JDBC acoplamento de moacutedulos de processamento e outros elementos A figura 7 mostra um exemplo de configuraccedilatildeo de cone-xatildeo JDBC ao banco Microsoft SQL Server O driver JDBC utilizado vem junto com a instalaccedilatildeo do Talend no caso o excelente JTDS [11] A figura 8 mostra a tela do Talend Open Studio com a visatildeo da paleta de fer-ramentas componentes tratados e a ediccedilatildeo de um elemento de negoacutecios (business object)

Aleacutem das possibilidades de desen-volvimento loacutegico da soluccedilatildeo dentro do ambiente graacutefico o Talend oferece

Figura 5 Detalhes de um novo projeto ETL

Figura 6 Formaccedilatildeo da lista de ferramentas

copy Linux New Media do Brasil Editora Ltda

66 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

ferramentas para preparar diagramas formatados para necessidades de documentaccedilatildeo e apresentaccedilatildeo Por exemplo podem ser escolhidas as fontes as cores e os estilos de linhas para os objetos do diagrama aleacutem de haver a possibilidade de alinhamen-to numa grade e a opccedilatildeo de layout automaacutetico dos componentes

Entre as caracteriacutesticas que mais flexibilidade oferecem ao Talend estaacute a biblioteca de componentes Esses componentes estatildeo divididos em grupos funcionais em que os de maior utilidade para uso corporativo podem ser os componentes prepa-rados para acesso a outros sistemas tais como SugarCRM Salesforce e SAP O Talend apresenta um des-taque no mercado ao oferecer um conector ao SAP A figura 9 mostra alguns componentes do Forge do sistema que podem ser baixados e instalados para aumentar a funcio-nalidade padratildeo do Talend

Um destaque do mecanismo de componentes do Talend eacute a possibili-dade de publicar os processos automa-ticamente por exemplo no servidor de BI SpagoBI Outro componente de uso geral e que incrementa em

muito a complexi-dade de processos que podem ser de-finidos eacute o executor de scripts em Groo-vy Aleacutem de poder desenvolver com-ponentes especiacutefi-cos a possibilidade de gerar scripts em Groovy para trata-mento avanccedilado dos dados permite que as transforma-ccedilotildees sigam regras muito especiais da empresa A figura 10 mostra a definiccedilatildeo de integraccedilatildeo com o SpagoBI

Vale a pena des-tacar algumas ca-

racteriacutesticas conceituais do editor graacutefico que satildeo importantes para uso corporativo do Talend Os desenhos satildeo versionados

com a data de cada versatildeo Cada objeto dos modelos re-

cebe um estado que pode ser ldquonatildeo verificadordquo ldquoverificadordquo ou ldquovalidadordquo por default no caso

dos business objects Entretan-to podem ser definidos outros estados usados na empresa

Existe uma aacuterea em cada proje-to para reunir a documentaccedilatildeo que pode conter objetivos justi-ficativas exemplos de resultados desejados etc O Talend tambeacutem gera documentaccedilatildeo teacutecnica e de processo automaticamente

Separaccedilatildeo de papeacuteis entre usuaacute-rios de negoacutecios que descrevem suas necessidades a niacutevel macro (definindo business objects) e desenvolvedores (definindo jobs e outros elementos)

Notificaccedilatildeo ou atualizaccedilatildeo au-tomaacutetica do sistema quando disponibilizadas novas versotildees Talend ou dos componentes

Facilidade para execuccedilatildeo de testes individuais e integrados de componentes

Importaccedilatildeo e exportaccedilatildeo de pro-jetos completos ou elementos

O Talend eacute um sistema muito completo com o apoio de uma empresa comercial um ecossiste-ma de componentes muito amplo e com um ambiente de definiccedilatildeo

Figura 7 Definiccedilatildeo de conexatildeo JDBC

Figura 8 Tela do Talend Open Studio

copy Linux New Media do Brasil Editora Ltda

67

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

e desenvolvimento faacutecil de usar aleacutem de poderoso e visualmente atraente Assim o projeto pode re-solver a questatildeo relatada no iniacutecio do artigo sobre os motivos da falta de popularizaccedilatildeo de sistemas ETL no mercado

ConclusatildeoHoje qualquer empresa tem ne-cessidades de ETL e integraccedilatildeo de dados e em muitos casos eacute caro e complexo desenvolver soluccedilotildees caseiras especiacuteficas O Talend apre-senta uma soluccedilatildeo flexiacutevel com a qual estes processos podem ser

modelados e executados de forma confiaacutevel Podem ser definidos e documentados com a participaccedilatildeo dos usuaacuterios que satildeo os principais interessados no resultado final Naturalmente esse tipo de divisatildeo de atividades ou responsabilidades requer que todos os usuaacuterios in-dependentemente do papel que desempenham no sistema sejam devidamente treinados Em TI eacute cada vez mais comum haver situ-accedilotildees em que os sistemas satildeo sim-ples e poderosos para usar mas os usuaacuterios devem ser treinados nos princiacutepios da tecnologia apresen-

tada Quem usa o Talend deveraacute estar ciente da documentaccedilatildeo em inglecircs ou em francecircs aleacutem do uso do sistema em inglecircs

O uso do Talend dentro de uma empresa eacute facilitado pelas caracte-riacutesticas corporativas do sistema que permitem entre outras possibilida-des ter alta produtividade e visibi-lidade dos processos pelo apoio a componentes especiacuteficos tais como conectores SAP Salesforce ou cus-tomizados e geraccedilatildeo de documen-taccedilatildeo Provavelmente seraacute difiacutecil encontrar um caso de uso que natildeo possa ser atendido com comodidade pelo Talend

Mais informaccedilotildees

[1] Talend httpwwwtalendcom

[2] GPL versatildeo 2 httpwwwgnuorglicensesold-licensesgpl-20html

[3] Forrester Research httpwwwforrestercom

[4] IDC httpwwwidccom

[5] Bloor Research httpwwwbloor-researchcom

[6] SpagoBI httpspagobiengit

[7] Miguel KO de Lacy ldquoNegoacutecio inteligenterdquo httpwwwlnmcombrarticle1747

[8] Eclipse httpwwweclipseorg

[9] Linux Magazine 36 ndash Eclipse httpwwwlnmcombrissue1353

[10] GDI httpwwweclipseorgswtfaqphpnographicslibrary

[11] JTDS httpjtdssourceforgenet

Figura 9 Forge de componentes mostrando aqueles especiacuteficos de algum sistema

Figura 10 Integraccedilatildeo com o SpagoBI Server

copy Linux New Media do Brasil Editora Ltda

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

68 httpwwwlinuxmagazinecombr

Gerenciamento de identidade na web com o Open ID

Identidade aberta mas segura

O OpenID oferece um padratildeo aberto para login em websites fechadospor Nils Magnus

A Web 20 eacute uma boa coisa como todo mundo imagina Um problema eacute a multiplici-

dade de sites protegidos por senha para acesso Blogs pessoais comu-nidades virtuais do Xing ao Orkut e Facebook e sites que gerenciam fluxo de trabalho despesas plane-jamento de feacuterias frequumlentemente confiam em aplicaccedilotildees baseadas na web com o uso de contas de usuaacuterio privadas Esse excesso de senhas de login estaacute fazendo com que alguns usuaacuterios descontentes percam a pa-ciecircncia Enquanto os usuaacuterios usam um dispositivo fiacutesico uacutenico e local ferramentas como os gerenciadores de senhas oferecidos pela maioria dos navegadores e alternativas como o KDE Wallet satildeo de grande ajuda

Mas o paradigma da Web 20 su-potildee que o usuaacuterio tem a liberdade de se mover e efetuar login de dife-rentes locais

Opccedilatildeo da comunidadeSoluccedilotildees para o gerenciamento de identidades fornecem uma soluccedilatildeo de maior mobilidade e flexibilida-de para simplificar o login via web Essas ferramentas muitas vezes empregam o princiacutepio da idonei-dade com terceiros Alguns grandes

players globais tecircm avanccedilado com serviccedilos que oferecem soluccedilotildees de login confiaacuteveis desenvolvidas por terceiros de uma uacutenica fonte O sis-tema Microsoft Passport foi criado em sintonia com esse sentimento Hoje o mercado do Microsoft Passport eacute o ldquoWindows Live IDrdquo [1] Muitos usuaacuterios no entanto estatildeo receo-sos de se tornarem dependentes de aplicativos proprietaacuterios

Uma recente alternativa conhe-cida como Liberty Alliance Project [2] ofereceu uma abordagem mais aberta mas foi amplamente consi-derada como um exagero de especi-ficaccedilotildees e por isso ainda natildeo obteve grande adoccedilatildeo apesar de seus sete anos de esforccedilo O projeto OpenID sob os auspiacutecios da OpenID Foun-dation [3] se baseia na mais simples funcionalidade podendo ser mais facilmente integrado a sistemas de autenticaccedilatildeo online

Os usuaacuterios que optaram pela alternativa do OpenID natildeo inserem um nome de usuaacuterio mas em vez disso identificam-se com uma URI que pode ser exibida em um navega-dor web A URI pode ser um ende-reccedilo web oferecido por um serviccedilo OpenID como httpnilsmagnusmyopenidcom no MyopenID [4] O tipo de identidade natildeo eacute importan-te contanto que qualquer navegador

consiga acessar a paacutegina A paacutegina teraacute que adicionar uma tag que aponte para o provedor do serviccedilo

ltlink rel=rdquoopenidserverrdquo href=rdquohttpwwwmyopenidcomserverrdquo gtltlink rel=rdquoopeniddelegaterdquo href=rdquohttpnilsmagnusmyopenidcomrdquo gt

O servidor do lado do provedor especifica a primeira relaccedilatildeo a segun-da reafirma o nome da identidade O provedor normalmente cria uma paacutegina para tornar essa informaccedilatildeo disponiacutevel para os sites na Web que requisitem as informaccedilotildees de login Contudo um usuaacuterio poderia de forma alternativa integrar os deta-lhes necessaacuterios em uma paacutegina ou blog pessoal Nesse caso seu proacute-prio endereccedilo poderia servir como sua OpenID

O loginUma aplicaccedilatildeo que suporte o OpenID exibiraacute um campo de login OpenID aleacutem da paacutegina de login tradicional Por exemplo a figura 1 mostra a paacute-gina de autenticaccedilatildeo do OpenID no wiki do Amarok

Quando um usuaacuterio digita seu ID baseado em uma URI a aplica-ccedilatildeo web que eacute conhecida como o

RE

DE

S

RE

DE

S

copy Linux New Media do Brasil Editora Ltda

69

cliente na linguagem do OpenID recupera a porccedilatildeo do servidor da URI O OpenID se refere ao servi-dor como ldquoprovedor de identidaderdquo (identity provider)

O cliente (o wiki do Amarok nes-te caso) solicita ao provedor o nome associado agrave URI Para fazer isso ele redireciona a requisiccedilatildeo para o pro-vedor do site e o provedor indica que foi emitida a solicitaccedilatildeo O usuaacuterio entatildeo concorda com o pedido digi-tando uma senha O provedor redi-reciona o navegador de volta para o site do cliente onde o usuaacuterio estaacute agora logado

Uma praacutetica caracteriacutestica do OpenID eacute a possibilidade de ar-mazenar vaacuterios atributos para uma uacutenica identidade com um provedor por exemplo seu nome completo seu idioma preferido ou sua data de nascimento (ver figura 2) O usuaacuterio que recebe um pedido do cliente pode especificar quais os dados que o prestador deve divulgar para o cliente e quais ele deve conservar como secretos

Esse processo de aprovaccedilatildeo eacute im-portante para evitar o mau uso de

um paracircmetro criacutetico tal como o PIN de um banco que na verdade ateacute pode ser armazenado junto ao seu ID Alguns provedores permitem que o usuaacuterio crie muacuteltiplas identi-dades cada uma com um conjunto distinto de atributos

Essa abordagem tambeacutem eacute co-nhecida como Gerenciamento de Identidade Centrada no Usuaacuterio (do inglecircs User-Centric Identity Mana-gement) em que cada usuaacuterio pode definir individualmente as informa-

ccedilotildees fornecidas pelo provedor para os clientes que pedirem

Alguns provedores de identidade associam-nas gratuitamente Cabe ao usuaacuterio decidir em qual provedor con-fiar Diferentemente da abordagem centralizada utilizada pelo Passport um conjunto descentralizado de pro-vedores OpenID competem entre si na oferta de serviccedilos Os usuaacuterios tecircm ateacute mesmo a liberdade de criar seu proacuteprio provedor

Para quem se interessar pelo desenvolvimento de uma soluccedilatildeo proacutepria haacute pacotes de coacutedigo aberto em vaacuterias linguagens de programa-ccedilatildeo como Perl PHP Ruby Python e Java [5]

Tem seguranccedilaO OpenID pode gerar duacutevidas so-bre sua seguranccedila jaacute que qualquer um pode atuar como provedor Um agressor pode forjar (spoof) ou sequumlestrar uma identidade A primeira questatildeo aponta para um claacutessico problema de seguranccedila se vocecirc pode manipular um site de terceiros vocecirc pode redirecionar os visitantes para o seu proacuteprio prove-dor de identidade ou escrever um para se adequar agrave demanda

Em outras palavras a seguranccedila estaacute nas matildeos das pessoas responsaacuteveis pelo site hospedeiro Considerando-

Linux Magazine 50 | Janeiro de 2009

| REDESOpenID

Figura 2 O provedor especifica os detalhes que pretende enviar para o cliente

Figura 1 O wiki do Amarok permite que seus usuaacuterios efetuem login com o OpenID

copy Linux New Media do Brasil Editora Ltda

70 httpwwwlinuxmagazinecombr

se a qualidade do coacutedigo dos muitos sites escritos nas populares linguagens de script essa eacute uma preocupaccedilatildeo real mas natildeo um argumento funda-mental contra o OpenID

A segunda pergunta eacute complica-da eacute possiacutevel que um hacker capture as comunicaccedilotildees entre o cliente e o provedor de identidade e com isso ar-mazene as sessotildees Afi nal o provedor envia uma confi rmaccedilatildeo de mensagem em caso de sucesso na autenticaccedilatildeo Um agressor poderia tentar apresentar uma sessatildeo gravada na proacutexima ten-tativa de login No entanto isso pode ser evitado com a ativaccedilatildeo do SSL ou do TLS no OpenID para proteger a conexatildeo e adicionar um desafi o para cada solicitaccedilatildeo Essa abordagem

signifi ca que qualquer resposta seraacute vaacutelida apenas uma vez o que exclui a reciclagem trivial

Apesar disso natildeo eacute uma boa ideacuteia subestimar a complexidade do ge-renciamento de sessatildeo baseado em estado ( stateful ) que trafega sobre um protocolo sem base em sessatildeo ( state-less ) como o HTTP que eacute a base do OpenID O fato de vaacuterias aplicaccedilotildees web estarem sendo comprometidas eacute uma indicaccedilatildeo clara dos perigos supondo que vocecirc acredite em pes-quisas e whitepapers [6]

Praacutetico e aberto O OpenID eacute um passo na direccedilatildeo certa para o gerenciamento de iden-tidades Como ele implementa o lo-

gin uacutenico ( single sign-on ) tambeacutem se torna mais con-veniente para os usuaacuterios reduzindo o nuacutemero de senhas a serem lembradas A capacidade de gerenciar atributos eacute muito mais po-derosa do que parece agrave pri-meira vista

O nuacutemero de sites que usam OpenID continua crescendo vertiginosamente mas algumas grandes aplica-ccedilotildees continuaratildeo precisando provar se preenchem todas

as exigecircncias operacionais e concei-tuais no que diz respeito agrave confi anccedila e agrave disponibilidade

Mais informaccedilotildees

[1] Microsoft Passport httpwwwpassportnet

[2] Projeto Liberty Alliance httpwwwprojectlibertyorg

[3] Projeto OpenID httpopenidnet

[4] MyOpenID httpmyopenidcom

[5] Bibliotecas abertas de OpenID httpwikiopenidnetLibraries

[6] Secure Computing ldquoKeeping Customers and Merchants Securerdquo (em inglecircs) httpwwwsecurecomputingcomwebformcfmid=289ampref=pci

[7] Feder ID httpfederidobjectweborg

[8] Extensotildees do Mediawiki para OpenID httpwwwmediawikiorgwikiExtensionOpenID

[9] Suporte a OpenID no Drupal httpdrupalorgprojectopenid

REDES | OpenID

Quadro 1 Gerenciamento de identidade e federaccedilatildeo

O OpenID natildeo eacute soacute um projeto de gerenciamento de identidade O Feder ID [7] por exemplo eacute um projeto de coacutedigo aberto da Franccedila Um dos fi nanciadores do projeto Oudot Cleacutement enfatiza a importacircncia das identidades digitais para o acesso aos recursos da Web em uma recente entrevista com a Linux Magazine

De acordo com Oudot muitos usuaacuterios possuem uma identidade distinta para cada site Isto eacute um grande problema para grandes empresas e organizaccedilotildees jaacute que os usuaacuterios precisam memorizar muacuteltiplas senhas O Feder ID fornece ferramentas para a sincronizaccedilatildeo de repositoacuterios de identidade Estes atributos natildeo estatildeo disponiacuteveis apenas para uma uacutenica organizaccedilatildeo local eles podem ser compartilhados por parceiros confi aacuteveis

As ferramentas do Feder ID satildeo de coacutedigo aberto e respeitam os padrotildees da IETF ( Internet Engineering Task Force ) OASIS ( Organization of Structured Information Standards ) e da Liberty Alliance para a gestatildeo de identidades

Tabela 1 Provedores de identidade para aplicaccedilotildees web

Provedor OpenID

AOL httpopenidaolcomnome_do_usuaacuterio

Blogger httpnome_do_blogblogspotcom

Flickr httpwwwflickrcomphotosusuaacuterio

Livedoor httpprofilelivedoorcomusuaacuterio

Livejournal httpusuaacuteriolivejournalcom

Technorati httptechnoraticompeopletechnoratiusuaacuterio

Wordpress httpusuaacuteriowordpresscom

Yahoo httpopenidyahoocom

copy Linux New Media do Brasil Editora Ltda

71

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

LTRindd 67 251108 173039

copy Linux New Media do Brasil Editora Ltda

72 httpwwwlinuxmagazinecombr

Login no Linux pela impressatildeo digital

Autenticaccedilatildeo biomeacutetrica A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e a confi gurar esse recurso de seguranccedila por Alessandro de Oliveira Faria (Cabelo)

Hoje a autenticaccedilatildeo biomeacute-trica eacute imprescindiacutevel para elevarmos o niacutevel de segu-

ranccedila computacional Na Linux Magazine 48 foram mencionadas as principais tecnologias biomeacutetri-cas de coacutedigo aberto Agora neste documento veremos na praacutetica o uso da biometria para autentica-ccedilatildeo de identidade Esse recurso natildeo faz parte apenas dos fi lmes de

fi cccedilatildeo cientiacutefi ca eacute uma realidade cada vez mais presente no nosso dia-a-dia em diversos segmentos do mercado

Com o crescimento dos equi-pamentos em redes abertas sur-giram problemas de seguranccedila e confi abilidade de autenticaccedilatildeo Uma autenticaccedilatildeo indevida for-nece acesso privilegiado a pessoas natildeo autorizadas dando margem a roubo de informaccedilotildees interrup-ccedilotildees de serviccedilos fraudes sistemaacute-ticas entre outros transtornos do seacuteculo XXI

Neste cenaacuterio surgiu a necessida-de da autenticaccedilatildeo biomeacutetrica ou seja verifi caccedilatildeo da autenticidade do usuaacuterio em operaccedilatildeo Esse me-canismo computacional eacute baseado em caracteriacutesticas (ldquoo que vocecirc eacuterdquo) A biometria aplicada agrave autenticaccedilatildeo de usuaacuterios eacute um meacutetodo automa-tizado para medir as caracteriacutesticas humanas e confrontaacute-las em uma base de dados obtendo assim a au-tenticidade do usuaacuterio

A efi caacutecia da autenticaccedilatildeo biomeacute-trica estaacute diretamente relacionada agrave qualidade dos dados obtidos na fase de cadastramento da caracteriacutestica

biomeacutetrica Nessa etapa a base de dados recebe o template matemaacuteti-co calculado pelo sistema isto eacute a representaccedilatildeo binaacuteria da caracteriacutes-tica humana Essa informaccedilatildeo seraacute utilizada posteriormente na compa-raccedilatildeo biomeacutetrica para autenticaccedilatildeo do sistema obtendo assim um re-sultado positivo ou negativo

Este artigo apresenta um foco teacutecnico e pouco teoacuterico assim obje-

SE

GU

RA

NCcedil

A

Figura 1 Imagem extraiacuteda de um leitor de impressatildeo digital UAreU da Digital Persona

Figura 2 Imagem binarizada (branco e preto)

copy Linux New Media do Brasil Editora Ltda

73

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

tivando configurar ou acrescentar a autenticaccedilatildeo biomeacutetrica como niacutevel adicional de seguranccedila ao login do sistema operacional Linux Para tal operaccedilatildeo utilizaremos a tecnologia de impressatildeo digital e pacotes de coacute-digo aberto (biblioteca fprint)

A tecnologia utilizada para a con-fecccedilatildeo deste artigo foi OpenSuse 103 ndash kernel 26225-

31-bigsmp Notebook Dell Vostro 1510 4 GB de memoacuteria RAM Processador Core 2 Duo Leitor de impressatildeo digital Uare

U Digital Persona 4000B Biblioteca fprint

Fprint conceitosO pacote fprint[1] eacute o sonho de todo desenvolvedor de coacutedigo aberto O kit de integraccedilatildeo permite o desen-volvimento de rotinas para identi-ficaccedilatildeo e verificaccedilatildeo de impressotildees digitais do usuaacuterio Um dos pontos fortes dessa soluccedilatildeo livre eacute a compa-tibilidade com diversos modelos de sensores disponiacuteveis no mercado A lista de aparelhos compatiacuteveis en-contra-se em [2]

A impressatildeo digital eacute composta por linhas formadas pelas elevaccedilotildees da pele A comparaccedilatildeo por impressatildeo digital eacute um meacutetodo utilizado haacute mais de mil anos como forma de identificaccedilatildeo de usuaacuterios Eacute uma caracteriacutestica uacutenica entre os seres humanos inclusive entre irmatildeos gecircmeos univitelinos

Formada ainda quando feto a impressatildeo digital acompanha a pessoa por toda a sua existecircncia sem apresentar grandes mudanccedilas Extraindo os pontos caracteriacutesticos ou ldquopontos de minuacuteciasrdquo de uma impressatildeo digital um papiloscopista ou sistemas computadorizados po-dem identificar pessoas utilizando caacutelculos bastante confiaacuteveis Grande parte dos algoritmos trabalham com o princiacutepio de extraccedilatildeo desses pontos caracteriacutesticos Apoacutes a extraccedilatildeo satildeo calculados a relaccedilatildeo entre as distacircn-cias desses pontos Cada algoritmo possui sua base de caacutelculo seja por anaacutelise dos pontos entre si ou por agrupamentos de pontos para anaacute-lise de semelhanccedilas de triacircngulos com os acircngulos internos

A biblioteca fprint incorpora abstraccedilatildeo de hardware para aces-so ao leitor Com esse recurso natildeo precisamos instalar qualquer moacutedulo do kernel para o funcio-namento de cada modelo de leitor de impressatildeo digital

Na primeira fase a biblioteca extrai a imagem do sensor (figura 1) e logo a seguir a linha da impressatildeo digital eacute realccedilada com a cor preta (figura 2)

Figura 3 Linhas reduzidas para um uacutenico pixel

Figura 4 Pontos de bifurcaccedilatildeo e terminadores

copy Linux New Media do Brasil Editora Ltda

74 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

utilizando algoritmos de extraccedilatildeo com filtros Na proacutexima etapa a imagem jaacute estaacute binarizada (branco e preto figura 3) e as linhas foram reduzidas a um uacutenico pixel de largura Por uacuteltimo a tarefa mais faacutecil ou seja

detectar os pontos de minuacutecias Fa-zendo um exame de cada pixel na imagem se houver um pixel branco sem vizinhos isso significa que en-contramos um ponto terminal Caso um ponto branco possua trecircs pontos

vizinhos significa que en-contramos uma bifurcaccedilatildeo Os pontos de minuacutecias satildeo entatildeo destacados (fi-gura 4) e compotildeem a ver-dadeira identidade da im-pressatildeo digital

As impressotildees digitais satildeo classificadas em cinco grupos conforme mostra a figura 5 ciacuterculo direito ciacuterculo esquerdo espiral arco e arco incompletoA estrutura de uma im-pressatildeo digital eacute forma-da por cruzamentos das linhas core (centro) bi-furcaccedilotildees terminaccedilotildees ilhas deltas (bifurcaccedilotildees inferiores) e poros Os pon-tos terminais assim como os pontos de bifurcaccedilotildees satildeo definidos em funccedilatildeo da distacircncia (coordena-da relativa) para o core Nos pontos terminais eacute co-mum calcular seu acircngulo de inclinaccedilatildeo

InstalaccedilatildeoHaacute pacotes da biblioteca fprint preacute-compilados para OpenSuse [3] e Ubuntu [4] No entanto este artigo sugere a compilaccedilatildeo da biblioteca a partir de seu coacutedigo-fonte que pode ser obtido em [5] Haacute tambeacutem uma demonstraccedilatildeo do software fprint que pode ser baixada a partir de [6]

Apoacutes o download devemos des-compactar os arquivos fontes O exemplo 1 detalha o procedimen-

Exemplo 1 Preparaccedilatildeo da libfprint

$ tar -jxvf libfprint-006tarbz2$ cd libfprint-006$ configure$ make$ suSenha make install ldconfig

Figura 5 Os cinco grupos de impressotildees digitais

Exemplo 3 Arquivo de login do PAM

01 PAM-1002 auth requisite pam_nologinso03 auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securettyso04 auth include common-auth05 auth requisite pam_fprintso06 account include common-account07 password include common-password08 session required pam_loginuidso09 session include common-session10 session required pam_lastlogso nowtmp11 session required pam_resmgrso12 session optional pam_mailso standard13 session optional pam_ck_connectorso

Exemplo 2 Compilaccedilatildeo do pam_fprint

$ wget httpufprdlsourceforgenetsourceforgefprintpam_fprint-02tarbz2$ tar -jxvf pam_fprint-02tarbz2$ cd pam_fprint-02$ configure$ make$ sudo make install

copy Linux New Media do Brasil Editora Ltda

75

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

Exemplo 4 pam_fprint_enroll --help

pam_fprint_enroll --helpUsage pam_fprint_enroll options -h --help Display this usage information -f --enroll-finger index Enroll finger with index Valid indexes are 1 - Left Thumb 2 - Left Index Finger 3 - Left Middle Finger 4 - Left Ring Finger 5 - Left Little Finger 6 - Right Thumb 7 - Right Index Finger 8 - Right Middle Finger 9 - Right Ring Finger 10 - Right Little Finger

Exemplo 5 Cadastramento de digital

pam_fprint_enroll --enroll-finger 7

This program will enroll your finger unconditionally overwriting any selected print that was enrolled previously If you want to continue press enter otherwise hit Ctrl+C Found device claimed by Digital Persona UareU 40004000B driverOpened device Itrsquos now time to enroll your finger You will need to successfully scan your Right Index Finger 1 timesto complete the process Scan your finger nowEnroll completeEnrollment completed

Exemplo 6 Sucesso na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1)lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BUacutetimo loginDom Nov 16 231501 BRST 2008em tty2

Have a lot of fun

copy Linux New Media do Brasil Editora Ltda

76 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

to de configuraccedilatildeo e compilaccedilatildeo da biblioteca

Execute o comando ldquomakerdquo con-vencional para efetuar a compilaccedilatildeo na iacutentegra do coacutedigo-fonte a seguir transforme-se em super-usuaacuterio (root) para efetuar a instalaccedilatildeo da biblioteca por meio do comando ldquomake installrdquo seguido do ldquoldconfigrdquo conforme as instruccedilotildees a seguir

Autenticaccedilatildeo pam_fprintO moacutedulo biomeacutetrico que trabalha em conjunto com o sistema de au-tenticaccedilatildeo PAM (Pluggable Authen-tication Modules) eacute o pam_fprint Sua base tecnoloacutegica eacute a biblioteca fprint receacutem compilada e instalada O pacote pam_fprint utiliza as fun-ccedilotildees biomeacutetricas para processar e verificar a autenticaccedilatildeo do usuaacuterio Em outras palavras a sua impressatildeo digital eacute utilizada para efetuar o login no sistema operacional

Vale a pena mencionar que o PAM eacute um sistema para autenticaccedilatildeo de usuaacuterios em ambientes Linux e Unix Uma de suas principais vantagens eacute a centralizaccedilatildeo das chamadas e funccedilotildees de login assim facilitando a tarefa do desenvolvedor

Continuando nossa jornada vamos agora baixar descompactar compilar e instalar o pacote pam_fprint como no exemplo 2

Sobre o autorAlessandro Faria eacute soacutecio-proprietaacuterio da NETi TECNOLOGIA fundada em Junho de 1996 (httpwwwnetiteccombr) empre-sa especializada em desenvolvimento de software e soluccedilotildees biomeacutetricas Consultor Biomeacutetrico na tecnologia de reconhecimen-to facial atua na aacuterea de tecnologia desde 1986 propiciando assim ao mercado solu-ccedilotildees em software Leva o Linux a seacuterio des-de 1998 com desenvolvimento de soluccedilotildees open source eacute membro colaborador da co-munidade Viva O Linux e mantenedor da bi-blioteca open source de viacutedeo captura aleacuten de participar entre outros projetos

Mais informaccedilotildees

[1] Fprint httpreactivatednetfprintwikiMain_Page

[2] Dispositivos compatiacuteveis com a fprint httpreactivatednetfprintwikiSupported_devices

[3] Pacotes fprint para OpenSuse httpdownloadopensuseorgrepositorieshomedgege

[4] Pacotes fprint para Ubuntu httpwwwmadman2knetcomments105

[5] Download da biblioteca fprint httpufprdlsourceforgenetsourceforgefprintlibfprint-006tarbz2

[6] Demo do fprint httpufprdlsourceforgenetsourceforgefprintfprint_demo-04tarbz2

[7] Portal Viva o Linux httpwwwvivaolinuxcombr

ConfiguraccedilatildeoNo OpenSuse eacute preciso modi-ficar o arquivo de configuraccedilatildeo para autenticaccedilatildeo no modo conso-le etcpamdlogin Esse arquivo pode ter nome diferente em ou-tras distribuiccedilotildees Seu conteuacutedo eacute mostrado no exemplo 3 e a linha 5 deve ser acrescentada pois eacute a res-ponsaacutevel por requisitar o moacutedulo pam_fprint

Eacute importante notar a utilizaccedilatildeo do modo requisite de autenticaccedilatildeo no PAM Para maiores informaccedilotildees sobre o tipo de autenticaccedilatildeo reco-menda-se consultar a documentaccedilatildeo do PAM

CadastramentoO proacuteximo passo eacute efetuar o cadastra-mento biomeacutetrico da sua impressatildeo digital Se concluiacuteda com sucesso essa tarefa no proacuteximo login o usuaacute-rio deveraacute fornecer aleacutem da senha sua impressatildeo digital para ter acesso ao sistema

O programa pam_fprint_enroll eacute responsaacutevel pelo cadastramento das impressotildees digitais Para en-tender melhor sua sintaxe digite pam_fprint_enroll --help e perceba (exemplo 4) que eacute preciso informar o nuacutemero correspondente ao dedo utilizado para cadastro A numeraccedilatildeo comeccedila em 1 no polegar esquerdo e segue ateacute o dedo mindinho esquerdo (nuacutemero 5) seguindo depois para o polegar direito (6) e terminando no mindinho direito (10)

No meu caso utilizei o nuacutemero 7 representando o dedo indicador da matildeo direita (exemplo 5) Ao exe-cutar o programa pressione [ENTER] encoste o dedo no leitor de impres-satildeo digital e pronto Nessa fase ao efetuar o login o sistema opera-cional solicitaraacute a senha seguida da autenticaccedilatildeo biomeacutetrica como mostram os exemplos 6 (sucesso na autenticaccedilatildeo) e 7 (falha na autenti-caccedilatildeo biomeacutetrica)

ConclusatildeoA biblioteca fprint proporciona inuacute-meros recursos aleacutem dos mencio-nados neste artigo Para um estudo detalhado sobre o assunto sugiro algumas leituras no portal Viva o Linux [7] e tambeacutem no site oficial do projeto

Exemplo 7 Falha na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1) lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BLogin incorreto

copy Linux New Media do Brasil Editora Ltda

77

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

SE

CcedilAtilde

O

Site_LNMindd 55 191208 205243

copy Linux New Media do Brasil Editora Ltda

78

SE

RV

ICcedilO

S

httpwwwlinuxmagazinecombr

Fornecedor de Hardware = 1 Redes e Telefonia PBX = 2 Integrador de Soluccedilotildees = 3

Literatura Editora = 4 Fornecedor de Software = 5

Consultoria Treinamento = 6

Linuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

CearaacuteF13 Tecnologia Fortaleza Rua Coronel Solon 480 ndash Bairro de Faacutetima

Fortaleza - CE - CEP 60040-270 85 3252-3836 wwwf13combr

Espiacuterito SantoLinux Shopp Vila Velha Rua Satildeo Simatildeo (Correspondecircncia) 18 ndash CEP 29113-120 27 3082-0932 wwwlinuxshoppcombr

Megawork Consultoria e Sistemas

Vitoacuteria Rua Chapot Presvot 389 ndash Praia do Can-to ndash CEP 29055-410 sl 201 202

27 3315-2370 wwwmegaworkcombr

Spirit Linux Vitoacuteria Rua Marins Alvarino 150 ndash CEP 29047-660 27 3227-5543 wwwspiritlinuxcombr

Minas GeraisInstituto Online Belo Horizonte Av Bias Fortes 932 Sala 204 ndash CEP 30170-011 31 3224-7920 wwwinstitutoonlinecombr

Linux Place Belo Horizonte Rua do Ouro 136 Sala 301 ndash Serra ndash CEP 30220-000 31 3284-0575 corporatelinuxplacecombr

Microhard Belo Horizonte Rua Repuacuteblica da Argentina 520 ndash Sion ndash CEP 30315-490 31 3281-5522 wwwmicrohardcombr

TurboSite Belo Horizonte Rua Paraiacuteba 966 Sala 303 ndash Savassi ndash CEP 30130-141 0800 702-9004 wwwturbositecombr

ParanaacuteiSolve Curitiba Av Cacircndido de Abreu 526 Cj 1206B ndash CEP 80530-000 41 252-2977 wwwisolvecombr

Mandriva Conectiva Curitiba Rua Tocantins 89 ndash Cristo Rei ndash CEP 80050-430 41 3360-2600 wwwmandrivacombr

Telway Tecnologia Curitiba Rua Francisco Rocha 183071 41 3203-0375 wwwtelwaycombr

Rio de JaneiroMuacuteltipla Tecnologia da Informaccedilatildeo

Rio de Janeiro Av Rio Branco 37 14deg andar ndash CEP 20090-003 21 2203-2622 wwwmultipla-ticombr

NSI Training Rio de Janeiro Rua Arauacutejo Porto Alegre 71 4ordm andar Centro ndash CEP 20030-012 21 2220-7055 wwwnsicombr

Open IT Rio de Janeiro Rua do Mercado 34 Sl 402 ndash Centro ndash CEP 20010-120 21 2508-9103 wwwopenitcombr

Unipi Tecnologias Campos dos Goytacazes

Av Alberto Torres 303 1ordmandar ndash Centro ndash CEP 28035-581 22 2725-1041 wwwunipicombr

Rio Grande do Sul4up Soluccedilotildees Corporativas Novo Hamburgo Pso Calccediladatildeo Osvaldo Cruz 54 sl 301 CEP 93510-015 51 3581-4383 www4upcombr

Definitiva Informaacutetica Novo Hamburgo Rua General Osoacuterio 402 - Hamburgo Velho 51 3594 3140 wwwdefinitivacombr

Solis Lajeado Av 7 de Setembro 184 sala 401 ndash Bairro Moinhos CEP 95900-000

51 3714-6653 wwwsoliscoopbr

DualCon Novo Hamburgo Rua Joaquim Pedro Soares 1099 Sl 305 ndash Centro 51 3593-5437 wwwdualconcombr

Datarecover Porto Alegre Av Carlos Gomes 403 Sala 908 Centro Comer-cial Atrium Center ndash Bela Vista ndash CEP 90480-003

51 3018-1200 wwwdatarecovercombr

LM2 Consulting Porto Alegre Rua Germano Petersen Junior 101-Sl 202 ndash Hi-gienoacutepolis ndash CEP 90540-140

51 3018-1007 wwwlm2combr

Lnx-IT Informaccedilatildeo e Tecnologia Porto Alegre Av Venacircncio Aires 1137 ndash Rio Branco ndash CEP 90040193 51 3331-1446 wwwlnx-itinfbr

Plugin Porto Alegre Av Juacutelio de Castilhos 132 11ordm andar Centro ndash CEP 90030-130 51 4003-1001 wwwplugincombr

TeHospedo Porto Alegre Rua dos Andradas 1234610 ndash Centro ndash CEP 90020-008 51 3286-3799 wwwtehospedocombr

Satildeo PauloWs Host Arthur Nogueira Rua Jerere 36 ndash Vista Alegre ndash CEP 13280-000 19 3846-1137 wwwwshostcombr

DigiVoice Barueri Al Juruaacute 159 Teacuterreo ndash Alphaville ndash CEP 06455-010 11 4195-2557 wwwdigivoicecombr

Dextra Sistemas Campinas Rua Antocircnio Paioli 320 ndash Pq das Universidades ndash CEP 13086-045 19 3256-6722 wwwdextracombr

Insigne Free Software do Brasil Campinas Av Andrades Neves 1579 ndash Castelo ndash CEP 13070-001 19 3213-2100 wwwinsignesoftwarecom

Microcamp Campinas Av Thomaz Alves 20 ndash Centro ndash CEP 13010-160 19 3236-1915 wwwmicrocampcombr

PC2 Consultoria em Software Livre

Carapicuiba Rua Edeia 500 - CEP 06350-080 11 3213-6388 wwwpc2consultoriacom

Savant Tecnologia Diadema Av Senador Vitorino Freire 465 ndash CEP 09910-550 11 5034-4199 wwwsavantcombr

Epopeacuteia Informaacutetica Mariacutelia Rua Goiaacutes 392 ndash Bairro Cascata ndash CEP 17509-140 14 3413-1137 wwwepopeiacombr

Redentor Osasco Rua Costante Piovan 150 ndash Jd Trecircs Montanhas ndash CEP 06263-270 11 2106-9392 wwwredentorindbr

Go-Global Santana de Parnaiacuteba

Av Yojiro Takaoca 4384 Ed Shopping Ser-vice Cj 1013 ndash CEP 06541-038

11 2173-4211 wwwgo-globalcombr

AW2NET Santo Andreacute Rua Edson Soares 59 ndash CEP 09760-350 11 4990-0065 wwwaw2netcombr

Async Open Source Satildeo Carlos Rua Orlando Damiano 2212 ndash CEP 13560-450 16 3376-0125 wwwasynccombr

O maior diretoacuterio de empresas que oferecem produtos soluccedilotildees e serviccedilos 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 anuncioslinuxmagazinecombr

copy Linux New Media do Brasil Editora Ltda

79

| SERVICcedilOSLinuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

Satildeo Paulo (continuaccedilatildeo)Delix Internet Satildeo Joseacute do

Rio PretoRua Voluntaacuterio de Satildeo Paulo 3066 9ordm ndash Centro ndash CEP 15015-909 11 4062-9889 wwwdelixhostingcombr

4Linux Satildeo Paulo Rua Teixeira da Silva 660 6ordm andar ndash CEP 04002-031 11 2125-4747 www4linuxcombr

A Casa do Linux Satildeo Paulo Al Jauacute 490 ndash Jd Paulista ndash CEP 01420-000 11 3549-5151 wwwacasadolinuxcombr

Accenture do Brasil Ltda Satildeo Paulo Rua Alexandre Dumas 2051 ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 5188-3000 wwwaccenturecombr

ACR Informaacutetica Satildeo Paulo Rua Lincoln de Albuquerque 65 ndashPerdizes ndash CEP 05004-010 11 3873-1515 wwwacrinformaticacombr

Agit Informaacutetica Satildeo Paulo Rua Major Quedinho 111 5ordm andar Cj 508 ndash Centro ndash CEP 01050-030

11 3255-4945 wwwagitcombr

Altbit - Informaacutetica Comeacutercio e Serviccedilos LTDA

Satildeo Paulo Av Francisco Matarazzo 229 Cj 57 ndash Aacutegua Branca ndash CEP 05001-000

11 3879-9390 wwwaltbitcombr

AS2M -WPC Consultoria Satildeo Paulo Rua Trecircs Rios 131 Cj 61A ndash Bom Retiro ndash CEP 01123-001 11 3228-3709 wwwwpccombr

Big Host Satildeo Paulo Rua Dr Miguel Couto 58 ndash Centro ndash CEP 01008-010 11 3033-4000 wwwbighostcombr

Blanes Satildeo Paulo Rua Andreacute Ampeacutere 153 ndash 9ordm andar ndash Conj 91 CEP 04562-907 (proacutex Av L C Berrini)

11 5506-9677 wwwblanescombr

Commlogik do Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 13797 Bloco II 6ordm andar ndash Morumbi ndash CEP 04794-000

11 5503-1011 wwwcommlogikcombr

Computer Consulting Projeto e Consultoria Ltda

Satildeo Paulo Rua Vergueiro 6455 Cj 06 ndash Alto do Ipiranga ndash CEP 04273-100 11 5062-3927 wwwcomputerconsultingcombr

Consist Consultoria Siste-mas e Representaccedilotildees Ltda

Satildeo Paulo Av das Naccedilotildees Unidas 20727 ndash CEP 04795-100 11 5693-7210 wwwconsistcombr

Domiacutenio Tecnologia Satildeo Paulo Rua das Carnaubeiras 98 ndash Metrocirc Conceiccedilatildeo ndash CEP 04343-080 11 5017-0040 wwwdominiotecnologiacombr

EDS do Brasil Satildeo Paulo Av Pres Juscelino Kubistcheck 1830 Torre 4 - 5ordm andar 11 3707-4100 wwwedscom

Eacutetica Tecnologia Satildeo Paulo Rua Nova York 945 ndash Brooklin ndash CEP04560-002 11 5093-3025 wwweticanet

Getronics ICT Solu-tions and Services

Satildeo Paulo Rua Verbo Divino 1207 ndash CEP 04719-002 11 5187-2700 wwwgetronicscombr

Hewlett-Packard Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 12901 25ordm andar ndash CEP 04578-000 11 5502-5000 wwwhpcombr

IBM Brasil Ltda Satildeo Paulo Rua Tutoacuteia 1157 ndash CEP 04007-900 0800-7074 837 wwwbribmcom

iFractal Satildeo Paulo Rua Fiaccedilatildeo da Sauacutede 145 Conj 66 ndash Sauacutede ndash CEP 04144-020 11 5078-6618 wwwifractalcombr

Integral Satildeo Paulo Rua Dr Gentil Leite Martins 295 2ordm andar Jd Prudecircncia ndash CEP 04648-001

11 5545-2600 wwwintegralcombr

Itautec SA Satildeo Paulo Av Paulista 2028 ndash CEP 01310-200 11 3543-5543 wwwitauteccombr

Kenos Consultoria Satildeo Paulo Av Fagundes Filho 13 Conj 53 ndash CEP 04304-000 11 40821305 wwwkenoscombr

Konsultex Informatica Satildeo Paulo Av Dr Guilherme Dumont Villares 1410 6 andar CEP 05640-003 11 3773-9009 wwwkonsultexcombr

Linux Komputer Informaacutetica Satildeo Paulo Av Dr Lino de Moraes Leme 185 ndash CEP 04360-001 11 5034-4191 wwwkomputercombr

Linux Mall Satildeo Paulo Rua Machado Bittencourt 190 Cj 2087 ndash CEP 04044-001 11 5087-9441 wwwlinuxmallcombr

Livraria Tempo Real Satildeo Paulo Al Santos 1202 ndash Cerqueira Ceacutesar ndash CEP 01418-100 11 3266-2988 wwwtemporealcombr

Locasite Internet Service Satildeo Paulo Av Brigadeiro Luiz Antonio 2482 3ordm andar ndash Centro ndash CEP 01402-000

11 2121-4555 wwwlocasitecombr

Microsiga Satildeo Paulo Av Braz Leme 1631 ndash CEP 02511-000 11 3981-7200 wwwmicrosigacombr

Novatec Editora Ltda Satildeo Paulo Rua Luis Antonio dos Santos 110 ndash Santana ndash CEP 02460-000 11 6979-0071 wwwnovateceditoracombr

Novell Ameacuterica Latina Satildeo Paulo Rua Funchal 418 ndash Vila Oliacutempia 11 3345-3900 wwwnovellcombrasil

Oracle do Brasil Sistemas Ltda Satildeo Paulo Av Alfredo Egiacutedio de Souza Aranha 100 ndash Bloco B ndash 5ordm andar ndash CEP 04726-170

11 5189-3000 wwworaclecombr

Proelbra Tecnolo-gia Eletrocircnica Ltda

Satildeo Paulo Av Rouxinol 1041 Cj 204 2ordm andar Moema ndash CEP 04516-001 11 5052- 8044 wwwproelbracombr

Provider Satildeo Paulo Av Cardoso de Melo 1450 6ordm andar ndash Vila Oliacutempia ndash CEP 04548-005

11 2165-6500 wwwe-providercombr

Red Hat Brasil Satildeo Paulo Av Brigadeiro Faria Lima 3900 Cj 81 8ordm andar Itaim Bibi ndash CEP 04538-132

11 3529-6000 wwwredhatcombr

Samurai Projetos Especiais Satildeo Paulo Rua Baratildeo do Triunfo 550 6ordm andar ndash CEP 04602-002 11 5097-3014 wwwsamuraicombr

SAP Brasil Satildeo Paulo Av das Naccedilotildees Unidas 11541 16ordm andar ndash CEP 04578-000 11 5503-2400 wwwsapcombr

Simples Consultoria Satildeo Paulo Rua Mourato Coelho 299 Cj 02 Pinheiros ndash CEP 05417-010 11 3898-2121 wwwsimplesconsultoriacombr

Smart Solutions Satildeo Paulo Av Jabaquara 2940 cj 56 e 57 11 5052-5958 wwwsmart-teccombr

Snap IT Satildeo Paulo Rua Joatildeo Gomes Junior 131 ndash Jd Bonfiglioli ndash CEP 05299-000 11 3731-8008 wwwsnapitcombr

Stefanini IT Solutions Satildeo Paulo Av Brig Faria Lima 1355 19ordm ndash Pinheiros ndash CEP 01452-919 11 3039-2000 wwwstefaninicombr

Sun Microsystems Satildeo Paulo Rua Alexandre Dumas 2016 ndash CEP 04717-004 11 5187-2100 wwwsuncombr

Sybase Brasil Satildeo Paulo Av Juscelino Kubitschek 510 9ordm andar Itaim Bibi ndash CEP 04543-000 11 3046-7388 wwwsybasecombr

The Source Satildeo Paulo Rua Marquecircs de Abrantes 203 ndash Chaacutecara Tatuapeacute ndash CEP 03060-020

11 6698-5090 wwwthesourcecombr

Unisys Brasil Ltda Satildeo Paulo R Alexandre Dumas 1658 ndash 6ordm 7ordm e 8ordm andares ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 3305-7000 wwwunisyscombr

Utah Satildeo Paulo Av Paulista 925 13ordm andar ndash Cerqueira Ceacutesar ndash CEP 01311-916 11 3145-5888 wwwutahcombr

Visuelles Satildeo Paulo Rua Eng Domicio Diele Pacheco e Silva 585 ndash Interlagos ndash CEP 04455-310

11 5614-1010 wwwvisuellescombr

Webnow Satildeo Paulo Av Naccedilotildees Unidas 12995 10ordm andar Ed Plaza Centenaacuterio ndash Chaacutecara Itaim ndash CEP 04578-000

11 5503-6510 wwwwebnowcombr

WRL Informaacutetica Ltda Satildeo Paulo Rua Santa Ifigecircnia 211213 Box 02ndash Centro ndash CEP 01207-001 11 3362-1334 wwwwrlcombr

Systech Taquaritinga Rua Satildeo Joseacute 1126 ndash Centro - Caixa Postal 71 ndash CEP 15900-000 16 3252-7308 wwwsystech-ltdcombr

2MI Tecnologia e Informaccedilatildeo Embu Rua Joseacute Bonifaacutecio 55 ndash Jd Independecircncia ndash SP CEP 06826-080 11 4203-3937 www2micombr

Linuxlocal

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

80

SERVICcedil

OS

httpwwwlinuxmagazinecombr

Nerdson ndash Os quadrinhos mensais da Linux Magazine

Calendaacuterio de eventos

Evento Data Local Website

Campus Party 15 a 25 de janeiro Satildeo Paulo SP wwwcampus-partycombr

Bossa Conference 08 a 11 de marccediloPorto de Galinhas PE

wwwbossaconferenceorg

FISL 24 a 27 de junho Porto Alegre RS wwwfislsoftwarelivreorg

Interop 02 e 03 de setembro Satildeo Paulo SP wwwinteropsaopaulocombr

Futurecom 2009 13 a 16 de outubro Satildeo Paulo SP wwwfuturecom2009combr

Iacutendice de anunciantes

Empresa Paacuteg

Campus Party 02

Plusserver 07

Insigne 09

UOL 11

Xandros 13

Impacta 15

Linux Pro 33

Pocket Pro 43

Linuz Technical Review 71

Site LNM 77

Guia de TI 81

Bull 83

Ubiquiti 84

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

82 httpwwwlinuxmagazinecombr

Na Linux Magazine 51

PREVIE

W

Na EasyLinux 14 Monitores gigantes Os monitores LCD de 19 polegadas jaacute tecircm preccedilos bem melhores que haacute um ano Seraacute que jaacute chegou o momento de vocecirc comprar aquele monitor cine-matograacutefi co Quais satildeo as vantagens e desvantagens

do LCD em relaccedilatildeo aos antigos monitores de tubo Ateacute onde 21 polegadas va-lem mais que 19 Na Easy Linux 14 vamos comparar marcas modelos e tecno-logias de monitores agrave ven-da no Brasil para orientar suas compras

A melhor parte de todos os sistemas Empresas como Apple e Micro-soft investem pesado em design para deixarem seus sistemas mais atraentes Como resultado tanto o Mac OS quanto o Windows Vista tecircm forte apelo visual Poreacutem engana-se quem pensa que eacute impossiacutevel alcanccedilar um grau de beleza semelhante no Linux Na Easy Linux 14 vamos mostrar o caminho das pedras para deixar seu Linux com a cara do Mac OS X do Vista e do Windows XP seja por pura diversatildeo ou para facilitar o uso do Linux por quem jaacute estaacute habituado a esses sistemas e tem difi culdade de adaptaccedilatildeo ao pinguumlim

DESTAQUE

Seguranccedila com VoIP Verdadeiros administra-dores pensam em segu-ranccedila o tempo inteiro Mesmo que vocecirc seja um usuaacuterio comum eacute importante saber o que os invasores podem fazer Serviccedilos que costumavam ser seguros se tornam brechas de seguranccedila a menos que vocecirc se mantenha atualizado com essas questotildees

Na Linux Magazine 51 vamos examinar algumas estrateacutegias de seguranccedila recomendadas por especialistas Vocecirc jamais teraacute a rede perfeita ou sequer as ferramentas perfeitas ndash o mundo da seguranccedila de redes muda a todo tempo ndash e como eacute impos-siacutevel descartar defi nitivamente os problemas eacute melhor man-ter-se informado

TUTORIAL

Defi cientes visuais O Linux possui muitos ambientes desktop be-liacutessimos incluindo cubos rotativos e janelas que balanccedilam e queimam Poreacutem considere por exemplo uma aacuterea de trabalho com iacutecones cuidadosamente organizados vocecirc conseguiria utilizaacute-la com o monitor desligado

Apesar das vaacuterias ofertas de softwares pro-prietaacuterios cariacutessimos para leitura da tela e teclados sofi sticados que realmente possibi-litam o uso do computador por defi cientes visuais a maioria das ferramentas e extensotildees necessaacuterias para usuaacuterios cegos ou com visatildeo prejudicada aleacutem daqueles com difi culdades motoras ou mentais jaacute estatildeo presentes nos re-positoacuterios da maioria das distribuiccedilotildees Linux Veja como o projeto Adriane une todos esses recursos num uacutenico sistema desktop destinado a defi cientes visuais

os invasores podem fazer

os invasores podem fazer

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRAacuteTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA AacuteREA p36

44 0708

R$ 1390 euro 750

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWWLINUXMAGAZINECOMBR

CASE ALFRESCO p26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p28Iniciada em Porto Alegre a temporada de seminaacuterios Linux Park de 2008

CEZAR TAURION p34O Coacutedigo Aberto como incentivo agrave inovaccedilatildeo

GOVERNANCcedilA COM

raquo O que dizem os profissionais certificados p24

raquo Cobit CMMI ITIL Quais as melhores praacuteticas p36

raquo ITIL na praacutetica p39

raquo Novidades do ITIL v3 p44

SEGURANCcedilA DNSSEC p69

Com o DNSSEC a resoluccedilatildeo de nomes fica protegida de ataques Mas seupreccedilo vale a pena

REDES IPV6 p64

Conheccedila as vantagens da nova versatildeo do Internet Protocol e veja por queeacute difiacutecil adotaacute-la

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo Relatoacuterios do Squid com o SARG p60

raquo Java Ruby e Rails conheccedila o JRuby on Rails p74

raquo Benchmarks do GCC 43 p58

raquo Becape de bancos de dados com a Libferris p46

raquo LPI niacutevel 2 Servidores NIS e DHCP p52

A REVISTA DO PROFISSIONAL DE TI

AS REDES ATUAIS SAtildeO AMBIENTES HETEROGEcircNEOSO BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p27

raquo Conecte o Linux agrave VPN do Windows p28

raquo MS AD e clientes Linux a soluccedilatildeo definitiva p34

raquo Linux como servidor RDP p40

raquo Agendamento de tarefas livre tambeacutem no Windows p44

Interoperabilidade

Linu

x M

agazin

e

50012009

INTEROPERABILIDADE

VPN

AD

RDP AGEN

DADOR DE TAREFAS BIOM

ETRIA OPEN

ID M

IDS GOOGLE CHARTS

HA POSTGRESQL TALEN

D

WWWLINUXMAGAZINECOMBR

50 Janeiro 2009

SANEADA PELO LINUX P22 Linux na Companhia de Aacuteguas do Maranhatildeo

LEI DOS CALL CENTERS P26 Edgar Silva mostra como a nova lei requer TI

BOCA NO TROMBONE P25 Maddog explica como fazer sua parte nas poliacuteticas puacuteblicas

SEGURANCcedilA BIOMETRIA p72

A autenticaccedilatildeo por impressatildeo digital jaacute eacute realidade Aprenda a implementaacute-la com um especialista

REDES OPENID p68

Uma uacutenica identidade para vaacuterios serviccedilos na Web Mas como fica a seguranccedila

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo MIDs seraacute que a moda pega p17

raquo Faccedila graacuteficos pelo Google p50

raquo HA e PostgreSQL uma oacutetima mistura p54

raquo ETL muito competente com o Talend p62

SUPORTANDO O VISTA

50 0109

R$ 1490 euro 750

9 771806 942009

0 0 0 5 0

copy Linux New Media do Brasil Editora Ltda

Page 3: Interoperabilidade SUPORTANDO O VISTA

3

Expediente editorialDiretor Geral Rafael Peregrino da Silva rperegrinolinuxmagazinecombr

Editor Pablo Hess phesslinuxmagazinecombr

Revisora Aileen Otomi Nakamura anakamuralinuxmagazinecombr

Editora de Arte Paola Viveiros pviveiroslinuxmagazinecombr

Centros de Competecircncia Centro de Competecircncia em Software Oliver Frommel ofrommellinuxnewmediade Kristian Kiszligling kkisslinglinuxnewmediade Peter Kreussel pkreussellinuxnewmediade Marcel Hilzinger hilzingerlinuxnewmediade Centro de Competecircncia em Redes e Seguranccedila Achim Leitner aleitnerlinuxnewmediade Jens-Christoph B jbrendellinuxnewmediade Hans-Georg Eszliger hgesserlinuxnewmediade Thomas Leichtenstern tleichtensternlinuxnewmediade Max Werner mwernerlinuxnewmediade Markus Feilner mfeilnerlinuxnewmediade Nils Magnus nmagnuslinuxnewmediade

Anuacutencios Rafael Peregrino da Silva (Brasil) anuncioslinuxmagazinecombr Tel +55 (0)11 4082 1300 Fax +55 (0)11 4082 1302

Petra Jaser (Alemanha Aacuteustria e Suiacuteccedila) anzeigenlinuxnewmediade

Penny Wilby (Reino Unido e Irlanda) pwilbylinux-magazinecom

Amy Phalen (Estados Unidos) aphalenlinuxmagazinecom

Hubert Wiest (Outros paiacuteses) hwiestlinuxnewmediade

Gerente de Circulaccedilatildeo Claudio Bazzoli cbazzolilinuxmagazinecombr

Na Internet wwwlinuxmagazinecombr ndash Brasil wwwlinux-magazinde ndash Alemanha wwwlinux-magazinecom ndash Portal Mundial wwwlinuxmagazinecomau ndash Austraacutelia wwwlinux-magazineca ndash Canadaacute wwwlinux-magazinees ndash Espanha wwwlinux-magazinepl ndash Polocircnia wwwlinux-magazinecouk ndash Reino Unido wwwlinux-magazinro ndash Romecircnia

Apesar de todos os cuidados possiacuteveis terem sido tomados durante a produccedilatildeo desta revista a editora natildeo eacute responsaacutevel por eventuais imprecisotildees nela contidas ou por consequumlecircncias que advenham de seu uso A utilizaccedilatildeo de qualquer material da revista ocorre por conta e risco do leitor

Nenhum material pode ser reproduzido em qualquer meio em par-te ou no todo sem permissatildeo expressa da editora Assume-se que qualquer correspondecircncia recebida tal como cartas emails faxes fotografi as artigos e desenhos sejam fornecidos para publicaccedilatildeo ou licenciamento a terceiros de forma mundial natildeo-exclusiva pela Linux New Media do Brasil a menos que explicitamente indicado

Linux eacute uma marca registrada de Linus Torvalds

Linux Magazine eacute publicada mensalmente por

Linux New Media do Brasil Editora Ltda Av Fagundes Filho 134 Conj 53 ndash Sauacutede 04304-000 ndash Satildeo Paulo ndash SP ndash Brasil Tel +55 (0)11 4082 1300 ndash Fax +55 (0)11 4082 1302

Direitos Autorais e Marcas Registradas copy 2004 - 2008Linux New Media do Brasil Editora LtdaImpressatildeo e Acabamento ParmaDistribuiacuteda em todo o paiacutes pela Dinap SA Distribuidora Nacional de Publicaccedilotildees Satildeo Paulo

Atendimento Assinante

wwwlinuxnewmediacombratendimentoSatildeo Paulo +55 (0)11 3512 9460Rio de Janeiro +55 (0)21 3512 0888 Belo Horizonte +55 (0)31 3516 1280

ISSN 1806-9428 Impresso no Brasil

Prezados leitores Muitos de vocecircs provavelmente jaacute tiveram a experiecircncia de tentar ex-plicar a outras pessoas o conceito de Software Livre Recentemente tomei conhecimento da iniciativa da Fundaccedilatildeo Mozilla de adotar um novo nome ndash software natural ndash para designar os softwares produ-zidos por ela e creio que essa pequena diferenccedila pode facilitar signi-fi cativamente a compreensatildeo dos princiacutepios do Software Livre pelo puacuteblico em geral

Para explicar a algueacutem do ramo teacutecnico os preceitos do Software Livre o maior desafi o eacute esclarecer como uma empresa pode ganhar dinheiro sem vender seu software e isso muitas vezes se mostra difiacutecil o sufi ciente Para interlocutores natildeo teacutecnicos eacute difiacutecil imaginar como liberdade pode ser associada a um programa pois ldquosoftwarerdquo e ldquolivrerdquo para essas pessoas se relacionam tanto quanto ldquopedrardquo e ldquosatisfeitardquo por exemplo

Quando olho para essa tarefa por vezes tatildeo complicada lamento a infelicidade de quem tenta explicar o termo em inglecircs ndash ldquofree softwarerdquo ndash que traz agrave mente o sentido de gratuidade em vez de liberdade e por isso exige a complementaccedilatildeo ldquofree as in freedomrdquo Estranhamente jaacute ouvi de muitos executivos que pareciam entender o conceito de software livre frases como ldquoaquele software eacute freerdquo o que introduz um novo elemento de duacutevida para quem escuta trata-se de liberdade ou gratuidade

Com o novo ldquosoftware naturalrdquo da Fundaccedilatildeo Mozilla a compreensatildeo do conceito por qualquer pessoa eacute muito mais praacutetica O termo ldquonaturalrdquo traz com facilidade a ideacuteia de uma fruta Para colhermos uma laranja precisamos plantar uma laranjeira antes Embora colher a laranja ateacute seja graacutetis ndash assim como o software natural ndash isso natildeo signifi ca que o processo todo teve custo zero No miacutenimo levou tempo para se realizar ainda que natildeo se tenha gasto dinheiro com adubo sementes aacutegua ou manutenccedilatildeo da terra Alternativamente a laranja ndash ainda natural ndash pode ser comprada no mercado ou feira mais proacuteximos

ldquoNaturalrdquo tambeacutem possui conotaccedilatildeo positiva alimentos naturais fazem bem agrave sauacutede e medicamentos naturais tendem a ter menos efeitos colaterais

Quanto mais penso no adjetivo ldquonaturalrdquo para o software mais me con-venccedilo da escolha acertada da Fundaccedilatildeo Mozilla Minha lista de argumen-tos em favor do novo nome eacute infi ndaacutevel

A quem questiona a relevacircncia de um aspecto aparentemente tatildeo inoacutecuo quanto um nome lembro que CIOs satildeo pessoas assim como usuaacuterios fi nais e todos estamos sujeitos agravequele primeiriacutessimo julgamento por vezes completamente inconsciente de qualquer objeto pessoa ou fenocircmeno com base em seu nome Naturalmente

Pablo HessEditor

ISSN 1806-9428 Impresso no BrasilISSN 1806-9428 Impresso no Brasil

Software natural EDITORIA

L

copy Linux New Media do Brasil Editora Ltda

4 httpwwwlinuxmagazinecombr

CAPAIntegraccedilatildeo transparente 27

Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo

que vocecirc queira viver em um mundo de coacutedigo aberto

ele ainda estaacute cheio de Windows A ediccedilatildeo deste

mecircs traz um apanhado de estrateacutegias para facilitar o

conviacutevio com o sistema operacional da Microsoft

Rede fechada 28

Clientes Linux eventualmente precisam de uma matildeozinha

para se conectar a servidores VPN do Windows

Na ativa 34

O Likewise Open oferece integraccedilatildeo faacutecil a ambientes

Active Directory Mostramos como instalar e configurar o

sistema de autenticaccedilatildeo amigaacutevel para administradores

O manda-chuva do terminal 40

O xrdp ajuda os seus clientes de terminal

Windows a se conectarem ao Linux

Muito aleacutem do Cron 44

Planejar e agendar tarefas computacionais pode exigir muito

trabalho principalmente se abranger muacuteltiplas maacutequinas

Conheccedila uma ferramenta que facilita muito essa aacuterea

IacuteND

ICE

copy Linux New Media do Brasil Editora Ltda

5Linux Magazine 50 | Janeiro de 2009

| IacuteNDICELinux Magazine 50

COLUNASKlaus Knopper 08

Charly Kuumlhnast 10

Zack Brown 12

Inseguranccedila 14

Augusto Campos 17

NOTIacuteCIASGeral 18 Xen ganha recursos e promete integraccedilatildeo

LPI lanccedila provas 303 no Brasil

Lanccedilado o Fedora 10

Alta disponibilidade

Linux versus OpenSolaris e FreeBSD

Google Android no Openmoko

CORPORATENotiacutecias 20 ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

MS Windows eacute mais econocircmico

Sun lanccedila MySQL 51

VMware adquire Tungsten Graphics

Google e Red Hat fi rmam parceria

Insigne jaacute planeja 2012

Mandriva demite dois desenvolvedores

Entrevista CAEMA 22

Coluna Cezar Taurion 24

Coluna Jon ldquomaddogrdquo Hall 25

Coluna Edgar Silva 26

TUTORIALGraacutefi cos via Web 50 A API do Google Chart permite desenhar graacutefi cos

planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simples

Banco cheio mas disponiacutevel 54 O PostgreSQL natildeo possui embutido um mecanismo

para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia

ANAacuteLISE O talento do Talend 62 Quem procura uma soluccedilatildeo ETL para Business Intelligence

natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda

REDESIdentidade aberta mas segura 68 O OpenID oferece um padratildeo aberto para

login em websites fechados

SEGURANCcedilAAutenticaccedilatildeo biomeacutetrica 72

A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e confi gurar esse recurso de seguranccedila

SERVICcedilOSEditorial 03Emails 06Linuxlocal 78Eventos 80Iacutendice de anunciantes 80Preview 82

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

copy Linux New Media do Brasil Editora Ltda

6 httpwwwlinuxmagazinecombr

CA

RTA

S

sanj

a gj

ener

o ndash

ww

ws

xch

u

Emails para o editor

Permissatildeo de EscritaSe vocecirc tem duacutevidas sobre o mundo Linux criacuteticas ou sugestotildees que possam ajudar a melhorar a nossa revista escreva para o seguinte endereccedilo cartaslinuxmagazinecombr Devido ao grande volume de correspondecircncia torna-se impossiacutevel responder a todas as duacutevidas sobre aplicativos confi guraccedilotildees e problemas de hardware que chegam agrave Redaccedilatildeo mas garantimos que elas satildeo lidas e analisadas As mais interessantes satildeo publicadas nesta seccedilatildeo

Gestatildeo empresarial Primeiramente gostaria de parabenizaacute-los pela revista que possui oacutetimo conteuacutedo poucas propagandas e eacute muito objetiva em suas mateacuterias

Jaacute estive pesquisando poreacutem eacute muito difiacutecil en-contrar sistemas para gerenciamento de empresas como contas a pagar a receber controle de estoque etc Este eacute acredito eu um dos maiores problemas para conseguirmos migrar os nossos clientes para a plataforma Linux

Gostaria de pedir agrave Linux Magazine que se pos-siacutevel indicasse algumas opccedilotildees de softwares (livres ou natildeo) para gestatildeo de empresas para que pudeacutesse-mos analisaacute-los

Ivan Moretto Leme SP

Resposta Prezado Ivan muito obrigado pelos elogios Eacute sempre muito gratifi cante receber o reconhecimento por parte de nossos leitores Mas por favor natildeo hesite em nos informar tambeacutem o que poderia ser melhorado na Li-nux Magazine

Sobre a sua questatildeo jaacute publicamos duas ediccedilotildees (39 e 30) sobre esses sistemas cha-mados ERP (do inglecircs ldquoEnterprise Resour-ce Planningrdquo ndash Planejamento de Recursos da Empresa)

Como vocecirc pode conferir na listagem das mateacuterias de capa dessas ediccedilotildees haacute diversos sistemas ERP (proprietaacuterios ou de coacutedigo aberto) para Linux com destaque para Adem-piere Compiere e Openbravo ndash por sinal todos os trecircs tecircm o coacutedigo aberto

copy Linux New Media do Brasil Editora Ltda

7

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

8 httpwwwlinuxmagazinecombr

Pergunte ao Klaus

Klaus KnopperO professor Klaus responde as mais diversas duacutevidas dos leitores

Espaccedilo na telaHaacute uns dois anos eu comprei um PC bem baacutesico com chip graacutefico onboard Pluguei nele um moni-tor LCD de 19 polegadas (1280x1024) mas troquei-o por um de 22 polegadas (1680x1050) um ano de-pois No Centro de Controle do KDE selecionei a resoluccedilatildeo de 1680x1050 mas agora ele exibe e usa 1680x1200

Como meu monitor natildeo suporta essa resoluccedilatildeo eacute como se meu monitor estivesse ldquoflutuandordquo sobre a aacuterea de trabalho quando chego o mouse perto da base do monitor ele desliza a imagem para baixo mostrando a barra inferior do KDE e escondendo os 150 pixels laacute de cima

Eu gosto desse comportamento pois os progra-mas costumam ter seus menus na parte de cima da janela entatildeo eu natildeo preciso descer para a base com frequumlecircncia Aleacutem disso a base se torna um bom lo-cal para eu jogar janelas que natildeo quero visualizar no momento

Minha duacutevida eacute se essa nova configuraccedilatildeo eacute causa-da por um problema de driver ou se eu encontrei um recurso do Xorg que eacute comum mas pouco usado

Testei recentemente o Fedora 8 e ele reconhece automaticamente o tamanho do monitor Agraves vezes eu sinto falta dos 150 pixels de altura que sobram para baixo Existe alguma forma de recuperaacute-los

RespostaOs ldquo150 pixels ocultosrdquo de fato satildeo causados por

um recurso do servidor X Se o tamanho da tela for configurado como 1680x1050 o Xorg entraraacute no modo de deslizamento (scrolling mode)

Novas versotildees do Xorg substituem esse recurso pela alteraccedilatildeo da resoluccedilatildeo da aacuterea de trabalho usando a extensatildeo randr A vantagem eacute que a aacuterea de trabalho ajusta seu tamanho automaticamente ao se alterar a resoluccedilatildeo

Aleacutem disso alternar entre diferentes dispositivos de saiacuteda eacute mais faacutecil (por exemplo conectar um projetor com uma resoluccedilatildeo diferente ou usar no monitor interno a resoluccedilatildeo do externo) O Xorg carrega automaticamente a extensatildeo randr e depois

as configuraccedilotildees de Modes no arquivo etcX11xorgconf satildeo ignoradas em favor do que o monitor especifica como resoluccedilatildeo favorita

Eacute possiacutevel fazer o Xorg alterar sua resoluccedilatildeo dinami-camente usando o krandtray (no KDE) ou o comando xrandr (na linha de comando) Por exemplo

xrandr --output LVDS --auto

tentaraacute alinhar automaticamente a resoluccedilatildeo do servidor X agrave do monitor enquanto

xrandr --output LVDS --mode 800x600

ou

xrandr --output LVDS -s 800x600

usaraacute o modo ou resoluccedilatildeo para o tamanho de 800x600 especificado no comando o que tambeacutem faz certos ambientes desktop adotarem um tama-nho de tela diferente

xrandr --output VGA --auto

deve ativar a porta VGA externa de um notebook e tambeacutem fazer o desktop adotar a resoluccedilatildeo preferida do monitor ou projetor ligado a essa porta

No seu caso para retornar ao comportamento original com 150 pixels ldquosobrandordquo (desativando o randr no Xorg) basta adicionar a seguinte seccedilatildeo ao seu arquivo etcX11xorgconf

Section ldquoServerFlagsrdquo Option ldquoRandRrdquo ldquofalserdquoEndSection

CO

LU

NA

Escreva para o KlausEnvie suas perguntas em portuguecircs ou inglecircs para klauslinuxmagazinecombr e tire todas as suas duacutevidas

Linux Magazine 50 | Janeiro de 2009

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

9

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

10 httpwwwlinuxmagazinecombr

Siege

Charly Kuumlhnast O cerco a Troacuteia durou dez anos e terminou somente quanto Ulisses introduziu um cavalo de madeira dentro da cidade Charly tambeacutem estaacute planejando um cerco e o alvo eacute seu proacuteprio servidor web Naturalmente ele natildeo tem dez anos para completar essa tarefa nem Ulisses como parte de sua equipe

Estava checando meu servidor Apache e me lembrei do mito do monstro marinho Cila que deu cabo de nada menos que seis ho-

mens de Ulisses voltando de Troacuteia a caminho de casa O moacutedulo de multi-processamento ndash MPM worker ndash do meu servidor tambeacutem eacute capaz de devo-rar muacuteltiplas requisiccedilotildees numa talagada soacute mas ateacute onde ele aguumlenta Quantas threads eu preciso con-fi gurar para conseguir que ele entregue o maacuteximo de desempenho E a partir de quantas threads isso se torna um desperdiacutecio

Teste de carga Usando a ferramenta de ataque Siege [1] vou tentar responder essas questotildees por meio de um teste de car-ga O programa contempla dois modos de ataque o primeiro simula o comportamento de um ser humano navegando na Internet o que explica o intervalo de trecircs segundos entre cada dois acessos No segundo conhecido como modo benchmark esses intervalos satildeo eliminados e a ferramenta faz solicitaccedilotildees ao servidor ininterruptamente Para fazer o servidor ldquosuarrdquo o Sie-ge dispotildee de um exeacutercito de usuaacuterios de contingente confi guraacutevel ndash dez por padratildeo mas eacute possiacutevel usar o paracircmetro a seguir para aumentar o tamanho da tro-pa ateacute que o servidor web peccedila misericoacuterdia e nossos agressores consumam todos os recursos do sistema

--concurrent=ltnuacutemerogt

Como entrar em Troacuteia Como o Siege sabe qual servidor atacar Haacute duas opccedilotildees para isso o paracircmetro

--url=rdquohttpltmeusitecomgtltindexhtmlgtrdquo permite que vocecirc forneccedila a URL que o programa solicitaraacute repetidamente Jaacute a opccedilatildeo

--file=rdquohomecharlysiege-urlstxtrdquo

eacute mais interessante pois permite a criaccedilatildeo de uma sequumlecircncia arbitrariamente longa de endereccedilos web para o Siege atacar O parametro --reps=ltnuacutemerogt permite especifi car quantas vezes o programa deveraacute repetir o teste de carga

Tambeacutem eacute possiacutevel usar o paracircmetro --internet para dizer ao Siege para natildeo realizar as requisiccedilotildees na ordem especifi cada no arquivo siege-urlstxt mas fazecirc-lo de maneira aleatoacuteria o que eacute muito mais proacuteximo da realidade

Fim da batalha Para evitar que o teste de carga se estenda indefi nida-mente eacute prudente utilizar o paracircmetro --time para limitar seu tempo de execuccedilatildeo O ataque cessaraacute ao fi nal do tempo indicado mesmo que a quantidade de execuccedilotildees especifi cada pelo paracircmetro --rep ainda natildeo tenha sido atingida

Apoacutes sua execuccedilatildeo ter sido completada o Siege mostra um resumo dos resultados encontrados (veja a fi gura 1 )

CO

LU

NA

Mais informaccedilotildees

[1] Siege httpwwwjoedogorgJoeDogSiege

Figura 1 Apoacutes a batalha contra o servidor web o Siege apresenta os resultados

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

11

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

Gab

arit

o

Soluccedilatildeo faacutecil e descomplicada para empresas de qualquer tamanho colocarem seus produtos agrave venda na internet

R$4900

por mecircs

a partir de

senhorlojasimplesindd 1 121008 110411 AM

copy Linux New Media do Brasil Editora Ltda

12 httpwwwlinuxmagazinecombr

Crocircnicas do kernel

Zack BrownOs acontecimentos mais recentes na histoacuteria do kernel

Erradicaccedilatildeo do Big LockFrederic Weisbecker criou o Big Kernel Lock Tracer (rastreador do Big Lock ndash grande bloqueio ndash do ker-nel) que rastreia os tempos de atraso causados pelo Big Kernel Lock ou BKL Isso pode ajudar a iden-tificar aacutereas especiacuteficas nas quais o BKL deveria ser eliminado primeiro Linus Torvalds sugeriu livrar-se do BKL e substituiacute-lo por estruturas de bloqueio mais simples Entretanto nem todas as situaccedilotildees podem ser resolvidas com um bloqueio geneacuterico e o coacute-digo de bloqueio estaacute espalhado por todo o kernel o que dificulta qualquer tipo de esforccedilo conjunto Uma tentativa no momento eacute ldquoempurrarrdquo todo o

coacutedigo do BKL para sua proacutepria parte da aacutervore do kernel para centralizaacute-lo de forma a trataacute-lo de uma soacute vez Os participantes de todo o espectro do desen-volvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho A ferramenta de Frederic pode ajudar os desenvolvedores a concentrar sua atenccedilatildeo em aacutereas que beneficiariam a maioria

Redefinindo Load AverageSena Senerviratne e David Levy estatildeo preparando algumas mudanccedilas para o caacutelculo do valor de load average (carga meacutedia) no Linux Sua ideacuteia eacute em vez de calcular apenas um uacutenico nuacutemero para re-presentar toda a carga meacutedia do sistema fornecer muacuteltiplas estatiacutesticas Por exemplo eles querem separar do resto do sistema a carga de IO de disco

para visualizarem esse dado independentemente Aleacutem disso desejam ativar o caacutelculo de load avera-ge por usuaacuterio para que cada usuaacuterio visualize os efeitos sobre o seu sistema Arjan van de Ven pediu encarecidamente que eles apenas acrescentem esta-tiacutesticas sem alterar o comportamento dos nuacutemeros que o sistema jaacute produz

MantenedoresTheodore (Ted) Y Tsrsquoo atualizou o arquivo MAINTAINERS listando-se como mantenedor do sistema de arquivos Ext4 no lugar de Andrew Morton e Stephen Tweedie embora isso natildeo represente uma mudanccedila real de man-tenedor De acordo com Ted a entrada originalmente foi simplesmente copiada daquela do Ext3 e jamais foi precisa o que seu patch agora corrigiu

Um detalhe interessante eacute que embora Andreas Dilger natildeo esteja incluiacutedo como co-mantenedor no patch de Ted a lista de emails para submissatildeo de patches relatoacuterios de bug etc inclui o email de Andreas junto com o de Ted O email de Andreas tambeacutem estaacute listado junto com o de Andrew e Ste-phen na entrada original equivocada Geralmente isso significaria que ele dedica muito trabalho ao projeto e pode atuar como ldquotenenterdquo de Ted da mesma forma que Linus Torvalds confia em seus ldquotenentesrdquo para facilitar seu trabalho de inclusatildeo de coacutedigos no kernel

Mike Frysinger postou um patch para o arquivo MAINTAINERS listando a si mesmo e Subrata Modak como co-mantenedores do LTP (Linux Test Project) Esse projeto patrocinado pela SGI e IBM oferece um conjunto de aproximadamente 3 mil testes para avaliar a confiabilidade robustez e estabilidade do sistema operacional Linux

CO

LU

NA

Sobre o autorA lista de discussatildeo Linux-kernel eacute o nuacutecleo das atividades de desenvolvimento do ker-nel Zack Brown consegue se perder nesse oceano de mensagens e extrair significado Sua newsletter Kernel Traffic esteve em ativi-dade de 1999 a 2005

Os participantes de todo o espectro do desenvolvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho

copy Linux New Media do Brasil Editora Ltda

13

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

O Scalix eacute uma soluccedilatildeo completa para mensagens que suporta muacuteltiplos servidores e atende agraves necessidades de sua empresa Natildeo importa otamanho dela Baseia-se em uma Plataforma Colaborativa que serve de fundaccedilatildeo para todas as ediccedilotildees desse produto

Maiores informaccedilotildees wwwsentegritycombr EUA 646-747-7648 | Satildeo Paulo 11 5105-9037 | Rio de Janeiro 21 2526-7262

Reduza os custos de comunicaccedilatildeo usando Scalix

copy Linux New Media do Brasil Editora Ltda

14 httpwwwlinuxmagazinecombr

A quarta geraccedilatildeo dos rootkits se baseia no hardware e eacute quase indetectaacutevel

InseguranccedilaAnalisamos a histoacuteria dos rootkits incluindo a sua mais nova encarnaccedilatildeo o DR RootKitpor Kurt Seifried

Originalmente eu pretendia escrever um artigo sobre o estado da arte dos rootkits

e as ferramentas que poderiam ser usadas para detectaacute-los Foi aiacute que acabei topando com um problemi-nha os rootkits mais avanccedilados e modernos tendem a ser realmente bons em evitar sua detecccedilatildeo Com ldquorealmente bonsrdquo quero dizer que seraacute improvaacutevel para qualquer um detectaacute-los a menos que se lance matildeo de teacutecnicas como a anaacutelise detalhada de uma coacutepia (dump) da memoacuteria por exemplo comparan-do-se a partir daiacute a imagem real do kernel carregada na memoacuteria com aquela que seria de se esperar

Liccedilotildees histoacutericasRootkits tradicionais satildeo programas simples geralmente rodando como um serviccedilo isolado e fornecendo aces-so a uma backdoor Eles satildeo relativa-mente faacuteceis de detectar bastando para isso procurar novos processos ou programas recentemente instalados Isso levou os agressores a comeccedilar a sobrescrever os programas executaacuteveis do sistema Via de regra esses pro-gramas satildeo substituiacutedos por versotildees modificadas pelo agressor tais como versotildees do OpenSSH com nome e senha do administrador embutidas diretamente no programa com o intuito de escalar privileacutegios e obter direitos de root no sistema O adven-to de ferramentas como o Tripwire e o uso cada vez mais comum de gerenciadores de pacotes com a ca-

pacidade de verificar a integridade dos arquivos instalados no sistema ndash tais como rpm e dpkg ndash acabou por facilitar a detecccedilatildeo desse tipo de rootkit tambeacutem [1]

Rootkits para o kernelNatildeo demorou muito para que os agressores percebessem que meacuteto-dos mais sofisticados de ocultaccedilatildeo e subversatildeo eram necessaacuterios para controlar um sistema o que levou agrave criaccedilatildeo de rootkits para o kernel Assim ao modificar a tabela de ca-madas do sistema um agressor pode evitar facilmente a sua detecccedilatildeo pois em poucas palavras ele controla o que eacute exibido e como seus programas estatildeo sendo executados

Tradicionalmente um agressor usa um dos dois meacutetodos para modificar o kernel do sistema ou ele carrega um moacutedulo com coacutedigo malicioso no kernel (como o heroin por exemplo) ou modifica o kernel carregado na memoacuteria escrevendo no dispositivo especial devkmem (como o SucKIT por exemplo) A desvantagem dessa teacutecnica eacute que como esses ataques estatildeo carregados apenas na memoacuteria do sistema normalmente natildeo sobre-vivem a uma reinicializaccedilatildeo

Por mais difiacutecil que possa parecer esses rootkits podem ser detectados comparando-se a tabela atual de cha-madas do sistema com a que seria de se esperar originalmente (isto eacute examinando-se o arquivo Systemmap) Coacutepias da memoacuteria do sistema po-dem ser feitas e usadas para verificar

se o kernel carregado na memoacuteria estaacute intacto

Quando chegam a esse niacutevel o que vocecirc acha que os agressores fazem Vatildeo mais fundo ainda claro

Hardware e virtualizaccedilatildeoLanccedilado em 2006 durante a Black Hat Conference em Las Vegas o primeiro rootkit desenvolvido para comprometer diretamente o hardware foi chamado de Blue Pill [2] Os processadores mo-dernos da AMD e da Intel dispotildeem de uma gama de recursos para suportar virtualizaccedilatildeo de sistemas operacionais E como natildeo eacute mais necessaacuterio que esses rootkits modifiquem o que quer que seja no sistema operacional para funcionar eles satildeo muito mais difiacuteceis de detec-tar de modo que somente verificar a integridade da tabela de chamadas do sistema natildeo vai funcionar Contudo esses rootkits modificam a tabela de descritores de interrupccedilatildeo (IDT na sigla em inglecircs) que eacute mantida em um dos registradores do processador (o IDTR) [3]

Como passam a existir dois IDTRs no sistema comprometido ndash um real e outro falso que eacute apresentado ao sistema operacional ndash este uacuteltimo vai ocupar uma posiccedilatildeo de memoacuteria diferente da de costume Felizmente a instruccedilatildeo privilegiada Store Inter-rupt Descriptor Table (SIDT) pode ser executada a partir do espaccedilo de usuaacuterio do sistema retornando de forma confiaacutevel o conteuacutedo do IDTR

CO

LU

NA

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

15Linux Magazine 50 | Janeiro de 2009

disponiacutevel para o sistema operacional (o que natildeo serve para muita coisa pois o sistema jaacute foi comprometi-do) bem como ndash e o que eacute mais importante ndash a posiccedilatildeo da memoacuteria em que o IDTR se encontra Pare-ce que chegamos a um beco sem saiacuteda os agressores criaram novos meacutetodos para esconder os rootkits e os defensores encontraram meios para detectaacute-los

A nova geraccedilatildeo de rootkitsLanccedilados em setembro de 2008 pela Immunity Inc o DR RootKit [4] im-plementa ldquoganchosrdquo (hooks) para as chamadas de sistema no kernel Linux 26 sem modificar nem a tabela de chamadas do sistema nem a tabela de descritores de interrupccedilatildeo Para fazer isso ele introduz breakpoints de hardware no manipulador de chamadas do sistema Isso corres-

ponde agrave inclusatildeo de um ldquovigiardquo na memoacuteria da tabela de chamadas do sistema especificamente observando a entrada __NR_syscall usada para exportar nuacutemeros de chamadas do sistema Basicamente o rookit se comporta como uma ferramenta de depuraccedilatildeo de programas espe-rando que determinadas chamadas do sistema sejam executadas e mo-

dificando-as quando isso acontece Os ganchos do DR RootKit estatildeo listados na tabela 1

O DR RootKit dispotildee de recursos tais como ocultaccedilatildeo de processos e prevenccedilatildeo do teacutermino de execuccedilatildeo de processos ocultos (o que significa que um agressor pode executar pro-gramas ocultos e vocecirc natildeo tem como terminaacute-los com o comando kill

Tabela 1 Chamadas do sistema

getdents64 Lecirc entradas de diretoacuterio

getdents Lecirc entradas de diretoacuterio

chdir Muda o diretoacuterio de trabalho

open Abre um arquivo ou dispositivo

execve Executa um programa

socketcall Chamadas de sistema via socket

fork Cria um processo filho

exit Encerra o processo atual

kill Envia um sinal a um processo

getpriority Obteacutem prioridade de escalonamento para um programa

| COLUNAInseguranccedila

copy Linux New Media do Brasil Editora Ltda

16 httpwwwlinuxmagazinecombr

Mais informaccedilotildees

[1] Amir Alsbih ldquoPassagem Secreta Teacutecnicas de criaccedilatildeo de backdoorsrdquo httpwwwlinuxmagazinecombrarticlepassagem_secreta

[2] Blue Pill httpbluepillprojectorg

[3] Red Pill httpwwwinvisiblethingsorgpapersredpillhtml

[4] DR RootKit httpwwwimmunityinccomresources-freesoftwareshtml

[5] Core Security Technologies httpwwwcoresecuritycom

mesmo que vocecirc consiga descobrir a identidade ndash o ID ndash do processo) Se vocecirc usar os exemplos forneci-dos com o pacote eacute relativamente simples estender e criar outras cha-madas de sistema modificadas Por exemplo vocecirc pode alterar o conjun-to de recursos disponiacuteveis para pro-cessos ndash o capset O proacuteprio rootkit eacute um moacutedulo carregaacutevel no kernel o que simplifica sua inserccedilatildeo em um sistema comprometido Poreacutem da mesma forma que acontece com outros rootkits residentes na memoacute-ria a reinicializaccedilatildeo do sistema iraacute removecirc-lo da memoacuteria

Se vocecirc quiser estender o rootkit pode por exemplo inserir suas proacuteprias chamadas do sistema personalizadas Forneci um exemplo para alterar a chamada de sistema exit Em poucas palavras o processo consiste em de-clarar seu proacuteprio gancho para alterar uma chamada de sistema e entatildeo im-plementar uma chamada de sistema customizada ndash isso eacute realmente simples O melhor lugar para comeccedilar eacute o coacute-digo-fonte do kernel ndash mais especifica-mente no subdiretoacuterio kernel onde a maioria das chamadas do sistema satildeo definidas Por exemplo se houver um sistema no qual os recursos em uso restringem o que programas podem ou natildeo fazer vocecirc pode simplesmen-te modificar a chamada de sistema do_sys_capset_other_tasks que sempre retorna todos os recursos de um ID de processo especiacutefico como

-2376 +2379 if (capable(CAP_SETPCAP))return -EPERM+ if (pid == 12345) magic process number + return cap_set_all_evil(effective inheritable permitted)

Como vocecirc pode notar mesmo a menor das modificaccedilotildees pode ter um efeito significativo Assim de uma hora para outra o processo

com o ID 12345 teraacute sempre todos os recursos o que permite a ele fa-zer praticamente tudo o que quiser Assim com apenas uma chamada de sistema um agressor pode criar uma backdoor eficiente

O uacutenico modo de detectar um rootkit desses eacute por meio da mediccedilatildeo de atrasos ou de condiccedilotildees de corri-da (race conditions) que sejam intro-duzidas pelo rootkit Se um rootkit estivesse presente o sistema deveria ficar mais lento do que de costume mas a mediccedilatildeo dessa variaccedilatildeo natildeo eacute uma tarefa simples Aleacutem disso o programa eacute relativamente simples e pode ser estendido facilmente de modo a se esconder de maneira mais eficiente e tornando sua detecccedilatildeo ainda mais difiacutecil

Abordagem alternativaClaro que vocecirc pode comprometer um sistema e manter o acesso de outras formas enquanto permanece escondido Uma outra empresa que desenvolve software de verificaccedilatildeo de invasatildeo chamada Core Security [5] adotou uma abordagem de injetar coacutedigo hostil em processos que jaacute te-nham sido atacados Por exemplo se vocecirc criar uma brecha no conhecido servidor web Apache conseguiraacute inje-tar coacutedigo nele que lhe garanta acesso remoto ao sistema Essa teacutecnica eacute algo limitado se comparada com um roo-tkit de kernel completo ou com um rootkit de hardware A desvantagem dessa teacutecnica satildeo os mecanismos de proteccedilatildeo do sistema operacional tais como o SELinux que permanecem capazes de forccedilar uma poliacutetica de seguranccedila Contudo para agressores obstinados isso natildeo costuma ser um problema muito seacuterio pois eles podem usar um exploit local para comprome-ter ainda mais o sistema ou mesmo permanecer dentro das condiccedilotildees impostas pela poliacutetica definida pelo SELinux mas ainda sim obter infor-maccedilotildees ou usar o sistema para realizar outros ataques maliciosos

ConclusatildeoA boa notiacutecia eacute que chegando agrave camada de hardware os agresso-res (pelo menos conceitualmente) atingiram a uacuteltima camada passiacute-vel de abuso A maacute notiacutecia eacute que um grande contingente de truques de hardware pode ser usado para manter o controle sobre um sistema comprometido Por exemplo uma placa de viacutedeo moderna tem acesso direto agrave memoacuteria (o que significa que ela pode fazer o que bem en-tender com a memoacuteria do sistema sem que o sistema operacional possa interferir significativamente no pro-cesso) dispotildee de memoacuteria proacutepria e de uma grande quantidade de poder de processamento (tanto que estatildeo sendo usadas por muitos para criar clusters de baixo custo) Placas mais modernas tecircm seu firmware arma-zenado em memoacuteria flash passiacutevel de atualizaccedilatildeo por software e eu natildeo tenho a miacutenima duacutevida de que algum dia algueacutem vai criar algum meacutetodo para abusar da placa de viacutedeo com o propoacutesito de controlar um sistema comprometido

COLUNA | Inseguranccedila

copy Linux New Media do Brasil Editora Ltda

17Linux Magazine 50 | Janeiro de 2009

COLUNA

MID mais um degrau na escadaria da mobilidade

Augusto CamposNem smartphone nem subnotebook os MIDs chegam como uma nova categoria para facilitar nossas vidas

Neste iniacutecio de 2009 tive a oportunidade de segurar em minhas matildeos um pedaccedilo do futuro do desktop Soacute que natildeo se tra-

tava propriamente de um desktop ou pelo menos natildeo daquele modelo que aprendemos a conhecer com uma infinidade de arquivos gravados em um disco riacutegido ao meu alcance um ambiente de trabalho cheio de aplicativos instalados local-mente e a ocupaccedilatildeo de uma vasta aacuterea em cima da escrivaninha

Natildeo era nem mesmo um daqueles notebooks pequeninos estilo Eee PC que foram se popula-rizando mundialmente ao longo de 2008 Era algo menor mais singelo mas com poder de processa-mento surpreendente um Aigo MID equipamento do qual provavelmente vocecirc ainda natildeo ouviu falar ndash ateacute porque ele parece estar bem distante do nosso mercado neste momento

Os MIDs ou Mobile Internet Devices satildeo dis-positivos que parecem ficar entre os smartphones e os subnotebooks de hoje Como em uma cadeia darwiniana eu ateacute apostaria que os mais bem-suce-didos entre eles vatildeo acabar ficando no nicho exato que hoje eacute ocupado por um destes dois extremos (os smartphones ou os subnotebooks) ateacute mesmo porque essas fronteiras vatildeo ficando cada vez mais difusas com o passar do tempo Mas hoje eles satildeo uma categoria agrave parte e torccedilo para que suas carac-teriacutesticas e possibilidades sejam logo herdadas pelos celulares (ou pelos subnotebooks)

O equipamento com o qual tive oportunidade de brincar um pouco tem caracteriacutesticas de um PC de pequeniacutessimo porte com um display sufi-cientemente grande para mostrar os sites da web 20 nossos de cada dia um teclado escamoteaacutevel cacircmera microfone e acesso a redes Wi-Fi Alguns modelos tecircm acesso agrave conectividade via redes mais amplas (CDMA 3G etc) mas natildeo eacute o caso do meu E eles permitem fazer o que eu mais faccedilo no meu desktop diariamente acessar a web comuni-car-me por IM VoIP e email consultar (ou editar levemente) documentos e textos e ateacute digitar esta coluna que vocecirc estaacute lendo

E o mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres como o Firefox e o Pidgin entre vaacuterios outros E nem eacute soacute pela questatildeo do custo de aquisiccedilatildeo esses aplicativos livres satildeo leves por natureza e ainda podem ser alterados de acordo com as especificaccedilotildees do aparelho no qual seratildeo distribuiacute-dos seja para ocupar menos disco preencher menos memoacuteria RAM ou mesmo gastar menos bateria

Hoje o acesso agrave Web eacute cada vez mais uma condiccedilatildeo para que eu possa desempenhar bem as minhas ativi-dades e quanto mais rico esse acesso melhor a cada dia eacute necessaacuterio interagir digitar textos captar imagens comunicar-se por viacutedeo e voz conectar-se a redes de

variadas tecnologias abertas Acredito que em algum momento os celulares vatildeo estar aptos a prover com con-forto e economia esses recursos e que vatildeo estar rodando um sistema operacional livre quando o fizerem

Enquanto esse dia natildeo chega eacute interessante ver como a induacutestria avanccedila nesta direccedilatildeo por vias obliacute-quas que convergem em uma direccedilatildeo que muito nos interessa softwares livres conectando-se a pro-tocolos abertos e provendo serviccedilos que facilitam as nossas vidas

COLUNA

Sobre o autorAugusto Ceacutesar Campos eacute administrador de TI e desde 1996 manteacutem o site BR-linuxorg que cobre a cena do Software Li-vre no Brasil e no mundo

O mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres

copy Linux New Media do Brasil Editora Ltda

18

NO

TIacuteC

IAS

httpwwwlinuxmagazinecombr

Xen ganha recursos e promete integraccedilatildeoKeir Fraser da Xensource (atualmente Citrix) anunciou na lista xen-devel a disponibilidade de uma aacutervore com o coacutedigo-fonte para criaccedilatildeo de um dom0 completo do Xen no kernel Linux 2627

Segundo Keir ldquoa intenccedilatildeo eacute fornecer uma aacutervore uacutenica para desenvolvimento e testes voltada aos desenvolvedores que pre-cisarem de um kernel 26 mais modernordquo e menciona o geren-ciamento de energia como um dos motivos para isso

O porte da funcionalidade de dom0 do Xen para o Linux atu-almente depende da implementaccedilatildeo final das pv_ops (operaccedilotildees para-virtualizadas) um conjunto de ldquoganchos de coacutedigordquo (hooks) no kernel que permitem sua operaccedilatildeo mediante o uso da teacutecnica de para-virtualizaccedilatildeo Atualmente o escopo de funcionalidade das pv_ops permite apenas o funcionamento do Linux como

Alta disponibilidadeManter a sincronizaccedilatildeo perfeita de muacuteltiplos servidores Xen cada um com diversas maacutequinas virtuais natildeo eacute tarefa das mais faacuteceis Atualmente eacute preciso replicar arquivos de configuraccedilatildeo entre os servidores e manter sincronizado todo o restante da estrutura

Felizmente tudo isso pode mudar para melhor com o projeto Kemari Trata-se de um software de coacutedigo aberto (GPL) descrito por seus autores como ldquoum mecanismo de coacutedigo aberto para sin-cronizaccedilatildeo de maacutequinas virtuais para toleracircncia a falhas Oferece uma teacutecnica utilizaacutevel para toleracircncia a falhas que natildeo requer o uso de hardware especiacutefico ou a modificaccedilatildeo dos aplicativos ou sistema operacionalrdquo

Lanccedilado o Fedora 10Seis meses apoacutes o lanccedilamento do Fedora 9 o projeto livre lanccedilou a versatildeo 10 da popular distribuiccedilatildeo Linux codinome Cambridge

O Fedora 10 usa o kernel Linux 26275 anunciado no uacuteltimo dia 7 O projeto tambeacutem estaacute buscando trazer seus softwares a um novo niacutevel e ele inclui o OpenOfficeorg 30 Gnome 2241 Eclipse 34 e RPM 46 O produto promete um melhor gerenciamento de impressoras e alguns interessantes recursos de vir-tualizaccedilatildeo No momento o KVM estaacute disponiacutevel por padratildeo no Fedora 10 na versatildeo 74-5 (no Fedora 9 o KVM era apenas uma opccedilatildeo) Certamente a aquisiccedilatildeo da Qumranet criadora e desenvolvedora do KVM pela Red Hat patrocinadora do Fedora tem grande influecircncia nisso No entanto o uso do KVM natildeo implica a rejeiccedilatildeo do ldquoconcorrenterdquo Xen o hypervisor tradicional estaacute presente na versatildeo 330-1 As ferramentas de virtualizaccedilatildeo de criaccedilatildeo do proacuteprio Fedora como a libvirt e o virt-manager tambeacutem estatildeo incluiacutedas

Outra importante novidade do Fedora 10 eacute seu tempo de inicializaccedilatildeo que foi reduzido graccedilas ao novo sistema graacutefico de inicializaccedilatildeo Plymouth

domU (ou seja como maacutequina virtual) enquanto o kernel do dom0 ainda eacute res-trito agrave versatildeo 2618 do Linux

A expectativa eacute que os desenvolvedores da Novell que estatildeo trabalhando nessa ta-refa consigam incrementar as pv_ops de forma a permitir seu uso tambeacutem como dom0 o que permitiria o uso de versotildees mais recentes do kernel Linux (com to-das as vantagens que trazem) no dom0 Posteriormente as novas pv_ops tambeacutem devem ser incluiacutedas na aacutervore principal do kernel unindo definitivamente os projetos Xen e Linux

O objetivo do projeto eacute ldquomanter as maacute-quinas virtuais rodando transparentemente em caso de falhas de hardwarerdquo Para isso ele ldquotransfere o estado da maacutequina virtual primaacuteria para a secundaacuteria quando a pri-maacuteria estaacute prestes a enviar um evento para dispositivos como armazenamento e rederdquo como descreve o anuacutencio do projeto

Espera-se que o Kemari seja integra-do ao Xen 34 a proacutexima versatildeo estaacutevel do popular sistema de virtualizaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

O Linux Professional Institute ndash oacutergatildeo responsaacutevel pela certificaccedilatildeo em Linux que mais cresce no mundo ndash realizou no Brasil a primeira aplicaccedilatildeo das provas 303 Elas correspon-dem agrave categoria especialista do niacutevel 3 da certificaccedilatildeo e qualificam o profissional aprovado como ldquoSecurity Specialistrdquo As provas (grauitas) ocorreram na cidade de Satildeo Paulo no dia 20 de dezembro de 2008

O Programa de Certificaccedilatildeo LPI eacute composto por dois niacuteveis baacutesicos com duas provas cada um As provas do niacutevel 1 (101 e 102) certificam o profissional como ldquoAdministrador Linux Juacuteniorrdquo e as do niacutevel 2 (201 e 202) como ldquoAdministrador Linux Plenordquo

O niacutevel 3 da certificaccedilatildeo LPI eacute focado no mercado corporativo O profissional precisa se certificar obrigatoria-mente na prova 301 (Core) e depois escolher uma das especialidades disponiacuteveis Atualmente a uacutenica disponiacutevel eacute a prova 302 (Mixed Environment) para profissionais que queiram se especializar em interoperabilidade em ambientes mistos (Linux Unix Netware e Windows) A prova lsquo303 - Securityrsquo eacute a segunda especialidade a ser lanccedilada pelo LPI A prova 303 estaacute sendo realizada em caraacuteter de teste antes de ser lanccedilada oficialmente

19

Xen ganha recursos e promete integraccedilatildeo

Linux Magazine 50 | Janeiro de 2009

Gerais | NOTIacuteCIAS

LPI lanccedila provas 303 no Brasil

Google Android no Openmoko Linux versus OpenSolaris e FreeBSD

O site dedicado a Software Livre e hard-ware Phoronix publicou um comparativo de velocidade (benchmark) na realizaccedilatildeo de diversas tarefas entre os sistemas ope-racionais mais famosos baseados em ker-nels de coacutedigo aberto Ubuntu OpenSolaris e FreeBSD

Os testes utilizaram a versatildeo instaacutevel de 64 bits mais recente de cada um dos sistemas (com exceccedilatildeo do Ubuntu cuja versatildeo foi a 810 final) e se basearam no proacuteprio pacote de benchmarks de coacutedigo aberto desenvol-vido pela equipe do Phoronix (e em raacutepida evoluccedilatildeo) o Phoronix Test Suite

Os autores concluem o artigo decla-rando o Ubuntu 810 como vencedor no desempenho mas o representante do ker-nel Linux natildeo foi o campeatildeo em todas as categorias venceu em oito dos 18 testes contra sete vitoacuterias do OpenSolaris e trecircs do FreeBSD

Poucos dias depois os autores retornaram ao ambiente de testes e fizeram o compara-tivo entre o tambeacutem recente Ubuntu 810 e o Fedora

Foram usadas as versotildees de 32 e 64 bits de ambos os sistemas e os testes empregados foram os mesmos do benchmark anterior com o Phoronix Test Suite

O resultado dessa comparaccedilatildeo no entan-to natildeo foi conclusivo as distribuiccedilotildees Linux se saiacuteram praticamente igual com respeito ao desempenho nos testes

Institute

LinuxProfessional

R

A Koolu empresa canadense especializada no desenvolvimento de soluccedilotildees de tecnologia ambientalmente corretas disponibili-zou o coacutedigo-fonte da plataforma Android do Google adaptado ao telefone Openmoko FreeRunner cujo desenvolvimento contou com esforccedilo e total colaboraccedilatildeo da comunidade internacional do Software Livre

O anuacutencio foi realizado no IP Communications Brasil 2008 evento internacional sobre comunicaccedilotildees IP por Jon lsquomaddogrsquo Hall CTO da Koolu e Denis Galvatildeo presidente da paranaense iSolve Durante o evento tambeacutem foi anunciado o acordo nome-ando a iSolve como canal master de distribuiccedilatildeo do Openmoko FreeRunner no Brasil

O Android foi lanccedilado como um software livre no final de outu-bro de 2008 poreacutem muito trabalho precisou ser realizado para que esse coacutedigo pudesse funcionar em telefones de outros fabricantes O FreeRunner telefone com design aberto desenvolvido pela empresa taiwanesa Openmoko demandou uma seacuterie de alteraccedilotildees no coacutedigo-fonte do Android para que ele pudesse fun-cionar corretamente A comunidade de Software Li-vre com ajuda de vaacuterias pessoas ao redor do mundo realizou as implementaccedilotildees necessaacuterias e tornou possiacutevel a execuccedilatildeo do Android no FreeRunner

ldquoAgora que o coacutedigo-fonte jaacute estaacute rodando no FreeRunner es-peramos que os retoques finais estejam prontos rapidamenterdquo dis-se Brian Code diretor teacutecnico da Koolu ldquoA criaccedilatildeo do ambiente para compilaccedilatildeo (toolchain) a criaccedilatildeo dos patches necessaacuterios para tornar o coacutedigo compatiacutevel com o telefone e a documentaccedilatildeo de todo o passo-a-passo do processo de construccedilatildeo do software toma-ram um bom tempo mas agora estaacute mais faacutecil para a comunidade do Software Livre desenvolver e realizar modificaccedilotildees nessa pla-taforma Como um exemplo as aplicaccedilotildees moacuteveis Google Apps bem como outra aplicaccedilotildees corporativas podem ser instaladas e otimizadas para essa plataformardquo

copy Linux New Media do Brasil Editora Ltda

20

CO

RP

OR

ATE

httpwwwlinuxmagazinecombr

ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

Keith Curtis funcionaacuterio por vaacuterios anos da Microsoft conclui em seu livro receacutem-lanccedilado que o futuro do software estaacute no modelo de desenvolvimento de coacutedigo aberto Curtis trabalhou para a Microsoft como de-senvolvedor de software de 1993 a 2004 tendo participado do desenvolvimento dos produtos para bancos de dados da empresa bem como na programaccedilatildeo do Windows do Office e do MSN entre outros No final de 2008 ele publicou o livro intitulado ldquoAfter the Software Warsrdquo (Depois das Guerras do Software) que descreve o processo de produccedilatildeo de software do ponto de vista de um desenvolvedor analisa os possiacuteveis avanccedilos nesse processo no futuro e aborda desde toacutepicos como inteligecircncia artificial culminando no desenvolvimento de sistemas que possibilitem viagens espaciais

A ediccedilatildeo online do The New York Times fez uma resenha do livro e relatou a nova trajetoacuteria do ex-funcio-naacuterio da gigante de Redmond ldquoPara o Sr Curtis a forccedila do software de coacutedigo aberto e o motivo pelo qual esse eacute o modelo de desenvolvimento do futuro estatildeo no fato de que por meio deste a inteligecircncia coletiva eacute estimuladardquo Segundo Curtis ldquoas diferenccedilas entre Software Livre e software natildeo-livre ou proprietaacuterio satildeo comparaacuteveis agraves diferenccedilas existentes entre ciecircncia e alquimia Antes de a ciecircncia se estabelecer havia apenas alquimia na qual as pessoas tentavam proteger suas ideacuteias pois elas desejavam dominar o mercado desenvol-vendo um processo para transformar chumbo em ourordquo

Curtis publicou seu livro usando a plataforma lulucom cujo fundador e diretor executivo eacute Bob Young veterano da cena Open Source e ex-CEO da Red Hat

Sun lanccedila MySQL 51Na nova versatildeo do banco de dados de coacute-digo aberto os desenvolvedores se concen-traram no desempenho o que aumentou a velocidade do programa em surpreendentes 15 Entre as novidades haacute cinco novos meacutetodos de particionamento horizontal range hash key list e composite Outros recursos novos satildeo a replicaccedilatildeo hiacutebrida e o agendador de eventos (event scheduler) que permite a automatizaccedilatildeo de tarefas SQL repetitivas

Os sistemas operacionais suportados satildeo Red Hat Enterprise Linux Suse Linux En-terprise Windows Mac OS X FreeBSD HP-UX IBM AIX IBM i5OS e todas as distribuiccedilotildees Linux

A Sun disponibiliza trecircs versotildees do soft-ware para download Community Server sob a GPL Enterprise Server com base em subscriccedilatildeo (assinatura do serviccedilo) e Embedded Server esta com licenccedila co-mercial proprietaacuteria

MS Windows eacute mais econocircmicoA Microsoft fez de novo um estudo recente encomendado pela empresa ldquoconcluiurdquo que eacute mais barato para empresas usar o Win-dows como plataforma de software A revista australiana iTWire analisou o estudo e fez algumas descobertas interessantes

O que parece agrave primeira vista (com perdatildeo do trocadilho) ser uma histoacuteria de sucesso na realidade natildeo eacute mdash nem de longe em primeiro lugar natildeo haacute economia alguma O que haacute satildeo apenas estimativas da Microsoft segundo as quais a empresa britacircnica Speedy Hire deveraacute economizar 200 mil libras por ano em de-corriencia da utilizaccedilatildeo do Windows

A anaacutelise do estudo disponiacutevel em artigo no site australiano iTWirecom faz um raio-X da ldquoeconomiardquo sugerida pela em-presa de Bill Gates Elas comeccedilam pelo hardware jaacute que no projeto foram utilizados terminais leves para Windows mdash que seriam inexplicavelmente mais baratos do que aqueles equipados com Linux O estudo natildeo menciona nem ldquoen passantrdquo que haacute

alternativas bem mais baratas aos modelos V90 da empresa Wyse equipados com Windows como

os V50 preacute-carregados com Linux Nesse esti-lo o artigo vai revelando de onde vieram as ldquoreduccedilotildees de custordquo obtidas pela Microsoft que vatildeo transformam em vapor agrave medida que

prosseguimos na leitura Estamos curiosos para saber o que sobra da economia de 1 milhatildeo de

libras apoacutes os cinco anos

copy Linux New Media do Brasil Editora Ltda

21

Google e Red Hat firmam parceria

A Red Hat assinou em dezembro um acordo com o Google para trazer os principais de-senvolvedores da empresa para a plataforma de construccedilatildeo de aplicaccedilotildees web Google Web Tookit Com o acordo estabelece-se tambeacutem o suporte do servidor de aplicaccedilotildees da Red Hat o JBoss ao GWT

Aleacutem da assinatura do acordo a Red Hat tambeacutem anunciou que jaacute completou algumas integraccedilotildees preliminares entre o GWT e o JBoss Seam Framework Com a integraccedilatildeo a empresa alavanca o Seam para que os desen-volvedores possam combinar o poder do Java agraves modernas tecnologias view-layer como GWT RichFaces e Spring para desenvolver os Rich Internet Applications

Linux Magazine 50 | Janeiro de 2009

| CORPORATENotiacutecias

Insigne jaacute planeja 2012A fornecedora do Insigne Momentum 50 quer manter sua po-siccedilatildeo de lideranccedila no Brasil e conquistar novos mercados in-clusive no exterior O sucesso de sua participaccedilatildeo no projeto de inclusatildeo digital Computador para Todos fez com que a Insigne Free Software do Brasil conquistasse forte posiccedilatildeo de lideran-ccedila no mercado dos PC populares e tambeacutem ficasse conhecida em outros paiacuteses Esse cenaacuterio positivo lhe permitiu iniciar ne-gociaccedilotildees com fabricantes estrangeiros de PC para embarcar o Insigne Momentum 50 sistema operacional de coacutedigo aberto em microcomputadores fora das fronteiras nacionais

Para atingir a meta de manter seu crescimento perante a perspectiva de elevaccedilatildeo das vendas de PCs nos proacuteximos anos a empresa contratou o consultor de estrateacutegia e professor de engenharia Carlos Roberto Lopes As atividades envolvidas no planejamento estrateacutegico incluem uma seacuterie de workshops com todas as equipes e departamentos da Insigne O objetivo eacute coletar impressotildees dos colaboradores e lhes apresentar as mais recentes mudanccedilas ocorridas no mercado global incluindo a atual situaccedilatildeo econocircmica mundial que poderaacute alterar a correlaccedilatildeo de forccedilas entre os fornecedores de tecnologia nos proacuteximos anos

De acordo com Joatildeo Pereira da Silva Jr presidente da Insigne esse planejamento incluiraacute natildeo apenas o foco no seu cliente que eacute o usuaacuterio do PC popular mas tambeacutem em toda a sua equipe de profissionais envolvidos em todas as etapas de desenvolvimento de um sistema operacional de coacutedigo abertordquo

VMware adquire Tungsten GraphicsA VMware adquiriu por um valor natildeo revelado as operaccedilotildees da empresa Tungsten Graphics fundada em 2001 e motor por traacutes do desenvolvimento da implementa-ccedilatildeo de coacutedigo aberto do OpenGL no Linux a biblioteca Mesa 3D

Aleacutem da Mesa 3D a empresa tambeacutem desenvolve o Gallium 3D framework para desenvolvimento de drivers graacuteficos 3D A Tungsten Graphics eacute formada por um grupo de desenvolvedores de aplicativos graacuteficos de coacutedigo aberto Segundo a FAQ no site da empresa o desenvolvimento dos projetos de coacutedigo aberto encabeccedilados por ela continuaraacute agora como parte das atividades da equipe de engenharia da VMware A aquisiccedilatildeo teria como objetivo melhorar o suporte a graacuteficos 3D em ambientes virtualizados

Mandriva demite dois desenvolvedoresA situaccedilatildeo financeira da Mandriva parece estar ruim Em dezembro a empresa anunciou que ao final de 2008 terminaria o contrato de dois de seus funcionaacuterios Adam Williams (na praacutetica o Community Manager) e o mantenedor de pacotes Oden Eriksson

Os dois desenvolvedores escreveram para a lista de emails do Cooker (Adam Williams Oden Eriksson) Enquanto Adam Williams eacute considerado por muitos como a base da co-munidade do Mandriva Oden manteacutem aproximadamente 1200 pacotes principalmente na aacuterea de servidores incluindo todos os pacotes do stack LAMP

Entretanto a comunidade do Mandriva natildeo pretende esperar sentada a efetivaccedilatildeo dessa decisatildeo Jaacute haacute uma peticcedilatildeo para tentar convencer a empresa a manter pelo me-nos Williams

copy Linux New Media do Brasil Editora Ltda

22 httpwwwlinuxmagazinecombr

CO

RP

OR

ATE

Entrevista com Armstrong Lemos chefe do departamento de TI da CAEMA

Saneada pelo LinuxO Linux entrou com forccedila na Companhia de Aacuteguas e Esgotos do Maranhatildeo proporcionando economia e ganhos fundamentais para a sauacutede da empresa por Pablo Hess

A Companhia de Aacuteguas e Esgo-tos do Maranhatildeo (CAEMA) eacute uma sociedade de economia

mista com capital de investimento predominantemente do Estado do Maranhatildeo Fundada haacute 42 anos a CAEMA atua no fornecimento de aacutegua coleta e tratamento de esgotos Atua em 146 municiacutepios maranhenses com abastecimento de aacutegua sendo que somente em trecircs (Satildeo Luis Im-peratriz e Barreirinhas) faz a coleta de esgotosLinux Magazineraquo Como e por que a CAEMA comeccedilou a usar LinuxArmstrong Lemosraquo A CAEMA opera com deacuteficit de quase R$ 5 milhotildees por mecircs que satildeo repassados pelo governo do estado para comple-mentaccedilatildeo das despesas Isso muito se deve a sua funccedilatildeo social que eacute a de universalizaccedilatildeo do abastecimento de aacutegua no estado Natildeo eacute uma ati-vidade meramente econocircmica mas tambeacutem social

O sistema comercial jaacute foi bloque-ado por falta de pagamento Quanto mais a CAEMA ampliava sua rede de atendimento mais caro pagava pelo uso do sistema sendo que a empresa prestadora mantinha relaccedilatildeo de pou-ca paciecircncia com os atrasos no paga-mento que deveriam ser realizados no dia cinco de cada mecircs Como a

companhia possuiacutea e ainda possui di-ficuldades de arrecadaccedilatildeo esse prazo nem sempre era cumprido

Outros fatores aliados a esse contri-buiacuteram para que no iacutenicio da gestatildeo da atual diretoria se iniciasse um pro-cesso de diagnoacutestico geral da empresa Com esse estudo ficou clara a situa-ccedilatildeo em que se encontravam diversos setores estrateacutegicos da companhia entre eles o de informaacutetica

Tiacutenhamos um parque de aproxi-madamente 500 maacutequinas com vaacuterios problemas principalmente adwares spywares e viacuterus Havia ainda proble-mas de conectividade e processamento em fun-ccedilatildeo do Windows natildeo se adequar ao perfil do hardware fazendo com que o equipamento ti-vesse baixa performan-ce As atualizaccedilotildees com Windows tornavam-se inviaacuteveis nos computa-dores com perfil padratildeo de dois ou mais anos

O departamento natildeo possuiacutea outra funccedilatildeo aleacutem do suporte de ma-nutenccedilatildeo de computado-res e impressoras muitos jaacute ultrapassados uma vez que o uacuteltimo investimen-

to feito em TI na companhia ocorreu no ano 2000

A telefonia as escolhas teacutecni-cas o gerenciamento de contratos de sistemas e outras atividades natildeo eram exercidas pelo departamen-to de informaacutetica Natildeo havia uma poliacutetica definida de TI na empresa e natildeo se dispunha de recursos para investimento Muitos dos sistemas utilizados pela empresa eram piratas e natildeo possuiacuteam suporte O banco de dados da companhia natildeo dispunha mais de suporte de software e o de-partamento de informaacutetica natildeo tinha

Armstrong Lemos chefe do departamento de TI da CAEMA

copy Linux New Media do Brasil Editora Ltda

23Linux Magazine 50 | Janeiro de 2009

| CORPORATECAEMA

conhecimento dos relacionamentos dos dados contidos nele

Apoacutes o diagnoacutestico e reuniotildees so-licitou-se agrave diretoria administrativa da empresa agrave qual a informaacutetica eacute subordinada para que submetesse ao conselho de administraccedilatildeo o resta-belecimento das funccedilotildees relativas agrave aacuterea de TI incluindo telefonia

Aleacutem dessas accedilotildees de retomada das atribuiccedilotildees estruturamos uma equipe de programaccedilatildeo uma equipe de projetos estrateacutegicos e reestrutu-ramos a equipe de suporte teacutecnico tudo isso para viabilizar a poliacutetica de Software Livre da CAEMA

LMraquo Em que consiste essa poliacutetica de Software LivreALraquo Estabelecemos vaacuterias etapas como o desenvolvimento do Livre Linux e do sistema de protocolo via Web a migraccedilatildeo do sistema comer-cial (GSAN) a formaccedilatildeo de monito-res de treinamento e o treinamento dos usuaacuterios na soluccedilatildeo completa (GSAN Livre Linux BrOfficeorg e sistema de protocolo) seguida pela articulaccedilatildeo do Movimento Software Livre Maranhatildeo

LMraquo Como foi a evoluccedilatildeo do uso do Software Livre dentro da empresaALraquo Precisaacutevamos resolver dois fatores que impediam o avanccedilo da politica de Software Livre na empresa o sistema de protocolo em Windows e o sistema comercial tambeacutem em Windows e com arquitetura cliente-servidor Aleacutem disso determinou-se a substituiccedilatildeo deles por um novo sistema que per-mitisse a ampliaccedilatildeo da nossa rede de atendimento e que ainda propiciasse a autonomia no gerenciamento dos dados da companhia

O sistema de protocolo foi resol-vido a partir do desenvolvimento do sistema livre Balula feito pela equi-pe de programaccedilatildeo e Software Livre da CAEMA Hoje o protocolo estaacute agrave disposiccedilatildeo dos demais oacutergatildeos puacutebli-cos para serem implementados sem

qualquer custo adicional atraveacutes de parceria sem ocircnus entre a CAEMA e o oacutergatildeo interessado

Ainda em novembro todos os computadores de atendimento co-mercial das unidades da CAEMA passaram a utilizar o Livre Linux como sistema operacional

LMraquo Como eacute a situaccedilatildeo atualALraquo Hoje utilizamos o GSAN com banco de dados PostgreSQL Com isso estamos ampliando o atendi-mento aos municiacutepios onde nosso sistema comercial antigo natildeo fun-cionava pois era inviabilizado pelo custo alto de contrataccedilatildeo de serviccedilos de transmissatildeo de dados junto agraves operadoras locais Atualmente com uma simples conexatildeo via raacutedio que existe em todos os municiacutepios onde a CAEMA atua faremos a integraccedilatildeo com o novo sistema

Estatildeo rodando na plataforma Linux todos os sistemas Web (comercial protocolo frotas juriacutedico cadastro segunda via de contracheque) etc Estamos com Livre Linux nos setores de atendimento help desk adminis-trativo e em todos os servidores

Vamos estender essa implantaccedilatildeo para os demais setores salvo maacutequinas que possuam aplicativos em Windows sem similares no mundo Linux (que satildeo casos mais raros)

LMraquo Em quanto tempo a CAEMA espera obter o retorno do investi-mento em Software Livre

ALraquo O custo total foi de R$ 104 milhotildees para o sistema comercial e o banco de dados Isso representa uma economia de R$ 360 milhotildees ao lon-go de quatro anos somente nesses dois sistemas Os levantamentos sobre a substituiccedilatildeo do sistema operacional Windows por Linux do proprietaacuterio Microsoft Office pelo BrOfficeorg e programas pagos estatildeo sendo le-vantados o que poderaacute representar uma economia de aproximadamente meio milhatildeo de reais

LMraquo Quanto tempo durou a mi-graccedilatildeoALraquo Aproximadamente oito meses com um analista de sistemas da CAE-MA e mais dois analistas de sistemas quatro programadores e um analista de suporte e bancos de dados de nos-so prestador de serviccedilos (Domiacutenio) aleacutem de quatro analistas de sistemas e um DBA do IPAD

LMraquo Qual a opiniatildeo da direccedilatildeo da empresa sobre o Software LivreALraquo O convencimento junto agrave dire-toria foi de estabilidade e custo fi-nanceiro devido agrave situaccedilatildeo em que estaacutevamos Hoje haacute o reconhecimento quanto agraves soluccedilotildees implantadas e o estiacutemulo para a descoberta de novas alternativas A diretoria percebe as vantagens de total liberdade e au-tonomia de uso e configuraccedilatildeo das ferramentas livres que tornaram a migraccedilatildeo teacutecnica e economicamen-te viaacutevel

LMraquo E a sua opiniatildeo sobre o mer-cado de Software LivreALraquo O mercado de Software Livre no paiacutes estaacute maduro Muitas empresas estatildeo habilitadas para a execuccedilatildeo e a manutenccedilatildeo de projetos livres Seguindo essa tendecircncia grandes empresas tecircm accedilotildees nesse foco No entanto temos carecircncia de empresas privadas que prestem suporte a bancos de dados livres assim como eacute carente o uso desses bancos em aplicaccedilotildees comerciais proprietaacuterias

LMraquo O movimento Software Livre Maranhatildeo jaacute rendeu frutosALraquo No dia 14 de novembro reali-zamos o I Encontro de Articulaccedilatildeo de Software Livre Maranhatildeo para apresentar aos demais gestores de TI do Estado a alternativa de uso de Software Livre pelo governo e articulaccedilatildeo de um movimento in-dependente para fortalecimento dessa poliacutetica

copy Linux New Media do Brasil Editora Ltda

24 httpwwwlinuxmagazinecombr

Como participar da comunidade Open Souce

Cezar TaurionUma anaacutelise do desenvolvimento do kernel Linux

Haacute alguns dias li um interessante artigo de Jona-than Corbet ldquoHow to participate in the Linux Communityrdquo[1] Ele descreve como funciona

o processo de desenvolvimento do kernel Linux e eacute uma excelente fonte de referecircncia para quem estiver interessado em colaborar com a comunidade ou mes-mo conhecer como funciona por dentro o modelo de governanccedila de um projeto de coacutedigo aberto

O kernel Linux tem mais de 6 milhotildees de linhas de coacutedigo e aglutina mais de mil contribuidores ativos Eacute um dos maiores projetos de coacutedigo aberto do mun-do Seu sucesso tem atraiacutedo muitos colaboradores a maioria inclusive pertencendo a empresas que que-rem participar do projeto A questatildeo eacute como entrar e ser um participante ativo da comunidade

Cada comunidade Open Source tem suas proacuteprias regras de conduta e modelos de governanccedila Enten-der como funciona a comunidade que desenvolve o kernel eacute essencial para ser um colaborador e tam-beacutem abre ideacuteias para aprendermos como funciona um projeto Open Source

A primeira seccedilatildeo do artigo mostra a importacircncia de se inserir todo coacutedigo na aacutervore principal do ker-nel para se evitar a proliferaccedilatildeo de forks e futuras ldquobombas reloacutegiordquo Por exemplo um coacutedigo inse-rido no kernel principal passa a ser visto mantido e refinado por toda a comunidade resultando em coacutedigo de alta qualidade Quando o coacutedigo eacute man-tido separado natildeo soacute natildeo recebe contribuiccedilotildees ex-ternas como corre o risco de funcionalidade similar ser incorporada por outro desenvolvedor ao coacutedigo principal fazendo com que o coacutedigo isolado fique cada vez mais difiacutecil e custoso de ser mantido Esse alerta eacute feito porque muitas empresas envolvidas em projetos de software embarcado tendem a acre-ditar que seu coacutedigo pela sua especificidade deve ser mantido de forma isolada da aacutervore principal do kernel o que eacute um grande erro A seccedilatildeo tambeacutem descreve as razotildees por que toda contribuiccedilatildeo deve ser ldquoassinadardquo Eacute necessaacuterio para se evitar eventuais problemas de propriedade intelectual

A seccedilatildeo dois eacute bem interessante pois descreve como funciona o processo de desenvolvimento do kernel e a nomenclatura usada para designar as diversas versotildees

Explica tambeacutem como eacute criado uma versatildeo estaacutevel e o ciclo de vida dos patches Descreve como um patch eacute inserido no kernel e cita alguns dados curiosos A seccedilatildeo tambeacutem descreve as regras de etiqueta da comunidade na troca de mensagens e o uso das listas de email

As outras seccedilotildees descrevem o processo de plane-jamento da evoluccedilatildeo do kernel debatendo as etapas de avaliaccedilatildeo as discussotildees com a comunidade para definir o que e como seraacute feito os estilos de escrita (que garantem a qualidade do coacutedigo) as ferramen-tas de depuraccedilatildeo usadas a documentaccedilatildeo que deve ser gerada e assim por diante

A seccedilatildeo seis mostra como deve ser feito o tra-balho em colaboraccedilatildeo Cada patch eacute revisado por desenvolvedores que vocecirc natildeo conhece o que mui-tas vezes pode gerar algum desconforto Existem algumas recomendaccedilotildees de como se portar nessas situaccedilotildees meio desagradaacuteveis e de como evitar dis-cussotildees desgastantes Trabalhar em colaboraccedilatildeo eacute um exerciacutecio ao qual muitos desenvolvedores natildeo estatildeo acostumados Para muita gente ter um estra-nho revisando seu coacutedigo e expondo as falhas em puacuteblico eacute no miacutenimo desconfortaacutevel

Enfim a leitura desse documento eacute obrigatoacuteria para todos que estejam realmente interessados em conhecer mais a fundo o que eacute o movimento Open Source e os aspectos do desenvolvimento colabora-tivo que o caracterizam

CORPORATE

Mais informaccedilotildees

[1] Jonathan Corbet ldquoHow to participate in the Linux Communityrdquo httpldnlinuxfoundationorgbookhow-participate-linux-community

Sobre o autor

Cezar Taurion (ctaurionbribmcom) eacute geren-te de novas tecnologias aplicadas da IBM Bra-sil e editor do primeiro blog da Ameacuterica Latina do Portal de Tecnologia da IBM developerWorks Seu blog estaacute disponiacutevel em httpwww-03ibmcomdeveloperworksblogspagectaurion

CORPORATE

copy Linux New Media do Brasil Editora Ltda

25

Argumentando em favor do Software Livre

Jon lsquomaddogrsquo HallA comunidade do Coacutedigo Aberto natildeo dispotildee de um seacutequumlito de advogados e consultores de marketing e comunicaccedilatildeo Quando se trata de argumentar em favor do Software Livre vocecirc provavelmente teraacute que assumir esse papel

A ldquocenardquo juriacutedica envolvendo o Software Li-vre estaacute sempre em movimento Decisotildees de tribunais e accedilotildees governamentais estatildeo

sempre reformulando o panorama legal e tecircm efei-tos bruscos na ldquotemperaturardquo do desenvolvimento desse tipo de aplicaccedilatildeo

Uma lei proposta recentemente tinha por obje-tivo ajudar a eliminar a pornografia infantil mas foi modificada para limitar todo e qualquer tipo de liberdade na Internet a ponto de ndash nas palavras de um dos legisladores ndash dificultar o desenvolvimento de tecnologias como redes mesh

No mecircs passado escrevi sobre minha experiecircncia em testemunhar perante uma assembleacuteia nacional sobre uma lei considerada pioneira relativa ao mun-do open source Muito embora oportunidades como essa natildeo apareccedilam todos os dias eacute surpreendente a frequumlecircncia com que os governos ndash em todos os niacute-veis ndash satildeo confrontados com toacutepicos relacionados agrave comunidade open source

Seu governo local tambeacutem gasta dinheiro com software Algumas diretorias de escola gastam mes-mo milhares de doacutelares em aplicativos proprietaacuterios mesmo que suas contrapartes de coacutedigo aberto este-jam disponiacuteveis a um preccedilo muito inferior A maio-ria dos governos locais e das diretorias das escolas dispotildeem entretanto de um tempo para ouvir o cidadatildeo ndash e vocecirc poderia usar esse tempo para lhes dizer o que vocecirc pensa a respeito disso Melhor ain-da vocecirc poderia reunir um grupo de amigos com os mesmos ideais para argumentar em favor do uso de Software Livre

Se vocecirc for chamado para avaliar uma proposta de regulamentaccedilatildeo ou orccedilamento certifique-se de tecirc-la estudado profundamente Natildeo deixe de co-nhecer os poliacuteticos eleitos envolvidos no processo Com frequumlecircncia poliacuteticos locais estatildeo dispostos a discutir esses toacutepicos com vocecirc diretamente E se vocecirc marcar uma reuniatildeo natildeo se esqueccedila de ldquoestar apresentaacutevelrdquo (como sua matildee provavelmente diria)

e de manter a calma lanccedilando matildeo de uma argu-mentaccedilatildeo plausiacutevel

A maneira mais simples de se envolver em niacutevel nacional com esse tipo de legislaccedilatildeo eacute por meio de uma carta A maioria dos legisladores possui um email mas eles recebem milhares de mensagens todos os dias e a sua pode simplesmente ldquose afogarrdquo nesse oceano sem jamais ter sido lida Uma carta tradicional impressa e assinada pode receber mais atenccedilatildeo do que um email e uma carta enviada via portador como encomenda expressa ou registrada tem ainda maiores chances de ser notada Natildeo se esqueccedila de usar um corretor ortograacutefico ao escre-ver ndash nem de deixar algueacutem mais ler a carta antes de enviaacute-la como medida para garantir que o con-teuacutedo esteja inteligiacutevel

Cartas para editores de publicaccedilotildees tambeacutem satildeo eficazes Oficiais de governo ndash bem como cidadatildeos interessados que podem ser persuadidos por argu-mentos bem formulados ndash lecircem jornais Cartas concisas com argumentos claros satildeo preferiacuteveis a cartas longas sem um objetivo claramente definido Evite criticar o caraacuteter dos proponentes da legislaccedilatildeo a que vocecirc se opotildee Em vez disso concentre seus comentaacuterios no conteuacutedo

Se vocecirc busca um modo simples de se envolver no movimento em torno do Software Livre observe as oportunidades para dar a sua opiniatildeo sobre leis regulamentaccedilotildees e decisotildees de compra que afetem de algum modo o ecossistema open source O esfor-ccedilo eacute vaacutelido jaacute que manter os braccedilos cruzados natildeo eacute uma alternativa capaz de lhe dar voz ativa nesse tipo de processo

Sobre o autorJon lsquomaddogrsquo Hall eacute presidente da Linux International insti-tuiccedilatildeo internacional dedicada a promover o Linux e o Software Livre e de Coacutedigo Aberto Maddog viaja o mundo ministrando palestras e debatendo com decisores sobre o uso do Software Livre em acircmbito tanto corporativo quanto comunitaacuterio

CORPORATE

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

26 httpwwwlinuxmagazinecombr

CORPORATE

Nova lei de call center Oacutetima oportunidade para TI

Edgar SilvaHaacute inuacutemeras tecnologias de coacutedigo ou padrotildees abertos que podem ajudar a superar as dificuldades decorrentes da nova lei de call centers

ldquoO brasileiro mesmo com todas as adver-sidades eacute um povo criativo que na dificuldade cria oportunidadesrdquo Essa

afirmaccedilatildeo cabe muito bem quando observarmos a nova lei para call centers Afinal quem nunca ficou esperando horas numa linha telefocircnica e repetindo nuacutemero de documentos nome da matildee endereccedilo etc O decreto visa natildeo soacute a melhorar a vida de todos que precisam dos serviccedilos de empresas de telefonia fixa e moacutevel TV a cabo e outros mas tambeacutem ge-rar novos empregos assim como oportunidades de negoacutecios que eacute o tema deste artigo

Certamente em razatildeo da tradicional morosidade dos atendimentos de call center o comportamento padratildeo de noacutes consumidores eacute procurar alternativas Uma delas foi a Internet o que fez com que as em-presas investissem em portais para evitar o gargalo no atendimento de suas redes e tambeacutem porque re-presenta um aumento no atendimento sem elevar os custos Entatildeo por que natildeo criar novos canais de atendimento A tecnologia Java e algumas especi-ficaccedilotildees padrotildees e projetos open source fazem a diferenccedila nessa induacutestria de atendimento

Java por exemplo eacute extensamente utilizado Dentre os inuacutemeros motivadores destaco liberda-de de escolha de seus fornecedores a existecircncia de padrotildees da induacutestria que garantem maior ROI bem como facilidade de obtenccedilatildeo e formaccedilatildeo de profissionais Java conta com alguns padrotildees de tecnologia que ajudam principalmente a aprovei-tar parte do legado permitindo novos canais de interaccedilatildeo com os clientes Por exemplo os com-ponentes ou serviccedilos que atendem um navegador web podem tambeacutem atender uma chamada te-lefocircnica uma interaccedilatildeo SMS ou ateacute mesmo um canal VoIP via Skype

Entre as tecnologias disponiacuteveis cito as APIs padrotildees JSR116-SIP Servlets 10 [1] e JSR289-SIP Servlets 11 [2] que possibilitam a interaccedilatildeo com servidores SIP (Session Initiation Protocol) protocolo que dentre inuacutemeras funcionalidades estabelece

chamadas de voz via Internet O funcionamento do SIPServlet eacute similar ao do Servlet tradicional Java entretanto em vez de interagir com o protocolo HTTP estaacute apto a processar requisiccedilotildees e respostas do protocolo SIP Eacute por isso que seus componentes e serviccedilos podem ser reaproveitados

O Mobicents [3] tambeacutem eacute uma soluccedilatildeo que combina aleacutem de SIP vaacuterios outros serviccedilos para o segmento de telecomunicaccedilotildees que por sua vez eacute a implementaccedilatildeo de referecircncia do padratildeo JS-LEE 10 que em resumo eacute uma complementaccedilatildeo do jaacute conhecido JEE (J2EE para os mais antigos) especiacutefico para a comunicaccedilatildeo de componentes existentes em arquiteturas que agrupam web Voip som e imagem

Outro portal open source com soluccedilotildees interes-santes eacute o Ignite Real Time [4] que hospeda proje-tos como o OpenFire servidor Jabber (XMPP) com inuacutemeros plugins entre eles para chamadas SIP e comunicaccedilatildeo com o legendaacuterio Asterisk

Mais informaccedilotildees

[1] JSR116 httpjcporgenjsrdetailid=116

[2] JSR289 httpjcporgenjsrdetailid=289

[3] Mobicents httpwwwmobicentsorg

[4] Ignite Real Time httpwwwigniterealtimeorg

Sobre o autor

Edgar A Silva (edgarsilvaredhatcom) eacute Middleware Technology Lead da Red Hat no Brasil com atuaccedilatildeo desde 1998 em objetos distribuiacutedos (Corba COM+ e Java) Edgar vem nos uacuteltimos anos pesquisando aplicando e ministrando pales-tras e treinamentos no Brasil e exterior sobre assuntos de alta tecnologia entre eles JavaEE e SOA

copy Linux New Media do Brasil Editora Ltda

Dicas de especialistas para conviver com o Windows

Integraccedilatildeo transparente Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo que vocecirc queira viver em um mundo de coacutedigo aberto ele ainda estaacute cheio de Windows A ediccedilatildeo deste mecircs traz um apanhado de estrateacutegias para facilitar o conviacutevio com o sistema operacional da Microsoft por Joe Casad e Rafael Peregrino da Silva

As redes de hoje contam com um sortimento consideraacutevel de sistemas e dispositivos

Se todos esses componentes natildeo precisassem se comunicar natildeo as chamariacuteamos de rede Mesmo que vocecirc sonhe com um mundo sem Windows ndash e a IBM se esforce para tornar seu sonho realidade ndash essa rea-lidade ainda estaacute um pouco distante Por conta disso a ediccedilatildeo deste mecircs traz diversos artigos versando sobre interoperabilidade e integraccedilatildeo de sistemas No nosso primeiro artigo examinamos algumas teacutecnicas para conexatildeo de clientes VPN para Linux a servidores Windows

Tambeacutem vamos mostrar alguns aplicativos Linux para gerenciamento de conexotildees a VPNs e descreveremos algumas teacutecnicas de resoluccedilatildeo dos problemas para fazer o sistema do pinguumlim funcionar com o protoco-lo PPTP usado em redes Windows No artigo seguinte abordamos a integraccedilatildeo de sistemas Linux a um ambiente Windows usando o famo-so (alguns diriam infame) Microsoft Active Directory lanccedilando matildeo para tanto do sistema de autenticaccedilatildeo Likewise Open O Likewise eacute uma ferramenta de coacutedigo aberto que fornece uma confi guraccedilatildeo faacutecil para autenticaccedilatildeo dos tipos single sign-on e Kerberos O terceiro artigo da ses-satildeo mostra como confi gurar o Linux como um servidor de terminais para clientes Windows utilizando o xrdp ndash uma implementaccedilatildeo de coacutedigo aberto do Remote Desktop Protocol

(RDP) da Microsoft Nesse artigo vocecirc vai entender por que o siste-ma das janelas natildeo eacute necessaacuterio no servidor para criar um ambiente de terminais Windows e aprenderaacute como fazer os usuaacuterios desse sistema visualizarem um desktop Linux na sua aacuterea de trabalho tudo isso em apenas alguns passos

Por uacuteltimo apresentamos um soft-ware de coacutedigo aberto para agenda-mento de tarefas muito mais comple-xo que o veneraacutevel Cron e que tem como uma de suas maiores vantagens o fato de ser multiplataforma ndash o que facilita muito a administraccedilatildeo de um ambiente heterogecircneo de servidores

Se vocecirc precisa conviver com o Windows por que natildeo vi-ver em paz e com con-

forto Se esse eacute o seu caso esperamos tornar a sua vida um pouco menos atribulada com esta ediccedilatildeo de inte-graccedilatildeo com as tecnologias da gigante de Redmond

CAPA

Linux Magazine 50 | Janeiro de 2009

Iacutendice das mateacuterias de capa

Rede fechada 28Na ativa 34O manda-chuva do terminal 40 Muito aleacutem do Cron 44

27copy Linux New Media do Brasil Editora Ltda

28 httpwwwlinuxmagazinecombr

Configurando conexotildees VPN em clientes Linux

Rede fechadaClientes Linux eventualmente precisam de uma matildeozinha para se conectar a servidores VPN do Windowspor James Stanger

Dois benefiacutecios de se usar tuacute-neis VPN (Virtual Private Networks ou redes virtuais

privadas) satildeo as conexotildees criptografa-das e o acesso aos recursos localizados atraacutes do firewall Quando a questatildeo eacute interoperabilidade entretanto confi-gurar essas conexotildees pode ser difiacutecil em clientes Linux As distribuiccedilotildees Linux frequumlentemente tecircm problemas em es-tabelecer conexotildees a VPNs em servido-res cuja tecnologia eacute baseada em outros sistemas operacionais especialmente porque os aplicativos graacuteficos utiliza-dos para configurar essas conexotildees normalmente natildeo conseguem manter

o mesmo ritmo de desenvolvimento do Linux que estaacute geralmente duas geraccedilotildees agrave frente delas Assim pouco tempo apoacutes as distribuiccedilotildees terem sido lanccediladas as bibliotecas usadas para a criaccedilatildeo de VPNs satildeo modificadas e o aplicativo que vocecirc utilizava para fazer esse tipo de conexatildeo simplesmente paacutera de funcionar em ambientes he-terogecircneos Recentemente houve um avanccedilo nessa situaccedilatildeo e este artigo daacute algumas dicas sobre como estabele-cer conexotildees a VPNs a partir de um desktop Linux

Uma VPN cria um tuacutenel ponto-a-ponto por meio de uma rede puacuteblica

Vaacuterios protocolos oferecem suporte a conexotildees VPN entre eles as seguintes alternativas bastante populares L2TP via IPsec Foi o primeiro

protocolo desenvolvido pela Cisco para criaccedilatildeo de tuacuteneis de acesso criptografados L2TPv3 eacute a versatildeo mais recente mas certifique-se de escolher a ver-satildeo apropriada para a sua rede Lembre-se de que haacute duas im-plementaccedilotildees de IPsec principais no Linux Por exemplo sistemas mais antigos usam FreeSWAN ou Openswan para IPsec Sis-temas mais recentes com qual-

CA

PA

Quadro 1 Problemas e soluccedilotildees

Ao resolver problemas em conexotildees certifique-se de es-tar com os moacutedulos instalados e carregados Por exem-plo num sistema Ubuntu 8041 uma conexatildeo PPTP precisa dos seguintes moacutedulos

ppp_mppe 8068 2ppp_async 13312 1crc_ccitt 3072 1 ppp_asyncppp_generic 29588 6 ppp_mppe ppp_asyncslhc 7040 1 ppp_genericppdev 10372 0

A MTU (unidade maacutexima de transmissatildeo) eacute outra configu-raccedilatildeo importante pode ser necessaacuterio reduzir o valor de 1500 para algo menor como 1490

Em caso de problemas lembre-se de ativar as opccedilotildees de depuraccedilatildeo no cliente ndash sempre eacute possiacutevel desativaacute-las depois As opccedilotildees de depuraccedilatildeo podem incluir especifi-car pacotes ICMP para testar uma conexatildeo assim como determinar o tamanho do intervalo de eco

Uma opccedilatildeo estranha mas eventualmente uacutetil eacute desativar a criptografia Obviamente com isso perdem-se os benefiacutecios da conexatildeo VPN A maioria dos servidores rejeita conexotildees sem criptografia mas ainda assim essa opccedilatildeo pode ser de alguma ajuda para eliminar fontes de problemas

O mascaramento de IP e outras formas de NAT tambeacutem im-potildeem alguns problemas para conexotildees VPN Se estiverem sendo usados ESP ou AH (cabeccedilalhos de autenticaccedilatildeo) por exemplo haveraacute problemas com o NAT pois o AH executa uma verificaccedilatildeo que inclui valores como o endereccedilo IP da conexatildeo Como o NAT modifica o endereccedilo IP a verificaccedilatildeo falharaacute e portanto tambeacutem a comunicaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

29

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

quer versatildeo do kernel da seacuterie 26 dispotildeem de suporte nativo a Ipsec

Point-to-Point Tunneling Pro-tocol (PPTP) trata-se de um protocolo antigo que ainda eacute usado em diversos ambientes Microsoft

Secure Sockets LayerTransport Layer Security (SSLTLS) eacute um dos mais poderosos protocolos de interoperabilidade disponiacute-veis atualmente fornecendo suporte para muitos tipos de conexotildees VPN O OpenVPN [1] por exemplo eacute uma solu-ccedilatildeo para criaccedilatildeo de tuacuteneis de acesso criptografados baseada em SSLTLS

Com o passar dos anos jaacute houve muitas discussotildees sobre qual proto-colo eacute o mais seguro ou qual seria mais favoraacutevel ao modelo de desen-volvimento de coacutedigo aberto Muitas dessas discussotildees chegaram a assumir um teor quase religioso Poreacutem em vez de se envolver em tais discussotildees eacute mais uacutetil simplesmente descobrir qual dos protocolos funciona melhor para o seu tipo de rede em particular e entatildeo adotaacute-lo

Qualquer que seja o protocolo usado para criar o tuacutenel eacute possiacutevel enviar pacotes atraveacutes dele os quais seratildeo considerados pelo firewall como pacotes internos A chave como veremos a seguir eacute se certificar de que os pacotes certos atravessem a interface correta do tuacutenel

O ambiente Linux dispotildee de diversas ferramentas para configu-rar e gerenciar conexotildees VPN O utilitaacuterio KVpnc do projeto KDE oferece suporte para vaacuterias tecnolo-gias VPN (da Cisco passando pela Microsoft e culminando no Open-VPN) O vpnc eacute um programa de linha de comando para sistemas Cisco Muitas distribuiccedilotildees Linux passaram a usar o NetworkManager [2] desenvolvido pela Red Hat que

permite instalar extensotildees para redes Cisco e Microsoft Dependendo da tecnologia VPN que vocecirc pretende usar vocecirc teraacute que instalar a exten-satildeo apropriada

O pptpconfig [3] eacute um aplicativo antigo que funciona especialmente bem para distribuiccedilotildees Linux da Red Hat e da Novell bem como com BSDs e vaacuterios outros sistemas Como o nome sugere o pptpconfig eacute usado para gerenciar VPNs basea-dos em tecnologia Microsoft

Criando um tuacutenelIndependentemente de qual aplicati-vo ou protocolo for usado eacute necessaacuterio obter algumas informaccedilotildees baacutesicas para estabelecer uma conexatildeo com sucesso Por exemplo Informaccedilotildees sobre autenti-

caccedilatildeo dependendo do que o administrador da rede exigir seraacute preciso fornecer informa-ccedilotildees especiacuteficas a respeito do usuaacuterio para se autenticar no servidor VPN A alternativa menos segura (embora mais comum) eacute fornecer um nome de usuaacuterio e uma senha Outras opccedilotildees incluem chaves priva-das e certificados A Cisco daacute preferecircncia ao uso de chaves e certificados por exemplo

Gateway (tambeacutem conhecido popularmente como nome do servidor VPN) eacute o endereccedilo IP

ou nome do equipamento VPN que fornece o tuacutenel depois da autenticaccedilatildeo

Tipo de protocolo como dis-cutido acima eacute necessaacuterio es-colher entre os protocolos exis-tentes tais como L2TP PPTP OpenVPN etc A ferramenta de configuraccedilatildeo vai solicitar que sejam especificadas as opccedilotildees adequadas para o(s) protocolo(s) escolhido(s)- pelo administrador da rede

Configuraccedilotildees gerais qualquer que seja o protocolo de autenti-caccedilatildeo seraacute preciso fornecer in-formaccedilotildees especiacuteficas para a sua conexatildeo Por exemplo algumas redes solicitam a configuraccedilatildeo de uma unidade maacutexima de transmissatildeo (do inglecircs Maximum Transmission Unit o famigerado MTU) especiacutefica o aplicativo permite que sejam realizadas as modificaccedilotildees especiacuteficas para a conexatildeo em questatildeo

Informaccedilotildees de roteamento natildeo importa os tipos de proto-colo ou autenticaccedilatildeo escolhi-dos normalmente tambeacutem eacute necessaacuterio assegurar-se de que os pacotes certos estatildeo de fato sendo roteados atraveacutes da inter-face correta

Assim eacute certo depender da ajuda de um administrador de redes compre-

Quadro 2 Preso do lado de fora

Conforme satildeo feitos experimentos com a conexatildeo VPN certifique-se de que sua conta natildeo seja trancada do lado de fora A maioria das VPNs tem dificuldade em diferenciar entre experimentos com a configuraccedilatildeo e tentati-vas de invasatildeo Se vocecirc ficar trancado de fora natildeo conseguiraacute entrar nem mesmo com as configuraccedilotildees corretas

Se ficar impossiacutevel conectar-se preste atenccedilatildeo ao arquivo de log e agraves men-sagens de depuraccedilatildeo para verificar se as mensagens de autenticaccedilatildeo e conexatildeo mudaram de alguma forma uma mudanccedila sutil pode indicar que se estaacute na verdade trancado do lado de fora da conta Se for esse o caso seraacute preciso esperar a conta ser desbloqueada Com sorte essa limitaccedilatildeo seraacute temporaacuteria Caso contraacuterio seraacute preciso contatar o administrador da rede cada vez que ocorrer esse imprevisto

copy Linux New Media do Brasil Editora Ltda

30 httpwwwlinuxmagazinecombr

CAPA | VPNS

ensivo para ajudar o usuaacuterio a obter as informaccedilotildees listadas acima

PPTP com Microsoft Mesmo que o protocolo PPTP seja considerado menos seguro que o da Cisco ou o OpenVPN ele ainda eacute bastante popular Para confi gurar uma conexatildeo PPTP haacute um grande rol de opccedilotildees de autenticaccedilatildeo com-pressatildeo e criptografi a

Um dos desafi os eacute escolher o meacute-todo de autenticaccedilatildeo Autenticaccedilatildeo direta ( peer authentication ) signifi -ca que o servidor solicitaraacute que o cliente se identifi que As opccedilotildees para essa modalidade de autentica-ccedilatildeo incluem Challenge Handshake Authenti-

cation Protocol (CHAP) proto-colo padratildeo em conformidade com o RFC correspondente Basta fornecer um nome de usuaacuterio e uma senha para se autenticar MS-CHAP eacute a im-plementaccedilatildeo do protocolo pela Microsoft Se o administrador da rede natildeo revelar o protocolo empregado use o MS-CHAP no caso de servidores Windows

EAP eacute uma extensatildeo do pro-tocolo de autenticaccedilatildeo PPP original que permite o uso de um certifi cado em vez de nome de usuaacuterio e senha Me-nos comum do que MS-CHAP e CHAP

Muitos clientes oferecem a opccedilatildeo de recusar todos esses meacutetodos de autenticaccedilatildeo Para trabalhar bem com um servidor VPN remoto talvez a melhor opccedilatildeo seja usar diretamente o daemon PPP do seu sistema Compactar os dados para trans-

missatildeo pela VPN tambeacutem eacute uma boa ideacuteia Geralmente haacute trecircs opccedilotildees de compressatildeo

Microsoft Point-to-Point Com-pression (MPPC) protocolo an-tigo baseado no algoritmo LZ e geralmente reservado a clientes Windows antigos (Windows 95 e NT) Contudo pode funcionar em outras VPNs

Defl ate compression protocolo similar ao MPPC mas livre de patentes Eacute mais universal que

o MPPC mas raramente usado em VPNs Microsoft

BSD compression descrito na RFC 1977 eacute o protocolo de compressatildeo tradicional

O tipo de compressatildeo geralmente causa problemas nas conexotildees Caso o administrador da rede natildeo coope-re eacute melhor tentar primeiro uma conexatildeo sem compressatildeo

A confi guraccedilatildeo da criptografi a tambeacutem eacute importante O Microsoft Point-to-Point Encryption (MPPE) eacute um subconjunto do MPPC Pode-se usar dois comprimentos de chave di-ferentes 40 bits e 128 bits Empresas de muitos paiacuteses usam apenas cha-ves de 40 bits Na confi guraccedilatildeo de clientes PPTP o administrador deve informar o comprimento da chave Senatildeo basta testar ateacute descobrir

Stateful MPPE geralmente eacute a melhor opccedilatildeo de criptografi a uma vez que fornece conexotildees de rede mais raacutepidas Como veremos mais agrave frente eacute necessaacuterio habilitar o moacutedulo MPPE para qualquer uma dessas confi guraccedilotildees

DNS A maioria dos clientes DNS pergunta se deve usar as informaccedilotildees de DNS em etcresolvconf ou aquelas for-necidas pelo servidor VPN A proacutepria conexatildeo VPN pode causar modifi ca-ccedilotildees na resoluccedilatildeo de DNS principal-

Figura 2 Criaccedilatildeo de rotas no cliente NetworkManager

Figura 1 Criaccedilatildeo de rotas no cliente VPN KVpnc

copy Linux New Media do Brasil Editora Ltda

31

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

mente porque o cliente VPN altera o conteuacutedo do arquivo etcresolvconf mesmo quando confi gurado ex-plicitamente para natildeo fazecirc-lo

A melhor soluccedilatildeo eacute usar um clien-te VPN que funcione da forma que se espera Na falta de tal soluccedilatildeo pode-se contornar o problema crian-do um script que faccedila uma coacutepia do arquivo etcresolvconf correto Quando o cliente VPN pergunta se deve ldquorealizar acessos ao DNS atra-veacutes do tuacutenelrdquo geralmente o que ele realmente quer dizer eacute se pode alte-rar o arquivo etcresolvconf com seus novos dados A escolha correta depende de informaccedilotildees fornecidas pelo administrador da rede Se o ob-jetivo natildeo for usar o DNS da VPN seraacute difiacutecil o cliente acessar as outras maacutequinas detraacutes da VPN

Suporte ao GRE Para conectar um cliente a uma VPN Microsoft atraveacutes de um fi -rewall Linux haacute um ajuste extra a ser feito nele para que tudo funcio-ne a ativaccedilatildeo do protocolo Generic Route Encapsulation (GRE) para atravessar o fi rewall Supondo o uso do iptables no fi rewall Linux e um servidor VPN com o endereccedilo 18944453 eacute necessaacuterio executar o seguinte comando

iptables -I FORWARD -p 47 -d 18944453 -j ACCEPT

Roteamento Pode ser necessaacuterio rotear pacotes ex-plicitamente atraveacutes de uma interface especiacutefi ca Muitos administradores de sistemas Windows consideram esse um dos maiores desafi os do trabalho com clientes Linux

A necessidade de rotear pacotes explicitamente eacute especialmente importante quando a rede remota utiliza IPs puacuteblicos Mesmo que seja usado um tuacutenel VPN a in-

terface de rede ainda pode tentar rotear pacotes pela Internet em vez de simplesmente usar o tuacutenel Satildeo muito frequumlentes problemas em conexotildees VPN cuja soluccedilatildeo eacute sim-plesmente adicionar algumas rotas alternativas agrave tabela de roteamento padratildeo do sistema Isso pode ser feito tanto com o aplicativo graacutefi co de confi guraccedilatildeo do VPN quanto pela linha de comando com os utilitaacuterios route ou iproute

route add -net 131639723 netmask 255255255255 dev ppp0 ou iproute

ip route add 17187445424 dev ppp0

Em alguns casos sem essas rotas

natildeo eacute possiacutevel fazer com que os paco-tes que deveriam trafegar pela VPN realmente o faccedilam e eles acabam saindo pela placa de rede

Figura 3 KVpnc com uma sessatildeo PPTP legada

Figura 4 Importaccedilatildeo de um certifi cado Cisco no KVpnc

copy Linux New Media do Brasil Editora Ltda

32 httpwwwlinuxmagazinecombr

CAPA | VPNS

Interface graacutefi ca Os aplicativos graacutefi cos para confi gu-raccedilatildeo de VPNs estatildeo fi cando cada vez melhores quando se trata de adicionar as rotas necessaacuterias auto-maticamente A fi gura 1 mostra as confi guraccedilotildees para o KVpnc A fi gura 2 ilustra uma confi guraccedilatildeo similar no NetworkManager

Assim como essas capturas de tela ilustram pacotes que coincidam com o endereccedilo IP e a maacutescara de rede defi nidos natildeo seratildeo enviados atraveacutes da conexatildeo de rede padratildeo mas simpelo tuacutenel VPN

O KVpnc ( fi gura 3 ) disponiacutevel em vaacuterias distribuiccedilotildees talvez seja o mais versaacutetil entre os clientes atuais pois oferece suporte a L2TP aos protocolos VPN tanto livres quanto proprietaacuterios da Cisco ao OpenVPN e ao PPTP da Microsoft O KVpnc tambeacutem permite a importaccedilatildeo de certifi cados conforme mostra a fi gura 4

Apesar de os desenvolvedores da interface graacutefi ca do programa terem cometido alguns deslizes ortograacutefi -

cos na interface os desenvolvedores do KVpnc realmente criaram um produto que trabalha parti-cularmente bem em conjunto com dispo-sitivos Cisco

O veneraacutevel pptp-config tambeacutem estaacute disponiacutevel em muitas distribuiccedilotildees O se-gredo para o sucesso no seu uso pptpconfig estaacute na confi guraccedilatildeo da criptografi a usada pelo programa que precisa ser exatamen-te aquele previsto pelo administrador

Com frequumlecircncia eacute importante usar de criptografi a MPPE e habilitar o modo stateful desse proto-

colo No caso do pptpconfig seria preciso selecionar Require Microsoft Point-to-Point Encryption (MPPE) e Refuse Stateless Encryption para conseguir isso

O pptpconfig tambeacutem tem capaci-dade de adicionar rotas automatica-mente Simplesmente clique na aba Routing marque o botatildeo Client to LAN e digite as rotas dos sistemas que devem ser conectados pela VPN

Muitos usuaacuterios Linux preferem o NetworkManager por um simples motivo ele costuma funcionar Haacute plugins para ele que suportam vaacuterios protocolos incluindo OpenVPN Microsoft PPTP e L2TP Apoacutes insta-laacute-los basta clicar no iacutecone de rede e selecionar as conexotildees VPN para comeccedilar a fornecer as informaccedilotildees apropriadas A fi gura 5 mostra as etapas para confi gurar uma conexatildeo Cisco num sistema Ubuntu

O NetworkManager suporta a criptografi a por chave compartilhada quanto por certifi cado X509 Para fazecirc-lo funcionar adequadamente

eacute preciso instalar o daemon racoon para fazer a troca de chaves pela In-ternet Depois deve-se obter com o administrador da rede a chave com-partilhada e os certifi cados assinados caso eles sejam usados

IPsec e kernel 26 Certifi que-se de instalar os daemons certos para a conexatildeo Se o sistema utilizar alguma versatildeo do kernel 26 ele jaacute suporta nativametne o IPsec mas se for usado o KVpnc ou o vpnc ainda seraacute preciso instalar o daemon racoon que se encarrega da troca de chaves em implementaccedilotildees IPsec Se o racoon natildeo estiver disponiacutevel no re-positoacuterio da distribuiccedilatildeo em questatildeo basta conferir o site do projeto [4]

Para suportar o FreeSWAN o padratildeo antigo para o IPsec eacute pre-ciso instalar o daemon ipsec caso contraacuterio a implementaccedilatildeo falharaacute pois o sistema natildeo conseguiraacute con-duzir as trocas de senha necessaacuterias ao estabelecer o tuacutenel

Conclusatildeo Estabelecer uma VPN hoje em dia eacute muito mais faacutecil mas os clien-tes VPN graacutefi cos ainda natildeo fazem tudo pelo usuaacuterio Apesar de ainda ser trabalhoso fazer a comunicaccedilatildeo com servidores Microsoft Cisco e OpenVPN basta uma certa dedica-ccedilatildeo para se obter sucesso

Mais informaccedilotildees

[1] OpenVPN httpopenvpnnet

[2] NetworkManager httpwwwgnomeorgprojectsNetworkManager

[3] pptpclient httppptpclientsourceforgenet

[4] Rasvpn httpwwwnetbsdorgdocsnetworkipsecrasvpnhtml

Figura 5 Confi guraccedilatildeo de VPN Cisco no NetworkManager

copy Linux New Media do Brasil Editora Ltda

33

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

Linux Pro novo (julho) 77 251108 172941

copy Linux New Media do Brasil Editora Ltda

34 httpwwwlinuxmagazinecombr

Integraccedilatildeo faacutecil ao Active Directory com o Likewise Open

Na ativaO Likewise Open oferece integraccedilatildeo faacutecil a ambientes Active Directory Mostramos como instalar e configurar o sistema de autenticaccedilatildeo amigaacutevel para administradorespor Walter Neu

O sistema de autenticaccedilatildeo Li-kewise Open [1] integra clien-tes Linux ao ambiente Active

Directory Obviamente tambeacutem eacute possiacutevel configurar o Active Directory pelo Samba e seus atores coadjuvantes [2] mas a soluccedilatildeo da Likewise oferece vaacuterios benefiacutecios para facilitar a confi-guraccedilatildeo e a administraccedilatildeo

A versatildeo gratuita e GPL do Likewi-se suporta autenticaccedilatildeo em diretoacuterios AD a autorizaccedilatildeo de serviccedilos ldquoker-berizadosrdquo e ateacute o recurso de single sign-on Isso pode se parecer bastante com o Samba que faz as mesmas coisas na verdade o gerente de pro-jetos da Likewise Gerald Carter eacute um antigo membro da equipe central

de desenvolvimento do Samba O Likewise Open se aproveita do tra-balho do Samba embora acrescente diversos recursos proacuteprios

Pacotes prontosHaacute pacotes do Likewise para distri-buiccedilotildees da Red Hat Novell e Cano-nical aleacutem de alguns sistemas Unix comerciais e do MacOS X

O site do Likewise exibe a versatildeo 50 embora os pacotes especiacuteficos por distribuiccedilatildeo incluam a versatildeo 4 usada neste artigo Usuaacuterios do Ubuntu tecircm agrave disposiccedilatildeo os pacotes likewise-open e likewise-open-gui no repositoacuterio Uni-verse Os pacotes do Likewise incluem vaacuterias dependecircncias ndash primordialmente

relacionadas ao Kerberos O Likewise Open se baseia na versatildeo MIT do Ker-beros como back-end [3] Durante a instalaccedilatildeo no Ubuntu o pacote pede para o administrador especificar os servidores Kerberos e administrativo (figuras 1 e 2)

Aleacutem de um servidor AD e uma estrutura de domiacutenio gerenciada pelo Windows o Likewise possui dois ou-tros requisitos um servidor de nomes funcional e um reloacutegio do sistema sincronizado Se os reloacutegios do cliente e do servidor estiverem mais de cinco minutos fora de sincronia o servidor Kerberos certamente se recusaraacute a emitir tiacutequetes por medida de segu-ranccedila para evitar ataques

Nova abordagemAdicionar um sistema Linux ldquocrurdquo a um domiacutenio exige certo trabalho de configuraccedilatildeo [2] O Likewise Agent faz a maior parte desse trabalho adi-cionando-se ao Name Service Switch (NSS) e aos Pluggable Authentication Modules (PAM) no cliente local

No lado do servidor o agente re-passa as requisiccedilotildees de autenticaccedilatildeo ao servidor Kerberos 5 e ao AD base-ado em LDAP Para permitir que isso aconteccedila o pacote instala algumas bi-bliotecas e arquivos de configuraccedilatildeo Por exemplo liblibnss_lwidentityso integra o Likewise ao NSS e etcpamdpam_lwidentityso faz o mesmo para o PAM O arquivo de configu-

CA

PA

Figura 1 O gerenciador de pacotes do Ubuntu pede o nome do servidor Kerberos ao se instalar os pacotes do Kerberos

copy Linux New Media do Brasil Editora Ltda

35

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

raccedilatildeo etcsecuritypam_lwidentityconf configura o moacutedulo e a interface do controlador de domiacutenio remoto eacute implementada pelo servidor Winbind do Likewise o likewise-winbindd O servior tem seu proacuteprio arquivo de configuraccedilatildeo etcsambalwiauthdconf semelhante ao arquivo smbconf do pacote Samba

O Likewise Open integra esses com-ponentes para suportar um login de domiacutenio transparente para os usuaacuterios O processo de login repassa o nome do usuaacuterio e sua senha para o PAM O moacutedulo pam_lwidentityso se comuni-ca com o serviccedilo de autenticaccedilatildeo do Likewise que gera uma chave secreta a partir do nome e da senha do usuaacute-rio O daemon do Likewise utiliza a chave secreta para solicitar um tiacutequete para solicitaccedilatildeo de tiacutequetes (TGT na nomenclatura do Kerberos) ao ser-vidor de autenticaccedilatildeo Kerberos que roda como parte do Key Distribution Center (KDC) no servidor AD

Ao apresentar o TGT o serviccedilo de autenticaccedilatildeo do Likewise recebe tiacutequetes de serviccedilo para outros ser-viccedilos de rede como SSH Os usuaacute-rios entatildeo jaacute podem fazer logon nos servidores kerberizados sem digitar suas senhas novamente

Configure o pacote de instalaccedilatildeo do Likewise em cada maacutequina Li-nux que vai se tornar um membro do domiacutenio AD (e ser gerenciada pelo Likewise) Se forem usados os pacotes de instalaccedilatildeo fornecidos no site o Likewise Open seraacute instalado com uso de um Bitrock Installer ndash um executaacutevel cujo nome de arquivo ter-mina com installer Para executar o programa eacute preciso tornar-se root e seguir as instruccedilotildees na tela

O instalador exibe informaccedilotildees sobre as licenccedilas de coacutedigo aberto dos componentes instalados antes de o Likewise instalar seus arquivos Depois disso o instalador leva o ad-ministrador ao domainjoin-cli que se localiza no diretoacuterio usrcente-risbin (violando as-sim as convenccedilotildees do FHS [4] os pacotes das distribuiccedilotildees e as versotildees mais recentes do Likewise corrigem esse erro) O agente ar-mazena informaccedilotildees de log em varloglw-identity ndash se for usada a versatildeo do repositoacuterio do Ubuntu ndash em varloglikewise-open

Pode entrarUm domiacutenio AD precisa que os siste-mas usuaacuterio e cliente tornem-se mem-bros dele O ato de criar uma conta de maacutequina no serviccedilo de diretoacuterio da Microsoft eacute chamado no idioma do AD de ldquojuntar-se ao domiacuteniordquo (ou ldquoJoining the domainrdquo em inglecircs)

Haacute uma ferramenta de linha de co-mando chamada domainjoin-cli que permite que o usuaacuterio root se junte ao domiacutenio AD criando uma conta de maacutequina no diretoacuterio nesse processo A ferramenta domainjoin-cli aceita a opccedilatildeo join e o domiacutenio como argumen-tos O argumento do domiacutenio precisa ser especificado como um nome DNS completamente qualificado

Aleacutem disso o comando espera o nome de um usuaacuterio com autorizaccedilatildeo para criar contas de computador no ambiente AD O exemplo 1 mostra um computador chamado ubuntu se juntando ao domiacutenio exemploorg A conta Administrator possui os privileacute-gios necessaacuterios para essa etapa

A segunda opccedilatildeo para se juntar a um domiacutenio eacute a interface graacutefica do Likewise Open (figura 3) Poreacutem a interface natildeo estaacute incluiacuteda no pacote baacutesico do programa Para acrescentaacute-la simplesmente instale o pacote likewise-open-gui e inicie-o com privileacutegios de root digitando domainjoin-gui

Manual e automaacuteticoNos dois casos o Likewise Open lida com a tarefa de configuraccedilatildeo em se-gundo plano eliminando a necessi-

Figura 2 Eacute preciso especificar o servidor administrativo para o domiacutenio do Kerberos

Exemplo 1 Juntando-se a um domiacutenio

01 domainjoin-cli join exampleorg Administrator02 Joining to AD Domain exampleorg03 With Computer DNS Name ubuntuexampleorg04 05 AdministratorEXAMPLEORGrsquos password06 Enter AdministratorEXAMPLEORGrsquos password07 SUCCESS

copy Linux New Media do Brasil Editora Ltda

36 httpwwwlinuxmagazinecombr

CAPA | Likewise

dade de etapas manuais complexas O software modifica as configuraccedilotildees para interaccedilatildeo do usuaacuterio com o AD (figura 4) incluindo os arquivos neces-saacuterios para a comunicaccedilatildeo do Kerberos com o KDC krb5conf e os arquivos do PAM em etcpamd

Para fazer login usando um domiacutenio de cliente Linux os usuaacuterios precisam de um diretoacuterio home no cliente O Likewise cria o diretoacuterio localmente se for modificado o arquivo etcse-curitypam_lwidentityconf

O arquivo etcnsswitchconf faz o Likewise Open retomar o controle e especifica o meacutetodo lwidentity O servi-ccedilo de nomes do NSS verifica primeiro arquivos locais como etcpasswd

passwd files lwidentitygroup files lwidentity

Se ele natildeo conseguir encontrar uma conta ele acessa o AD em se-guida Isso significa que usuaacuterios lo-cais ainda podem acessar a maacutequina local caso o AD falhe

Configuraccedilatildeo cuidadosaO Likewise eacute cuidadoso na configura-ccedilatildeo do sistema Linux Ele cria becapes de todos os arquivos que modifica acrescentando um sufixo lwid-entitybak e por um bom motivo executar domainjoin-cli leave como root na li-nha de comando ou na interface graacutefica apaga a conta da maacutequina

Nesse caso o Likewise recupera todos os arquivos de configuraccedilatildeo que tive-

rem sido alterados Ele usa o arquivo etcsambalwiauthdconf para permitir que os ad-ministradores especifiquem opccedilotildees de configuraccedilatildeo para seu proacuteprio sistema Winbind essas configuraccedilotildees devem ser familiares agravequeles que utilizam o Samba num am-biente AD

Configuraccedilatildeo individualO paracircmetro template shell define o shell de login para todos os usuaacuterios de forma centralizada O diretoacuterio home do usuaacuterio natildeo eacute definido no banco de dados de usuaacuterios do AD portanto eacute preciso especificar o caminho no ar-quivo de configuraccedilatildeo com o paracircmetro template homedir do Samba

template shell = binbashtemplate homedir = homeDU

O Likewise-Winbind substitui D pelo nome de domiacutenio curto e U pelo usuaacuterio do domiacutenio

Para evitar colisotildees de nomes em relacionamentos de confianccedila faz sentido adicionar o domiacutenio ao caminho do usuaacuterio ndash e aplicar os padrotildees para diretoacuterios dos usuaacuterios Se a configuraccedilatildeo natildeo for alterada o Likewise Open usaraacute a contra-barra como separador de domiacutenios e nomes de usuaacuterios Obviamente a contrabarra possui um significado especial em shells Unix Os especia-listas recomendam mudar isso para outro caractere em todos os clientes usando a variaacutevel winbind separator A sugestatildeo eacute o sinal +

Se houver apenas um domiacutenio eacute possiacutevel definir winbind use default domain = yes para evitar separar o domiacutenio dos nomes de usuaacuterios Se isso natildeo for feito os usuaacuterios do domiacutenio fornecidos pelo Winbind natildeo funcionaratildeo a menos que se adicione um prefixo de domiacutenio Reiniciar o Likewise Open por seu script de inicializaccedilatildeo aplica as mudanccedilas

VerbosoO pacote likewise-open conteacutem trecircs ferramentas de diagnoacutestico ndash lwinet lwimsg e lwiinfo ndash uacuteteis para fins de depuraccedilatildeo entre outros

Exemplo 2 klist exibe os tiacutequetes locais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081208 134808 081208 234808 krbtgtEXAMPLEORGEXAMPLEORG07 renew until 081908 13480808 081208 134808 081208 234808 SUSE$EXAMPLEORG09 renew until 081908 134808

Figura 3 A interface do Likewise Open pede o nome DNS do domiacutenio e os nomes das maacutequinas

copy Linux New Media do Brasil Editora Ltda

37

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

Como o Likewise se baseia no coacutedigo do Winbindd do Samba as ferramentas vatildeo lidar com as tarefas normalmente realizadas pelo dae-mon Winbind do Samba Digitando lwiinfo eacute possiacutevel verificar a conexatildeo ao controlador do domiacutenio

A ferramenta corresponde ao wbin-fo do Samba As duas consultam o daemon do Winbind Por exemplo o lwiinfo -u lista todos os usuaacuterios do domiacutenio padratildeo

EXAMPLE+mokr000EXAMPLE+phkr000EXAMPLE+wane000

O mesmo princiacutepio se aplica a grupos no serviccedilo de diretoacuterio que satildeo exibidos pela opccedilatildeo -g Isso ga-rante que o Linux saiba os nomes do AD O comado lwiinfo -g lista os grupos conhecidos

EXAMPLE+contasEXAMPLE+marketing []

Novamente o Likewise usa o ca-ractere + configurado em lwiauthdconf como separador no Winbind A ferramenta lwimsg corresponde ao smbcontrol e eacute usada para controlar o Winbindd definindo o niacutevel de depuraccedilatildeo por exemplo A contra-parte da ferramenta net do Samba usada para administraccedilatildeo remota de um domiacutenio eacute o lwinet

Apoacutes instalar o software eacute uma boa ideacuteia tentar fazer logon no AD O

formato do nome do usuaacuterio precisa corresponder agravequele definido para o serviccedilo de diretoacuterio Por exemplo se for mantida a configuraccedilatildeo padratildeo para separaccedilatildeo entre o domiacutenio e o nome do usuaacuterio mas o separador for alterado para o sinal de soma os usuaacuterios precisaratildeo digitar seus nomes como DOMIacuteNIO+usuaacuterio no login pelo console ou por um gerenciador de desktop (veja a fi-gura 5)

ubuntu Login EXAMPLE+wane000PasswordEXAMPLE+wane000ubuntu~$

Conforme mencionado anterior-mente o Likewise autentica usuaacute-rios pelo protocolo Kerberos por meio da requisiccedilatildeo de um TGT ao KDC antes de prosseguir agrave instala-ccedilatildeo local do tiacutequete no cliente como tmpkrb5cc_UID (veja o exemplo 2) O comando klist exibe os tiacutequetes vaacutelidos de um usuaacuterio

O usuaacuterio que posuir um tiacutequete tem permissatildeo para acessar serviccedilos kerberizados na rede sem fazer logon separadamente no serviccedilo de rede

Single sign-onPara permitir que um serviccedilo de rede decirc acesso sem senha a um usuaacuterio o administrador precisa atribuir um Service Principal Name (SPN) ao serviccedilo O SPN identifica o serviccedilo dentro do ambiente AD O serviccedilo pede um tiacutequete de serviccedilo para o Service Principal ao KDC identifi-cando-se com seu TGT

O SPN compreende uma defi-niccedilatildeo de serviccedilo seguida por uma barra e o hostname completamente qualificado do servidor um siacutembolo de arroba e o domiacutenio

Figura 4 Depois de entrar no domiacutenio o Likewise cria uma conta de maacutequina para o computador Ubuntu no Active Directory

Figura 5 O GDM pede um nome para login na autenticaccedilatildeo Neste AD o nome eacute composto pelo nome do domiacutenio (EXAMPLE) um sinal + e o nome do usuaacuterio

copy Linux New Media do Brasil Editora Ltda

38 httpwwwlinuxmagazinecombr

CAPA | Likewise

As definiccedilotildees de serviccedilos incluem host ftp ou pop Se um usuaacuterio es-tabelecer uma conexatildeo SSH com outro computador membro de um AD gerenciado pelo Likewise o serviccedilo kerberizado apresentaraacute o TGT do usuaacuterio e pediraacute um tiacute-quete de serviccedilo ao KDC para por exemplo o SPN hostubuntuexam-pleorgEXAMPLEORG ndash isso pressupotildee que o cache local de tiacutequetes ainda natildeo tenha um tiacutequete O tiacutequete de serviccedilo conteacutem o ID do usuaacuterio que faz a requisiccedilatildeo e a chave da sessatildeo O Likewise Open criptograva isso com a chave do servidor e a arma-zena no cache de usuaacuterios como o TGT (exemplo 3)

O cliente SSH envia automati-camente o tiacutequete de serviccedilo crip-tografado e um timestamp tambeacutem criptografado para validar o sshd do autenticador Isso garante que cada requisiccedilatildeo de tiacutequete seja uacutenica enquanto assegura que o cliente re-almente natildeo possui a chave da ses-satildeo Sem o autenticador seria mais faacutecil para um agressor capturar um tiacutequete no traacutefego da rede e iniciar um ataque de repeticcedilatildeo

O servidor valida o tiacutequete de ser-viccedilo apresentado a ele Para isso ele faz referecircncia ao arquivo etckrb5keytab local Esse arquivo armazena a chave do servidor que o usuaacuterio utiliza para decifrar o tiacutequete de serviccedilo revelando assim a chave da sessatildeo O autenticador se baseia na chave da sessatildeo caso tenha sucesso o usuaacuterio eacute autenticado sem neces-sidade de senha (figura 6)

ConexatildeoO Likewise Open configura automa-ticamente clientes SSH preacute-existen-tes e outros clientes ao se juntarem ao domiacutenio permitindo que usem o Kerberos para se autenticarem no futuro No lado do servidor o Likewise adiciona as linhas

GSSAPIAuthentication yesGSSAPICleanupCredentials yes

ao arquivo de configuraccedilatildeo etcsshsshd_config O Likewise tambeacutem acrescenta as seguintes linhas para um cliente SSH

GSAPIAuthentication yesGSSAPIDelegateCredentials yes

A instruccedilatildeo GSSAPIDelegateCreden-tials passa o TGT para o servidor de des-tino Para todas as outras configuraccedilotildees o software utiliza a Generic Security Ser-vices API (API de serviccedilos geneacutericos de seguranccedila GSSAPI) uma interface ge-neacuterica para serviccedilos de seguranccedila como o Kerberos

Figura 6 O Likewise implementa o single sign-on por meio do Kerberos Os usuaacuterios natildeo precisam digitar uma senha para fazer logon

Exemplo 4 Montagem de compartilhamentos Samba

01 ltxml version=rdquo10rdquo encoding=rdquoUTF-8rdquogt02 ltpam_mountgt03 ltvolume user = ldquordquo04 server = ldquoSAMBASERVERrdquo05 mountpoint = ldquohomeEXAMPLE(USER)Documentrdquo06 path = ldquo(USER)rdquo07 fstype = ldquosmbfsrdquo gt08 ltpam_mountgt

Exemplo 3 Tiacutequetes no cache de credenciais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081308 154829 081408 014830 krbtgtEXAMPLEORG EXAMPLEORG07 renew until 082008 15482908 081308 154830 081408 014830 SUSE$EXAMPLEORG09 renew until 082008 15482910 081308 154838 081408 014830 hostubuntuexampleorg11 renew until 082008 15482912 081308 154838 081408 014830 hostubuntuexampleorgEXAMPLEORG13 renew until 082008 154829

copy Linux New Media do Brasil Editora Ltda

39

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

LocalNa primeira vez em que um usuaacuterio do domiacutenio faz logon num cliente o Likewise Open usa o PAM (pam_lwidentityso) para criar diretoacuterios locais para esse usuaacuterio Alterna-tivamente o moacutedulo pam_mount pode montar diretoacuterios centrais do usuaacuterio num servidor remoto por SMBCIFS [5] Isso garante a todos os usuaacuterio o acesso a seus proacuteprios arquivos independentemente do cliente usado por eles no login O compartilhamento eacute definido por uma linha no arquivo etcsecuri-typam_mountconf que usa a palavra-chave volume

volume usuaacuterio sistema_de_arquivos servidor compartilhamento ponto_de_montagem opccedilotildees algoritmo caminho

A presenccedila de um curinga () no paracircmetro usuaacuterio faz o moacutedulo inserir o nome do usuaacuterio Sistema_de_arquivos pode ser smbfs ou cifs O servidor pode ser um IP ou um nome NetBIOS e compartilhamento pode usar o amp como curinga para o nome do usuaacuterio

Os trecircs uacuteltimos paracircmetros geral-mente natildeo satildeo necessaacuterios traccedilos satildeo aceitaacuteveis nesse caso montar o diretoacuterio Documentos ou o diretoacuterio home completo eacute questatildeo de gosto e depende de como a empresa orga-niza seus servidores centrais

Caso o ponto de montagem natildeo exista o moacutedulo pam_mount do PAM o cria se sua opccedilatildeo mkmountpoint 1 estiver presente Na versatildeo 029 o pam_mount armazena as configura-ccedilotildees num formato XML equivalente conforme mostra o exemplo 4

Antes das linhas sufficient na seccedilatildeo auth de etcpamd eacute possiacutevel inserir uma linha para o moacutedulo O exemplo 5 mostra uma configuraccedilatildeo nos arquivos common-auth e common-session no Ubuntu Para evitar a necessidade de os usuaacuterios digitarem suas senhas repetidamente a linha tr_first_pass = yes do arquivo etcsecuritypam_lwidentityconf ativa a opccedilatildeo para tentar novamente uma senha jaacute digitada antes

Versatildeo comercialAleacutem da versatildeo de coacutedigo aberto do Likewise a corporaccedilatildeo america-na Likewise Software oferece uma versatildeo comercial de seu software o Likewise Enterprise [6] A versatildeo comercial possui suporte a poliacuteticas de grupo no AD aleacutem das funciona-lidades oferecidas pela versatildeo livre o produto define aproximadamente 500 poliacuteticas padratildeo O Likewise Ad-ministrative Console eacute capaz de usar uma maacutequina Linux ou Unix para gerenciar registros do AD

Aleacutem disso tudo o Likewise En-terprise suporta desktops Linux que fazem referecircncia ao AD para obten-ccedilatildeo de configuraccedilotildees e restriccedilotildees Isso

ativa a implementaccedilatildeo de poliacuteticas estritas de seguranccedila A variante corporativa estaacute disponiacutevel gratuita-mente para fins de avaliaccedilatildeo ou por US$ 250 na versatildeo para servidores A empresa oferece dois niacuteveis de suporte comercial

Nova caraUma vez configurado o Likewi-se Open oferece o mesmo escopo funcional de uma combinaccedilatildeo de Samba Kerberos PAM e NSS Ele livra o administrador de vaacuterias tarefas monoacutetonas e repetitivas de configu-raccedilatildeo e suporta o gerenciamento de usuaacuterios centralizado e independente de plataforma O serviccedilo de autenti-caccedilatildeo por tiacutequetes do Kerberos e o single sign-on satildeo bocircnus

Quem se interessar pelo Likewi-se Open pode apreciar os recursos adicionais oferecidos pela versatildeo co-mercial ou os benefiacutecios do suporte profissional O uacutenico trabalho ma-nual que resta para o administrador eacute o gerenciamento centralizado dos diretoacuterios dos usuaacuterios

Mais informaccedilotildees

[1] Likewise Open httpwwwlikewisesoftwarecomproductslikewise_open

[2] Walter Neu ldquoDomando os catildees do infernordquo httplnmcombrarticle2424

[3] Kerberos MIT httpwebmitedukerberos

[4] Padratildeo Hieraacuterquico de Arquivos (FHS) httpwwwpathnamecomfhs

[5] Montagem de diretoacuterios home com PAM httppam-mountsourceforgenet

[6] Likewise Enterprise httpwwwlikewisesoftwarecomproductslikewise_enterprise

Exemplo 5 Configuraccedilatildeo do pam_mount

01 etcpamdcommon-auth02 auth required pam_mountso03 auth sufficient libsecuritypam_lwidentityso04 auth requisite pam_unixso nullok_secure try_first_pass05 auth optional pam_smbpassso migrate missingok0607 etcpamdcommon-session08 session optional pam_mountso09 auth sufficient libsecuritypam_lwidentityso10 session required pam_unixso

copy Linux New Media do Brasil Editora Ltda

40 httpwwwlinuxmagazinecombr

Serviccedilo RDP Linux para clientes de terminal Windows

O manda-chuva do terminal

O xrdp ajuda os seus clientes de terminal Windows a se conectarem ao Linuxpor Kenneth Hess

A conexatildeo de desktops remotos do Windows no Linux ge-ralmente consome bastante

banda da rede eacute insegura e difiacutecil de configurar E se um sistema Windows pudesse se conectar a um sistema Linux tatildeo facilmente quanto o faz com outro sistema Windows ndash utili-zando para isso o mesmo aplicativo usado para conectar originalmente ao Windows

O xrdp eacute uma implementaccedilatildeo de coacutedigo aberto do RDP (Remote Desktop Protocol ndash ou Protocolo de Ambiente de Trabalho Remoto na

traduccedilatildeo em portuguecircs) o protoco-lo usado nos serviccedilos de terminal do Windows para conexatildeo nativa a desktops Windows O Pacote xrdp fornece a funcionalidade RDP bem como um servidor graacutefico que seja capaz de aceitar conexotildees do rdesktop [1] e de clientes de serviccedilos de ter-minais Windows

Uma vez conectado e autenticado no servidor RDP Linux o usuaacuterio remoto teraacute disponiacutevel um ambiente de trabalho Linux em modo graacutefico E o melhor eacute que natildeo eacute necessaacuterio executar um servidor graacutefico na maacute-quina com Windows nem eacute preciso exportar a tela do Linux para o com-putador com Windows

Configurar o servidor RDP no Linux eacute faacutecil e leva apenas alguns minutos Para os usuaacuterios novatos de Linux ou os administradores de sistemas Windows segue a lista de requisitos necessaacuterios para fazer o sistema funcionar uma conta de usuaacuterio padratildeo

na maacutequina Linux acesso remoto ou ao console do

servidor Linux acesso com privileacutegios administrati-

vos (de root) no servidor Linux

Tambeacutem ajuda se vocecirc souber al-guma coisa sobre RDP e sobre a otimizaccedilatildeo da configuraccedilatildeo de um cliente RDP

Instalaccedilatildeo e configuraccedilatildeoPara nos certificarmos de que esta-mos usando a versatildeo mais recente do xrdp vamos instalaacute-lo a partir do coacutedigo-fonte Haacute pacotes do pro-grama para algumas distribuiccedilotildees o que pode facilitar a instalaccedilatildeo e a integraccedilatildeo agrave distribuiccedilatildeo Poreacutem o objetivo deste artigo eacute possibili-tar a instalaccedilatildeo em qualquer sis-tema Assim baixe o coacutedigo-fonte do pacote xrdp [2] descompacte-o e compile-o

$ tar zxvf xrdp-041targz$ cd xrdp-041$ make

Em seguida instale-o usando pri-vileacutegios de root

make install

Os arquivos executaacuteveis scripts e bibliotecas seratildeo instalados no diretoacuterio usrlocalxrdp e os arquivos de con-figuraccedilatildeo no diretoacuterio etcxrdp

A documentaccedilatildeo do aplicativo eacute um pouco obscura sobre o que fazer a seguir Embora tenhamos decidido no comeccedilo natildeo mudar nenhum dos paracircmetros nos arquivos sesmanini e xrdpini disponiacuteveis em etcxrdp e tenhamos abordado a situaccedilatildeo

CA

PA

Figura 2 Forneccedila seu usuaacuterio e sua senha do sistema Linux

Figura 1 Janela de conexatildeo com o desktop remoto

copy Linux New Media do Brasil Editora Ltda

41

| CAPAxrdp

como um administrador de sistemas Windows assumindo que as coisas iriam funcionar sem necessidade de muitos ajustes agrave configuraccedilatildeo nesse ponto essa abordagem comeccedila a se tornar frustrante

Uma vez com o sistema instala-do os seguintes comandos devem ser executados como root

cd usrlocalxrdp cp xrdp_controlsh etcinitdxrdp_control

Em seguida em distribuiccedilotildees derivadas do Red Hat os seguintes comandos se aplicam

chkconfig --add xrdp_control

chkconfig xrdp_control on service xrdp_control start

Jaacute em distribuiccedilotildees derivadas do De-bian esses satildeo os comandos

update-rcd xrdp_control defaults update-rcd xrdp_control start 80 3 4 stop 0 1 6 etcinitdxrdp_control start

O script xrdp_controlsh controla os serviccedilos de ativaccedilatildeo desativaccedilatildeo e reinicializaccedilatildeo do pro-grama Ao copiar o script para o diretoacuterio etcinitd pode-se retirar a ex-tensatildeo sh por motivos esteacuteticos ndash nenhum ou-tro script desse diretoacuterio possui essa extensatildeo em-bora todos sejam scripts de shell

Em sistemas baseados em FedoraRed Hat o comando chkconfig eacute um utilitaacuterio para atualizar e buscar informaccedilotildees sobre o niacutevel de execuccedilatildeo para serviccedilos de sistema ma-nipulando os vaacuterios links simboacutelicos em etcinitd para ali-viar um pouco os administradores de

sistema da tarefa tediosa de editar os links simboacuteli-cos e a necessi-dade de manipu-lar esses serviccedilos manualmente

Haacute pacotes para esse apli-cativo disponiacute-veis para outras distribuiccedilotildees como Debian e Ubuntu mas o correto eacute usar a ferramenta ade-quada para a sua distribuiccedilatildeo

Assim para criar um novo serviccedilo de inicializaccedilatildeo copie seu script de controle para etcinitd confor-me mostrado acima e entatildeo use o comando chkconfig para ativaacute-lo A linha chkconfig xrdp_control on de-fine os niacuteveis de execuccedilatildeo (runlevels) do serviccedilo (ver tabela 1) Por exemplo o comando chkconfig --level 35 xrdp_control configura o xrdp_con-trol para funcionar nos niacuteveis de execuccedilatildeo 3 e 5 O uacuteltimo comando na listagem acima inicia os serviccedilos sesman e xrdp

Para se conectar ao serviccedilo RDP no servidor Linux a partir de um PC com Windows basta fazer exatamente como se faria com um servidor Win-dows como mostra a figura 1

O cliente RDP abre uma nova janela conforme ilustrado na figura 2 solicitando o nome de usuaacuterio e a senha que satildeo aqueles configu-rados no servidor Linux Forneccedila um nome e uma senha vaacutelidos e clique em OK Mesmo que a maacute-quina Linux esteja configurada para usar um domiacutenio do serviccedilo Active Directory ainda seraacute preciso adicio-nar cada usuaacuterio aos sistemas Linux que se desejar acessar via RDP Para fazer isso crie primeiramente um grupo para todos os usuaacuterios do serviccedilo RDP

Tabela 1 Niacuteveis de execuccedilatildeo no Linux

0 Desligar

1 Modo monousuaacuterio

2 Multiusuaacuterio sem NFS

3 Multiusuaacuterio completo

4 Natildeo utilizada

5 X11 (graacutefico)

Detalhe haacute distribuiccedilotildees que utilizam o niacutevel 4 como ambiente graacutefico semelhante ao niacutevel 5

Figura 3 Registro do gerenciador de sessatildeo da conexatildeo xrdp

Figura 4 Uma conexatildeo com o desktop pronta para usar

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

42 httpwwwlinuxmagazinecombr

CAPA | xrdp

groupadd rdpusers useradd -g rdpusers fulano passwd fulano

Caso o usuaacuterio jaacute exista no sis-

tema use o comando usermod para adicionaacute-lo ao grupo de usuaacuterios do serviccedilo RDP

usemod -G rdpusers fulano

Embora natildeo seja explicitamente necessaacuterio para o acesso um grupo especial simplifi ca a administraccedilatildeo do sistema Forneccedila agora o nome do usuaacuterio criado e a sua senha e entatildeo clique em OK

A tela mostrada na figura 3 de-veraacute aparecer Essa eacute a janela de registro do gerenciador de sessotildees da conexatildeo que ilustra a negocia-ccedilatildeo entre o cliente e o servidor Perceba que o gerenciador de ses-sotildees conecta primeiramente agrave porta associada ao serviccedilo RDP e entatildeo agrave porta de um serviccedilo VNC para entatildeo apresentar o desktop Linux a vocecirc A figura 4 mostra um desktop CentOS 5

Quando desconectando de uma sessatildeo RDP em Linux vocecirc veraacute a tela mostrada na fi gura 5 Perceba que somente duas accedilotildees estatildeo dis-poniacuteveis Encerrar sessatildeo atual e Cancelar que satildeo recursos padratildeo de conexotildees VNC remotas

O servidor Linux executa os progra-mas xrdp e sesman e fi ca aguardando co-nexotildees RDP Assim que um cliente de serviccedilos de terminais Windows tenta se conectar ao servidor RDP o servidor e o cliente negociam um niacutevel de criptografi a trocam chaves e veri-fi cam quais recursos estatildeo disponiacuteveis A partir daiacute o cliente escolhe a quantidade de cores e a resoluccedilatildeo da tela que seraacute usada na sessatildeo

Se o usuaacuterio fornecer um nome e uma senha no aplicativo cliente a autenticaccedilatildeo eacute iniciada Caso con-traacuterio o usuaacuterio seleciona o moacutedu-lo de uma lista do tipo drop-down e fornece um usuaacuterio e uma senha na tela de login conforme ilustra a fi gura 6

O moacutedulo libvnc eacute carregado e uma conexatildeo TCP eacute feita para o endereccedilo 127001 ou para o en-dereccedilo IP especifi cado no arquivo etcxrdpxrdpini As credenciais de login do usuaacuterio a resoluccedilatildeo da tela e a quantidade de cores satildeo fornecidas ao aplicativo sesman para fi ns de autenticaccedilatildeo Se o sesman

encontrar uma sessatildeo ativa com a resoluccedilatildeo e a quantidade de cores especifi cadas ele retor-na essa tela ao usuaacute-rio Caso contraacuterio ele inicia uma nova instacircncia xvnc com as especifi caccedilotildees de am-biente do usuaacuterio

Conclusotildees O xrdp eacute faacutecil de ins-talar confi gurar cus-tomizar e usar E ndash o que eacute melhor ndash natildeo eacute

necessaacuterio experiecircncia em Linux para trabalhar com essa poderosa ferra-menta Como natildeo haacute o que instalar no cliente Windows natildeo daacute para se complicar com o xrdp

Muito embora este artigo natildeo mostre qualquer tipo de anaacutelise ex-tensiva de desempenho de rede ou uso de banda com esse aplicativo como se trata de RDP eacute sabido que a performance comeccedila a cair quando o nuacutemero de usuaacuterios simultacircneos conectados se aproxima da marca de 25 Contudo vale a pena conhe-cer o xrdp e integraacute-lo ao seu arse-nal de ferramentas independentes de plataforma

Sobre o autor Ken Hess eacute editor de material teacutecnico e jornalista freelance Ele escreve sobre uma grande variedade de temas envolvendo sistemas de coacutedigo aberto entre eles Li-nux bancos de dados e virtualizaccedilatildeo Agradecimentos especiais a Jay Sorg do projeto xrdp e a Matt Chapman do proje-to rdesktop pela ajuda no desenvolvimen-to deste artigo

Mais informaccedilotildees

[1] rdesktop httpwwwrdesktoporg

[2] xrdp httpxrdpsourceforgenet

Figura 5 Janela de fi nalizaccedilatildeo de sessatildeo do VNC

Figura 6 Tela de login do xrdp

copy Linux New Media do Brasil Editora Ltda

43

| CAPAxrdp

Linux Magazine 50 | Dezembro de 2008

SE

CcedilAtilde

O

pocket_atualizadoindd 61 261108 142709

copy Linux New Media do Brasil Editora Ltda

44 httpwwwlinuxmagazinecombr

A possibilidade de realizar uma certa tarefa num momento especiacutefico ou em intervalos

regulares eacute obrigatoacuteria para adminis-tradores de sistemas O cron daemon original oferece um meacutetodo faacutecil para agendar tarefas em sistemas baseados em Unix Embora o Cron tenha recebido diversas melhorias ao longo dos anos suas versotildees mais recentes ainda satildeo projetadas para agendamentos muito simples Administradores que precisam de algo minimamente incomum satildeo obrigados a criar scripts ou a incluir os recursos de que precisam em um dos scripts iniciados pelo Cron

Imagine quanto tempo seria eco-nomizado se natildeo fosse mais neces-saacuterio criar e alterar esses scripts ou ter qualquer outro trabalho para fazer com que os programas rea-jam a condiccedilotildees de erro e sejam executados na exata hora em que deveriam Vaacuterios produtos comer-

ciais oferecem esse recurso mas podem significar uma mordida no orccedilamento de TI Felizmente o mundo do Coacutedigo Aberto tambeacutem oferece soluccedilotildees de agendamento aleacutem do Cron

Assim como em qualquer software de agendamento a unidade primaacuteria eacute o job ou tarefa que geralmente eacute um script ou programa iniciado pelo software de agendamento Em vaacuterios casos o Cron eacute suficiente para suprir os requisitos mais baacutesicos de agen-damento tais como executar uma tarefa uma vez por dia (becapes por exemplo) ou tarefas que precisem ser executadas em intervalos mais frequumlentes menos frequumlentes ou em datas especiacuteficas

Poreacutem quando comeccedilamos a lidar com dependecircncias de algum tipo rapidamente eacute possiacutevel perceber as limitaccedilotildees do Cron ndash por exemplo se for necessaacuterio iniciar um progra-ma especiacutefico apoacutes um certo evento

Haacute casos de verdadeiras seacuteries de co-mandos que precisam ser executados em ordem e precisam todos ter su-cesso ndash se um dos comandos falhar a execuccedilatildeo dos seguintes causaria grandes problemas Nem as versotildees mais novas do Cron conseguem li-dar com isso principalmente se for necessaacuterio iniciar uma tarefa jaacute no meio da cadeia de comandos

Muitas tarefas precisam ser ge-renciadas em muacuteltiplas maacutequinas entatildeo um bom software de agen-damento permite que se gerencie todas as maacutequinas a partir de um ponto central inicie tarefas remo-tamente e assim por diante Para distribuir crontabs para essas maacutequi-nas remotas pode-se usar o Rsync mas isso rapidamente se torna um pesadelo administrativo quando a configuraccedilatildeo eacute diferente ao longo das maacutequinas ou quando as tare-fas agraves vezes precisam ser iniciadas manualmente ou ainda quando haacute

CA

PA

O agendador Open Source Job Scheduler

Muito aleacutem do CronPlanejar e agendar tarefas computacionais pode exigir muito trabalho principalmente se abranger muacuteltiplas maacutequinas Conheccedila uma ferramenta que facilita muito essa aacutereapor James Mohr

copy Linux New Media do Brasil Editora Ltda

45

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

outras tarefas que natildeo fazem parte do Cron

MultiplataformaApesar de ser possiacutevel instalar ver-sotildees abertas do Cron no Windows lidar com diferentes sistemas ope-racionais causa ainda mais proble-mas Por exemplo alguns dialetos de Unix natildeo suportam um arquivo etccrontab central entatildeo eacute preciso criar um arquivo para cada usuaacuterio O Cron era uma boa ferramenta nessa eacutepoca e geralmente ainda eacute mas as necessidades de muitas empresas jaacute superam suas funcionalidades

As limitaccedilotildees do Cron natildeo pas-saram despercebidas Haacute produtos comerciais que custam pequenas fortunas e costumam ser licenciados com base no nuacutemero de servidores ou de scripts a serem iniciados

Por sua vez os problemas dos pro-dutos comerciais tambeacutem natildeo passa-ram despercebidos pela comunida-de do Coacutedigo Aberto Uma soluccedilatildeo surpreendente eacute o Open Source Job Scheduler desenvolvido pela alematilde SOS (Software- und Organisations-Service) Haacute versotildees para Linux So-laris HP-UX (PA-RISC IA64) AIX e Windows Ele tambeacutem suporta vaacuterios bancos de dados incluindo DB2 Oracle MS SQL Server PostgreSQL e MySQL

O software adota um esquema de duplo licenciamento pela GPL e a Guaranteed License (Licenccedila Ga-rantida) Trata-se do mesmo coacutedigo com funcionalidades atualizaccedilotildees e coacutedigo-fonte idecircnticos

A receita da SOS natildeo proveacutem da venda de seu produto mas dos serviccedilos e do suporte Poreacutem estra-nhamente a empresa natildeo anuncia seu produto ndash nem seus serviccedilos ndash da forma tradicional Ao demonstrar o produto o objetivo natildeo eacute convencer clientes potenciais mas mostrar-lhes o que o produto pode fazer e deixar que eles decidam se ele supre suas necessidades

A versatildeo comercial tambeacutem oferece uma ldquopessoa responsaacutevelrdquo para cada chamado de serviccedilo com tempos de resposta garantidos e pedidos de re-cursos recebem maior prioridade de implementaccedilatildeo Aleacutem disso essa ver-satildeo natildeo possui as restriccedilotildees da GPL entatildeo pode ser embutida em outros aplicativos (comerciais ou natildeo) sem que este precise aderir agrave GPL

Diferente da maioria dos softwa-res comerciais e de coacutedigo aberto a SOS oferece garantia limitada de dois anos e um acordo de indeni-zaccedilatildeo Segundo seu diretor a em-presa se sente obrigada a fornecer ao cliente um retorno por seu pa-gamento e isso tambeacutem se estende a discrepacircncias entre o produto e a documentaccedilatildeo

EstruturaO componente central do pacote eacute o mecanismo de agendamento de tarefas que roda em cada uma das maacutequinas que as agendaratildeo Esse meacute-todo eacute diferente de executar a tarefa pode-se ter um agendador em cada

maacutequina com todos agindo como escravos de um central mas tam-beacutem eacute possiacutevel usar um agendador completo em cada uma delas Esse mecanismo pode ser expandido para permitir o balanceamento de carga por meio de muacuteltiplos servidores

Um aspecto importante a ser considerado eacute chamado de order (pedido) que consiste em um sinal passado entre tarefas Dependendo de suas configuraccedilotildees as tarefas natildeo tecircm permissatildeo de iniciar ateacute rece-berem seu pedido

Na forma mais simples pedidos satildeo como o bastatildeo numa corrida de revezamento entregues por cada tarefa para a seguinte Aleacutem disso eacute possiacutevel configurar pedidos com horas especiacuteficas de iniacutecio para que sejam gerados automaticamente pelo sistema no momento especificado e depois a cadeia respectiva possa se iniciar

Note que para conseguir reagir a um pedido uma tarefa precisa ser configurada para aceitaacute-lo mas o pedido soacute pode ser associado a uma

Figura 1 Janela do editor graacutefico do agendador de tarefas

copy Linux New Media do Brasil Editora Ltda

46 httpwwwlinuxmagazinecombr

CAPA | Agendamento

cadeia de tarefas e natildeo a uma ta-refa especiacutefica Ou seja o pedido eacute passado de tarefa para tarefa dentro da cadeia mas eacute associado somente agrave cadeia Se for desejaacutevel que uma uacutenica tarefa se inicie num momento especiacutefico por exemplo isso pode ser feito dentro da proacutepria tarefa Outro componente importante satildeo os Hot Folders (pastas quentes) que seatildeo di-retoacuterios monitorados pelo agendador em busca de alteraccedilotildees tais como a alteraccedilatildeo ou criaccedilatildeo de tarefas

TarefasTarefas podem ser configuradas a partir da interface graacutefica do editor do agendador (figura 1 chamado aqui de ldquoeditor de tarefasrdquo) ou por arqui-vos XML editados manualmente O editor de tarefas eacute um aplicativo em Java que configura vaacuterias tarefas ca-deias e outros aspectos do sistema Todas as informaccedilotildees de configura-

ccedilatildeo do sistema satildeo armazenadas em arquivos XML e basta abrir o arquivo XML respectivo no editor de tarefas para fazer alteraccedilotildees Poder usar o Vim em arquivos de configuraccedilatildeo eacute mais que uma becircnccedilatildeo em casos de alteraccedilotildees em massa

Os arquivos XML podem ser copiados para maacutequinas remotas e salvos via FTP diretamente a partir do editor de tarefas Quando ater-rissam num Hot Folder os arquivos ficam imediatamente disponiacuteveis para o mecanismo do agendador na maacutequina remota

A interface graacutefica do editor de tarefas natildeo eacute tatildeo intuitiva quanto poderia e vaacuterios campos parecem misteriosos a princiacutepio Como a documentaccedilatildeo deixa a desejar fal-tam explicaccedilotildees sobre muitos desses campos Em alguns casos a docu-mentaccedilatildeo dos arquivos XML ajuda a tirar as duacutevidas

Apesar de as informaccedilotildees de con-figuraccedilatildeo serem armazenadas em arquivos XML por padratildeo eacute pos-siacutevel configurar o agendador para usar diversos bancos de dados dife-rentes Essas tarefas satildeo chamadas de ldquogerenciadasrdquo e cada agendador instalado pode ser configurado para acessar as tarefas no banco de da-dos para natildeo ser necessaacuterio copiar os arquivos manualmente

A operaccedilatildeo cotidiana do siste-ma eacute realizada pela sua interface graacutefica (chamada neste artigo de ldquointerface de operaccedilatildeordquo) que eacute acessada por um navegador e per-mite o gerenciamento das tarefas a partir de qualquer maacutequina Com essa interface eacute possiacutevel natildeo apenas monitorar as tarefas mas tambeacutem iniciaacute-las paraacute-las tratar seus erros e muitas outras funccedilotildees

O agendador de tarefas tambeacutem oferece uma API que permite o ge-renciamento e o controle externos de tarefas A API suporta vaacuterias lin-guagens incluindo Perl VBScript JavaScript e Java Surpreendente-mente natildeo haacute suporte a PHP ape-sar da possibilidade de se gerenciar tarefas a partir de um navegador web e da documentaccedilatildeo de scripts PHP de exemplo

InstalaccedilatildeoOs exemplos deste artigo foram feitos com a versatildeo 134 para Li-nux que pode ser baixada do site do Job Scheduler no SourceForge [1] Se houver intenccedilatildeo de se usar um banco de dados MySQL como neste artigo note que o programa natildeo fornece um driver JDBC para esse banco embora haja drivers para Oracle e outros bancos O driver JDBC para MySQL pode ser baixado diretamente do site do MySQL [2] Basta digitar o caminho do arquivo jar apropriado durante a instalaccedilatildeo

Antes de comeccedilar eacute recomen-daacutevel ler o guia de instalaccedilatildeo em Figura 2 Digitaccedilatildeo do coacutedigo-fonte diretamente no editor de tarefas

copy Linux New Media do Brasil Editora Ltda

47

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

PDF incluiacutedo no pacote Aleacutem dis-so haacute vaacuterios outros PDFs no site da empresa [3] mais aprofundados em diversos toacutepicos Fique ciente ateacute para obter as informaccedilotildees mais baacutesicas na documentaccedilatildeo eacute preciso ser um tanto familiarizado com a programaccedilatildeo orientada a objetos e XML pois a documentaccedilatildeo natildeo fornece qualquer introduccedilatildeo a esses toacutepicos Aleacutem disso ela natildeo eacute bem organizada entatildeo saiba que seraacute preciso procurar bastante Apesar de ser volumosa a documentaccedilatildeo natildeo eacute faacutecil de usar o que eacute algo que a empresa pretente melhorar

No Linux a instalaccedilatildeo ocorre por meio de um instalador em Java e se for feita por um usuaacuterio nor-mal o padratildeo eacute os arquivos serem abrigados em $HOMEscheduler Se for instalado como root o diretoacuterio do programa eacute usrlocalschedu-ler Apoacutes instalar o produto haacute um arquivo README que recomenda que o programa natildeo seja instalado como root mas natildeo haacute menccedilatildeo a isso no guia de instalaccedilatildeo e con-figuraccedilatildeo Para evitar problemas potenciais vamos instalaacute-lo como usuaacuterio normal

Durante a instalaccedilatildeo satildeo pedidos o tipo do banco de dados e infor-maccedilotildees da conexatildeo Natildeo fica claro se o campo ldquodatabase parametersrdquo deve receber os paracircmetros de co-nexatildeo apoacutes o banco de dados estar em execuccedilatildeo ou os paracircmetros de conexatildeo para criaccedilatildeo do banco de dados Infelizmente recomenda-se criar um banco de dados e um usuaacuterio para o programa usar mas isso soacute eacute mencionado apoacutes todas as etapas de instalaccedilatildeo Criar o banco de dados manualmente e conferir privileacutegios do banco antes de iniciar a instalaccedilatildeo jaacute resolve

A instalaccedilatildeo eacute relativamente in-tuitiva mas leva alguns minutos para criar e preencher as tabelas do banco de dados Para instalar o Scheduler em muacuteltiplas maacutequinas com os mes-

mos paracircmetros haacute a opccedilatildeo de criar um script automaticamente ao final da primeira instalaccedilatildeo

IniciandoIndependentemente de a instala-ccedilatildeo ocorrer sob o root ou um usuaacute-rio normal eacute necessaacuterio iniciar o agendador manualmente Seu controle eacute feito como num script rc comum

$HOMEschedulerbinjobschedulersh start$HOMEschedulerbinjobschedulersh stop

Para iniciar o Scheduler auto-maticamente na inicializaccedilatildeo re-comenda-se criar um usuaacuterio espe-ciacutefico para ele e depois um script rc que use o comando su para se tornar esse usuaacuterio e iniciar o programa Se houver necessidade de tarefas serem executadas sob o root ou ou-tro usuaacuterio com mais privileacutegios eacute possiacutevel configurar um ambiente sudo apropriado

Novas tarefasPara criar tarefas pode-se ou edi-tar os arquivos XML diretamente ou pelo editor de tarefas No Li-nux execute o script jobeditorsh localizado por padratildeo em usrlo-calschedulerbin ou $HOMEsche-dulerbin

Como exemplo considere a ta-refa tiacutepica de criaccedilatildeo de um beca-pe da configuraccedilatildeo do sistema Por ora vamos supor que isso seja feito diariamente com o script usrbinbecapesh

Primeiramente inicie o editor de tarefas e selecione New | Hot Folder Element | Job (figura 1) No primei-ro formulaacuterio comece digitando as informaccedilotildees baacutesicas de sua tarefa Para este exemplo digite o nome Becape das configuraccedilotildees no campo Job Title adicione uma descriccedilatildeo ou deixe em branco

No painel esquerdo clique em Execute para digitar os detalhes sobre o programa ou script que se deseja iniciar Como o objetivo eacute executar um script externo selecione o botatildeo

Figura 3 Interface de operaccedilatildeo do Job Scheduler

copy Linux New Media do Brasil Editora Ltda

48 httpwwwlinuxmagazinecombr

CAPA | Agendamento

Run executable e digite o caminho completo do script referido Nesse ponto tambeacutem eacute possiacutevel definir masi paracircmetros a ser passados para o script Por exemplo se o becape comprimir os arquivos armazenados pode ser interessante acrescentar um -c a esse campo

Aleacutem disso pode-se incluir os passos individuais de execuccedilatildeo se-lecionando-se o botatildeo Script e o tipo de coacutedigo do programa depois digitando o coacutedigo-fonte na caixa apropriada Note que isso eacute mais que o nome de um script e pode incluir estruturas de programaccedilatildeo baseadas na linguagem seleciona-da (figura 2)

Para salvar a tarefa pressione o botatildeo Save ou escolha Save no menu File Na primeira vez em que o ar-quivo eacute salvo eacute preciso digitar um nome para ele Para isso navegue ateacute o diretoacuterio configlive e salve o arquivo como becape assim

a extensatildeo xml seraacute adicionada au-tomaticamente

Via navegadorComo o arquivo foi salvo no dire-toacuterio live ele fica imediatamente visiacutevel para o sistema Esse diretoacuterio eacute preacute-definido como um Hot Folder que o sistema lecirc regularmente Nesse ponto a tarefa natildeo foi agendada mas apenas adicionada ao sistema Para iniciar a tarefa eacute preciso executar a interface de operaccedilatildeo apontando seu navegador para httplocal-host4444

Em conexotildees pelo navegador o Scheduler exibe uma interface semelhante agrave da figura 3 Para ver os detalhes da tarefa decirc um duplo clique na tarefa de becape na colu-na agrave esquerda Para executar a tarefa imediatamente clique no botatildeo Job menu e selecione Start task now

Por ser muito faacutecil iniciar o script pela linha de comando isso natildeo eacute

nada espetacular Eacute possiacutevel voltar ao editor de tarefas e clicar na en-trada Run Time no painel esquerdo e selecionar uma hora para a exe-cuccedilatildeo da tarefa Para isso clique em Everyday (todos os dias) e de-fina um novo periacuteodo clicando no botatildeo new Period Em Start Time digite algo como 0900 no campo Single Start Depois clique no bo-tatildeo Save e essa nova configuraccedilatildeo seraacute ativada ndash a tarefa teraacute iniacutecio todos os dias agraves 9 horas

Ateacute agora a uacutenica vantagem do programa sobre o Cron eacute uma inter-face amigaacutevel ndash mas isso eacute apenas o comeccedilo Quando comeccedilamos a conhecer as cadeias de tarefas vemos o poder do agendamento de tarefas

BecapePrimeiro suponha que vocecirc tenha criado uma segunda tarefa que faccedila um becape do banco de dados que deve ser executada imediatamente apoacutes o fim do becape das configu-raccedilotildees Uma alternativa eacute criar um uacutenico script que faccedila primeiro o becape das configuraccedilotildees e imedia-tamente depois inicie o do banco de dados Poreacutem cadeias de tarefas satildeo uacuteteis em vaacuterias situaccedilotildees mais complexas em que natildeo eacute possiacutevel simplesmente lanccedilar matildeo de um script shell as quais seratildeo discutidas mais adiante

Assim como na primeira tarefa crie um novo elemento no Hot Folder mas selecione Job Chains Digite o nome da cadeia (Chain Name) e caso se deseje tambeacutem um tiacutetulo (Title) Como cada ele-mento de uma cadeia eacute chamado de noacute (Node) eacute preciso adicionar um New Chain Node a seguir clicando no botatildeo respectivo Caso o nome da tarefa seja conhecido pode-se digitaacute-lo manualmente ou usar o botatildeo Browse para procuraacute-la

No campo State eacute possiacutevel definir um estado para essa etapa ou noacute

Figura 4 As dependecircncias entre as tarefas podem ser exibidas com uso do Job Chain Illustration

copy Linux New Media do Brasil Editora Ltda

49

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

Definido estados eacute possiacutevel criar um fluxo mais complexo para as tarefas Por exemplo pode-se criar um esta-do chamado Erro e se alguma tarefa anterior apresentar um erro pula-se imediatamente para a tarefa definida com esse estado pulando todas as outras Aleacutem disso eacute possiacutevel exe-cutar diferentes tarefas de erro para cada uma das vaacuterias etapas

Mais cadeiasEmbora criar uma cadeia de tare-fas que consista em apenas uma uacutenica tarefa possua certas vanta-gens natildeo pare nesse ponto Como mencionado eacute melhor uma tarefa de becape constituiacuteda por duas etapas entatildeo vamos criar uma segunda cadeia com a tarefa de becape do banco de dados e con-figuraacute-la de forma semelhante agrave segunda tarefa Em nosso exem-plo definimos o primeiro noacute com o estado Iniacutecio e o segundo com o estado Fim embora isso natildeo seja necessaacuterio

Ao se clicar no botatildeo Save eacute mostrada a nova cadeia na aba Job Chains da interface de operaccedilatildeo Marcar a caixa Show Jobs exibe as tarefas individuais que compotildeem a cadeia Um duplo clique na ca-deia abre o painel de detalhes no lado direito como ocorreu com a tarefa uacutenica

Nesse ponto a cadeia de tarefas ainda natildeo seraacute executada porque precisa de um pedido que pode ser inserido manualmente no menu Job | Add Order Eacute mostrada uma nova janela que permite a definiccedilatildeo de vaacuterias caracteriacutesticas do pedido como ID horaacuterio de iniacutecio e ateacute estado da cadeia Neste exemplo apenas deixe tudo em branco e o sistema criaraacute sozinho uma ID de pedido

Se natildeo tiver sido definida uma condiccedilatildeo a cadeia inicia imedia-tamente poreacutem pode ser definida uma fatia de tempo (Time Slot) para qualquer uma dessas tarefas e

o Scheduler esperaria a hora certa para iniciar a tarefa

Note que as tarefas precisam ser capazes de aceitar pedidos para reagir a eles Esta etapa eacute feita na janela de configuraccedilatildeo para as ta-refas individuais Na janela Main Options haacute um botatildeo On Order que precisa ser definido como Yes caso contraacuterio o pedido natildeo ini-ciaraacute a tarefa

Ateacute aqui iniciamos tudo manu-almente Como precisamos definir um pedido para iniciar a cadeia de tarefas obviamente eacute necessaacuteria uma forma de criar pedidos dinami-camente Uma maneira seria criar um pedido numa hora especiacutefica o que por sua vez aciona a cadeia de tarefas Como se pode esperar isso eacute feito pelo menu New | Hot Folder Element | Order Apoacutes dar um nome ao pedido e selecionar a janela Job Chains selecione a cadeia especiacutefica a ser associada a esse pedido Note que um pe-dido soacute pode ser associado a uma uacutenica cadeia Depois defina um novo horaacuterio (Time Period) e um Single Start agraves 0900 Para ativar imediatamente as alteraccedilotildees eacute preciso armazenaacute-la no diretoacuterio configlive

Ao retornar agrave interface de opera-ccedilatildeo pode-se ver que agora haacute um pedido associado agrave cadeia criada Abaixo do pedido uma entrada next start (proacuteximo iniacutecio) mostra a data e hora em que o pedido iniciaraacute Como jaacute passou das 900 am neste exemplo a data eacute amanhatilde Se for usado outro horaacuterio de iniacutecio como o dia primeiro o proacuteximo iniacutecio se-ria nessa data

ControlePara definir o periacuteodo das tarefas cadeias e pedidos eacute possiacutevel esta-belecer um horaacuterio para o iniacutecio de uma tarefa assim como um in-tervalo entre execuccedilotildees (a cada 12 horas por exemplo) Essa segunda

opccedilatildeo natildeo eacute uacutetil no caso de cadeias em que as tarefas precisem seguir uma determinada ordem Poreacutem eacute possiacutevel definir um pedido que seja iniciado diariamente agraves 700 que por sua vez inicie uma cadeia

Haacute tambeacutem definiccedilotildees de tempo como ldquosegundo domingo de cada mecircsrdquo ldquouacuteltimo dia do mecircsrdquo ou ldquoso-mente 8janeiro e 16fevereirordquo

Horaacuterios e intervalos preacute-estabe-lecidos satildeo uacuteteis mas nem sempre eacute possiacutevel saber a priori quando uma tarefa precisaraacute ser realizada No caso daquelas que dependem da existecircncia ou inexistecircncia de algum arquivo eacute possiacutevel definir watch directories (diretoacuterios a ser observados) com regras que aceitam ateacute expressotildees regulares (figura 4)

Pedido proacuteprioDepois de superar as dificuldades iniciais nota-se que o Open Source Job Scheduler eacute um bom produto Com intimidade ele se torna faacutecil de configurar e administrar

A SOS tambeacutem presta um oacutetimo serviccedilo Identifiquei um bug e enviei um patch para um arquivo jar que foi disponibilizado por eles no ser-vidor em menos de um dia Ateacute em uma rede pequena o Open Source Job Scheduler oferece recursos muito uacuteteis Em instalaccedilotildees maiores ele eacute quase indispensaacutevel

Mais informaccedilotildees

[1] Open Source Job Scheduler httpjobschedulersourceforgenet

[2] Driver JDBC para MySQL httpwwwmysqlcomproductsconnector

[3] Software- und Organisations-Service GmbH httpwwwsos-berlincomscheduler

copy Linux New Media do Brasil Editora Ltda

50 httpwwwlinuxmagazinecombr

Faccedila belos graacuteficos via navegador com a API do Google Chart

Graacuteficos via webA API do Google Chart permite desenhar graacuteficos planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simplespor Martin Streicher

Se uma imagem vale mais que mil palavras um graacutefico deve ser algo semelhante a uma no-

vela Em apenas um piscar de olhos um graacutefico pode transmitir o estado do mercado de accedilotildees a tendecircncia de traacutefego em um website a distribui-ccedilatildeo dos eleitores por regiatildeo aleacutem de informar como a verba eacute distribuiacuteda em um orccedilamento familiar Aleacutem dis-so um graacutefico eacute simplesmente mais compreensiacutevel do que uma enorme tabela cheia de nuacutemeros

Poreacutem eacute estranho vermos que muito poucos sites utilizam graacuteficos em seu benefiacutecio Isso acontece em grande parte porque a criaccedilatildeo de graacuteficos requer um software espe-cializado Por exemplo se o site eacute baseado em PHP eacute preciso instalar o pChart [1] adicionar a biblioteca

graacutefica GD e escrever o coacutedigo para produzir algum tipo de graacutefico Ide-almente qualquer um ndash um editor escritor ou mesmo um usuaacuterio adi-cionando comentaacuterios ndash deve ser capaz de criar e embutir graacuteficos em suas paacuteginas

Na verdade o dinamismo a sim-plicidade e a conveniecircncia estatildeo no cerne da interface de programaccedilatildeo de aplicaccedilatildeo (API) Google Chart [2] e talvez essa seja a descriccedilatildeo mais pre-cisa para um Software como Serviccedilo (SaaS) Simplesmente crie uma URL parametrizada como httpchartapisgooglecomchartparacircmetro1ampparacircmetro2ampparacircmetroN e deixe o Google Chart fazer todo o trabalho pesado O Google Chart permite que vocecirc renderize seis tipos de graacuteficos um Google-o-meter um QR code (espeacutecie de coacutedigo de barras) e mapas Aleacutem disso eacute possiacutevel usar praticamente um gugol de opccedilotildees de personalizaccedilatildeo tais como a barra de cores a cor de fundo a legenda e muito mais

Este artigo ajuda nos primeiros passos no uso do Google Chart Vocecirc aprenderaacute a desenhar graacuteficos e adi-cionar efeitos especiais para melhorar suas criaccedilotildees graacuteficas

Elementos de graacuteficosPara gerar um graacutefico com o Google Chart forneccedila o prefixo httpchartapisgooglecomchart o tipo de graacute-

fico (tal como torta ou de linhas) o tamanho do graacutefico seus dados e quaisquer paracircmetros especiacuteficos como as cores e os roacutetulos dos eixos para adequaacute-lo ao resultado final

Todas as opccedilotildees do graacutefico satildeo associadas a pares de valores do tipo chave=valor Algumas chaves satildeo comuns para todos os graacuteficos en-quanto outras satildeo exclusivas para um determinado tipo Da mesma forma a sintaxe para o valor especificado no par tende a variar de acordo com o tipo de graacutefico

O tamanho do graacutefico eacute medido em pixels e especificado com o paracircmetro chs=LxA em que L eacute a largura e A eacute a altura Por exemplo chs=200x100 gera um graacutefico de 200 pixels de lar-gura por 100 pixels de altura A aacuterea de um mapa natildeo pode exceder 440 pixels de largura por 220 de altura Para todos os outros graacuteficos nem a largura nem a altura podem exceder 1000 pixels e a aacuterea maacutexima eacute de 300000 pixels quadrados

O tipo de graacutefico eacute escolhido com o par cht=tipo em que tipo eacute uma das diversas constantes preacute-de-finidas Por exemplo para desenhar um graacutefico de linhas simples com pontos equidistantes do eixo x es-pecifique cht=lc Para cada tipo de graacutefico pode-se consultar a constan-te apropriada na documentaccedilatildeo do Google Chart

TU

TO

RIA

L

Figura 1 Um graacutefico de linha simples produzido pela API do Google Chart

copy Linux New Media do Brasil Editora Ltda

51

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Os dados de um graacutefico podem ser fornecidos em vaacuterios formatos ndash a partir de uma lista de dados brutos simples ateacute uma coleccedilatildeo de coacutedigos alfanumeacutericos para mapear valores de uma escala preacute-definida

Normalmente o conjunto de da-dos brutos eacute constituiacutedo por uma lista de valores separados por viacutergulas e um conjunto de dados codificados eacute uma sequumlecircncia contiacutenua de caracte-res alfanumeacutericos Por exemplo para fornecer dados como texto simples utilize chd=tvalores em que valo-res eacute uma lista de valores de ponto flutuante positivos entre 0 e 100 de-limitados por viacutergula O caractere _ (traccedilo baixo) pode ser usado como um espaccedilo reservado para a falta de um dado Muacuteltiplos conjuntos de dados satildeo delimitados pelo caractere | (pipe ou barra vertical)

Para demonstrar abra um nave-gador e digite a URL httpchartapisgooglecomchartcht=lcampchs=500x400ampchd=t7392079|1515181101612ampchco=FF000000FF00 na barra de endereccedilos Como se pode adivinhar o paracircmetro chco lista os valores RGB para colorir cada gru-po de dados

A figura 1 mostra o exemplo de um graacutefi-co de linha incluindo seus elementos (eixos tiacutetulos e legendas) A URL utilizada para gerar o graacutefico eacute mostrada no exemplo 1 Cada URL mostrada nesse artigo abrange vaacuterias linhas de forma intencional para melhor legibilidade

De forma resumida chtt fornece o tiacutetulo do graacutefico Os dados satildeo fornecidos como valores brutos expres-sos em texto simples mas como os valores satildeo superiores a 100 chds fornece um valor

miacutenimo e um maacuteximo para norma-lizar os dados para um percentual Aqui como os dois conjuntos de dados estatildeo dentro do mes-mo intervalo bastam um valor miacutenimo e um maacuteximo para ambos No entanto se cada um dos conjuntos de dados for traccedilado a partir de uma uacutenica seacuterie eacute preciso fornecer um valor miacutenimo e maacuteximo para cada conjunto O paracircmetro chxt eacute combi-nado com o chxl e com o chxp para criar e posicionar os roacutetulos dos eixos

Acredite ou natildeo desenhar um graacutefico eacute realmente sim-ples Para inserir um graacutefico em um paacutegina web use uma tag img src e defina seu atri-buto src para a URL do graacute-fico Forneccedila uma descriccedilatildeo para o graacutefico por meio do atributo alt

CartografiaDesenhar um mapa com o serviccedilo Google Chart eacute tatildeo simples quanto desenhar qualquer outro graacutefico pri-

meiramente especifique o mape-amento do graacutefico selecione uma regiatildeo do mundo para desenhar e em seguida associe os dados a cada paiacutes proviacutencia ou estado encontrados no mapa Os dados podem ser discretos ndash digamos representar os estados azuis e ver-melhos nos Estados Unidos ndash ou contiacutenuos Aleacutem disso vocecirc pode associar uma cor com o miacutenimo e o maacuteximo em um intervalo e o Google Chart renderiza os valores intermediaacuterios em uma graduaccedilatildeo de cores (degradecirc)

Por exemplo o exemplo 2 gera um mapa dos Estados Unidos mostrando como os estados votaram na eleiccedilatildeo presidencial de 2004 A figura 2 apre-senta os resultados

No exemplo 2 cht=t seleciona o graacutefico de mapa chtm=usa especifica os Estados Unidos como regiatildeo e chs=440x220 desenha o maior mapa

Figura 2 Divisatildeo dos estados em vermelho (republicanos) e azuis (democratas) na eleiccedilatildeo presidencial dos Estados Unidos em 2004

Exemplo 1 Roubo de automoacuteveis na Carolina do Norte

01 httpchartapisgooglecomchart02 cht=lcamp03 chtt=Nuacutemero de automoacuteveis roubadosna NC por mecircs e anoamp04 chs=400x300amp05 chd=t223116582156231823432450258326122522268123262371|06 238119392309224225902642284028372555255824372319amp07 chds=03000amp08 chco=FF00000000FFamp09 chdl=2005|2006amp10 chxt=xyamp11 chxl=0|Jan|June|Dec|1|0|1500|30 00|amp12 chxp=0050100|1050100

Exemplo 2 Estados vermelhos e azuis

01 httpchartapisgooglecomchart02 cht=tamp03 chtm=usaamp04 chs=440x220amp05 chco=FF00000000FF0000FFamp06 chld=CACTDEDCHIILMEMDMAMIMNNHNJNYORPARIVTWAWIamp07 chd=sAAAAAAAAAAAAAAAAAAAA

copy Linux New Media do Brasil Editora Ltda

52 httpwwwlinuxmagazinecombr

TUTORIAL | Google Chart

possiacutevel No graacutefico de mapa chco=FF00000000FF0000FF define as cores padratildeo de cada estado (vermelho)

e a cor de iniacutecio e de final (ambas em azul) do gradiente

O paracircmetro chld conteacutem o coacute-digo de duas letras de cada um dos estados conquistados pelo candidato presidencial democrata Finalmente o paracircmetro chd=s seleciona o es-quema de codificaccedilatildeo simplificada de dados em que todos os valores devem ser representados por um dos caracteres na sequumlecircncia de A-Z a-z e 0-9 sendo A o miacutenimo e 9 o maacuteximo Em outras palavras o es-quema de codificaccedilatildeo simplificada fornece uma granularidade de 62 valores distintos Tendo em conta que todos os estados satildeo coloridos

em vermelho por padratildeo qualquer estado com outro valor ndash aqui A ndash eacute colorido de azul

Quadro 1 Dicas e truques do Google Chart

Essas dicas e truques tornaratildeo seus graacuteficos mais legiacuteveis

Certifique-se de que o tamanho de seu graacutefico eacute su-ficiente para exibir o tiacutetulo os roacutetulos e a legenda da imagem Infelizmente a determinaccedilatildeo da largura miacuteni-ma natildeo tem uma forma algoriacutetmica ndash pode ser preciso utilizar um pouco de tentativa e erro

Para alterar a cor e o tamanho do texto no tiacutetulo do graacute-fico use chts=colorfontsize Aleacutem disso eacute possiacutevel alterar a cor e o tamanho da fonte de um eixo com o roacutetulo chxs Infelizmente natildeo eacute possiacutevel especificar o tipo de fonte

Os quatro eixos satildeo x t y e r ou seja a forma resumi-da para delimitar o eixo inferior x o eixo superior x o eixo agrave esquerda y e o eixo agrave direita y respectivamente Se vocecirc quiser vaacuterios roacutetulos para qualquer eixo repita o nome do eixo no paracircmetro chxt e especifique seus detalhes no chxl

Leia a documentaccedilatildeo da API do Google Chart e dedi-que atenccedilatildeo especial agrave sintaxe de cada opccedilatildeo Mes-mo um erro de um caractere pode tornar um graacutefico ilegiacutevel Por exemplo o paracircmetro chd utiliza a barra vertical para separar cada conjunto de dados dife-rentemente de chds Infelizmente essa natildeo eacute a uacutenica inconsistecircncia na API do Google Chart (o clipping do graacutefico de barras eacute outro) portanto mantenha o manu-al por perto

Antigamente um graacutefico de barras com valores negati-vos e positivos requeria truques para renderizar corre-tamente Agora eacute possiacutevel usar o paracircmetro chp e uma porcentagem para colocar a linha zero a partir de uma distacircncia proporcional da origem sobre o eixo y Os va-lores devem entatildeo ser interpolados para serem rende-rizados adequadamente Por exemplo suponha que o fluxo de caixa da empresa seja (em milhotildees) de -20 -5 1 3 10 Para colocar a linha zero em 05 ou na

metade do caminho para cima do eixo y valores meno-res que 50 seratildeo desenhados ldquoabaixo da linhardquo e todos os valores acima de 100 seratildeo desenhados ldquoacima da linhardquo Para normalizar os dados adicione 50 a todos os valores e plote os novos valores

httpchartapisgooglecomchartcht=bvgampchs=400x400ampchbh=405ampchd=t3045515360ampchp=5ampchm=r00000004955

A figura 5 mostra o graacutefico final

O paracircmetro bvg eacute a constante para o graacutefico do tipo barra vertical e o chd expressa o conjunto de dados normalizado O paracircmetro chp coloca a linha zero a meio caminho acima do eixo y enquanto que o chm eacute uma opccedilatildeo para desenhar uma faixa de marca-ccedilatildeo no graacutefico Os seus paracircmetros satildeo (na ordem) r para um marcador horizontal 000000 para desenhar o marcador em preto 0 que eacute ignorado e 495 e 5 para expressar as margens inferior e superior da faixa de marcaccedilatildeo em termos de proporccedilatildeo sobre o eixo-y Isso porque a linha zero estaacute colocada a 05495 e 5 desenha uma linha bem fina em zero

O paracircmetro chbh especifica a largura de uma barra e o espaccedilo entre cada uma barra Diferentemente de outros tipos de graacuteficos se chbh for grande demais e chs for muito pequeno parte do graacutefico seraacute cor-tada Certifique-se de ajustar o tamanho de um ou todos esses paracircmetros quando estiver desenhando um graacutefico de barras

Exemplo 3 Informaccedilotildees num coacutedigo QR

01 httpchartapisgooglecomchart02 cht=qramp03 chs=200x200amp04 choe=UTF-8amp05 chld=Qamp06 chl=httpwwwlinuxnewmediacombrlmFigura 3 O endereccedilo do site da

revista capturado num coacutedigo QR

copy Linux New Media do Brasil Editora Ltda

53

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] pChart httppchartsourceforgenet

[2] Documentaccedilatildeo do Google Chart httpcodegooglecomapischart

[3] BeeTagg httpwwwbeetaggcom

[4] Zebra biblioteca livre do Google para leitura de coacutedigos de barra httpcodegooglecompzxing

[5] Guia para codificaccedilatildeo de dados em coacutedigos QR httpcodegooglecompzxingwikiBarcodeContents

[6] Gerador simples para o Google Chart httpalmaercomchartmaker

O Google Chart tambeacutem oferece graacuteficos para Aacutefrica Aacutesia Europa Oriente Meacutedio Ameacuterica do Sul e todo o globo

Coacutedigo de barrasNo Japatildeo moderno jovens compar-tilham informaccedilotildees de uma forma digital verdadeiramente inovado-ra eles trocam coacutedigos de barras E agora vocecirc tambeacutem pode O Google Chart fornece uma API para codificar ateacute 4296 caracteres em uma imagem bidimensional e monocromaacutetica chamado QR code ou coacutedigo QR

Para comeccedilar vamos codificar o email da Linux Magazine em um QR code O exemplo 3 mos-tra como a imagem na figura 3 foi criada Ao usar o graacutefico QR choe especifica a codificaccedilatildeo do texto O paracircmetro chld dita o grau de correccedilotildees de erros aplicado agrave ima-gem O valor Q inclui informaccedilotildees duplicadas o suficiente a ponto de 25 da imagem poder ser destruiacuteda sem afetar a legibilidade O paracirc-metro chl eacute o texto a ser codificado geralmente fornecido como uma URL que eacute entatildeo interpretada por um aplicativo

Se vocecirc tem um telefone celu-lar pode baixar gratuitamente o BeeTagg [3] tirar uma fotografia da figura 3 e decodificar os resul-tados para entrar no site da revista

Como uma alternativa o Google oferece gratuitamente uma biblio-teca gratuita para leitura de coacutedigos QR chamada Zebra Crossing [4][5] e um leitor de coacutedigos de barras online experimental que interpreta as imagens recebidas

Um coacutedigo QR pode capturar ateacute 4296 caracteres A figura 4 por exemplo codifica um vCard (cartatildeo de visitas) inteiro

Como vai o coraccedilatildeoA API do Google Chart eacute simples de usar e faacutecil de integrar em apli-caccedilotildees web Conforme mostrado eacute possiacutevel usar a API imediatamente ndash basta inse-rir um link estaacutetico em sua paacutegina web e permitir que o navegador efetue a requisiccedilatildeo e a renderiza-ccedilatildeo de um graacutefico a cada vez que a paacutegina eacute desenhada

Para acelerar a renderizaccedilatildeo da paacutegina vocecirc pode solicitar e efetuar o cache da imagem do graacutefico em seu proacuteprio servidor recriando o graacutefico apenas quando os dados contidos nele forem alterados Aleacutem de proporcionar melhor eficiecircn-cia essa teacutecnica protege melhor os dados brutos Um visitante do site natildeo poderaacute ldquover os fontesrdquo e copiar a URL

Naturalmente tambeacutem eacute pos-siacutevel misturar a API do Google Chart com teacutecnicas AJAX para mo-dificar os graacuteficos dinamicamente em resposta agrave requisiccedilatildeo do usuaacute-rio O Chart Maker [6] eacute uma de-monstraccedilatildeo baacutesica mas efetiva da dinacircmica de graacuteficos outros tecircm usado a API do Google Chart para implementar uma calculadora de empreacutestimos executiva

Naturalmente o Google Chart costuma ser mais lento que as ferra-mentas para geraccedilatildeo de graacuteficos no desktop como o Apple Numbers ou mesmo o Microsoft Excel Estas uti-lizam mecanismos de renderizaccedilatildeo nativos e natildeo requerem consultas

agrave Internet para transmitir dados e baixar um grande graacutefico na forma de uma imagem No entanto o Google Chart eacute um aplicativo gra-tuito que estaacute disponiacutevel em qual-quer lugar Se vocecirc estaacute realmente interessado em utilizar o Google Chart em ambiente de produccedilatildeo o uso de cache pode melhorar o tempo de resposta

Figura 4 Um vCard inteiro represen-tado como coacutedigo QR

Figura 5 Renderizaccedilatildeo de valores positivos e negativos num graacutefico de barras

copy Linux New Media do Brasil Editora Ltda

54 httpwwwlinuxmagazinecombr

Alta disponibilidade em PostgreSQL

Banco cheio mas disponiacutevel

O PostgreSQL natildeo possui embutido um mecanismo para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia por Fernando Ike

O tema alta disponibilida-de abordado na ediccedilatildeo 43 da Linux Magazine [1] eacute

abrangente e envolve vaacuterias aacutereas desenvolvedores administradores de sistemas rede e banco de dados

Geralmente alta disponibilidade em bancos de dados eacute um objetivo mais complexo e criacutetico do que se costuma acreditar Natildeo eacute simples-mente pensar que uma soluccedilatildeo como Oracle RAC garantiraacute disponibili-dade de 100 do banco de dados Para aumentar a disponibilidade eacute necessaacuterio analisar uma seacuterie de variaacuteveis entre elas Se o datacenter tem grupo ge-

rador de energia eleacutetrica Se haacute conexatildeo agrave Internet por

mais de dois links Servidores com fontes redun-

dantes discos etc Circuitos eleacutetricos e rede redun-

dantes Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias de banco de dados Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias dela mesma Se a modelagem permite ins-

tacircncias de banco de dados fi si-camente distantes

Quanto se pode investir Tais variaacuteveis dependem do pro-

jeto em questatildeo ou seja variam de

TU

TO

RIA

L

projeto para projeto Em geral a grande difi culdade para banco de dados eacute o sincronismo das bases de dados entre vaacuterios servidores jaacute que haacute a necessidade de garantir a con-sistecircncia entre eles Aplicaccedilotildees que usam banco de dados para operaccedilotildees somente leitura (como aplicaccedilotildees web por exemplo) tecircm facilidade de trabalhar com vaacuterios servidores de banco de dados usando balan-ceamento de carga Entretanto o mesmo natildeo acontece quando uma aplicaccedilatildeo tem operaccedilotildees de leitu-ra e escrita pois natildeo existe uma soluccedilatildeo defi nitiva uma vez que depende de como a aplicaccedilatildeo foi projetada Uma alternativa seria modelar a aplicaccedilatildeo para acessar um servidor de banco de dados para operaccedilotildees de leituraescrita e os outros servidores para operaccedilotildees de leitura

Para PostgreSQL essa tarefa eacute um pouco mais difiacutecil ndash mas natildeo impossiacutevel ndash pois ofi cialmente exis-tem poucas formas de aumentar sua disponibilidade sem que se use ex-tensotildees ou aplicaccedilotildees de terceiros Existe uma discussatildeo [2] dentro do PostgreSQL Global Development Group para incorporar recursos de replicaccedilatildeo MasterSlave na versatildeo 84 (atualmente em desenvolvimento) e posteriores

PostgreSQL hoje Vejamos o que eacute possiacutevel fazer com o PostgreSQL sem ferramentas de terceiros

Warm Standby usando PITR ( Point-In-Time Recovery ) um servidor pri-maacuterio envia para um ou mais servido-res secundaacuterios os arquivos do WAL ( Write Ahead Log ) que contecircm as modifi caccedilotildees nas bases de dados do servidor primaacuterio Tais arquivos quan-do enviados seratildeo processados pelos servidores secundaacuterios Esse meacutetodo para o PostgreSQL natildeo permite por enquanto que os servidores secundaacute-rios sejam usados para leitura Esses servidores natildeo estaratildeo disponiacuteveis para nenhuma operaccedilatildeo ateacute que haja uma falha no servidor primaacuterio

Em caso de falha no servidor pri-maacuterio falhando a transmissatildeo dos uacuteltimos arquivos do WAL para os servidores secundaacuterios estes perde-ratildeo as uacuteltimas alteraccedilotildees realizadas no servidor primaacuterio Essa perda eacute pequena se comparada agraves estrateacutegias de recuperaccedilatildeo mais comuns para estes tipos de incidentes as quais satildeo becape completo da uacuteltima noite ou recuperaccedilatildeo utilizando os arquivos do WAL A comparaccedilatildeo eacute de alguns segundos usando Warm Standby e de alguns minutos ou horas com recuperaccedilatildeo de becape ou por arquivos do WAL

copy Linux New Media do Brasil Editora Ltda

55

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Compartilhamento de disco usando a mesma aacuterea num equipa-mento remoto (como storage) os servidores poderatildeo ter a aacuterea mon-tada nele mas somente o servidor primaacuterio ou ativo poderaacute ter o serviccedilo do PostgreSQL em execuccedilatildeo O ser-vidor secundaacuterio soacute deve entrar em accedilatildeo em caso de falha do primaacuterio caso contraacuterio haacute o risco de corrom-pimento das bases de dados

Neste meacutetodo numa eventual fa-lha do servidor ativo eacute praticamen-te nula a perda de dados jaacute que as bases de dados estatildeo em um stora-ge Geralmente usa-se NFS como forma de acesso ao storage Uma recomendaccedilatildeo importante ao usar NFS eacute montaacute-lo usando a opccedilatildeo sync (siacutencrono) desabilitar o cache e jamais usar a opccedilatildeo async (assiacuten-crono) jaacute que ela poderaacute corromper as bases de dados do PostgreSQL O recomendaacutevel para esse meacutetodo eacute o uso de SAN (iSCSI AoE etc) em vez de NAS (SMB NFS etc) uma vez que a arquitetura SAN eacute projetada para situaccedilotildees de grande volumes de dados e menor tempo de recuperaccedilatildeo em caso de incidente comparado com NAS

Replicaccedilatildeo por dispositivo de blo-co uma variaccedilatildeo do compartilhamento de disco Quando usado esse recurso o dispositivo de bloco eacute a unidade de replicaccedilatildeo Assim como nos outros meacute-todos natildeo pode haver dois servidores PostgreSQL em execuccedilatildeo ao mesmo tempo O DRBD eacute um software muito popular para essa fi nalidade

Terceiros Existe a possibilidade de se usar ex-tensotildees ou aplicaccedilotildees de terceiros para aumentar a disponibilidade do PostgreSQL em tarefas como repli-caccedilatildeo mestre-escravo middleware de replicaccedilatildeo orientado a sentenccedila e replicaccedilatildeo multimaster assiacutencrona ou siacutencrona

Replicaccedilatildeo mestre-escravo esse meacutetodo envia todas as consultas de

modifi caccedilotildees das bases de dados para o servidor mestre Este envia as mo-difi caccedilotildees que nele ocorreram para o servidor escravo Essas modifi caccedilotildees ocorrem por lote e de forma assiacutencro-na permitindo que se tenha muacuteltiplos servidores escravos O servidor escravo pode responder somente consultas de leitura as quais satildeo ideais para consultas do tipo data warehouse O Slony-1 eacute um exemplo desse tipo de replicaccedilatildeo com granularidade de ta-bela e suporte a muacuteltiplos servidores escravos Em caso de falha no servidor mestre poderaacute haver perda de dados que ainda natildeo foram replicados para o servidor secundaacuterio

Middleware de replicaccedilatildeo orien-tado a sentenccedila programa que intercepta cada consulta SQL e a envia para um ou todos os servido-res Cada servidor opera indepen-dentemente Consultas de leitura e escrita satildeo enviadas para todos os servidores enquanto as consultas somente-leitura podem ser enviadas para qualquer um dos servidores permitindo que o trabalho de leitura seja distribuiacutedo

Se as consultas forem simplesmen-te transmitidas sem modifi caccedilotildees alguns valores especiacutefi cos de cada servidor (como a funccedilatildeo random() e os valores de TIMESTAMP ) teratildeo va-lores diferentes nos servidores Isso ocorre porque cada servidor opera de forma independente e porque as consultas SQL satildeo realizadas em broadcast (e natildeo atuando na modifi caccedilatildeo das colunas) Se isso for inaceitaacutevel o middleware ou aplicaccedilatildeo deve consultar tais valo-res a partir de um servidor e depois usaacute-los para escrever as consultas Exemplos desse tipo de replicaccedilatildeo satildeo o pgpool-II e Sequoia

Replicaccedilatildeo Multimaster Assiacutencro-na para os servidores que natildeo estatildeo regularmente ligados como laptops e servidores remotos manter os da-dos consistentes entre os servidores eacute um desafi o Usando replicaccedilatildeo assiacutencrona multimaster cada servi-dor trabalha com independecircncia e periodicamente se comunica com os outros servidores a fi m de identifi car transaccedilotildees confl itantes Os confl itos podem ser resolvidos pelos usuaacuterios

Figura 1 Soluccedilatildeo de alta disponibilidade do banco de dados proposta

copy Linux New Media do Brasil Editora Ltda

56 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

ou por meio de regras Bucardo eacute um exemplo desse tipo de replicaccedilatildeo

Replicaccedilatildeo multimaster siacutencro-na em replicaccedilatildeo multimaster siacuten-crona cada servidor pode aceitar conexotildees com transaccedilotildees de escrita (como INSERT UPDATE e DELETE) Tais transaccedilotildees satildeo transmitidas a partir do servidor de origem para todos os outros servidores antes de efetivar a transaccedilatildeo Em situaccedilotildees com mui-tas transaccedilotildees isso poderaacute causar bloqueio dos registros degradando consideravelmente a performance Neste tipo de replicaccedilatildeo as transa-ccedilotildees com escrita geralmente satildeo mais lentas do que as feitas em um servi-dor uacutenico Aleacutem de dividir a carga de transaccedilotildees para leitura e escrita como na replicaccedilatildeo mestre-escravo a replicaccedilatildeo multimaster siacutencrona eacute muito usada para balanceamento de carga em alguns casos podendo ha-ver problemas de consistecircncia ao se usar funccedilotildees como random()

Soluccedilatildeo simplesUma soluccedilatildeo muito comum e ba-rata para alta disponibilidade em PostgreSQL eacute o uso de um dispositivo de storage comunicando-se com os

servidores PostgreSQL via NFS (fi-gura 1) A soluccedilatildeo consiste em dois servidores PostgreSQL e Heartbeat Um deles seraacute o primaacuterio e o outro o secundaacuterio O secundaacuterio aguarda-raacute algum problema com o servidor primaacuterio e caso ocorra iniciaraacute o serviccedilo do PostgreSQL assumindo o endereccedilo de rede (VIP) usado para comunicaccedilatildeo com a aplicaccedilatildeo

Essa soluccedilatildeo natildeo foi planejada para que o servidor primaacuterio assuma o controle novamente do ambiente caso retorne a operar pois eacute reco-mendaacutevel verificar a razatildeo do inci-dente corrigir e retornar a operaccedilatildeo ao ambiente num periacuteodo de pouco uso do banco de dados

Haacute alguns pontos importantes nessa soluccedilatildeo Sempre que ocorrer uma atualizaccedilatildeo de seguranccedila no PostgreSQL eacute recomendaacutevel apli-caacute-la a todos os servidores pois natildeo se deve executar uma versatildeo dife-rente do binaacuterio em cada maacutequina Aleacutem disso nesse tipo de soluccedilatildeo de alta disponibilidade natildeo eacute pos-siacutevel haver dois servidores com o serviccedilo PostgreSQL em execuccedilatildeo A disponibilidade eacute garantida pelo armazenamento dos dados no stora-

ge sem necessidade de mecanismos de replicaccedilatildeo de dados externos Por uacuteltimo poliacuteticas de backup devem continuar sendo usadas sem altera-ccedilotildees Caso aconteccedila algum incidente que indisponibilize os dados haveraacute formas de recuperaacute-los

ImplementaccedilatildeoO procedimento de instalaccedilatildeo seraacute dividido por servidores a primeira parte consiste na instalaccedilatildeo do servi-dor primaacuterio e a segunda parte trata do servidor secundaacuterio considerando que um ponto de montagem foi dis-ponibilizado previamente em ambos os servidores em varlibpostgre-sqlstorage

Depois de instalar o pacote do PostgreSQL 83 (versatildeo estaacutevel mais recente) do Debian 50 (Lenny) o di-retoacuterio padratildeo da instalaccedilatildeo do cluster de base de dados[3] eacute o local em que estaacute uma instacircncia do PostgreSQL com seu cataacutelogo de sistema Esse diretoacuterio seraacute movido para o storage usando uma particcedilatildeo NFS montada no servidor o que exige uma parada no serviccedilo do PostgreSQL

Parado o serviccedilo do PostgreSQL mova o diretoacuterio com o cluster de base de dados armazenado local-mente para o diretoacuterio NFS remo-to Depois disso eacute necessaacuterio ainda criar um link simboacutelico para que o serviccedilo inicie corretamente

mv varlibpostgresql83 varlibpostgresqlstorage ln -s varlibpostgresqlstorage83 varlibpostgresql83

Feito isso reinicie o PostgreSQL e crie um arquivo com ajustes de per-formance do PostgreSQL chamado tuningsh em usrlocalsbin (exemplo 1) Esse arquivo conteraacute ajustes de paracirc-metros do kernel Linux para o Postgre-SQL aproveitar melhor os recursos de hardware Seria possiacutevel usar o arquivo etcsysctlconf mas ele natildeo oferece

Exemplo 1 Arquivo tuningsh

01 binbash0203 echo ldquo2rdquo gt procsysvmovercommit_memory0405 kernelshmmax = 447177599906 25 do total da RAM07 echo ldquo17179869184rdquo gt procsyskernelshmmax08 kernelshmmax = 429496729609 echo ldquo17179869184rdquo gt procsyskernelshmall10 echo ldquo300 32500 150 160rdquo gt procsyskernelsem11 echo ldquo65536rdquo gt procsysfsfile-max12 echo ldquodeadlinerdquo gt sysblocksdaqueuescheduler13 echo ldquo16777216rdquo gt procsysnetcorermem_default14 echo ldquo16777216rdquo gt procsysnetcorewmem_default15 echo ldquo16777216rdquo gt procsysnetcorermem_max16 echo ldquo16777216rdquo gt procsysnetcorewmem_max

copy Linux New Media do Brasil Editora Ltda

57

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

a possibilidade de alterar tambeacutem o sistema de arquivos sysfs

Entre os paracircmetros a serem mo-dificados shmmax geralmente deveraacute ser de 25 a 50 do total da memoacute-ria RAM dependendo do tipo de aplicaccedilatildeo e modelagem de dados Nesse caso usamos usamos 50 (16 GB) (linha 7)

Torne o script executaacutevel e crie um link simboacutelico para que ele seja carregado na inicializaccedilatildeo

chmod 0755 usrlocalsbintuningsh ln -s usrlocasbintuningsh etcrcSdS99tuningsh

Em seguida execute-o para efetivar as alteraccedilotildees dos paracircmetros do sis-tema operacional

Ajuste do PostgreSQLCom o sistema operacional pronto eacute hora de ajustar o banco de dados Para isso comece editando o arqui-vo postgresqlconf de acordo com as determinaccedilotildees listen_adresses um asterisco

permite que o PostgreSQL escu-te conexotildees vindas de qualquer rede Ainda eacute necessaacuterio alterar o arquivo pg_hbaconf para que essa alteraccedilatildeo tenha efeito

max_connections nuacutemero total de conexatildeo simultacircneas aceitas pelo PostgreSQL

shared_buffers 20 a 25 do total da memoacuteria RAM

wal_write_delay 500 milisse-gundos

commit_delay 100 checkpoint_segments 128 checkpoint_timeout 30 min checkpoint_completion_

target 07

Exemplo 2 Arquivo postgresqlconf

data_directory = lsquovarlibpostgresql83mainrsquo usar dados em outro diretoacuteriohba_file = lsquoetcpostgresql83mainpg_hbaconfrsquo arquivo de autenticaccedilatildeo por maacutequina (host-based authentication)ident_file = lsquoetcpostgresql83mainpg_identconfrsquo arquivo de configuraccedilatildeo de identexternal_pid_file = lsquovarrunpostgresql83-mainpidrsquo gravar um arquivo extra com o PIDlisten_addresses = lsquorsquo IP(s) para escutarport = 5432 porta (necessaacuterio reiniciar)max_connections = 1000 (necessaacuterio reiniciar)unix_socket_directory = lsquovarrunpostgresqlrsquo (necessaacuterio reiniciar)ssl = false (necessaacuterio reiniciar)shared_buffers = 12GB miacutenimo=128 kB maacuteximo=max_connections16kBmax_fsm_pages = 204800 miacutenimo=max_fsm_relations16 6 bytes cadafsync = on (des)ativa sincronizaccedilatildeo forccediladawal_sync_method = open_sync o padratildeo eacute a primeira opccedilatildeofull_page_writes = on recuperar-se de gravaccedilotildees de paacutegina parciaiswal_writer_delay = 500ms 1-10000 milissegundoscommit_delay = 100 0-100000 em microssegundoscheckpoint_segments = 128 em segmentos de logfile miacutenimo=1 16MB cadacheckpoint_timeout = 30min 30s-1hcheckpoint_completion_target = 07 duraccedilatildeo do alvo do checkpoint 00 - 10effective_cache_size = 48GBdatestyle = lsquoiso dmyrsquolc_messages = lsquopt_BRUTF-8rsquo locale para mensagens de erro do sistemalc_monetary = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo monetaacuterialc_numeric = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo numeacutericalc_time = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo de tempodefault_text_search_config = lsquopg_catalogportuguesersquo

Exemplo 3 Arquivo pg_hbaconf

local all postgres md5local all all md5host all all 12700132 md5host all all 1128 md5host intportal portal 192168103032 md5

copy Linux New Media do Brasil Editora Ltda

58 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

effective_cache_size 75 da memoacuteria RAM

Poreacutem tenha em mente que conforme a base de dados cresce esses e outros paracircmetros do ar-quivo de configuraccedilatildeo precisaratildeo ser alterados

O exemplo 2 mostra o conteuacutedo do arquivo postgresqlconf apoacutes sua ediccedilatildeo

No arquivo pg_hbaconf altere as poliacuteticas de acesso conforme a poliacutetica da instituiccedilatildeo ativando ou desativando a criptografia definindo quais redes podem acessar o banco etc No exemplo 3 o arquivo permite que o usuaacuterio portal acesse a base de dados intportal com o endereccedilo de rede 192168103032 usando cripto-grafia MD5

Para efetivar as al-teraccedilotildees reinicie o PostgreSQL

HeartbeatO hearbeat eacute tido por muitos como si-nocircnimo de alta dis-ponibilidade mas eacute apenas um meio para esse fim e a soluccedilatildeo para alta disponibi-lidade de bancos de dados PostgreSQL proposta neste artigo o utiliza

Apoacutes instalar o pa-cote do heartbeat na distribuiccedilatildeo usada no servidor adicione ao arquivo etchosts os nomes e IPs dos ser-vidores primaacuterio e se-cundaacuterio No exem-plo deste artigo esses valores satildeo

1921681010 pgprimario1921681011 pgsecundario

O arquivo de con-figuraccedilatildeo do heart-beat pode se localizar em etchad ou em etcheartbeat O exemplo 4 mostra o conteuacutedo do arquivo hacf que deve resi-dir no diretoacuterio usa-do pela distribuiccedilatildeo

em questatildeo cujas opccedilotildees tecircm os seguintes efeitos logfacility executar o heart-

beat como serviccedilo logfile local onde seraacute gravado

o registro de atividades do heart-beat

keepalive intervalo de tempo de comunicaccedilatildeo entre os noacutes

deadtime intervalo de tempo para que heartbeat reconheccedila um noacute como morto

bcast forma de comunicaccedilatildeo en-tre os servidores hearbeat neste caso com uma placa exclusiva para comunicaccedilatildeo (eth1)

ping checa se o IP virtual estaacute no ar

auto_failback caso o servi-dor primaacuterio saia do ar quan-do voltar ele natildeo tentaraacute assu-mir como servidor principal no cluster

respawn hacluster usrlibheart-beatipfail serviccedilo do heartbeat para trocar o IP Virtual em caso de falha no noacute principal

Ainda no diretoacuterio de configu-raccedilatildeo do heartbeat crie o arquivo haresources Eacute nesse arquivo que o heartbeat procuraraacute os serviccedilos que precisam ser executados no cluster Tais serviccedilos satildeo scripts que podem ou natildeo ter paracircmetros e estatildeo loca-lizados em etchadresourced Acrescente ao arquivo haresources o seguinte conteuacutedo

pgprimario IPaddr192168105pgprimario PostgreSQL

O paracircmetro IPaddr adiciona o en-dereccedilo de rede virtual (VIP) ao clus-ter e PostgreSQL controla o Postgre-SQL no heartbeat Esse script natildeo eacute distribuiacutedo oficialmente e pode ser personalizado conforme a necessida-de do ambiente

Crie tambeacutem o arquivo authkeys para abrigar a senha (criptografada com SHA1) necessaacuteria agrave comunica-

Exemplo 5 Script PostgreSQL do heartbeat

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 case $1 in07 start)08 etcinitdpostgresql-83 start09 sleep 210 check_pgsqlsh amp11 exit 012 13 14 stop)15 etcinitdpostgresql-83 stop16 kill $(ps a|grep check_pgsql|awk lsquo print $1 rsquo|head -n 1)17 exit 018 19 )20 21 esac

Exemplo 4 Arquivo hacf

logfacility daemonlogfile varloghalognode pgprimario pgsecundariokeepalive 2deadtime 10bcast eth1ping 192168105auto_failback offrespawn hacluster usrlibheartbeatipfail

copy Linux New Media do Brasil Editora Ltda

59

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

ccedilatildeo entre os noacutes do heartbeat Para criar a senha use algo como

echo ldquosuasenhardquo | sha1sum2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53 -

Adicione esse hash ao arquivo authkeys da seguinte forma

auth 11 sha1 2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53

Em seguida altere as permis-sotildees do arquivo para 600 para que somente o usuaacuterio root possa ler e escrever nele

No diretoacuterio etchadresourced ficam os scripts de interaccedilatildeo dos ser-viccedilos do heartbeat Crie nele o script PostgreSQL referenciado no arquivo haresources que criamos antes com o conteuacutedo mostrado no exemplo 5 Esse arquivo tambeacutem precisaraacute ter suas permissotildees alteradas mas dessa vez para permitir que ele seja executado Portanto recomenda-se usar 755 como permissotildees

Crie tambeacutem um script (usrlo-calsbincheck_pgsqlsh) para verificar se o PostgreSQL continua no ar de acordo com o exemplo 6 Esses satildeo os significados das variaacuteveis HOST endereccedilo de rede do ser-

vidor USER usuaacuterio do PostgreSQL DB banco de dados a ser usado TEST tipo de consulta que serviraacute

como teste REPEAT nuacutemero de repeticcedilotildees do

teste ateacute considerar o servidor como inativo

OTHER endereccedilo de rede do ser-vidor secundaacuterio

Apoacutes tornar esse script executaacutevel eacute necessaacuterio novamente reiniciar o PostgreSQL e o proacuteprio heartbeat Com isso fica concluiacuteda a confi-guraccedilatildeo do servidor PostgreSQL primaacuterio

Servidor secundaacuterioPara o servidor secundaacuterio seratildeo repe-tidos os mesmos passos da instalaccedilatildeo e configuraccedilatildeo do servidor primaacuterio

poreacutem com certas diferenccedilasDepois de instalar o pacote do

PostgreSQL 83 pare o serviccedilo deste e apague o diretoacuterio varlibpostgre-

Exemplo 6 Script check_pgsqlsh no servidor primaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101008 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101114 15 check()16 17 while true18 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull19 if [ $ -eq 0 ]20 then21 break22 do23 sleep 224 25 if [ $COUNTER -eq $REPEAT ]26 then27 etcinitdpostgresql-83 stop28 etcinitdheartbeat stop29 else30 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull31 if [ $ -eq 0 ]32 then33 COUNTER=rdquo1rdquo34 else35 let COUNTER=$COUNTER+136 fi37 fi38 39 done40 fi41 42 43 check

copy Linux New Media do Brasil Editora Ltda

60 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

Exemplo 7 Script check_pgsqlsh no servidor secundaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101108 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101014 15 16 check()17 18 while true19 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull20 if [ $ -eq 0 ]21 then22 break23 do24 sleep 225 26 if [ $COUNTER -eq $REPEAT ]27 then28 etcinitdpostgresql-83 stop29 etcinitdheartbeat stop30 else31 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull32 if [ $ -eq 0 ]33 then34 COUNTER=rdquo1rdquo35 else36 let COUNTER=$COUNTER+137 fi38 fi39 40 done41 fi42 43 44 check

sql83 pois ele usaraacute quando ativo o mesmo cluster de base de dados do servidor primaacuterio que estaacute arma-

zenado no storage Esse passo eacute o primeiro em que os procedimentos dos dois servidores diferem

Com o diretoacuterio apagado eacute ne-cessaacuterio criar um link simboacutelico para que o serviccedilo inicie correta-

mente quando for solicitado pelo heartbeat

ln -s varlibpostgresqlstorage83 varlibpostgresql83

Assim como no servidor primaacuterio crie um arquivo tuningsh com ajustes de per-formance para o PostgreSQL em usrlocalsbin Como os servidores tecircm hardwares semelhantes usaremos os mesmos ajustes de perfor-mance (exemplo 1) Apoacutes salvar o script crie um link simboacutelico para que ele seja carregado ao iniciar os servi-ccedilos do servidor

ln -s usrlocalsbintuningsh etcrcSdS99tuningsh

Execute o script receacutem-criado para efetivar as mo-dificaccedilotildees dos paracircmetros do sistema operacional

Diferentemente do servi-dor primaacuterio natildeo seratildeo neces-saacuterias alteraccedilotildees aos arquivos postgresqlconf e pg_hbaconf pois os arquivos usados seratildeo os mesmos

Assim como no servidor primaacuterio instale o heartbeat e acrescente as seguintes linhas ao arquivo etchosts

1921681011 pgprimario1921681010 pgsecundario

Note que os IPs satildeo inver-tidos com relaccedilatildeo ao con-teuacutedo do arquivo no servidor primaacuterio

Em seguida crie o arquivo de configuraccedilatildeo etchad

copy Linux New Media do Brasil Editora Ltda

61

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] Linux Magazine 43 httplnmcombrissuelm_43_alta_disponibilidade

[2] Discussatildeo no PGDG sobre replicaccedilatildeo httparchivespostgresqlorgpgsql-hackers2008-05msg00913php

[3] Criaccedilatildeo de clusters PostgreSQL httpwwwpostgresqlorgdocs83interactivecreating-clusterhtml

hacf de acordo com o exemplo 4 e etchadharesources com conteuacutedo igual ao do servidor primaacuterio

pgprimario IPaddr192168105pgprimario PostgreSQL

Todos os procedimentos com o arquivo etchadauthkeys tambeacutem devem ser repetidos assim como os do script etchadresourcedPostgreSQL (exemplo 5) O script diferente entre os servidores primaacute-rio e secundaacuterio eacute o check_pgsqlsh em usrlocalsbin (exemplo 7) pois os valores das variaacuteveis HOST e OTHER devem ter seus valores troca-dos entre si

Ao final no entanto o mesmo procedimento do servidor primaacuterio eacute necessaacuterio permitir a execuccedilatildeo dos scripts criados e reiniciar o Postgre-SQL e o heartbeat

ConsideraccedilotildeesAs atualizaccedilotildees de seguranccedila deveratildeo ser realizadas em ambos os servido-res com diferentes procedimentos para cada No servidor que estiver ativo no cluster deve-se atualizar conforme a liberaccedilatildeo de novas ver-sotildees do pacote do PostgreSQL e os procedimentos de atualizaccedilatildeo da distribuiccedilatildeo em uso Eacute recomendaacute-vel para ambos os servidores fazer a atualizaccedilatildeo em um horaacuterio de pou-co uso ou numa parada programada para manutenccedilatildeo

As atualizaccedilotildees de seguranccedila no servidor secundaacuterio precisam de atenccedilatildeo pois distribuiccedilotildees baseadas em Debian reiniciam o serviccedilo do PostgreSQL Nesse caso esse rei-niacutecio pode afetar o funcionamento do servidor primaacuterio Para contornar esse problema podemos alterar a permissatildeo do arquivo etcinitdpostgresql-83 antes de atualizar o pacote do PostgreSQL

chmod 000 etcinitdpostgresql-83

Depois de atualizar o pacote basta retornar o pacote agraves permis-sotildees anteriores (e corretas para a operaccedilatildeo)

chmod 755 etcinitdpostgresql-83

O quadro 1 oferece ajuda caso ocorra algum problema com o storage durante a operaccedilatildeo do cluster

ConclusatildeoUma soluccedilatildeo de alta disponibilidade como essa natildeo elimina a necessidade de uma poliacutetica de becape e proce-dimentos de melhora contiacutenua de performance O becape pode ser res-taurado a partir de qualquer maacutequina na soluccedilatildeo de alta disponibilidade desde que elas estejam com o serviccedilo do PostgreSQL em execuccedilatildeo Novos procedimentos de becape podem ser adotados como armazenamento dos logs diaacuterios como complemento da poliacutetica existente

O aumento da disponibilidade do banco de dados natildeo significa aban-donar as poliacuteticas de contingecircncia e becape Tambeacutem eacute necessaacuterio plane-jar o aumento da disponibilidade de todo o ambiente (aplicaccedilatildeo e banco de dados) Natildeo desconsidere o uso de storages com iSCSI ou fibra oacutetica para melhor performance

Quadro 1 Problemas no storage

Em caso de problemas no storage o melhor eacute recriar o cluster de banco de dados com o comando initdb e restaurar seu conteuacutedo a partir do becape Dependendo do incidente pode-se optar por criar o cluster localmente ou em outro storage Caso seja local eacute possiacutevel criar um cluster provisoacuterio ateacute que o storage volte a ficar disponiacutevel para o servidor

O comando para isso eacute

pg_createcluster -u postgres -d varlibpostgresqlprovisorio --start-conf=auto 83 provisorio

e suas opccedilotildees satildeo

-u usuaacuterio que seraacute usado pelo cluster

-d diretoacuterio onde ficaraacute o cluster

--start-conf= opccedilatildeo para acrescentar a etcinitdpostgresq-83 o iniacutecio do cluster que estaacute sendo acrescentado

83 versatildeo instalada do PostgreSQL

provisorio identificaccedilatildeo do novo cluster

copy Linux New Media do Brasil Editora Ltda

62 httpwwwlinuxmagazinecombr

Integraccedilatildeo de dados com o ETL Talend

O talento do Talend Quem procura uma soluccedilatildeo ETL para Business Intelligence natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda por Miguel Koren OrsquoBrien de Lacy

Um dos componentes essen-ciais de uma soluccedilatildeo para a inteligecircncia de negoacutecios (BI

ndash Business Intelligence ) eacute o moacutedulo de integraccedilatildeo de informaccedilotildees de di-versas fontes de dados Felizmente o mercado de Software Livre e de coacutedigo aberto oferece algumas so-luccedilotildees bastante completas que satildeo usadas dentro dos pacotes de BI ou em modo stand alone As soluccedilotildees de integraccedilatildeo de dados satildeo conheci-das como ETL ( Extract Transform Load ) pois a missatildeo dessas soluccedilotildees eacute integrar informaccedilotildees e preparaacute-las para a formaccedilatildeo de tabelas no data mart Normalmente os dados precisam ser manipulados depois de obtidos e logo inseridos nas tabelas dos bancos de dados em que reside o data mart Ou seja estamos falando em obter os dados aplicar regras de negoacutecios da empresa facilitar as consultas pos-teriores ou validar a qualidade dos dados e entregaacute-los transformados ao destino fi nal Dentre as transfor-maccedilotildees normalmente aplicadas aos dados podemos destacar a seleccedilatildeo de campos importantes para a anaacutelise a fi ltragem dos registros necessaacuterios a limpeza dos dados (ldquoSrrdquo ou ldquoSe-nhorrdquo passam a valer ldquoSrdquo) a geraccedilatildeo dos campos calculados (por exemplo ldquovalor nf = quantidade valor unitaacute-riordquo) etc Mas essas soluccedilotildees tambeacutem podem ser consideradas integradores e manipuladores de dados para outras

necessidades podendo substituir mui-tos sistemas de ldquointerfacesrdquo de dados que satildeo desenvolvidos pelas aacutereas de TI de grandes empresas

Originalmente os sistemas cor-porativos foram desenvolvidos de forma isolada para cumprir alguma funccedilatildeo especiacutefi ca natildeo sendo parte do objetivo de projeto a necessidade de compartilhar dados Quando a quan-tidade desses sistemas comeccedilou a ser mais importante dentro das empresas surgiram as primeiras necessidades de integraccedilatildeo de dados como a carga de pedidos aos sistemas de estoque e fatu-ramento Tais necessidades de integra-ccedilatildeo foram implementadas diretamente por programas ou scripts especiacutefi cos Com a crescente complexidade das integraccedilotildees requeridas iniciou-se um encarecimento do desenvolvimento desses processos Os sistemas tinham manutenccedilatildeo complexa e as loacutegicas de integraccedilatildeo difiacuteceis de documentar auditar e entender Por isso as em-presas comeccedilaram a implementar ferramentas prontas ou semi-pron-tas para essa necessidade Essa foi a origem dos sistemas ETL

Esses sistemas poreacutem natildeo pos-suem a popularidade que merecem em razatildeo de certos fatores que impe-dem sua adoccedilatildeo Entre estes fatores devemos destacar Custo inicial Complexidade no uso com curva de

aprendizado muito empinada

Escalabilidade a necessidades de integraccedilotildees pequenas

A empresa Talend eacute fabricante

do Talend Open Studio [1] apre-sentado como ldquoo sistema ETL mais abrangente no mercado de software livre e coacutedigo abertordquo O modelo de negoacutecios da empresa eacute um dos claacutes-sicos para Software Livre A empresa desenvolve um produto que licencia sem custo usando licenciamento em modalidade livre no caso a GPL [2] e oferece serviccedilos e suporte co-merciais O software licenciado sob a GPL natildeo possui todos os compo-nentes que satildeo oferecidos a clientes sob o licenciamento de subscriccedilatildeo do serviccedilo mas mesmo dessa forma eacute extremamente uacutetil para as neces-sidades ETL de qualquer empresa O Talend Open Studio foi liberado no mercado em 2005 pela empresa Talend com bases na Franccedila paiacutes com uma poliacutetica ofi cial de apoio a Software Livre e Coacutedigo Aberto Analistas de TI como Forrester Rese-arch [3] IDC [4] e Bloor Research [5] posicionam o Talend como o melhor sistema para necessidades de integraccedilatildeo de dados O sistema BI em software livre SpagoBI [6] [7] eacute um exemplo de uso do Talend como seu componente ETL padronizado

O modelo de Software Livre eacute bem apropriado para esse tipo de soluccedilatildeo pois faz bom uso de desen-

AN

AacuteLIS

E

AN

AacuteLIS

E

copy Linux New Media do Brasil Editora Ltda

63

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

volvimento colaborativo em que muitas pessoas contribuem com moacutedulos para conexotildees a fontes de dados variadas Mas o sucesso do Talend tambeacutem mostra que o Software Livre natildeo eacute apenas bem sucedido em soluccedilotildees ldquocomoditiza-dasrdquo como sistemas operacionais e utilitaacuterios de infra-estrutura O Talend mostra que uma soluccedilatildeo livre pode ser muito atrativa num mercado novo em formaccedilatildeo com-petindo com sistemas proprietaacuterios de grandes empresas como IBM SAS e SAP as quais tecircm preccedilos de licenciamento de niacutevel corporativo Empresas como Oracle e Microsoft tambeacutem competem nesse mercado poreacutem com uma visatildeo mais restrita focada nos produtos de base de cada uma banco de dados Oracle e SQL Server respectivamente

Um forte apelo do Talend eacute a disponibilidade de uma ferramenta abrangente em que os proacuteprios usuaacute-rios da informaccedilatildeo podem modelar as regras de negoacutecios (fontes de dados campos requeridos regras de trans-formaccedilatildeo etc) para a integraccedilatildeo dos dados Hoje a aacuterea de TI de qualquer

empresa tem diariamente mais e mais dados e os usuaacuterios tecircm necessida-des de visualizaccedilatildeo que satildeo mais urgentes a cada dia Assim eacute muito uacutetil que os proacute-prios usuaacuterios possam usar o sistema de for-ma natildeo teacutecnica para especificar as regras de integraccedilatildeo

Recurso e TecnologiaO Talend eacute um sistema desenvolvi-do em Java que usa uma arquitetura modular formada por Gerenciador graacutefico de negoacutecios

(visatildeo natildeo teacutecnica de necessida-des de fluxo de dados)

Gerenciador graacutefico de proces-sos ETL

Gerenciador de metadados (repositoacuterio para reutilizaccedilatildeo de objetos)

Repositoacuterio de processos (moacutedulo adicional da versatildeo comercial)

Interface web services a proces-sos ETL

Monitor de processos Componentes modulares (atu-

almente mais de 400) Usando a API do sistema podem ser desenvolvidos componentes personalizados

O gerenciador graacutefico de processos ETL roda dentro do ambiente Eclipse [8][9] seguindo a filosofia de inte-graccedilatildeo de ferramentas dentro desse ambiente para desenvolvimento

Normalmente os primeiros trecircs moacutedulos satildeo usados na ordem listada O gerenciador de negoacutecios eacute usado pelos usuaacuterios do sistema enquanto o gerenciador de processos ETL e o gerenciador de metadados satildeo usados pelos programadores Mesmo que o repositoacuterio de projetos ETL com apoio a equipes de trabalho seja um componente oferecido comer-cialmente o Talend Open Studio inclui a possibilidade de versio-

namento do desenvolvimento dos processos A figura 1 mostra o uso desse recurso

O Talend eacute um sistema ldquogera-dor de coacutedigordquo em oposiccedilatildeo a um sistema de ldquocaixa pretardquo ndash a qual eacute responsaacutevel pela execuccedilatildeo dos pro-cessos ETL ndash ou seja o Talend natildeo requer um servidor de execuccedilatildeo de processos ETL A vantagem da gera-ccedilatildeo de coacutedigo eacute que eacute mais simples integrar os processos ETL dentro de outros aplicativos e os modelos satildeo de portabilidade muito mais flexiacutevel Aleacutem de sistemas como SpagoBI o

Figura 1 Gerenciamento de versotildees

Figura 2 Tela de iniacutecio do Talend

copy Linux New Media do Brasil Editora Ltda

64 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

Talend eacute integrado em sistemas de empresas como Ingres Teradata e JasperSoft O mecanismo de geraccedilatildeo de coacutedigo permite a integraccedilatildeo do coacutedigo gerado pelo Talend dentro de outras soluccedilotildees aleacutem de ter maior portabilidade Outra vantagem de mecanismos de geraccedilatildeo de coacutedigo eacute que mecanismos de integraccedilatildeo ldquoonlinerdquo conhecidos hoje como ldquointegraccedilatildeo operacionalrdquo podem ser implementados com maior fa-cilidade O conceito de geraccedilatildeo de coacutedigo versus ldquocaixa pretardquo de exe-cuccedilatildeo dos processos ETL eacute a maior diferenccedila entre o Talend e muitos outros sistemas O conceito de ge-raccedilatildeo de coacutedigo natildeo foi popular no passado possivelmente por causa do marketing das empresas comerciais destas soluccedilotildees mas as vantagens que o Talend apresenta usando este conceito satildeo importantes

No caso o Talend gera coacutedigo Java ou Perl e SQL para os proces-sos ETL Aleacutem de aplicar o conceito ETL ele aplica tambeacutem o conceito ELT (Extract Load Transform) o que significa que pode aproveitar a eficiecircncia e performance nativas de bancos de dados SQL ou seja os dados satildeo extraiacutedos carregados no destino e somente depois jaacute den-tro do banco de destino eacute aplicada a loacutegica de transformaccedilatildeo usando SQL e linguagem procedural de

cada banco de dados Para a funcio-nalidade ELT satildeo suportados nati-vamente hoje os bancos de dados Oracle MySQL e Teradata

OperaccedilatildeoO sistema estaacute disponiacutevel em versotildees para Linux Unix e Windows Para todas as plataformas eacute necessaacuterio ter Java e Perl no equipamento considerando seu conceito de de-senho que eacute de geraccedilatildeo de coacutedigo ou seja que os processos do Talend satildeo executados pela maacutequina vir-tual Java (JVM) ou pelo interpre-tador Perl

O download do sistema ainda eacute relativamente pesado (235 MB) mas com conexotildees de banda larga cada dia mais confiaacuteveis e raacutepidas pode ser feito em poucas horas Neste artigo exploraremos o Ta-lend Open Studio para Linux em ambiente graacutefico Gnome rodando em OpenSUSE 102 No caso de usaacute-lo em Windows 2000 existe um preacute-requisito adicional que eacute a instalaccedilatildeo do GDI requerido pelo Eclipse [10] A partir do Windows XP essa biblioteca estaacute incluiacuteda nativamente Vale a pena fazer o download tambeacutem do pacote com-pleto de documentaccedilatildeo Referente ao produto e agrave documentaccedilatildeo o Talend apresenta as vantagens de suporte por uma empresa comercial pois a documentaccedilatildeo eacute bastante comple-ta Outro destaque importante do Talend eacute o acesso a um sistema de ajuda online muito completo In-felizmente isso ainda natildeo eacute norma na maioria dos sistemas de coacutedigo aberto O site do Talend oferece um wiki e uma aacuterea de tutoriais

Simplesmente descompacte o pacote obtido por download e atri-bua propriedades de executaacutevel ao binaacuterio de iniacutecio do sistemaFigura 4 Geraccedilatildeo de um novo projeto

Figura 3 Definiccedilatildeo de repositoacuterio local inicial

copy Linux New Media do Brasil Editora Ltda

65

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

chmod a+x TalendOpenStudio-linux-gtk-x86

Selecione o binaacuterio de iniacutecio apropriado para sua arquitetura de CPU Para iniciar o gerenciador de processos execute o binaacuterio

TalendOpenStudio-linux-gtk-x86 amp

Isso exibiraacute a tela de abertura do sistema (figura 2)

Leia e aceite o contrato de licen-ciamento Apareceraacute finalmente a tela de conexatildeo ao repositoacuterio de processos ETL (figura 3) No caso do Talend Open Studio o repositoacuterio somente poderaacute ser local

Com o repositoacuterio local defini-do gere um projeto novo selecio-nando Create a new local project (figura 4)

Ao definir o tiacutetulo e a descriccedilatildeo do projeto deve-se selecionar tambeacutem a linguagem de geraccedilatildeo do coacutedigo No exemplo para o artigo escolhemos coacutedigo em Java A figura 5 mostra as opccedilotildees de definiccedilatildeo do projeto

Finalmente jaacute se pode entrar no projeto escolhido pela tela principal bastando selecionar nela o projeto e pressionar o botatildeo open Apoacutes alguns momentos apareceraacute a tela principal do sistema Na primeira vez seraacute pedido ao usuaacuterio que re-

gistre o uso digitando seu email e selecionando o paiacutes Este passo natildeo eacute obrigatoacuterio mas eacute recomendado para receber notificaccedilotildees de novas versotildees do sistema

Antes de usar o Talend Open Stu-dio deve ser configurada a lista de elementos disponiacuteveis para o dese-nho Isso pode ser feito modifican-do-se as propriedades do projeto na

opccedilatildeo de ldquopalette settingsrdquo A figura 6 mostra a inclusatildeo de conectores para MS SQL Server e PostgreSQL que devem ser selecionados no caso de precisarmos desenhar um processo de integraccedilatildeo de dados entre estes dois bancos de dados

O desenho de um processo ETL requer vaacuterias etapas incluindo de-senho dos componentes de negoacute-cios dos jobs de processamento de conexotildees JDBC acoplamento de moacutedulos de processamento e outros elementos A figura 7 mostra um exemplo de configuraccedilatildeo de cone-xatildeo JDBC ao banco Microsoft SQL Server O driver JDBC utilizado vem junto com a instalaccedilatildeo do Talend no caso o excelente JTDS [11] A figura 8 mostra a tela do Talend Open Studio com a visatildeo da paleta de fer-ramentas componentes tratados e a ediccedilatildeo de um elemento de negoacutecios (business object)

Aleacutem das possibilidades de desen-volvimento loacutegico da soluccedilatildeo dentro do ambiente graacutefico o Talend oferece

Figura 5 Detalhes de um novo projeto ETL

Figura 6 Formaccedilatildeo da lista de ferramentas

copy Linux New Media do Brasil Editora Ltda

66 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

ferramentas para preparar diagramas formatados para necessidades de documentaccedilatildeo e apresentaccedilatildeo Por exemplo podem ser escolhidas as fontes as cores e os estilos de linhas para os objetos do diagrama aleacutem de haver a possibilidade de alinhamen-to numa grade e a opccedilatildeo de layout automaacutetico dos componentes

Entre as caracteriacutesticas que mais flexibilidade oferecem ao Talend estaacute a biblioteca de componentes Esses componentes estatildeo divididos em grupos funcionais em que os de maior utilidade para uso corporativo podem ser os componentes prepa-rados para acesso a outros sistemas tais como SugarCRM Salesforce e SAP O Talend apresenta um des-taque no mercado ao oferecer um conector ao SAP A figura 9 mostra alguns componentes do Forge do sistema que podem ser baixados e instalados para aumentar a funcio-nalidade padratildeo do Talend

Um destaque do mecanismo de componentes do Talend eacute a possibili-dade de publicar os processos automa-ticamente por exemplo no servidor de BI SpagoBI Outro componente de uso geral e que incrementa em

muito a complexi-dade de processos que podem ser de-finidos eacute o executor de scripts em Groo-vy Aleacutem de poder desenvolver com-ponentes especiacutefi-cos a possibilidade de gerar scripts em Groovy para trata-mento avanccedilado dos dados permite que as transforma-ccedilotildees sigam regras muito especiais da empresa A figura 10 mostra a definiccedilatildeo de integraccedilatildeo com o SpagoBI

Vale a pena des-tacar algumas ca-

racteriacutesticas conceituais do editor graacutefico que satildeo importantes para uso corporativo do Talend Os desenhos satildeo versionados

com a data de cada versatildeo Cada objeto dos modelos re-

cebe um estado que pode ser ldquonatildeo verificadordquo ldquoverificadordquo ou ldquovalidadordquo por default no caso

dos business objects Entretan-to podem ser definidos outros estados usados na empresa

Existe uma aacuterea em cada proje-to para reunir a documentaccedilatildeo que pode conter objetivos justi-ficativas exemplos de resultados desejados etc O Talend tambeacutem gera documentaccedilatildeo teacutecnica e de processo automaticamente

Separaccedilatildeo de papeacuteis entre usuaacute-rios de negoacutecios que descrevem suas necessidades a niacutevel macro (definindo business objects) e desenvolvedores (definindo jobs e outros elementos)

Notificaccedilatildeo ou atualizaccedilatildeo au-tomaacutetica do sistema quando disponibilizadas novas versotildees Talend ou dos componentes

Facilidade para execuccedilatildeo de testes individuais e integrados de componentes

Importaccedilatildeo e exportaccedilatildeo de pro-jetos completos ou elementos

O Talend eacute um sistema muito completo com o apoio de uma empresa comercial um ecossiste-ma de componentes muito amplo e com um ambiente de definiccedilatildeo

Figura 7 Definiccedilatildeo de conexatildeo JDBC

Figura 8 Tela do Talend Open Studio

copy Linux New Media do Brasil Editora Ltda

67

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

e desenvolvimento faacutecil de usar aleacutem de poderoso e visualmente atraente Assim o projeto pode re-solver a questatildeo relatada no iniacutecio do artigo sobre os motivos da falta de popularizaccedilatildeo de sistemas ETL no mercado

ConclusatildeoHoje qualquer empresa tem ne-cessidades de ETL e integraccedilatildeo de dados e em muitos casos eacute caro e complexo desenvolver soluccedilotildees caseiras especiacuteficas O Talend apre-senta uma soluccedilatildeo flexiacutevel com a qual estes processos podem ser

modelados e executados de forma confiaacutevel Podem ser definidos e documentados com a participaccedilatildeo dos usuaacuterios que satildeo os principais interessados no resultado final Naturalmente esse tipo de divisatildeo de atividades ou responsabilidades requer que todos os usuaacuterios in-dependentemente do papel que desempenham no sistema sejam devidamente treinados Em TI eacute cada vez mais comum haver situ-accedilotildees em que os sistemas satildeo sim-ples e poderosos para usar mas os usuaacuterios devem ser treinados nos princiacutepios da tecnologia apresen-

tada Quem usa o Talend deveraacute estar ciente da documentaccedilatildeo em inglecircs ou em francecircs aleacutem do uso do sistema em inglecircs

O uso do Talend dentro de uma empresa eacute facilitado pelas caracte-riacutesticas corporativas do sistema que permitem entre outras possibilida-des ter alta produtividade e visibi-lidade dos processos pelo apoio a componentes especiacuteficos tais como conectores SAP Salesforce ou cus-tomizados e geraccedilatildeo de documen-taccedilatildeo Provavelmente seraacute difiacutecil encontrar um caso de uso que natildeo possa ser atendido com comodidade pelo Talend

Mais informaccedilotildees

[1] Talend httpwwwtalendcom

[2] GPL versatildeo 2 httpwwwgnuorglicensesold-licensesgpl-20html

[3] Forrester Research httpwwwforrestercom

[4] IDC httpwwwidccom

[5] Bloor Research httpwwwbloor-researchcom

[6] SpagoBI httpspagobiengit

[7] Miguel KO de Lacy ldquoNegoacutecio inteligenterdquo httpwwwlnmcombrarticle1747

[8] Eclipse httpwwweclipseorg

[9] Linux Magazine 36 ndash Eclipse httpwwwlnmcombrissue1353

[10] GDI httpwwweclipseorgswtfaqphpnographicslibrary

[11] JTDS httpjtdssourceforgenet

Figura 9 Forge de componentes mostrando aqueles especiacuteficos de algum sistema

Figura 10 Integraccedilatildeo com o SpagoBI Server

copy Linux New Media do Brasil Editora Ltda

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

68 httpwwwlinuxmagazinecombr

Gerenciamento de identidade na web com o Open ID

Identidade aberta mas segura

O OpenID oferece um padratildeo aberto para login em websites fechadospor Nils Magnus

A Web 20 eacute uma boa coisa como todo mundo imagina Um problema eacute a multiplici-

dade de sites protegidos por senha para acesso Blogs pessoais comu-nidades virtuais do Xing ao Orkut e Facebook e sites que gerenciam fluxo de trabalho despesas plane-jamento de feacuterias frequumlentemente confiam em aplicaccedilotildees baseadas na web com o uso de contas de usuaacuterio privadas Esse excesso de senhas de login estaacute fazendo com que alguns usuaacuterios descontentes percam a pa-ciecircncia Enquanto os usuaacuterios usam um dispositivo fiacutesico uacutenico e local ferramentas como os gerenciadores de senhas oferecidos pela maioria dos navegadores e alternativas como o KDE Wallet satildeo de grande ajuda

Mas o paradigma da Web 20 su-potildee que o usuaacuterio tem a liberdade de se mover e efetuar login de dife-rentes locais

Opccedilatildeo da comunidadeSoluccedilotildees para o gerenciamento de identidades fornecem uma soluccedilatildeo de maior mobilidade e flexibilida-de para simplificar o login via web Essas ferramentas muitas vezes empregam o princiacutepio da idonei-dade com terceiros Alguns grandes

players globais tecircm avanccedilado com serviccedilos que oferecem soluccedilotildees de login confiaacuteveis desenvolvidas por terceiros de uma uacutenica fonte O sis-tema Microsoft Passport foi criado em sintonia com esse sentimento Hoje o mercado do Microsoft Passport eacute o ldquoWindows Live IDrdquo [1] Muitos usuaacuterios no entanto estatildeo receo-sos de se tornarem dependentes de aplicativos proprietaacuterios

Uma recente alternativa conhe-cida como Liberty Alliance Project [2] ofereceu uma abordagem mais aberta mas foi amplamente consi-derada como um exagero de especi-ficaccedilotildees e por isso ainda natildeo obteve grande adoccedilatildeo apesar de seus sete anos de esforccedilo O projeto OpenID sob os auspiacutecios da OpenID Foun-dation [3] se baseia na mais simples funcionalidade podendo ser mais facilmente integrado a sistemas de autenticaccedilatildeo online

Os usuaacuterios que optaram pela alternativa do OpenID natildeo inserem um nome de usuaacuterio mas em vez disso identificam-se com uma URI que pode ser exibida em um navega-dor web A URI pode ser um ende-reccedilo web oferecido por um serviccedilo OpenID como httpnilsmagnusmyopenidcom no MyopenID [4] O tipo de identidade natildeo eacute importan-te contanto que qualquer navegador

consiga acessar a paacutegina A paacutegina teraacute que adicionar uma tag que aponte para o provedor do serviccedilo

ltlink rel=rdquoopenidserverrdquo href=rdquohttpwwwmyopenidcomserverrdquo gtltlink rel=rdquoopeniddelegaterdquo href=rdquohttpnilsmagnusmyopenidcomrdquo gt

O servidor do lado do provedor especifica a primeira relaccedilatildeo a segun-da reafirma o nome da identidade O provedor normalmente cria uma paacutegina para tornar essa informaccedilatildeo disponiacutevel para os sites na Web que requisitem as informaccedilotildees de login Contudo um usuaacuterio poderia de forma alternativa integrar os deta-lhes necessaacuterios em uma paacutegina ou blog pessoal Nesse caso seu proacute-prio endereccedilo poderia servir como sua OpenID

O loginUma aplicaccedilatildeo que suporte o OpenID exibiraacute um campo de login OpenID aleacutem da paacutegina de login tradicional Por exemplo a figura 1 mostra a paacute-gina de autenticaccedilatildeo do OpenID no wiki do Amarok

Quando um usuaacuterio digita seu ID baseado em uma URI a aplica-ccedilatildeo web que eacute conhecida como o

RE

DE

S

RE

DE

S

copy Linux New Media do Brasil Editora Ltda

69

cliente na linguagem do OpenID recupera a porccedilatildeo do servidor da URI O OpenID se refere ao servi-dor como ldquoprovedor de identidaderdquo (identity provider)

O cliente (o wiki do Amarok nes-te caso) solicita ao provedor o nome associado agrave URI Para fazer isso ele redireciona a requisiccedilatildeo para o pro-vedor do site e o provedor indica que foi emitida a solicitaccedilatildeo O usuaacuterio entatildeo concorda com o pedido digi-tando uma senha O provedor redi-reciona o navegador de volta para o site do cliente onde o usuaacuterio estaacute agora logado

Uma praacutetica caracteriacutestica do OpenID eacute a possibilidade de ar-mazenar vaacuterios atributos para uma uacutenica identidade com um provedor por exemplo seu nome completo seu idioma preferido ou sua data de nascimento (ver figura 2) O usuaacuterio que recebe um pedido do cliente pode especificar quais os dados que o prestador deve divulgar para o cliente e quais ele deve conservar como secretos

Esse processo de aprovaccedilatildeo eacute im-portante para evitar o mau uso de

um paracircmetro criacutetico tal como o PIN de um banco que na verdade ateacute pode ser armazenado junto ao seu ID Alguns provedores permitem que o usuaacuterio crie muacuteltiplas identi-dades cada uma com um conjunto distinto de atributos

Essa abordagem tambeacutem eacute co-nhecida como Gerenciamento de Identidade Centrada no Usuaacuterio (do inglecircs User-Centric Identity Mana-gement) em que cada usuaacuterio pode definir individualmente as informa-

ccedilotildees fornecidas pelo provedor para os clientes que pedirem

Alguns provedores de identidade associam-nas gratuitamente Cabe ao usuaacuterio decidir em qual provedor con-fiar Diferentemente da abordagem centralizada utilizada pelo Passport um conjunto descentralizado de pro-vedores OpenID competem entre si na oferta de serviccedilos Os usuaacuterios tecircm ateacute mesmo a liberdade de criar seu proacuteprio provedor

Para quem se interessar pelo desenvolvimento de uma soluccedilatildeo proacutepria haacute pacotes de coacutedigo aberto em vaacuterias linguagens de programa-ccedilatildeo como Perl PHP Ruby Python e Java [5]

Tem seguranccedilaO OpenID pode gerar duacutevidas so-bre sua seguranccedila jaacute que qualquer um pode atuar como provedor Um agressor pode forjar (spoof) ou sequumlestrar uma identidade A primeira questatildeo aponta para um claacutessico problema de seguranccedila se vocecirc pode manipular um site de terceiros vocecirc pode redirecionar os visitantes para o seu proacuteprio prove-dor de identidade ou escrever um para se adequar agrave demanda

Em outras palavras a seguranccedila estaacute nas matildeos das pessoas responsaacuteveis pelo site hospedeiro Considerando-

Linux Magazine 50 | Janeiro de 2009

| REDESOpenID

Figura 2 O provedor especifica os detalhes que pretende enviar para o cliente

Figura 1 O wiki do Amarok permite que seus usuaacuterios efetuem login com o OpenID

copy Linux New Media do Brasil Editora Ltda

70 httpwwwlinuxmagazinecombr

se a qualidade do coacutedigo dos muitos sites escritos nas populares linguagens de script essa eacute uma preocupaccedilatildeo real mas natildeo um argumento funda-mental contra o OpenID

A segunda pergunta eacute complica-da eacute possiacutevel que um hacker capture as comunicaccedilotildees entre o cliente e o provedor de identidade e com isso ar-mazene as sessotildees Afi nal o provedor envia uma confi rmaccedilatildeo de mensagem em caso de sucesso na autenticaccedilatildeo Um agressor poderia tentar apresentar uma sessatildeo gravada na proacutexima ten-tativa de login No entanto isso pode ser evitado com a ativaccedilatildeo do SSL ou do TLS no OpenID para proteger a conexatildeo e adicionar um desafi o para cada solicitaccedilatildeo Essa abordagem

signifi ca que qualquer resposta seraacute vaacutelida apenas uma vez o que exclui a reciclagem trivial

Apesar disso natildeo eacute uma boa ideacuteia subestimar a complexidade do ge-renciamento de sessatildeo baseado em estado ( stateful ) que trafega sobre um protocolo sem base em sessatildeo ( state-less ) como o HTTP que eacute a base do OpenID O fato de vaacuterias aplicaccedilotildees web estarem sendo comprometidas eacute uma indicaccedilatildeo clara dos perigos supondo que vocecirc acredite em pes-quisas e whitepapers [6]

Praacutetico e aberto O OpenID eacute um passo na direccedilatildeo certa para o gerenciamento de iden-tidades Como ele implementa o lo-

gin uacutenico ( single sign-on ) tambeacutem se torna mais con-veniente para os usuaacuterios reduzindo o nuacutemero de senhas a serem lembradas A capacidade de gerenciar atributos eacute muito mais po-derosa do que parece agrave pri-meira vista

O nuacutemero de sites que usam OpenID continua crescendo vertiginosamente mas algumas grandes aplica-ccedilotildees continuaratildeo precisando provar se preenchem todas

as exigecircncias operacionais e concei-tuais no que diz respeito agrave confi anccedila e agrave disponibilidade

Mais informaccedilotildees

[1] Microsoft Passport httpwwwpassportnet

[2] Projeto Liberty Alliance httpwwwprojectlibertyorg

[3] Projeto OpenID httpopenidnet

[4] MyOpenID httpmyopenidcom

[5] Bibliotecas abertas de OpenID httpwikiopenidnetLibraries

[6] Secure Computing ldquoKeeping Customers and Merchants Securerdquo (em inglecircs) httpwwwsecurecomputingcomwebformcfmid=289ampref=pci

[7] Feder ID httpfederidobjectweborg

[8] Extensotildees do Mediawiki para OpenID httpwwwmediawikiorgwikiExtensionOpenID

[9] Suporte a OpenID no Drupal httpdrupalorgprojectopenid

REDES | OpenID

Quadro 1 Gerenciamento de identidade e federaccedilatildeo

O OpenID natildeo eacute soacute um projeto de gerenciamento de identidade O Feder ID [7] por exemplo eacute um projeto de coacutedigo aberto da Franccedila Um dos fi nanciadores do projeto Oudot Cleacutement enfatiza a importacircncia das identidades digitais para o acesso aos recursos da Web em uma recente entrevista com a Linux Magazine

De acordo com Oudot muitos usuaacuterios possuem uma identidade distinta para cada site Isto eacute um grande problema para grandes empresas e organizaccedilotildees jaacute que os usuaacuterios precisam memorizar muacuteltiplas senhas O Feder ID fornece ferramentas para a sincronizaccedilatildeo de repositoacuterios de identidade Estes atributos natildeo estatildeo disponiacuteveis apenas para uma uacutenica organizaccedilatildeo local eles podem ser compartilhados por parceiros confi aacuteveis

As ferramentas do Feder ID satildeo de coacutedigo aberto e respeitam os padrotildees da IETF ( Internet Engineering Task Force ) OASIS ( Organization of Structured Information Standards ) e da Liberty Alliance para a gestatildeo de identidades

Tabela 1 Provedores de identidade para aplicaccedilotildees web

Provedor OpenID

AOL httpopenidaolcomnome_do_usuaacuterio

Blogger httpnome_do_blogblogspotcom

Flickr httpwwwflickrcomphotosusuaacuterio

Livedoor httpprofilelivedoorcomusuaacuterio

Livejournal httpusuaacuteriolivejournalcom

Technorati httptechnoraticompeopletechnoratiusuaacuterio

Wordpress httpusuaacuteriowordpresscom

Yahoo httpopenidyahoocom

copy Linux New Media do Brasil Editora Ltda

71

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

LTRindd 67 251108 173039

copy Linux New Media do Brasil Editora Ltda

72 httpwwwlinuxmagazinecombr

Login no Linux pela impressatildeo digital

Autenticaccedilatildeo biomeacutetrica A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e a confi gurar esse recurso de seguranccedila por Alessandro de Oliveira Faria (Cabelo)

Hoje a autenticaccedilatildeo biomeacute-trica eacute imprescindiacutevel para elevarmos o niacutevel de segu-

ranccedila computacional Na Linux Magazine 48 foram mencionadas as principais tecnologias biomeacutetri-cas de coacutedigo aberto Agora neste documento veremos na praacutetica o uso da biometria para autentica-ccedilatildeo de identidade Esse recurso natildeo faz parte apenas dos fi lmes de

fi cccedilatildeo cientiacutefi ca eacute uma realidade cada vez mais presente no nosso dia-a-dia em diversos segmentos do mercado

Com o crescimento dos equi-pamentos em redes abertas sur-giram problemas de seguranccedila e confi abilidade de autenticaccedilatildeo Uma autenticaccedilatildeo indevida for-nece acesso privilegiado a pessoas natildeo autorizadas dando margem a roubo de informaccedilotildees interrup-ccedilotildees de serviccedilos fraudes sistemaacute-ticas entre outros transtornos do seacuteculo XXI

Neste cenaacuterio surgiu a necessida-de da autenticaccedilatildeo biomeacutetrica ou seja verifi caccedilatildeo da autenticidade do usuaacuterio em operaccedilatildeo Esse me-canismo computacional eacute baseado em caracteriacutesticas (ldquoo que vocecirc eacuterdquo) A biometria aplicada agrave autenticaccedilatildeo de usuaacuterios eacute um meacutetodo automa-tizado para medir as caracteriacutesticas humanas e confrontaacute-las em uma base de dados obtendo assim a au-tenticidade do usuaacuterio

A efi caacutecia da autenticaccedilatildeo biomeacute-trica estaacute diretamente relacionada agrave qualidade dos dados obtidos na fase de cadastramento da caracteriacutestica

biomeacutetrica Nessa etapa a base de dados recebe o template matemaacuteti-co calculado pelo sistema isto eacute a representaccedilatildeo binaacuteria da caracteriacutes-tica humana Essa informaccedilatildeo seraacute utilizada posteriormente na compa-raccedilatildeo biomeacutetrica para autenticaccedilatildeo do sistema obtendo assim um re-sultado positivo ou negativo

Este artigo apresenta um foco teacutecnico e pouco teoacuterico assim obje-

SE

GU

RA

NCcedil

A

Figura 1 Imagem extraiacuteda de um leitor de impressatildeo digital UAreU da Digital Persona

Figura 2 Imagem binarizada (branco e preto)

copy Linux New Media do Brasil Editora Ltda

73

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

tivando configurar ou acrescentar a autenticaccedilatildeo biomeacutetrica como niacutevel adicional de seguranccedila ao login do sistema operacional Linux Para tal operaccedilatildeo utilizaremos a tecnologia de impressatildeo digital e pacotes de coacute-digo aberto (biblioteca fprint)

A tecnologia utilizada para a con-fecccedilatildeo deste artigo foi OpenSuse 103 ndash kernel 26225-

31-bigsmp Notebook Dell Vostro 1510 4 GB de memoacuteria RAM Processador Core 2 Duo Leitor de impressatildeo digital Uare

U Digital Persona 4000B Biblioteca fprint

Fprint conceitosO pacote fprint[1] eacute o sonho de todo desenvolvedor de coacutedigo aberto O kit de integraccedilatildeo permite o desen-volvimento de rotinas para identi-ficaccedilatildeo e verificaccedilatildeo de impressotildees digitais do usuaacuterio Um dos pontos fortes dessa soluccedilatildeo livre eacute a compa-tibilidade com diversos modelos de sensores disponiacuteveis no mercado A lista de aparelhos compatiacuteveis en-contra-se em [2]

A impressatildeo digital eacute composta por linhas formadas pelas elevaccedilotildees da pele A comparaccedilatildeo por impressatildeo digital eacute um meacutetodo utilizado haacute mais de mil anos como forma de identificaccedilatildeo de usuaacuterios Eacute uma caracteriacutestica uacutenica entre os seres humanos inclusive entre irmatildeos gecircmeos univitelinos

Formada ainda quando feto a impressatildeo digital acompanha a pessoa por toda a sua existecircncia sem apresentar grandes mudanccedilas Extraindo os pontos caracteriacutesticos ou ldquopontos de minuacuteciasrdquo de uma impressatildeo digital um papiloscopista ou sistemas computadorizados po-dem identificar pessoas utilizando caacutelculos bastante confiaacuteveis Grande parte dos algoritmos trabalham com o princiacutepio de extraccedilatildeo desses pontos caracteriacutesticos Apoacutes a extraccedilatildeo satildeo calculados a relaccedilatildeo entre as distacircn-cias desses pontos Cada algoritmo possui sua base de caacutelculo seja por anaacutelise dos pontos entre si ou por agrupamentos de pontos para anaacute-lise de semelhanccedilas de triacircngulos com os acircngulos internos

A biblioteca fprint incorpora abstraccedilatildeo de hardware para aces-so ao leitor Com esse recurso natildeo precisamos instalar qualquer moacutedulo do kernel para o funcio-namento de cada modelo de leitor de impressatildeo digital

Na primeira fase a biblioteca extrai a imagem do sensor (figura 1) e logo a seguir a linha da impressatildeo digital eacute realccedilada com a cor preta (figura 2)

Figura 3 Linhas reduzidas para um uacutenico pixel

Figura 4 Pontos de bifurcaccedilatildeo e terminadores

copy Linux New Media do Brasil Editora Ltda

74 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

utilizando algoritmos de extraccedilatildeo com filtros Na proacutexima etapa a imagem jaacute estaacute binarizada (branco e preto figura 3) e as linhas foram reduzidas a um uacutenico pixel de largura Por uacuteltimo a tarefa mais faacutecil ou seja

detectar os pontos de minuacutecias Fa-zendo um exame de cada pixel na imagem se houver um pixel branco sem vizinhos isso significa que en-contramos um ponto terminal Caso um ponto branco possua trecircs pontos

vizinhos significa que en-contramos uma bifurcaccedilatildeo Os pontos de minuacutecias satildeo entatildeo destacados (fi-gura 4) e compotildeem a ver-dadeira identidade da im-pressatildeo digital

As impressotildees digitais satildeo classificadas em cinco grupos conforme mostra a figura 5 ciacuterculo direito ciacuterculo esquerdo espiral arco e arco incompletoA estrutura de uma im-pressatildeo digital eacute forma-da por cruzamentos das linhas core (centro) bi-furcaccedilotildees terminaccedilotildees ilhas deltas (bifurcaccedilotildees inferiores) e poros Os pon-tos terminais assim como os pontos de bifurcaccedilotildees satildeo definidos em funccedilatildeo da distacircncia (coordena-da relativa) para o core Nos pontos terminais eacute co-mum calcular seu acircngulo de inclinaccedilatildeo

InstalaccedilatildeoHaacute pacotes da biblioteca fprint preacute-compilados para OpenSuse [3] e Ubuntu [4] No entanto este artigo sugere a compilaccedilatildeo da biblioteca a partir de seu coacutedigo-fonte que pode ser obtido em [5] Haacute tambeacutem uma demonstraccedilatildeo do software fprint que pode ser baixada a partir de [6]

Apoacutes o download devemos des-compactar os arquivos fontes O exemplo 1 detalha o procedimen-

Exemplo 1 Preparaccedilatildeo da libfprint

$ tar -jxvf libfprint-006tarbz2$ cd libfprint-006$ configure$ make$ suSenha make install ldconfig

Figura 5 Os cinco grupos de impressotildees digitais

Exemplo 3 Arquivo de login do PAM

01 PAM-1002 auth requisite pam_nologinso03 auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securettyso04 auth include common-auth05 auth requisite pam_fprintso06 account include common-account07 password include common-password08 session required pam_loginuidso09 session include common-session10 session required pam_lastlogso nowtmp11 session required pam_resmgrso12 session optional pam_mailso standard13 session optional pam_ck_connectorso

Exemplo 2 Compilaccedilatildeo do pam_fprint

$ wget httpufprdlsourceforgenetsourceforgefprintpam_fprint-02tarbz2$ tar -jxvf pam_fprint-02tarbz2$ cd pam_fprint-02$ configure$ make$ sudo make install

copy Linux New Media do Brasil Editora Ltda

75

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

Exemplo 4 pam_fprint_enroll --help

pam_fprint_enroll --helpUsage pam_fprint_enroll options -h --help Display this usage information -f --enroll-finger index Enroll finger with index Valid indexes are 1 - Left Thumb 2 - Left Index Finger 3 - Left Middle Finger 4 - Left Ring Finger 5 - Left Little Finger 6 - Right Thumb 7 - Right Index Finger 8 - Right Middle Finger 9 - Right Ring Finger 10 - Right Little Finger

Exemplo 5 Cadastramento de digital

pam_fprint_enroll --enroll-finger 7

This program will enroll your finger unconditionally overwriting any selected print that was enrolled previously If you want to continue press enter otherwise hit Ctrl+C Found device claimed by Digital Persona UareU 40004000B driverOpened device Itrsquos now time to enroll your finger You will need to successfully scan your Right Index Finger 1 timesto complete the process Scan your finger nowEnroll completeEnrollment completed

Exemplo 6 Sucesso na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1)lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BUacutetimo loginDom Nov 16 231501 BRST 2008em tty2

Have a lot of fun

copy Linux New Media do Brasil Editora Ltda

76 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

to de configuraccedilatildeo e compilaccedilatildeo da biblioteca

Execute o comando ldquomakerdquo con-vencional para efetuar a compilaccedilatildeo na iacutentegra do coacutedigo-fonte a seguir transforme-se em super-usuaacuterio (root) para efetuar a instalaccedilatildeo da biblioteca por meio do comando ldquomake installrdquo seguido do ldquoldconfigrdquo conforme as instruccedilotildees a seguir

Autenticaccedilatildeo pam_fprintO moacutedulo biomeacutetrico que trabalha em conjunto com o sistema de au-tenticaccedilatildeo PAM (Pluggable Authen-tication Modules) eacute o pam_fprint Sua base tecnoloacutegica eacute a biblioteca fprint receacutem compilada e instalada O pacote pam_fprint utiliza as fun-ccedilotildees biomeacutetricas para processar e verificar a autenticaccedilatildeo do usuaacuterio Em outras palavras a sua impressatildeo digital eacute utilizada para efetuar o login no sistema operacional

Vale a pena mencionar que o PAM eacute um sistema para autenticaccedilatildeo de usuaacuterios em ambientes Linux e Unix Uma de suas principais vantagens eacute a centralizaccedilatildeo das chamadas e funccedilotildees de login assim facilitando a tarefa do desenvolvedor

Continuando nossa jornada vamos agora baixar descompactar compilar e instalar o pacote pam_fprint como no exemplo 2

Sobre o autorAlessandro Faria eacute soacutecio-proprietaacuterio da NETi TECNOLOGIA fundada em Junho de 1996 (httpwwwnetiteccombr) empre-sa especializada em desenvolvimento de software e soluccedilotildees biomeacutetricas Consultor Biomeacutetrico na tecnologia de reconhecimen-to facial atua na aacuterea de tecnologia desde 1986 propiciando assim ao mercado solu-ccedilotildees em software Leva o Linux a seacuterio des-de 1998 com desenvolvimento de soluccedilotildees open source eacute membro colaborador da co-munidade Viva O Linux e mantenedor da bi-blioteca open source de viacutedeo captura aleacuten de participar entre outros projetos

Mais informaccedilotildees

[1] Fprint httpreactivatednetfprintwikiMain_Page

[2] Dispositivos compatiacuteveis com a fprint httpreactivatednetfprintwikiSupported_devices

[3] Pacotes fprint para OpenSuse httpdownloadopensuseorgrepositorieshomedgege

[4] Pacotes fprint para Ubuntu httpwwwmadman2knetcomments105

[5] Download da biblioteca fprint httpufprdlsourceforgenetsourceforgefprintlibfprint-006tarbz2

[6] Demo do fprint httpufprdlsourceforgenetsourceforgefprintfprint_demo-04tarbz2

[7] Portal Viva o Linux httpwwwvivaolinuxcombr

ConfiguraccedilatildeoNo OpenSuse eacute preciso modi-ficar o arquivo de configuraccedilatildeo para autenticaccedilatildeo no modo conso-le etcpamdlogin Esse arquivo pode ter nome diferente em ou-tras distribuiccedilotildees Seu conteuacutedo eacute mostrado no exemplo 3 e a linha 5 deve ser acrescentada pois eacute a res-ponsaacutevel por requisitar o moacutedulo pam_fprint

Eacute importante notar a utilizaccedilatildeo do modo requisite de autenticaccedilatildeo no PAM Para maiores informaccedilotildees sobre o tipo de autenticaccedilatildeo reco-menda-se consultar a documentaccedilatildeo do PAM

CadastramentoO proacuteximo passo eacute efetuar o cadastra-mento biomeacutetrico da sua impressatildeo digital Se concluiacuteda com sucesso essa tarefa no proacuteximo login o usuaacute-rio deveraacute fornecer aleacutem da senha sua impressatildeo digital para ter acesso ao sistema

O programa pam_fprint_enroll eacute responsaacutevel pelo cadastramento das impressotildees digitais Para en-tender melhor sua sintaxe digite pam_fprint_enroll --help e perceba (exemplo 4) que eacute preciso informar o nuacutemero correspondente ao dedo utilizado para cadastro A numeraccedilatildeo comeccedila em 1 no polegar esquerdo e segue ateacute o dedo mindinho esquerdo (nuacutemero 5) seguindo depois para o polegar direito (6) e terminando no mindinho direito (10)

No meu caso utilizei o nuacutemero 7 representando o dedo indicador da matildeo direita (exemplo 5) Ao exe-cutar o programa pressione [ENTER] encoste o dedo no leitor de impres-satildeo digital e pronto Nessa fase ao efetuar o login o sistema opera-cional solicitaraacute a senha seguida da autenticaccedilatildeo biomeacutetrica como mostram os exemplos 6 (sucesso na autenticaccedilatildeo) e 7 (falha na autenti-caccedilatildeo biomeacutetrica)

ConclusatildeoA biblioteca fprint proporciona inuacute-meros recursos aleacutem dos mencio-nados neste artigo Para um estudo detalhado sobre o assunto sugiro algumas leituras no portal Viva o Linux [7] e tambeacutem no site oficial do projeto

Exemplo 7 Falha na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1) lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BLogin incorreto

copy Linux New Media do Brasil Editora Ltda

77

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

SE

CcedilAtilde

O

Site_LNMindd 55 191208 205243

copy Linux New Media do Brasil Editora Ltda

78

SE

RV

ICcedilO

S

httpwwwlinuxmagazinecombr

Fornecedor de Hardware = 1 Redes e Telefonia PBX = 2 Integrador de Soluccedilotildees = 3

Literatura Editora = 4 Fornecedor de Software = 5

Consultoria Treinamento = 6

Linuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

CearaacuteF13 Tecnologia Fortaleza Rua Coronel Solon 480 ndash Bairro de Faacutetima

Fortaleza - CE - CEP 60040-270 85 3252-3836 wwwf13combr

Espiacuterito SantoLinux Shopp Vila Velha Rua Satildeo Simatildeo (Correspondecircncia) 18 ndash CEP 29113-120 27 3082-0932 wwwlinuxshoppcombr

Megawork Consultoria e Sistemas

Vitoacuteria Rua Chapot Presvot 389 ndash Praia do Can-to ndash CEP 29055-410 sl 201 202

27 3315-2370 wwwmegaworkcombr

Spirit Linux Vitoacuteria Rua Marins Alvarino 150 ndash CEP 29047-660 27 3227-5543 wwwspiritlinuxcombr

Minas GeraisInstituto Online Belo Horizonte Av Bias Fortes 932 Sala 204 ndash CEP 30170-011 31 3224-7920 wwwinstitutoonlinecombr

Linux Place Belo Horizonte Rua do Ouro 136 Sala 301 ndash Serra ndash CEP 30220-000 31 3284-0575 corporatelinuxplacecombr

Microhard Belo Horizonte Rua Repuacuteblica da Argentina 520 ndash Sion ndash CEP 30315-490 31 3281-5522 wwwmicrohardcombr

TurboSite Belo Horizonte Rua Paraiacuteba 966 Sala 303 ndash Savassi ndash CEP 30130-141 0800 702-9004 wwwturbositecombr

ParanaacuteiSolve Curitiba Av Cacircndido de Abreu 526 Cj 1206B ndash CEP 80530-000 41 252-2977 wwwisolvecombr

Mandriva Conectiva Curitiba Rua Tocantins 89 ndash Cristo Rei ndash CEP 80050-430 41 3360-2600 wwwmandrivacombr

Telway Tecnologia Curitiba Rua Francisco Rocha 183071 41 3203-0375 wwwtelwaycombr

Rio de JaneiroMuacuteltipla Tecnologia da Informaccedilatildeo

Rio de Janeiro Av Rio Branco 37 14deg andar ndash CEP 20090-003 21 2203-2622 wwwmultipla-ticombr

NSI Training Rio de Janeiro Rua Arauacutejo Porto Alegre 71 4ordm andar Centro ndash CEP 20030-012 21 2220-7055 wwwnsicombr

Open IT Rio de Janeiro Rua do Mercado 34 Sl 402 ndash Centro ndash CEP 20010-120 21 2508-9103 wwwopenitcombr

Unipi Tecnologias Campos dos Goytacazes

Av Alberto Torres 303 1ordmandar ndash Centro ndash CEP 28035-581 22 2725-1041 wwwunipicombr

Rio Grande do Sul4up Soluccedilotildees Corporativas Novo Hamburgo Pso Calccediladatildeo Osvaldo Cruz 54 sl 301 CEP 93510-015 51 3581-4383 www4upcombr

Definitiva Informaacutetica Novo Hamburgo Rua General Osoacuterio 402 - Hamburgo Velho 51 3594 3140 wwwdefinitivacombr

Solis Lajeado Av 7 de Setembro 184 sala 401 ndash Bairro Moinhos CEP 95900-000

51 3714-6653 wwwsoliscoopbr

DualCon Novo Hamburgo Rua Joaquim Pedro Soares 1099 Sl 305 ndash Centro 51 3593-5437 wwwdualconcombr

Datarecover Porto Alegre Av Carlos Gomes 403 Sala 908 Centro Comer-cial Atrium Center ndash Bela Vista ndash CEP 90480-003

51 3018-1200 wwwdatarecovercombr

LM2 Consulting Porto Alegre Rua Germano Petersen Junior 101-Sl 202 ndash Hi-gienoacutepolis ndash CEP 90540-140

51 3018-1007 wwwlm2combr

Lnx-IT Informaccedilatildeo e Tecnologia Porto Alegre Av Venacircncio Aires 1137 ndash Rio Branco ndash CEP 90040193 51 3331-1446 wwwlnx-itinfbr

Plugin Porto Alegre Av Juacutelio de Castilhos 132 11ordm andar Centro ndash CEP 90030-130 51 4003-1001 wwwplugincombr

TeHospedo Porto Alegre Rua dos Andradas 1234610 ndash Centro ndash CEP 90020-008 51 3286-3799 wwwtehospedocombr

Satildeo PauloWs Host Arthur Nogueira Rua Jerere 36 ndash Vista Alegre ndash CEP 13280-000 19 3846-1137 wwwwshostcombr

DigiVoice Barueri Al Juruaacute 159 Teacuterreo ndash Alphaville ndash CEP 06455-010 11 4195-2557 wwwdigivoicecombr

Dextra Sistemas Campinas Rua Antocircnio Paioli 320 ndash Pq das Universidades ndash CEP 13086-045 19 3256-6722 wwwdextracombr

Insigne Free Software do Brasil Campinas Av Andrades Neves 1579 ndash Castelo ndash CEP 13070-001 19 3213-2100 wwwinsignesoftwarecom

Microcamp Campinas Av Thomaz Alves 20 ndash Centro ndash CEP 13010-160 19 3236-1915 wwwmicrocampcombr

PC2 Consultoria em Software Livre

Carapicuiba Rua Edeia 500 - CEP 06350-080 11 3213-6388 wwwpc2consultoriacom

Savant Tecnologia Diadema Av Senador Vitorino Freire 465 ndash CEP 09910-550 11 5034-4199 wwwsavantcombr

Epopeacuteia Informaacutetica Mariacutelia Rua Goiaacutes 392 ndash Bairro Cascata ndash CEP 17509-140 14 3413-1137 wwwepopeiacombr

Redentor Osasco Rua Costante Piovan 150 ndash Jd Trecircs Montanhas ndash CEP 06263-270 11 2106-9392 wwwredentorindbr

Go-Global Santana de Parnaiacuteba

Av Yojiro Takaoca 4384 Ed Shopping Ser-vice Cj 1013 ndash CEP 06541-038

11 2173-4211 wwwgo-globalcombr

AW2NET Santo Andreacute Rua Edson Soares 59 ndash CEP 09760-350 11 4990-0065 wwwaw2netcombr

Async Open Source Satildeo Carlos Rua Orlando Damiano 2212 ndash CEP 13560-450 16 3376-0125 wwwasynccombr

O maior diretoacuterio de empresas que oferecem produtos soluccedilotildees e serviccedilos 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 anuncioslinuxmagazinecombr

copy Linux New Media do Brasil Editora Ltda

79

| SERVICcedilOSLinuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

Satildeo Paulo (continuaccedilatildeo)Delix Internet Satildeo Joseacute do

Rio PretoRua Voluntaacuterio de Satildeo Paulo 3066 9ordm ndash Centro ndash CEP 15015-909 11 4062-9889 wwwdelixhostingcombr

4Linux Satildeo Paulo Rua Teixeira da Silva 660 6ordm andar ndash CEP 04002-031 11 2125-4747 www4linuxcombr

A Casa do Linux Satildeo Paulo Al Jauacute 490 ndash Jd Paulista ndash CEP 01420-000 11 3549-5151 wwwacasadolinuxcombr

Accenture do Brasil Ltda Satildeo Paulo Rua Alexandre Dumas 2051 ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 5188-3000 wwwaccenturecombr

ACR Informaacutetica Satildeo Paulo Rua Lincoln de Albuquerque 65 ndashPerdizes ndash CEP 05004-010 11 3873-1515 wwwacrinformaticacombr

Agit Informaacutetica Satildeo Paulo Rua Major Quedinho 111 5ordm andar Cj 508 ndash Centro ndash CEP 01050-030

11 3255-4945 wwwagitcombr

Altbit - Informaacutetica Comeacutercio e Serviccedilos LTDA

Satildeo Paulo Av Francisco Matarazzo 229 Cj 57 ndash Aacutegua Branca ndash CEP 05001-000

11 3879-9390 wwwaltbitcombr

AS2M -WPC Consultoria Satildeo Paulo Rua Trecircs Rios 131 Cj 61A ndash Bom Retiro ndash CEP 01123-001 11 3228-3709 wwwwpccombr

Big Host Satildeo Paulo Rua Dr Miguel Couto 58 ndash Centro ndash CEP 01008-010 11 3033-4000 wwwbighostcombr

Blanes Satildeo Paulo Rua Andreacute Ampeacutere 153 ndash 9ordm andar ndash Conj 91 CEP 04562-907 (proacutex Av L C Berrini)

11 5506-9677 wwwblanescombr

Commlogik do Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 13797 Bloco II 6ordm andar ndash Morumbi ndash CEP 04794-000

11 5503-1011 wwwcommlogikcombr

Computer Consulting Projeto e Consultoria Ltda

Satildeo Paulo Rua Vergueiro 6455 Cj 06 ndash Alto do Ipiranga ndash CEP 04273-100 11 5062-3927 wwwcomputerconsultingcombr

Consist Consultoria Siste-mas e Representaccedilotildees Ltda

Satildeo Paulo Av das Naccedilotildees Unidas 20727 ndash CEP 04795-100 11 5693-7210 wwwconsistcombr

Domiacutenio Tecnologia Satildeo Paulo Rua das Carnaubeiras 98 ndash Metrocirc Conceiccedilatildeo ndash CEP 04343-080 11 5017-0040 wwwdominiotecnologiacombr

EDS do Brasil Satildeo Paulo Av Pres Juscelino Kubistcheck 1830 Torre 4 - 5ordm andar 11 3707-4100 wwwedscom

Eacutetica Tecnologia Satildeo Paulo Rua Nova York 945 ndash Brooklin ndash CEP04560-002 11 5093-3025 wwweticanet

Getronics ICT Solu-tions and Services

Satildeo Paulo Rua Verbo Divino 1207 ndash CEP 04719-002 11 5187-2700 wwwgetronicscombr

Hewlett-Packard Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 12901 25ordm andar ndash CEP 04578-000 11 5502-5000 wwwhpcombr

IBM Brasil Ltda Satildeo Paulo Rua Tutoacuteia 1157 ndash CEP 04007-900 0800-7074 837 wwwbribmcom

iFractal Satildeo Paulo Rua Fiaccedilatildeo da Sauacutede 145 Conj 66 ndash Sauacutede ndash CEP 04144-020 11 5078-6618 wwwifractalcombr

Integral Satildeo Paulo Rua Dr Gentil Leite Martins 295 2ordm andar Jd Prudecircncia ndash CEP 04648-001

11 5545-2600 wwwintegralcombr

Itautec SA Satildeo Paulo Av Paulista 2028 ndash CEP 01310-200 11 3543-5543 wwwitauteccombr

Kenos Consultoria Satildeo Paulo Av Fagundes Filho 13 Conj 53 ndash CEP 04304-000 11 40821305 wwwkenoscombr

Konsultex Informatica Satildeo Paulo Av Dr Guilherme Dumont Villares 1410 6 andar CEP 05640-003 11 3773-9009 wwwkonsultexcombr

Linux Komputer Informaacutetica Satildeo Paulo Av Dr Lino de Moraes Leme 185 ndash CEP 04360-001 11 5034-4191 wwwkomputercombr

Linux Mall Satildeo Paulo Rua Machado Bittencourt 190 Cj 2087 ndash CEP 04044-001 11 5087-9441 wwwlinuxmallcombr

Livraria Tempo Real Satildeo Paulo Al Santos 1202 ndash Cerqueira Ceacutesar ndash CEP 01418-100 11 3266-2988 wwwtemporealcombr

Locasite Internet Service Satildeo Paulo Av Brigadeiro Luiz Antonio 2482 3ordm andar ndash Centro ndash CEP 01402-000

11 2121-4555 wwwlocasitecombr

Microsiga Satildeo Paulo Av Braz Leme 1631 ndash CEP 02511-000 11 3981-7200 wwwmicrosigacombr

Novatec Editora Ltda Satildeo Paulo Rua Luis Antonio dos Santos 110 ndash Santana ndash CEP 02460-000 11 6979-0071 wwwnovateceditoracombr

Novell Ameacuterica Latina Satildeo Paulo Rua Funchal 418 ndash Vila Oliacutempia 11 3345-3900 wwwnovellcombrasil

Oracle do Brasil Sistemas Ltda Satildeo Paulo Av Alfredo Egiacutedio de Souza Aranha 100 ndash Bloco B ndash 5ordm andar ndash CEP 04726-170

11 5189-3000 wwworaclecombr

Proelbra Tecnolo-gia Eletrocircnica Ltda

Satildeo Paulo Av Rouxinol 1041 Cj 204 2ordm andar Moema ndash CEP 04516-001 11 5052- 8044 wwwproelbracombr

Provider Satildeo Paulo Av Cardoso de Melo 1450 6ordm andar ndash Vila Oliacutempia ndash CEP 04548-005

11 2165-6500 wwwe-providercombr

Red Hat Brasil Satildeo Paulo Av Brigadeiro Faria Lima 3900 Cj 81 8ordm andar Itaim Bibi ndash CEP 04538-132

11 3529-6000 wwwredhatcombr

Samurai Projetos Especiais Satildeo Paulo Rua Baratildeo do Triunfo 550 6ordm andar ndash CEP 04602-002 11 5097-3014 wwwsamuraicombr

SAP Brasil Satildeo Paulo Av das Naccedilotildees Unidas 11541 16ordm andar ndash CEP 04578-000 11 5503-2400 wwwsapcombr

Simples Consultoria Satildeo Paulo Rua Mourato Coelho 299 Cj 02 Pinheiros ndash CEP 05417-010 11 3898-2121 wwwsimplesconsultoriacombr

Smart Solutions Satildeo Paulo Av Jabaquara 2940 cj 56 e 57 11 5052-5958 wwwsmart-teccombr

Snap IT Satildeo Paulo Rua Joatildeo Gomes Junior 131 ndash Jd Bonfiglioli ndash CEP 05299-000 11 3731-8008 wwwsnapitcombr

Stefanini IT Solutions Satildeo Paulo Av Brig Faria Lima 1355 19ordm ndash Pinheiros ndash CEP 01452-919 11 3039-2000 wwwstefaninicombr

Sun Microsystems Satildeo Paulo Rua Alexandre Dumas 2016 ndash CEP 04717-004 11 5187-2100 wwwsuncombr

Sybase Brasil Satildeo Paulo Av Juscelino Kubitschek 510 9ordm andar Itaim Bibi ndash CEP 04543-000 11 3046-7388 wwwsybasecombr

The Source Satildeo Paulo Rua Marquecircs de Abrantes 203 ndash Chaacutecara Tatuapeacute ndash CEP 03060-020

11 6698-5090 wwwthesourcecombr

Unisys Brasil Ltda Satildeo Paulo R Alexandre Dumas 1658 ndash 6ordm 7ordm e 8ordm andares ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 3305-7000 wwwunisyscombr

Utah Satildeo Paulo Av Paulista 925 13ordm andar ndash Cerqueira Ceacutesar ndash CEP 01311-916 11 3145-5888 wwwutahcombr

Visuelles Satildeo Paulo Rua Eng Domicio Diele Pacheco e Silva 585 ndash Interlagos ndash CEP 04455-310

11 5614-1010 wwwvisuellescombr

Webnow Satildeo Paulo Av Naccedilotildees Unidas 12995 10ordm andar Ed Plaza Centenaacuterio ndash Chaacutecara Itaim ndash CEP 04578-000

11 5503-6510 wwwwebnowcombr

WRL Informaacutetica Ltda Satildeo Paulo Rua Santa Ifigecircnia 211213 Box 02ndash Centro ndash CEP 01207-001 11 3362-1334 wwwwrlcombr

Systech Taquaritinga Rua Satildeo Joseacute 1126 ndash Centro - Caixa Postal 71 ndash CEP 15900-000 16 3252-7308 wwwsystech-ltdcombr

2MI Tecnologia e Informaccedilatildeo Embu Rua Joseacute Bonifaacutecio 55 ndash Jd Independecircncia ndash SP CEP 06826-080 11 4203-3937 www2micombr

Linuxlocal

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

80

SERVICcedil

OS

httpwwwlinuxmagazinecombr

Nerdson ndash Os quadrinhos mensais da Linux Magazine

Calendaacuterio de eventos

Evento Data Local Website

Campus Party 15 a 25 de janeiro Satildeo Paulo SP wwwcampus-partycombr

Bossa Conference 08 a 11 de marccediloPorto de Galinhas PE

wwwbossaconferenceorg

FISL 24 a 27 de junho Porto Alegre RS wwwfislsoftwarelivreorg

Interop 02 e 03 de setembro Satildeo Paulo SP wwwinteropsaopaulocombr

Futurecom 2009 13 a 16 de outubro Satildeo Paulo SP wwwfuturecom2009combr

Iacutendice de anunciantes

Empresa Paacuteg

Campus Party 02

Plusserver 07

Insigne 09

UOL 11

Xandros 13

Impacta 15

Linux Pro 33

Pocket Pro 43

Linuz Technical Review 71

Site LNM 77

Guia de TI 81

Bull 83

Ubiquiti 84

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

82 httpwwwlinuxmagazinecombr

Na Linux Magazine 51

PREVIE

W

Na EasyLinux 14 Monitores gigantes Os monitores LCD de 19 polegadas jaacute tecircm preccedilos bem melhores que haacute um ano Seraacute que jaacute chegou o momento de vocecirc comprar aquele monitor cine-matograacutefi co Quais satildeo as vantagens e desvantagens

do LCD em relaccedilatildeo aos antigos monitores de tubo Ateacute onde 21 polegadas va-lem mais que 19 Na Easy Linux 14 vamos comparar marcas modelos e tecno-logias de monitores agrave ven-da no Brasil para orientar suas compras

A melhor parte de todos os sistemas Empresas como Apple e Micro-soft investem pesado em design para deixarem seus sistemas mais atraentes Como resultado tanto o Mac OS quanto o Windows Vista tecircm forte apelo visual Poreacutem engana-se quem pensa que eacute impossiacutevel alcanccedilar um grau de beleza semelhante no Linux Na Easy Linux 14 vamos mostrar o caminho das pedras para deixar seu Linux com a cara do Mac OS X do Vista e do Windows XP seja por pura diversatildeo ou para facilitar o uso do Linux por quem jaacute estaacute habituado a esses sistemas e tem difi culdade de adaptaccedilatildeo ao pinguumlim

DESTAQUE

Seguranccedila com VoIP Verdadeiros administra-dores pensam em segu-ranccedila o tempo inteiro Mesmo que vocecirc seja um usuaacuterio comum eacute importante saber o que os invasores podem fazer Serviccedilos que costumavam ser seguros se tornam brechas de seguranccedila a menos que vocecirc se mantenha atualizado com essas questotildees

Na Linux Magazine 51 vamos examinar algumas estrateacutegias de seguranccedila recomendadas por especialistas Vocecirc jamais teraacute a rede perfeita ou sequer as ferramentas perfeitas ndash o mundo da seguranccedila de redes muda a todo tempo ndash e como eacute impos-siacutevel descartar defi nitivamente os problemas eacute melhor man-ter-se informado

TUTORIAL

Defi cientes visuais O Linux possui muitos ambientes desktop be-liacutessimos incluindo cubos rotativos e janelas que balanccedilam e queimam Poreacutem considere por exemplo uma aacuterea de trabalho com iacutecones cuidadosamente organizados vocecirc conseguiria utilizaacute-la com o monitor desligado

Apesar das vaacuterias ofertas de softwares pro-prietaacuterios cariacutessimos para leitura da tela e teclados sofi sticados que realmente possibi-litam o uso do computador por defi cientes visuais a maioria das ferramentas e extensotildees necessaacuterias para usuaacuterios cegos ou com visatildeo prejudicada aleacutem daqueles com difi culdades motoras ou mentais jaacute estatildeo presentes nos re-positoacuterios da maioria das distribuiccedilotildees Linux Veja como o projeto Adriane une todos esses recursos num uacutenico sistema desktop destinado a defi cientes visuais

os invasores podem fazer

os invasores podem fazer

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRAacuteTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA AacuteREA p36

44 0708

R$ 1390 euro 750

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWWLINUXMAGAZINECOMBR

CASE ALFRESCO p26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p28Iniciada em Porto Alegre a temporada de seminaacuterios Linux Park de 2008

CEZAR TAURION p34O Coacutedigo Aberto como incentivo agrave inovaccedilatildeo

GOVERNANCcedilA COM

raquo O que dizem os profissionais certificados p24

raquo Cobit CMMI ITIL Quais as melhores praacuteticas p36

raquo ITIL na praacutetica p39

raquo Novidades do ITIL v3 p44

SEGURANCcedilA DNSSEC p69

Com o DNSSEC a resoluccedilatildeo de nomes fica protegida de ataques Mas seupreccedilo vale a pena

REDES IPV6 p64

Conheccedila as vantagens da nova versatildeo do Internet Protocol e veja por queeacute difiacutecil adotaacute-la

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo Relatoacuterios do Squid com o SARG p60

raquo Java Ruby e Rails conheccedila o JRuby on Rails p74

raquo Benchmarks do GCC 43 p58

raquo Becape de bancos de dados com a Libferris p46

raquo LPI niacutevel 2 Servidores NIS e DHCP p52

A REVISTA DO PROFISSIONAL DE TI

AS REDES ATUAIS SAtildeO AMBIENTES HETEROGEcircNEOSO BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p27

raquo Conecte o Linux agrave VPN do Windows p28

raquo MS AD e clientes Linux a soluccedilatildeo definitiva p34

raquo Linux como servidor RDP p40

raquo Agendamento de tarefas livre tambeacutem no Windows p44

Interoperabilidade

Linu

x M

agazin

e

50012009

INTEROPERABILIDADE

VPN

AD

RDP AGEN

DADOR DE TAREFAS BIOM

ETRIA OPEN

ID M

IDS GOOGLE CHARTS

HA POSTGRESQL TALEN

D

WWWLINUXMAGAZINECOMBR

50 Janeiro 2009

SANEADA PELO LINUX P22 Linux na Companhia de Aacuteguas do Maranhatildeo

LEI DOS CALL CENTERS P26 Edgar Silva mostra como a nova lei requer TI

BOCA NO TROMBONE P25 Maddog explica como fazer sua parte nas poliacuteticas puacuteblicas

SEGURANCcedilA BIOMETRIA p72

A autenticaccedilatildeo por impressatildeo digital jaacute eacute realidade Aprenda a implementaacute-la com um especialista

REDES OPENID p68

Uma uacutenica identidade para vaacuterios serviccedilos na Web Mas como fica a seguranccedila

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo MIDs seraacute que a moda pega p17

raquo Faccedila graacuteficos pelo Google p50

raquo HA e PostgreSQL uma oacutetima mistura p54

raquo ETL muito competente com o Talend p62

SUPORTANDO O VISTA

50 0109

R$ 1490 euro 750

9 771806 942009

0 0 0 5 0

copy Linux New Media do Brasil Editora Ltda

Page 4: Interoperabilidade SUPORTANDO O VISTA

4 httpwwwlinuxmagazinecombr

CAPAIntegraccedilatildeo transparente 27

Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo

que vocecirc queira viver em um mundo de coacutedigo aberto

ele ainda estaacute cheio de Windows A ediccedilatildeo deste

mecircs traz um apanhado de estrateacutegias para facilitar o

conviacutevio com o sistema operacional da Microsoft

Rede fechada 28

Clientes Linux eventualmente precisam de uma matildeozinha

para se conectar a servidores VPN do Windows

Na ativa 34

O Likewise Open oferece integraccedilatildeo faacutecil a ambientes

Active Directory Mostramos como instalar e configurar o

sistema de autenticaccedilatildeo amigaacutevel para administradores

O manda-chuva do terminal 40

O xrdp ajuda os seus clientes de terminal

Windows a se conectarem ao Linux

Muito aleacutem do Cron 44

Planejar e agendar tarefas computacionais pode exigir muito

trabalho principalmente se abranger muacuteltiplas maacutequinas

Conheccedila uma ferramenta que facilita muito essa aacuterea

IacuteND

ICE

copy Linux New Media do Brasil Editora Ltda

5Linux Magazine 50 | Janeiro de 2009

| IacuteNDICELinux Magazine 50

COLUNASKlaus Knopper 08

Charly Kuumlhnast 10

Zack Brown 12

Inseguranccedila 14

Augusto Campos 17

NOTIacuteCIASGeral 18 Xen ganha recursos e promete integraccedilatildeo

LPI lanccedila provas 303 no Brasil

Lanccedilado o Fedora 10

Alta disponibilidade

Linux versus OpenSolaris e FreeBSD

Google Android no Openmoko

CORPORATENotiacutecias 20 ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

MS Windows eacute mais econocircmico

Sun lanccedila MySQL 51

VMware adquire Tungsten Graphics

Google e Red Hat fi rmam parceria

Insigne jaacute planeja 2012

Mandriva demite dois desenvolvedores

Entrevista CAEMA 22

Coluna Cezar Taurion 24

Coluna Jon ldquomaddogrdquo Hall 25

Coluna Edgar Silva 26

TUTORIALGraacutefi cos via Web 50 A API do Google Chart permite desenhar graacutefi cos

planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simples

Banco cheio mas disponiacutevel 54 O PostgreSQL natildeo possui embutido um mecanismo

para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia

ANAacuteLISE O talento do Talend 62 Quem procura uma soluccedilatildeo ETL para Business Intelligence

natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda

REDESIdentidade aberta mas segura 68 O OpenID oferece um padratildeo aberto para

login em websites fechados

SEGURANCcedilAAutenticaccedilatildeo biomeacutetrica 72

A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e confi gurar esse recurso de seguranccedila

SERVICcedilOSEditorial 03Emails 06Linuxlocal 78Eventos 80Iacutendice de anunciantes 80Preview 82

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

copy Linux New Media do Brasil Editora Ltda

6 httpwwwlinuxmagazinecombr

CA

RTA

S

sanj

a gj

ener

o ndash

ww

ws

xch

u

Emails para o editor

Permissatildeo de EscritaSe vocecirc tem duacutevidas sobre o mundo Linux criacuteticas ou sugestotildees que possam ajudar a melhorar a nossa revista escreva para o seguinte endereccedilo cartaslinuxmagazinecombr Devido ao grande volume de correspondecircncia torna-se impossiacutevel responder a todas as duacutevidas sobre aplicativos confi guraccedilotildees e problemas de hardware que chegam agrave Redaccedilatildeo mas garantimos que elas satildeo lidas e analisadas As mais interessantes satildeo publicadas nesta seccedilatildeo

Gestatildeo empresarial Primeiramente gostaria de parabenizaacute-los pela revista que possui oacutetimo conteuacutedo poucas propagandas e eacute muito objetiva em suas mateacuterias

Jaacute estive pesquisando poreacutem eacute muito difiacutecil en-contrar sistemas para gerenciamento de empresas como contas a pagar a receber controle de estoque etc Este eacute acredito eu um dos maiores problemas para conseguirmos migrar os nossos clientes para a plataforma Linux

Gostaria de pedir agrave Linux Magazine que se pos-siacutevel indicasse algumas opccedilotildees de softwares (livres ou natildeo) para gestatildeo de empresas para que pudeacutesse-mos analisaacute-los

Ivan Moretto Leme SP

Resposta Prezado Ivan muito obrigado pelos elogios Eacute sempre muito gratifi cante receber o reconhecimento por parte de nossos leitores Mas por favor natildeo hesite em nos informar tambeacutem o que poderia ser melhorado na Li-nux Magazine

Sobre a sua questatildeo jaacute publicamos duas ediccedilotildees (39 e 30) sobre esses sistemas cha-mados ERP (do inglecircs ldquoEnterprise Resour-ce Planningrdquo ndash Planejamento de Recursos da Empresa)

Como vocecirc pode conferir na listagem das mateacuterias de capa dessas ediccedilotildees haacute diversos sistemas ERP (proprietaacuterios ou de coacutedigo aberto) para Linux com destaque para Adem-piere Compiere e Openbravo ndash por sinal todos os trecircs tecircm o coacutedigo aberto

copy Linux New Media do Brasil Editora Ltda

7

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

8 httpwwwlinuxmagazinecombr

Pergunte ao Klaus

Klaus KnopperO professor Klaus responde as mais diversas duacutevidas dos leitores

Espaccedilo na telaHaacute uns dois anos eu comprei um PC bem baacutesico com chip graacutefico onboard Pluguei nele um moni-tor LCD de 19 polegadas (1280x1024) mas troquei-o por um de 22 polegadas (1680x1050) um ano de-pois No Centro de Controle do KDE selecionei a resoluccedilatildeo de 1680x1050 mas agora ele exibe e usa 1680x1200

Como meu monitor natildeo suporta essa resoluccedilatildeo eacute como se meu monitor estivesse ldquoflutuandordquo sobre a aacuterea de trabalho quando chego o mouse perto da base do monitor ele desliza a imagem para baixo mostrando a barra inferior do KDE e escondendo os 150 pixels laacute de cima

Eu gosto desse comportamento pois os progra-mas costumam ter seus menus na parte de cima da janela entatildeo eu natildeo preciso descer para a base com frequumlecircncia Aleacutem disso a base se torna um bom lo-cal para eu jogar janelas que natildeo quero visualizar no momento

Minha duacutevida eacute se essa nova configuraccedilatildeo eacute causa-da por um problema de driver ou se eu encontrei um recurso do Xorg que eacute comum mas pouco usado

Testei recentemente o Fedora 8 e ele reconhece automaticamente o tamanho do monitor Agraves vezes eu sinto falta dos 150 pixels de altura que sobram para baixo Existe alguma forma de recuperaacute-los

RespostaOs ldquo150 pixels ocultosrdquo de fato satildeo causados por

um recurso do servidor X Se o tamanho da tela for configurado como 1680x1050 o Xorg entraraacute no modo de deslizamento (scrolling mode)

Novas versotildees do Xorg substituem esse recurso pela alteraccedilatildeo da resoluccedilatildeo da aacuterea de trabalho usando a extensatildeo randr A vantagem eacute que a aacuterea de trabalho ajusta seu tamanho automaticamente ao se alterar a resoluccedilatildeo

Aleacutem disso alternar entre diferentes dispositivos de saiacuteda eacute mais faacutecil (por exemplo conectar um projetor com uma resoluccedilatildeo diferente ou usar no monitor interno a resoluccedilatildeo do externo) O Xorg carrega automaticamente a extensatildeo randr e depois

as configuraccedilotildees de Modes no arquivo etcX11xorgconf satildeo ignoradas em favor do que o monitor especifica como resoluccedilatildeo favorita

Eacute possiacutevel fazer o Xorg alterar sua resoluccedilatildeo dinami-camente usando o krandtray (no KDE) ou o comando xrandr (na linha de comando) Por exemplo

xrandr --output LVDS --auto

tentaraacute alinhar automaticamente a resoluccedilatildeo do servidor X agrave do monitor enquanto

xrandr --output LVDS --mode 800x600

ou

xrandr --output LVDS -s 800x600

usaraacute o modo ou resoluccedilatildeo para o tamanho de 800x600 especificado no comando o que tambeacutem faz certos ambientes desktop adotarem um tama-nho de tela diferente

xrandr --output VGA --auto

deve ativar a porta VGA externa de um notebook e tambeacutem fazer o desktop adotar a resoluccedilatildeo preferida do monitor ou projetor ligado a essa porta

No seu caso para retornar ao comportamento original com 150 pixels ldquosobrandordquo (desativando o randr no Xorg) basta adicionar a seguinte seccedilatildeo ao seu arquivo etcX11xorgconf

Section ldquoServerFlagsrdquo Option ldquoRandRrdquo ldquofalserdquoEndSection

CO

LU

NA

Escreva para o KlausEnvie suas perguntas em portuguecircs ou inglecircs para klauslinuxmagazinecombr e tire todas as suas duacutevidas

Linux Magazine 50 | Janeiro de 2009

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

9

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

10 httpwwwlinuxmagazinecombr

Siege

Charly Kuumlhnast O cerco a Troacuteia durou dez anos e terminou somente quanto Ulisses introduziu um cavalo de madeira dentro da cidade Charly tambeacutem estaacute planejando um cerco e o alvo eacute seu proacuteprio servidor web Naturalmente ele natildeo tem dez anos para completar essa tarefa nem Ulisses como parte de sua equipe

Estava checando meu servidor Apache e me lembrei do mito do monstro marinho Cila que deu cabo de nada menos que seis ho-

mens de Ulisses voltando de Troacuteia a caminho de casa O moacutedulo de multi-processamento ndash MPM worker ndash do meu servidor tambeacutem eacute capaz de devo-rar muacuteltiplas requisiccedilotildees numa talagada soacute mas ateacute onde ele aguumlenta Quantas threads eu preciso con-fi gurar para conseguir que ele entregue o maacuteximo de desempenho E a partir de quantas threads isso se torna um desperdiacutecio

Teste de carga Usando a ferramenta de ataque Siege [1] vou tentar responder essas questotildees por meio de um teste de car-ga O programa contempla dois modos de ataque o primeiro simula o comportamento de um ser humano navegando na Internet o que explica o intervalo de trecircs segundos entre cada dois acessos No segundo conhecido como modo benchmark esses intervalos satildeo eliminados e a ferramenta faz solicitaccedilotildees ao servidor ininterruptamente Para fazer o servidor ldquosuarrdquo o Sie-ge dispotildee de um exeacutercito de usuaacuterios de contingente confi guraacutevel ndash dez por padratildeo mas eacute possiacutevel usar o paracircmetro a seguir para aumentar o tamanho da tro-pa ateacute que o servidor web peccedila misericoacuterdia e nossos agressores consumam todos os recursos do sistema

--concurrent=ltnuacutemerogt

Como entrar em Troacuteia Como o Siege sabe qual servidor atacar Haacute duas opccedilotildees para isso o paracircmetro

--url=rdquohttpltmeusitecomgtltindexhtmlgtrdquo permite que vocecirc forneccedila a URL que o programa solicitaraacute repetidamente Jaacute a opccedilatildeo

--file=rdquohomecharlysiege-urlstxtrdquo

eacute mais interessante pois permite a criaccedilatildeo de uma sequumlecircncia arbitrariamente longa de endereccedilos web para o Siege atacar O parametro --reps=ltnuacutemerogt permite especifi car quantas vezes o programa deveraacute repetir o teste de carga

Tambeacutem eacute possiacutevel usar o paracircmetro --internet para dizer ao Siege para natildeo realizar as requisiccedilotildees na ordem especifi cada no arquivo siege-urlstxt mas fazecirc-lo de maneira aleatoacuteria o que eacute muito mais proacuteximo da realidade

Fim da batalha Para evitar que o teste de carga se estenda indefi nida-mente eacute prudente utilizar o paracircmetro --time para limitar seu tempo de execuccedilatildeo O ataque cessaraacute ao fi nal do tempo indicado mesmo que a quantidade de execuccedilotildees especifi cada pelo paracircmetro --rep ainda natildeo tenha sido atingida

Apoacutes sua execuccedilatildeo ter sido completada o Siege mostra um resumo dos resultados encontrados (veja a fi gura 1 )

CO

LU

NA

Mais informaccedilotildees

[1] Siege httpwwwjoedogorgJoeDogSiege

Figura 1 Apoacutes a batalha contra o servidor web o Siege apresenta os resultados

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

11

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

Gab

arit

o

Soluccedilatildeo faacutecil e descomplicada para empresas de qualquer tamanho colocarem seus produtos agrave venda na internet

R$4900

por mecircs

a partir de

senhorlojasimplesindd 1 121008 110411 AM

copy Linux New Media do Brasil Editora Ltda

12 httpwwwlinuxmagazinecombr

Crocircnicas do kernel

Zack BrownOs acontecimentos mais recentes na histoacuteria do kernel

Erradicaccedilatildeo do Big LockFrederic Weisbecker criou o Big Kernel Lock Tracer (rastreador do Big Lock ndash grande bloqueio ndash do ker-nel) que rastreia os tempos de atraso causados pelo Big Kernel Lock ou BKL Isso pode ajudar a iden-tificar aacutereas especiacuteficas nas quais o BKL deveria ser eliminado primeiro Linus Torvalds sugeriu livrar-se do BKL e substituiacute-lo por estruturas de bloqueio mais simples Entretanto nem todas as situaccedilotildees podem ser resolvidas com um bloqueio geneacuterico e o coacute-digo de bloqueio estaacute espalhado por todo o kernel o que dificulta qualquer tipo de esforccedilo conjunto Uma tentativa no momento eacute ldquoempurrarrdquo todo o

coacutedigo do BKL para sua proacutepria parte da aacutervore do kernel para centralizaacute-lo de forma a trataacute-lo de uma soacute vez Os participantes de todo o espectro do desen-volvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho A ferramenta de Frederic pode ajudar os desenvolvedores a concentrar sua atenccedilatildeo em aacutereas que beneficiariam a maioria

Redefinindo Load AverageSena Senerviratne e David Levy estatildeo preparando algumas mudanccedilas para o caacutelculo do valor de load average (carga meacutedia) no Linux Sua ideacuteia eacute em vez de calcular apenas um uacutenico nuacutemero para re-presentar toda a carga meacutedia do sistema fornecer muacuteltiplas estatiacutesticas Por exemplo eles querem separar do resto do sistema a carga de IO de disco

para visualizarem esse dado independentemente Aleacutem disso desejam ativar o caacutelculo de load avera-ge por usuaacuterio para que cada usuaacuterio visualize os efeitos sobre o seu sistema Arjan van de Ven pediu encarecidamente que eles apenas acrescentem esta-tiacutesticas sem alterar o comportamento dos nuacutemeros que o sistema jaacute produz

MantenedoresTheodore (Ted) Y Tsrsquoo atualizou o arquivo MAINTAINERS listando-se como mantenedor do sistema de arquivos Ext4 no lugar de Andrew Morton e Stephen Tweedie embora isso natildeo represente uma mudanccedila real de man-tenedor De acordo com Ted a entrada originalmente foi simplesmente copiada daquela do Ext3 e jamais foi precisa o que seu patch agora corrigiu

Um detalhe interessante eacute que embora Andreas Dilger natildeo esteja incluiacutedo como co-mantenedor no patch de Ted a lista de emails para submissatildeo de patches relatoacuterios de bug etc inclui o email de Andreas junto com o de Ted O email de Andreas tambeacutem estaacute listado junto com o de Andrew e Ste-phen na entrada original equivocada Geralmente isso significaria que ele dedica muito trabalho ao projeto e pode atuar como ldquotenenterdquo de Ted da mesma forma que Linus Torvalds confia em seus ldquotenentesrdquo para facilitar seu trabalho de inclusatildeo de coacutedigos no kernel

Mike Frysinger postou um patch para o arquivo MAINTAINERS listando a si mesmo e Subrata Modak como co-mantenedores do LTP (Linux Test Project) Esse projeto patrocinado pela SGI e IBM oferece um conjunto de aproximadamente 3 mil testes para avaliar a confiabilidade robustez e estabilidade do sistema operacional Linux

CO

LU

NA

Sobre o autorA lista de discussatildeo Linux-kernel eacute o nuacutecleo das atividades de desenvolvimento do ker-nel Zack Brown consegue se perder nesse oceano de mensagens e extrair significado Sua newsletter Kernel Traffic esteve em ativi-dade de 1999 a 2005

Os participantes de todo o espectro do desenvolvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho

copy Linux New Media do Brasil Editora Ltda

13

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

O Scalix eacute uma soluccedilatildeo completa para mensagens que suporta muacuteltiplos servidores e atende agraves necessidades de sua empresa Natildeo importa otamanho dela Baseia-se em uma Plataforma Colaborativa que serve de fundaccedilatildeo para todas as ediccedilotildees desse produto

Maiores informaccedilotildees wwwsentegritycombr EUA 646-747-7648 | Satildeo Paulo 11 5105-9037 | Rio de Janeiro 21 2526-7262

Reduza os custos de comunicaccedilatildeo usando Scalix

copy Linux New Media do Brasil Editora Ltda

14 httpwwwlinuxmagazinecombr

A quarta geraccedilatildeo dos rootkits se baseia no hardware e eacute quase indetectaacutevel

InseguranccedilaAnalisamos a histoacuteria dos rootkits incluindo a sua mais nova encarnaccedilatildeo o DR RootKitpor Kurt Seifried

Originalmente eu pretendia escrever um artigo sobre o estado da arte dos rootkits

e as ferramentas que poderiam ser usadas para detectaacute-los Foi aiacute que acabei topando com um problemi-nha os rootkits mais avanccedilados e modernos tendem a ser realmente bons em evitar sua detecccedilatildeo Com ldquorealmente bonsrdquo quero dizer que seraacute improvaacutevel para qualquer um detectaacute-los a menos que se lance matildeo de teacutecnicas como a anaacutelise detalhada de uma coacutepia (dump) da memoacuteria por exemplo comparan-do-se a partir daiacute a imagem real do kernel carregada na memoacuteria com aquela que seria de se esperar

Liccedilotildees histoacutericasRootkits tradicionais satildeo programas simples geralmente rodando como um serviccedilo isolado e fornecendo aces-so a uma backdoor Eles satildeo relativa-mente faacuteceis de detectar bastando para isso procurar novos processos ou programas recentemente instalados Isso levou os agressores a comeccedilar a sobrescrever os programas executaacuteveis do sistema Via de regra esses pro-gramas satildeo substituiacutedos por versotildees modificadas pelo agressor tais como versotildees do OpenSSH com nome e senha do administrador embutidas diretamente no programa com o intuito de escalar privileacutegios e obter direitos de root no sistema O adven-to de ferramentas como o Tripwire e o uso cada vez mais comum de gerenciadores de pacotes com a ca-

pacidade de verificar a integridade dos arquivos instalados no sistema ndash tais como rpm e dpkg ndash acabou por facilitar a detecccedilatildeo desse tipo de rootkit tambeacutem [1]

Rootkits para o kernelNatildeo demorou muito para que os agressores percebessem que meacuteto-dos mais sofisticados de ocultaccedilatildeo e subversatildeo eram necessaacuterios para controlar um sistema o que levou agrave criaccedilatildeo de rootkits para o kernel Assim ao modificar a tabela de ca-madas do sistema um agressor pode evitar facilmente a sua detecccedilatildeo pois em poucas palavras ele controla o que eacute exibido e como seus programas estatildeo sendo executados

Tradicionalmente um agressor usa um dos dois meacutetodos para modificar o kernel do sistema ou ele carrega um moacutedulo com coacutedigo malicioso no kernel (como o heroin por exemplo) ou modifica o kernel carregado na memoacuteria escrevendo no dispositivo especial devkmem (como o SucKIT por exemplo) A desvantagem dessa teacutecnica eacute que como esses ataques estatildeo carregados apenas na memoacuteria do sistema normalmente natildeo sobre-vivem a uma reinicializaccedilatildeo

Por mais difiacutecil que possa parecer esses rootkits podem ser detectados comparando-se a tabela atual de cha-madas do sistema com a que seria de se esperar originalmente (isto eacute examinando-se o arquivo Systemmap) Coacutepias da memoacuteria do sistema po-dem ser feitas e usadas para verificar

se o kernel carregado na memoacuteria estaacute intacto

Quando chegam a esse niacutevel o que vocecirc acha que os agressores fazem Vatildeo mais fundo ainda claro

Hardware e virtualizaccedilatildeoLanccedilado em 2006 durante a Black Hat Conference em Las Vegas o primeiro rootkit desenvolvido para comprometer diretamente o hardware foi chamado de Blue Pill [2] Os processadores mo-dernos da AMD e da Intel dispotildeem de uma gama de recursos para suportar virtualizaccedilatildeo de sistemas operacionais E como natildeo eacute mais necessaacuterio que esses rootkits modifiquem o que quer que seja no sistema operacional para funcionar eles satildeo muito mais difiacuteceis de detec-tar de modo que somente verificar a integridade da tabela de chamadas do sistema natildeo vai funcionar Contudo esses rootkits modificam a tabela de descritores de interrupccedilatildeo (IDT na sigla em inglecircs) que eacute mantida em um dos registradores do processador (o IDTR) [3]

Como passam a existir dois IDTRs no sistema comprometido ndash um real e outro falso que eacute apresentado ao sistema operacional ndash este uacuteltimo vai ocupar uma posiccedilatildeo de memoacuteria diferente da de costume Felizmente a instruccedilatildeo privilegiada Store Inter-rupt Descriptor Table (SIDT) pode ser executada a partir do espaccedilo de usuaacuterio do sistema retornando de forma confiaacutevel o conteuacutedo do IDTR

CO

LU

NA

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

15Linux Magazine 50 | Janeiro de 2009

disponiacutevel para o sistema operacional (o que natildeo serve para muita coisa pois o sistema jaacute foi comprometi-do) bem como ndash e o que eacute mais importante ndash a posiccedilatildeo da memoacuteria em que o IDTR se encontra Pare-ce que chegamos a um beco sem saiacuteda os agressores criaram novos meacutetodos para esconder os rootkits e os defensores encontraram meios para detectaacute-los

A nova geraccedilatildeo de rootkitsLanccedilados em setembro de 2008 pela Immunity Inc o DR RootKit [4] im-plementa ldquoganchosrdquo (hooks) para as chamadas de sistema no kernel Linux 26 sem modificar nem a tabela de chamadas do sistema nem a tabela de descritores de interrupccedilatildeo Para fazer isso ele introduz breakpoints de hardware no manipulador de chamadas do sistema Isso corres-

ponde agrave inclusatildeo de um ldquovigiardquo na memoacuteria da tabela de chamadas do sistema especificamente observando a entrada __NR_syscall usada para exportar nuacutemeros de chamadas do sistema Basicamente o rookit se comporta como uma ferramenta de depuraccedilatildeo de programas espe-rando que determinadas chamadas do sistema sejam executadas e mo-

dificando-as quando isso acontece Os ganchos do DR RootKit estatildeo listados na tabela 1

O DR RootKit dispotildee de recursos tais como ocultaccedilatildeo de processos e prevenccedilatildeo do teacutermino de execuccedilatildeo de processos ocultos (o que significa que um agressor pode executar pro-gramas ocultos e vocecirc natildeo tem como terminaacute-los com o comando kill

Tabela 1 Chamadas do sistema

getdents64 Lecirc entradas de diretoacuterio

getdents Lecirc entradas de diretoacuterio

chdir Muda o diretoacuterio de trabalho

open Abre um arquivo ou dispositivo

execve Executa um programa

socketcall Chamadas de sistema via socket

fork Cria um processo filho

exit Encerra o processo atual

kill Envia um sinal a um processo

getpriority Obteacutem prioridade de escalonamento para um programa

| COLUNAInseguranccedila

copy Linux New Media do Brasil Editora Ltda

16 httpwwwlinuxmagazinecombr

Mais informaccedilotildees

[1] Amir Alsbih ldquoPassagem Secreta Teacutecnicas de criaccedilatildeo de backdoorsrdquo httpwwwlinuxmagazinecombrarticlepassagem_secreta

[2] Blue Pill httpbluepillprojectorg

[3] Red Pill httpwwwinvisiblethingsorgpapersredpillhtml

[4] DR RootKit httpwwwimmunityinccomresources-freesoftwareshtml

[5] Core Security Technologies httpwwwcoresecuritycom

mesmo que vocecirc consiga descobrir a identidade ndash o ID ndash do processo) Se vocecirc usar os exemplos forneci-dos com o pacote eacute relativamente simples estender e criar outras cha-madas de sistema modificadas Por exemplo vocecirc pode alterar o conjun-to de recursos disponiacuteveis para pro-cessos ndash o capset O proacuteprio rootkit eacute um moacutedulo carregaacutevel no kernel o que simplifica sua inserccedilatildeo em um sistema comprometido Poreacutem da mesma forma que acontece com outros rootkits residentes na memoacute-ria a reinicializaccedilatildeo do sistema iraacute removecirc-lo da memoacuteria

Se vocecirc quiser estender o rootkit pode por exemplo inserir suas proacuteprias chamadas do sistema personalizadas Forneci um exemplo para alterar a chamada de sistema exit Em poucas palavras o processo consiste em de-clarar seu proacuteprio gancho para alterar uma chamada de sistema e entatildeo im-plementar uma chamada de sistema customizada ndash isso eacute realmente simples O melhor lugar para comeccedilar eacute o coacute-digo-fonte do kernel ndash mais especifica-mente no subdiretoacuterio kernel onde a maioria das chamadas do sistema satildeo definidas Por exemplo se houver um sistema no qual os recursos em uso restringem o que programas podem ou natildeo fazer vocecirc pode simplesmen-te modificar a chamada de sistema do_sys_capset_other_tasks que sempre retorna todos os recursos de um ID de processo especiacutefico como

-2376 +2379 if (capable(CAP_SETPCAP))return -EPERM+ if (pid == 12345) magic process number + return cap_set_all_evil(effective inheritable permitted)

Como vocecirc pode notar mesmo a menor das modificaccedilotildees pode ter um efeito significativo Assim de uma hora para outra o processo

com o ID 12345 teraacute sempre todos os recursos o que permite a ele fa-zer praticamente tudo o que quiser Assim com apenas uma chamada de sistema um agressor pode criar uma backdoor eficiente

O uacutenico modo de detectar um rootkit desses eacute por meio da mediccedilatildeo de atrasos ou de condiccedilotildees de corri-da (race conditions) que sejam intro-duzidas pelo rootkit Se um rootkit estivesse presente o sistema deveria ficar mais lento do que de costume mas a mediccedilatildeo dessa variaccedilatildeo natildeo eacute uma tarefa simples Aleacutem disso o programa eacute relativamente simples e pode ser estendido facilmente de modo a se esconder de maneira mais eficiente e tornando sua detecccedilatildeo ainda mais difiacutecil

Abordagem alternativaClaro que vocecirc pode comprometer um sistema e manter o acesso de outras formas enquanto permanece escondido Uma outra empresa que desenvolve software de verificaccedilatildeo de invasatildeo chamada Core Security [5] adotou uma abordagem de injetar coacutedigo hostil em processos que jaacute te-nham sido atacados Por exemplo se vocecirc criar uma brecha no conhecido servidor web Apache conseguiraacute inje-tar coacutedigo nele que lhe garanta acesso remoto ao sistema Essa teacutecnica eacute algo limitado se comparada com um roo-tkit de kernel completo ou com um rootkit de hardware A desvantagem dessa teacutecnica satildeo os mecanismos de proteccedilatildeo do sistema operacional tais como o SELinux que permanecem capazes de forccedilar uma poliacutetica de seguranccedila Contudo para agressores obstinados isso natildeo costuma ser um problema muito seacuterio pois eles podem usar um exploit local para comprome-ter ainda mais o sistema ou mesmo permanecer dentro das condiccedilotildees impostas pela poliacutetica definida pelo SELinux mas ainda sim obter infor-maccedilotildees ou usar o sistema para realizar outros ataques maliciosos

ConclusatildeoA boa notiacutecia eacute que chegando agrave camada de hardware os agresso-res (pelo menos conceitualmente) atingiram a uacuteltima camada passiacute-vel de abuso A maacute notiacutecia eacute que um grande contingente de truques de hardware pode ser usado para manter o controle sobre um sistema comprometido Por exemplo uma placa de viacutedeo moderna tem acesso direto agrave memoacuteria (o que significa que ela pode fazer o que bem en-tender com a memoacuteria do sistema sem que o sistema operacional possa interferir significativamente no pro-cesso) dispotildee de memoacuteria proacutepria e de uma grande quantidade de poder de processamento (tanto que estatildeo sendo usadas por muitos para criar clusters de baixo custo) Placas mais modernas tecircm seu firmware arma-zenado em memoacuteria flash passiacutevel de atualizaccedilatildeo por software e eu natildeo tenho a miacutenima duacutevida de que algum dia algueacutem vai criar algum meacutetodo para abusar da placa de viacutedeo com o propoacutesito de controlar um sistema comprometido

COLUNA | Inseguranccedila

copy Linux New Media do Brasil Editora Ltda

17Linux Magazine 50 | Janeiro de 2009

COLUNA

MID mais um degrau na escadaria da mobilidade

Augusto CamposNem smartphone nem subnotebook os MIDs chegam como uma nova categoria para facilitar nossas vidas

Neste iniacutecio de 2009 tive a oportunidade de segurar em minhas matildeos um pedaccedilo do futuro do desktop Soacute que natildeo se tra-

tava propriamente de um desktop ou pelo menos natildeo daquele modelo que aprendemos a conhecer com uma infinidade de arquivos gravados em um disco riacutegido ao meu alcance um ambiente de trabalho cheio de aplicativos instalados local-mente e a ocupaccedilatildeo de uma vasta aacuterea em cima da escrivaninha

Natildeo era nem mesmo um daqueles notebooks pequeninos estilo Eee PC que foram se popula-rizando mundialmente ao longo de 2008 Era algo menor mais singelo mas com poder de processa-mento surpreendente um Aigo MID equipamento do qual provavelmente vocecirc ainda natildeo ouviu falar ndash ateacute porque ele parece estar bem distante do nosso mercado neste momento

Os MIDs ou Mobile Internet Devices satildeo dis-positivos que parecem ficar entre os smartphones e os subnotebooks de hoje Como em uma cadeia darwiniana eu ateacute apostaria que os mais bem-suce-didos entre eles vatildeo acabar ficando no nicho exato que hoje eacute ocupado por um destes dois extremos (os smartphones ou os subnotebooks) ateacute mesmo porque essas fronteiras vatildeo ficando cada vez mais difusas com o passar do tempo Mas hoje eles satildeo uma categoria agrave parte e torccedilo para que suas carac-teriacutesticas e possibilidades sejam logo herdadas pelos celulares (ou pelos subnotebooks)

O equipamento com o qual tive oportunidade de brincar um pouco tem caracteriacutesticas de um PC de pequeniacutessimo porte com um display sufi-cientemente grande para mostrar os sites da web 20 nossos de cada dia um teclado escamoteaacutevel cacircmera microfone e acesso a redes Wi-Fi Alguns modelos tecircm acesso agrave conectividade via redes mais amplas (CDMA 3G etc) mas natildeo eacute o caso do meu E eles permitem fazer o que eu mais faccedilo no meu desktop diariamente acessar a web comuni-car-me por IM VoIP e email consultar (ou editar levemente) documentos e textos e ateacute digitar esta coluna que vocecirc estaacute lendo

E o mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres como o Firefox e o Pidgin entre vaacuterios outros E nem eacute soacute pela questatildeo do custo de aquisiccedilatildeo esses aplicativos livres satildeo leves por natureza e ainda podem ser alterados de acordo com as especificaccedilotildees do aparelho no qual seratildeo distribuiacute-dos seja para ocupar menos disco preencher menos memoacuteria RAM ou mesmo gastar menos bateria

Hoje o acesso agrave Web eacute cada vez mais uma condiccedilatildeo para que eu possa desempenhar bem as minhas ativi-dades e quanto mais rico esse acesso melhor a cada dia eacute necessaacuterio interagir digitar textos captar imagens comunicar-se por viacutedeo e voz conectar-se a redes de

variadas tecnologias abertas Acredito que em algum momento os celulares vatildeo estar aptos a prover com con-forto e economia esses recursos e que vatildeo estar rodando um sistema operacional livre quando o fizerem

Enquanto esse dia natildeo chega eacute interessante ver como a induacutestria avanccedila nesta direccedilatildeo por vias obliacute-quas que convergem em uma direccedilatildeo que muito nos interessa softwares livres conectando-se a pro-tocolos abertos e provendo serviccedilos que facilitam as nossas vidas

COLUNA

Sobre o autorAugusto Ceacutesar Campos eacute administrador de TI e desde 1996 manteacutem o site BR-linuxorg que cobre a cena do Software Li-vre no Brasil e no mundo

O mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres

copy Linux New Media do Brasil Editora Ltda

18

NO

TIacuteC

IAS

httpwwwlinuxmagazinecombr

Xen ganha recursos e promete integraccedilatildeoKeir Fraser da Xensource (atualmente Citrix) anunciou na lista xen-devel a disponibilidade de uma aacutervore com o coacutedigo-fonte para criaccedilatildeo de um dom0 completo do Xen no kernel Linux 2627

Segundo Keir ldquoa intenccedilatildeo eacute fornecer uma aacutervore uacutenica para desenvolvimento e testes voltada aos desenvolvedores que pre-cisarem de um kernel 26 mais modernordquo e menciona o geren-ciamento de energia como um dos motivos para isso

O porte da funcionalidade de dom0 do Xen para o Linux atu-almente depende da implementaccedilatildeo final das pv_ops (operaccedilotildees para-virtualizadas) um conjunto de ldquoganchos de coacutedigordquo (hooks) no kernel que permitem sua operaccedilatildeo mediante o uso da teacutecnica de para-virtualizaccedilatildeo Atualmente o escopo de funcionalidade das pv_ops permite apenas o funcionamento do Linux como

Alta disponibilidadeManter a sincronizaccedilatildeo perfeita de muacuteltiplos servidores Xen cada um com diversas maacutequinas virtuais natildeo eacute tarefa das mais faacuteceis Atualmente eacute preciso replicar arquivos de configuraccedilatildeo entre os servidores e manter sincronizado todo o restante da estrutura

Felizmente tudo isso pode mudar para melhor com o projeto Kemari Trata-se de um software de coacutedigo aberto (GPL) descrito por seus autores como ldquoum mecanismo de coacutedigo aberto para sin-cronizaccedilatildeo de maacutequinas virtuais para toleracircncia a falhas Oferece uma teacutecnica utilizaacutevel para toleracircncia a falhas que natildeo requer o uso de hardware especiacutefico ou a modificaccedilatildeo dos aplicativos ou sistema operacionalrdquo

Lanccedilado o Fedora 10Seis meses apoacutes o lanccedilamento do Fedora 9 o projeto livre lanccedilou a versatildeo 10 da popular distribuiccedilatildeo Linux codinome Cambridge

O Fedora 10 usa o kernel Linux 26275 anunciado no uacuteltimo dia 7 O projeto tambeacutem estaacute buscando trazer seus softwares a um novo niacutevel e ele inclui o OpenOfficeorg 30 Gnome 2241 Eclipse 34 e RPM 46 O produto promete um melhor gerenciamento de impressoras e alguns interessantes recursos de vir-tualizaccedilatildeo No momento o KVM estaacute disponiacutevel por padratildeo no Fedora 10 na versatildeo 74-5 (no Fedora 9 o KVM era apenas uma opccedilatildeo) Certamente a aquisiccedilatildeo da Qumranet criadora e desenvolvedora do KVM pela Red Hat patrocinadora do Fedora tem grande influecircncia nisso No entanto o uso do KVM natildeo implica a rejeiccedilatildeo do ldquoconcorrenterdquo Xen o hypervisor tradicional estaacute presente na versatildeo 330-1 As ferramentas de virtualizaccedilatildeo de criaccedilatildeo do proacuteprio Fedora como a libvirt e o virt-manager tambeacutem estatildeo incluiacutedas

Outra importante novidade do Fedora 10 eacute seu tempo de inicializaccedilatildeo que foi reduzido graccedilas ao novo sistema graacutefico de inicializaccedilatildeo Plymouth

domU (ou seja como maacutequina virtual) enquanto o kernel do dom0 ainda eacute res-trito agrave versatildeo 2618 do Linux

A expectativa eacute que os desenvolvedores da Novell que estatildeo trabalhando nessa ta-refa consigam incrementar as pv_ops de forma a permitir seu uso tambeacutem como dom0 o que permitiria o uso de versotildees mais recentes do kernel Linux (com to-das as vantagens que trazem) no dom0 Posteriormente as novas pv_ops tambeacutem devem ser incluiacutedas na aacutervore principal do kernel unindo definitivamente os projetos Xen e Linux

O objetivo do projeto eacute ldquomanter as maacute-quinas virtuais rodando transparentemente em caso de falhas de hardwarerdquo Para isso ele ldquotransfere o estado da maacutequina virtual primaacuteria para a secundaacuteria quando a pri-maacuteria estaacute prestes a enviar um evento para dispositivos como armazenamento e rederdquo como descreve o anuacutencio do projeto

Espera-se que o Kemari seja integra-do ao Xen 34 a proacutexima versatildeo estaacutevel do popular sistema de virtualizaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

O Linux Professional Institute ndash oacutergatildeo responsaacutevel pela certificaccedilatildeo em Linux que mais cresce no mundo ndash realizou no Brasil a primeira aplicaccedilatildeo das provas 303 Elas correspon-dem agrave categoria especialista do niacutevel 3 da certificaccedilatildeo e qualificam o profissional aprovado como ldquoSecurity Specialistrdquo As provas (grauitas) ocorreram na cidade de Satildeo Paulo no dia 20 de dezembro de 2008

O Programa de Certificaccedilatildeo LPI eacute composto por dois niacuteveis baacutesicos com duas provas cada um As provas do niacutevel 1 (101 e 102) certificam o profissional como ldquoAdministrador Linux Juacuteniorrdquo e as do niacutevel 2 (201 e 202) como ldquoAdministrador Linux Plenordquo

O niacutevel 3 da certificaccedilatildeo LPI eacute focado no mercado corporativo O profissional precisa se certificar obrigatoria-mente na prova 301 (Core) e depois escolher uma das especialidades disponiacuteveis Atualmente a uacutenica disponiacutevel eacute a prova 302 (Mixed Environment) para profissionais que queiram se especializar em interoperabilidade em ambientes mistos (Linux Unix Netware e Windows) A prova lsquo303 - Securityrsquo eacute a segunda especialidade a ser lanccedilada pelo LPI A prova 303 estaacute sendo realizada em caraacuteter de teste antes de ser lanccedilada oficialmente

19

Xen ganha recursos e promete integraccedilatildeo

Linux Magazine 50 | Janeiro de 2009

Gerais | NOTIacuteCIAS

LPI lanccedila provas 303 no Brasil

Google Android no Openmoko Linux versus OpenSolaris e FreeBSD

O site dedicado a Software Livre e hard-ware Phoronix publicou um comparativo de velocidade (benchmark) na realizaccedilatildeo de diversas tarefas entre os sistemas ope-racionais mais famosos baseados em ker-nels de coacutedigo aberto Ubuntu OpenSolaris e FreeBSD

Os testes utilizaram a versatildeo instaacutevel de 64 bits mais recente de cada um dos sistemas (com exceccedilatildeo do Ubuntu cuja versatildeo foi a 810 final) e se basearam no proacuteprio pacote de benchmarks de coacutedigo aberto desenvol-vido pela equipe do Phoronix (e em raacutepida evoluccedilatildeo) o Phoronix Test Suite

Os autores concluem o artigo decla-rando o Ubuntu 810 como vencedor no desempenho mas o representante do ker-nel Linux natildeo foi o campeatildeo em todas as categorias venceu em oito dos 18 testes contra sete vitoacuterias do OpenSolaris e trecircs do FreeBSD

Poucos dias depois os autores retornaram ao ambiente de testes e fizeram o compara-tivo entre o tambeacutem recente Ubuntu 810 e o Fedora

Foram usadas as versotildees de 32 e 64 bits de ambos os sistemas e os testes empregados foram os mesmos do benchmark anterior com o Phoronix Test Suite

O resultado dessa comparaccedilatildeo no entan-to natildeo foi conclusivo as distribuiccedilotildees Linux se saiacuteram praticamente igual com respeito ao desempenho nos testes

Institute

LinuxProfessional

R

A Koolu empresa canadense especializada no desenvolvimento de soluccedilotildees de tecnologia ambientalmente corretas disponibili-zou o coacutedigo-fonte da plataforma Android do Google adaptado ao telefone Openmoko FreeRunner cujo desenvolvimento contou com esforccedilo e total colaboraccedilatildeo da comunidade internacional do Software Livre

O anuacutencio foi realizado no IP Communications Brasil 2008 evento internacional sobre comunicaccedilotildees IP por Jon lsquomaddogrsquo Hall CTO da Koolu e Denis Galvatildeo presidente da paranaense iSolve Durante o evento tambeacutem foi anunciado o acordo nome-ando a iSolve como canal master de distribuiccedilatildeo do Openmoko FreeRunner no Brasil

O Android foi lanccedilado como um software livre no final de outu-bro de 2008 poreacutem muito trabalho precisou ser realizado para que esse coacutedigo pudesse funcionar em telefones de outros fabricantes O FreeRunner telefone com design aberto desenvolvido pela empresa taiwanesa Openmoko demandou uma seacuterie de alteraccedilotildees no coacutedigo-fonte do Android para que ele pudesse fun-cionar corretamente A comunidade de Software Li-vre com ajuda de vaacuterias pessoas ao redor do mundo realizou as implementaccedilotildees necessaacuterias e tornou possiacutevel a execuccedilatildeo do Android no FreeRunner

ldquoAgora que o coacutedigo-fonte jaacute estaacute rodando no FreeRunner es-peramos que os retoques finais estejam prontos rapidamenterdquo dis-se Brian Code diretor teacutecnico da Koolu ldquoA criaccedilatildeo do ambiente para compilaccedilatildeo (toolchain) a criaccedilatildeo dos patches necessaacuterios para tornar o coacutedigo compatiacutevel com o telefone e a documentaccedilatildeo de todo o passo-a-passo do processo de construccedilatildeo do software toma-ram um bom tempo mas agora estaacute mais faacutecil para a comunidade do Software Livre desenvolver e realizar modificaccedilotildees nessa pla-taforma Como um exemplo as aplicaccedilotildees moacuteveis Google Apps bem como outra aplicaccedilotildees corporativas podem ser instaladas e otimizadas para essa plataformardquo

copy Linux New Media do Brasil Editora Ltda

20

CO

RP

OR

ATE

httpwwwlinuxmagazinecombr

ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

Keith Curtis funcionaacuterio por vaacuterios anos da Microsoft conclui em seu livro receacutem-lanccedilado que o futuro do software estaacute no modelo de desenvolvimento de coacutedigo aberto Curtis trabalhou para a Microsoft como de-senvolvedor de software de 1993 a 2004 tendo participado do desenvolvimento dos produtos para bancos de dados da empresa bem como na programaccedilatildeo do Windows do Office e do MSN entre outros No final de 2008 ele publicou o livro intitulado ldquoAfter the Software Warsrdquo (Depois das Guerras do Software) que descreve o processo de produccedilatildeo de software do ponto de vista de um desenvolvedor analisa os possiacuteveis avanccedilos nesse processo no futuro e aborda desde toacutepicos como inteligecircncia artificial culminando no desenvolvimento de sistemas que possibilitem viagens espaciais

A ediccedilatildeo online do The New York Times fez uma resenha do livro e relatou a nova trajetoacuteria do ex-funcio-naacuterio da gigante de Redmond ldquoPara o Sr Curtis a forccedila do software de coacutedigo aberto e o motivo pelo qual esse eacute o modelo de desenvolvimento do futuro estatildeo no fato de que por meio deste a inteligecircncia coletiva eacute estimuladardquo Segundo Curtis ldquoas diferenccedilas entre Software Livre e software natildeo-livre ou proprietaacuterio satildeo comparaacuteveis agraves diferenccedilas existentes entre ciecircncia e alquimia Antes de a ciecircncia se estabelecer havia apenas alquimia na qual as pessoas tentavam proteger suas ideacuteias pois elas desejavam dominar o mercado desenvol-vendo um processo para transformar chumbo em ourordquo

Curtis publicou seu livro usando a plataforma lulucom cujo fundador e diretor executivo eacute Bob Young veterano da cena Open Source e ex-CEO da Red Hat

Sun lanccedila MySQL 51Na nova versatildeo do banco de dados de coacute-digo aberto os desenvolvedores se concen-traram no desempenho o que aumentou a velocidade do programa em surpreendentes 15 Entre as novidades haacute cinco novos meacutetodos de particionamento horizontal range hash key list e composite Outros recursos novos satildeo a replicaccedilatildeo hiacutebrida e o agendador de eventos (event scheduler) que permite a automatizaccedilatildeo de tarefas SQL repetitivas

Os sistemas operacionais suportados satildeo Red Hat Enterprise Linux Suse Linux En-terprise Windows Mac OS X FreeBSD HP-UX IBM AIX IBM i5OS e todas as distribuiccedilotildees Linux

A Sun disponibiliza trecircs versotildees do soft-ware para download Community Server sob a GPL Enterprise Server com base em subscriccedilatildeo (assinatura do serviccedilo) e Embedded Server esta com licenccedila co-mercial proprietaacuteria

MS Windows eacute mais econocircmicoA Microsoft fez de novo um estudo recente encomendado pela empresa ldquoconcluiurdquo que eacute mais barato para empresas usar o Win-dows como plataforma de software A revista australiana iTWire analisou o estudo e fez algumas descobertas interessantes

O que parece agrave primeira vista (com perdatildeo do trocadilho) ser uma histoacuteria de sucesso na realidade natildeo eacute mdash nem de longe em primeiro lugar natildeo haacute economia alguma O que haacute satildeo apenas estimativas da Microsoft segundo as quais a empresa britacircnica Speedy Hire deveraacute economizar 200 mil libras por ano em de-corriencia da utilizaccedilatildeo do Windows

A anaacutelise do estudo disponiacutevel em artigo no site australiano iTWirecom faz um raio-X da ldquoeconomiardquo sugerida pela em-presa de Bill Gates Elas comeccedilam pelo hardware jaacute que no projeto foram utilizados terminais leves para Windows mdash que seriam inexplicavelmente mais baratos do que aqueles equipados com Linux O estudo natildeo menciona nem ldquoen passantrdquo que haacute

alternativas bem mais baratas aos modelos V90 da empresa Wyse equipados com Windows como

os V50 preacute-carregados com Linux Nesse esti-lo o artigo vai revelando de onde vieram as ldquoreduccedilotildees de custordquo obtidas pela Microsoft que vatildeo transformam em vapor agrave medida que

prosseguimos na leitura Estamos curiosos para saber o que sobra da economia de 1 milhatildeo de

libras apoacutes os cinco anos

copy Linux New Media do Brasil Editora Ltda

21

Google e Red Hat firmam parceria

A Red Hat assinou em dezembro um acordo com o Google para trazer os principais de-senvolvedores da empresa para a plataforma de construccedilatildeo de aplicaccedilotildees web Google Web Tookit Com o acordo estabelece-se tambeacutem o suporte do servidor de aplicaccedilotildees da Red Hat o JBoss ao GWT

Aleacutem da assinatura do acordo a Red Hat tambeacutem anunciou que jaacute completou algumas integraccedilotildees preliminares entre o GWT e o JBoss Seam Framework Com a integraccedilatildeo a empresa alavanca o Seam para que os desen-volvedores possam combinar o poder do Java agraves modernas tecnologias view-layer como GWT RichFaces e Spring para desenvolver os Rich Internet Applications

Linux Magazine 50 | Janeiro de 2009

| CORPORATENotiacutecias

Insigne jaacute planeja 2012A fornecedora do Insigne Momentum 50 quer manter sua po-siccedilatildeo de lideranccedila no Brasil e conquistar novos mercados in-clusive no exterior O sucesso de sua participaccedilatildeo no projeto de inclusatildeo digital Computador para Todos fez com que a Insigne Free Software do Brasil conquistasse forte posiccedilatildeo de lideran-ccedila no mercado dos PC populares e tambeacutem ficasse conhecida em outros paiacuteses Esse cenaacuterio positivo lhe permitiu iniciar ne-gociaccedilotildees com fabricantes estrangeiros de PC para embarcar o Insigne Momentum 50 sistema operacional de coacutedigo aberto em microcomputadores fora das fronteiras nacionais

Para atingir a meta de manter seu crescimento perante a perspectiva de elevaccedilatildeo das vendas de PCs nos proacuteximos anos a empresa contratou o consultor de estrateacutegia e professor de engenharia Carlos Roberto Lopes As atividades envolvidas no planejamento estrateacutegico incluem uma seacuterie de workshops com todas as equipes e departamentos da Insigne O objetivo eacute coletar impressotildees dos colaboradores e lhes apresentar as mais recentes mudanccedilas ocorridas no mercado global incluindo a atual situaccedilatildeo econocircmica mundial que poderaacute alterar a correlaccedilatildeo de forccedilas entre os fornecedores de tecnologia nos proacuteximos anos

De acordo com Joatildeo Pereira da Silva Jr presidente da Insigne esse planejamento incluiraacute natildeo apenas o foco no seu cliente que eacute o usuaacuterio do PC popular mas tambeacutem em toda a sua equipe de profissionais envolvidos em todas as etapas de desenvolvimento de um sistema operacional de coacutedigo abertordquo

VMware adquire Tungsten GraphicsA VMware adquiriu por um valor natildeo revelado as operaccedilotildees da empresa Tungsten Graphics fundada em 2001 e motor por traacutes do desenvolvimento da implementa-ccedilatildeo de coacutedigo aberto do OpenGL no Linux a biblioteca Mesa 3D

Aleacutem da Mesa 3D a empresa tambeacutem desenvolve o Gallium 3D framework para desenvolvimento de drivers graacuteficos 3D A Tungsten Graphics eacute formada por um grupo de desenvolvedores de aplicativos graacuteficos de coacutedigo aberto Segundo a FAQ no site da empresa o desenvolvimento dos projetos de coacutedigo aberto encabeccedilados por ela continuaraacute agora como parte das atividades da equipe de engenharia da VMware A aquisiccedilatildeo teria como objetivo melhorar o suporte a graacuteficos 3D em ambientes virtualizados

Mandriva demite dois desenvolvedoresA situaccedilatildeo financeira da Mandriva parece estar ruim Em dezembro a empresa anunciou que ao final de 2008 terminaria o contrato de dois de seus funcionaacuterios Adam Williams (na praacutetica o Community Manager) e o mantenedor de pacotes Oden Eriksson

Os dois desenvolvedores escreveram para a lista de emails do Cooker (Adam Williams Oden Eriksson) Enquanto Adam Williams eacute considerado por muitos como a base da co-munidade do Mandriva Oden manteacutem aproximadamente 1200 pacotes principalmente na aacuterea de servidores incluindo todos os pacotes do stack LAMP

Entretanto a comunidade do Mandriva natildeo pretende esperar sentada a efetivaccedilatildeo dessa decisatildeo Jaacute haacute uma peticcedilatildeo para tentar convencer a empresa a manter pelo me-nos Williams

copy Linux New Media do Brasil Editora Ltda

22 httpwwwlinuxmagazinecombr

CO

RP

OR

ATE

Entrevista com Armstrong Lemos chefe do departamento de TI da CAEMA

Saneada pelo LinuxO Linux entrou com forccedila na Companhia de Aacuteguas e Esgotos do Maranhatildeo proporcionando economia e ganhos fundamentais para a sauacutede da empresa por Pablo Hess

A Companhia de Aacuteguas e Esgo-tos do Maranhatildeo (CAEMA) eacute uma sociedade de economia

mista com capital de investimento predominantemente do Estado do Maranhatildeo Fundada haacute 42 anos a CAEMA atua no fornecimento de aacutegua coleta e tratamento de esgotos Atua em 146 municiacutepios maranhenses com abastecimento de aacutegua sendo que somente em trecircs (Satildeo Luis Im-peratriz e Barreirinhas) faz a coleta de esgotosLinux Magazineraquo Como e por que a CAEMA comeccedilou a usar LinuxArmstrong Lemosraquo A CAEMA opera com deacuteficit de quase R$ 5 milhotildees por mecircs que satildeo repassados pelo governo do estado para comple-mentaccedilatildeo das despesas Isso muito se deve a sua funccedilatildeo social que eacute a de universalizaccedilatildeo do abastecimento de aacutegua no estado Natildeo eacute uma ati-vidade meramente econocircmica mas tambeacutem social

O sistema comercial jaacute foi bloque-ado por falta de pagamento Quanto mais a CAEMA ampliava sua rede de atendimento mais caro pagava pelo uso do sistema sendo que a empresa prestadora mantinha relaccedilatildeo de pou-ca paciecircncia com os atrasos no paga-mento que deveriam ser realizados no dia cinco de cada mecircs Como a

companhia possuiacutea e ainda possui di-ficuldades de arrecadaccedilatildeo esse prazo nem sempre era cumprido

Outros fatores aliados a esse contri-buiacuteram para que no iacutenicio da gestatildeo da atual diretoria se iniciasse um pro-cesso de diagnoacutestico geral da empresa Com esse estudo ficou clara a situa-ccedilatildeo em que se encontravam diversos setores estrateacutegicos da companhia entre eles o de informaacutetica

Tiacutenhamos um parque de aproxi-madamente 500 maacutequinas com vaacuterios problemas principalmente adwares spywares e viacuterus Havia ainda proble-mas de conectividade e processamento em fun-ccedilatildeo do Windows natildeo se adequar ao perfil do hardware fazendo com que o equipamento ti-vesse baixa performan-ce As atualizaccedilotildees com Windows tornavam-se inviaacuteveis nos computa-dores com perfil padratildeo de dois ou mais anos

O departamento natildeo possuiacutea outra funccedilatildeo aleacutem do suporte de ma-nutenccedilatildeo de computado-res e impressoras muitos jaacute ultrapassados uma vez que o uacuteltimo investimen-

to feito em TI na companhia ocorreu no ano 2000

A telefonia as escolhas teacutecni-cas o gerenciamento de contratos de sistemas e outras atividades natildeo eram exercidas pelo departamen-to de informaacutetica Natildeo havia uma poliacutetica definida de TI na empresa e natildeo se dispunha de recursos para investimento Muitos dos sistemas utilizados pela empresa eram piratas e natildeo possuiacuteam suporte O banco de dados da companhia natildeo dispunha mais de suporte de software e o de-partamento de informaacutetica natildeo tinha

Armstrong Lemos chefe do departamento de TI da CAEMA

copy Linux New Media do Brasil Editora Ltda

23Linux Magazine 50 | Janeiro de 2009

| CORPORATECAEMA

conhecimento dos relacionamentos dos dados contidos nele

Apoacutes o diagnoacutestico e reuniotildees so-licitou-se agrave diretoria administrativa da empresa agrave qual a informaacutetica eacute subordinada para que submetesse ao conselho de administraccedilatildeo o resta-belecimento das funccedilotildees relativas agrave aacuterea de TI incluindo telefonia

Aleacutem dessas accedilotildees de retomada das atribuiccedilotildees estruturamos uma equipe de programaccedilatildeo uma equipe de projetos estrateacutegicos e reestrutu-ramos a equipe de suporte teacutecnico tudo isso para viabilizar a poliacutetica de Software Livre da CAEMA

LMraquo Em que consiste essa poliacutetica de Software LivreALraquo Estabelecemos vaacuterias etapas como o desenvolvimento do Livre Linux e do sistema de protocolo via Web a migraccedilatildeo do sistema comer-cial (GSAN) a formaccedilatildeo de monito-res de treinamento e o treinamento dos usuaacuterios na soluccedilatildeo completa (GSAN Livre Linux BrOfficeorg e sistema de protocolo) seguida pela articulaccedilatildeo do Movimento Software Livre Maranhatildeo

LMraquo Como foi a evoluccedilatildeo do uso do Software Livre dentro da empresaALraquo Precisaacutevamos resolver dois fatores que impediam o avanccedilo da politica de Software Livre na empresa o sistema de protocolo em Windows e o sistema comercial tambeacutem em Windows e com arquitetura cliente-servidor Aleacutem disso determinou-se a substituiccedilatildeo deles por um novo sistema que per-mitisse a ampliaccedilatildeo da nossa rede de atendimento e que ainda propiciasse a autonomia no gerenciamento dos dados da companhia

O sistema de protocolo foi resol-vido a partir do desenvolvimento do sistema livre Balula feito pela equi-pe de programaccedilatildeo e Software Livre da CAEMA Hoje o protocolo estaacute agrave disposiccedilatildeo dos demais oacutergatildeos puacutebli-cos para serem implementados sem

qualquer custo adicional atraveacutes de parceria sem ocircnus entre a CAEMA e o oacutergatildeo interessado

Ainda em novembro todos os computadores de atendimento co-mercial das unidades da CAEMA passaram a utilizar o Livre Linux como sistema operacional

LMraquo Como eacute a situaccedilatildeo atualALraquo Hoje utilizamos o GSAN com banco de dados PostgreSQL Com isso estamos ampliando o atendi-mento aos municiacutepios onde nosso sistema comercial antigo natildeo fun-cionava pois era inviabilizado pelo custo alto de contrataccedilatildeo de serviccedilos de transmissatildeo de dados junto agraves operadoras locais Atualmente com uma simples conexatildeo via raacutedio que existe em todos os municiacutepios onde a CAEMA atua faremos a integraccedilatildeo com o novo sistema

Estatildeo rodando na plataforma Linux todos os sistemas Web (comercial protocolo frotas juriacutedico cadastro segunda via de contracheque) etc Estamos com Livre Linux nos setores de atendimento help desk adminis-trativo e em todos os servidores

Vamos estender essa implantaccedilatildeo para os demais setores salvo maacutequinas que possuam aplicativos em Windows sem similares no mundo Linux (que satildeo casos mais raros)

LMraquo Em quanto tempo a CAEMA espera obter o retorno do investi-mento em Software Livre

ALraquo O custo total foi de R$ 104 milhotildees para o sistema comercial e o banco de dados Isso representa uma economia de R$ 360 milhotildees ao lon-go de quatro anos somente nesses dois sistemas Os levantamentos sobre a substituiccedilatildeo do sistema operacional Windows por Linux do proprietaacuterio Microsoft Office pelo BrOfficeorg e programas pagos estatildeo sendo le-vantados o que poderaacute representar uma economia de aproximadamente meio milhatildeo de reais

LMraquo Quanto tempo durou a mi-graccedilatildeoALraquo Aproximadamente oito meses com um analista de sistemas da CAE-MA e mais dois analistas de sistemas quatro programadores e um analista de suporte e bancos de dados de nos-so prestador de serviccedilos (Domiacutenio) aleacutem de quatro analistas de sistemas e um DBA do IPAD

LMraquo Qual a opiniatildeo da direccedilatildeo da empresa sobre o Software LivreALraquo O convencimento junto agrave dire-toria foi de estabilidade e custo fi-nanceiro devido agrave situaccedilatildeo em que estaacutevamos Hoje haacute o reconhecimento quanto agraves soluccedilotildees implantadas e o estiacutemulo para a descoberta de novas alternativas A diretoria percebe as vantagens de total liberdade e au-tonomia de uso e configuraccedilatildeo das ferramentas livres que tornaram a migraccedilatildeo teacutecnica e economicamen-te viaacutevel

LMraquo E a sua opiniatildeo sobre o mer-cado de Software LivreALraquo O mercado de Software Livre no paiacutes estaacute maduro Muitas empresas estatildeo habilitadas para a execuccedilatildeo e a manutenccedilatildeo de projetos livres Seguindo essa tendecircncia grandes empresas tecircm accedilotildees nesse foco No entanto temos carecircncia de empresas privadas que prestem suporte a bancos de dados livres assim como eacute carente o uso desses bancos em aplicaccedilotildees comerciais proprietaacuterias

LMraquo O movimento Software Livre Maranhatildeo jaacute rendeu frutosALraquo No dia 14 de novembro reali-zamos o I Encontro de Articulaccedilatildeo de Software Livre Maranhatildeo para apresentar aos demais gestores de TI do Estado a alternativa de uso de Software Livre pelo governo e articulaccedilatildeo de um movimento in-dependente para fortalecimento dessa poliacutetica

copy Linux New Media do Brasil Editora Ltda

24 httpwwwlinuxmagazinecombr

Como participar da comunidade Open Souce

Cezar TaurionUma anaacutelise do desenvolvimento do kernel Linux

Haacute alguns dias li um interessante artigo de Jona-than Corbet ldquoHow to participate in the Linux Communityrdquo[1] Ele descreve como funciona

o processo de desenvolvimento do kernel Linux e eacute uma excelente fonte de referecircncia para quem estiver interessado em colaborar com a comunidade ou mes-mo conhecer como funciona por dentro o modelo de governanccedila de um projeto de coacutedigo aberto

O kernel Linux tem mais de 6 milhotildees de linhas de coacutedigo e aglutina mais de mil contribuidores ativos Eacute um dos maiores projetos de coacutedigo aberto do mun-do Seu sucesso tem atraiacutedo muitos colaboradores a maioria inclusive pertencendo a empresas que que-rem participar do projeto A questatildeo eacute como entrar e ser um participante ativo da comunidade

Cada comunidade Open Source tem suas proacuteprias regras de conduta e modelos de governanccedila Enten-der como funciona a comunidade que desenvolve o kernel eacute essencial para ser um colaborador e tam-beacutem abre ideacuteias para aprendermos como funciona um projeto Open Source

A primeira seccedilatildeo do artigo mostra a importacircncia de se inserir todo coacutedigo na aacutervore principal do ker-nel para se evitar a proliferaccedilatildeo de forks e futuras ldquobombas reloacutegiordquo Por exemplo um coacutedigo inse-rido no kernel principal passa a ser visto mantido e refinado por toda a comunidade resultando em coacutedigo de alta qualidade Quando o coacutedigo eacute man-tido separado natildeo soacute natildeo recebe contribuiccedilotildees ex-ternas como corre o risco de funcionalidade similar ser incorporada por outro desenvolvedor ao coacutedigo principal fazendo com que o coacutedigo isolado fique cada vez mais difiacutecil e custoso de ser mantido Esse alerta eacute feito porque muitas empresas envolvidas em projetos de software embarcado tendem a acre-ditar que seu coacutedigo pela sua especificidade deve ser mantido de forma isolada da aacutervore principal do kernel o que eacute um grande erro A seccedilatildeo tambeacutem descreve as razotildees por que toda contribuiccedilatildeo deve ser ldquoassinadardquo Eacute necessaacuterio para se evitar eventuais problemas de propriedade intelectual

A seccedilatildeo dois eacute bem interessante pois descreve como funciona o processo de desenvolvimento do kernel e a nomenclatura usada para designar as diversas versotildees

Explica tambeacutem como eacute criado uma versatildeo estaacutevel e o ciclo de vida dos patches Descreve como um patch eacute inserido no kernel e cita alguns dados curiosos A seccedilatildeo tambeacutem descreve as regras de etiqueta da comunidade na troca de mensagens e o uso das listas de email

As outras seccedilotildees descrevem o processo de plane-jamento da evoluccedilatildeo do kernel debatendo as etapas de avaliaccedilatildeo as discussotildees com a comunidade para definir o que e como seraacute feito os estilos de escrita (que garantem a qualidade do coacutedigo) as ferramen-tas de depuraccedilatildeo usadas a documentaccedilatildeo que deve ser gerada e assim por diante

A seccedilatildeo seis mostra como deve ser feito o tra-balho em colaboraccedilatildeo Cada patch eacute revisado por desenvolvedores que vocecirc natildeo conhece o que mui-tas vezes pode gerar algum desconforto Existem algumas recomendaccedilotildees de como se portar nessas situaccedilotildees meio desagradaacuteveis e de como evitar dis-cussotildees desgastantes Trabalhar em colaboraccedilatildeo eacute um exerciacutecio ao qual muitos desenvolvedores natildeo estatildeo acostumados Para muita gente ter um estra-nho revisando seu coacutedigo e expondo as falhas em puacuteblico eacute no miacutenimo desconfortaacutevel

Enfim a leitura desse documento eacute obrigatoacuteria para todos que estejam realmente interessados em conhecer mais a fundo o que eacute o movimento Open Source e os aspectos do desenvolvimento colabora-tivo que o caracterizam

CORPORATE

Mais informaccedilotildees

[1] Jonathan Corbet ldquoHow to participate in the Linux Communityrdquo httpldnlinuxfoundationorgbookhow-participate-linux-community

Sobre o autor

Cezar Taurion (ctaurionbribmcom) eacute geren-te de novas tecnologias aplicadas da IBM Bra-sil e editor do primeiro blog da Ameacuterica Latina do Portal de Tecnologia da IBM developerWorks Seu blog estaacute disponiacutevel em httpwww-03ibmcomdeveloperworksblogspagectaurion

CORPORATE

copy Linux New Media do Brasil Editora Ltda

25

Argumentando em favor do Software Livre

Jon lsquomaddogrsquo HallA comunidade do Coacutedigo Aberto natildeo dispotildee de um seacutequumlito de advogados e consultores de marketing e comunicaccedilatildeo Quando se trata de argumentar em favor do Software Livre vocecirc provavelmente teraacute que assumir esse papel

A ldquocenardquo juriacutedica envolvendo o Software Li-vre estaacute sempre em movimento Decisotildees de tribunais e accedilotildees governamentais estatildeo

sempre reformulando o panorama legal e tecircm efei-tos bruscos na ldquotemperaturardquo do desenvolvimento desse tipo de aplicaccedilatildeo

Uma lei proposta recentemente tinha por obje-tivo ajudar a eliminar a pornografia infantil mas foi modificada para limitar todo e qualquer tipo de liberdade na Internet a ponto de ndash nas palavras de um dos legisladores ndash dificultar o desenvolvimento de tecnologias como redes mesh

No mecircs passado escrevi sobre minha experiecircncia em testemunhar perante uma assembleacuteia nacional sobre uma lei considerada pioneira relativa ao mun-do open source Muito embora oportunidades como essa natildeo apareccedilam todos os dias eacute surpreendente a frequumlecircncia com que os governos ndash em todos os niacute-veis ndash satildeo confrontados com toacutepicos relacionados agrave comunidade open source

Seu governo local tambeacutem gasta dinheiro com software Algumas diretorias de escola gastam mes-mo milhares de doacutelares em aplicativos proprietaacuterios mesmo que suas contrapartes de coacutedigo aberto este-jam disponiacuteveis a um preccedilo muito inferior A maio-ria dos governos locais e das diretorias das escolas dispotildeem entretanto de um tempo para ouvir o cidadatildeo ndash e vocecirc poderia usar esse tempo para lhes dizer o que vocecirc pensa a respeito disso Melhor ain-da vocecirc poderia reunir um grupo de amigos com os mesmos ideais para argumentar em favor do uso de Software Livre

Se vocecirc for chamado para avaliar uma proposta de regulamentaccedilatildeo ou orccedilamento certifique-se de tecirc-la estudado profundamente Natildeo deixe de co-nhecer os poliacuteticos eleitos envolvidos no processo Com frequumlecircncia poliacuteticos locais estatildeo dispostos a discutir esses toacutepicos com vocecirc diretamente E se vocecirc marcar uma reuniatildeo natildeo se esqueccedila de ldquoestar apresentaacutevelrdquo (como sua matildee provavelmente diria)

e de manter a calma lanccedilando matildeo de uma argu-mentaccedilatildeo plausiacutevel

A maneira mais simples de se envolver em niacutevel nacional com esse tipo de legislaccedilatildeo eacute por meio de uma carta A maioria dos legisladores possui um email mas eles recebem milhares de mensagens todos os dias e a sua pode simplesmente ldquose afogarrdquo nesse oceano sem jamais ter sido lida Uma carta tradicional impressa e assinada pode receber mais atenccedilatildeo do que um email e uma carta enviada via portador como encomenda expressa ou registrada tem ainda maiores chances de ser notada Natildeo se esqueccedila de usar um corretor ortograacutefico ao escre-ver ndash nem de deixar algueacutem mais ler a carta antes de enviaacute-la como medida para garantir que o con-teuacutedo esteja inteligiacutevel

Cartas para editores de publicaccedilotildees tambeacutem satildeo eficazes Oficiais de governo ndash bem como cidadatildeos interessados que podem ser persuadidos por argu-mentos bem formulados ndash lecircem jornais Cartas concisas com argumentos claros satildeo preferiacuteveis a cartas longas sem um objetivo claramente definido Evite criticar o caraacuteter dos proponentes da legislaccedilatildeo a que vocecirc se opotildee Em vez disso concentre seus comentaacuterios no conteuacutedo

Se vocecirc busca um modo simples de se envolver no movimento em torno do Software Livre observe as oportunidades para dar a sua opiniatildeo sobre leis regulamentaccedilotildees e decisotildees de compra que afetem de algum modo o ecossistema open source O esfor-ccedilo eacute vaacutelido jaacute que manter os braccedilos cruzados natildeo eacute uma alternativa capaz de lhe dar voz ativa nesse tipo de processo

Sobre o autorJon lsquomaddogrsquo Hall eacute presidente da Linux International insti-tuiccedilatildeo internacional dedicada a promover o Linux e o Software Livre e de Coacutedigo Aberto Maddog viaja o mundo ministrando palestras e debatendo com decisores sobre o uso do Software Livre em acircmbito tanto corporativo quanto comunitaacuterio

CORPORATE

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

26 httpwwwlinuxmagazinecombr

CORPORATE

Nova lei de call center Oacutetima oportunidade para TI

Edgar SilvaHaacute inuacutemeras tecnologias de coacutedigo ou padrotildees abertos que podem ajudar a superar as dificuldades decorrentes da nova lei de call centers

ldquoO brasileiro mesmo com todas as adver-sidades eacute um povo criativo que na dificuldade cria oportunidadesrdquo Essa

afirmaccedilatildeo cabe muito bem quando observarmos a nova lei para call centers Afinal quem nunca ficou esperando horas numa linha telefocircnica e repetindo nuacutemero de documentos nome da matildee endereccedilo etc O decreto visa natildeo soacute a melhorar a vida de todos que precisam dos serviccedilos de empresas de telefonia fixa e moacutevel TV a cabo e outros mas tambeacutem ge-rar novos empregos assim como oportunidades de negoacutecios que eacute o tema deste artigo

Certamente em razatildeo da tradicional morosidade dos atendimentos de call center o comportamento padratildeo de noacutes consumidores eacute procurar alternativas Uma delas foi a Internet o que fez com que as em-presas investissem em portais para evitar o gargalo no atendimento de suas redes e tambeacutem porque re-presenta um aumento no atendimento sem elevar os custos Entatildeo por que natildeo criar novos canais de atendimento A tecnologia Java e algumas especi-ficaccedilotildees padrotildees e projetos open source fazem a diferenccedila nessa induacutestria de atendimento

Java por exemplo eacute extensamente utilizado Dentre os inuacutemeros motivadores destaco liberda-de de escolha de seus fornecedores a existecircncia de padrotildees da induacutestria que garantem maior ROI bem como facilidade de obtenccedilatildeo e formaccedilatildeo de profissionais Java conta com alguns padrotildees de tecnologia que ajudam principalmente a aprovei-tar parte do legado permitindo novos canais de interaccedilatildeo com os clientes Por exemplo os com-ponentes ou serviccedilos que atendem um navegador web podem tambeacutem atender uma chamada te-lefocircnica uma interaccedilatildeo SMS ou ateacute mesmo um canal VoIP via Skype

Entre as tecnologias disponiacuteveis cito as APIs padrotildees JSR116-SIP Servlets 10 [1] e JSR289-SIP Servlets 11 [2] que possibilitam a interaccedilatildeo com servidores SIP (Session Initiation Protocol) protocolo que dentre inuacutemeras funcionalidades estabelece

chamadas de voz via Internet O funcionamento do SIPServlet eacute similar ao do Servlet tradicional Java entretanto em vez de interagir com o protocolo HTTP estaacute apto a processar requisiccedilotildees e respostas do protocolo SIP Eacute por isso que seus componentes e serviccedilos podem ser reaproveitados

O Mobicents [3] tambeacutem eacute uma soluccedilatildeo que combina aleacutem de SIP vaacuterios outros serviccedilos para o segmento de telecomunicaccedilotildees que por sua vez eacute a implementaccedilatildeo de referecircncia do padratildeo JS-LEE 10 que em resumo eacute uma complementaccedilatildeo do jaacute conhecido JEE (J2EE para os mais antigos) especiacutefico para a comunicaccedilatildeo de componentes existentes em arquiteturas que agrupam web Voip som e imagem

Outro portal open source com soluccedilotildees interes-santes eacute o Ignite Real Time [4] que hospeda proje-tos como o OpenFire servidor Jabber (XMPP) com inuacutemeros plugins entre eles para chamadas SIP e comunicaccedilatildeo com o legendaacuterio Asterisk

Mais informaccedilotildees

[1] JSR116 httpjcporgenjsrdetailid=116

[2] JSR289 httpjcporgenjsrdetailid=289

[3] Mobicents httpwwwmobicentsorg

[4] Ignite Real Time httpwwwigniterealtimeorg

Sobre o autor

Edgar A Silva (edgarsilvaredhatcom) eacute Middleware Technology Lead da Red Hat no Brasil com atuaccedilatildeo desde 1998 em objetos distribuiacutedos (Corba COM+ e Java) Edgar vem nos uacuteltimos anos pesquisando aplicando e ministrando pales-tras e treinamentos no Brasil e exterior sobre assuntos de alta tecnologia entre eles JavaEE e SOA

copy Linux New Media do Brasil Editora Ltda

Dicas de especialistas para conviver com o Windows

Integraccedilatildeo transparente Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo que vocecirc queira viver em um mundo de coacutedigo aberto ele ainda estaacute cheio de Windows A ediccedilatildeo deste mecircs traz um apanhado de estrateacutegias para facilitar o conviacutevio com o sistema operacional da Microsoft por Joe Casad e Rafael Peregrino da Silva

As redes de hoje contam com um sortimento consideraacutevel de sistemas e dispositivos

Se todos esses componentes natildeo precisassem se comunicar natildeo as chamariacuteamos de rede Mesmo que vocecirc sonhe com um mundo sem Windows ndash e a IBM se esforce para tornar seu sonho realidade ndash essa rea-lidade ainda estaacute um pouco distante Por conta disso a ediccedilatildeo deste mecircs traz diversos artigos versando sobre interoperabilidade e integraccedilatildeo de sistemas No nosso primeiro artigo examinamos algumas teacutecnicas para conexatildeo de clientes VPN para Linux a servidores Windows

Tambeacutem vamos mostrar alguns aplicativos Linux para gerenciamento de conexotildees a VPNs e descreveremos algumas teacutecnicas de resoluccedilatildeo dos problemas para fazer o sistema do pinguumlim funcionar com o protoco-lo PPTP usado em redes Windows No artigo seguinte abordamos a integraccedilatildeo de sistemas Linux a um ambiente Windows usando o famo-so (alguns diriam infame) Microsoft Active Directory lanccedilando matildeo para tanto do sistema de autenticaccedilatildeo Likewise Open O Likewise eacute uma ferramenta de coacutedigo aberto que fornece uma confi guraccedilatildeo faacutecil para autenticaccedilatildeo dos tipos single sign-on e Kerberos O terceiro artigo da ses-satildeo mostra como confi gurar o Linux como um servidor de terminais para clientes Windows utilizando o xrdp ndash uma implementaccedilatildeo de coacutedigo aberto do Remote Desktop Protocol

(RDP) da Microsoft Nesse artigo vocecirc vai entender por que o siste-ma das janelas natildeo eacute necessaacuterio no servidor para criar um ambiente de terminais Windows e aprenderaacute como fazer os usuaacuterios desse sistema visualizarem um desktop Linux na sua aacuterea de trabalho tudo isso em apenas alguns passos

Por uacuteltimo apresentamos um soft-ware de coacutedigo aberto para agenda-mento de tarefas muito mais comple-xo que o veneraacutevel Cron e que tem como uma de suas maiores vantagens o fato de ser multiplataforma ndash o que facilita muito a administraccedilatildeo de um ambiente heterogecircneo de servidores

Se vocecirc precisa conviver com o Windows por que natildeo vi-ver em paz e com con-

forto Se esse eacute o seu caso esperamos tornar a sua vida um pouco menos atribulada com esta ediccedilatildeo de inte-graccedilatildeo com as tecnologias da gigante de Redmond

CAPA

Linux Magazine 50 | Janeiro de 2009

Iacutendice das mateacuterias de capa

Rede fechada 28Na ativa 34O manda-chuva do terminal 40 Muito aleacutem do Cron 44

27copy Linux New Media do Brasil Editora Ltda

28 httpwwwlinuxmagazinecombr

Configurando conexotildees VPN em clientes Linux

Rede fechadaClientes Linux eventualmente precisam de uma matildeozinha para se conectar a servidores VPN do Windowspor James Stanger

Dois benefiacutecios de se usar tuacute-neis VPN (Virtual Private Networks ou redes virtuais

privadas) satildeo as conexotildees criptografa-das e o acesso aos recursos localizados atraacutes do firewall Quando a questatildeo eacute interoperabilidade entretanto confi-gurar essas conexotildees pode ser difiacutecil em clientes Linux As distribuiccedilotildees Linux frequumlentemente tecircm problemas em es-tabelecer conexotildees a VPNs em servido-res cuja tecnologia eacute baseada em outros sistemas operacionais especialmente porque os aplicativos graacuteficos utiliza-dos para configurar essas conexotildees normalmente natildeo conseguem manter

o mesmo ritmo de desenvolvimento do Linux que estaacute geralmente duas geraccedilotildees agrave frente delas Assim pouco tempo apoacutes as distribuiccedilotildees terem sido lanccediladas as bibliotecas usadas para a criaccedilatildeo de VPNs satildeo modificadas e o aplicativo que vocecirc utilizava para fazer esse tipo de conexatildeo simplesmente paacutera de funcionar em ambientes he-terogecircneos Recentemente houve um avanccedilo nessa situaccedilatildeo e este artigo daacute algumas dicas sobre como estabele-cer conexotildees a VPNs a partir de um desktop Linux

Uma VPN cria um tuacutenel ponto-a-ponto por meio de uma rede puacuteblica

Vaacuterios protocolos oferecem suporte a conexotildees VPN entre eles as seguintes alternativas bastante populares L2TP via IPsec Foi o primeiro

protocolo desenvolvido pela Cisco para criaccedilatildeo de tuacuteneis de acesso criptografados L2TPv3 eacute a versatildeo mais recente mas certifique-se de escolher a ver-satildeo apropriada para a sua rede Lembre-se de que haacute duas im-plementaccedilotildees de IPsec principais no Linux Por exemplo sistemas mais antigos usam FreeSWAN ou Openswan para IPsec Sis-temas mais recentes com qual-

CA

PA

Quadro 1 Problemas e soluccedilotildees

Ao resolver problemas em conexotildees certifique-se de es-tar com os moacutedulos instalados e carregados Por exem-plo num sistema Ubuntu 8041 uma conexatildeo PPTP precisa dos seguintes moacutedulos

ppp_mppe 8068 2ppp_async 13312 1crc_ccitt 3072 1 ppp_asyncppp_generic 29588 6 ppp_mppe ppp_asyncslhc 7040 1 ppp_genericppdev 10372 0

A MTU (unidade maacutexima de transmissatildeo) eacute outra configu-raccedilatildeo importante pode ser necessaacuterio reduzir o valor de 1500 para algo menor como 1490

Em caso de problemas lembre-se de ativar as opccedilotildees de depuraccedilatildeo no cliente ndash sempre eacute possiacutevel desativaacute-las depois As opccedilotildees de depuraccedilatildeo podem incluir especifi-car pacotes ICMP para testar uma conexatildeo assim como determinar o tamanho do intervalo de eco

Uma opccedilatildeo estranha mas eventualmente uacutetil eacute desativar a criptografia Obviamente com isso perdem-se os benefiacutecios da conexatildeo VPN A maioria dos servidores rejeita conexotildees sem criptografia mas ainda assim essa opccedilatildeo pode ser de alguma ajuda para eliminar fontes de problemas

O mascaramento de IP e outras formas de NAT tambeacutem im-potildeem alguns problemas para conexotildees VPN Se estiverem sendo usados ESP ou AH (cabeccedilalhos de autenticaccedilatildeo) por exemplo haveraacute problemas com o NAT pois o AH executa uma verificaccedilatildeo que inclui valores como o endereccedilo IP da conexatildeo Como o NAT modifica o endereccedilo IP a verificaccedilatildeo falharaacute e portanto tambeacutem a comunicaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

29

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

quer versatildeo do kernel da seacuterie 26 dispotildeem de suporte nativo a Ipsec

Point-to-Point Tunneling Pro-tocol (PPTP) trata-se de um protocolo antigo que ainda eacute usado em diversos ambientes Microsoft

Secure Sockets LayerTransport Layer Security (SSLTLS) eacute um dos mais poderosos protocolos de interoperabilidade disponiacute-veis atualmente fornecendo suporte para muitos tipos de conexotildees VPN O OpenVPN [1] por exemplo eacute uma solu-ccedilatildeo para criaccedilatildeo de tuacuteneis de acesso criptografados baseada em SSLTLS

Com o passar dos anos jaacute houve muitas discussotildees sobre qual proto-colo eacute o mais seguro ou qual seria mais favoraacutevel ao modelo de desen-volvimento de coacutedigo aberto Muitas dessas discussotildees chegaram a assumir um teor quase religioso Poreacutem em vez de se envolver em tais discussotildees eacute mais uacutetil simplesmente descobrir qual dos protocolos funciona melhor para o seu tipo de rede em particular e entatildeo adotaacute-lo

Qualquer que seja o protocolo usado para criar o tuacutenel eacute possiacutevel enviar pacotes atraveacutes dele os quais seratildeo considerados pelo firewall como pacotes internos A chave como veremos a seguir eacute se certificar de que os pacotes certos atravessem a interface correta do tuacutenel

O ambiente Linux dispotildee de diversas ferramentas para configu-rar e gerenciar conexotildees VPN O utilitaacuterio KVpnc do projeto KDE oferece suporte para vaacuterias tecnolo-gias VPN (da Cisco passando pela Microsoft e culminando no Open-VPN) O vpnc eacute um programa de linha de comando para sistemas Cisco Muitas distribuiccedilotildees Linux passaram a usar o NetworkManager [2] desenvolvido pela Red Hat que

permite instalar extensotildees para redes Cisco e Microsoft Dependendo da tecnologia VPN que vocecirc pretende usar vocecirc teraacute que instalar a exten-satildeo apropriada

O pptpconfig [3] eacute um aplicativo antigo que funciona especialmente bem para distribuiccedilotildees Linux da Red Hat e da Novell bem como com BSDs e vaacuterios outros sistemas Como o nome sugere o pptpconfig eacute usado para gerenciar VPNs basea-dos em tecnologia Microsoft

Criando um tuacutenelIndependentemente de qual aplicati-vo ou protocolo for usado eacute necessaacuterio obter algumas informaccedilotildees baacutesicas para estabelecer uma conexatildeo com sucesso Por exemplo Informaccedilotildees sobre autenti-

caccedilatildeo dependendo do que o administrador da rede exigir seraacute preciso fornecer informa-ccedilotildees especiacuteficas a respeito do usuaacuterio para se autenticar no servidor VPN A alternativa menos segura (embora mais comum) eacute fornecer um nome de usuaacuterio e uma senha Outras opccedilotildees incluem chaves priva-das e certificados A Cisco daacute preferecircncia ao uso de chaves e certificados por exemplo

Gateway (tambeacutem conhecido popularmente como nome do servidor VPN) eacute o endereccedilo IP

ou nome do equipamento VPN que fornece o tuacutenel depois da autenticaccedilatildeo

Tipo de protocolo como dis-cutido acima eacute necessaacuterio es-colher entre os protocolos exis-tentes tais como L2TP PPTP OpenVPN etc A ferramenta de configuraccedilatildeo vai solicitar que sejam especificadas as opccedilotildees adequadas para o(s) protocolo(s) escolhido(s)- pelo administrador da rede

Configuraccedilotildees gerais qualquer que seja o protocolo de autenti-caccedilatildeo seraacute preciso fornecer in-formaccedilotildees especiacuteficas para a sua conexatildeo Por exemplo algumas redes solicitam a configuraccedilatildeo de uma unidade maacutexima de transmissatildeo (do inglecircs Maximum Transmission Unit o famigerado MTU) especiacutefica o aplicativo permite que sejam realizadas as modificaccedilotildees especiacuteficas para a conexatildeo em questatildeo

Informaccedilotildees de roteamento natildeo importa os tipos de proto-colo ou autenticaccedilatildeo escolhi-dos normalmente tambeacutem eacute necessaacuterio assegurar-se de que os pacotes certos estatildeo de fato sendo roteados atraveacutes da inter-face correta

Assim eacute certo depender da ajuda de um administrador de redes compre-

Quadro 2 Preso do lado de fora

Conforme satildeo feitos experimentos com a conexatildeo VPN certifique-se de que sua conta natildeo seja trancada do lado de fora A maioria das VPNs tem dificuldade em diferenciar entre experimentos com a configuraccedilatildeo e tentati-vas de invasatildeo Se vocecirc ficar trancado de fora natildeo conseguiraacute entrar nem mesmo com as configuraccedilotildees corretas

Se ficar impossiacutevel conectar-se preste atenccedilatildeo ao arquivo de log e agraves men-sagens de depuraccedilatildeo para verificar se as mensagens de autenticaccedilatildeo e conexatildeo mudaram de alguma forma uma mudanccedila sutil pode indicar que se estaacute na verdade trancado do lado de fora da conta Se for esse o caso seraacute preciso esperar a conta ser desbloqueada Com sorte essa limitaccedilatildeo seraacute temporaacuteria Caso contraacuterio seraacute preciso contatar o administrador da rede cada vez que ocorrer esse imprevisto

copy Linux New Media do Brasil Editora Ltda

30 httpwwwlinuxmagazinecombr

CAPA | VPNS

ensivo para ajudar o usuaacuterio a obter as informaccedilotildees listadas acima

PPTP com Microsoft Mesmo que o protocolo PPTP seja considerado menos seguro que o da Cisco ou o OpenVPN ele ainda eacute bastante popular Para confi gurar uma conexatildeo PPTP haacute um grande rol de opccedilotildees de autenticaccedilatildeo com-pressatildeo e criptografi a

Um dos desafi os eacute escolher o meacute-todo de autenticaccedilatildeo Autenticaccedilatildeo direta ( peer authentication ) signifi -ca que o servidor solicitaraacute que o cliente se identifi que As opccedilotildees para essa modalidade de autentica-ccedilatildeo incluem Challenge Handshake Authenti-

cation Protocol (CHAP) proto-colo padratildeo em conformidade com o RFC correspondente Basta fornecer um nome de usuaacuterio e uma senha para se autenticar MS-CHAP eacute a im-plementaccedilatildeo do protocolo pela Microsoft Se o administrador da rede natildeo revelar o protocolo empregado use o MS-CHAP no caso de servidores Windows

EAP eacute uma extensatildeo do pro-tocolo de autenticaccedilatildeo PPP original que permite o uso de um certifi cado em vez de nome de usuaacuterio e senha Me-nos comum do que MS-CHAP e CHAP

Muitos clientes oferecem a opccedilatildeo de recusar todos esses meacutetodos de autenticaccedilatildeo Para trabalhar bem com um servidor VPN remoto talvez a melhor opccedilatildeo seja usar diretamente o daemon PPP do seu sistema Compactar os dados para trans-

missatildeo pela VPN tambeacutem eacute uma boa ideacuteia Geralmente haacute trecircs opccedilotildees de compressatildeo

Microsoft Point-to-Point Com-pression (MPPC) protocolo an-tigo baseado no algoritmo LZ e geralmente reservado a clientes Windows antigos (Windows 95 e NT) Contudo pode funcionar em outras VPNs

Defl ate compression protocolo similar ao MPPC mas livre de patentes Eacute mais universal que

o MPPC mas raramente usado em VPNs Microsoft

BSD compression descrito na RFC 1977 eacute o protocolo de compressatildeo tradicional

O tipo de compressatildeo geralmente causa problemas nas conexotildees Caso o administrador da rede natildeo coope-re eacute melhor tentar primeiro uma conexatildeo sem compressatildeo

A confi guraccedilatildeo da criptografi a tambeacutem eacute importante O Microsoft Point-to-Point Encryption (MPPE) eacute um subconjunto do MPPC Pode-se usar dois comprimentos de chave di-ferentes 40 bits e 128 bits Empresas de muitos paiacuteses usam apenas cha-ves de 40 bits Na confi guraccedilatildeo de clientes PPTP o administrador deve informar o comprimento da chave Senatildeo basta testar ateacute descobrir

Stateful MPPE geralmente eacute a melhor opccedilatildeo de criptografi a uma vez que fornece conexotildees de rede mais raacutepidas Como veremos mais agrave frente eacute necessaacuterio habilitar o moacutedulo MPPE para qualquer uma dessas confi guraccedilotildees

DNS A maioria dos clientes DNS pergunta se deve usar as informaccedilotildees de DNS em etcresolvconf ou aquelas for-necidas pelo servidor VPN A proacutepria conexatildeo VPN pode causar modifi ca-ccedilotildees na resoluccedilatildeo de DNS principal-

Figura 2 Criaccedilatildeo de rotas no cliente NetworkManager

Figura 1 Criaccedilatildeo de rotas no cliente VPN KVpnc

copy Linux New Media do Brasil Editora Ltda

31

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

mente porque o cliente VPN altera o conteuacutedo do arquivo etcresolvconf mesmo quando confi gurado ex-plicitamente para natildeo fazecirc-lo

A melhor soluccedilatildeo eacute usar um clien-te VPN que funcione da forma que se espera Na falta de tal soluccedilatildeo pode-se contornar o problema crian-do um script que faccedila uma coacutepia do arquivo etcresolvconf correto Quando o cliente VPN pergunta se deve ldquorealizar acessos ao DNS atra-veacutes do tuacutenelrdquo geralmente o que ele realmente quer dizer eacute se pode alte-rar o arquivo etcresolvconf com seus novos dados A escolha correta depende de informaccedilotildees fornecidas pelo administrador da rede Se o ob-jetivo natildeo for usar o DNS da VPN seraacute difiacutecil o cliente acessar as outras maacutequinas detraacutes da VPN

Suporte ao GRE Para conectar um cliente a uma VPN Microsoft atraveacutes de um fi -rewall Linux haacute um ajuste extra a ser feito nele para que tudo funcio-ne a ativaccedilatildeo do protocolo Generic Route Encapsulation (GRE) para atravessar o fi rewall Supondo o uso do iptables no fi rewall Linux e um servidor VPN com o endereccedilo 18944453 eacute necessaacuterio executar o seguinte comando

iptables -I FORWARD -p 47 -d 18944453 -j ACCEPT

Roteamento Pode ser necessaacuterio rotear pacotes ex-plicitamente atraveacutes de uma interface especiacutefi ca Muitos administradores de sistemas Windows consideram esse um dos maiores desafi os do trabalho com clientes Linux

A necessidade de rotear pacotes explicitamente eacute especialmente importante quando a rede remota utiliza IPs puacuteblicos Mesmo que seja usado um tuacutenel VPN a in-

terface de rede ainda pode tentar rotear pacotes pela Internet em vez de simplesmente usar o tuacutenel Satildeo muito frequumlentes problemas em conexotildees VPN cuja soluccedilatildeo eacute sim-plesmente adicionar algumas rotas alternativas agrave tabela de roteamento padratildeo do sistema Isso pode ser feito tanto com o aplicativo graacutefi co de confi guraccedilatildeo do VPN quanto pela linha de comando com os utilitaacuterios route ou iproute

route add -net 131639723 netmask 255255255255 dev ppp0 ou iproute

ip route add 17187445424 dev ppp0

Em alguns casos sem essas rotas

natildeo eacute possiacutevel fazer com que os paco-tes que deveriam trafegar pela VPN realmente o faccedilam e eles acabam saindo pela placa de rede

Figura 3 KVpnc com uma sessatildeo PPTP legada

Figura 4 Importaccedilatildeo de um certifi cado Cisco no KVpnc

copy Linux New Media do Brasil Editora Ltda

32 httpwwwlinuxmagazinecombr

CAPA | VPNS

Interface graacutefi ca Os aplicativos graacutefi cos para confi gu-raccedilatildeo de VPNs estatildeo fi cando cada vez melhores quando se trata de adicionar as rotas necessaacuterias auto-maticamente A fi gura 1 mostra as confi guraccedilotildees para o KVpnc A fi gura 2 ilustra uma confi guraccedilatildeo similar no NetworkManager

Assim como essas capturas de tela ilustram pacotes que coincidam com o endereccedilo IP e a maacutescara de rede defi nidos natildeo seratildeo enviados atraveacutes da conexatildeo de rede padratildeo mas simpelo tuacutenel VPN

O KVpnc ( fi gura 3 ) disponiacutevel em vaacuterias distribuiccedilotildees talvez seja o mais versaacutetil entre os clientes atuais pois oferece suporte a L2TP aos protocolos VPN tanto livres quanto proprietaacuterios da Cisco ao OpenVPN e ao PPTP da Microsoft O KVpnc tambeacutem permite a importaccedilatildeo de certifi cados conforme mostra a fi gura 4

Apesar de os desenvolvedores da interface graacutefi ca do programa terem cometido alguns deslizes ortograacutefi -

cos na interface os desenvolvedores do KVpnc realmente criaram um produto que trabalha parti-cularmente bem em conjunto com dispo-sitivos Cisco

O veneraacutevel pptp-config tambeacutem estaacute disponiacutevel em muitas distribuiccedilotildees O se-gredo para o sucesso no seu uso pptpconfig estaacute na confi guraccedilatildeo da criptografi a usada pelo programa que precisa ser exatamen-te aquele previsto pelo administrador

Com frequumlecircncia eacute importante usar de criptografi a MPPE e habilitar o modo stateful desse proto-

colo No caso do pptpconfig seria preciso selecionar Require Microsoft Point-to-Point Encryption (MPPE) e Refuse Stateless Encryption para conseguir isso

O pptpconfig tambeacutem tem capaci-dade de adicionar rotas automatica-mente Simplesmente clique na aba Routing marque o botatildeo Client to LAN e digite as rotas dos sistemas que devem ser conectados pela VPN

Muitos usuaacuterios Linux preferem o NetworkManager por um simples motivo ele costuma funcionar Haacute plugins para ele que suportam vaacuterios protocolos incluindo OpenVPN Microsoft PPTP e L2TP Apoacutes insta-laacute-los basta clicar no iacutecone de rede e selecionar as conexotildees VPN para comeccedilar a fornecer as informaccedilotildees apropriadas A fi gura 5 mostra as etapas para confi gurar uma conexatildeo Cisco num sistema Ubuntu

O NetworkManager suporta a criptografi a por chave compartilhada quanto por certifi cado X509 Para fazecirc-lo funcionar adequadamente

eacute preciso instalar o daemon racoon para fazer a troca de chaves pela In-ternet Depois deve-se obter com o administrador da rede a chave com-partilhada e os certifi cados assinados caso eles sejam usados

IPsec e kernel 26 Certifi que-se de instalar os daemons certos para a conexatildeo Se o sistema utilizar alguma versatildeo do kernel 26 ele jaacute suporta nativametne o IPsec mas se for usado o KVpnc ou o vpnc ainda seraacute preciso instalar o daemon racoon que se encarrega da troca de chaves em implementaccedilotildees IPsec Se o racoon natildeo estiver disponiacutevel no re-positoacuterio da distribuiccedilatildeo em questatildeo basta conferir o site do projeto [4]

Para suportar o FreeSWAN o padratildeo antigo para o IPsec eacute pre-ciso instalar o daemon ipsec caso contraacuterio a implementaccedilatildeo falharaacute pois o sistema natildeo conseguiraacute con-duzir as trocas de senha necessaacuterias ao estabelecer o tuacutenel

Conclusatildeo Estabelecer uma VPN hoje em dia eacute muito mais faacutecil mas os clien-tes VPN graacutefi cos ainda natildeo fazem tudo pelo usuaacuterio Apesar de ainda ser trabalhoso fazer a comunicaccedilatildeo com servidores Microsoft Cisco e OpenVPN basta uma certa dedica-ccedilatildeo para se obter sucesso

Mais informaccedilotildees

[1] OpenVPN httpopenvpnnet

[2] NetworkManager httpwwwgnomeorgprojectsNetworkManager

[3] pptpclient httppptpclientsourceforgenet

[4] Rasvpn httpwwwnetbsdorgdocsnetworkipsecrasvpnhtml

Figura 5 Confi guraccedilatildeo de VPN Cisco no NetworkManager

copy Linux New Media do Brasil Editora Ltda

33

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

Linux Pro novo (julho) 77 251108 172941

copy Linux New Media do Brasil Editora Ltda

34 httpwwwlinuxmagazinecombr

Integraccedilatildeo faacutecil ao Active Directory com o Likewise Open

Na ativaO Likewise Open oferece integraccedilatildeo faacutecil a ambientes Active Directory Mostramos como instalar e configurar o sistema de autenticaccedilatildeo amigaacutevel para administradorespor Walter Neu

O sistema de autenticaccedilatildeo Li-kewise Open [1] integra clien-tes Linux ao ambiente Active

Directory Obviamente tambeacutem eacute possiacutevel configurar o Active Directory pelo Samba e seus atores coadjuvantes [2] mas a soluccedilatildeo da Likewise oferece vaacuterios benefiacutecios para facilitar a confi-guraccedilatildeo e a administraccedilatildeo

A versatildeo gratuita e GPL do Likewi-se suporta autenticaccedilatildeo em diretoacuterios AD a autorizaccedilatildeo de serviccedilos ldquoker-berizadosrdquo e ateacute o recurso de single sign-on Isso pode se parecer bastante com o Samba que faz as mesmas coisas na verdade o gerente de pro-jetos da Likewise Gerald Carter eacute um antigo membro da equipe central

de desenvolvimento do Samba O Likewise Open se aproveita do tra-balho do Samba embora acrescente diversos recursos proacuteprios

Pacotes prontosHaacute pacotes do Likewise para distri-buiccedilotildees da Red Hat Novell e Cano-nical aleacutem de alguns sistemas Unix comerciais e do MacOS X

O site do Likewise exibe a versatildeo 50 embora os pacotes especiacuteficos por distribuiccedilatildeo incluam a versatildeo 4 usada neste artigo Usuaacuterios do Ubuntu tecircm agrave disposiccedilatildeo os pacotes likewise-open e likewise-open-gui no repositoacuterio Uni-verse Os pacotes do Likewise incluem vaacuterias dependecircncias ndash primordialmente

relacionadas ao Kerberos O Likewise Open se baseia na versatildeo MIT do Ker-beros como back-end [3] Durante a instalaccedilatildeo no Ubuntu o pacote pede para o administrador especificar os servidores Kerberos e administrativo (figuras 1 e 2)

Aleacutem de um servidor AD e uma estrutura de domiacutenio gerenciada pelo Windows o Likewise possui dois ou-tros requisitos um servidor de nomes funcional e um reloacutegio do sistema sincronizado Se os reloacutegios do cliente e do servidor estiverem mais de cinco minutos fora de sincronia o servidor Kerberos certamente se recusaraacute a emitir tiacutequetes por medida de segu-ranccedila para evitar ataques

Nova abordagemAdicionar um sistema Linux ldquocrurdquo a um domiacutenio exige certo trabalho de configuraccedilatildeo [2] O Likewise Agent faz a maior parte desse trabalho adi-cionando-se ao Name Service Switch (NSS) e aos Pluggable Authentication Modules (PAM) no cliente local

No lado do servidor o agente re-passa as requisiccedilotildees de autenticaccedilatildeo ao servidor Kerberos 5 e ao AD base-ado em LDAP Para permitir que isso aconteccedila o pacote instala algumas bi-bliotecas e arquivos de configuraccedilatildeo Por exemplo liblibnss_lwidentityso integra o Likewise ao NSS e etcpamdpam_lwidentityso faz o mesmo para o PAM O arquivo de configu-

CA

PA

Figura 1 O gerenciador de pacotes do Ubuntu pede o nome do servidor Kerberos ao se instalar os pacotes do Kerberos

copy Linux New Media do Brasil Editora Ltda

35

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

raccedilatildeo etcsecuritypam_lwidentityconf configura o moacutedulo e a interface do controlador de domiacutenio remoto eacute implementada pelo servidor Winbind do Likewise o likewise-winbindd O servior tem seu proacuteprio arquivo de configuraccedilatildeo etcsambalwiauthdconf semelhante ao arquivo smbconf do pacote Samba

O Likewise Open integra esses com-ponentes para suportar um login de domiacutenio transparente para os usuaacuterios O processo de login repassa o nome do usuaacuterio e sua senha para o PAM O moacutedulo pam_lwidentityso se comuni-ca com o serviccedilo de autenticaccedilatildeo do Likewise que gera uma chave secreta a partir do nome e da senha do usuaacute-rio O daemon do Likewise utiliza a chave secreta para solicitar um tiacutequete para solicitaccedilatildeo de tiacutequetes (TGT na nomenclatura do Kerberos) ao ser-vidor de autenticaccedilatildeo Kerberos que roda como parte do Key Distribution Center (KDC) no servidor AD

Ao apresentar o TGT o serviccedilo de autenticaccedilatildeo do Likewise recebe tiacutequetes de serviccedilo para outros ser-viccedilos de rede como SSH Os usuaacute-rios entatildeo jaacute podem fazer logon nos servidores kerberizados sem digitar suas senhas novamente

Configure o pacote de instalaccedilatildeo do Likewise em cada maacutequina Li-nux que vai se tornar um membro do domiacutenio AD (e ser gerenciada pelo Likewise) Se forem usados os pacotes de instalaccedilatildeo fornecidos no site o Likewise Open seraacute instalado com uso de um Bitrock Installer ndash um executaacutevel cujo nome de arquivo ter-mina com installer Para executar o programa eacute preciso tornar-se root e seguir as instruccedilotildees na tela

O instalador exibe informaccedilotildees sobre as licenccedilas de coacutedigo aberto dos componentes instalados antes de o Likewise instalar seus arquivos Depois disso o instalador leva o ad-ministrador ao domainjoin-cli que se localiza no diretoacuterio usrcente-risbin (violando as-sim as convenccedilotildees do FHS [4] os pacotes das distribuiccedilotildees e as versotildees mais recentes do Likewise corrigem esse erro) O agente ar-mazena informaccedilotildees de log em varloglw-identity ndash se for usada a versatildeo do repositoacuterio do Ubuntu ndash em varloglikewise-open

Pode entrarUm domiacutenio AD precisa que os siste-mas usuaacuterio e cliente tornem-se mem-bros dele O ato de criar uma conta de maacutequina no serviccedilo de diretoacuterio da Microsoft eacute chamado no idioma do AD de ldquojuntar-se ao domiacuteniordquo (ou ldquoJoining the domainrdquo em inglecircs)

Haacute uma ferramenta de linha de co-mando chamada domainjoin-cli que permite que o usuaacuterio root se junte ao domiacutenio AD criando uma conta de maacutequina no diretoacuterio nesse processo A ferramenta domainjoin-cli aceita a opccedilatildeo join e o domiacutenio como argumen-tos O argumento do domiacutenio precisa ser especificado como um nome DNS completamente qualificado

Aleacutem disso o comando espera o nome de um usuaacuterio com autorizaccedilatildeo para criar contas de computador no ambiente AD O exemplo 1 mostra um computador chamado ubuntu se juntando ao domiacutenio exemploorg A conta Administrator possui os privileacute-gios necessaacuterios para essa etapa

A segunda opccedilatildeo para se juntar a um domiacutenio eacute a interface graacutefica do Likewise Open (figura 3) Poreacutem a interface natildeo estaacute incluiacuteda no pacote baacutesico do programa Para acrescentaacute-la simplesmente instale o pacote likewise-open-gui e inicie-o com privileacutegios de root digitando domainjoin-gui

Manual e automaacuteticoNos dois casos o Likewise Open lida com a tarefa de configuraccedilatildeo em se-gundo plano eliminando a necessi-

Figura 2 Eacute preciso especificar o servidor administrativo para o domiacutenio do Kerberos

Exemplo 1 Juntando-se a um domiacutenio

01 domainjoin-cli join exampleorg Administrator02 Joining to AD Domain exampleorg03 With Computer DNS Name ubuntuexampleorg04 05 AdministratorEXAMPLEORGrsquos password06 Enter AdministratorEXAMPLEORGrsquos password07 SUCCESS

copy Linux New Media do Brasil Editora Ltda

36 httpwwwlinuxmagazinecombr

CAPA | Likewise

dade de etapas manuais complexas O software modifica as configuraccedilotildees para interaccedilatildeo do usuaacuterio com o AD (figura 4) incluindo os arquivos neces-saacuterios para a comunicaccedilatildeo do Kerberos com o KDC krb5conf e os arquivos do PAM em etcpamd

Para fazer login usando um domiacutenio de cliente Linux os usuaacuterios precisam de um diretoacuterio home no cliente O Likewise cria o diretoacuterio localmente se for modificado o arquivo etcse-curitypam_lwidentityconf

O arquivo etcnsswitchconf faz o Likewise Open retomar o controle e especifica o meacutetodo lwidentity O servi-ccedilo de nomes do NSS verifica primeiro arquivos locais como etcpasswd

passwd files lwidentitygroup files lwidentity

Se ele natildeo conseguir encontrar uma conta ele acessa o AD em se-guida Isso significa que usuaacuterios lo-cais ainda podem acessar a maacutequina local caso o AD falhe

Configuraccedilatildeo cuidadosaO Likewise eacute cuidadoso na configura-ccedilatildeo do sistema Linux Ele cria becapes de todos os arquivos que modifica acrescentando um sufixo lwid-entitybak e por um bom motivo executar domainjoin-cli leave como root na li-nha de comando ou na interface graacutefica apaga a conta da maacutequina

Nesse caso o Likewise recupera todos os arquivos de configuraccedilatildeo que tive-

rem sido alterados Ele usa o arquivo etcsambalwiauthdconf para permitir que os ad-ministradores especifiquem opccedilotildees de configuraccedilatildeo para seu proacuteprio sistema Winbind essas configuraccedilotildees devem ser familiares agravequeles que utilizam o Samba num am-biente AD

Configuraccedilatildeo individualO paracircmetro template shell define o shell de login para todos os usuaacuterios de forma centralizada O diretoacuterio home do usuaacuterio natildeo eacute definido no banco de dados de usuaacuterios do AD portanto eacute preciso especificar o caminho no ar-quivo de configuraccedilatildeo com o paracircmetro template homedir do Samba

template shell = binbashtemplate homedir = homeDU

O Likewise-Winbind substitui D pelo nome de domiacutenio curto e U pelo usuaacuterio do domiacutenio

Para evitar colisotildees de nomes em relacionamentos de confianccedila faz sentido adicionar o domiacutenio ao caminho do usuaacuterio ndash e aplicar os padrotildees para diretoacuterios dos usuaacuterios Se a configuraccedilatildeo natildeo for alterada o Likewise Open usaraacute a contra-barra como separador de domiacutenios e nomes de usuaacuterios Obviamente a contrabarra possui um significado especial em shells Unix Os especia-listas recomendam mudar isso para outro caractere em todos os clientes usando a variaacutevel winbind separator A sugestatildeo eacute o sinal +

Se houver apenas um domiacutenio eacute possiacutevel definir winbind use default domain = yes para evitar separar o domiacutenio dos nomes de usuaacuterios Se isso natildeo for feito os usuaacuterios do domiacutenio fornecidos pelo Winbind natildeo funcionaratildeo a menos que se adicione um prefixo de domiacutenio Reiniciar o Likewise Open por seu script de inicializaccedilatildeo aplica as mudanccedilas

VerbosoO pacote likewise-open conteacutem trecircs ferramentas de diagnoacutestico ndash lwinet lwimsg e lwiinfo ndash uacuteteis para fins de depuraccedilatildeo entre outros

Exemplo 2 klist exibe os tiacutequetes locais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081208 134808 081208 234808 krbtgtEXAMPLEORGEXAMPLEORG07 renew until 081908 13480808 081208 134808 081208 234808 SUSE$EXAMPLEORG09 renew until 081908 134808

Figura 3 A interface do Likewise Open pede o nome DNS do domiacutenio e os nomes das maacutequinas

copy Linux New Media do Brasil Editora Ltda

37

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

Como o Likewise se baseia no coacutedigo do Winbindd do Samba as ferramentas vatildeo lidar com as tarefas normalmente realizadas pelo dae-mon Winbind do Samba Digitando lwiinfo eacute possiacutevel verificar a conexatildeo ao controlador do domiacutenio

A ferramenta corresponde ao wbin-fo do Samba As duas consultam o daemon do Winbind Por exemplo o lwiinfo -u lista todos os usuaacuterios do domiacutenio padratildeo

EXAMPLE+mokr000EXAMPLE+phkr000EXAMPLE+wane000

O mesmo princiacutepio se aplica a grupos no serviccedilo de diretoacuterio que satildeo exibidos pela opccedilatildeo -g Isso ga-rante que o Linux saiba os nomes do AD O comado lwiinfo -g lista os grupos conhecidos

EXAMPLE+contasEXAMPLE+marketing []

Novamente o Likewise usa o ca-ractere + configurado em lwiauthdconf como separador no Winbind A ferramenta lwimsg corresponde ao smbcontrol e eacute usada para controlar o Winbindd definindo o niacutevel de depuraccedilatildeo por exemplo A contra-parte da ferramenta net do Samba usada para administraccedilatildeo remota de um domiacutenio eacute o lwinet

Apoacutes instalar o software eacute uma boa ideacuteia tentar fazer logon no AD O

formato do nome do usuaacuterio precisa corresponder agravequele definido para o serviccedilo de diretoacuterio Por exemplo se for mantida a configuraccedilatildeo padratildeo para separaccedilatildeo entre o domiacutenio e o nome do usuaacuterio mas o separador for alterado para o sinal de soma os usuaacuterios precisaratildeo digitar seus nomes como DOMIacuteNIO+usuaacuterio no login pelo console ou por um gerenciador de desktop (veja a fi-gura 5)

ubuntu Login EXAMPLE+wane000PasswordEXAMPLE+wane000ubuntu~$

Conforme mencionado anterior-mente o Likewise autentica usuaacute-rios pelo protocolo Kerberos por meio da requisiccedilatildeo de um TGT ao KDC antes de prosseguir agrave instala-ccedilatildeo local do tiacutequete no cliente como tmpkrb5cc_UID (veja o exemplo 2) O comando klist exibe os tiacutequetes vaacutelidos de um usuaacuterio

O usuaacuterio que posuir um tiacutequete tem permissatildeo para acessar serviccedilos kerberizados na rede sem fazer logon separadamente no serviccedilo de rede

Single sign-onPara permitir que um serviccedilo de rede decirc acesso sem senha a um usuaacuterio o administrador precisa atribuir um Service Principal Name (SPN) ao serviccedilo O SPN identifica o serviccedilo dentro do ambiente AD O serviccedilo pede um tiacutequete de serviccedilo para o Service Principal ao KDC identifi-cando-se com seu TGT

O SPN compreende uma defi-niccedilatildeo de serviccedilo seguida por uma barra e o hostname completamente qualificado do servidor um siacutembolo de arroba e o domiacutenio

Figura 4 Depois de entrar no domiacutenio o Likewise cria uma conta de maacutequina para o computador Ubuntu no Active Directory

Figura 5 O GDM pede um nome para login na autenticaccedilatildeo Neste AD o nome eacute composto pelo nome do domiacutenio (EXAMPLE) um sinal + e o nome do usuaacuterio

copy Linux New Media do Brasil Editora Ltda

38 httpwwwlinuxmagazinecombr

CAPA | Likewise

As definiccedilotildees de serviccedilos incluem host ftp ou pop Se um usuaacuterio es-tabelecer uma conexatildeo SSH com outro computador membro de um AD gerenciado pelo Likewise o serviccedilo kerberizado apresentaraacute o TGT do usuaacuterio e pediraacute um tiacute-quete de serviccedilo ao KDC para por exemplo o SPN hostubuntuexam-pleorgEXAMPLEORG ndash isso pressupotildee que o cache local de tiacutequetes ainda natildeo tenha um tiacutequete O tiacutequete de serviccedilo conteacutem o ID do usuaacuterio que faz a requisiccedilatildeo e a chave da sessatildeo O Likewise Open criptograva isso com a chave do servidor e a arma-zena no cache de usuaacuterios como o TGT (exemplo 3)

O cliente SSH envia automati-camente o tiacutequete de serviccedilo crip-tografado e um timestamp tambeacutem criptografado para validar o sshd do autenticador Isso garante que cada requisiccedilatildeo de tiacutequete seja uacutenica enquanto assegura que o cliente re-almente natildeo possui a chave da ses-satildeo Sem o autenticador seria mais faacutecil para um agressor capturar um tiacutequete no traacutefego da rede e iniciar um ataque de repeticcedilatildeo

O servidor valida o tiacutequete de ser-viccedilo apresentado a ele Para isso ele faz referecircncia ao arquivo etckrb5keytab local Esse arquivo armazena a chave do servidor que o usuaacuterio utiliza para decifrar o tiacutequete de serviccedilo revelando assim a chave da sessatildeo O autenticador se baseia na chave da sessatildeo caso tenha sucesso o usuaacuterio eacute autenticado sem neces-sidade de senha (figura 6)

ConexatildeoO Likewise Open configura automa-ticamente clientes SSH preacute-existen-tes e outros clientes ao se juntarem ao domiacutenio permitindo que usem o Kerberos para se autenticarem no futuro No lado do servidor o Likewise adiciona as linhas

GSSAPIAuthentication yesGSSAPICleanupCredentials yes

ao arquivo de configuraccedilatildeo etcsshsshd_config O Likewise tambeacutem acrescenta as seguintes linhas para um cliente SSH

GSAPIAuthentication yesGSSAPIDelegateCredentials yes

A instruccedilatildeo GSSAPIDelegateCreden-tials passa o TGT para o servidor de des-tino Para todas as outras configuraccedilotildees o software utiliza a Generic Security Ser-vices API (API de serviccedilos geneacutericos de seguranccedila GSSAPI) uma interface ge-neacuterica para serviccedilos de seguranccedila como o Kerberos

Figura 6 O Likewise implementa o single sign-on por meio do Kerberos Os usuaacuterios natildeo precisam digitar uma senha para fazer logon

Exemplo 4 Montagem de compartilhamentos Samba

01 ltxml version=rdquo10rdquo encoding=rdquoUTF-8rdquogt02 ltpam_mountgt03 ltvolume user = ldquordquo04 server = ldquoSAMBASERVERrdquo05 mountpoint = ldquohomeEXAMPLE(USER)Documentrdquo06 path = ldquo(USER)rdquo07 fstype = ldquosmbfsrdquo gt08 ltpam_mountgt

Exemplo 3 Tiacutequetes no cache de credenciais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081308 154829 081408 014830 krbtgtEXAMPLEORG EXAMPLEORG07 renew until 082008 15482908 081308 154830 081408 014830 SUSE$EXAMPLEORG09 renew until 082008 15482910 081308 154838 081408 014830 hostubuntuexampleorg11 renew until 082008 15482912 081308 154838 081408 014830 hostubuntuexampleorgEXAMPLEORG13 renew until 082008 154829

copy Linux New Media do Brasil Editora Ltda

39

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

LocalNa primeira vez em que um usuaacuterio do domiacutenio faz logon num cliente o Likewise Open usa o PAM (pam_lwidentityso) para criar diretoacuterios locais para esse usuaacuterio Alterna-tivamente o moacutedulo pam_mount pode montar diretoacuterios centrais do usuaacuterio num servidor remoto por SMBCIFS [5] Isso garante a todos os usuaacuterio o acesso a seus proacuteprios arquivos independentemente do cliente usado por eles no login O compartilhamento eacute definido por uma linha no arquivo etcsecuri-typam_mountconf que usa a palavra-chave volume

volume usuaacuterio sistema_de_arquivos servidor compartilhamento ponto_de_montagem opccedilotildees algoritmo caminho

A presenccedila de um curinga () no paracircmetro usuaacuterio faz o moacutedulo inserir o nome do usuaacuterio Sistema_de_arquivos pode ser smbfs ou cifs O servidor pode ser um IP ou um nome NetBIOS e compartilhamento pode usar o amp como curinga para o nome do usuaacuterio

Os trecircs uacuteltimos paracircmetros geral-mente natildeo satildeo necessaacuterios traccedilos satildeo aceitaacuteveis nesse caso montar o diretoacuterio Documentos ou o diretoacuterio home completo eacute questatildeo de gosto e depende de como a empresa orga-niza seus servidores centrais

Caso o ponto de montagem natildeo exista o moacutedulo pam_mount do PAM o cria se sua opccedilatildeo mkmountpoint 1 estiver presente Na versatildeo 029 o pam_mount armazena as configura-ccedilotildees num formato XML equivalente conforme mostra o exemplo 4

Antes das linhas sufficient na seccedilatildeo auth de etcpamd eacute possiacutevel inserir uma linha para o moacutedulo O exemplo 5 mostra uma configuraccedilatildeo nos arquivos common-auth e common-session no Ubuntu Para evitar a necessidade de os usuaacuterios digitarem suas senhas repetidamente a linha tr_first_pass = yes do arquivo etcsecuritypam_lwidentityconf ativa a opccedilatildeo para tentar novamente uma senha jaacute digitada antes

Versatildeo comercialAleacutem da versatildeo de coacutedigo aberto do Likewise a corporaccedilatildeo america-na Likewise Software oferece uma versatildeo comercial de seu software o Likewise Enterprise [6] A versatildeo comercial possui suporte a poliacuteticas de grupo no AD aleacutem das funciona-lidades oferecidas pela versatildeo livre o produto define aproximadamente 500 poliacuteticas padratildeo O Likewise Ad-ministrative Console eacute capaz de usar uma maacutequina Linux ou Unix para gerenciar registros do AD

Aleacutem disso tudo o Likewise En-terprise suporta desktops Linux que fazem referecircncia ao AD para obten-ccedilatildeo de configuraccedilotildees e restriccedilotildees Isso

ativa a implementaccedilatildeo de poliacuteticas estritas de seguranccedila A variante corporativa estaacute disponiacutevel gratuita-mente para fins de avaliaccedilatildeo ou por US$ 250 na versatildeo para servidores A empresa oferece dois niacuteveis de suporte comercial

Nova caraUma vez configurado o Likewi-se Open oferece o mesmo escopo funcional de uma combinaccedilatildeo de Samba Kerberos PAM e NSS Ele livra o administrador de vaacuterias tarefas monoacutetonas e repetitivas de configu-raccedilatildeo e suporta o gerenciamento de usuaacuterios centralizado e independente de plataforma O serviccedilo de autenti-caccedilatildeo por tiacutequetes do Kerberos e o single sign-on satildeo bocircnus

Quem se interessar pelo Likewi-se Open pode apreciar os recursos adicionais oferecidos pela versatildeo co-mercial ou os benefiacutecios do suporte profissional O uacutenico trabalho ma-nual que resta para o administrador eacute o gerenciamento centralizado dos diretoacuterios dos usuaacuterios

Mais informaccedilotildees

[1] Likewise Open httpwwwlikewisesoftwarecomproductslikewise_open

[2] Walter Neu ldquoDomando os catildees do infernordquo httplnmcombrarticle2424

[3] Kerberos MIT httpwebmitedukerberos

[4] Padratildeo Hieraacuterquico de Arquivos (FHS) httpwwwpathnamecomfhs

[5] Montagem de diretoacuterios home com PAM httppam-mountsourceforgenet

[6] Likewise Enterprise httpwwwlikewisesoftwarecomproductslikewise_enterprise

Exemplo 5 Configuraccedilatildeo do pam_mount

01 etcpamdcommon-auth02 auth required pam_mountso03 auth sufficient libsecuritypam_lwidentityso04 auth requisite pam_unixso nullok_secure try_first_pass05 auth optional pam_smbpassso migrate missingok0607 etcpamdcommon-session08 session optional pam_mountso09 auth sufficient libsecuritypam_lwidentityso10 session required pam_unixso

copy Linux New Media do Brasil Editora Ltda

40 httpwwwlinuxmagazinecombr

Serviccedilo RDP Linux para clientes de terminal Windows

O manda-chuva do terminal

O xrdp ajuda os seus clientes de terminal Windows a se conectarem ao Linuxpor Kenneth Hess

A conexatildeo de desktops remotos do Windows no Linux ge-ralmente consome bastante

banda da rede eacute insegura e difiacutecil de configurar E se um sistema Windows pudesse se conectar a um sistema Linux tatildeo facilmente quanto o faz com outro sistema Windows ndash utili-zando para isso o mesmo aplicativo usado para conectar originalmente ao Windows

O xrdp eacute uma implementaccedilatildeo de coacutedigo aberto do RDP (Remote Desktop Protocol ndash ou Protocolo de Ambiente de Trabalho Remoto na

traduccedilatildeo em portuguecircs) o protoco-lo usado nos serviccedilos de terminal do Windows para conexatildeo nativa a desktops Windows O Pacote xrdp fornece a funcionalidade RDP bem como um servidor graacutefico que seja capaz de aceitar conexotildees do rdesktop [1] e de clientes de serviccedilos de ter-minais Windows

Uma vez conectado e autenticado no servidor RDP Linux o usuaacuterio remoto teraacute disponiacutevel um ambiente de trabalho Linux em modo graacutefico E o melhor eacute que natildeo eacute necessaacuterio executar um servidor graacutefico na maacute-quina com Windows nem eacute preciso exportar a tela do Linux para o com-putador com Windows

Configurar o servidor RDP no Linux eacute faacutecil e leva apenas alguns minutos Para os usuaacuterios novatos de Linux ou os administradores de sistemas Windows segue a lista de requisitos necessaacuterios para fazer o sistema funcionar uma conta de usuaacuterio padratildeo

na maacutequina Linux acesso remoto ou ao console do

servidor Linux acesso com privileacutegios administrati-

vos (de root) no servidor Linux

Tambeacutem ajuda se vocecirc souber al-guma coisa sobre RDP e sobre a otimizaccedilatildeo da configuraccedilatildeo de um cliente RDP

Instalaccedilatildeo e configuraccedilatildeoPara nos certificarmos de que esta-mos usando a versatildeo mais recente do xrdp vamos instalaacute-lo a partir do coacutedigo-fonte Haacute pacotes do pro-grama para algumas distribuiccedilotildees o que pode facilitar a instalaccedilatildeo e a integraccedilatildeo agrave distribuiccedilatildeo Poreacutem o objetivo deste artigo eacute possibili-tar a instalaccedilatildeo em qualquer sis-tema Assim baixe o coacutedigo-fonte do pacote xrdp [2] descompacte-o e compile-o

$ tar zxvf xrdp-041targz$ cd xrdp-041$ make

Em seguida instale-o usando pri-vileacutegios de root

make install

Os arquivos executaacuteveis scripts e bibliotecas seratildeo instalados no diretoacuterio usrlocalxrdp e os arquivos de con-figuraccedilatildeo no diretoacuterio etcxrdp

A documentaccedilatildeo do aplicativo eacute um pouco obscura sobre o que fazer a seguir Embora tenhamos decidido no comeccedilo natildeo mudar nenhum dos paracircmetros nos arquivos sesmanini e xrdpini disponiacuteveis em etcxrdp e tenhamos abordado a situaccedilatildeo

CA

PA

Figura 2 Forneccedila seu usuaacuterio e sua senha do sistema Linux

Figura 1 Janela de conexatildeo com o desktop remoto

copy Linux New Media do Brasil Editora Ltda

41

| CAPAxrdp

como um administrador de sistemas Windows assumindo que as coisas iriam funcionar sem necessidade de muitos ajustes agrave configuraccedilatildeo nesse ponto essa abordagem comeccedila a se tornar frustrante

Uma vez com o sistema instala-do os seguintes comandos devem ser executados como root

cd usrlocalxrdp cp xrdp_controlsh etcinitdxrdp_control

Em seguida em distribuiccedilotildees derivadas do Red Hat os seguintes comandos se aplicam

chkconfig --add xrdp_control

chkconfig xrdp_control on service xrdp_control start

Jaacute em distribuiccedilotildees derivadas do De-bian esses satildeo os comandos

update-rcd xrdp_control defaults update-rcd xrdp_control start 80 3 4 stop 0 1 6 etcinitdxrdp_control start

O script xrdp_controlsh controla os serviccedilos de ativaccedilatildeo desativaccedilatildeo e reinicializaccedilatildeo do pro-grama Ao copiar o script para o diretoacuterio etcinitd pode-se retirar a ex-tensatildeo sh por motivos esteacuteticos ndash nenhum ou-tro script desse diretoacuterio possui essa extensatildeo em-bora todos sejam scripts de shell

Em sistemas baseados em FedoraRed Hat o comando chkconfig eacute um utilitaacuterio para atualizar e buscar informaccedilotildees sobre o niacutevel de execuccedilatildeo para serviccedilos de sistema ma-nipulando os vaacuterios links simboacutelicos em etcinitd para ali-viar um pouco os administradores de

sistema da tarefa tediosa de editar os links simboacuteli-cos e a necessi-dade de manipu-lar esses serviccedilos manualmente

Haacute pacotes para esse apli-cativo disponiacute-veis para outras distribuiccedilotildees como Debian e Ubuntu mas o correto eacute usar a ferramenta ade-quada para a sua distribuiccedilatildeo

Assim para criar um novo serviccedilo de inicializaccedilatildeo copie seu script de controle para etcinitd confor-me mostrado acima e entatildeo use o comando chkconfig para ativaacute-lo A linha chkconfig xrdp_control on de-fine os niacuteveis de execuccedilatildeo (runlevels) do serviccedilo (ver tabela 1) Por exemplo o comando chkconfig --level 35 xrdp_control configura o xrdp_con-trol para funcionar nos niacuteveis de execuccedilatildeo 3 e 5 O uacuteltimo comando na listagem acima inicia os serviccedilos sesman e xrdp

Para se conectar ao serviccedilo RDP no servidor Linux a partir de um PC com Windows basta fazer exatamente como se faria com um servidor Win-dows como mostra a figura 1

O cliente RDP abre uma nova janela conforme ilustrado na figura 2 solicitando o nome de usuaacuterio e a senha que satildeo aqueles configu-rados no servidor Linux Forneccedila um nome e uma senha vaacutelidos e clique em OK Mesmo que a maacute-quina Linux esteja configurada para usar um domiacutenio do serviccedilo Active Directory ainda seraacute preciso adicio-nar cada usuaacuterio aos sistemas Linux que se desejar acessar via RDP Para fazer isso crie primeiramente um grupo para todos os usuaacuterios do serviccedilo RDP

Tabela 1 Niacuteveis de execuccedilatildeo no Linux

0 Desligar

1 Modo monousuaacuterio

2 Multiusuaacuterio sem NFS

3 Multiusuaacuterio completo

4 Natildeo utilizada

5 X11 (graacutefico)

Detalhe haacute distribuiccedilotildees que utilizam o niacutevel 4 como ambiente graacutefico semelhante ao niacutevel 5

Figura 3 Registro do gerenciador de sessatildeo da conexatildeo xrdp

Figura 4 Uma conexatildeo com o desktop pronta para usar

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

42 httpwwwlinuxmagazinecombr

CAPA | xrdp

groupadd rdpusers useradd -g rdpusers fulano passwd fulano

Caso o usuaacuterio jaacute exista no sis-

tema use o comando usermod para adicionaacute-lo ao grupo de usuaacuterios do serviccedilo RDP

usemod -G rdpusers fulano

Embora natildeo seja explicitamente necessaacuterio para o acesso um grupo especial simplifi ca a administraccedilatildeo do sistema Forneccedila agora o nome do usuaacuterio criado e a sua senha e entatildeo clique em OK

A tela mostrada na figura 3 de-veraacute aparecer Essa eacute a janela de registro do gerenciador de sessotildees da conexatildeo que ilustra a negocia-ccedilatildeo entre o cliente e o servidor Perceba que o gerenciador de ses-sotildees conecta primeiramente agrave porta associada ao serviccedilo RDP e entatildeo agrave porta de um serviccedilo VNC para entatildeo apresentar o desktop Linux a vocecirc A figura 4 mostra um desktop CentOS 5

Quando desconectando de uma sessatildeo RDP em Linux vocecirc veraacute a tela mostrada na fi gura 5 Perceba que somente duas accedilotildees estatildeo dis-poniacuteveis Encerrar sessatildeo atual e Cancelar que satildeo recursos padratildeo de conexotildees VNC remotas

O servidor Linux executa os progra-mas xrdp e sesman e fi ca aguardando co-nexotildees RDP Assim que um cliente de serviccedilos de terminais Windows tenta se conectar ao servidor RDP o servidor e o cliente negociam um niacutevel de criptografi a trocam chaves e veri-fi cam quais recursos estatildeo disponiacuteveis A partir daiacute o cliente escolhe a quantidade de cores e a resoluccedilatildeo da tela que seraacute usada na sessatildeo

Se o usuaacuterio fornecer um nome e uma senha no aplicativo cliente a autenticaccedilatildeo eacute iniciada Caso con-traacuterio o usuaacuterio seleciona o moacutedu-lo de uma lista do tipo drop-down e fornece um usuaacuterio e uma senha na tela de login conforme ilustra a fi gura 6

O moacutedulo libvnc eacute carregado e uma conexatildeo TCP eacute feita para o endereccedilo 127001 ou para o en-dereccedilo IP especifi cado no arquivo etcxrdpxrdpini As credenciais de login do usuaacuterio a resoluccedilatildeo da tela e a quantidade de cores satildeo fornecidas ao aplicativo sesman para fi ns de autenticaccedilatildeo Se o sesman

encontrar uma sessatildeo ativa com a resoluccedilatildeo e a quantidade de cores especifi cadas ele retor-na essa tela ao usuaacute-rio Caso contraacuterio ele inicia uma nova instacircncia xvnc com as especifi caccedilotildees de am-biente do usuaacuterio

Conclusotildees O xrdp eacute faacutecil de ins-talar confi gurar cus-tomizar e usar E ndash o que eacute melhor ndash natildeo eacute

necessaacuterio experiecircncia em Linux para trabalhar com essa poderosa ferra-menta Como natildeo haacute o que instalar no cliente Windows natildeo daacute para se complicar com o xrdp

Muito embora este artigo natildeo mostre qualquer tipo de anaacutelise ex-tensiva de desempenho de rede ou uso de banda com esse aplicativo como se trata de RDP eacute sabido que a performance comeccedila a cair quando o nuacutemero de usuaacuterios simultacircneos conectados se aproxima da marca de 25 Contudo vale a pena conhe-cer o xrdp e integraacute-lo ao seu arse-nal de ferramentas independentes de plataforma

Sobre o autor Ken Hess eacute editor de material teacutecnico e jornalista freelance Ele escreve sobre uma grande variedade de temas envolvendo sistemas de coacutedigo aberto entre eles Li-nux bancos de dados e virtualizaccedilatildeo Agradecimentos especiais a Jay Sorg do projeto xrdp e a Matt Chapman do proje-to rdesktop pela ajuda no desenvolvimen-to deste artigo

Mais informaccedilotildees

[1] rdesktop httpwwwrdesktoporg

[2] xrdp httpxrdpsourceforgenet

Figura 5 Janela de fi nalizaccedilatildeo de sessatildeo do VNC

Figura 6 Tela de login do xrdp

copy Linux New Media do Brasil Editora Ltda

43

| CAPAxrdp

Linux Magazine 50 | Dezembro de 2008

SE

CcedilAtilde

O

pocket_atualizadoindd 61 261108 142709

copy Linux New Media do Brasil Editora Ltda

44 httpwwwlinuxmagazinecombr

A possibilidade de realizar uma certa tarefa num momento especiacutefico ou em intervalos

regulares eacute obrigatoacuteria para adminis-tradores de sistemas O cron daemon original oferece um meacutetodo faacutecil para agendar tarefas em sistemas baseados em Unix Embora o Cron tenha recebido diversas melhorias ao longo dos anos suas versotildees mais recentes ainda satildeo projetadas para agendamentos muito simples Administradores que precisam de algo minimamente incomum satildeo obrigados a criar scripts ou a incluir os recursos de que precisam em um dos scripts iniciados pelo Cron

Imagine quanto tempo seria eco-nomizado se natildeo fosse mais neces-saacuterio criar e alterar esses scripts ou ter qualquer outro trabalho para fazer com que os programas rea-jam a condiccedilotildees de erro e sejam executados na exata hora em que deveriam Vaacuterios produtos comer-

ciais oferecem esse recurso mas podem significar uma mordida no orccedilamento de TI Felizmente o mundo do Coacutedigo Aberto tambeacutem oferece soluccedilotildees de agendamento aleacutem do Cron

Assim como em qualquer software de agendamento a unidade primaacuteria eacute o job ou tarefa que geralmente eacute um script ou programa iniciado pelo software de agendamento Em vaacuterios casos o Cron eacute suficiente para suprir os requisitos mais baacutesicos de agen-damento tais como executar uma tarefa uma vez por dia (becapes por exemplo) ou tarefas que precisem ser executadas em intervalos mais frequumlentes menos frequumlentes ou em datas especiacuteficas

Poreacutem quando comeccedilamos a lidar com dependecircncias de algum tipo rapidamente eacute possiacutevel perceber as limitaccedilotildees do Cron ndash por exemplo se for necessaacuterio iniciar um progra-ma especiacutefico apoacutes um certo evento

Haacute casos de verdadeiras seacuteries de co-mandos que precisam ser executados em ordem e precisam todos ter su-cesso ndash se um dos comandos falhar a execuccedilatildeo dos seguintes causaria grandes problemas Nem as versotildees mais novas do Cron conseguem li-dar com isso principalmente se for necessaacuterio iniciar uma tarefa jaacute no meio da cadeia de comandos

Muitas tarefas precisam ser ge-renciadas em muacuteltiplas maacutequinas entatildeo um bom software de agen-damento permite que se gerencie todas as maacutequinas a partir de um ponto central inicie tarefas remo-tamente e assim por diante Para distribuir crontabs para essas maacutequi-nas remotas pode-se usar o Rsync mas isso rapidamente se torna um pesadelo administrativo quando a configuraccedilatildeo eacute diferente ao longo das maacutequinas ou quando as tare-fas agraves vezes precisam ser iniciadas manualmente ou ainda quando haacute

CA

PA

O agendador Open Source Job Scheduler

Muito aleacutem do CronPlanejar e agendar tarefas computacionais pode exigir muito trabalho principalmente se abranger muacuteltiplas maacutequinas Conheccedila uma ferramenta que facilita muito essa aacutereapor James Mohr

copy Linux New Media do Brasil Editora Ltda

45

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

outras tarefas que natildeo fazem parte do Cron

MultiplataformaApesar de ser possiacutevel instalar ver-sotildees abertas do Cron no Windows lidar com diferentes sistemas ope-racionais causa ainda mais proble-mas Por exemplo alguns dialetos de Unix natildeo suportam um arquivo etccrontab central entatildeo eacute preciso criar um arquivo para cada usuaacuterio O Cron era uma boa ferramenta nessa eacutepoca e geralmente ainda eacute mas as necessidades de muitas empresas jaacute superam suas funcionalidades

As limitaccedilotildees do Cron natildeo pas-saram despercebidas Haacute produtos comerciais que custam pequenas fortunas e costumam ser licenciados com base no nuacutemero de servidores ou de scripts a serem iniciados

Por sua vez os problemas dos pro-dutos comerciais tambeacutem natildeo passa-ram despercebidos pela comunida-de do Coacutedigo Aberto Uma soluccedilatildeo surpreendente eacute o Open Source Job Scheduler desenvolvido pela alematilde SOS (Software- und Organisations-Service) Haacute versotildees para Linux So-laris HP-UX (PA-RISC IA64) AIX e Windows Ele tambeacutem suporta vaacuterios bancos de dados incluindo DB2 Oracle MS SQL Server PostgreSQL e MySQL

O software adota um esquema de duplo licenciamento pela GPL e a Guaranteed License (Licenccedila Ga-rantida) Trata-se do mesmo coacutedigo com funcionalidades atualizaccedilotildees e coacutedigo-fonte idecircnticos

A receita da SOS natildeo proveacutem da venda de seu produto mas dos serviccedilos e do suporte Poreacutem estra-nhamente a empresa natildeo anuncia seu produto ndash nem seus serviccedilos ndash da forma tradicional Ao demonstrar o produto o objetivo natildeo eacute convencer clientes potenciais mas mostrar-lhes o que o produto pode fazer e deixar que eles decidam se ele supre suas necessidades

A versatildeo comercial tambeacutem oferece uma ldquopessoa responsaacutevelrdquo para cada chamado de serviccedilo com tempos de resposta garantidos e pedidos de re-cursos recebem maior prioridade de implementaccedilatildeo Aleacutem disso essa ver-satildeo natildeo possui as restriccedilotildees da GPL entatildeo pode ser embutida em outros aplicativos (comerciais ou natildeo) sem que este precise aderir agrave GPL

Diferente da maioria dos softwa-res comerciais e de coacutedigo aberto a SOS oferece garantia limitada de dois anos e um acordo de indeni-zaccedilatildeo Segundo seu diretor a em-presa se sente obrigada a fornecer ao cliente um retorno por seu pa-gamento e isso tambeacutem se estende a discrepacircncias entre o produto e a documentaccedilatildeo

EstruturaO componente central do pacote eacute o mecanismo de agendamento de tarefas que roda em cada uma das maacutequinas que as agendaratildeo Esse meacute-todo eacute diferente de executar a tarefa pode-se ter um agendador em cada

maacutequina com todos agindo como escravos de um central mas tam-beacutem eacute possiacutevel usar um agendador completo em cada uma delas Esse mecanismo pode ser expandido para permitir o balanceamento de carga por meio de muacuteltiplos servidores

Um aspecto importante a ser considerado eacute chamado de order (pedido) que consiste em um sinal passado entre tarefas Dependendo de suas configuraccedilotildees as tarefas natildeo tecircm permissatildeo de iniciar ateacute rece-berem seu pedido

Na forma mais simples pedidos satildeo como o bastatildeo numa corrida de revezamento entregues por cada tarefa para a seguinte Aleacutem disso eacute possiacutevel configurar pedidos com horas especiacuteficas de iniacutecio para que sejam gerados automaticamente pelo sistema no momento especificado e depois a cadeia respectiva possa se iniciar

Note que para conseguir reagir a um pedido uma tarefa precisa ser configurada para aceitaacute-lo mas o pedido soacute pode ser associado a uma

Figura 1 Janela do editor graacutefico do agendador de tarefas

copy Linux New Media do Brasil Editora Ltda

46 httpwwwlinuxmagazinecombr

CAPA | Agendamento

cadeia de tarefas e natildeo a uma ta-refa especiacutefica Ou seja o pedido eacute passado de tarefa para tarefa dentro da cadeia mas eacute associado somente agrave cadeia Se for desejaacutevel que uma uacutenica tarefa se inicie num momento especiacutefico por exemplo isso pode ser feito dentro da proacutepria tarefa Outro componente importante satildeo os Hot Folders (pastas quentes) que seatildeo di-retoacuterios monitorados pelo agendador em busca de alteraccedilotildees tais como a alteraccedilatildeo ou criaccedilatildeo de tarefas

TarefasTarefas podem ser configuradas a partir da interface graacutefica do editor do agendador (figura 1 chamado aqui de ldquoeditor de tarefasrdquo) ou por arqui-vos XML editados manualmente O editor de tarefas eacute um aplicativo em Java que configura vaacuterias tarefas ca-deias e outros aspectos do sistema Todas as informaccedilotildees de configura-

ccedilatildeo do sistema satildeo armazenadas em arquivos XML e basta abrir o arquivo XML respectivo no editor de tarefas para fazer alteraccedilotildees Poder usar o Vim em arquivos de configuraccedilatildeo eacute mais que uma becircnccedilatildeo em casos de alteraccedilotildees em massa

Os arquivos XML podem ser copiados para maacutequinas remotas e salvos via FTP diretamente a partir do editor de tarefas Quando ater-rissam num Hot Folder os arquivos ficam imediatamente disponiacuteveis para o mecanismo do agendador na maacutequina remota

A interface graacutefica do editor de tarefas natildeo eacute tatildeo intuitiva quanto poderia e vaacuterios campos parecem misteriosos a princiacutepio Como a documentaccedilatildeo deixa a desejar fal-tam explicaccedilotildees sobre muitos desses campos Em alguns casos a docu-mentaccedilatildeo dos arquivos XML ajuda a tirar as duacutevidas

Apesar de as informaccedilotildees de con-figuraccedilatildeo serem armazenadas em arquivos XML por padratildeo eacute pos-siacutevel configurar o agendador para usar diversos bancos de dados dife-rentes Essas tarefas satildeo chamadas de ldquogerenciadasrdquo e cada agendador instalado pode ser configurado para acessar as tarefas no banco de da-dos para natildeo ser necessaacuterio copiar os arquivos manualmente

A operaccedilatildeo cotidiana do siste-ma eacute realizada pela sua interface graacutefica (chamada neste artigo de ldquointerface de operaccedilatildeordquo) que eacute acessada por um navegador e per-mite o gerenciamento das tarefas a partir de qualquer maacutequina Com essa interface eacute possiacutevel natildeo apenas monitorar as tarefas mas tambeacutem iniciaacute-las paraacute-las tratar seus erros e muitas outras funccedilotildees

O agendador de tarefas tambeacutem oferece uma API que permite o ge-renciamento e o controle externos de tarefas A API suporta vaacuterias lin-guagens incluindo Perl VBScript JavaScript e Java Surpreendente-mente natildeo haacute suporte a PHP ape-sar da possibilidade de se gerenciar tarefas a partir de um navegador web e da documentaccedilatildeo de scripts PHP de exemplo

InstalaccedilatildeoOs exemplos deste artigo foram feitos com a versatildeo 134 para Li-nux que pode ser baixada do site do Job Scheduler no SourceForge [1] Se houver intenccedilatildeo de se usar um banco de dados MySQL como neste artigo note que o programa natildeo fornece um driver JDBC para esse banco embora haja drivers para Oracle e outros bancos O driver JDBC para MySQL pode ser baixado diretamente do site do MySQL [2] Basta digitar o caminho do arquivo jar apropriado durante a instalaccedilatildeo

Antes de comeccedilar eacute recomen-daacutevel ler o guia de instalaccedilatildeo em Figura 2 Digitaccedilatildeo do coacutedigo-fonte diretamente no editor de tarefas

copy Linux New Media do Brasil Editora Ltda

47

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

PDF incluiacutedo no pacote Aleacutem dis-so haacute vaacuterios outros PDFs no site da empresa [3] mais aprofundados em diversos toacutepicos Fique ciente ateacute para obter as informaccedilotildees mais baacutesicas na documentaccedilatildeo eacute preciso ser um tanto familiarizado com a programaccedilatildeo orientada a objetos e XML pois a documentaccedilatildeo natildeo fornece qualquer introduccedilatildeo a esses toacutepicos Aleacutem disso ela natildeo eacute bem organizada entatildeo saiba que seraacute preciso procurar bastante Apesar de ser volumosa a documentaccedilatildeo natildeo eacute faacutecil de usar o que eacute algo que a empresa pretente melhorar

No Linux a instalaccedilatildeo ocorre por meio de um instalador em Java e se for feita por um usuaacuterio nor-mal o padratildeo eacute os arquivos serem abrigados em $HOMEscheduler Se for instalado como root o diretoacuterio do programa eacute usrlocalschedu-ler Apoacutes instalar o produto haacute um arquivo README que recomenda que o programa natildeo seja instalado como root mas natildeo haacute menccedilatildeo a isso no guia de instalaccedilatildeo e con-figuraccedilatildeo Para evitar problemas potenciais vamos instalaacute-lo como usuaacuterio normal

Durante a instalaccedilatildeo satildeo pedidos o tipo do banco de dados e infor-maccedilotildees da conexatildeo Natildeo fica claro se o campo ldquodatabase parametersrdquo deve receber os paracircmetros de co-nexatildeo apoacutes o banco de dados estar em execuccedilatildeo ou os paracircmetros de conexatildeo para criaccedilatildeo do banco de dados Infelizmente recomenda-se criar um banco de dados e um usuaacuterio para o programa usar mas isso soacute eacute mencionado apoacutes todas as etapas de instalaccedilatildeo Criar o banco de dados manualmente e conferir privileacutegios do banco antes de iniciar a instalaccedilatildeo jaacute resolve

A instalaccedilatildeo eacute relativamente in-tuitiva mas leva alguns minutos para criar e preencher as tabelas do banco de dados Para instalar o Scheduler em muacuteltiplas maacutequinas com os mes-

mos paracircmetros haacute a opccedilatildeo de criar um script automaticamente ao final da primeira instalaccedilatildeo

IniciandoIndependentemente de a instala-ccedilatildeo ocorrer sob o root ou um usuaacute-rio normal eacute necessaacuterio iniciar o agendador manualmente Seu controle eacute feito como num script rc comum

$HOMEschedulerbinjobschedulersh start$HOMEschedulerbinjobschedulersh stop

Para iniciar o Scheduler auto-maticamente na inicializaccedilatildeo re-comenda-se criar um usuaacuterio espe-ciacutefico para ele e depois um script rc que use o comando su para se tornar esse usuaacuterio e iniciar o programa Se houver necessidade de tarefas serem executadas sob o root ou ou-tro usuaacuterio com mais privileacutegios eacute possiacutevel configurar um ambiente sudo apropriado

Novas tarefasPara criar tarefas pode-se ou edi-tar os arquivos XML diretamente ou pelo editor de tarefas No Li-nux execute o script jobeditorsh localizado por padratildeo em usrlo-calschedulerbin ou $HOMEsche-dulerbin

Como exemplo considere a ta-refa tiacutepica de criaccedilatildeo de um beca-pe da configuraccedilatildeo do sistema Por ora vamos supor que isso seja feito diariamente com o script usrbinbecapesh

Primeiramente inicie o editor de tarefas e selecione New | Hot Folder Element | Job (figura 1) No primei-ro formulaacuterio comece digitando as informaccedilotildees baacutesicas de sua tarefa Para este exemplo digite o nome Becape das configuraccedilotildees no campo Job Title adicione uma descriccedilatildeo ou deixe em branco

No painel esquerdo clique em Execute para digitar os detalhes sobre o programa ou script que se deseja iniciar Como o objetivo eacute executar um script externo selecione o botatildeo

Figura 3 Interface de operaccedilatildeo do Job Scheduler

copy Linux New Media do Brasil Editora Ltda

48 httpwwwlinuxmagazinecombr

CAPA | Agendamento

Run executable e digite o caminho completo do script referido Nesse ponto tambeacutem eacute possiacutevel definir masi paracircmetros a ser passados para o script Por exemplo se o becape comprimir os arquivos armazenados pode ser interessante acrescentar um -c a esse campo

Aleacutem disso pode-se incluir os passos individuais de execuccedilatildeo se-lecionando-se o botatildeo Script e o tipo de coacutedigo do programa depois digitando o coacutedigo-fonte na caixa apropriada Note que isso eacute mais que o nome de um script e pode incluir estruturas de programaccedilatildeo baseadas na linguagem seleciona-da (figura 2)

Para salvar a tarefa pressione o botatildeo Save ou escolha Save no menu File Na primeira vez em que o ar-quivo eacute salvo eacute preciso digitar um nome para ele Para isso navegue ateacute o diretoacuterio configlive e salve o arquivo como becape assim

a extensatildeo xml seraacute adicionada au-tomaticamente

Via navegadorComo o arquivo foi salvo no dire-toacuterio live ele fica imediatamente visiacutevel para o sistema Esse diretoacuterio eacute preacute-definido como um Hot Folder que o sistema lecirc regularmente Nesse ponto a tarefa natildeo foi agendada mas apenas adicionada ao sistema Para iniciar a tarefa eacute preciso executar a interface de operaccedilatildeo apontando seu navegador para httplocal-host4444

Em conexotildees pelo navegador o Scheduler exibe uma interface semelhante agrave da figura 3 Para ver os detalhes da tarefa decirc um duplo clique na tarefa de becape na colu-na agrave esquerda Para executar a tarefa imediatamente clique no botatildeo Job menu e selecione Start task now

Por ser muito faacutecil iniciar o script pela linha de comando isso natildeo eacute

nada espetacular Eacute possiacutevel voltar ao editor de tarefas e clicar na en-trada Run Time no painel esquerdo e selecionar uma hora para a exe-cuccedilatildeo da tarefa Para isso clique em Everyday (todos os dias) e de-fina um novo periacuteodo clicando no botatildeo new Period Em Start Time digite algo como 0900 no campo Single Start Depois clique no bo-tatildeo Save e essa nova configuraccedilatildeo seraacute ativada ndash a tarefa teraacute iniacutecio todos os dias agraves 9 horas

Ateacute agora a uacutenica vantagem do programa sobre o Cron eacute uma inter-face amigaacutevel ndash mas isso eacute apenas o comeccedilo Quando comeccedilamos a conhecer as cadeias de tarefas vemos o poder do agendamento de tarefas

BecapePrimeiro suponha que vocecirc tenha criado uma segunda tarefa que faccedila um becape do banco de dados que deve ser executada imediatamente apoacutes o fim do becape das configu-raccedilotildees Uma alternativa eacute criar um uacutenico script que faccedila primeiro o becape das configuraccedilotildees e imedia-tamente depois inicie o do banco de dados Poreacutem cadeias de tarefas satildeo uacuteteis em vaacuterias situaccedilotildees mais complexas em que natildeo eacute possiacutevel simplesmente lanccedilar matildeo de um script shell as quais seratildeo discutidas mais adiante

Assim como na primeira tarefa crie um novo elemento no Hot Folder mas selecione Job Chains Digite o nome da cadeia (Chain Name) e caso se deseje tambeacutem um tiacutetulo (Title) Como cada ele-mento de uma cadeia eacute chamado de noacute (Node) eacute preciso adicionar um New Chain Node a seguir clicando no botatildeo respectivo Caso o nome da tarefa seja conhecido pode-se digitaacute-lo manualmente ou usar o botatildeo Browse para procuraacute-la

No campo State eacute possiacutevel definir um estado para essa etapa ou noacute

Figura 4 As dependecircncias entre as tarefas podem ser exibidas com uso do Job Chain Illustration

copy Linux New Media do Brasil Editora Ltda

49

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

Definido estados eacute possiacutevel criar um fluxo mais complexo para as tarefas Por exemplo pode-se criar um esta-do chamado Erro e se alguma tarefa anterior apresentar um erro pula-se imediatamente para a tarefa definida com esse estado pulando todas as outras Aleacutem disso eacute possiacutevel exe-cutar diferentes tarefas de erro para cada uma das vaacuterias etapas

Mais cadeiasEmbora criar uma cadeia de tare-fas que consista em apenas uma uacutenica tarefa possua certas vanta-gens natildeo pare nesse ponto Como mencionado eacute melhor uma tarefa de becape constituiacuteda por duas etapas entatildeo vamos criar uma segunda cadeia com a tarefa de becape do banco de dados e con-figuraacute-la de forma semelhante agrave segunda tarefa Em nosso exem-plo definimos o primeiro noacute com o estado Iniacutecio e o segundo com o estado Fim embora isso natildeo seja necessaacuterio

Ao se clicar no botatildeo Save eacute mostrada a nova cadeia na aba Job Chains da interface de operaccedilatildeo Marcar a caixa Show Jobs exibe as tarefas individuais que compotildeem a cadeia Um duplo clique na ca-deia abre o painel de detalhes no lado direito como ocorreu com a tarefa uacutenica

Nesse ponto a cadeia de tarefas ainda natildeo seraacute executada porque precisa de um pedido que pode ser inserido manualmente no menu Job | Add Order Eacute mostrada uma nova janela que permite a definiccedilatildeo de vaacuterias caracteriacutesticas do pedido como ID horaacuterio de iniacutecio e ateacute estado da cadeia Neste exemplo apenas deixe tudo em branco e o sistema criaraacute sozinho uma ID de pedido

Se natildeo tiver sido definida uma condiccedilatildeo a cadeia inicia imedia-tamente poreacutem pode ser definida uma fatia de tempo (Time Slot) para qualquer uma dessas tarefas e

o Scheduler esperaria a hora certa para iniciar a tarefa

Note que as tarefas precisam ser capazes de aceitar pedidos para reagir a eles Esta etapa eacute feita na janela de configuraccedilatildeo para as ta-refas individuais Na janela Main Options haacute um botatildeo On Order que precisa ser definido como Yes caso contraacuterio o pedido natildeo ini-ciaraacute a tarefa

Ateacute aqui iniciamos tudo manu-almente Como precisamos definir um pedido para iniciar a cadeia de tarefas obviamente eacute necessaacuteria uma forma de criar pedidos dinami-camente Uma maneira seria criar um pedido numa hora especiacutefica o que por sua vez aciona a cadeia de tarefas Como se pode esperar isso eacute feito pelo menu New | Hot Folder Element | Order Apoacutes dar um nome ao pedido e selecionar a janela Job Chains selecione a cadeia especiacutefica a ser associada a esse pedido Note que um pe-dido soacute pode ser associado a uma uacutenica cadeia Depois defina um novo horaacuterio (Time Period) e um Single Start agraves 0900 Para ativar imediatamente as alteraccedilotildees eacute preciso armazenaacute-la no diretoacuterio configlive

Ao retornar agrave interface de opera-ccedilatildeo pode-se ver que agora haacute um pedido associado agrave cadeia criada Abaixo do pedido uma entrada next start (proacuteximo iniacutecio) mostra a data e hora em que o pedido iniciaraacute Como jaacute passou das 900 am neste exemplo a data eacute amanhatilde Se for usado outro horaacuterio de iniacutecio como o dia primeiro o proacuteximo iniacutecio se-ria nessa data

ControlePara definir o periacuteodo das tarefas cadeias e pedidos eacute possiacutevel esta-belecer um horaacuterio para o iniacutecio de uma tarefa assim como um in-tervalo entre execuccedilotildees (a cada 12 horas por exemplo) Essa segunda

opccedilatildeo natildeo eacute uacutetil no caso de cadeias em que as tarefas precisem seguir uma determinada ordem Poreacutem eacute possiacutevel definir um pedido que seja iniciado diariamente agraves 700 que por sua vez inicie uma cadeia

Haacute tambeacutem definiccedilotildees de tempo como ldquosegundo domingo de cada mecircsrdquo ldquouacuteltimo dia do mecircsrdquo ou ldquoso-mente 8janeiro e 16fevereirordquo

Horaacuterios e intervalos preacute-estabe-lecidos satildeo uacuteteis mas nem sempre eacute possiacutevel saber a priori quando uma tarefa precisaraacute ser realizada No caso daquelas que dependem da existecircncia ou inexistecircncia de algum arquivo eacute possiacutevel definir watch directories (diretoacuterios a ser observados) com regras que aceitam ateacute expressotildees regulares (figura 4)

Pedido proacuteprioDepois de superar as dificuldades iniciais nota-se que o Open Source Job Scheduler eacute um bom produto Com intimidade ele se torna faacutecil de configurar e administrar

A SOS tambeacutem presta um oacutetimo serviccedilo Identifiquei um bug e enviei um patch para um arquivo jar que foi disponibilizado por eles no ser-vidor em menos de um dia Ateacute em uma rede pequena o Open Source Job Scheduler oferece recursos muito uacuteteis Em instalaccedilotildees maiores ele eacute quase indispensaacutevel

Mais informaccedilotildees

[1] Open Source Job Scheduler httpjobschedulersourceforgenet

[2] Driver JDBC para MySQL httpwwwmysqlcomproductsconnector

[3] Software- und Organisations-Service GmbH httpwwwsos-berlincomscheduler

copy Linux New Media do Brasil Editora Ltda

50 httpwwwlinuxmagazinecombr

Faccedila belos graacuteficos via navegador com a API do Google Chart

Graacuteficos via webA API do Google Chart permite desenhar graacuteficos planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simplespor Martin Streicher

Se uma imagem vale mais que mil palavras um graacutefico deve ser algo semelhante a uma no-

vela Em apenas um piscar de olhos um graacutefico pode transmitir o estado do mercado de accedilotildees a tendecircncia de traacutefego em um website a distribui-ccedilatildeo dos eleitores por regiatildeo aleacutem de informar como a verba eacute distribuiacuteda em um orccedilamento familiar Aleacutem dis-so um graacutefico eacute simplesmente mais compreensiacutevel do que uma enorme tabela cheia de nuacutemeros

Poreacutem eacute estranho vermos que muito poucos sites utilizam graacuteficos em seu benefiacutecio Isso acontece em grande parte porque a criaccedilatildeo de graacuteficos requer um software espe-cializado Por exemplo se o site eacute baseado em PHP eacute preciso instalar o pChart [1] adicionar a biblioteca

graacutefica GD e escrever o coacutedigo para produzir algum tipo de graacutefico Ide-almente qualquer um ndash um editor escritor ou mesmo um usuaacuterio adi-cionando comentaacuterios ndash deve ser capaz de criar e embutir graacuteficos em suas paacuteginas

Na verdade o dinamismo a sim-plicidade e a conveniecircncia estatildeo no cerne da interface de programaccedilatildeo de aplicaccedilatildeo (API) Google Chart [2] e talvez essa seja a descriccedilatildeo mais pre-cisa para um Software como Serviccedilo (SaaS) Simplesmente crie uma URL parametrizada como httpchartapisgooglecomchartparacircmetro1ampparacircmetro2ampparacircmetroN e deixe o Google Chart fazer todo o trabalho pesado O Google Chart permite que vocecirc renderize seis tipos de graacuteficos um Google-o-meter um QR code (espeacutecie de coacutedigo de barras) e mapas Aleacutem disso eacute possiacutevel usar praticamente um gugol de opccedilotildees de personalizaccedilatildeo tais como a barra de cores a cor de fundo a legenda e muito mais

Este artigo ajuda nos primeiros passos no uso do Google Chart Vocecirc aprenderaacute a desenhar graacuteficos e adi-cionar efeitos especiais para melhorar suas criaccedilotildees graacuteficas

Elementos de graacuteficosPara gerar um graacutefico com o Google Chart forneccedila o prefixo httpchartapisgooglecomchart o tipo de graacute-

fico (tal como torta ou de linhas) o tamanho do graacutefico seus dados e quaisquer paracircmetros especiacuteficos como as cores e os roacutetulos dos eixos para adequaacute-lo ao resultado final

Todas as opccedilotildees do graacutefico satildeo associadas a pares de valores do tipo chave=valor Algumas chaves satildeo comuns para todos os graacuteficos en-quanto outras satildeo exclusivas para um determinado tipo Da mesma forma a sintaxe para o valor especificado no par tende a variar de acordo com o tipo de graacutefico

O tamanho do graacutefico eacute medido em pixels e especificado com o paracircmetro chs=LxA em que L eacute a largura e A eacute a altura Por exemplo chs=200x100 gera um graacutefico de 200 pixels de lar-gura por 100 pixels de altura A aacuterea de um mapa natildeo pode exceder 440 pixels de largura por 220 de altura Para todos os outros graacuteficos nem a largura nem a altura podem exceder 1000 pixels e a aacuterea maacutexima eacute de 300000 pixels quadrados

O tipo de graacutefico eacute escolhido com o par cht=tipo em que tipo eacute uma das diversas constantes preacute-de-finidas Por exemplo para desenhar um graacutefico de linhas simples com pontos equidistantes do eixo x es-pecifique cht=lc Para cada tipo de graacutefico pode-se consultar a constan-te apropriada na documentaccedilatildeo do Google Chart

TU

TO

RIA

L

Figura 1 Um graacutefico de linha simples produzido pela API do Google Chart

copy Linux New Media do Brasil Editora Ltda

51

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Os dados de um graacutefico podem ser fornecidos em vaacuterios formatos ndash a partir de uma lista de dados brutos simples ateacute uma coleccedilatildeo de coacutedigos alfanumeacutericos para mapear valores de uma escala preacute-definida

Normalmente o conjunto de da-dos brutos eacute constituiacutedo por uma lista de valores separados por viacutergulas e um conjunto de dados codificados eacute uma sequumlecircncia contiacutenua de caracte-res alfanumeacutericos Por exemplo para fornecer dados como texto simples utilize chd=tvalores em que valo-res eacute uma lista de valores de ponto flutuante positivos entre 0 e 100 de-limitados por viacutergula O caractere _ (traccedilo baixo) pode ser usado como um espaccedilo reservado para a falta de um dado Muacuteltiplos conjuntos de dados satildeo delimitados pelo caractere | (pipe ou barra vertical)

Para demonstrar abra um nave-gador e digite a URL httpchartapisgooglecomchartcht=lcampchs=500x400ampchd=t7392079|1515181101612ampchco=FF000000FF00 na barra de endereccedilos Como se pode adivinhar o paracircmetro chco lista os valores RGB para colorir cada gru-po de dados

A figura 1 mostra o exemplo de um graacutefi-co de linha incluindo seus elementos (eixos tiacutetulos e legendas) A URL utilizada para gerar o graacutefico eacute mostrada no exemplo 1 Cada URL mostrada nesse artigo abrange vaacuterias linhas de forma intencional para melhor legibilidade

De forma resumida chtt fornece o tiacutetulo do graacutefico Os dados satildeo fornecidos como valores brutos expres-sos em texto simples mas como os valores satildeo superiores a 100 chds fornece um valor

miacutenimo e um maacuteximo para norma-lizar os dados para um percentual Aqui como os dois conjuntos de dados estatildeo dentro do mes-mo intervalo bastam um valor miacutenimo e um maacuteximo para ambos No entanto se cada um dos conjuntos de dados for traccedilado a partir de uma uacutenica seacuterie eacute preciso fornecer um valor miacutenimo e maacuteximo para cada conjunto O paracircmetro chxt eacute combi-nado com o chxl e com o chxp para criar e posicionar os roacutetulos dos eixos

Acredite ou natildeo desenhar um graacutefico eacute realmente sim-ples Para inserir um graacutefico em um paacutegina web use uma tag img src e defina seu atri-buto src para a URL do graacute-fico Forneccedila uma descriccedilatildeo para o graacutefico por meio do atributo alt

CartografiaDesenhar um mapa com o serviccedilo Google Chart eacute tatildeo simples quanto desenhar qualquer outro graacutefico pri-

meiramente especifique o mape-amento do graacutefico selecione uma regiatildeo do mundo para desenhar e em seguida associe os dados a cada paiacutes proviacutencia ou estado encontrados no mapa Os dados podem ser discretos ndash digamos representar os estados azuis e ver-melhos nos Estados Unidos ndash ou contiacutenuos Aleacutem disso vocecirc pode associar uma cor com o miacutenimo e o maacuteximo em um intervalo e o Google Chart renderiza os valores intermediaacuterios em uma graduaccedilatildeo de cores (degradecirc)

Por exemplo o exemplo 2 gera um mapa dos Estados Unidos mostrando como os estados votaram na eleiccedilatildeo presidencial de 2004 A figura 2 apre-senta os resultados

No exemplo 2 cht=t seleciona o graacutefico de mapa chtm=usa especifica os Estados Unidos como regiatildeo e chs=440x220 desenha o maior mapa

Figura 2 Divisatildeo dos estados em vermelho (republicanos) e azuis (democratas) na eleiccedilatildeo presidencial dos Estados Unidos em 2004

Exemplo 1 Roubo de automoacuteveis na Carolina do Norte

01 httpchartapisgooglecomchart02 cht=lcamp03 chtt=Nuacutemero de automoacuteveis roubadosna NC por mecircs e anoamp04 chs=400x300amp05 chd=t223116582156231823432450258326122522268123262371|06 238119392309224225902642284028372555255824372319amp07 chds=03000amp08 chco=FF00000000FFamp09 chdl=2005|2006amp10 chxt=xyamp11 chxl=0|Jan|June|Dec|1|0|1500|30 00|amp12 chxp=0050100|1050100

Exemplo 2 Estados vermelhos e azuis

01 httpchartapisgooglecomchart02 cht=tamp03 chtm=usaamp04 chs=440x220amp05 chco=FF00000000FF0000FFamp06 chld=CACTDEDCHIILMEMDMAMIMNNHNJNYORPARIVTWAWIamp07 chd=sAAAAAAAAAAAAAAAAAAAA

copy Linux New Media do Brasil Editora Ltda

52 httpwwwlinuxmagazinecombr

TUTORIAL | Google Chart

possiacutevel No graacutefico de mapa chco=FF00000000FF0000FF define as cores padratildeo de cada estado (vermelho)

e a cor de iniacutecio e de final (ambas em azul) do gradiente

O paracircmetro chld conteacutem o coacute-digo de duas letras de cada um dos estados conquistados pelo candidato presidencial democrata Finalmente o paracircmetro chd=s seleciona o es-quema de codificaccedilatildeo simplificada de dados em que todos os valores devem ser representados por um dos caracteres na sequumlecircncia de A-Z a-z e 0-9 sendo A o miacutenimo e 9 o maacuteximo Em outras palavras o es-quema de codificaccedilatildeo simplificada fornece uma granularidade de 62 valores distintos Tendo em conta que todos os estados satildeo coloridos

em vermelho por padratildeo qualquer estado com outro valor ndash aqui A ndash eacute colorido de azul

Quadro 1 Dicas e truques do Google Chart

Essas dicas e truques tornaratildeo seus graacuteficos mais legiacuteveis

Certifique-se de que o tamanho de seu graacutefico eacute su-ficiente para exibir o tiacutetulo os roacutetulos e a legenda da imagem Infelizmente a determinaccedilatildeo da largura miacuteni-ma natildeo tem uma forma algoriacutetmica ndash pode ser preciso utilizar um pouco de tentativa e erro

Para alterar a cor e o tamanho do texto no tiacutetulo do graacute-fico use chts=colorfontsize Aleacutem disso eacute possiacutevel alterar a cor e o tamanho da fonte de um eixo com o roacutetulo chxs Infelizmente natildeo eacute possiacutevel especificar o tipo de fonte

Os quatro eixos satildeo x t y e r ou seja a forma resumi-da para delimitar o eixo inferior x o eixo superior x o eixo agrave esquerda y e o eixo agrave direita y respectivamente Se vocecirc quiser vaacuterios roacutetulos para qualquer eixo repita o nome do eixo no paracircmetro chxt e especifique seus detalhes no chxl

Leia a documentaccedilatildeo da API do Google Chart e dedi-que atenccedilatildeo especial agrave sintaxe de cada opccedilatildeo Mes-mo um erro de um caractere pode tornar um graacutefico ilegiacutevel Por exemplo o paracircmetro chd utiliza a barra vertical para separar cada conjunto de dados dife-rentemente de chds Infelizmente essa natildeo eacute a uacutenica inconsistecircncia na API do Google Chart (o clipping do graacutefico de barras eacute outro) portanto mantenha o manu-al por perto

Antigamente um graacutefico de barras com valores negati-vos e positivos requeria truques para renderizar corre-tamente Agora eacute possiacutevel usar o paracircmetro chp e uma porcentagem para colocar a linha zero a partir de uma distacircncia proporcional da origem sobre o eixo y Os va-lores devem entatildeo ser interpolados para serem rende-rizados adequadamente Por exemplo suponha que o fluxo de caixa da empresa seja (em milhotildees) de -20 -5 1 3 10 Para colocar a linha zero em 05 ou na

metade do caminho para cima do eixo y valores meno-res que 50 seratildeo desenhados ldquoabaixo da linhardquo e todos os valores acima de 100 seratildeo desenhados ldquoacima da linhardquo Para normalizar os dados adicione 50 a todos os valores e plote os novos valores

httpchartapisgooglecomchartcht=bvgampchs=400x400ampchbh=405ampchd=t3045515360ampchp=5ampchm=r00000004955

A figura 5 mostra o graacutefico final

O paracircmetro bvg eacute a constante para o graacutefico do tipo barra vertical e o chd expressa o conjunto de dados normalizado O paracircmetro chp coloca a linha zero a meio caminho acima do eixo y enquanto que o chm eacute uma opccedilatildeo para desenhar uma faixa de marca-ccedilatildeo no graacutefico Os seus paracircmetros satildeo (na ordem) r para um marcador horizontal 000000 para desenhar o marcador em preto 0 que eacute ignorado e 495 e 5 para expressar as margens inferior e superior da faixa de marcaccedilatildeo em termos de proporccedilatildeo sobre o eixo-y Isso porque a linha zero estaacute colocada a 05495 e 5 desenha uma linha bem fina em zero

O paracircmetro chbh especifica a largura de uma barra e o espaccedilo entre cada uma barra Diferentemente de outros tipos de graacuteficos se chbh for grande demais e chs for muito pequeno parte do graacutefico seraacute cor-tada Certifique-se de ajustar o tamanho de um ou todos esses paracircmetros quando estiver desenhando um graacutefico de barras

Exemplo 3 Informaccedilotildees num coacutedigo QR

01 httpchartapisgooglecomchart02 cht=qramp03 chs=200x200amp04 choe=UTF-8amp05 chld=Qamp06 chl=httpwwwlinuxnewmediacombrlmFigura 3 O endereccedilo do site da

revista capturado num coacutedigo QR

copy Linux New Media do Brasil Editora Ltda

53

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] pChart httppchartsourceforgenet

[2] Documentaccedilatildeo do Google Chart httpcodegooglecomapischart

[3] BeeTagg httpwwwbeetaggcom

[4] Zebra biblioteca livre do Google para leitura de coacutedigos de barra httpcodegooglecompzxing

[5] Guia para codificaccedilatildeo de dados em coacutedigos QR httpcodegooglecompzxingwikiBarcodeContents

[6] Gerador simples para o Google Chart httpalmaercomchartmaker

O Google Chart tambeacutem oferece graacuteficos para Aacutefrica Aacutesia Europa Oriente Meacutedio Ameacuterica do Sul e todo o globo

Coacutedigo de barrasNo Japatildeo moderno jovens compar-tilham informaccedilotildees de uma forma digital verdadeiramente inovado-ra eles trocam coacutedigos de barras E agora vocecirc tambeacutem pode O Google Chart fornece uma API para codificar ateacute 4296 caracteres em uma imagem bidimensional e monocromaacutetica chamado QR code ou coacutedigo QR

Para comeccedilar vamos codificar o email da Linux Magazine em um QR code O exemplo 3 mos-tra como a imagem na figura 3 foi criada Ao usar o graacutefico QR choe especifica a codificaccedilatildeo do texto O paracircmetro chld dita o grau de correccedilotildees de erros aplicado agrave ima-gem O valor Q inclui informaccedilotildees duplicadas o suficiente a ponto de 25 da imagem poder ser destruiacuteda sem afetar a legibilidade O paracirc-metro chl eacute o texto a ser codificado geralmente fornecido como uma URL que eacute entatildeo interpretada por um aplicativo

Se vocecirc tem um telefone celu-lar pode baixar gratuitamente o BeeTagg [3] tirar uma fotografia da figura 3 e decodificar os resul-tados para entrar no site da revista

Como uma alternativa o Google oferece gratuitamente uma biblio-teca gratuita para leitura de coacutedigos QR chamada Zebra Crossing [4][5] e um leitor de coacutedigos de barras online experimental que interpreta as imagens recebidas

Um coacutedigo QR pode capturar ateacute 4296 caracteres A figura 4 por exemplo codifica um vCard (cartatildeo de visitas) inteiro

Como vai o coraccedilatildeoA API do Google Chart eacute simples de usar e faacutecil de integrar em apli-caccedilotildees web Conforme mostrado eacute possiacutevel usar a API imediatamente ndash basta inse-rir um link estaacutetico em sua paacutegina web e permitir que o navegador efetue a requisiccedilatildeo e a renderiza-ccedilatildeo de um graacutefico a cada vez que a paacutegina eacute desenhada

Para acelerar a renderizaccedilatildeo da paacutegina vocecirc pode solicitar e efetuar o cache da imagem do graacutefico em seu proacuteprio servidor recriando o graacutefico apenas quando os dados contidos nele forem alterados Aleacutem de proporcionar melhor eficiecircn-cia essa teacutecnica protege melhor os dados brutos Um visitante do site natildeo poderaacute ldquover os fontesrdquo e copiar a URL

Naturalmente tambeacutem eacute pos-siacutevel misturar a API do Google Chart com teacutecnicas AJAX para mo-dificar os graacuteficos dinamicamente em resposta agrave requisiccedilatildeo do usuaacute-rio O Chart Maker [6] eacute uma de-monstraccedilatildeo baacutesica mas efetiva da dinacircmica de graacuteficos outros tecircm usado a API do Google Chart para implementar uma calculadora de empreacutestimos executiva

Naturalmente o Google Chart costuma ser mais lento que as ferra-mentas para geraccedilatildeo de graacuteficos no desktop como o Apple Numbers ou mesmo o Microsoft Excel Estas uti-lizam mecanismos de renderizaccedilatildeo nativos e natildeo requerem consultas

agrave Internet para transmitir dados e baixar um grande graacutefico na forma de uma imagem No entanto o Google Chart eacute um aplicativo gra-tuito que estaacute disponiacutevel em qual-quer lugar Se vocecirc estaacute realmente interessado em utilizar o Google Chart em ambiente de produccedilatildeo o uso de cache pode melhorar o tempo de resposta

Figura 4 Um vCard inteiro represen-tado como coacutedigo QR

Figura 5 Renderizaccedilatildeo de valores positivos e negativos num graacutefico de barras

copy Linux New Media do Brasil Editora Ltda

54 httpwwwlinuxmagazinecombr

Alta disponibilidade em PostgreSQL

Banco cheio mas disponiacutevel

O PostgreSQL natildeo possui embutido um mecanismo para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia por Fernando Ike

O tema alta disponibilida-de abordado na ediccedilatildeo 43 da Linux Magazine [1] eacute

abrangente e envolve vaacuterias aacutereas desenvolvedores administradores de sistemas rede e banco de dados

Geralmente alta disponibilidade em bancos de dados eacute um objetivo mais complexo e criacutetico do que se costuma acreditar Natildeo eacute simples-mente pensar que uma soluccedilatildeo como Oracle RAC garantiraacute disponibili-dade de 100 do banco de dados Para aumentar a disponibilidade eacute necessaacuterio analisar uma seacuterie de variaacuteveis entre elas Se o datacenter tem grupo ge-

rador de energia eleacutetrica Se haacute conexatildeo agrave Internet por

mais de dois links Servidores com fontes redun-

dantes discos etc Circuitos eleacutetricos e rede redun-

dantes Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias de banco de dados Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias dela mesma Se a modelagem permite ins-

tacircncias de banco de dados fi si-camente distantes

Quanto se pode investir Tais variaacuteveis dependem do pro-

jeto em questatildeo ou seja variam de

TU

TO

RIA

L

projeto para projeto Em geral a grande difi culdade para banco de dados eacute o sincronismo das bases de dados entre vaacuterios servidores jaacute que haacute a necessidade de garantir a con-sistecircncia entre eles Aplicaccedilotildees que usam banco de dados para operaccedilotildees somente leitura (como aplicaccedilotildees web por exemplo) tecircm facilidade de trabalhar com vaacuterios servidores de banco de dados usando balan-ceamento de carga Entretanto o mesmo natildeo acontece quando uma aplicaccedilatildeo tem operaccedilotildees de leitu-ra e escrita pois natildeo existe uma soluccedilatildeo defi nitiva uma vez que depende de como a aplicaccedilatildeo foi projetada Uma alternativa seria modelar a aplicaccedilatildeo para acessar um servidor de banco de dados para operaccedilotildees de leituraescrita e os outros servidores para operaccedilotildees de leitura

Para PostgreSQL essa tarefa eacute um pouco mais difiacutecil ndash mas natildeo impossiacutevel ndash pois ofi cialmente exis-tem poucas formas de aumentar sua disponibilidade sem que se use ex-tensotildees ou aplicaccedilotildees de terceiros Existe uma discussatildeo [2] dentro do PostgreSQL Global Development Group para incorporar recursos de replicaccedilatildeo MasterSlave na versatildeo 84 (atualmente em desenvolvimento) e posteriores

PostgreSQL hoje Vejamos o que eacute possiacutevel fazer com o PostgreSQL sem ferramentas de terceiros

Warm Standby usando PITR ( Point-In-Time Recovery ) um servidor pri-maacuterio envia para um ou mais servido-res secundaacuterios os arquivos do WAL ( Write Ahead Log ) que contecircm as modifi caccedilotildees nas bases de dados do servidor primaacuterio Tais arquivos quan-do enviados seratildeo processados pelos servidores secundaacuterios Esse meacutetodo para o PostgreSQL natildeo permite por enquanto que os servidores secundaacute-rios sejam usados para leitura Esses servidores natildeo estaratildeo disponiacuteveis para nenhuma operaccedilatildeo ateacute que haja uma falha no servidor primaacuterio

Em caso de falha no servidor pri-maacuterio falhando a transmissatildeo dos uacuteltimos arquivos do WAL para os servidores secundaacuterios estes perde-ratildeo as uacuteltimas alteraccedilotildees realizadas no servidor primaacuterio Essa perda eacute pequena se comparada agraves estrateacutegias de recuperaccedilatildeo mais comuns para estes tipos de incidentes as quais satildeo becape completo da uacuteltima noite ou recuperaccedilatildeo utilizando os arquivos do WAL A comparaccedilatildeo eacute de alguns segundos usando Warm Standby e de alguns minutos ou horas com recuperaccedilatildeo de becape ou por arquivos do WAL

copy Linux New Media do Brasil Editora Ltda

55

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Compartilhamento de disco usando a mesma aacuterea num equipa-mento remoto (como storage) os servidores poderatildeo ter a aacuterea mon-tada nele mas somente o servidor primaacuterio ou ativo poderaacute ter o serviccedilo do PostgreSQL em execuccedilatildeo O ser-vidor secundaacuterio soacute deve entrar em accedilatildeo em caso de falha do primaacuterio caso contraacuterio haacute o risco de corrom-pimento das bases de dados

Neste meacutetodo numa eventual fa-lha do servidor ativo eacute praticamen-te nula a perda de dados jaacute que as bases de dados estatildeo em um stora-ge Geralmente usa-se NFS como forma de acesso ao storage Uma recomendaccedilatildeo importante ao usar NFS eacute montaacute-lo usando a opccedilatildeo sync (siacutencrono) desabilitar o cache e jamais usar a opccedilatildeo async (assiacuten-crono) jaacute que ela poderaacute corromper as bases de dados do PostgreSQL O recomendaacutevel para esse meacutetodo eacute o uso de SAN (iSCSI AoE etc) em vez de NAS (SMB NFS etc) uma vez que a arquitetura SAN eacute projetada para situaccedilotildees de grande volumes de dados e menor tempo de recuperaccedilatildeo em caso de incidente comparado com NAS

Replicaccedilatildeo por dispositivo de blo-co uma variaccedilatildeo do compartilhamento de disco Quando usado esse recurso o dispositivo de bloco eacute a unidade de replicaccedilatildeo Assim como nos outros meacute-todos natildeo pode haver dois servidores PostgreSQL em execuccedilatildeo ao mesmo tempo O DRBD eacute um software muito popular para essa fi nalidade

Terceiros Existe a possibilidade de se usar ex-tensotildees ou aplicaccedilotildees de terceiros para aumentar a disponibilidade do PostgreSQL em tarefas como repli-caccedilatildeo mestre-escravo middleware de replicaccedilatildeo orientado a sentenccedila e replicaccedilatildeo multimaster assiacutencrona ou siacutencrona

Replicaccedilatildeo mestre-escravo esse meacutetodo envia todas as consultas de

modifi caccedilotildees das bases de dados para o servidor mestre Este envia as mo-difi caccedilotildees que nele ocorreram para o servidor escravo Essas modifi caccedilotildees ocorrem por lote e de forma assiacutencro-na permitindo que se tenha muacuteltiplos servidores escravos O servidor escravo pode responder somente consultas de leitura as quais satildeo ideais para consultas do tipo data warehouse O Slony-1 eacute um exemplo desse tipo de replicaccedilatildeo com granularidade de ta-bela e suporte a muacuteltiplos servidores escravos Em caso de falha no servidor mestre poderaacute haver perda de dados que ainda natildeo foram replicados para o servidor secundaacuterio

Middleware de replicaccedilatildeo orien-tado a sentenccedila programa que intercepta cada consulta SQL e a envia para um ou todos os servido-res Cada servidor opera indepen-dentemente Consultas de leitura e escrita satildeo enviadas para todos os servidores enquanto as consultas somente-leitura podem ser enviadas para qualquer um dos servidores permitindo que o trabalho de leitura seja distribuiacutedo

Se as consultas forem simplesmen-te transmitidas sem modifi caccedilotildees alguns valores especiacutefi cos de cada servidor (como a funccedilatildeo random() e os valores de TIMESTAMP ) teratildeo va-lores diferentes nos servidores Isso ocorre porque cada servidor opera de forma independente e porque as consultas SQL satildeo realizadas em broadcast (e natildeo atuando na modifi caccedilatildeo das colunas) Se isso for inaceitaacutevel o middleware ou aplicaccedilatildeo deve consultar tais valo-res a partir de um servidor e depois usaacute-los para escrever as consultas Exemplos desse tipo de replicaccedilatildeo satildeo o pgpool-II e Sequoia

Replicaccedilatildeo Multimaster Assiacutencro-na para os servidores que natildeo estatildeo regularmente ligados como laptops e servidores remotos manter os da-dos consistentes entre os servidores eacute um desafi o Usando replicaccedilatildeo assiacutencrona multimaster cada servi-dor trabalha com independecircncia e periodicamente se comunica com os outros servidores a fi m de identifi car transaccedilotildees confl itantes Os confl itos podem ser resolvidos pelos usuaacuterios

Figura 1 Soluccedilatildeo de alta disponibilidade do banco de dados proposta

copy Linux New Media do Brasil Editora Ltda

56 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

ou por meio de regras Bucardo eacute um exemplo desse tipo de replicaccedilatildeo

Replicaccedilatildeo multimaster siacutencro-na em replicaccedilatildeo multimaster siacuten-crona cada servidor pode aceitar conexotildees com transaccedilotildees de escrita (como INSERT UPDATE e DELETE) Tais transaccedilotildees satildeo transmitidas a partir do servidor de origem para todos os outros servidores antes de efetivar a transaccedilatildeo Em situaccedilotildees com mui-tas transaccedilotildees isso poderaacute causar bloqueio dos registros degradando consideravelmente a performance Neste tipo de replicaccedilatildeo as transa-ccedilotildees com escrita geralmente satildeo mais lentas do que as feitas em um servi-dor uacutenico Aleacutem de dividir a carga de transaccedilotildees para leitura e escrita como na replicaccedilatildeo mestre-escravo a replicaccedilatildeo multimaster siacutencrona eacute muito usada para balanceamento de carga em alguns casos podendo ha-ver problemas de consistecircncia ao se usar funccedilotildees como random()

Soluccedilatildeo simplesUma soluccedilatildeo muito comum e ba-rata para alta disponibilidade em PostgreSQL eacute o uso de um dispositivo de storage comunicando-se com os

servidores PostgreSQL via NFS (fi-gura 1) A soluccedilatildeo consiste em dois servidores PostgreSQL e Heartbeat Um deles seraacute o primaacuterio e o outro o secundaacuterio O secundaacuterio aguarda-raacute algum problema com o servidor primaacuterio e caso ocorra iniciaraacute o serviccedilo do PostgreSQL assumindo o endereccedilo de rede (VIP) usado para comunicaccedilatildeo com a aplicaccedilatildeo

Essa soluccedilatildeo natildeo foi planejada para que o servidor primaacuterio assuma o controle novamente do ambiente caso retorne a operar pois eacute reco-mendaacutevel verificar a razatildeo do inci-dente corrigir e retornar a operaccedilatildeo ao ambiente num periacuteodo de pouco uso do banco de dados

Haacute alguns pontos importantes nessa soluccedilatildeo Sempre que ocorrer uma atualizaccedilatildeo de seguranccedila no PostgreSQL eacute recomendaacutevel apli-caacute-la a todos os servidores pois natildeo se deve executar uma versatildeo dife-rente do binaacuterio em cada maacutequina Aleacutem disso nesse tipo de soluccedilatildeo de alta disponibilidade natildeo eacute pos-siacutevel haver dois servidores com o serviccedilo PostgreSQL em execuccedilatildeo A disponibilidade eacute garantida pelo armazenamento dos dados no stora-

ge sem necessidade de mecanismos de replicaccedilatildeo de dados externos Por uacuteltimo poliacuteticas de backup devem continuar sendo usadas sem altera-ccedilotildees Caso aconteccedila algum incidente que indisponibilize os dados haveraacute formas de recuperaacute-los

ImplementaccedilatildeoO procedimento de instalaccedilatildeo seraacute dividido por servidores a primeira parte consiste na instalaccedilatildeo do servi-dor primaacuterio e a segunda parte trata do servidor secundaacuterio considerando que um ponto de montagem foi dis-ponibilizado previamente em ambos os servidores em varlibpostgre-sqlstorage

Depois de instalar o pacote do PostgreSQL 83 (versatildeo estaacutevel mais recente) do Debian 50 (Lenny) o di-retoacuterio padratildeo da instalaccedilatildeo do cluster de base de dados[3] eacute o local em que estaacute uma instacircncia do PostgreSQL com seu cataacutelogo de sistema Esse diretoacuterio seraacute movido para o storage usando uma particcedilatildeo NFS montada no servidor o que exige uma parada no serviccedilo do PostgreSQL

Parado o serviccedilo do PostgreSQL mova o diretoacuterio com o cluster de base de dados armazenado local-mente para o diretoacuterio NFS remo-to Depois disso eacute necessaacuterio ainda criar um link simboacutelico para que o serviccedilo inicie corretamente

mv varlibpostgresql83 varlibpostgresqlstorage ln -s varlibpostgresqlstorage83 varlibpostgresql83

Feito isso reinicie o PostgreSQL e crie um arquivo com ajustes de per-formance do PostgreSQL chamado tuningsh em usrlocalsbin (exemplo 1) Esse arquivo conteraacute ajustes de paracirc-metros do kernel Linux para o Postgre-SQL aproveitar melhor os recursos de hardware Seria possiacutevel usar o arquivo etcsysctlconf mas ele natildeo oferece

Exemplo 1 Arquivo tuningsh

01 binbash0203 echo ldquo2rdquo gt procsysvmovercommit_memory0405 kernelshmmax = 447177599906 25 do total da RAM07 echo ldquo17179869184rdquo gt procsyskernelshmmax08 kernelshmmax = 429496729609 echo ldquo17179869184rdquo gt procsyskernelshmall10 echo ldquo300 32500 150 160rdquo gt procsyskernelsem11 echo ldquo65536rdquo gt procsysfsfile-max12 echo ldquodeadlinerdquo gt sysblocksdaqueuescheduler13 echo ldquo16777216rdquo gt procsysnetcorermem_default14 echo ldquo16777216rdquo gt procsysnetcorewmem_default15 echo ldquo16777216rdquo gt procsysnetcorermem_max16 echo ldquo16777216rdquo gt procsysnetcorewmem_max

copy Linux New Media do Brasil Editora Ltda

57

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

a possibilidade de alterar tambeacutem o sistema de arquivos sysfs

Entre os paracircmetros a serem mo-dificados shmmax geralmente deveraacute ser de 25 a 50 do total da memoacute-ria RAM dependendo do tipo de aplicaccedilatildeo e modelagem de dados Nesse caso usamos usamos 50 (16 GB) (linha 7)

Torne o script executaacutevel e crie um link simboacutelico para que ele seja carregado na inicializaccedilatildeo

chmod 0755 usrlocalsbintuningsh ln -s usrlocasbintuningsh etcrcSdS99tuningsh

Em seguida execute-o para efetivar as alteraccedilotildees dos paracircmetros do sis-tema operacional

Ajuste do PostgreSQLCom o sistema operacional pronto eacute hora de ajustar o banco de dados Para isso comece editando o arqui-vo postgresqlconf de acordo com as determinaccedilotildees listen_adresses um asterisco

permite que o PostgreSQL escu-te conexotildees vindas de qualquer rede Ainda eacute necessaacuterio alterar o arquivo pg_hbaconf para que essa alteraccedilatildeo tenha efeito

max_connections nuacutemero total de conexatildeo simultacircneas aceitas pelo PostgreSQL

shared_buffers 20 a 25 do total da memoacuteria RAM

wal_write_delay 500 milisse-gundos

commit_delay 100 checkpoint_segments 128 checkpoint_timeout 30 min checkpoint_completion_

target 07

Exemplo 2 Arquivo postgresqlconf

data_directory = lsquovarlibpostgresql83mainrsquo usar dados em outro diretoacuteriohba_file = lsquoetcpostgresql83mainpg_hbaconfrsquo arquivo de autenticaccedilatildeo por maacutequina (host-based authentication)ident_file = lsquoetcpostgresql83mainpg_identconfrsquo arquivo de configuraccedilatildeo de identexternal_pid_file = lsquovarrunpostgresql83-mainpidrsquo gravar um arquivo extra com o PIDlisten_addresses = lsquorsquo IP(s) para escutarport = 5432 porta (necessaacuterio reiniciar)max_connections = 1000 (necessaacuterio reiniciar)unix_socket_directory = lsquovarrunpostgresqlrsquo (necessaacuterio reiniciar)ssl = false (necessaacuterio reiniciar)shared_buffers = 12GB miacutenimo=128 kB maacuteximo=max_connections16kBmax_fsm_pages = 204800 miacutenimo=max_fsm_relations16 6 bytes cadafsync = on (des)ativa sincronizaccedilatildeo forccediladawal_sync_method = open_sync o padratildeo eacute a primeira opccedilatildeofull_page_writes = on recuperar-se de gravaccedilotildees de paacutegina parciaiswal_writer_delay = 500ms 1-10000 milissegundoscommit_delay = 100 0-100000 em microssegundoscheckpoint_segments = 128 em segmentos de logfile miacutenimo=1 16MB cadacheckpoint_timeout = 30min 30s-1hcheckpoint_completion_target = 07 duraccedilatildeo do alvo do checkpoint 00 - 10effective_cache_size = 48GBdatestyle = lsquoiso dmyrsquolc_messages = lsquopt_BRUTF-8rsquo locale para mensagens de erro do sistemalc_monetary = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo monetaacuterialc_numeric = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo numeacutericalc_time = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo de tempodefault_text_search_config = lsquopg_catalogportuguesersquo

Exemplo 3 Arquivo pg_hbaconf

local all postgres md5local all all md5host all all 12700132 md5host all all 1128 md5host intportal portal 192168103032 md5

copy Linux New Media do Brasil Editora Ltda

58 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

effective_cache_size 75 da memoacuteria RAM

Poreacutem tenha em mente que conforme a base de dados cresce esses e outros paracircmetros do ar-quivo de configuraccedilatildeo precisaratildeo ser alterados

O exemplo 2 mostra o conteuacutedo do arquivo postgresqlconf apoacutes sua ediccedilatildeo

No arquivo pg_hbaconf altere as poliacuteticas de acesso conforme a poliacutetica da instituiccedilatildeo ativando ou desativando a criptografia definindo quais redes podem acessar o banco etc No exemplo 3 o arquivo permite que o usuaacuterio portal acesse a base de dados intportal com o endereccedilo de rede 192168103032 usando cripto-grafia MD5

Para efetivar as al-teraccedilotildees reinicie o PostgreSQL

HeartbeatO hearbeat eacute tido por muitos como si-nocircnimo de alta dis-ponibilidade mas eacute apenas um meio para esse fim e a soluccedilatildeo para alta disponibi-lidade de bancos de dados PostgreSQL proposta neste artigo o utiliza

Apoacutes instalar o pa-cote do heartbeat na distribuiccedilatildeo usada no servidor adicione ao arquivo etchosts os nomes e IPs dos ser-vidores primaacuterio e se-cundaacuterio No exem-plo deste artigo esses valores satildeo

1921681010 pgprimario1921681011 pgsecundario

O arquivo de con-figuraccedilatildeo do heart-beat pode se localizar em etchad ou em etcheartbeat O exemplo 4 mostra o conteuacutedo do arquivo hacf que deve resi-dir no diretoacuterio usa-do pela distribuiccedilatildeo

em questatildeo cujas opccedilotildees tecircm os seguintes efeitos logfacility executar o heart-

beat como serviccedilo logfile local onde seraacute gravado

o registro de atividades do heart-beat

keepalive intervalo de tempo de comunicaccedilatildeo entre os noacutes

deadtime intervalo de tempo para que heartbeat reconheccedila um noacute como morto

bcast forma de comunicaccedilatildeo en-tre os servidores hearbeat neste caso com uma placa exclusiva para comunicaccedilatildeo (eth1)

ping checa se o IP virtual estaacute no ar

auto_failback caso o servi-dor primaacuterio saia do ar quan-do voltar ele natildeo tentaraacute assu-mir como servidor principal no cluster

respawn hacluster usrlibheart-beatipfail serviccedilo do heartbeat para trocar o IP Virtual em caso de falha no noacute principal

Ainda no diretoacuterio de configu-raccedilatildeo do heartbeat crie o arquivo haresources Eacute nesse arquivo que o heartbeat procuraraacute os serviccedilos que precisam ser executados no cluster Tais serviccedilos satildeo scripts que podem ou natildeo ter paracircmetros e estatildeo loca-lizados em etchadresourced Acrescente ao arquivo haresources o seguinte conteuacutedo

pgprimario IPaddr192168105pgprimario PostgreSQL

O paracircmetro IPaddr adiciona o en-dereccedilo de rede virtual (VIP) ao clus-ter e PostgreSQL controla o Postgre-SQL no heartbeat Esse script natildeo eacute distribuiacutedo oficialmente e pode ser personalizado conforme a necessida-de do ambiente

Crie tambeacutem o arquivo authkeys para abrigar a senha (criptografada com SHA1) necessaacuteria agrave comunica-

Exemplo 5 Script PostgreSQL do heartbeat

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 case $1 in07 start)08 etcinitdpostgresql-83 start09 sleep 210 check_pgsqlsh amp11 exit 012 13 14 stop)15 etcinitdpostgresql-83 stop16 kill $(ps a|grep check_pgsql|awk lsquo print $1 rsquo|head -n 1)17 exit 018 19 )20 21 esac

Exemplo 4 Arquivo hacf

logfacility daemonlogfile varloghalognode pgprimario pgsecundariokeepalive 2deadtime 10bcast eth1ping 192168105auto_failback offrespawn hacluster usrlibheartbeatipfail

copy Linux New Media do Brasil Editora Ltda

59

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

ccedilatildeo entre os noacutes do heartbeat Para criar a senha use algo como

echo ldquosuasenhardquo | sha1sum2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53 -

Adicione esse hash ao arquivo authkeys da seguinte forma

auth 11 sha1 2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53

Em seguida altere as permis-sotildees do arquivo para 600 para que somente o usuaacuterio root possa ler e escrever nele

No diretoacuterio etchadresourced ficam os scripts de interaccedilatildeo dos ser-viccedilos do heartbeat Crie nele o script PostgreSQL referenciado no arquivo haresources que criamos antes com o conteuacutedo mostrado no exemplo 5 Esse arquivo tambeacutem precisaraacute ter suas permissotildees alteradas mas dessa vez para permitir que ele seja executado Portanto recomenda-se usar 755 como permissotildees

Crie tambeacutem um script (usrlo-calsbincheck_pgsqlsh) para verificar se o PostgreSQL continua no ar de acordo com o exemplo 6 Esses satildeo os significados das variaacuteveis HOST endereccedilo de rede do ser-

vidor USER usuaacuterio do PostgreSQL DB banco de dados a ser usado TEST tipo de consulta que serviraacute

como teste REPEAT nuacutemero de repeticcedilotildees do

teste ateacute considerar o servidor como inativo

OTHER endereccedilo de rede do ser-vidor secundaacuterio

Apoacutes tornar esse script executaacutevel eacute necessaacuterio novamente reiniciar o PostgreSQL e o proacuteprio heartbeat Com isso fica concluiacuteda a confi-guraccedilatildeo do servidor PostgreSQL primaacuterio

Servidor secundaacuterioPara o servidor secundaacuterio seratildeo repe-tidos os mesmos passos da instalaccedilatildeo e configuraccedilatildeo do servidor primaacuterio

poreacutem com certas diferenccedilasDepois de instalar o pacote do

PostgreSQL 83 pare o serviccedilo deste e apague o diretoacuterio varlibpostgre-

Exemplo 6 Script check_pgsqlsh no servidor primaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101008 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101114 15 check()16 17 while true18 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull19 if [ $ -eq 0 ]20 then21 break22 do23 sleep 224 25 if [ $COUNTER -eq $REPEAT ]26 then27 etcinitdpostgresql-83 stop28 etcinitdheartbeat stop29 else30 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull31 if [ $ -eq 0 ]32 then33 COUNTER=rdquo1rdquo34 else35 let COUNTER=$COUNTER+136 fi37 fi38 39 done40 fi41 42 43 check

copy Linux New Media do Brasil Editora Ltda

60 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

Exemplo 7 Script check_pgsqlsh no servidor secundaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101108 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101014 15 16 check()17 18 while true19 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull20 if [ $ -eq 0 ]21 then22 break23 do24 sleep 225 26 if [ $COUNTER -eq $REPEAT ]27 then28 etcinitdpostgresql-83 stop29 etcinitdheartbeat stop30 else31 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull32 if [ $ -eq 0 ]33 then34 COUNTER=rdquo1rdquo35 else36 let COUNTER=$COUNTER+137 fi38 fi39 40 done41 fi42 43 44 check

sql83 pois ele usaraacute quando ativo o mesmo cluster de base de dados do servidor primaacuterio que estaacute arma-

zenado no storage Esse passo eacute o primeiro em que os procedimentos dos dois servidores diferem

Com o diretoacuterio apagado eacute ne-cessaacuterio criar um link simboacutelico para que o serviccedilo inicie correta-

mente quando for solicitado pelo heartbeat

ln -s varlibpostgresqlstorage83 varlibpostgresql83

Assim como no servidor primaacuterio crie um arquivo tuningsh com ajustes de per-formance para o PostgreSQL em usrlocalsbin Como os servidores tecircm hardwares semelhantes usaremos os mesmos ajustes de perfor-mance (exemplo 1) Apoacutes salvar o script crie um link simboacutelico para que ele seja carregado ao iniciar os servi-ccedilos do servidor

ln -s usrlocalsbintuningsh etcrcSdS99tuningsh

Execute o script receacutem-criado para efetivar as mo-dificaccedilotildees dos paracircmetros do sistema operacional

Diferentemente do servi-dor primaacuterio natildeo seratildeo neces-saacuterias alteraccedilotildees aos arquivos postgresqlconf e pg_hbaconf pois os arquivos usados seratildeo os mesmos

Assim como no servidor primaacuterio instale o heartbeat e acrescente as seguintes linhas ao arquivo etchosts

1921681011 pgprimario1921681010 pgsecundario

Note que os IPs satildeo inver-tidos com relaccedilatildeo ao con-teuacutedo do arquivo no servidor primaacuterio

Em seguida crie o arquivo de configuraccedilatildeo etchad

copy Linux New Media do Brasil Editora Ltda

61

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] Linux Magazine 43 httplnmcombrissuelm_43_alta_disponibilidade

[2] Discussatildeo no PGDG sobre replicaccedilatildeo httparchivespostgresqlorgpgsql-hackers2008-05msg00913php

[3] Criaccedilatildeo de clusters PostgreSQL httpwwwpostgresqlorgdocs83interactivecreating-clusterhtml

hacf de acordo com o exemplo 4 e etchadharesources com conteuacutedo igual ao do servidor primaacuterio

pgprimario IPaddr192168105pgprimario PostgreSQL

Todos os procedimentos com o arquivo etchadauthkeys tambeacutem devem ser repetidos assim como os do script etchadresourcedPostgreSQL (exemplo 5) O script diferente entre os servidores primaacute-rio e secundaacuterio eacute o check_pgsqlsh em usrlocalsbin (exemplo 7) pois os valores das variaacuteveis HOST e OTHER devem ter seus valores troca-dos entre si

Ao final no entanto o mesmo procedimento do servidor primaacuterio eacute necessaacuterio permitir a execuccedilatildeo dos scripts criados e reiniciar o Postgre-SQL e o heartbeat

ConsideraccedilotildeesAs atualizaccedilotildees de seguranccedila deveratildeo ser realizadas em ambos os servido-res com diferentes procedimentos para cada No servidor que estiver ativo no cluster deve-se atualizar conforme a liberaccedilatildeo de novas ver-sotildees do pacote do PostgreSQL e os procedimentos de atualizaccedilatildeo da distribuiccedilatildeo em uso Eacute recomendaacute-vel para ambos os servidores fazer a atualizaccedilatildeo em um horaacuterio de pou-co uso ou numa parada programada para manutenccedilatildeo

As atualizaccedilotildees de seguranccedila no servidor secundaacuterio precisam de atenccedilatildeo pois distribuiccedilotildees baseadas em Debian reiniciam o serviccedilo do PostgreSQL Nesse caso esse rei-niacutecio pode afetar o funcionamento do servidor primaacuterio Para contornar esse problema podemos alterar a permissatildeo do arquivo etcinitdpostgresql-83 antes de atualizar o pacote do PostgreSQL

chmod 000 etcinitdpostgresql-83

Depois de atualizar o pacote basta retornar o pacote agraves permis-sotildees anteriores (e corretas para a operaccedilatildeo)

chmod 755 etcinitdpostgresql-83

O quadro 1 oferece ajuda caso ocorra algum problema com o storage durante a operaccedilatildeo do cluster

ConclusatildeoUma soluccedilatildeo de alta disponibilidade como essa natildeo elimina a necessidade de uma poliacutetica de becape e proce-dimentos de melhora contiacutenua de performance O becape pode ser res-taurado a partir de qualquer maacutequina na soluccedilatildeo de alta disponibilidade desde que elas estejam com o serviccedilo do PostgreSQL em execuccedilatildeo Novos procedimentos de becape podem ser adotados como armazenamento dos logs diaacuterios como complemento da poliacutetica existente

O aumento da disponibilidade do banco de dados natildeo significa aban-donar as poliacuteticas de contingecircncia e becape Tambeacutem eacute necessaacuterio plane-jar o aumento da disponibilidade de todo o ambiente (aplicaccedilatildeo e banco de dados) Natildeo desconsidere o uso de storages com iSCSI ou fibra oacutetica para melhor performance

Quadro 1 Problemas no storage

Em caso de problemas no storage o melhor eacute recriar o cluster de banco de dados com o comando initdb e restaurar seu conteuacutedo a partir do becape Dependendo do incidente pode-se optar por criar o cluster localmente ou em outro storage Caso seja local eacute possiacutevel criar um cluster provisoacuterio ateacute que o storage volte a ficar disponiacutevel para o servidor

O comando para isso eacute

pg_createcluster -u postgres -d varlibpostgresqlprovisorio --start-conf=auto 83 provisorio

e suas opccedilotildees satildeo

-u usuaacuterio que seraacute usado pelo cluster

-d diretoacuterio onde ficaraacute o cluster

--start-conf= opccedilatildeo para acrescentar a etcinitdpostgresq-83 o iniacutecio do cluster que estaacute sendo acrescentado

83 versatildeo instalada do PostgreSQL

provisorio identificaccedilatildeo do novo cluster

copy Linux New Media do Brasil Editora Ltda

62 httpwwwlinuxmagazinecombr

Integraccedilatildeo de dados com o ETL Talend

O talento do Talend Quem procura uma soluccedilatildeo ETL para Business Intelligence natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda por Miguel Koren OrsquoBrien de Lacy

Um dos componentes essen-ciais de uma soluccedilatildeo para a inteligecircncia de negoacutecios (BI

ndash Business Intelligence ) eacute o moacutedulo de integraccedilatildeo de informaccedilotildees de di-versas fontes de dados Felizmente o mercado de Software Livre e de coacutedigo aberto oferece algumas so-luccedilotildees bastante completas que satildeo usadas dentro dos pacotes de BI ou em modo stand alone As soluccedilotildees de integraccedilatildeo de dados satildeo conheci-das como ETL ( Extract Transform Load ) pois a missatildeo dessas soluccedilotildees eacute integrar informaccedilotildees e preparaacute-las para a formaccedilatildeo de tabelas no data mart Normalmente os dados precisam ser manipulados depois de obtidos e logo inseridos nas tabelas dos bancos de dados em que reside o data mart Ou seja estamos falando em obter os dados aplicar regras de negoacutecios da empresa facilitar as consultas pos-teriores ou validar a qualidade dos dados e entregaacute-los transformados ao destino fi nal Dentre as transfor-maccedilotildees normalmente aplicadas aos dados podemos destacar a seleccedilatildeo de campos importantes para a anaacutelise a fi ltragem dos registros necessaacuterios a limpeza dos dados (ldquoSrrdquo ou ldquoSe-nhorrdquo passam a valer ldquoSrdquo) a geraccedilatildeo dos campos calculados (por exemplo ldquovalor nf = quantidade valor unitaacute-riordquo) etc Mas essas soluccedilotildees tambeacutem podem ser consideradas integradores e manipuladores de dados para outras

necessidades podendo substituir mui-tos sistemas de ldquointerfacesrdquo de dados que satildeo desenvolvidos pelas aacutereas de TI de grandes empresas

Originalmente os sistemas cor-porativos foram desenvolvidos de forma isolada para cumprir alguma funccedilatildeo especiacutefi ca natildeo sendo parte do objetivo de projeto a necessidade de compartilhar dados Quando a quan-tidade desses sistemas comeccedilou a ser mais importante dentro das empresas surgiram as primeiras necessidades de integraccedilatildeo de dados como a carga de pedidos aos sistemas de estoque e fatu-ramento Tais necessidades de integra-ccedilatildeo foram implementadas diretamente por programas ou scripts especiacutefi cos Com a crescente complexidade das integraccedilotildees requeridas iniciou-se um encarecimento do desenvolvimento desses processos Os sistemas tinham manutenccedilatildeo complexa e as loacutegicas de integraccedilatildeo difiacuteceis de documentar auditar e entender Por isso as em-presas comeccedilaram a implementar ferramentas prontas ou semi-pron-tas para essa necessidade Essa foi a origem dos sistemas ETL

Esses sistemas poreacutem natildeo pos-suem a popularidade que merecem em razatildeo de certos fatores que impe-dem sua adoccedilatildeo Entre estes fatores devemos destacar Custo inicial Complexidade no uso com curva de

aprendizado muito empinada

Escalabilidade a necessidades de integraccedilotildees pequenas

A empresa Talend eacute fabricante

do Talend Open Studio [1] apre-sentado como ldquoo sistema ETL mais abrangente no mercado de software livre e coacutedigo abertordquo O modelo de negoacutecios da empresa eacute um dos claacutes-sicos para Software Livre A empresa desenvolve um produto que licencia sem custo usando licenciamento em modalidade livre no caso a GPL [2] e oferece serviccedilos e suporte co-merciais O software licenciado sob a GPL natildeo possui todos os compo-nentes que satildeo oferecidos a clientes sob o licenciamento de subscriccedilatildeo do serviccedilo mas mesmo dessa forma eacute extremamente uacutetil para as neces-sidades ETL de qualquer empresa O Talend Open Studio foi liberado no mercado em 2005 pela empresa Talend com bases na Franccedila paiacutes com uma poliacutetica ofi cial de apoio a Software Livre e Coacutedigo Aberto Analistas de TI como Forrester Rese-arch [3] IDC [4] e Bloor Research [5] posicionam o Talend como o melhor sistema para necessidades de integraccedilatildeo de dados O sistema BI em software livre SpagoBI [6] [7] eacute um exemplo de uso do Talend como seu componente ETL padronizado

O modelo de Software Livre eacute bem apropriado para esse tipo de soluccedilatildeo pois faz bom uso de desen-

AN

AacuteLIS

E

AN

AacuteLIS

E

copy Linux New Media do Brasil Editora Ltda

63

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

volvimento colaborativo em que muitas pessoas contribuem com moacutedulos para conexotildees a fontes de dados variadas Mas o sucesso do Talend tambeacutem mostra que o Software Livre natildeo eacute apenas bem sucedido em soluccedilotildees ldquocomoditiza-dasrdquo como sistemas operacionais e utilitaacuterios de infra-estrutura O Talend mostra que uma soluccedilatildeo livre pode ser muito atrativa num mercado novo em formaccedilatildeo com-petindo com sistemas proprietaacuterios de grandes empresas como IBM SAS e SAP as quais tecircm preccedilos de licenciamento de niacutevel corporativo Empresas como Oracle e Microsoft tambeacutem competem nesse mercado poreacutem com uma visatildeo mais restrita focada nos produtos de base de cada uma banco de dados Oracle e SQL Server respectivamente

Um forte apelo do Talend eacute a disponibilidade de uma ferramenta abrangente em que os proacuteprios usuaacute-rios da informaccedilatildeo podem modelar as regras de negoacutecios (fontes de dados campos requeridos regras de trans-formaccedilatildeo etc) para a integraccedilatildeo dos dados Hoje a aacuterea de TI de qualquer

empresa tem diariamente mais e mais dados e os usuaacuterios tecircm necessida-des de visualizaccedilatildeo que satildeo mais urgentes a cada dia Assim eacute muito uacutetil que os proacute-prios usuaacuterios possam usar o sistema de for-ma natildeo teacutecnica para especificar as regras de integraccedilatildeo

Recurso e TecnologiaO Talend eacute um sistema desenvolvi-do em Java que usa uma arquitetura modular formada por Gerenciador graacutefico de negoacutecios

(visatildeo natildeo teacutecnica de necessida-des de fluxo de dados)

Gerenciador graacutefico de proces-sos ETL

Gerenciador de metadados (repositoacuterio para reutilizaccedilatildeo de objetos)

Repositoacuterio de processos (moacutedulo adicional da versatildeo comercial)

Interface web services a proces-sos ETL

Monitor de processos Componentes modulares (atu-

almente mais de 400) Usando a API do sistema podem ser desenvolvidos componentes personalizados

O gerenciador graacutefico de processos ETL roda dentro do ambiente Eclipse [8][9] seguindo a filosofia de inte-graccedilatildeo de ferramentas dentro desse ambiente para desenvolvimento

Normalmente os primeiros trecircs moacutedulos satildeo usados na ordem listada O gerenciador de negoacutecios eacute usado pelos usuaacuterios do sistema enquanto o gerenciador de processos ETL e o gerenciador de metadados satildeo usados pelos programadores Mesmo que o repositoacuterio de projetos ETL com apoio a equipes de trabalho seja um componente oferecido comer-cialmente o Talend Open Studio inclui a possibilidade de versio-

namento do desenvolvimento dos processos A figura 1 mostra o uso desse recurso

O Talend eacute um sistema ldquogera-dor de coacutedigordquo em oposiccedilatildeo a um sistema de ldquocaixa pretardquo ndash a qual eacute responsaacutevel pela execuccedilatildeo dos pro-cessos ETL ndash ou seja o Talend natildeo requer um servidor de execuccedilatildeo de processos ETL A vantagem da gera-ccedilatildeo de coacutedigo eacute que eacute mais simples integrar os processos ETL dentro de outros aplicativos e os modelos satildeo de portabilidade muito mais flexiacutevel Aleacutem de sistemas como SpagoBI o

Figura 1 Gerenciamento de versotildees

Figura 2 Tela de iniacutecio do Talend

copy Linux New Media do Brasil Editora Ltda

64 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

Talend eacute integrado em sistemas de empresas como Ingres Teradata e JasperSoft O mecanismo de geraccedilatildeo de coacutedigo permite a integraccedilatildeo do coacutedigo gerado pelo Talend dentro de outras soluccedilotildees aleacutem de ter maior portabilidade Outra vantagem de mecanismos de geraccedilatildeo de coacutedigo eacute que mecanismos de integraccedilatildeo ldquoonlinerdquo conhecidos hoje como ldquointegraccedilatildeo operacionalrdquo podem ser implementados com maior fa-cilidade O conceito de geraccedilatildeo de coacutedigo versus ldquocaixa pretardquo de exe-cuccedilatildeo dos processos ETL eacute a maior diferenccedila entre o Talend e muitos outros sistemas O conceito de ge-raccedilatildeo de coacutedigo natildeo foi popular no passado possivelmente por causa do marketing das empresas comerciais destas soluccedilotildees mas as vantagens que o Talend apresenta usando este conceito satildeo importantes

No caso o Talend gera coacutedigo Java ou Perl e SQL para os proces-sos ETL Aleacutem de aplicar o conceito ETL ele aplica tambeacutem o conceito ELT (Extract Load Transform) o que significa que pode aproveitar a eficiecircncia e performance nativas de bancos de dados SQL ou seja os dados satildeo extraiacutedos carregados no destino e somente depois jaacute den-tro do banco de destino eacute aplicada a loacutegica de transformaccedilatildeo usando SQL e linguagem procedural de

cada banco de dados Para a funcio-nalidade ELT satildeo suportados nati-vamente hoje os bancos de dados Oracle MySQL e Teradata

OperaccedilatildeoO sistema estaacute disponiacutevel em versotildees para Linux Unix e Windows Para todas as plataformas eacute necessaacuterio ter Java e Perl no equipamento considerando seu conceito de de-senho que eacute de geraccedilatildeo de coacutedigo ou seja que os processos do Talend satildeo executados pela maacutequina vir-tual Java (JVM) ou pelo interpre-tador Perl

O download do sistema ainda eacute relativamente pesado (235 MB) mas com conexotildees de banda larga cada dia mais confiaacuteveis e raacutepidas pode ser feito em poucas horas Neste artigo exploraremos o Ta-lend Open Studio para Linux em ambiente graacutefico Gnome rodando em OpenSUSE 102 No caso de usaacute-lo em Windows 2000 existe um preacute-requisito adicional que eacute a instalaccedilatildeo do GDI requerido pelo Eclipse [10] A partir do Windows XP essa biblioteca estaacute incluiacuteda nativamente Vale a pena fazer o download tambeacutem do pacote com-pleto de documentaccedilatildeo Referente ao produto e agrave documentaccedilatildeo o Talend apresenta as vantagens de suporte por uma empresa comercial pois a documentaccedilatildeo eacute bastante comple-ta Outro destaque importante do Talend eacute o acesso a um sistema de ajuda online muito completo In-felizmente isso ainda natildeo eacute norma na maioria dos sistemas de coacutedigo aberto O site do Talend oferece um wiki e uma aacuterea de tutoriais

Simplesmente descompacte o pacote obtido por download e atri-bua propriedades de executaacutevel ao binaacuterio de iniacutecio do sistemaFigura 4 Geraccedilatildeo de um novo projeto

Figura 3 Definiccedilatildeo de repositoacuterio local inicial

copy Linux New Media do Brasil Editora Ltda

65

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

chmod a+x TalendOpenStudio-linux-gtk-x86

Selecione o binaacuterio de iniacutecio apropriado para sua arquitetura de CPU Para iniciar o gerenciador de processos execute o binaacuterio

TalendOpenStudio-linux-gtk-x86 amp

Isso exibiraacute a tela de abertura do sistema (figura 2)

Leia e aceite o contrato de licen-ciamento Apareceraacute finalmente a tela de conexatildeo ao repositoacuterio de processos ETL (figura 3) No caso do Talend Open Studio o repositoacuterio somente poderaacute ser local

Com o repositoacuterio local defini-do gere um projeto novo selecio-nando Create a new local project (figura 4)

Ao definir o tiacutetulo e a descriccedilatildeo do projeto deve-se selecionar tambeacutem a linguagem de geraccedilatildeo do coacutedigo No exemplo para o artigo escolhemos coacutedigo em Java A figura 5 mostra as opccedilotildees de definiccedilatildeo do projeto

Finalmente jaacute se pode entrar no projeto escolhido pela tela principal bastando selecionar nela o projeto e pressionar o botatildeo open Apoacutes alguns momentos apareceraacute a tela principal do sistema Na primeira vez seraacute pedido ao usuaacuterio que re-

gistre o uso digitando seu email e selecionando o paiacutes Este passo natildeo eacute obrigatoacuterio mas eacute recomendado para receber notificaccedilotildees de novas versotildees do sistema

Antes de usar o Talend Open Stu-dio deve ser configurada a lista de elementos disponiacuteveis para o dese-nho Isso pode ser feito modifican-do-se as propriedades do projeto na

opccedilatildeo de ldquopalette settingsrdquo A figura 6 mostra a inclusatildeo de conectores para MS SQL Server e PostgreSQL que devem ser selecionados no caso de precisarmos desenhar um processo de integraccedilatildeo de dados entre estes dois bancos de dados

O desenho de um processo ETL requer vaacuterias etapas incluindo de-senho dos componentes de negoacute-cios dos jobs de processamento de conexotildees JDBC acoplamento de moacutedulos de processamento e outros elementos A figura 7 mostra um exemplo de configuraccedilatildeo de cone-xatildeo JDBC ao banco Microsoft SQL Server O driver JDBC utilizado vem junto com a instalaccedilatildeo do Talend no caso o excelente JTDS [11] A figura 8 mostra a tela do Talend Open Studio com a visatildeo da paleta de fer-ramentas componentes tratados e a ediccedilatildeo de um elemento de negoacutecios (business object)

Aleacutem das possibilidades de desen-volvimento loacutegico da soluccedilatildeo dentro do ambiente graacutefico o Talend oferece

Figura 5 Detalhes de um novo projeto ETL

Figura 6 Formaccedilatildeo da lista de ferramentas

copy Linux New Media do Brasil Editora Ltda

66 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

ferramentas para preparar diagramas formatados para necessidades de documentaccedilatildeo e apresentaccedilatildeo Por exemplo podem ser escolhidas as fontes as cores e os estilos de linhas para os objetos do diagrama aleacutem de haver a possibilidade de alinhamen-to numa grade e a opccedilatildeo de layout automaacutetico dos componentes

Entre as caracteriacutesticas que mais flexibilidade oferecem ao Talend estaacute a biblioteca de componentes Esses componentes estatildeo divididos em grupos funcionais em que os de maior utilidade para uso corporativo podem ser os componentes prepa-rados para acesso a outros sistemas tais como SugarCRM Salesforce e SAP O Talend apresenta um des-taque no mercado ao oferecer um conector ao SAP A figura 9 mostra alguns componentes do Forge do sistema que podem ser baixados e instalados para aumentar a funcio-nalidade padratildeo do Talend

Um destaque do mecanismo de componentes do Talend eacute a possibili-dade de publicar os processos automa-ticamente por exemplo no servidor de BI SpagoBI Outro componente de uso geral e que incrementa em

muito a complexi-dade de processos que podem ser de-finidos eacute o executor de scripts em Groo-vy Aleacutem de poder desenvolver com-ponentes especiacutefi-cos a possibilidade de gerar scripts em Groovy para trata-mento avanccedilado dos dados permite que as transforma-ccedilotildees sigam regras muito especiais da empresa A figura 10 mostra a definiccedilatildeo de integraccedilatildeo com o SpagoBI

Vale a pena des-tacar algumas ca-

racteriacutesticas conceituais do editor graacutefico que satildeo importantes para uso corporativo do Talend Os desenhos satildeo versionados

com a data de cada versatildeo Cada objeto dos modelos re-

cebe um estado que pode ser ldquonatildeo verificadordquo ldquoverificadordquo ou ldquovalidadordquo por default no caso

dos business objects Entretan-to podem ser definidos outros estados usados na empresa

Existe uma aacuterea em cada proje-to para reunir a documentaccedilatildeo que pode conter objetivos justi-ficativas exemplos de resultados desejados etc O Talend tambeacutem gera documentaccedilatildeo teacutecnica e de processo automaticamente

Separaccedilatildeo de papeacuteis entre usuaacute-rios de negoacutecios que descrevem suas necessidades a niacutevel macro (definindo business objects) e desenvolvedores (definindo jobs e outros elementos)

Notificaccedilatildeo ou atualizaccedilatildeo au-tomaacutetica do sistema quando disponibilizadas novas versotildees Talend ou dos componentes

Facilidade para execuccedilatildeo de testes individuais e integrados de componentes

Importaccedilatildeo e exportaccedilatildeo de pro-jetos completos ou elementos

O Talend eacute um sistema muito completo com o apoio de uma empresa comercial um ecossiste-ma de componentes muito amplo e com um ambiente de definiccedilatildeo

Figura 7 Definiccedilatildeo de conexatildeo JDBC

Figura 8 Tela do Talend Open Studio

copy Linux New Media do Brasil Editora Ltda

67

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

e desenvolvimento faacutecil de usar aleacutem de poderoso e visualmente atraente Assim o projeto pode re-solver a questatildeo relatada no iniacutecio do artigo sobre os motivos da falta de popularizaccedilatildeo de sistemas ETL no mercado

ConclusatildeoHoje qualquer empresa tem ne-cessidades de ETL e integraccedilatildeo de dados e em muitos casos eacute caro e complexo desenvolver soluccedilotildees caseiras especiacuteficas O Talend apre-senta uma soluccedilatildeo flexiacutevel com a qual estes processos podem ser

modelados e executados de forma confiaacutevel Podem ser definidos e documentados com a participaccedilatildeo dos usuaacuterios que satildeo os principais interessados no resultado final Naturalmente esse tipo de divisatildeo de atividades ou responsabilidades requer que todos os usuaacuterios in-dependentemente do papel que desempenham no sistema sejam devidamente treinados Em TI eacute cada vez mais comum haver situ-accedilotildees em que os sistemas satildeo sim-ples e poderosos para usar mas os usuaacuterios devem ser treinados nos princiacutepios da tecnologia apresen-

tada Quem usa o Talend deveraacute estar ciente da documentaccedilatildeo em inglecircs ou em francecircs aleacutem do uso do sistema em inglecircs

O uso do Talend dentro de uma empresa eacute facilitado pelas caracte-riacutesticas corporativas do sistema que permitem entre outras possibilida-des ter alta produtividade e visibi-lidade dos processos pelo apoio a componentes especiacuteficos tais como conectores SAP Salesforce ou cus-tomizados e geraccedilatildeo de documen-taccedilatildeo Provavelmente seraacute difiacutecil encontrar um caso de uso que natildeo possa ser atendido com comodidade pelo Talend

Mais informaccedilotildees

[1] Talend httpwwwtalendcom

[2] GPL versatildeo 2 httpwwwgnuorglicensesold-licensesgpl-20html

[3] Forrester Research httpwwwforrestercom

[4] IDC httpwwwidccom

[5] Bloor Research httpwwwbloor-researchcom

[6] SpagoBI httpspagobiengit

[7] Miguel KO de Lacy ldquoNegoacutecio inteligenterdquo httpwwwlnmcombrarticle1747

[8] Eclipse httpwwweclipseorg

[9] Linux Magazine 36 ndash Eclipse httpwwwlnmcombrissue1353

[10] GDI httpwwweclipseorgswtfaqphpnographicslibrary

[11] JTDS httpjtdssourceforgenet

Figura 9 Forge de componentes mostrando aqueles especiacuteficos de algum sistema

Figura 10 Integraccedilatildeo com o SpagoBI Server

copy Linux New Media do Brasil Editora Ltda

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

68 httpwwwlinuxmagazinecombr

Gerenciamento de identidade na web com o Open ID

Identidade aberta mas segura

O OpenID oferece um padratildeo aberto para login em websites fechadospor Nils Magnus

A Web 20 eacute uma boa coisa como todo mundo imagina Um problema eacute a multiplici-

dade de sites protegidos por senha para acesso Blogs pessoais comu-nidades virtuais do Xing ao Orkut e Facebook e sites que gerenciam fluxo de trabalho despesas plane-jamento de feacuterias frequumlentemente confiam em aplicaccedilotildees baseadas na web com o uso de contas de usuaacuterio privadas Esse excesso de senhas de login estaacute fazendo com que alguns usuaacuterios descontentes percam a pa-ciecircncia Enquanto os usuaacuterios usam um dispositivo fiacutesico uacutenico e local ferramentas como os gerenciadores de senhas oferecidos pela maioria dos navegadores e alternativas como o KDE Wallet satildeo de grande ajuda

Mas o paradigma da Web 20 su-potildee que o usuaacuterio tem a liberdade de se mover e efetuar login de dife-rentes locais

Opccedilatildeo da comunidadeSoluccedilotildees para o gerenciamento de identidades fornecem uma soluccedilatildeo de maior mobilidade e flexibilida-de para simplificar o login via web Essas ferramentas muitas vezes empregam o princiacutepio da idonei-dade com terceiros Alguns grandes

players globais tecircm avanccedilado com serviccedilos que oferecem soluccedilotildees de login confiaacuteveis desenvolvidas por terceiros de uma uacutenica fonte O sis-tema Microsoft Passport foi criado em sintonia com esse sentimento Hoje o mercado do Microsoft Passport eacute o ldquoWindows Live IDrdquo [1] Muitos usuaacuterios no entanto estatildeo receo-sos de se tornarem dependentes de aplicativos proprietaacuterios

Uma recente alternativa conhe-cida como Liberty Alliance Project [2] ofereceu uma abordagem mais aberta mas foi amplamente consi-derada como um exagero de especi-ficaccedilotildees e por isso ainda natildeo obteve grande adoccedilatildeo apesar de seus sete anos de esforccedilo O projeto OpenID sob os auspiacutecios da OpenID Foun-dation [3] se baseia na mais simples funcionalidade podendo ser mais facilmente integrado a sistemas de autenticaccedilatildeo online

Os usuaacuterios que optaram pela alternativa do OpenID natildeo inserem um nome de usuaacuterio mas em vez disso identificam-se com uma URI que pode ser exibida em um navega-dor web A URI pode ser um ende-reccedilo web oferecido por um serviccedilo OpenID como httpnilsmagnusmyopenidcom no MyopenID [4] O tipo de identidade natildeo eacute importan-te contanto que qualquer navegador

consiga acessar a paacutegina A paacutegina teraacute que adicionar uma tag que aponte para o provedor do serviccedilo

ltlink rel=rdquoopenidserverrdquo href=rdquohttpwwwmyopenidcomserverrdquo gtltlink rel=rdquoopeniddelegaterdquo href=rdquohttpnilsmagnusmyopenidcomrdquo gt

O servidor do lado do provedor especifica a primeira relaccedilatildeo a segun-da reafirma o nome da identidade O provedor normalmente cria uma paacutegina para tornar essa informaccedilatildeo disponiacutevel para os sites na Web que requisitem as informaccedilotildees de login Contudo um usuaacuterio poderia de forma alternativa integrar os deta-lhes necessaacuterios em uma paacutegina ou blog pessoal Nesse caso seu proacute-prio endereccedilo poderia servir como sua OpenID

O loginUma aplicaccedilatildeo que suporte o OpenID exibiraacute um campo de login OpenID aleacutem da paacutegina de login tradicional Por exemplo a figura 1 mostra a paacute-gina de autenticaccedilatildeo do OpenID no wiki do Amarok

Quando um usuaacuterio digita seu ID baseado em uma URI a aplica-ccedilatildeo web que eacute conhecida como o

RE

DE

S

RE

DE

S

copy Linux New Media do Brasil Editora Ltda

69

cliente na linguagem do OpenID recupera a porccedilatildeo do servidor da URI O OpenID se refere ao servi-dor como ldquoprovedor de identidaderdquo (identity provider)

O cliente (o wiki do Amarok nes-te caso) solicita ao provedor o nome associado agrave URI Para fazer isso ele redireciona a requisiccedilatildeo para o pro-vedor do site e o provedor indica que foi emitida a solicitaccedilatildeo O usuaacuterio entatildeo concorda com o pedido digi-tando uma senha O provedor redi-reciona o navegador de volta para o site do cliente onde o usuaacuterio estaacute agora logado

Uma praacutetica caracteriacutestica do OpenID eacute a possibilidade de ar-mazenar vaacuterios atributos para uma uacutenica identidade com um provedor por exemplo seu nome completo seu idioma preferido ou sua data de nascimento (ver figura 2) O usuaacuterio que recebe um pedido do cliente pode especificar quais os dados que o prestador deve divulgar para o cliente e quais ele deve conservar como secretos

Esse processo de aprovaccedilatildeo eacute im-portante para evitar o mau uso de

um paracircmetro criacutetico tal como o PIN de um banco que na verdade ateacute pode ser armazenado junto ao seu ID Alguns provedores permitem que o usuaacuterio crie muacuteltiplas identi-dades cada uma com um conjunto distinto de atributos

Essa abordagem tambeacutem eacute co-nhecida como Gerenciamento de Identidade Centrada no Usuaacuterio (do inglecircs User-Centric Identity Mana-gement) em que cada usuaacuterio pode definir individualmente as informa-

ccedilotildees fornecidas pelo provedor para os clientes que pedirem

Alguns provedores de identidade associam-nas gratuitamente Cabe ao usuaacuterio decidir em qual provedor con-fiar Diferentemente da abordagem centralizada utilizada pelo Passport um conjunto descentralizado de pro-vedores OpenID competem entre si na oferta de serviccedilos Os usuaacuterios tecircm ateacute mesmo a liberdade de criar seu proacuteprio provedor

Para quem se interessar pelo desenvolvimento de uma soluccedilatildeo proacutepria haacute pacotes de coacutedigo aberto em vaacuterias linguagens de programa-ccedilatildeo como Perl PHP Ruby Python e Java [5]

Tem seguranccedilaO OpenID pode gerar duacutevidas so-bre sua seguranccedila jaacute que qualquer um pode atuar como provedor Um agressor pode forjar (spoof) ou sequumlestrar uma identidade A primeira questatildeo aponta para um claacutessico problema de seguranccedila se vocecirc pode manipular um site de terceiros vocecirc pode redirecionar os visitantes para o seu proacuteprio prove-dor de identidade ou escrever um para se adequar agrave demanda

Em outras palavras a seguranccedila estaacute nas matildeos das pessoas responsaacuteveis pelo site hospedeiro Considerando-

Linux Magazine 50 | Janeiro de 2009

| REDESOpenID

Figura 2 O provedor especifica os detalhes que pretende enviar para o cliente

Figura 1 O wiki do Amarok permite que seus usuaacuterios efetuem login com o OpenID

copy Linux New Media do Brasil Editora Ltda

70 httpwwwlinuxmagazinecombr

se a qualidade do coacutedigo dos muitos sites escritos nas populares linguagens de script essa eacute uma preocupaccedilatildeo real mas natildeo um argumento funda-mental contra o OpenID

A segunda pergunta eacute complica-da eacute possiacutevel que um hacker capture as comunicaccedilotildees entre o cliente e o provedor de identidade e com isso ar-mazene as sessotildees Afi nal o provedor envia uma confi rmaccedilatildeo de mensagem em caso de sucesso na autenticaccedilatildeo Um agressor poderia tentar apresentar uma sessatildeo gravada na proacutexima ten-tativa de login No entanto isso pode ser evitado com a ativaccedilatildeo do SSL ou do TLS no OpenID para proteger a conexatildeo e adicionar um desafi o para cada solicitaccedilatildeo Essa abordagem

signifi ca que qualquer resposta seraacute vaacutelida apenas uma vez o que exclui a reciclagem trivial

Apesar disso natildeo eacute uma boa ideacuteia subestimar a complexidade do ge-renciamento de sessatildeo baseado em estado ( stateful ) que trafega sobre um protocolo sem base em sessatildeo ( state-less ) como o HTTP que eacute a base do OpenID O fato de vaacuterias aplicaccedilotildees web estarem sendo comprometidas eacute uma indicaccedilatildeo clara dos perigos supondo que vocecirc acredite em pes-quisas e whitepapers [6]

Praacutetico e aberto O OpenID eacute um passo na direccedilatildeo certa para o gerenciamento de iden-tidades Como ele implementa o lo-

gin uacutenico ( single sign-on ) tambeacutem se torna mais con-veniente para os usuaacuterios reduzindo o nuacutemero de senhas a serem lembradas A capacidade de gerenciar atributos eacute muito mais po-derosa do que parece agrave pri-meira vista

O nuacutemero de sites que usam OpenID continua crescendo vertiginosamente mas algumas grandes aplica-ccedilotildees continuaratildeo precisando provar se preenchem todas

as exigecircncias operacionais e concei-tuais no que diz respeito agrave confi anccedila e agrave disponibilidade

Mais informaccedilotildees

[1] Microsoft Passport httpwwwpassportnet

[2] Projeto Liberty Alliance httpwwwprojectlibertyorg

[3] Projeto OpenID httpopenidnet

[4] MyOpenID httpmyopenidcom

[5] Bibliotecas abertas de OpenID httpwikiopenidnetLibraries

[6] Secure Computing ldquoKeeping Customers and Merchants Securerdquo (em inglecircs) httpwwwsecurecomputingcomwebformcfmid=289ampref=pci

[7] Feder ID httpfederidobjectweborg

[8] Extensotildees do Mediawiki para OpenID httpwwwmediawikiorgwikiExtensionOpenID

[9] Suporte a OpenID no Drupal httpdrupalorgprojectopenid

REDES | OpenID

Quadro 1 Gerenciamento de identidade e federaccedilatildeo

O OpenID natildeo eacute soacute um projeto de gerenciamento de identidade O Feder ID [7] por exemplo eacute um projeto de coacutedigo aberto da Franccedila Um dos fi nanciadores do projeto Oudot Cleacutement enfatiza a importacircncia das identidades digitais para o acesso aos recursos da Web em uma recente entrevista com a Linux Magazine

De acordo com Oudot muitos usuaacuterios possuem uma identidade distinta para cada site Isto eacute um grande problema para grandes empresas e organizaccedilotildees jaacute que os usuaacuterios precisam memorizar muacuteltiplas senhas O Feder ID fornece ferramentas para a sincronizaccedilatildeo de repositoacuterios de identidade Estes atributos natildeo estatildeo disponiacuteveis apenas para uma uacutenica organizaccedilatildeo local eles podem ser compartilhados por parceiros confi aacuteveis

As ferramentas do Feder ID satildeo de coacutedigo aberto e respeitam os padrotildees da IETF ( Internet Engineering Task Force ) OASIS ( Organization of Structured Information Standards ) e da Liberty Alliance para a gestatildeo de identidades

Tabela 1 Provedores de identidade para aplicaccedilotildees web

Provedor OpenID

AOL httpopenidaolcomnome_do_usuaacuterio

Blogger httpnome_do_blogblogspotcom

Flickr httpwwwflickrcomphotosusuaacuterio

Livedoor httpprofilelivedoorcomusuaacuterio

Livejournal httpusuaacuteriolivejournalcom

Technorati httptechnoraticompeopletechnoratiusuaacuterio

Wordpress httpusuaacuteriowordpresscom

Yahoo httpopenidyahoocom

copy Linux New Media do Brasil Editora Ltda

71

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

LTRindd 67 251108 173039

copy Linux New Media do Brasil Editora Ltda

72 httpwwwlinuxmagazinecombr

Login no Linux pela impressatildeo digital

Autenticaccedilatildeo biomeacutetrica A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e a confi gurar esse recurso de seguranccedila por Alessandro de Oliveira Faria (Cabelo)

Hoje a autenticaccedilatildeo biomeacute-trica eacute imprescindiacutevel para elevarmos o niacutevel de segu-

ranccedila computacional Na Linux Magazine 48 foram mencionadas as principais tecnologias biomeacutetri-cas de coacutedigo aberto Agora neste documento veremos na praacutetica o uso da biometria para autentica-ccedilatildeo de identidade Esse recurso natildeo faz parte apenas dos fi lmes de

fi cccedilatildeo cientiacutefi ca eacute uma realidade cada vez mais presente no nosso dia-a-dia em diversos segmentos do mercado

Com o crescimento dos equi-pamentos em redes abertas sur-giram problemas de seguranccedila e confi abilidade de autenticaccedilatildeo Uma autenticaccedilatildeo indevida for-nece acesso privilegiado a pessoas natildeo autorizadas dando margem a roubo de informaccedilotildees interrup-ccedilotildees de serviccedilos fraudes sistemaacute-ticas entre outros transtornos do seacuteculo XXI

Neste cenaacuterio surgiu a necessida-de da autenticaccedilatildeo biomeacutetrica ou seja verifi caccedilatildeo da autenticidade do usuaacuterio em operaccedilatildeo Esse me-canismo computacional eacute baseado em caracteriacutesticas (ldquoo que vocecirc eacuterdquo) A biometria aplicada agrave autenticaccedilatildeo de usuaacuterios eacute um meacutetodo automa-tizado para medir as caracteriacutesticas humanas e confrontaacute-las em uma base de dados obtendo assim a au-tenticidade do usuaacuterio

A efi caacutecia da autenticaccedilatildeo biomeacute-trica estaacute diretamente relacionada agrave qualidade dos dados obtidos na fase de cadastramento da caracteriacutestica

biomeacutetrica Nessa etapa a base de dados recebe o template matemaacuteti-co calculado pelo sistema isto eacute a representaccedilatildeo binaacuteria da caracteriacutes-tica humana Essa informaccedilatildeo seraacute utilizada posteriormente na compa-raccedilatildeo biomeacutetrica para autenticaccedilatildeo do sistema obtendo assim um re-sultado positivo ou negativo

Este artigo apresenta um foco teacutecnico e pouco teoacuterico assim obje-

SE

GU

RA

NCcedil

A

Figura 1 Imagem extraiacuteda de um leitor de impressatildeo digital UAreU da Digital Persona

Figura 2 Imagem binarizada (branco e preto)

copy Linux New Media do Brasil Editora Ltda

73

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

tivando configurar ou acrescentar a autenticaccedilatildeo biomeacutetrica como niacutevel adicional de seguranccedila ao login do sistema operacional Linux Para tal operaccedilatildeo utilizaremos a tecnologia de impressatildeo digital e pacotes de coacute-digo aberto (biblioteca fprint)

A tecnologia utilizada para a con-fecccedilatildeo deste artigo foi OpenSuse 103 ndash kernel 26225-

31-bigsmp Notebook Dell Vostro 1510 4 GB de memoacuteria RAM Processador Core 2 Duo Leitor de impressatildeo digital Uare

U Digital Persona 4000B Biblioteca fprint

Fprint conceitosO pacote fprint[1] eacute o sonho de todo desenvolvedor de coacutedigo aberto O kit de integraccedilatildeo permite o desen-volvimento de rotinas para identi-ficaccedilatildeo e verificaccedilatildeo de impressotildees digitais do usuaacuterio Um dos pontos fortes dessa soluccedilatildeo livre eacute a compa-tibilidade com diversos modelos de sensores disponiacuteveis no mercado A lista de aparelhos compatiacuteveis en-contra-se em [2]

A impressatildeo digital eacute composta por linhas formadas pelas elevaccedilotildees da pele A comparaccedilatildeo por impressatildeo digital eacute um meacutetodo utilizado haacute mais de mil anos como forma de identificaccedilatildeo de usuaacuterios Eacute uma caracteriacutestica uacutenica entre os seres humanos inclusive entre irmatildeos gecircmeos univitelinos

Formada ainda quando feto a impressatildeo digital acompanha a pessoa por toda a sua existecircncia sem apresentar grandes mudanccedilas Extraindo os pontos caracteriacutesticos ou ldquopontos de minuacuteciasrdquo de uma impressatildeo digital um papiloscopista ou sistemas computadorizados po-dem identificar pessoas utilizando caacutelculos bastante confiaacuteveis Grande parte dos algoritmos trabalham com o princiacutepio de extraccedilatildeo desses pontos caracteriacutesticos Apoacutes a extraccedilatildeo satildeo calculados a relaccedilatildeo entre as distacircn-cias desses pontos Cada algoritmo possui sua base de caacutelculo seja por anaacutelise dos pontos entre si ou por agrupamentos de pontos para anaacute-lise de semelhanccedilas de triacircngulos com os acircngulos internos

A biblioteca fprint incorpora abstraccedilatildeo de hardware para aces-so ao leitor Com esse recurso natildeo precisamos instalar qualquer moacutedulo do kernel para o funcio-namento de cada modelo de leitor de impressatildeo digital

Na primeira fase a biblioteca extrai a imagem do sensor (figura 1) e logo a seguir a linha da impressatildeo digital eacute realccedilada com a cor preta (figura 2)

Figura 3 Linhas reduzidas para um uacutenico pixel

Figura 4 Pontos de bifurcaccedilatildeo e terminadores

copy Linux New Media do Brasil Editora Ltda

74 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

utilizando algoritmos de extraccedilatildeo com filtros Na proacutexima etapa a imagem jaacute estaacute binarizada (branco e preto figura 3) e as linhas foram reduzidas a um uacutenico pixel de largura Por uacuteltimo a tarefa mais faacutecil ou seja

detectar os pontos de minuacutecias Fa-zendo um exame de cada pixel na imagem se houver um pixel branco sem vizinhos isso significa que en-contramos um ponto terminal Caso um ponto branco possua trecircs pontos

vizinhos significa que en-contramos uma bifurcaccedilatildeo Os pontos de minuacutecias satildeo entatildeo destacados (fi-gura 4) e compotildeem a ver-dadeira identidade da im-pressatildeo digital

As impressotildees digitais satildeo classificadas em cinco grupos conforme mostra a figura 5 ciacuterculo direito ciacuterculo esquerdo espiral arco e arco incompletoA estrutura de uma im-pressatildeo digital eacute forma-da por cruzamentos das linhas core (centro) bi-furcaccedilotildees terminaccedilotildees ilhas deltas (bifurcaccedilotildees inferiores) e poros Os pon-tos terminais assim como os pontos de bifurcaccedilotildees satildeo definidos em funccedilatildeo da distacircncia (coordena-da relativa) para o core Nos pontos terminais eacute co-mum calcular seu acircngulo de inclinaccedilatildeo

InstalaccedilatildeoHaacute pacotes da biblioteca fprint preacute-compilados para OpenSuse [3] e Ubuntu [4] No entanto este artigo sugere a compilaccedilatildeo da biblioteca a partir de seu coacutedigo-fonte que pode ser obtido em [5] Haacute tambeacutem uma demonstraccedilatildeo do software fprint que pode ser baixada a partir de [6]

Apoacutes o download devemos des-compactar os arquivos fontes O exemplo 1 detalha o procedimen-

Exemplo 1 Preparaccedilatildeo da libfprint

$ tar -jxvf libfprint-006tarbz2$ cd libfprint-006$ configure$ make$ suSenha make install ldconfig

Figura 5 Os cinco grupos de impressotildees digitais

Exemplo 3 Arquivo de login do PAM

01 PAM-1002 auth requisite pam_nologinso03 auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securettyso04 auth include common-auth05 auth requisite pam_fprintso06 account include common-account07 password include common-password08 session required pam_loginuidso09 session include common-session10 session required pam_lastlogso nowtmp11 session required pam_resmgrso12 session optional pam_mailso standard13 session optional pam_ck_connectorso

Exemplo 2 Compilaccedilatildeo do pam_fprint

$ wget httpufprdlsourceforgenetsourceforgefprintpam_fprint-02tarbz2$ tar -jxvf pam_fprint-02tarbz2$ cd pam_fprint-02$ configure$ make$ sudo make install

copy Linux New Media do Brasil Editora Ltda

75

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

Exemplo 4 pam_fprint_enroll --help

pam_fprint_enroll --helpUsage pam_fprint_enroll options -h --help Display this usage information -f --enroll-finger index Enroll finger with index Valid indexes are 1 - Left Thumb 2 - Left Index Finger 3 - Left Middle Finger 4 - Left Ring Finger 5 - Left Little Finger 6 - Right Thumb 7 - Right Index Finger 8 - Right Middle Finger 9 - Right Ring Finger 10 - Right Little Finger

Exemplo 5 Cadastramento de digital

pam_fprint_enroll --enroll-finger 7

This program will enroll your finger unconditionally overwriting any selected print that was enrolled previously If you want to continue press enter otherwise hit Ctrl+C Found device claimed by Digital Persona UareU 40004000B driverOpened device Itrsquos now time to enroll your finger You will need to successfully scan your Right Index Finger 1 timesto complete the process Scan your finger nowEnroll completeEnrollment completed

Exemplo 6 Sucesso na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1)lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BUacutetimo loginDom Nov 16 231501 BRST 2008em tty2

Have a lot of fun

copy Linux New Media do Brasil Editora Ltda

76 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

to de configuraccedilatildeo e compilaccedilatildeo da biblioteca

Execute o comando ldquomakerdquo con-vencional para efetuar a compilaccedilatildeo na iacutentegra do coacutedigo-fonte a seguir transforme-se em super-usuaacuterio (root) para efetuar a instalaccedilatildeo da biblioteca por meio do comando ldquomake installrdquo seguido do ldquoldconfigrdquo conforme as instruccedilotildees a seguir

Autenticaccedilatildeo pam_fprintO moacutedulo biomeacutetrico que trabalha em conjunto com o sistema de au-tenticaccedilatildeo PAM (Pluggable Authen-tication Modules) eacute o pam_fprint Sua base tecnoloacutegica eacute a biblioteca fprint receacutem compilada e instalada O pacote pam_fprint utiliza as fun-ccedilotildees biomeacutetricas para processar e verificar a autenticaccedilatildeo do usuaacuterio Em outras palavras a sua impressatildeo digital eacute utilizada para efetuar o login no sistema operacional

Vale a pena mencionar que o PAM eacute um sistema para autenticaccedilatildeo de usuaacuterios em ambientes Linux e Unix Uma de suas principais vantagens eacute a centralizaccedilatildeo das chamadas e funccedilotildees de login assim facilitando a tarefa do desenvolvedor

Continuando nossa jornada vamos agora baixar descompactar compilar e instalar o pacote pam_fprint como no exemplo 2

Sobre o autorAlessandro Faria eacute soacutecio-proprietaacuterio da NETi TECNOLOGIA fundada em Junho de 1996 (httpwwwnetiteccombr) empre-sa especializada em desenvolvimento de software e soluccedilotildees biomeacutetricas Consultor Biomeacutetrico na tecnologia de reconhecimen-to facial atua na aacuterea de tecnologia desde 1986 propiciando assim ao mercado solu-ccedilotildees em software Leva o Linux a seacuterio des-de 1998 com desenvolvimento de soluccedilotildees open source eacute membro colaborador da co-munidade Viva O Linux e mantenedor da bi-blioteca open source de viacutedeo captura aleacuten de participar entre outros projetos

Mais informaccedilotildees

[1] Fprint httpreactivatednetfprintwikiMain_Page

[2] Dispositivos compatiacuteveis com a fprint httpreactivatednetfprintwikiSupported_devices

[3] Pacotes fprint para OpenSuse httpdownloadopensuseorgrepositorieshomedgege

[4] Pacotes fprint para Ubuntu httpwwwmadman2knetcomments105

[5] Download da biblioteca fprint httpufprdlsourceforgenetsourceforgefprintlibfprint-006tarbz2

[6] Demo do fprint httpufprdlsourceforgenetsourceforgefprintfprint_demo-04tarbz2

[7] Portal Viva o Linux httpwwwvivaolinuxcombr

ConfiguraccedilatildeoNo OpenSuse eacute preciso modi-ficar o arquivo de configuraccedilatildeo para autenticaccedilatildeo no modo conso-le etcpamdlogin Esse arquivo pode ter nome diferente em ou-tras distribuiccedilotildees Seu conteuacutedo eacute mostrado no exemplo 3 e a linha 5 deve ser acrescentada pois eacute a res-ponsaacutevel por requisitar o moacutedulo pam_fprint

Eacute importante notar a utilizaccedilatildeo do modo requisite de autenticaccedilatildeo no PAM Para maiores informaccedilotildees sobre o tipo de autenticaccedilatildeo reco-menda-se consultar a documentaccedilatildeo do PAM

CadastramentoO proacuteximo passo eacute efetuar o cadastra-mento biomeacutetrico da sua impressatildeo digital Se concluiacuteda com sucesso essa tarefa no proacuteximo login o usuaacute-rio deveraacute fornecer aleacutem da senha sua impressatildeo digital para ter acesso ao sistema

O programa pam_fprint_enroll eacute responsaacutevel pelo cadastramento das impressotildees digitais Para en-tender melhor sua sintaxe digite pam_fprint_enroll --help e perceba (exemplo 4) que eacute preciso informar o nuacutemero correspondente ao dedo utilizado para cadastro A numeraccedilatildeo comeccedila em 1 no polegar esquerdo e segue ateacute o dedo mindinho esquerdo (nuacutemero 5) seguindo depois para o polegar direito (6) e terminando no mindinho direito (10)

No meu caso utilizei o nuacutemero 7 representando o dedo indicador da matildeo direita (exemplo 5) Ao exe-cutar o programa pressione [ENTER] encoste o dedo no leitor de impres-satildeo digital e pronto Nessa fase ao efetuar o login o sistema opera-cional solicitaraacute a senha seguida da autenticaccedilatildeo biomeacutetrica como mostram os exemplos 6 (sucesso na autenticaccedilatildeo) e 7 (falha na autenti-caccedilatildeo biomeacutetrica)

ConclusatildeoA biblioteca fprint proporciona inuacute-meros recursos aleacutem dos mencio-nados neste artigo Para um estudo detalhado sobre o assunto sugiro algumas leituras no portal Viva o Linux [7] e tambeacutem no site oficial do projeto

Exemplo 7 Falha na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1) lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BLogin incorreto

copy Linux New Media do Brasil Editora Ltda

77

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

SE

CcedilAtilde

O

Site_LNMindd 55 191208 205243

copy Linux New Media do Brasil Editora Ltda

78

SE

RV

ICcedilO

S

httpwwwlinuxmagazinecombr

Fornecedor de Hardware = 1 Redes e Telefonia PBX = 2 Integrador de Soluccedilotildees = 3

Literatura Editora = 4 Fornecedor de Software = 5

Consultoria Treinamento = 6

Linuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

CearaacuteF13 Tecnologia Fortaleza Rua Coronel Solon 480 ndash Bairro de Faacutetima

Fortaleza - CE - CEP 60040-270 85 3252-3836 wwwf13combr

Espiacuterito SantoLinux Shopp Vila Velha Rua Satildeo Simatildeo (Correspondecircncia) 18 ndash CEP 29113-120 27 3082-0932 wwwlinuxshoppcombr

Megawork Consultoria e Sistemas

Vitoacuteria Rua Chapot Presvot 389 ndash Praia do Can-to ndash CEP 29055-410 sl 201 202

27 3315-2370 wwwmegaworkcombr

Spirit Linux Vitoacuteria Rua Marins Alvarino 150 ndash CEP 29047-660 27 3227-5543 wwwspiritlinuxcombr

Minas GeraisInstituto Online Belo Horizonte Av Bias Fortes 932 Sala 204 ndash CEP 30170-011 31 3224-7920 wwwinstitutoonlinecombr

Linux Place Belo Horizonte Rua do Ouro 136 Sala 301 ndash Serra ndash CEP 30220-000 31 3284-0575 corporatelinuxplacecombr

Microhard Belo Horizonte Rua Repuacuteblica da Argentina 520 ndash Sion ndash CEP 30315-490 31 3281-5522 wwwmicrohardcombr

TurboSite Belo Horizonte Rua Paraiacuteba 966 Sala 303 ndash Savassi ndash CEP 30130-141 0800 702-9004 wwwturbositecombr

ParanaacuteiSolve Curitiba Av Cacircndido de Abreu 526 Cj 1206B ndash CEP 80530-000 41 252-2977 wwwisolvecombr

Mandriva Conectiva Curitiba Rua Tocantins 89 ndash Cristo Rei ndash CEP 80050-430 41 3360-2600 wwwmandrivacombr

Telway Tecnologia Curitiba Rua Francisco Rocha 183071 41 3203-0375 wwwtelwaycombr

Rio de JaneiroMuacuteltipla Tecnologia da Informaccedilatildeo

Rio de Janeiro Av Rio Branco 37 14deg andar ndash CEP 20090-003 21 2203-2622 wwwmultipla-ticombr

NSI Training Rio de Janeiro Rua Arauacutejo Porto Alegre 71 4ordm andar Centro ndash CEP 20030-012 21 2220-7055 wwwnsicombr

Open IT Rio de Janeiro Rua do Mercado 34 Sl 402 ndash Centro ndash CEP 20010-120 21 2508-9103 wwwopenitcombr

Unipi Tecnologias Campos dos Goytacazes

Av Alberto Torres 303 1ordmandar ndash Centro ndash CEP 28035-581 22 2725-1041 wwwunipicombr

Rio Grande do Sul4up Soluccedilotildees Corporativas Novo Hamburgo Pso Calccediladatildeo Osvaldo Cruz 54 sl 301 CEP 93510-015 51 3581-4383 www4upcombr

Definitiva Informaacutetica Novo Hamburgo Rua General Osoacuterio 402 - Hamburgo Velho 51 3594 3140 wwwdefinitivacombr

Solis Lajeado Av 7 de Setembro 184 sala 401 ndash Bairro Moinhos CEP 95900-000

51 3714-6653 wwwsoliscoopbr

DualCon Novo Hamburgo Rua Joaquim Pedro Soares 1099 Sl 305 ndash Centro 51 3593-5437 wwwdualconcombr

Datarecover Porto Alegre Av Carlos Gomes 403 Sala 908 Centro Comer-cial Atrium Center ndash Bela Vista ndash CEP 90480-003

51 3018-1200 wwwdatarecovercombr

LM2 Consulting Porto Alegre Rua Germano Petersen Junior 101-Sl 202 ndash Hi-gienoacutepolis ndash CEP 90540-140

51 3018-1007 wwwlm2combr

Lnx-IT Informaccedilatildeo e Tecnologia Porto Alegre Av Venacircncio Aires 1137 ndash Rio Branco ndash CEP 90040193 51 3331-1446 wwwlnx-itinfbr

Plugin Porto Alegre Av Juacutelio de Castilhos 132 11ordm andar Centro ndash CEP 90030-130 51 4003-1001 wwwplugincombr

TeHospedo Porto Alegre Rua dos Andradas 1234610 ndash Centro ndash CEP 90020-008 51 3286-3799 wwwtehospedocombr

Satildeo PauloWs Host Arthur Nogueira Rua Jerere 36 ndash Vista Alegre ndash CEP 13280-000 19 3846-1137 wwwwshostcombr

DigiVoice Barueri Al Juruaacute 159 Teacuterreo ndash Alphaville ndash CEP 06455-010 11 4195-2557 wwwdigivoicecombr

Dextra Sistemas Campinas Rua Antocircnio Paioli 320 ndash Pq das Universidades ndash CEP 13086-045 19 3256-6722 wwwdextracombr

Insigne Free Software do Brasil Campinas Av Andrades Neves 1579 ndash Castelo ndash CEP 13070-001 19 3213-2100 wwwinsignesoftwarecom

Microcamp Campinas Av Thomaz Alves 20 ndash Centro ndash CEP 13010-160 19 3236-1915 wwwmicrocampcombr

PC2 Consultoria em Software Livre

Carapicuiba Rua Edeia 500 - CEP 06350-080 11 3213-6388 wwwpc2consultoriacom

Savant Tecnologia Diadema Av Senador Vitorino Freire 465 ndash CEP 09910-550 11 5034-4199 wwwsavantcombr

Epopeacuteia Informaacutetica Mariacutelia Rua Goiaacutes 392 ndash Bairro Cascata ndash CEP 17509-140 14 3413-1137 wwwepopeiacombr

Redentor Osasco Rua Costante Piovan 150 ndash Jd Trecircs Montanhas ndash CEP 06263-270 11 2106-9392 wwwredentorindbr

Go-Global Santana de Parnaiacuteba

Av Yojiro Takaoca 4384 Ed Shopping Ser-vice Cj 1013 ndash CEP 06541-038

11 2173-4211 wwwgo-globalcombr

AW2NET Santo Andreacute Rua Edson Soares 59 ndash CEP 09760-350 11 4990-0065 wwwaw2netcombr

Async Open Source Satildeo Carlos Rua Orlando Damiano 2212 ndash CEP 13560-450 16 3376-0125 wwwasynccombr

O maior diretoacuterio de empresas que oferecem produtos soluccedilotildees e serviccedilos 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 anuncioslinuxmagazinecombr

copy Linux New Media do Brasil Editora Ltda

79

| SERVICcedilOSLinuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

Satildeo Paulo (continuaccedilatildeo)Delix Internet Satildeo Joseacute do

Rio PretoRua Voluntaacuterio de Satildeo Paulo 3066 9ordm ndash Centro ndash CEP 15015-909 11 4062-9889 wwwdelixhostingcombr

4Linux Satildeo Paulo Rua Teixeira da Silva 660 6ordm andar ndash CEP 04002-031 11 2125-4747 www4linuxcombr

A Casa do Linux Satildeo Paulo Al Jauacute 490 ndash Jd Paulista ndash CEP 01420-000 11 3549-5151 wwwacasadolinuxcombr

Accenture do Brasil Ltda Satildeo Paulo Rua Alexandre Dumas 2051 ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 5188-3000 wwwaccenturecombr

ACR Informaacutetica Satildeo Paulo Rua Lincoln de Albuquerque 65 ndashPerdizes ndash CEP 05004-010 11 3873-1515 wwwacrinformaticacombr

Agit Informaacutetica Satildeo Paulo Rua Major Quedinho 111 5ordm andar Cj 508 ndash Centro ndash CEP 01050-030

11 3255-4945 wwwagitcombr

Altbit - Informaacutetica Comeacutercio e Serviccedilos LTDA

Satildeo Paulo Av Francisco Matarazzo 229 Cj 57 ndash Aacutegua Branca ndash CEP 05001-000

11 3879-9390 wwwaltbitcombr

AS2M -WPC Consultoria Satildeo Paulo Rua Trecircs Rios 131 Cj 61A ndash Bom Retiro ndash CEP 01123-001 11 3228-3709 wwwwpccombr

Big Host Satildeo Paulo Rua Dr Miguel Couto 58 ndash Centro ndash CEP 01008-010 11 3033-4000 wwwbighostcombr

Blanes Satildeo Paulo Rua Andreacute Ampeacutere 153 ndash 9ordm andar ndash Conj 91 CEP 04562-907 (proacutex Av L C Berrini)

11 5506-9677 wwwblanescombr

Commlogik do Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 13797 Bloco II 6ordm andar ndash Morumbi ndash CEP 04794-000

11 5503-1011 wwwcommlogikcombr

Computer Consulting Projeto e Consultoria Ltda

Satildeo Paulo Rua Vergueiro 6455 Cj 06 ndash Alto do Ipiranga ndash CEP 04273-100 11 5062-3927 wwwcomputerconsultingcombr

Consist Consultoria Siste-mas e Representaccedilotildees Ltda

Satildeo Paulo Av das Naccedilotildees Unidas 20727 ndash CEP 04795-100 11 5693-7210 wwwconsistcombr

Domiacutenio Tecnologia Satildeo Paulo Rua das Carnaubeiras 98 ndash Metrocirc Conceiccedilatildeo ndash CEP 04343-080 11 5017-0040 wwwdominiotecnologiacombr

EDS do Brasil Satildeo Paulo Av Pres Juscelino Kubistcheck 1830 Torre 4 - 5ordm andar 11 3707-4100 wwwedscom

Eacutetica Tecnologia Satildeo Paulo Rua Nova York 945 ndash Brooklin ndash CEP04560-002 11 5093-3025 wwweticanet

Getronics ICT Solu-tions and Services

Satildeo Paulo Rua Verbo Divino 1207 ndash CEP 04719-002 11 5187-2700 wwwgetronicscombr

Hewlett-Packard Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 12901 25ordm andar ndash CEP 04578-000 11 5502-5000 wwwhpcombr

IBM Brasil Ltda Satildeo Paulo Rua Tutoacuteia 1157 ndash CEP 04007-900 0800-7074 837 wwwbribmcom

iFractal Satildeo Paulo Rua Fiaccedilatildeo da Sauacutede 145 Conj 66 ndash Sauacutede ndash CEP 04144-020 11 5078-6618 wwwifractalcombr

Integral Satildeo Paulo Rua Dr Gentil Leite Martins 295 2ordm andar Jd Prudecircncia ndash CEP 04648-001

11 5545-2600 wwwintegralcombr

Itautec SA Satildeo Paulo Av Paulista 2028 ndash CEP 01310-200 11 3543-5543 wwwitauteccombr

Kenos Consultoria Satildeo Paulo Av Fagundes Filho 13 Conj 53 ndash CEP 04304-000 11 40821305 wwwkenoscombr

Konsultex Informatica Satildeo Paulo Av Dr Guilherme Dumont Villares 1410 6 andar CEP 05640-003 11 3773-9009 wwwkonsultexcombr

Linux Komputer Informaacutetica Satildeo Paulo Av Dr Lino de Moraes Leme 185 ndash CEP 04360-001 11 5034-4191 wwwkomputercombr

Linux Mall Satildeo Paulo Rua Machado Bittencourt 190 Cj 2087 ndash CEP 04044-001 11 5087-9441 wwwlinuxmallcombr

Livraria Tempo Real Satildeo Paulo Al Santos 1202 ndash Cerqueira Ceacutesar ndash CEP 01418-100 11 3266-2988 wwwtemporealcombr

Locasite Internet Service Satildeo Paulo Av Brigadeiro Luiz Antonio 2482 3ordm andar ndash Centro ndash CEP 01402-000

11 2121-4555 wwwlocasitecombr

Microsiga Satildeo Paulo Av Braz Leme 1631 ndash CEP 02511-000 11 3981-7200 wwwmicrosigacombr

Novatec Editora Ltda Satildeo Paulo Rua Luis Antonio dos Santos 110 ndash Santana ndash CEP 02460-000 11 6979-0071 wwwnovateceditoracombr

Novell Ameacuterica Latina Satildeo Paulo Rua Funchal 418 ndash Vila Oliacutempia 11 3345-3900 wwwnovellcombrasil

Oracle do Brasil Sistemas Ltda Satildeo Paulo Av Alfredo Egiacutedio de Souza Aranha 100 ndash Bloco B ndash 5ordm andar ndash CEP 04726-170

11 5189-3000 wwworaclecombr

Proelbra Tecnolo-gia Eletrocircnica Ltda

Satildeo Paulo Av Rouxinol 1041 Cj 204 2ordm andar Moema ndash CEP 04516-001 11 5052- 8044 wwwproelbracombr

Provider Satildeo Paulo Av Cardoso de Melo 1450 6ordm andar ndash Vila Oliacutempia ndash CEP 04548-005

11 2165-6500 wwwe-providercombr

Red Hat Brasil Satildeo Paulo Av Brigadeiro Faria Lima 3900 Cj 81 8ordm andar Itaim Bibi ndash CEP 04538-132

11 3529-6000 wwwredhatcombr

Samurai Projetos Especiais Satildeo Paulo Rua Baratildeo do Triunfo 550 6ordm andar ndash CEP 04602-002 11 5097-3014 wwwsamuraicombr

SAP Brasil Satildeo Paulo Av das Naccedilotildees Unidas 11541 16ordm andar ndash CEP 04578-000 11 5503-2400 wwwsapcombr

Simples Consultoria Satildeo Paulo Rua Mourato Coelho 299 Cj 02 Pinheiros ndash CEP 05417-010 11 3898-2121 wwwsimplesconsultoriacombr

Smart Solutions Satildeo Paulo Av Jabaquara 2940 cj 56 e 57 11 5052-5958 wwwsmart-teccombr

Snap IT Satildeo Paulo Rua Joatildeo Gomes Junior 131 ndash Jd Bonfiglioli ndash CEP 05299-000 11 3731-8008 wwwsnapitcombr

Stefanini IT Solutions Satildeo Paulo Av Brig Faria Lima 1355 19ordm ndash Pinheiros ndash CEP 01452-919 11 3039-2000 wwwstefaninicombr

Sun Microsystems Satildeo Paulo Rua Alexandre Dumas 2016 ndash CEP 04717-004 11 5187-2100 wwwsuncombr

Sybase Brasil Satildeo Paulo Av Juscelino Kubitschek 510 9ordm andar Itaim Bibi ndash CEP 04543-000 11 3046-7388 wwwsybasecombr

The Source Satildeo Paulo Rua Marquecircs de Abrantes 203 ndash Chaacutecara Tatuapeacute ndash CEP 03060-020

11 6698-5090 wwwthesourcecombr

Unisys Brasil Ltda Satildeo Paulo R Alexandre Dumas 1658 ndash 6ordm 7ordm e 8ordm andares ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 3305-7000 wwwunisyscombr

Utah Satildeo Paulo Av Paulista 925 13ordm andar ndash Cerqueira Ceacutesar ndash CEP 01311-916 11 3145-5888 wwwutahcombr

Visuelles Satildeo Paulo Rua Eng Domicio Diele Pacheco e Silva 585 ndash Interlagos ndash CEP 04455-310

11 5614-1010 wwwvisuellescombr

Webnow Satildeo Paulo Av Naccedilotildees Unidas 12995 10ordm andar Ed Plaza Centenaacuterio ndash Chaacutecara Itaim ndash CEP 04578-000

11 5503-6510 wwwwebnowcombr

WRL Informaacutetica Ltda Satildeo Paulo Rua Santa Ifigecircnia 211213 Box 02ndash Centro ndash CEP 01207-001 11 3362-1334 wwwwrlcombr

Systech Taquaritinga Rua Satildeo Joseacute 1126 ndash Centro - Caixa Postal 71 ndash CEP 15900-000 16 3252-7308 wwwsystech-ltdcombr

2MI Tecnologia e Informaccedilatildeo Embu Rua Joseacute Bonifaacutecio 55 ndash Jd Independecircncia ndash SP CEP 06826-080 11 4203-3937 www2micombr

Linuxlocal

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

80

SERVICcedil

OS

httpwwwlinuxmagazinecombr

Nerdson ndash Os quadrinhos mensais da Linux Magazine

Calendaacuterio de eventos

Evento Data Local Website

Campus Party 15 a 25 de janeiro Satildeo Paulo SP wwwcampus-partycombr

Bossa Conference 08 a 11 de marccediloPorto de Galinhas PE

wwwbossaconferenceorg

FISL 24 a 27 de junho Porto Alegre RS wwwfislsoftwarelivreorg

Interop 02 e 03 de setembro Satildeo Paulo SP wwwinteropsaopaulocombr

Futurecom 2009 13 a 16 de outubro Satildeo Paulo SP wwwfuturecom2009combr

Iacutendice de anunciantes

Empresa Paacuteg

Campus Party 02

Plusserver 07

Insigne 09

UOL 11

Xandros 13

Impacta 15

Linux Pro 33

Pocket Pro 43

Linuz Technical Review 71

Site LNM 77

Guia de TI 81

Bull 83

Ubiquiti 84

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

82 httpwwwlinuxmagazinecombr

Na Linux Magazine 51

PREVIE

W

Na EasyLinux 14 Monitores gigantes Os monitores LCD de 19 polegadas jaacute tecircm preccedilos bem melhores que haacute um ano Seraacute que jaacute chegou o momento de vocecirc comprar aquele monitor cine-matograacutefi co Quais satildeo as vantagens e desvantagens

do LCD em relaccedilatildeo aos antigos monitores de tubo Ateacute onde 21 polegadas va-lem mais que 19 Na Easy Linux 14 vamos comparar marcas modelos e tecno-logias de monitores agrave ven-da no Brasil para orientar suas compras

A melhor parte de todos os sistemas Empresas como Apple e Micro-soft investem pesado em design para deixarem seus sistemas mais atraentes Como resultado tanto o Mac OS quanto o Windows Vista tecircm forte apelo visual Poreacutem engana-se quem pensa que eacute impossiacutevel alcanccedilar um grau de beleza semelhante no Linux Na Easy Linux 14 vamos mostrar o caminho das pedras para deixar seu Linux com a cara do Mac OS X do Vista e do Windows XP seja por pura diversatildeo ou para facilitar o uso do Linux por quem jaacute estaacute habituado a esses sistemas e tem difi culdade de adaptaccedilatildeo ao pinguumlim

DESTAQUE

Seguranccedila com VoIP Verdadeiros administra-dores pensam em segu-ranccedila o tempo inteiro Mesmo que vocecirc seja um usuaacuterio comum eacute importante saber o que os invasores podem fazer Serviccedilos que costumavam ser seguros se tornam brechas de seguranccedila a menos que vocecirc se mantenha atualizado com essas questotildees

Na Linux Magazine 51 vamos examinar algumas estrateacutegias de seguranccedila recomendadas por especialistas Vocecirc jamais teraacute a rede perfeita ou sequer as ferramentas perfeitas ndash o mundo da seguranccedila de redes muda a todo tempo ndash e como eacute impos-siacutevel descartar defi nitivamente os problemas eacute melhor man-ter-se informado

TUTORIAL

Defi cientes visuais O Linux possui muitos ambientes desktop be-liacutessimos incluindo cubos rotativos e janelas que balanccedilam e queimam Poreacutem considere por exemplo uma aacuterea de trabalho com iacutecones cuidadosamente organizados vocecirc conseguiria utilizaacute-la com o monitor desligado

Apesar das vaacuterias ofertas de softwares pro-prietaacuterios cariacutessimos para leitura da tela e teclados sofi sticados que realmente possibi-litam o uso do computador por defi cientes visuais a maioria das ferramentas e extensotildees necessaacuterias para usuaacuterios cegos ou com visatildeo prejudicada aleacutem daqueles com difi culdades motoras ou mentais jaacute estatildeo presentes nos re-positoacuterios da maioria das distribuiccedilotildees Linux Veja como o projeto Adriane une todos esses recursos num uacutenico sistema desktop destinado a defi cientes visuais

os invasores podem fazer

os invasores podem fazer

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRAacuteTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA AacuteREA p36

44 0708

R$ 1390 euro 750

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWWLINUXMAGAZINECOMBR

CASE ALFRESCO p26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p28Iniciada em Porto Alegre a temporada de seminaacuterios Linux Park de 2008

CEZAR TAURION p34O Coacutedigo Aberto como incentivo agrave inovaccedilatildeo

GOVERNANCcedilA COM

raquo O que dizem os profissionais certificados p24

raquo Cobit CMMI ITIL Quais as melhores praacuteticas p36

raquo ITIL na praacutetica p39

raquo Novidades do ITIL v3 p44

SEGURANCcedilA DNSSEC p69

Com o DNSSEC a resoluccedilatildeo de nomes fica protegida de ataques Mas seupreccedilo vale a pena

REDES IPV6 p64

Conheccedila as vantagens da nova versatildeo do Internet Protocol e veja por queeacute difiacutecil adotaacute-la

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo Relatoacuterios do Squid com o SARG p60

raquo Java Ruby e Rails conheccedila o JRuby on Rails p74

raquo Benchmarks do GCC 43 p58

raquo Becape de bancos de dados com a Libferris p46

raquo LPI niacutevel 2 Servidores NIS e DHCP p52

A REVISTA DO PROFISSIONAL DE TI

AS REDES ATUAIS SAtildeO AMBIENTES HETEROGEcircNEOSO BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p27

raquo Conecte o Linux agrave VPN do Windows p28

raquo MS AD e clientes Linux a soluccedilatildeo definitiva p34

raquo Linux como servidor RDP p40

raquo Agendamento de tarefas livre tambeacutem no Windows p44

Interoperabilidade

Linu

x M

agazin

e

50012009

INTEROPERABILIDADE

VPN

AD

RDP AGEN

DADOR DE TAREFAS BIOM

ETRIA OPEN

ID M

IDS GOOGLE CHARTS

HA POSTGRESQL TALEN

D

WWWLINUXMAGAZINECOMBR

50 Janeiro 2009

SANEADA PELO LINUX P22 Linux na Companhia de Aacuteguas do Maranhatildeo

LEI DOS CALL CENTERS P26 Edgar Silva mostra como a nova lei requer TI

BOCA NO TROMBONE P25 Maddog explica como fazer sua parte nas poliacuteticas puacuteblicas

SEGURANCcedilA BIOMETRIA p72

A autenticaccedilatildeo por impressatildeo digital jaacute eacute realidade Aprenda a implementaacute-la com um especialista

REDES OPENID p68

Uma uacutenica identidade para vaacuterios serviccedilos na Web Mas como fica a seguranccedila

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo MIDs seraacute que a moda pega p17

raquo Faccedila graacuteficos pelo Google p50

raquo HA e PostgreSQL uma oacutetima mistura p54

raquo ETL muito competente com o Talend p62

SUPORTANDO O VISTA

50 0109

R$ 1490 euro 750

9 771806 942009

0 0 0 5 0

copy Linux New Media do Brasil Editora Ltda

Page 5: Interoperabilidade SUPORTANDO O VISTA

5Linux Magazine 50 | Janeiro de 2009

| IacuteNDICELinux Magazine 50

COLUNASKlaus Knopper 08

Charly Kuumlhnast 10

Zack Brown 12

Inseguranccedila 14

Augusto Campos 17

NOTIacuteCIASGeral 18 Xen ganha recursos e promete integraccedilatildeo

LPI lanccedila provas 303 no Brasil

Lanccedilado o Fedora 10

Alta disponibilidade

Linux versus OpenSolaris e FreeBSD

Google Android no Openmoko

CORPORATENotiacutecias 20 ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

MS Windows eacute mais econocircmico

Sun lanccedila MySQL 51

VMware adquire Tungsten Graphics

Google e Red Hat fi rmam parceria

Insigne jaacute planeja 2012

Mandriva demite dois desenvolvedores

Entrevista CAEMA 22

Coluna Cezar Taurion 24

Coluna Jon ldquomaddogrdquo Hall 25

Coluna Edgar Silva 26

TUTORIALGraacutefi cos via Web 50 A API do Google Chart permite desenhar graacutefi cos

planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simples

Banco cheio mas disponiacutevel 54 O PostgreSQL natildeo possui embutido um mecanismo

para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia

ANAacuteLISE O talento do Talend 62 Quem procura uma soluccedilatildeo ETL para Business Intelligence

natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda

REDESIdentidade aberta mas segura 68 O OpenID oferece um padratildeo aberto para

login em websites fechados

SEGURANCcedilAAutenticaccedilatildeo biomeacutetrica 72

A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e confi gurar esse recurso de seguranccedila

SERVICcedilOSEditorial 03Emails 06Linuxlocal 78Eventos 80Iacutendice de anunciantes 80Preview 82

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

copy Linux New Media do Brasil Editora Ltda

6 httpwwwlinuxmagazinecombr

CA

RTA

S

sanj

a gj

ener

o ndash

ww

ws

xch

u

Emails para o editor

Permissatildeo de EscritaSe vocecirc tem duacutevidas sobre o mundo Linux criacuteticas ou sugestotildees que possam ajudar a melhorar a nossa revista escreva para o seguinte endereccedilo cartaslinuxmagazinecombr Devido ao grande volume de correspondecircncia torna-se impossiacutevel responder a todas as duacutevidas sobre aplicativos confi guraccedilotildees e problemas de hardware que chegam agrave Redaccedilatildeo mas garantimos que elas satildeo lidas e analisadas As mais interessantes satildeo publicadas nesta seccedilatildeo

Gestatildeo empresarial Primeiramente gostaria de parabenizaacute-los pela revista que possui oacutetimo conteuacutedo poucas propagandas e eacute muito objetiva em suas mateacuterias

Jaacute estive pesquisando poreacutem eacute muito difiacutecil en-contrar sistemas para gerenciamento de empresas como contas a pagar a receber controle de estoque etc Este eacute acredito eu um dos maiores problemas para conseguirmos migrar os nossos clientes para a plataforma Linux

Gostaria de pedir agrave Linux Magazine que se pos-siacutevel indicasse algumas opccedilotildees de softwares (livres ou natildeo) para gestatildeo de empresas para que pudeacutesse-mos analisaacute-los

Ivan Moretto Leme SP

Resposta Prezado Ivan muito obrigado pelos elogios Eacute sempre muito gratifi cante receber o reconhecimento por parte de nossos leitores Mas por favor natildeo hesite em nos informar tambeacutem o que poderia ser melhorado na Li-nux Magazine

Sobre a sua questatildeo jaacute publicamos duas ediccedilotildees (39 e 30) sobre esses sistemas cha-mados ERP (do inglecircs ldquoEnterprise Resour-ce Planningrdquo ndash Planejamento de Recursos da Empresa)

Como vocecirc pode conferir na listagem das mateacuterias de capa dessas ediccedilotildees haacute diversos sistemas ERP (proprietaacuterios ou de coacutedigo aberto) para Linux com destaque para Adem-piere Compiere e Openbravo ndash por sinal todos os trecircs tecircm o coacutedigo aberto

copy Linux New Media do Brasil Editora Ltda

7

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

8 httpwwwlinuxmagazinecombr

Pergunte ao Klaus

Klaus KnopperO professor Klaus responde as mais diversas duacutevidas dos leitores

Espaccedilo na telaHaacute uns dois anos eu comprei um PC bem baacutesico com chip graacutefico onboard Pluguei nele um moni-tor LCD de 19 polegadas (1280x1024) mas troquei-o por um de 22 polegadas (1680x1050) um ano de-pois No Centro de Controle do KDE selecionei a resoluccedilatildeo de 1680x1050 mas agora ele exibe e usa 1680x1200

Como meu monitor natildeo suporta essa resoluccedilatildeo eacute como se meu monitor estivesse ldquoflutuandordquo sobre a aacuterea de trabalho quando chego o mouse perto da base do monitor ele desliza a imagem para baixo mostrando a barra inferior do KDE e escondendo os 150 pixels laacute de cima

Eu gosto desse comportamento pois os progra-mas costumam ter seus menus na parte de cima da janela entatildeo eu natildeo preciso descer para a base com frequumlecircncia Aleacutem disso a base se torna um bom lo-cal para eu jogar janelas que natildeo quero visualizar no momento

Minha duacutevida eacute se essa nova configuraccedilatildeo eacute causa-da por um problema de driver ou se eu encontrei um recurso do Xorg que eacute comum mas pouco usado

Testei recentemente o Fedora 8 e ele reconhece automaticamente o tamanho do monitor Agraves vezes eu sinto falta dos 150 pixels de altura que sobram para baixo Existe alguma forma de recuperaacute-los

RespostaOs ldquo150 pixels ocultosrdquo de fato satildeo causados por

um recurso do servidor X Se o tamanho da tela for configurado como 1680x1050 o Xorg entraraacute no modo de deslizamento (scrolling mode)

Novas versotildees do Xorg substituem esse recurso pela alteraccedilatildeo da resoluccedilatildeo da aacuterea de trabalho usando a extensatildeo randr A vantagem eacute que a aacuterea de trabalho ajusta seu tamanho automaticamente ao se alterar a resoluccedilatildeo

Aleacutem disso alternar entre diferentes dispositivos de saiacuteda eacute mais faacutecil (por exemplo conectar um projetor com uma resoluccedilatildeo diferente ou usar no monitor interno a resoluccedilatildeo do externo) O Xorg carrega automaticamente a extensatildeo randr e depois

as configuraccedilotildees de Modes no arquivo etcX11xorgconf satildeo ignoradas em favor do que o monitor especifica como resoluccedilatildeo favorita

Eacute possiacutevel fazer o Xorg alterar sua resoluccedilatildeo dinami-camente usando o krandtray (no KDE) ou o comando xrandr (na linha de comando) Por exemplo

xrandr --output LVDS --auto

tentaraacute alinhar automaticamente a resoluccedilatildeo do servidor X agrave do monitor enquanto

xrandr --output LVDS --mode 800x600

ou

xrandr --output LVDS -s 800x600

usaraacute o modo ou resoluccedilatildeo para o tamanho de 800x600 especificado no comando o que tambeacutem faz certos ambientes desktop adotarem um tama-nho de tela diferente

xrandr --output VGA --auto

deve ativar a porta VGA externa de um notebook e tambeacutem fazer o desktop adotar a resoluccedilatildeo preferida do monitor ou projetor ligado a essa porta

No seu caso para retornar ao comportamento original com 150 pixels ldquosobrandordquo (desativando o randr no Xorg) basta adicionar a seguinte seccedilatildeo ao seu arquivo etcX11xorgconf

Section ldquoServerFlagsrdquo Option ldquoRandRrdquo ldquofalserdquoEndSection

CO

LU

NA

Escreva para o KlausEnvie suas perguntas em portuguecircs ou inglecircs para klauslinuxmagazinecombr e tire todas as suas duacutevidas

Linux Magazine 50 | Janeiro de 2009

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

9

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

10 httpwwwlinuxmagazinecombr

Siege

Charly Kuumlhnast O cerco a Troacuteia durou dez anos e terminou somente quanto Ulisses introduziu um cavalo de madeira dentro da cidade Charly tambeacutem estaacute planejando um cerco e o alvo eacute seu proacuteprio servidor web Naturalmente ele natildeo tem dez anos para completar essa tarefa nem Ulisses como parte de sua equipe

Estava checando meu servidor Apache e me lembrei do mito do monstro marinho Cila que deu cabo de nada menos que seis ho-

mens de Ulisses voltando de Troacuteia a caminho de casa O moacutedulo de multi-processamento ndash MPM worker ndash do meu servidor tambeacutem eacute capaz de devo-rar muacuteltiplas requisiccedilotildees numa talagada soacute mas ateacute onde ele aguumlenta Quantas threads eu preciso con-fi gurar para conseguir que ele entregue o maacuteximo de desempenho E a partir de quantas threads isso se torna um desperdiacutecio

Teste de carga Usando a ferramenta de ataque Siege [1] vou tentar responder essas questotildees por meio de um teste de car-ga O programa contempla dois modos de ataque o primeiro simula o comportamento de um ser humano navegando na Internet o que explica o intervalo de trecircs segundos entre cada dois acessos No segundo conhecido como modo benchmark esses intervalos satildeo eliminados e a ferramenta faz solicitaccedilotildees ao servidor ininterruptamente Para fazer o servidor ldquosuarrdquo o Sie-ge dispotildee de um exeacutercito de usuaacuterios de contingente confi guraacutevel ndash dez por padratildeo mas eacute possiacutevel usar o paracircmetro a seguir para aumentar o tamanho da tro-pa ateacute que o servidor web peccedila misericoacuterdia e nossos agressores consumam todos os recursos do sistema

--concurrent=ltnuacutemerogt

Como entrar em Troacuteia Como o Siege sabe qual servidor atacar Haacute duas opccedilotildees para isso o paracircmetro

--url=rdquohttpltmeusitecomgtltindexhtmlgtrdquo permite que vocecirc forneccedila a URL que o programa solicitaraacute repetidamente Jaacute a opccedilatildeo

--file=rdquohomecharlysiege-urlstxtrdquo

eacute mais interessante pois permite a criaccedilatildeo de uma sequumlecircncia arbitrariamente longa de endereccedilos web para o Siege atacar O parametro --reps=ltnuacutemerogt permite especifi car quantas vezes o programa deveraacute repetir o teste de carga

Tambeacutem eacute possiacutevel usar o paracircmetro --internet para dizer ao Siege para natildeo realizar as requisiccedilotildees na ordem especifi cada no arquivo siege-urlstxt mas fazecirc-lo de maneira aleatoacuteria o que eacute muito mais proacuteximo da realidade

Fim da batalha Para evitar que o teste de carga se estenda indefi nida-mente eacute prudente utilizar o paracircmetro --time para limitar seu tempo de execuccedilatildeo O ataque cessaraacute ao fi nal do tempo indicado mesmo que a quantidade de execuccedilotildees especifi cada pelo paracircmetro --rep ainda natildeo tenha sido atingida

Apoacutes sua execuccedilatildeo ter sido completada o Siege mostra um resumo dos resultados encontrados (veja a fi gura 1 )

CO

LU

NA

Mais informaccedilotildees

[1] Siege httpwwwjoedogorgJoeDogSiege

Figura 1 Apoacutes a batalha contra o servidor web o Siege apresenta os resultados

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

11

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

Gab

arit

o

Soluccedilatildeo faacutecil e descomplicada para empresas de qualquer tamanho colocarem seus produtos agrave venda na internet

R$4900

por mecircs

a partir de

senhorlojasimplesindd 1 121008 110411 AM

copy Linux New Media do Brasil Editora Ltda

12 httpwwwlinuxmagazinecombr

Crocircnicas do kernel

Zack BrownOs acontecimentos mais recentes na histoacuteria do kernel

Erradicaccedilatildeo do Big LockFrederic Weisbecker criou o Big Kernel Lock Tracer (rastreador do Big Lock ndash grande bloqueio ndash do ker-nel) que rastreia os tempos de atraso causados pelo Big Kernel Lock ou BKL Isso pode ajudar a iden-tificar aacutereas especiacuteficas nas quais o BKL deveria ser eliminado primeiro Linus Torvalds sugeriu livrar-se do BKL e substituiacute-lo por estruturas de bloqueio mais simples Entretanto nem todas as situaccedilotildees podem ser resolvidas com um bloqueio geneacuterico e o coacute-digo de bloqueio estaacute espalhado por todo o kernel o que dificulta qualquer tipo de esforccedilo conjunto Uma tentativa no momento eacute ldquoempurrarrdquo todo o

coacutedigo do BKL para sua proacutepria parte da aacutervore do kernel para centralizaacute-lo de forma a trataacute-lo de uma soacute vez Os participantes de todo o espectro do desen-volvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho A ferramenta de Frederic pode ajudar os desenvolvedores a concentrar sua atenccedilatildeo em aacutereas que beneficiariam a maioria

Redefinindo Load AverageSena Senerviratne e David Levy estatildeo preparando algumas mudanccedilas para o caacutelculo do valor de load average (carga meacutedia) no Linux Sua ideacuteia eacute em vez de calcular apenas um uacutenico nuacutemero para re-presentar toda a carga meacutedia do sistema fornecer muacuteltiplas estatiacutesticas Por exemplo eles querem separar do resto do sistema a carga de IO de disco

para visualizarem esse dado independentemente Aleacutem disso desejam ativar o caacutelculo de load avera-ge por usuaacuterio para que cada usuaacuterio visualize os efeitos sobre o seu sistema Arjan van de Ven pediu encarecidamente que eles apenas acrescentem esta-tiacutesticas sem alterar o comportamento dos nuacutemeros que o sistema jaacute produz

MantenedoresTheodore (Ted) Y Tsrsquoo atualizou o arquivo MAINTAINERS listando-se como mantenedor do sistema de arquivos Ext4 no lugar de Andrew Morton e Stephen Tweedie embora isso natildeo represente uma mudanccedila real de man-tenedor De acordo com Ted a entrada originalmente foi simplesmente copiada daquela do Ext3 e jamais foi precisa o que seu patch agora corrigiu

Um detalhe interessante eacute que embora Andreas Dilger natildeo esteja incluiacutedo como co-mantenedor no patch de Ted a lista de emails para submissatildeo de patches relatoacuterios de bug etc inclui o email de Andreas junto com o de Ted O email de Andreas tambeacutem estaacute listado junto com o de Andrew e Ste-phen na entrada original equivocada Geralmente isso significaria que ele dedica muito trabalho ao projeto e pode atuar como ldquotenenterdquo de Ted da mesma forma que Linus Torvalds confia em seus ldquotenentesrdquo para facilitar seu trabalho de inclusatildeo de coacutedigos no kernel

Mike Frysinger postou um patch para o arquivo MAINTAINERS listando a si mesmo e Subrata Modak como co-mantenedores do LTP (Linux Test Project) Esse projeto patrocinado pela SGI e IBM oferece um conjunto de aproximadamente 3 mil testes para avaliar a confiabilidade robustez e estabilidade do sistema operacional Linux

CO

LU

NA

Sobre o autorA lista de discussatildeo Linux-kernel eacute o nuacutecleo das atividades de desenvolvimento do ker-nel Zack Brown consegue se perder nesse oceano de mensagens e extrair significado Sua newsletter Kernel Traffic esteve em ativi-dade de 1999 a 2005

Os participantes de todo o espectro do desenvolvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho

copy Linux New Media do Brasil Editora Ltda

13

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

O Scalix eacute uma soluccedilatildeo completa para mensagens que suporta muacuteltiplos servidores e atende agraves necessidades de sua empresa Natildeo importa otamanho dela Baseia-se em uma Plataforma Colaborativa que serve de fundaccedilatildeo para todas as ediccedilotildees desse produto

Maiores informaccedilotildees wwwsentegritycombr EUA 646-747-7648 | Satildeo Paulo 11 5105-9037 | Rio de Janeiro 21 2526-7262

Reduza os custos de comunicaccedilatildeo usando Scalix

copy Linux New Media do Brasil Editora Ltda

14 httpwwwlinuxmagazinecombr

A quarta geraccedilatildeo dos rootkits se baseia no hardware e eacute quase indetectaacutevel

InseguranccedilaAnalisamos a histoacuteria dos rootkits incluindo a sua mais nova encarnaccedilatildeo o DR RootKitpor Kurt Seifried

Originalmente eu pretendia escrever um artigo sobre o estado da arte dos rootkits

e as ferramentas que poderiam ser usadas para detectaacute-los Foi aiacute que acabei topando com um problemi-nha os rootkits mais avanccedilados e modernos tendem a ser realmente bons em evitar sua detecccedilatildeo Com ldquorealmente bonsrdquo quero dizer que seraacute improvaacutevel para qualquer um detectaacute-los a menos que se lance matildeo de teacutecnicas como a anaacutelise detalhada de uma coacutepia (dump) da memoacuteria por exemplo comparan-do-se a partir daiacute a imagem real do kernel carregada na memoacuteria com aquela que seria de se esperar

Liccedilotildees histoacutericasRootkits tradicionais satildeo programas simples geralmente rodando como um serviccedilo isolado e fornecendo aces-so a uma backdoor Eles satildeo relativa-mente faacuteceis de detectar bastando para isso procurar novos processos ou programas recentemente instalados Isso levou os agressores a comeccedilar a sobrescrever os programas executaacuteveis do sistema Via de regra esses pro-gramas satildeo substituiacutedos por versotildees modificadas pelo agressor tais como versotildees do OpenSSH com nome e senha do administrador embutidas diretamente no programa com o intuito de escalar privileacutegios e obter direitos de root no sistema O adven-to de ferramentas como o Tripwire e o uso cada vez mais comum de gerenciadores de pacotes com a ca-

pacidade de verificar a integridade dos arquivos instalados no sistema ndash tais como rpm e dpkg ndash acabou por facilitar a detecccedilatildeo desse tipo de rootkit tambeacutem [1]

Rootkits para o kernelNatildeo demorou muito para que os agressores percebessem que meacuteto-dos mais sofisticados de ocultaccedilatildeo e subversatildeo eram necessaacuterios para controlar um sistema o que levou agrave criaccedilatildeo de rootkits para o kernel Assim ao modificar a tabela de ca-madas do sistema um agressor pode evitar facilmente a sua detecccedilatildeo pois em poucas palavras ele controla o que eacute exibido e como seus programas estatildeo sendo executados

Tradicionalmente um agressor usa um dos dois meacutetodos para modificar o kernel do sistema ou ele carrega um moacutedulo com coacutedigo malicioso no kernel (como o heroin por exemplo) ou modifica o kernel carregado na memoacuteria escrevendo no dispositivo especial devkmem (como o SucKIT por exemplo) A desvantagem dessa teacutecnica eacute que como esses ataques estatildeo carregados apenas na memoacuteria do sistema normalmente natildeo sobre-vivem a uma reinicializaccedilatildeo

Por mais difiacutecil que possa parecer esses rootkits podem ser detectados comparando-se a tabela atual de cha-madas do sistema com a que seria de se esperar originalmente (isto eacute examinando-se o arquivo Systemmap) Coacutepias da memoacuteria do sistema po-dem ser feitas e usadas para verificar

se o kernel carregado na memoacuteria estaacute intacto

Quando chegam a esse niacutevel o que vocecirc acha que os agressores fazem Vatildeo mais fundo ainda claro

Hardware e virtualizaccedilatildeoLanccedilado em 2006 durante a Black Hat Conference em Las Vegas o primeiro rootkit desenvolvido para comprometer diretamente o hardware foi chamado de Blue Pill [2] Os processadores mo-dernos da AMD e da Intel dispotildeem de uma gama de recursos para suportar virtualizaccedilatildeo de sistemas operacionais E como natildeo eacute mais necessaacuterio que esses rootkits modifiquem o que quer que seja no sistema operacional para funcionar eles satildeo muito mais difiacuteceis de detec-tar de modo que somente verificar a integridade da tabela de chamadas do sistema natildeo vai funcionar Contudo esses rootkits modificam a tabela de descritores de interrupccedilatildeo (IDT na sigla em inglecircs) que eacute mantida em um dos registradores do processador (o IDTR) [3]

Como passam a existir dois IDTRs no sistema comprometido ndash um real e outro falso que eacute apresentado ao sistema operacional ndash este uacuteltimo vai ocupar uma posiccedilatildeo de memoacuteria diferente da de costume Felizmente a instruccedilatildeo privilegiada Store Inter-rupt Descriptor Table (SIDT) pode ser executada a partir do espaccedilo de usuaacuterio do sistema retornando de forma confiaacutevel o conteuacutedo do IDTR

CO

LU

NA

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

15Linux Magazine 50 | Janeiro de 2009

disponiacutevel para o sistema operacional (o que natildeo serve para muita coisa pois o sistema jaacute foi comprometi-do) bem como ndash e o que eacute mais importante ndash a posiccedilatildeo da memoacuteria em que o IDTR se encontra Pare-ce que chegamos a um beco sem saiacuteda os agressores criaram novos meacutetodos para esconder os rootkits e os defensores encontraram meios para detectaacute-los

A nova geraccedilatildeo de rootkitsLanccedilados em setembro de 2008 pela Immunity Inc o DR RootKit [4] im-plementa ldquoganchosrdquo (hooks) para as chamadas de sistema no kernel Linux 26 sem modificar nem a tabela de chamadas do sistema nem a tabela de descritores de interrupccedilatildeo Para fazer isso ele introduz breakpoints de hardware no manipulador de chamadas do sistema Isso corres-

ponde agrave inclusatildeo de um ldquovigiardquo na memoacuteria da tabela de chamadas do sistema especificamente observando a entrada __NR_syscall usada para exportar nuacutemeros de chamadas do sistema Basicamente o rookit se comporta como uma ferramenta de depuraccedilatildeo de programas espe-rando que determinadas chamadas do sistema sejam executadas e mo-

dificando-as quando isso acontece Os ganchos do DR RootKit estatildeo listados na tabela 1

O DR RootKit dispotildee de recursos tais como ocultaccedilatildeo de processos e prevenccedilatildeo do teacutermino de execuccedilatildeo de processos ocultos (o que significa que um agressor pode executar pro-gramas ocultos e vocecirc natildeo tem como terminaacute-los com o comando kill

Tabela 1 Chamadas do sistema

getdents64 Lecirc entradas de diretoacuterio

getdents Lecirc entradas de diretoacuterio

chdir Muda o diretoacuterio de trabalho

open Abre um arquivo ou dispositivo

execve Executa um programa

socketcall Chamadas de sistema via socket

fork Cria um processo filho

exit Encerra o processo atual

kill Envia um sinal a um processo

getpriority Obteacutem prioridade de escalonamento para um programa

| COLUNAInseguranccedila

copy Linux New Media do Brasil Editora Ltda

16 httpwwwlinuxmagazinecombr

Mais informaccedilotildees

[1] Amir Alsbih ldquoPassagem Secreta Teacutecnicas de criaccedilatildeo de backdoorsrdquo httpwwwlinuxmagazinecombrarticlepassagem_secreta

[2] Blue Pill httpbluepillprojectorg

[3] Red Pill httpwwwinvisiblethingsorgpapersredpillhtml

[4] DR RootKit httpwwwimmunityinccomresources-freesoftwareshtml

[5] Core Security Technologies httpwwwcoresecuritycom

mesmo que vocecirc consiga descobrir a identidade ndash o ID ndash do processo) Se vocecirc usar os exemplos forneci-dos com o pacote eacute relativamente simples estender e criar outras cha-madas de sistema modificadas Por exemplo vocecirc pode alterar o conjun-to de recursos disponiacuteveis para pro-cessos ndash o capset O proacuteprio rootkit eacute um moacutedulo carregaacutevel no kernel o que simplifica sua inserccedilatildeo em um sistema comprometido Poreacutem da mesma forma que acontece com outros rootkits residentes na memoacute-ria a reinicializaccedilatildeo do sistema iraacute removecirc-lo da memoacuteria

Se vocecirc quiser estender o rootkit pode por exemplo inserir suas proacuteprias chamadas do sistema personalizadas Forneci um exemplo para alterar a chamada de sistema exit Em poucas palavras o processo consiste em de-clarar seu proacuteprio gancho para alterar uma chamada de sistema e entatildeo im-plementar uma chamada de sistema customizada ndash isso eacute realmente simples O melhor lugar para comeccedilar eacute o coacute-digo-fonte do kernel ndash mais especifica-mente no subdiretoacuterio kernel onde a maioria das chamadas do sistema satildeo definidas Por exemplo se houver um sistema no qual os recursos em uso restringem o que programas podem ou natildeo fazer vocecirc pode simplesmen-te modificar a chamada de sistema do_sys_capset_other_tasks que sempre retorna todos os recursos de um ID de processo especiacutefico como

-2376 +2379 if (capable(CAP_SETPCAP))return -EPERM+ if (pid == 12345) magic process number + return cap_set_all_evil(effective inheritable permitted)

Como vocecirc pode notar mesmo a menor das modificaccedilotildees pode ter um efeito significativo Assim de uma hora para outra o processo

com o ID 12345 teraacute sempre todos os recursos o que permite a ele fa-zer praticamente tudo o que quiser Assim com apenas uma chamada de sistema um agressor pode criar uma backdoor eficiente

O uacutenico modo de detectar um rootkit desses eacute por meio da mediccedilatildeo de atrasos ou de condiccedilotildees de corri-da (race conditions) que sejam intro-duzidas pelo rootkit Se um rootkit estivesse presente o sistema deveria ficar mais lento do que de costume mas a mediccedilatildeo dessa variaccedilatildeo natildeo eacute uma tarefa simples Aleacutem disso o programa eacute relativamente simples e pode ser estendido facilmente de modo a se esconder de maneira mais eficiente e tornando sua detecccedilatildeo ainda mais difiacutecil

Abordagem alternativaClaro que vocecirc pode comprometer um sistema e manter o acesso de outras formas enquanto permanece escondido Uma outra empresa que desenvolve software de verificaccedilatildeo de invasatildeo chamada Core Security [5] adotou uma abordagem de injetar coacutedigo hostil em processos que jaacute te-nham sido atacados Por exemplo se vocecirc criar uma brecha no conhecido servidor web Apache conseguiraacute inje-tar coacutedigo nele que lhe garanta acesso remoto ao sistema Essa teacutecnica eacute algo limitado se comparada com um roo-tkit de kernel completo ou com um rootkit de hardware A desvantagem dessa teacutecnica satildeo os mecanismos de proteccedilatildeo do sistema operacional tais como o SELinux que permanecem capazes de forccedilar uma poliacutetica de seguranccedila Contudo para agressores obstinados isso natildeo costuma ser um problema muito seacuterio pois eles podem usar um exploit local para comprome-ter ainda mais o sistema ou mesmo permanecer dentro das condiccedilotildees impostas pela poliacutetica definida pelo SELinux mas ainda sim obter infor-maccedilotildees ou usar o sistema para realizar outros ataques maliciosos

ConclusatildeoA boa notiacutecia eacute que chegando agrave camada de hardware os agresso-res (pelo menos conceitualmente) atingiram a uacuteltima camada passiacute-vel de abuso A maacute notiacutecia eacute que um grande contingente de truques de hardware pode ser usado para manter o controle sobre um sistema comprometido Por exemplo uma placa de viacutedeo moderna tem acesso direto agrave memoacuteria (o que significa que ela pode fazer o que bem en-tender com a memoacuteria do sistema sem que o sistema operacional possa interferir significativamente no pro-cesso) dispotildee de memoacuteria proacutepria e de uma grande quantidade de poder de processamento (tanto que estatildeo sendo usadas por muitos para criar clusters de baixo custo) Placas mais modernas tecircm seu firmware arma-zenado em memoacuteria flash passiacutevel de atualizaccedilatildeo por software e eu natildeo tenho a miacutenima duacutevida de que algum dia algueacutem vai criar algum meacutetodo para abusar da placa de viacutedeo com o propoacutesito de controlar um sistema comprometido

COLUNA | Inseguranccedila

copy Linux New Media do Brasil Editora Ltda

17Linux Magazine 50 | Janeiro de 2009

COLUNA

MID mais um degrau na escadaria da mobilidade

Augusto CamposNem smartphone nem subnotebook os MIDs chegam como uma nova categoria para facilitar nossas vidas

Neste iniacutecio de 2009 tive a oportunidade de segurar em minhas matildeos um pedaccedilo do futuro do desktop Soacute que natildeo se tra-

tava propriamente de um desktop ou pelo menos natildeo daquele modelo que aprendemos a conhecer com uma infinidade de arquivos gravados em um disco riacutegido ao meu alcance um ambiente de trabalho cheio de aplicativos instalados local-mente e a ocupaccedilatildeo de uma vasta aacuterea em cima da escrivaninha

Natildeo era nem mesmo um daqueles notebooks pequeninos estilo Eee PC que foram se popula-rizando mundialmente ao longo de 2008 Era algo menor mais singelo mas com poder de processa-mento surpreendente um Aigo MID equipamento do qual provavelmente vocecirc ainda natildeo ouviu falar ndash ateacute porque ele parece estar bem distante do nosso mercado neste momento

Os MIDs ou Mobile Internet Devices satildeo dis-positivos que parecem ficar entre os smartphones e os subnotebooks de hoje Como em uma cadeia darwiniana eu ateacute apostaria que os mais bem-suce-didos entre eles vatildeo acabar ficando no nicho exato que hoje eacute ocupado por um destes dois extremos (os smartphones ou os subnotebooks) ateacute mesmo porque essas fronteiras vatildeo ficando cada vez mais difusas com o passar do tempo Mas hoje eles satildeo uma categoria agrave parte e torccedilo para que suas carac-teriacutesticas e possibilidades sejam logo herdadas pelos celulares (ou pelos subnotebooks)

O equipamento com o qual tive oportunidade de brincar um pouco tem caracteriacutesticas de um PC de pequeniacutessimo porte com um display sufi-cientemente grande para mostrar os sites da web 20 nossos de cada dia um teclado escamoteaacutevel cacircmera microfone e acesso a redes Wi-Fi Alguns modelos tecircm acesso agrave conectividade via redes mais amplas (CDMA 3G etc) mas natildeo eacute o caso do meu E eles permitem fazer o que eu mais faccedilo no meu desktop diariamente acessar a web comuni-car-me por IM VoIP e email consultar (ou editar levemente) documentos e textos e ateacute digitar esta coluna que vocecirc estaacute lendo

E o mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres como o Firefox e o Pidgin entre vaacuterios outros E nem eacute soacute pela questatildeo do custo de aquisiccedilatildeo esses aplicativos livres satildeo leves por natureza e ainda podem ser alterados de acordo com as especificaccedilotildees do aparelho no qual seratildeo distribuiacute-dos seja para ocupar menos disco preencher menos memoacuteria RAM ou mesmo gastar menos bateria

Hoje o acesso agrave Web eacute cada vez mais uma condiccedilatildeo para que eu possa desempenhar bem as minhas ativi-dades e quanto mais rico esse acesso melhor a cada dia eacute necessaacuterio interagir digitar textos captar imagens comunicar-se por viacutedeo e voz conectar-se a redes de

variadas tecnologias abertas Acredito que em algum momento os celulares vatildeo estar aptos a prover com con-forto e economia esses recursos e que vatildeo estar rodando um sistema operacional livre quando o fizerem

Enquanto esse dia natildeo chega eacute interessante ver como a induacutestria avanccedila nesta direccedilatildeo por vias obliacute-quas que convergem em uma direccedilatildeo que muito nos interessa softwares livres conectando-se a pro-tocolos abertos e provendo serviccedilos que facilitam as nossas vidas

COLUNA

Sobre o autorAugusto Ceacutesar Campos eacute administrador de TI e desde 1996 manteacutem o site BR-linuxorg que cobre a cena do Software Li-vre no Brasil e no mundo

O mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres

copy Linux New Media do Brasil Editora Ltda

18

NO

TIacuteC

IAS

httpwwwlinuxmagazinecombr

Xen ganha recursos e promete integraccedilatildeoKeir Fraser da Xensource (atualmente Citrix) anunciou na lista xen-devel a disponibilidade de uma aacutervore com o coacutedigo-fonte para criaccedilatildeo de um dom0 completo do Xen no kernel Linux 2627

Segundo Keir ldquoa intenccedilatildeo eacute fornecer uma aacutervore uacutenica para desenvolvimento e testes voltada aos desenvolvedores que pre-cisarem de um kernel 26 mais modernordquo e menciona o geren-ciamento de energia como um dos motivos para isso

O porte da funcionalidade de dom0 do Xen para o Linux atu-almente depende da implementaccedilatildeo final das pv_ops (operaccedilotildees para-virtualizadas) um conjunto de ldquoganchos de coacutedigordquo (hooks) no kernel que permitem sua operaccedilatildeo mediante o uso da teacutecnica de para-virtualizaccedilatildeo Atualmente o escopo de funcionalidade das pv_ops permite apenas o funcionamento do Linux como

Alta disponibilidadeManter a sincronizaccedilatildeo perfeita de muacuteltiplos servidores Xen cada um com diversas maacutequinas virtuais natildeo eacute tarefa das mais faacuteceis Atualmente eacute preciso replicar arquivos de configuraccedilatildeo entre os servidores e manter sincronizado todo o restante da estrutura

Felizmente tudo isso pode mudar para melhor com o projeto Kemari Trata-se de um software de coacutedigo aberto (GPL) descrito por seus autores como ldquoum mecanismo de coacutedigo aberto para sin-cronizaccedilatildeo de maacutequinas virtuais para toleracircncia a falhas Oferece uma teacutecnica utilizaacutevel para toleracircncia a falhas que natildeo requer o uso de hardware especiacutefico ou a modificaccedilatildeo dos aplicativos ou sistema operacionalrdquo

Lanccedilado o Fedora 10Seis meses apoacutes o lanccedilamento do Fedora 9 o projeto livre lanccedilou a versatildeo 10 da popular distribuiccedilatildeo Linux codinome Cambridge

O Fedora 10 usa o kernel Linux 26275 anunciado no uacuteltimo dia 7 O projeto tambeacutem estaacute buscando trazer seus softwares a um novo niacutevel e ele inclui o OpenOfficeorg 30 Gnome 2241 Eclipse 34 e RPM 46 O produto promete um melhor gerenciamento de impressoras e alguns interessantes recursos de vir-tualizaccedilatildeo No momento o KVM estaacute disponiacutevel por padratildeo no Fedora 10 na versatildeo 74-5 (no Fedora 9 o KVM era apenas uma opccedilatildeo) Certamente a aquisiccedilatildeo da Qumranet criadora e desenvolvedora do KVM pela Red Hat patrocinadora do Fedora tem grande influecircncia nisso No entanto o uso do KVM natildeo implica a rejeiccedilatildeo do ldquoconcorrenterdquo Xen o hypervisor tradicional estaacute presente na versatildeo 330-1 As ferramentas de virtualizaccedilatildeo de criaccedilatildeo do proacuteprio Fedora como a libvirt e o virt-manager tambeacutem estatildeo incluiacutedas

Outra importante novidade do Fedora 10 eacute seu tempo de inicializaccedilatildeo que foi reduzido graccedilas ao novo sistema graacutefico de inicializaccedilatildeo Plymouth

domU (ou seja como maacutequina virtual) enquanto o kernel do dom0 ainda eacute res-trito agrave versatildeo 2618 do Linux

A expectativa eacute que os desenvolvedores da Novell que estatildeo trabalhando nessa ta-refa consigam incrementar as pv_ops de forma a permitir seu uso tambeacutem como dom0 o que permitiria o uso de versotildees mais recentes do kernel Linux (com to-das as vantagens que trazem) no dom0 Posteriormente as novas pv_ops tambeacutem devem ser incluiacutedas na aacutervore principal do kernel unindo definitivamente os projetos Xen e Linux

O objetivo do projeto eacute ldquomanter as maacute-quinas virtuais rodando transparentemente em caso de falhas de hardwarerdquo Para isso ele ldquotransfere o estado da maacutequina virtual primaacuteria para a secundaacuteria quando a pri-maacuteria estaacute prestes a enviar um evento para dispositivos como armazenamento e rederdquo como descreve o anuacutencio do projeto

Espera-se que o Kemari seja integra-do ao Xen 34 a proacutexima versatildeo estaacutevel do popular sistema de virtualizaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

O Linux Professional Institute ndash oacutergatildeo responsaacutevel pela certificaccedilatildeo em Linux que mais cresce no mundo ndash realizou no Brasil a primeira aplicaccedilatildeo das provas 303 Elas correspon-dem agrave categoria especialista do niacutevel 3 da certificaccedilatildeo e qualificam o profissional aprovado como ldquoSecurity Specialistrdquo As provas (grauitas) ocorreram na cidade de Satildeo Paulo no dia 20 de dezembro de 2008

O Programa de Certificaccedilatildeo LPI eacute composto por dois niacuteveis baacutesicos com duas provas cada um As provas do niacutevel 1 (101 e 102) certificam o profissional como ldquoAdministrador Linux Juacuteniorrdquo e as do niacutevel 2 (201 e 202) como ldquoAdministrador Linux Plenordquo

O niacutevel 3 da certificaccedilatildeo LPI eacute focado no mercado corporativo O profissional precisa se certificar obrigatoria-mente na prova 301 (Core) e depois escolher uma das especialidades disponiacuteveis Atualmente a uacutenica disponiacutevel eacute a prova 302 (Mixed Environment) para profissionais que queiram se especializar em interoperabilidade em ambientes mistos (Linux Unix Netware e Windows) A prova lsquo303 - Securityrsquo eacute a segunda especialidade a ser lanccedilada pelo LPI A prova 303 estaacute sendo realizada em caraacuteter de teste antes de ser lanccedilada oficialmente

19

Xen ganha recursos e promete integraccedilatildeo

Linux Magazine 50 | Janeiro de 2009

Gerais | NOTIacuteCIAS

LPI lanccedila provas 303 no Brasil

Google Android no Openmoko Linux versus OpenSolaris e FreeBSD

O site dedicado a Software Livre e hard-ware Phoronix publicou um comparativo de velocidade (benchmark) na realizaccedilatildeo de diversas tarefas entre os sistemas ope-racionais mais famosos baseados em ker-nels de coacutedigo aberto Ubuntu OpenSolaris e FreeBSD

Os testes utilizaram a versatildeo instaacutevel de 64 bits mais recente de cada um dos sistemas (com exceccedilatildeo do Ubuntu cuja versatildeo foi a 810 final) e se basearam no proacuteprio pacote de benchmarks de coacutedigo aberto desenvol-vido pela equipe do Phoronix (e em raacutepida evoluccedilatildeo) o Phoronix Test Suite

Os autores concluem o artigo decla-rando o Ubuntu 810 como vencedor no desempenho mas o representante do ker-nel Linux natildeo foi o campeatildeo em todas as categorias venceu em oito dos 18 testes contra sete vitoacuterias do OpenSolaris e trecircs do FreeBSD

Poucos dias depois os autores retornaram ao ambiente de testes e fizeram o compara-tivo entre o tambeacutem recente Ubuntu 810 e o Fedora

Foram usadas as versotildees de 32 e 64 bits de ambos os sistemas e os testes empregados foram os mesmos do benchmark anterior com o Phoronix Test Suite

O resultado dessa comparaccedilatildeo no entan-to natildeo foi conclusivo as distribuiccedilotildees Linux se saiacuteram praticamente igual com respeito ao desempenho nos testes

Institute

LinuxProfessional

R

A Koolu empresa canadense especializada no desenvolvimento de soluccedilotildees de tecnologia ambientalmente corretas disponibili-zou o coacutedigo-fonte da plataforma Android do Google adaptado ao telefone Openmoko FreeRunner cujo desenvolvimento contou com esforccedilo e total colaboraccedilatildeo da comunidade internacional do Software Livre

O anuacutencio foi realizado no IP Communications Brasil 2008 evento internacional sobre comunicaccedilotildees IP por Jon lsquomaddogrsquo Hall CTO da Koolu e Denis Galvatildeo presidente da paranaense iSolve Durante o evento tambeacutem foi anunciado o acordo nome-ando a iSolve como canal master de distribuiccedilatildeo do Openmoko FreeRunner no Brasil

O Android foi lanccedilado como um software livre no final de outu-bro de 2008 poreacutem muito trabalho precisou ser realizado para que esse coacutedigo pudesse funcionar em telefones de outros fabricantes O FreeRunner telefone com design aberto desenvolvido pela empresa taiwanesa Openmoko demandou uma seacuterie de alteraccedilotildees no coacutedigo-fonte do Android para que ele pudesse fun-cionar corretamente A comunidade de Software Li-vre com ajuda de vaacuterias pessoas ao redor do mundo realizou as implementaccedilotildees necessaacuterias e tornou possiacutevel a execuccedilatildeo do Android no FreeRunner

ldquoAgora que o coacutedigo-fonte jaacute estaacute rodando no FreeRunner es-peramos que os retoques finais estejam prontos rapidamenterdquo dis-se Brian Code diretor teacutecnico da Koolu ldquoA criaccedilatildeo do ambiente para compilaccedilatildeo (toolchain) a criaccedilatildeo dos patches necessaacuterios para tornar o coacutedigo compatiacutevel com o telefone e a documentaccedilatildeo de todo o passo-a-passo do processo de construccedilatildeo do software toma-ram um bom tempo mas agora estaacute mais faacutecil para a comunidade do Software Livre desenvolver e realizar modificaccedilotildees nessa pla-taforma Como um exemplo as aplicaccedilotildees moacuteveis Google Apps bem como outra aplicaccedilotildees corporativas podem ser instaladas e otimizadas para essa plataformardquo

copy Linux New Media do Brasil Editora Ltda

20

CO

RP

OR

ATE

httpwwwlinuxmagazinecombr

ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

Keith Curtis funcionaacuterio por vaacuterios anos da Microsoft conclui em seu livro receacutem-lanccedilado que o futuro do software estaacute no modelo de desenvolvimento de coacutedigo aberto Curtis trabalhou para a Microsoft como de-senvolvedor de software de 1993 a 2004 tendo participado do desenvolvimento dos produtos para bancos de dados da empresa bem como na programaccedilatildeo do Windows do Office e do MSN entre outros No final de 2008 ele publicou o livro intitulado ldquoAfter the Software Warsrdquo (Depois das Guerras do Software) que descreve o processo de produccedilatildeo de software do ponto de vista de um desenvolvedor analisa os possiacuteveis avanccedilos nesse processo no futuro e aborda desde toacutepicos como inteligecircncia artificial culminando no desenvolvimento de sistemas que possibilitem viagens espaciais

A ediccedilatildeo online do The New York Times fez uma resenha do livro e relatou a nova trajetoacuteria do ex-funcio-naacuterio da gigante de Redmond ldquoPara o Sr Curtis a forccedila do software de coacutedigo aberto e o motivo pelo qual esse eacute o modelo de desenvolvimento do futuro estatildeo no fato de que por meio deste a inteligecircncia coletiva eacute estimuladardquo Segundo Curtis ldquoas diferenccedilas entre Software Livre e software natildeo-livre ou proprietaacuterio satildeo comparaacuteveis agraves diferenccedilas existentes entre ciecircncia e alquimia Antes de a ciecircncia se estabelecer havia apenas alquimia na qual as pessoas tentavam proteger suas ideacuteias pois elas desejavam dominar o mercado desenvol-vendo um processo para transformar chumbo em ourordquo

Curtis publicou seu livro usando a plataforma lulucom cujo fundador e diretor executivo eacute Bob Young veterano da cena Open Source e ex-CEO da Red Hat

Sun lanccedila MySQL 51Na nova versatildeo do banco de dados de coacute-digo aberto os desenvolvedores se concen-traram no desempenho o que aumentou a velocidade do programa em surpreendentes 15 Entre as novidades haacute cinco novos meacutetodos de particionamento horizontal range hash key list e composite Outros recursos novos satildeo a replicaccedilatildeo hiacutebrida e o agendador de eventos (event scheduler) que permite a automatizaccedilatildeo de tarefas SQL repetitivas

Os sistemas operacionais suportados satildeo Red Hat Enterprise Linux Suse Linux En-terprise Windows Mac OS X FreeBSD HP-UX IBM AIX IBM i5OS e todas as distribuiccedilotildees Linux

A Sun disponibiliza trecircs versotildees do soft-ware para download Community Server sob a GPL Enterprise Server com base em subscriccedilatildeo (assinatura do serviccedilo) e Embedded Server esta com licenccedila co-mercial proprietaacuteria

MS Windows eacute mais econocircmicoA Microsoft fez de novo um estudo recente encomendado pela empresa ldquoconcluiurdquo que eacute mais barato para empresas usar o Win-dows como plataforma de software A revista australiana iTWire analisou o estudo e fez algumas descobertas interessantes

O que parece agrave primeira vista (com perdatildeo do trocadilho) ser uma histoacuteria de sucesso na realidade natildeo eacute mdash nem de longe em primeiro lugar natildeo haacute economia alguma O que haacute satildeo apenas estimativas da Microsoft segundo as quais a empresa britacircnica Speedy Hire deveraacute economizar 200 mil libras por ano em de-corriencia da utilizaccedilatildeo do Windows

A anaacutelise do estudo disponiacutevel em artigo no site australiano iTWirecom faz um raio-X da ldquoeconomiardquo sugerida pela em-presa de Bill Gates Elas comeccedilam pelo hardware jaacute que no projeto foram utilizados terminais leves para Windows mdash que seriam inexplicavelmente mais baratos do que aqueles equipados com Linux O estudo natildeo menciona nem ldquoen passantrdquo que haacute

alternativas bem mais baratas aos modelos V90 da empresa Wyse equipados com Windows como

os V50 preacute-carregados com Linux Nesse esti-lo o artigo vai revelando de onde vieram as ldquoreduccedilotildees de custordquo obtidas pela Microsoft que vatildeo transformam em vapor agrave medida que

prosseguimos na leitura Estamos curiosos para saber o que sobra da economia de 1 milhatildeo de

libras apoacutes os cinco anos

copy Linux New Media do Brasil Editora Ltda

21

Google e Red Hat firmam parceria

A Red Hat assinou em dezembro um acordo com o Google para trazer os principais de-senvolvedores da empresa para a plataforma de construccedilatildeo de aplicaccedilotildees web Google Web Tookit Com o acordo estabelece-se tambeacutem o suporte do servidor de aplicaccedilotildees da Red Hat o JBoss ao GWT

Aleacutem da assinatura do acordo a Red Hat tambeacutem anunciou que jaacute completou algumas integraccedilotildees preliminares entre o GWT e o JBoss Seam Framework Com a integraccedilatildeo a empresa alavanca o Seam para que os desen-volvedores possam combinar o poder do Java agraves modernas tecnologias view-layer como GWT RichFaces e Spring para desenvolver os Rich Internet Applications

Linux Magazine 50 | Janeiro de 2009

| CORPORATENotiacutecias

Insigne jaacute planeja 2012A fornecedora do Insigne Momentum 50 quer manter sua po-siccedilatildeo de lideranccedila no Brasil e conquistar novos mercados in-clusive no exterior O sucesso de sua participaccedilatildeo no projeto de inclusatildeo digital Computador para Todos fez com que a Insigne Free Software do Brasil conquistasse forte posiccedilatildeo de lideran-ccedila no mercado dos PC populares e tambeacutem ficasse conhecida em outros paiacuteses Esse cenaacuterio positivo lhe permitiu iniciar ne-gociaccedilotildees com fabricantes estrangeiros de PC para embarcar o Insigne Momentum 50 sistema operacional de coacutedigo aberto em microcomputadores fora das fronteiras nacionais

Para atingir a meta de manter seu crescimento perante a perspectiva de elevaccedilatildeo das vendas de PCs nos proacuteximos anos a empresa contratou o consultor de estrateacutegia e professor de engenharia Carlos Roberto Lopes As atividades envolvidas no planejamento estrateacutegico incluem uma seacuterie de workshops com todas as equipes e departamentos da Insigne O objetivo eacute coletar impressotildees dos colaboradores e lhes apresentar as mais recentes mudanccedilas ocorridas no mercado global incluindo a atual situaccedilatildeo econocircmica mundial que poderaacute alterar a correlaccedilatildeo de forccedilas entre os fornecedores de tecnologia nos proacuteximos anos

De acordo com Joatildeo Pereira da Silva Jr presidente da Insigne esse planejamento incluiraacute natildeo apenas o foco no seu cliente que eacute o usuaacuterio do PC popular mas tambeacutem em toda a sua equipe de profissionais envolvidos em todas as etapas de desenvolvimento de um sistema operacional de coacutedigo abertordquo

VMware adquire Tungsten GraphicsA VMware adquiriu por um valor natildeo revelado as operaccedilotildees da empresa Tungsten Graphics fundada em 2001 e motor por traacutes do desenvolvimento da implementa-ccedilatildeo de coacutedigo aberto do OpenGL no Linux a biblioteca Mesa 3D

Aleacutem da Mesa 3D a empresa tambeacutem desenvolve o Gallium 3D framework para desenvolvimento de drivers graacuteficos 3D A Tungsten Graphics eacute formada por um grupo de desenvolvedores de aplicativos graacuteficos de coacutedigo aberto Segundo a FAQ no site da empresa o desenvolvimento dos projetos de coacutedigo aberto encabeccedilados por ela continuaraacute agora como parte das atividades da equipe de engenharia da VMware A aquisiccedilatildeo teria como objetivo melhorar o suporte a graacuteficos 3D em ambientes virtualizados

Mandriva demite dois desenvolvedoresA situaccedilatildeo financeira da Mandriva parece estar ruim Em dezembro a empresa anunciou que ao final de 2008 terminaria o contrato de dois de seus funcionaacuterios Adam Williams (na praacutetica o Community Manager) e o mantenedor de pacotes Oden Eriksson

Os dois desenvolvedores escreveram para a lista de emails do Cooker (Adam Williams Oden Eriksson) Enquanto Adam Williams eacute considerado por muitos como a base da co-munidade do Mandriva Oden manteacutem aproximadamente 1200 pacotes principalmente na aacuterea de servidores incluindo todos os pacotes do stack LAMP

Entretanto a comunidade do Mandriva natildeo pretende esperar sentada a efetivaccedilatildeo dessa decisatildeo Jaacute haacute uma peticcedilatildeo para tentar convencer a empresa a manter pelo me-nos Williams

copy Linux New Media do Brasil Editora Ltda

22 httpwwwlinuxmagazinecombr

CO

RP

OR

ATE

Entrevista com Armstrong Lemos chefe do departamento de TI da CAEMA

Saneada pelo LinuxO Linux entrou com forccedila na Companhia de Aacuteguas e Esgotos do Maranhatildeo proporcionando economia e ganhos fundamentais para a sauacutede da empresa por Pablo Hess

A Companhia de Aacuteguas e Esgo-tos do Maranhatildeo (CAEMA) eacute uma sociedade de economia

mista com capital de investimento predominantemente do Estado do Maranhatildeo Fundada haacute 42 anos a CAEMA atua no fornecimento de aacutegua coleta e tratamento de esgotos Atua em 146 municiacutepios maranhenses com abastecimento de aacutegua sendo que somente em trecircs (Satildeo Luis Im-peratriz e Barreirinhas) faz a coleta de esgotosLinux Magazineraquo Como e por que a CAEMA comeccedilou a usar LinuxArmstrong Lemosraquo A CAEMA opera com deacuteficit de quase R$ 5 milhotildees por mecircs que satildeo repassados pelo governo do estado para comple-mentaccedilatildeo das despesas Isso muito se deve a sua funccedilatildeo social que eacute a de universalizaccedilatildeo do abastecimento de aacutegua no estado Natildeo eacute uma ati-vidade meramente econocircmica mas tambeacutem social

O sistema comercial jaacute foi bloque-ado por falta de pagamento Quanto mais a CAEMA ampliava sua rede de atendimento mais caro pagava pelo uso do sistema sendo que a empresa prestadora mantinha relaccedilatildeo de pou-ca paciecircncia com os atrasos no paga-mento que deveriam ser realizados no dia cinco de cada mecircs Como a

companhia possuiacutea e ainda possui di-ficuldades de arrecadaccedilatildeo esse prazo nem sempre era cumprido

Outros fatores aliados a esse contri-buiacuteram para que no iacutenicio da gestatildeo da atual diretoria se iniciasse um pro-cesso de diagnoacutestico geral da empresa Com esse estudo ficou clara a situa-ccedilatildeo em que se encontravam diversos setores estrateacutegicos da companhia entre eles o de informaacutetica

Tiacutenhamos um parque de aproxi-madamente 500 maacutequinas com vaacuterios problemas principalmente adwares spywares e viacuterus Havia ainda proble-mas de conectividade e processamento em fun-ccedilatildeo do Windows natildeo se adequar ao perfil do hardware fazendo com que o equipamento ti-vesse baixa performan-ce As atualizaccedilotildees com Windows tornavam-se inviaacuteveis nos computa-dores com perfil padratildeo de dois ou mais anos

O departamento natildeo possuiacutea outra funccedilatildeo aleacutem do suporte de ma-nutenccedilatildeo de computado-res e impressoras muitos jaacute ultrapassados uma vez que o uacuteltimo investimen-

to feito em TI na companhia ocorreu no ano 2000

A telefonia as escolhas teacutecni-cas o gerenciamento de contratos de sistemas e outras atividades natildeo eram exercidas pelo departamen-to de informaacutetica Natildeo havia uma poliacutetica definida de TI na empresa e natildeo se dispunha de recursos para investimento Muitos dos sistemas utilizados pela empresa eram piratas e natildeo possuiacuteam suporte O banco de dados da companhia natildeo dispunha mais de suporte de software e o de-partamento de informaacutetica natildeo tinha

Armstrong Lemos chefe do departamento de TI da CAEMA

copy Linux New Media do Brasil Editora Ltda

23Linux Magazine 50 | Janeiro de 2009

| CORPORATECAEMA

conhecimento dos relacionamentos dos dados contidos nele

Apoacutes o diagnoacutestico e reuniotildees so-licitou-se agrave diretoria administrativa da empresa agrave qual a informaacutetica eacute subordinada para que submetesse ao conselho de administraccedilatildeo o resta-belecimento das funccedilotildees relativas agrave aacuterea de TI incluindo telefonia

Aleacutem dessas accedilotildees de retomada das atribuiccedilotildees estruturamos uma equipe de programaccedilatildeo uma equipe de projetos estrateacutegicos e reestrutu-ramos a equipe de suporte teacutecnico tudo isso para viabilizar a poliacutetica de Software Livre da CAEMA

LMraquo Em que consiste essa poliacutetica de Software LivreALraquo Estabelecemos vaacuterias etapas como o desenvolvimento do Livre Linux e do sistema de protocolo via Web a migraccedilatildeo do sistema comer-cial (GSAN) a formaccedilatildeo de monito-res de treinamento e o treinamento dos usuaacuterios na soluccedilatildeo completa (GSAN Livre Linux BrOfficeorg e sistema de protocolo) seguida pela articulaccedilatildeo do Movimento Software Livre Maranhatildeo

LMraquo Como foi a evoluccedilatildeo do uso do Software Livre dentro da empresaALraquo Precisaacutevamos resolver dois fatores que impediam o avanccedilo da politica de Software Livre na empresa o sistema de protocolo em Windows e o sistema comercial tambeacutem em Windows e com arquitetura cliente-servidor Aleacutem disso determinou-se a substituiccedilatildeo deles por um novo sistema que per-mitisse a ampliaccedilatildeo da nossa rede de atendimento e que ainda propiciasse a autonomia no gerenciamento dos dados da companhia

O sistema de protocolo foi resol-vido a partir do desenvolvimento do sistema livre Balula feito pela equi-pe de programaccedilatildeo e Software Livre da CAEMA Hoje o protocolo estaacute agrave disposiccedilatildeo dos demais oacutergatildeos puacutebli-cos para serem implementados sem

qualquer custo adicional atraveacutes de parceria sem ocircnus entre a CAEMA e o oacutergatildeo interessado

Ainda em novembro todos os computadores de atendimento co-mercial das unidades da CAEMA passaram a utilizar o Livre Linux como sistema operacional

LMraquo Como eacute a situaccedilatildeo atualALraquo Hoje utilizamos o GSAN com banco de dados PostgreSQL Com isso estamos ampliando o atendi-mento aos municiacutepios onde nosso sistema comercial antigo natildeo fun-cionava pois era inviabilizado pelo custo alto de contrataccedilatildeo de serviccedilos de transmissatildeo de dados junto agraves operadoras locais Atualmente com uma simples conexatildeo via raacutedio que existe em todos os municiacutepios onde a CAEMA atua faremos a integraccedilatildeo com o novo sistema

Estatildeo rodando na plataforma Linux todos os sistemas Web (comercial protocolo frotas juriacutedico cadastro segunda via de contracheque) etc Estamos com Livre Linux nos setores de atendimento help desk adminis-trativo e em todos os servidores

Vamos estender essa implantaccedilatildeo para os demais setores salvo maacutequinas que possuam aplicativos em Windows sem similares no mundo Linux (que satildeo casos mais raros)

LMraquo Em quanto tempo a CAEMA espera obter o retorno do investi-mento em Software Livre

ALraquo O custo total foi de R$ 104 milhotildees para o sistema comercial e o banco de dados Isso representa uma economia de R$ 360 milhotildees ao lon-go de quatro anos somente nesses dois sistemas Os levantamentos sobre a substituiccedilatildeo do sistema operacional Windows por Linux do proprietaacuterio Microsoft Office pelo BrOfficeorg e programas pagos estatildeo sendo le-vantados o que poderaacute representar uma economia de aproximadamente meio milhatildeo de reais

LMraquo Quanto tempo durou a mi-graccedilatildeoALraquo Aproximadamente oito meses com um analista de sistemas da CAE-MA e mais dois analistas de sistemas quatro programadores e um analista de suporte e bancos de dados de nos-so prestador de serviccedilos (Domiacutenio) aleacutem de quatro analistas de sistemas e um DBA do IPAD

LMraquo Qual a opiniatildeo da direccedilatildeo da empresa sobre o Software LivreALraquo O convencimento junto agrave dire-toria foi de estabilidade e custo fi-nanceiro devido agrave situaccedilatildeo em que estaacutevamos Hoje haacute o reconhecimento quanto agraves soluccedilotildees implantadas e o estiacutemulo para a descoberta de novas alternativas A diretoria percebe as vantagens de total liberdade e au-tonomia de uso e configuraccedilatildeo das ferramentas livres que tornaram a migraccedilatildeo teacutecnica e economicamen-te viaacutevel

LMraquo E a sua opiniatildeo sobre o mer-cado de Software LivreALraquo O mercado de Software Livre no paiacutes estaacute maduro Muitas empresas estatildeo habilitadas para a execuccedilatildeo e a manutenccedilatildeo de projetos livres Seguindo essa tendecircncia grandes empresas tecircm accedilotildees nesse foco No entanto temos carecircncia de empresas privadas que prestem suporte a bancos de dados livres assim como eacute carente o uso desses bancos em aplicaccedilotildees comerciais proprietaacuterias

LMraquo O movimento Software Livre Maranhatildeo jaacute rendeu frutosALraquo No dia 14 de novembro reali-zamos o I Encontro de Articulaccedilatildeo de Software Livre Maranhatildeo para apresentar aos demais gestores de TI do Estado a alternativa de uso de Software Livre pelo governo e articulaccedilatildeo de um movimento in-dependente para fortalecimento dessa poliacutetica

copy Linux New Media do Brasil Editora Ltda

24 httpwwwlinuxmagazinecombr

Como participar da comunidade Open Souce

Cezar TaurionUma anaacutelise do desenvolvimento do kernel Linux

Haacute alguns dias li um interessante artigo de Jona-than Corbet ldquoHow to participate in the Linux Communityrdquo[1] Ele descreve como funciona

o processo de desenvolvimento do kernel Linux e eacute uma excelente fonte de referecircncia para quem estiver interessado em colaborar com a comunidade ou mes-mo conhecer como funciona por dentro o modelo de governanccedila de um projeto de coacutedigo aberto

O kernel Linux tem mais de 6 milhotildees de linhas de coacutedigo e aglutina mais de mil contribuidores ativos Eacute um dos maiores projetos de coacutedigo aberto do mun-do Seu sucesso tem atraiacutedo muitos colaboradores a maioria inclusive pertencendo a empresas que que-rem participar do projeto A questatildeo eacute como entrar e ser um participante ativo da comunidade

Cada comunidade Open Source tem suas proacuteprias regras de conduta e modelos de governanccedila Enten-der como funciona a comunidade que desenvolve o kernel eacute essencial para ser um colaborador e tam-beacutem abre ideacuteias para aprendermos como funciona um projeto Open Source

A primeira seccedilatildeo do artigo mostra a importacircncia de se inserir todo coacutedigo na aacutervore principal do ker-nel para se evitar a proliferaccedilatildeo de forks e futuras ldquobombas reloacutegiordquo Por exemplo um coacutedigo inse-rido no kernel principal passa a ser visto mantido e refinado por toda a comunidade resultando em coacutedigo de alta qualidade Quando o coacutedigo eacute man-tido separado natildeo soacute natildeo recebe contribuiccedilotildees ex-ternas como corre o risco de funcionalidade similar ser incorporada por outro desenvolvedor ao coacutedigo principal fazendo com que o coacutedigo isolado fique cada vez mais difiacutecil e custoso de ser mantido Esse alerta eacute feito porque muitas empresas envolvidas em projetos de software embarcado tendem a acre-ditar que seu coacutedigo pela sua especificidade deve ser mantido de forma isolada da aacutervore principal do kernel o que eacute um grande erro A seccedilatildeo tambeacutem descreve as razotildees por que toda contribuiccedilatildeo deve ser ldquoassinadardquo Eacute necessaacuterio para se evitar eventuais problemas de propriedade intelectual

A seccedilatildeo dois eacute bem interessante pois descreve como funciona o processo de desenvolvimento do kernel e a nomenclatura usada para designar as diversas versotildees

Explica tambeacutem como eacute criado uma versatildeo estaacutevel e o ciclo de vida dos patches Descreve como um patch eacute inserido no kernel e cita alguns dados curiosos A seccedilatildeo tambeacutem descreve as regras de etiqueta da comunidade na troca de mensagens e o uso das listas de email

As outras seccedilotildees descrevem o processo de plane-jamento da evoluccedilatildeo do kernel debatendo as etapas de avaliaccedilatildeo as discussotildees com a comunidade para definir o que e como seraacute feito os estilos de escrita (que garantem a qualidade do coacutedigo) as ferramen-tas de depuraccedilatildeo usadas a documentaccedilatildeo que deve ser gerada e assim por diante

A seccedilatildeo seis mostra como deve ser feito o tra-balho em colaboraccedilatildeo Cada patch eacute revisado por desenvolvedores que vocecirc natildeo conhece o que mui-tas vezes pode gerar algum desconforto Existem algumas recomendaccedilotildees de como se portar nessas situaccedilotildees meio desagradaacuteveis e de como evitar dis-cussotildees desgastantes Trabalhar em colaboraccedilatildeo eacute um exerciacutecio ao qual muitos desenvolvedores natildeo estatildeo acostumados Para muita gente ter um estra-nho revisando seu coacutedigo e expondo as falhas em puacuteblico eacute no miacutenimo desconfortaacutevel

Enfim a leitura desse documento eacute obrigatoacuteria para todos que estejam realmente interessados em conhecer mais a fundo o que eacute o movimento Open Source e os aspectos do desenvolvimento colabora-tivo que o caracterizam

CORPORATE

Mais informaccedilotildees

[1] Jonathan Corbet ldquoHow to participate in the Linux Communityrdquo httpldnlinuxfoundationorgbookhow-participate-linux-community

Sobre o autor

Cezar Taurion (ctaurionbribmcom) eacute geren-te de novas tecnologias aplicadas da IBM Bra-sil e editor do primeiro blog da Ameacuterica Latina do Portal de Tecnologia da IBM developerWorks Seu blog estaacute disponiacutevel em httpwww-03ibmcomdeveloperworksblogspagectaurion

CORPORATE

copy Linux New Media do Brasil Editora Ltda

25

Argumentando em favor do Software Livre

Jon lsquomaddogrsquo HallA comunidade do Coacutedigo Aberto natildeo dispotildee de um seacutequumlito de advogados e consultores de marketing e comunicaccedilatildeo Quando se trata de argumentar em favor do Software Livre vocecirc provavelmente teraacute que assumir esse papel

A ldquocenardquo juriacutedica envolvendo o Software Li-vre estaacute sempre em movimento Decisotildees de tribunais e accedilotildees governamentais estatildeo

sempre reformulando o panorama legal e tecircm efei-tos bruscos na ldquotemperaturardquo do desenvolvimento desse tipo de aplicaccedilatildeo

Uma lei proposta recentemente tinha por obje-tivo ajudar a eliminar a pornografia infantil mas foi modificada para limitar todo e qualquer tipo de liberdade na Internet a ponto de ndash nas palavras de um dos legisladores ndash dificultar o desenvolvimento de tecnologias como redes mesh

No mecircs passado escrevi sobre minha experiecircncia em testemunhar perante uma assembleacuteia nacional sobre uma lei considerada pioneira relativa ao mun-do open source Muito embora oportunidades como essa natildeo apareccedilam todos os dias eacute surpreendente a frequumlecircncia com que os governos ndash em todos os niacute-veis ndash satildeo confrontados com toacutepicos relacionados agrave comunidade open source

Seu governo local tambeacutem gasta dinheiro com software Algumas diretorias de escola gastam mes-mo milhares de doacutelares em aplicativos proprietaacuterios mesmo que suas contrapartes de coacutedigo aberto este-jam disponiacuteveis a um preccedilo muito inferior A maio-ria dos governos locais e das diretorias das escolas dispotildeem entretanto de um tempo para ouvir o cidadatildeo ndash e vocecirc poderia usar esse tempo para lhes dizer o que vocecirc pensa a respeito disso Melhor ain-da vocecirc poderia reunir um grupo de amigos com os mesmos ideais para argumentar em favor do uso de Software Livre

Se vocecirc for chamado para avaliar uma proposta de regulamentaccedilatildeo ou orccedilamento certifique-se de tecirc-la estudado profundamente Natildeo deixe de co-nhecer os poliacuteticos eleitos envolvidos no processo Com frequumlecircncia poliacuteticos locais estatildeo dispostos a discutir esses toacutepicos com vocecirc diretamente E se vocecirc marcar uma reuniatildeo natildeo se esqueccedila de ldquoestar apresentaacutevelrdquo (como sua matildee provavelmente diria)

e de manter a calma lanccedilando matildeo de uma argu-mentaccedilatildeo plausiacutevel

A maneira mais simples de se envolver em niacutevel nacional com esse tipo de legislaccedilatildeo eacute por meio de uma carta A maioria dos legisladores possui um email mas eles recebem milhares de mensagens todos os dias e a sua pode simplesmente ldquose afogarrdquo nesse oceano sem jamais ter sido lida Uma carta tradicional impressa e assinada pode receber mais atenccedilatildeo do que um email e uma carta enviada via portador como encomenda expressa ou registrada tem ainda maiores chances de ser notada Natildeo se esqueccedila de usar um corretor ortograacutefico ao escre-ver ndash nem de deixar algueacutem mais ler a carta antes de enviaacute-la como medida para garantir que o con-teuacutedo esteja inteligiacutevel

Cartas para editores de publicaccedilotildees tambeacutem satildeo eficazes Oficiais de governo ndash bem como cidadatildeos interessados que podem ser persuadidos por argu-mentos bem formulados ndash lecircem jornais Cartas concisas com argumentos claros satildeo preferiacuteveis a cartas longas sem um objetivo claramente definido Evite criticar o caraacuteter dos proponentes da legislaccedilatildeo a que vocecirc se opotildee Em vez disso concentre seus comentaacuterios no conteuacutedo

Se vocecirc busca um modo simples de se envolver no movimento em torno do Software Livre observe as oportunidades para dar a sua opiniatildeo sobre leis regulamentaccedilotildees e decisotildees de compra que afetem de algum modo o ecossistema open source O esfor-ccedilo eacute vaacutelido jaacute que manter os braccedilos cruzados natildeo eacute uma alternativa capaz de lhe dar voz ativa nesse tipo de processo

Sobre o autorJon lsquomaddogrsquo Hall eacute presidente da Linux International insti-tuiccedilatildeo internacional dedicada a promover o Linux e o Software Livre e de Coacutedigo Aberto Maddog viaja o mundo ministrando palestras e debatendo com decisores sobre o uso do Software Livre em acircmbito tanto corporativo quanto comunitaacuterio

CORPORATE

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

26 httpwwwlinuxmagazinecombr

CORPORATE

Nova lei de call center Oacutetima oportunidade para TI

Edgar SilvaHaacute inuacutemeras tecnologias de coacutedigo ou padrotildees abertos que podem ajudar a superar as dificuldades decorrentes da nova lei de call centers

ldquoO brasileiro mesmo com todas as adver-sidades eacute um povo criativo que na dificuldade cria oportunidadesrdquo Essa

afirmaccedilatildeo cabe muito bem quando observarmos a nova lei para call centers Afinal quem nunca ficou esperando horas numa linha telefocircnica e repetindo nuacutemero de documentos nome da matildee endereccedilo etc O decreto visa natildeo soacute a melhorar a vida de todos que precisam dos serviccedilos de empresas de telefonia fixa e moacutevel TV a cabo e outros mas tambeacutem ge-rar novos empregos assim como oportunidades de negoacutecios que eacute o tema deste artigo

Certamente em razatildeo da tradicional morosidade dos atendimentos de call center o comportamento padratildeo de noacutes consumidores eacute procurar alternativas Uma delas foi a Internet o que fez com que as em-presas investissem em portais para evitar o gargalo no atendimento de suas redes e tambeacutem porque re-presenta um aumento no atendimento sem elevar os custos Entatildeo por que natildeo criar novos canais de atendimento A tecnologia Java e algumas especi-ficaccedilotildees padrotildees e projetos open source fazem a diferenccedila nessa induacutestria de atendimento

Java por exemplo eacute extensamente utilizado Dentre os inuacutemeros motivadores destaco liberda-de de escolha de seus fornecedores a existecircncia de padrotildees da induacutestria que garantem maior ROI bem como facilidade de obtenccedilatildeo e formaccedilatildeo de profissionais Java conta com alguns padrotildees de tecnologia que ajudam principalmente a aprovei-tar parte do legado permitindo novos canais de interaccedilatildeo com os clientes Por exemplo os com-ponentes ou serviccedilos que atendem um navegador web podem tambeacutem atender uma chamada te-lefocircnica uma interaccedilatildeo SMS ou ateacute mesmo um canal VoIP via Skype

Entre as tecnologias disponiacuteveis cito as APIs padrotildees JSR116-SIP Servlets 10 [1] e JSR289-SIP Servlets 11 [2] que possibilitam a interaccedilatildeo com servidores SIP (Session Initiation Protocol) protocolo que dentre inuacutemeras funcionalidades estabelece

chamadas de voz via Internet O funcionamento do SIPServlet eacute similar ao do Servlet tradicional Java entretanto em vez de interagir com o protocolo HTTP estaacute apto a processar requisiccedilotildees e respostas do protocolo SIP Eacute por isso que seus componentes e serviccedilos podem ser reaproveitados

O Mobicents [3] tambeacutem eacute uma soluccedilatildeo que combina aleacutem de SIP vaacuterios outros serviccedilos para o segmento de telecomunicaccedilotildees que por sua vez eacute a implementaccedilatildeo de referecircncia do padratildeo JS-LEE 10 que em resumo eacute uma complementaccedilatildeo do jaacute conhecido JEE (J2EE para os mais antigos) especiacutefico para a comunicaccedilatildeo de componentes existentes em arquiteturas que agrupam web Voip som e imagem

Outro portal open source com soluccedilotildees interes-santes eacute o Ignite Real Time [4] que hospeda proje-tos como o OpenFire servidor Jabber (XMPP) com inuacutemeros plugins entre eles para chamadas SIP e comunicaccedilatildeo com o legendaacuterio Asterisk

Mais informaccedilotildees

[1] JSR116 httpjcporgenjsrdetailid=116

[2] JSR289 httpjcporgenjsrdetailid=289

[3] Mobicents httpwwwmobicentsorg

[4] Ignite Real Time httpwwwigniterealtimeorg

Sobre o autor

Edgar A Silva (edgarsilvaredhatcom) eacute Middleware Technology Lead da Red Hat no Brasil com atuaccedilatildeo desde 1998 em objetos distribuiacutedos (Corba COM+ e Java) Edgar vem nos uacuteltimos anos pesquisando aplicando e ministrando pales-tras e treinamentos no Brasil e exterior sobre assuntos de alta tecnologia entre eles JavaEE e SOA

copy Linux New Media do Brasil Editora Ltda

Dicas de especialistas para conviver com o Windows

Integraccedilatildeo transparente Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo que vocecirc queira viver em um mundo de coacutedigo aberto ele ainda estaacute cheio de Windows A ediccedilatildeo deste mecircs traz um apanhado de estrateacutegias para facilitar o conviacutevio com o sistema operacional da Microsoft por Joe Casad e Rafael Peregrino da Silva

As redes de hoje contam com um sortimento consideraacutevel de sistemas e dispositivos

Se todos esses componentes natildeo precisassem se comunicar natildeo as chamariacuteamos de rede Mesmo que vocecirc sonhe com um mundo sem Windows ndash e a IBM se esforce para tornar seu sonho realidade ndash essa rea-lidade ainda estaacute um pouco distante Por conta disso a ediccedilatildeo deste mecircs traz diversos artigos versando sobre interoperabilidade e integraccedilatildeo de sistemas No nosso primeiro artigo examinamos algumas teacutecnicas para conexatildeo de clientes VPN para Linux a servidores Windows

Tambeacutem vamos mostrar alguns aplicativos Linux para gerenciamento de conexotildees a VPNs e descreveremos algumas teacutecnicas de resoluccedilatildeo dos problemas para fazer o sistema do pinguumlim funcionar com o protoco-lo PPTP usado em redes Windows No artigo seguinte abordamos a integraccedilatildeo de sistemas Linux a um ambiente Windows usando o famo-so (alguns diriam infame) Microsoft Active Directory lanccedilando matildeo para tanto do sistema de autenticaccedilatildeo Likewise Open O Likewise eacute uma ferramenta de coacutedigo aberto que fornece uma confi guraccedilatildeo faacutecil para autenticaccedilatildeo dos tipos single sign-on e Kerberos O terceiro artigo da ses-satildeo mostra como confi gurar o Linux como um servidor de terminais para clientes Windows utilizando o xrdp ndash uma implementaccedilatildeo de coacutedigo aberto do Remote Desktop Protocol

(RDP) da Microsoft Nesse artigo vocecirc vai entender por que o siste-ma das janelas natildeo eacute necessaacuterio no servidor para criar um ambiente de terminais Windows e aprenderaacute como fazer os usuaacuterios desse sistema visualizarem um desktop Linux na sua aacuterea de trabalho tudo isso em apenas alguns passos

Por uacuteltimo apresentamos um soft-ware de coacutedigo aberto para agenda-mento de tarefas muito mais comple-xo que o veneraacutevel Cron e que tem como uma de suas maiores vantagens o fato de ser multiplataforma ndash o que facilita muito a administraccedilatildeo de um ambiente heterogecircneo de servidores

Se vocecirc precisa conviver com o Windows por que natildeo vi-ver em paz e com con-

forto Se esse eacute o seu caso esperamos tornar a sua vida um pouco menos atribulada com esta ediccedilatildeo de inte-graccedilatildeo com as tecnologias da gigante de Redmond

CAPA

Linux Magazine 50 | Janeiro de 2009

Iacutendice das mateacuterias de capa

Rede fechada 28Na ativa 34O manda-chuva do terminal 40 Muito aleacutem do Cron 44

27copy Linux New Media do Brasil Editora Ltda

28 httpwwwlinuxmagazinecombr

Configurando conexotildees VPN em clientes Linux

Rede fechadaClientes Linux eventualmente precisam de uma matildeozinha para se conectar a servidores VPN do Windowspor James Stanger

Dois benefiacutecios de se usar tuacute-neis VPN (Virtual Private Networks ou redes virtuais

privadas) satildeo as conexotildees criptografa-das e o acesso aos recursos localizados atraacutes do firewall Quando a questatildeo eacute interoperabilidade entretanto confi-gurar essas conexotildees pode ser difiacutecil em clientes Linux As distribuiccedilotildees Linux frequumlentemente tecircm problemas em es-tabelecer conexotildees a VPNs em servido-res cuja tecnologia eacute baseada em outros sistemas operacionais especialmente porque os aplicativos graacuteficos utiliza-dos para configurar essas conexotildees normalmente natildeo conseguem manter

o mesmo ritmo de desenvolvimento do Linux que estaacute geralmente duas geraccedilotildees agrave frente delas Assim pouco tempo apoacutes as distribuiccedilotildees terem sido lanccediladas as bibliotecas usadas para a criaccedilatildeo de VPNs satildeo modificadas e o aplicativo que vocecirc utilizava para fazer esse tipo de conexatildeo simplesmente paacutera de funcionar em ambientes he-terogecircneos Recentemente houve um avanccedilo nessa situaccedilatildeo e este artigo daacute algumas dicas sobre como estabele-cer conexotildees a VPNs a partir de um desktop Linux

Uma VPN cria um tuacutenel ponto-a-ponto por meio de uma rede puacuteblica

Vaacuterios protocolos oferecem suporte a conexotildees VPN entre eles as seguintes alternativas bastante populares L2TP via IPsec Foi o primeiro

protocolo desenvolvido pela Cisco para criaccedilatildeo de tuacuteneis de acesso criptografados L2TPv3 eacute a versatildeo mais recente mas certifique-se de escolher a ver-satildeo apropriada para a sua rede Lembre-se de que haacute duas im-plementaccedilotildees de IPsec principais no Linux Por exemplo sistemas mais antigos usam FreeSWAN ou Openswan para IPsec Sis-temas mais recentes com qual-

CA

PA

Quadro 1 Problemas e soluccedilotildees

Ao resolver problemas em conexotildees certifique-se de es-tar com os moacutedulos instalados e carregados Por exem-plo num sistema Ubuntu 8041 uma conexatildeo PPTP precisa dos seguintes moacutedulos

ppp_mppe 8068 2ppp_async 13312 1crc_ccitt 3072 1 ppp_asyncppp_generic 29588 6 ppp_mppe ppp_asyncslhc 7040 1 ppp_genericppdev 10372 0

A MTU (unidade maacutexima de transmissatildeo) eacute outra configu-raccedilatildeo importante pode ser necessaacuterio reduzir o valor de 1500 para algo menor como 1490

Em caso de problemas lembre-se de ativar as opccedilotildees de depuraccedilatildeo no cliente ndash sempre eacute possiacutevel desativaacute-las depois As opccedilotildees de depuraccedilatildeo podem incluir especifi-car pacotes ICMP para testar uma conexatildeo assim como determinar o tamanho do intervalo de eco

Uma opccedilatildeo estranha mas eventualmente uacutetil eacute desativar a criptografia Obviamente com isso perdem-se os benefiacutecios da conexatildeo VPN A maioria dos servidores rejeita conexotildees sem criptografia mas ainda assim essa opccedilatildeo pode ser de alguma ajuda para eliminar fontes de problemas

O mascaramento de IP e outras formas de NAT tambeacutem im-potildeem alguns problemas para conexotildees VPN Se estiverem sendo usados ESP ou AH (cabeccedilalhos de autenticaccedilatildeo) por exemplo haveraacute problemas com o NAT pois o AH executa uma verificaccedilatildeo que inclui valores como o endereccedilo IP da conexatildeo Como o NAT modifica o endereccedilo IP a verificaccedilatildeo falharaacute e portanto tambeacutem a comunicaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

29

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

quer versatildeo do kernel da seacuterie 26 dispotildeem de suporte nativo a Ipsec

Point-to-Point Tunneling Pro-tocol (PPTP) trata-se de um protocolo antigo que ainda eacute usado em diversos ambientes Microsoft

Secure Sockets LayerTransport Layer Security (SSLTLS) eacute um dos mais poderosos protocolos de interoperabilidade disponiacute-veis atualmente fornecendo suporte para muitos tipos de conexotildees VPN O OpenVPN [1] por exemplo eacute uma solu-ccedilatildeo para criaccedilatildeo de tuacuteneis de acesso criptografados baseada em SSLTLS

Com o passar dos anos jaacute houve muitas discussotildees sobre qual proto-colo eacute o mais seguro ou qual seria mais favoraacutevel ao modelo de desen-volvimento de coacutedigo aberto Muitas dessas discussotildees chegaram a assumir um teor quase religioso Poreacutem em vez de se envolver em tais discussotildees eacute mais uacutetil simplesmente descobrir qual dos protocolos funciona melhor para o seu tipo de rede em particular e entatildeo adotaacute-lo

Qualquer que seja o protocolo usado para criar o tuacutenel eacute possiacutevel enviar pacotes atraveacutes dele os quais seratildeo considerados pelo firewall como pacotes internos A chave como veremos a seguir eacute se certificar de que os pacotes certos atravessem a interface correta do tuacutenel

O ambiente Linux dispotildee de diversas ferramentas para configu-rar e gerenciar conexotildees VPN O utilitaacuterio KVpnc do projeto KDE oferece suporte para vaacuterias tecnolo-gias VPN (da Cisco passando pela Microsoft e culminando no Open-VPN) O vpnc eacute um programa de linha de comando para sistemas Cisco Muitas distribuiccedilotildees Linux passaram a usar o NetworkManager [2] desenvolvido pela Red Hat que

permite instalar extensotildees para redes Cisco e Microsoft Dependendo da tecnologia VPN que vocecirc pretende usar vocecirc teraacute que instalar a exten-satildeo apropriada

O pptpconfig [3] eacute um aplicativo antigo que funciona especialmente bem para distribuiccedilotildees Linux da Red Hat e da Novell bem como com BSDs e vaacuterios outros sistemas Como o nome sugere o pptpconfig eacute usado para gerenciar VPNs basea-dos em tecnologia Microsoft

Criando um tuacutenelIndependentemente de qual aplicati-vo ou protocolo for usado eacute necessaacuterio obter algumas informaccedilotildees baacutesicas para estabelecer uma conexatildeo com sucesso Por exemplo Informaccedilotildees sobre autenti-

caccedilatildeo dependendo do que o administrador da rede exigir seraacute preciso fornecer informa-ccedilotildees especiacuteficas a respeito do usuaacuterio para se autenticar no servidor VPN A alternativa menos segura (embora mais comum) eacute fornecer um nome de usuaacuterio e uma senha Outras opccedilotildees incluem chaves priva-das e certificados A Cisco daacute preferecircncia ao uso de chaves e certificados por exemplo

Gateway (tambeacutem conhecido popularmente como nome do servidor VPN) eacute o endereccedilo IP

ou nome do equipamento VPN que fornece o tuacutenel depois da autenticaccedilatildeo

Tipo de protocolo como dis-cutido acima eacute necessaacuterio es-colher entre os protocolos exis-tentes tais como L2TP PPTP OpenVPN etc A ferramenta de configuraccedilatildeo vai solicitar que sejam especificadas as opccedilotildees adequadas para o(s) protocolo(s) escolhido(s)- pelo administrador da rede

Configuraccedilotildees gerais qualquer que seja o protocolo de autenti-caccedilatildeo seraacute preciso fornecer in-formaccedilotildees especiacuteficas para a sua conexatildeo Por exemplo algumas redes solicitam a configuraccedilatildeo de uma unidade maacutexima de transmissatildeo (do inglecircs Maximum Transmission Unit o famigerado MTU) especiacutefica o aplicativo permite que sejam realizadas as modificaccedilotildees especiacuteficas para a conexatildeo em questatildeo

Informaccedilotildees de roteamento natildeo importa os tipos de proto-colo ou autenticaccedilatildeo escolhi-dos normalmente tambeacutem eacute necessaacuterio assegurar-se de que os pacotes certos estatildeo de fato sendo roteados atraveacutes da inter-face correta

Assim eacute certo depender da ajuda de um administrador de redes compre-

Quadro 2 Preso do lado de fora

Conforme satildeo feitos experimentos com a conexatildeo VPN certifique-se de que sua conta natildeo seja trancada do lado de fora A maioria das VPNs tem dificuldade em diferenciar entre experimentos com a configuraccedilatildeo e tentati-vas de invasatildeo Se vocecirc ficar trancado de fora natildeo conseguiraacute entrar nem mesmo com as configuraccedilotildees corretas

Se ficar impossiacutevel conectar-se preste atenccedilatildeo ao arquivo de log e agraves men-sagens de depuraccedilatildeo para verificar se as mensagens de autenticaccedilatildeo e conexatildeo mudaram de alguma forma uma mudanccedila sutil pode indicar que se estaacute na verdade trancado do lado de fora da conta Se for esse o caso seraacute preciso esperar a conta ser desbloqueada Com sorte essa limitaccedilatildeo seraacute temporaacuteria Caso contraacuterio seraacute preciso contatar o administrador da rede cada vez que ocorrer esse imprevisto

copy Linux New Media do Brasil Editora Ltda

30 httpwwwlinuxmagazinecombr

CAPA | VPNS

ensivo para ajudar o usuaacuterio a obter as informaccedilotildees listadas acima

PPTP com Microsoft Mesmo que o protocolo PPTP seja considerado menos seguro que o da Cisco ou o OpenVPN ele ainda eacute bastante popular Para confi gurar uma conexatildeo PPTP haacute um grande rol de opccedilotildees de autenticaccedilatildeo com-pressatildeo e criptografi a

Um dos desafi os eacute escolher o meacute-todo de autenticaccedilatildeo Autenticaccedilatildeo direta ( peer authentication ) signifi -ca que o servidor solicitaraacute que o cliente se identifi que As opccedilotildees para essa modalidade de autentica-ccedilatildeo incluem Challenge Handshake Authenti-

cation Protocol (CHAP) proto-colo padratildeo em conformidade com o RFC correspondente Basta fornecer um nome de usuaacuterio e uma senha para se autenticar MS-CHAP eacute a im-plementaccedilatildeo do protocolo pela Microsoft Se o administrador da rede natildeo revelar o protocolo empregado use o MS-CHAP no caso de servidores Windows

EAP eacute uma extensatildeo do pro-tocolo de autenticaccedilatildeo PPP original que permite o uso de um certifi cado em vez de nome de usuaacuterio e senha Me-nos comum do que MS-CHAP e CHAP

Muitos clientes oferecem a opccedilatildeo de recusar todos esses meacutetodos de autenticaccedilatildeo Para trabalhar bem com um servidor VPN remoto talvez a melhor opccedilatildeo seja usar diretamente o daemon PPP do seu sistema Compactar os dados para trans-

missatildeo pela VPN tambeacutem eacute uma boa ideacuteia Geralmente haacute trecircs opccedilotildees de compressatildeo

Microsoft Point-to-Point Com-pression (MPPC) protocolo an-tigo baseado no algoritmo LZ e geralmente reservado a clientes Windows antigos (Windows 95 e NT) Contudo pode funcionar em outras VPNs

Defl ate compression protocolo similar ao MPPC mas livre de patentes Eacute mais universal que

o MPPC mas raramente usado em VPNs Microsoft

BSD compression descrito na RFC 1977 eacute o protocolo de compressatildeo tradicional

O tipo de compressatildeo geralmente causa problemas nas conexotildees Caso o administrador da rede natildeo coope-re eacute melhor tentar primeiro uma conexatildeo sem compressatildeo

A confi guraccedilatildeo da criptografi a tambeacutem eacute importante O Microsoft Point-to-Point Encryption (MPPE) eacute um subconjunto do MPPC Pode-se usar dois comprimentos de chave di-ferentes 40 bits e 128 bits Empresas de muitos paiacuteses usam apenas cha-ves de 40 bits Na confi guraccedilatildeo de clientes PPTP o administrador deve informar o comprimento da chave Senatildeo basta testar ateacute descobrir

Stateful MPPE geralmente eacute a melhor opccedilatildeo de criptografi a uma vez que fornece conexotildees de rede mais raacutepidas Como veremos mais agrave frente eacute necessaacuterio habilitar o moacutedulo MPPE para qualquer uma dessas confi guraccedilotildees

DNS A maioria dos clientes DNS pergunta se deve usar as informaccedilotildees de DNS em etcresolvconf ou aquelas for-necidas pelo servidor VPN A proacutepria conexatildeo VPN pode causar modifi ca-ccedilotildees na resoluccedilatildeo de DNS principal-

Figura 2 Criaccedilatildeo de rotas no cliente NetworkManager

Figura 1 Criaccedilatildeo de rotas no cliente VPN KVpnc

copy Linux New Media do Brasil Editora Ltda

31

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

mente porque o cliente VPN altera o conteuacutedo do arquivo etcresolvconf mesmo quando confi gurado ex-plicitamente para natildeo fazecirc-lo

A melhor soluccedilatildeo eacute usar um clien-te VPN que funcione da forma que se espera Na falta de tal soluccedilatildeo pode-se contornar o problema crian-do um script que faccedila uma coacutepia do arquivo etcresolvconf correto Quando o cliente VPN pergunta se deve ldquorealizar acessos ao DNS atra-veacutes do tuacutenelrdquo geralmente o que ele realmente quer dizer eacute se pode alte-rar o arquivo etcresolvconf com seus novos dados A escolha correta depende de informaccedilotildees fornecidas pelo administrador da rede Se o ob-jetivo natildeo for usar o DNS da VPN seraacute difiacutecil o cliente acessar as outras maacutequinas detraacutes da VPN

Suporte ao GRE Para conectar um cliente a uma VPN Microsoft atraveacutes de um fi -rewall Linux haacute um ajuste extra a ser feito nele para que tudo funcio-ne a ativaccedilatildeo do protocolo Generic Route Encapsulation (GRE) para atravessar o fi rewall Supondo o uso do iptables no fi rewall Linux e um servidor VPN com o endereccedilo 18944453 eacute necessaacuterio executar o seguinte comando

iptables -I FORWARD -p 47 -d 18944453 -j ACCEPT

Roteamento Pode ser necessaacuterio rotear pacotes ex-plicitamente atraveacutes de uma interface especiacutefi ca Muitos administradores de sistemas Windows consideram esse um dos maiores desafi os do trabalho com clientes Linux

A necessidade de rotear pacotes explicitamente eacute especialmente importante quando a rede remota utiliza IPs puacuteblicos Mesmo que seja usado um tuacutenel VPN a in-

terface de rede ainda pode tentar rotear pacotes pela Internet em vez de simplesmente usar o tuacutenel Satildeo muito frequumlentes problemas em conexotildees VPN cuja soluccedilatildeo eacute sim-plesmente adicionar algumas rotas alternativas agrave tabela de roteamento padratildeo do sistema Isso pode ser feito tanto com o aplicativo graacutefi co de confi guraccedilatildeo do VPN quanto pela linha de comando com os utilitaacuterios route ou iproute

route add -net 131639723 netmask 255255255255 dev ppp0 ou iproute

ip route add 17187445424 dev ppp0

Em alguns casos sem essas rotas

natildeo eacute possiacutevel fazer com que os paco-tes que deveriam trafegar pela VPN realmente o faccedilam e eles acabam saindo pela placa de rede

Figura 3 KVpnc com uma sessatildeo PPTP legada

Figura 4 Importaccedilatildeo de um certifi cado Cisco no KVpnc

copy Linux New Media do Brasil Editora Ltda

32 httpwwwlinuxmagazinecombr

CAPA | VPNS

Interface graacutefi ca Os aplicativos graacutefi cos para confi gu-raccedilatildeo de VPNs estatildeo fi cando cada vez melhores quando se trata de adicionar as rotas necessaacuterias auto-maticamente A fi gura 1 mostra as confi guraccedilotildees para o KVpnc A fi gura 2 ilustra uma confi guraccedilatildeo similar no NetworkManager

Assim como essas capturas de tela ilustram pacotes que coincidam com o endereccedilo IP e a maacutescara de rede defi nidos natildeo seratildeo enviados atraveacutes da conexatildeo de rede padratildeo mas simpelo tuacutenel VPN

O KVpnc ( fi gura 3 ) disponiacutevel em vaacuterias distribuiccedilotildees talvez seja o mais versaacutetil entre os clientes atuais pois oferece suporte a L2TP aos protocolos VPN tanto livres quanto proprietaacuterios da Cisco ao OpenVPN e ao PPTP da Microsoft O KVpnc tambeacutem permite a importaccedilatildeo de certifi cados conforme mostra a fi gura 4

Apesar de os desenvolvedores da interface graacutefi ca do programa terem cometido alguns deslizes ortograacutefi -

cos na interface os desenvolvedores do KVpnc realmente criaram um produto que trabalha parti-cularmente bem em conjunto com dispo-sitivos Cisco

O veneraacutevel pptp-config tambeacutem estaacute disponiacutevel em muitas distribuiccedilotildees O se-gredo para o sucesso no seu uso pptpconfig estaacute na confi guraccedilatildeo da criptografi a usada pelo programa que precisa ser exatamen-te aquele previsto pelo administrador

Com frequumlecircncia eacute importante usar de criptografi a MPPE e habilitar o modo stateful desse proto-

colo No caso do pptpconfig seria preciso selecionar Require Microsoft Point-to-Point Encryption (MPPE) e Refuse Stateless Encryption para conseguir isso

O pptpconfig tambeacutem tem capaci-dade de adicionar rotas automatica-mente Simplesmente clique na aba Routing marque o botatildeo Client to LAN e digite as rotas dos sistemas que devem ser conectados pela VPN

Muitos usuaacuterios Linux preferem o NetworkManager por um simples motivo ele costuma funcionar Haacute plugins para ele que suportam vaacuterios protocolos incluindo OpenVPN Microsoft PPTP e L2TP Apoacutes insta-laacute-los basta clicar no iacutecone de rede e selecionar as conexotildees VPN para comeccedilar a fornecer as informaccedilotildees apropriadas A fi gura 5 mostra as etapas para confi gurar uma conexatildeo Cisco num sistema Ubuntu

O NetworkManager suporta a criptografi a por chave compartilhada quanto por certifi cado X509 Para fazecirc-lo funcionar adequadamente

eacute preciso instalar o daemon racoon para fazer a troca de chaves pela In-ternet Depois deve-se obter com o administrador da rede a chave com-partilhada e os certifi cados assinados caso eles sejam usados

IPsec e kernel 26 Certifi que-se de instalar os daemons certos para a conexatildeo Se o sistema utilizar alguma versatildeo do kernel 26 ele jaacute suporta nativametne o IPsec mas se for usado o KVpnc ou o vpnc ainda seraacute preciso instalar o daemon racoon que se encarrega da troca de chaves em implementaccedilotildees IPsec Se o racoon natildeo estiver disponiacutevel no re-positoacuterio da distribuiccedilatildeo em questatildeo basta conferir o site do projeto [4]

Para suportar o FreeSWAN o padratildeo antigo para o IPsec eacute pre-ciso instalar o daemon ipsec caso contraacuterio a implementaccedilatildeo falharaacute pois o sistema natildeo conseguiraacute con-duzir as trocas de senha necessaacuterias ao estabelecer o tuacutenel

Conclusatildeo Estabelecer uma VPN hoje em dia eacute muito mais faacutecil mas os clien-tes VPN graacutefi cos ainda natildeo fazem tudo pelo usuaacuterio Apesar de ainda ser trabalhoso fazer a comunicaccedilatildeo com servidores Microsoft Cisco e OpenVPN basta uma certa dedica-ccedilatildeo para se obter sucesso

Mais informaccedilotildees

[1] OpenVPN httpopenvpnnet

[2] NetworkManager httpwwwgnomeorgprojectsNetworkManager

[3] pptpclient httppptpclientsourceforgenet

[4] Rasvpn httpwwwnetbsdorgdocsnetworkipsecrasvpnhtml

Figura 5 Confi guraccedilatildeo de VPN Cisco no NetworkManager

copy Linux New Media do Brasil Editora Ltda

33

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

Linux Pro novo (julho) 77 251108 172941

copy Linux New Media do Brasil Editora Ltda

34 httpwwwlinuxmagazinecombr

Integraccedilatildeo faacutecil ao Active Directory com o Likewise Open

Na ativaO Likewise Open oferece integraccedilatildeo faacutecil a ambientes Active Directory Mostramos como instalar e configurar o sistema de autenticaccedilatildeo amigaacutevel para administradorespor Walter Neu

O sistema de autenticaccedilatildeo Li-kewise Open [1] integra clien-tes Linux ao ambiente Active

Directory Obviamente tambeacutem eacute possiacutevel configurar o Active Directory pelo Samba e seus atores coadjuvantes [2] mas a soluccedilatildeo da Likewise oferece vaacuterios benefiacutecios para facilitar a confi-guraccedilatildeo e a administraccedilatildeo

A versatildeo gratuita e GPL do Likewi-se suporta autenticaccedilatildeo em diretoacuterios AD a autorizaccedilatildeo de serviccedilos ldquoker-berizadosrdquo e ateacute o recurso de single sign-on Isso pode se parecer bastante com o Samba que faz as mesmas coisas na verdade o gerente de pro-jetos da Likewise Gerald Carter eacute um antigo membro da equipe central

de desenvolvimento do Samba O Likewise Open se aproveita do tra-balho do Samba embora acrescente diversos recursos proacuteprios

Pacotes prontosHaacute pacotes do Likewise para distri-buiccedilotildees da Red Hat Novell e Cano-nical aleacutem de alguns sistemas Unix comerciais e do MacOS X

O site do Likewise exibe a versatildeo 50 embora os pacotes especiacuteficos por distribuiccedilatildeo incluam a versatildeo 4 usada neste artigo Usuaacuterios do Ubuntu tecircm agrave disposiccedilatildeo os pacotes likewise-open e likewise-open-gui no repositoacuterio Uni-verse Os pacotes do Likewise incluem vaacuterias dependecircncias ndash primordialmente

relacionadas ao Kerberos O Likewise Open se baseia na versatildeo MIT do Ker-beros como back-end [3] Durante a instalaccedilatildeo no Ubuntu o pacote pede para o administrador especificar os servidores Kerberos e administrativo (figuras 1 e 2)

Aleacutem de um servidor AD e uma estrutura de domiacutenio gerenciada pelo Windows o Likewise possui dois ou-tros requisitos um servidor de nomes funcional e um reloacutegio do sistema sincronizado Se os reloacutegios do cliente e do servidor estiverem mais de cinco minutos fora de sincronia o servidor Kerberos certamente se recusaraacute a emitir tiacutequetes por medida de segu-ranccedila para evitar ataques

Nova abordagemAdicionar um sistema Linux ldquocrurdquo a um domiacutenio exige certo trabalho de configuraccedilatildeo [2] O Likewise Agent faz a maior parte desse trabalho adi-cionando-se ao Name Service Switch (NSS) e aos Pluggable Authentication Modules (PAM) no cliente local

No lado do servidor o agente re-passa as requisiccedilotildees de autenticaccedilatildeo ao servidor Kerberos 5 e ao AD base-ado em LDAP Para permitir que isso aconteccedila o pacote instala algumas bi-bliotecas e arquivos de configuraccedilatildeo Por exemplo liblibnss_lwidentityso integra o Likewise ao NSS e etcpamdpam_lwidentityso faz o mesmo para o PAM O arquivo de configu-

CA

PA

Figura 1 O gerenciador de pacotes do Ubuntu pede o nome do servidor Kerberos ao se instalar os pacotes do Kerberos

copy Linux New Media do Brasil Editora Ltda

35

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

raccedilatildeo etcsecuritypam_lwidentityconf configura o moacutedulo e a interface do controlador de domiacutenio remoto eacute implementada pelo servidor Winbind do Likewise o likewise-winbindd O servior tem seu proacuteprio arquivo de configuraccedilatildeo etcsambalwiauthdconf semelhante ao arquivo smbconf do pacote Samba

O Likewise Open integra esses com-ponentes para suportar um login de domiacutenio transparente para os usuaacuterios O processo de login repassa o nome do usuaacuterio e sua senha para o PAM O moacutedulo pam_lwidentityso se comuni-ca com o serviccedilo de autenticaccedilatildeo do Likewise que gera uma chave secreta a partir do nome e da senha do usuaacute-rio O daemon do Likewise utiliza a chave secreta para solicitar um tiacutequete para solicitaccedilatildeo de tiacutequetes (TGT na nomenclatura do Kerberos) ao ser-vidor de autenticaccedilatildeo Kerberos que roda como parte do Key Distribution Center (KDC) no servidor AD

Ao apresentar o TGT o serviccedilo de autenticaccedilatildeo do Likewise recebe tiacutequetes de serviccedilo para outros ser-viccedilos de rede como SSH Os usuaacute-rios entatildeo jaacute podem fazer logon nos servidores kerberizados sem digitar suas senhas novamente

Configure o pacote de instalaccedilatildeo do Likewise em cada maacutequina Li-nux que vai se tornar um membro do domiacutenio AD (e ser gerenciada pelo Likewise) Se forem usados os pacotes de instalaccedilatildeo fornecidos no site o Likewise Open seraacute instalado com uso de um Bitrock Installer ndash um executaacutevel cujo nome de arquivo ter-mina com installer Para executar o programa eacute preciso tornar-se root e seguir as instruccedilotildees na tela

O instalador exibe informaccedilotildees sobre as licenccedilas de coacutedigo aberto dos componentes instalados antes de o Likewise instalar seus arquivos Depois disso o instalador leva o ad-ministrador ao domainjoin-cli que se localiza no diretoacuterio usrcente-risbin (violando as-sim as convenccedilotildees do FHS [4] os pacotes das distribuiccedilotildees e as versotildees mais recentes do Likewise corrigem esse erro) O agente ar-mazena informaccedilotildees de log em varloglw-identity ndash se for usada a versatildeo do repositoacuterio do Ubuntu ndash em varloglikewise-open

Pode entrarUm domiacutenio AD precisa que os siste-mas usuaacuterio e cliente tornem-se mem-bros dele O ato de criar uma conta de maacutequina no serviccedilo de diretoacuterio da Microsoft eacute chamado no idioma do AD de ldquojuntar-se ao domiacuteniordquo (ou ldquoJoining the domainrdquo em inglecircs)

Haacute uma ferramenta de linha de co-mando chamada domainjoin-cli que permite que o usuaacuterio root se junte ao domiacutenio AD criando uma conta de maacutequina no diretoacuterio nesse processo A ferramenta domainjoin-cli aceita a opccedilatildeo join e o domiacutenio como argumen-tos O argumento do domiacutenio precisa ser especificado como um nome DNS completamente qualificado

Aleacutem disso o comando espera o nome de um usuaacuterio com autorizaccedilatildeo para criar contas de computador no ambiente AD O exemplo 1 mostra um computador chamado ubuntu se juntando ao domiacutenio exemploorg A conta Administrator possui os privileacute-gios necessaacuterios para essa etapa

A segunda opccedilatildeo para se juntar a um domiacutenio eacute a interface graacutefica do Likewise Open (figura 3) Poreacutem a interface natildeo estaacute incluiacuteda no pacote baacutesico do programa Para acrescentaacute-la simplesmente instale o pacote likewise-open-gui e inicie-o com privileacutegios de root digitando domainjoin-gui

Manual e automaacuteticoNos dois casos o Likewise Open lida com a tarefa de configuraccedilatildeo em se-gundo plano eliminando a necessi-

Figura 2 Eacute preciso especificar o servidor administrativo para o domiacutenio do Kerberos

Exemplo 1 Juntando-se a um domiacutenio

01 domainjoin-cli join exampleorg Administrator02 Joining to AD Domain exampleorg03 With Computer DNS Name ubuntuexampleorg04 05 AdministratorEXAMPLEORGrsquos password06 Enter AdministratorEXAMPLEORGrsquos password07 SUCCESS

copy Linux New Media do Brasil Editora Ltda

36 httpwwwlinuxmagazinecombr

CAPA | Likewise

dade de etapas manuais complexas O software modifica as configuraccedilotildees para interaccedilatildeo do usuaacuterio com o AD (figura 4) incluindo os arquivos neces-saacuterios para a comunicaccedilatildeo do Kerberos com o KDC krb5conf e os arquivos do PAM em etcpamd

Para fazer login usando um domiacutenio de cliente Linux os usuaacuterios precisam de um diretoacuterio home no cliente O Likewise cria o diretoacuterio localmente se for modificado o arquivo etcse-curitypam_lwidentityconf

O arquivo etcnsswitchconf faz o Likewise Open retomar o controle e especifica o meacutetodo lwidentity O servi-ccedilo de nomes do NSS verifica primeiro arquivos locais como etcpasswd

passwd files lwidentitygroup files lwidentity

Se ele natildeo conseguir encontrar uma conta ele acessa o AD em se-guida Isso significa que usuaacuterios lo-cais ainda podem acessar a maacutequina local caso o AD falhe

Configuraccedilatildeo cuidadosaO Likewise eacute cuidadoso na configura-ccedilatildeo do sistema Linux Ele cria becapes de todos os arquivos que modifica acrescentando um sufixo lwid-entitybak e por um bom motivo executar domainjoin-cli leave como root na li-nha de comando ou na interface graacutefica apaga a conta da maacutequina

Nesse caso o Likewise recupera todos os arquivos de configuraccedilatildeo que tive-

rem sido alterados Ele usa o arquivo etcsambalwiauthdconf para permitir que os ad-ministradores especifiquem opccedilotildees de configuraccedilatildeo para seu proacuteprio sistema Winbind essas configuraccedilotildees devem ser familiares agravequeles que utilizam o Samba num am-biente AD

Configuraccedilatildeo individualO paracircmetro template shell define o shell de login para todos os usuaacuterios de forma centralizada O diretoacuterio home do usuaacuterio natildeo eacute definido no banco de dados de usuaacuterios do AD portanto eacute preciso especificar o caminho no ar-quivo de configuraccedilatildeo com o paracircmetro template homedir do Samba

template shell = binbashtemplate homedir = homeDU

O Likewise-Winbind substitui D pelo nome de domiacutenio curto e U pelo usuaacuterio do domiacutenio

Para evitar colisotildees de nomes em relacionamentos de confianccedila faz sentido adicionar o domiacutenio ao caminho do usuaacuterio ndash e aplicar os padrotildees para diretoacuterios dos usuaacuterios Se a configuraccedilatildeo natildeo for alterada o Likewise Open usaraacute a contra-barra como separador de domiacutenios e nomes de usuaacuterios Obviamente a contrabarra possui um significado especial em shells Unix Os especia-listas recomendam mudar isso para outro caractere em todos os clientes usando a variaacutevel winbind separator A sugestatildeo eacute o sinal +

Se houver apenas um domiacutenio eacute possiacutevel definir winbind use default domain = yes para evitar separar o domiacutenio dos nomes de usuaacuterios Se isso natildeo for feito os usuaacuterios do domiacutenio fornecidos pelo Winbind natildeo funcionaratildeo a menos que se adicione um prefixo de domiacutenio Reiniciar o Likewise Open por seu script de inicializaccedilatildeo aplica as mudanccedilas

VerbosoO pacote likewise-open conteacutem trecircs ferramentas de diagnoacutestico ndash lwinet lwimsg e lwiinfo ndash uacuteteis para fins de depuraccedilatildeo entre outros

Exemplo 2 klist exibe os tiacutequetes locais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081208 134808 081208 234808 krbtgtEXAMPLEORGEXAMPLEORG07 renew until 081908 13480808 081208 134808 081208 234808 SUSE$EXAMPLEORG09 renew until 081908 134808

Figura 3 A interface do Likewise Open pede o nome DNS do domiacutenio e os nomes das maacutequinas

copy Linux New Media do Brasil Editora Ltda

37

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

Como o Likewise se baseia no coacutedigo do Winbindd do Samba as ferramentas vatildeo lidar com as tarefas normalmente realizadas pelo dae-mon Winbind do Samba Digitando lwiinfo eacute possiacutevel verificar a conexatildeo ao controlador do domiacutenio

A ferramenta corresponde ao wbin-fo do Samba As duas consultam o daemon do Winbind Por exemplo o lwiinfo -u lista todos os usuaacuterios do domiacutenio padratildeo

EXAMPLE+mokr000EXAMPLE+phkr000EXAMPLE+wane000

O mesmo princiacutepio se aplica a grupos no serviccedilo de diretoacuterio que satildeo exibidos pela opccedilatildeo -g Isso ga-rante que o Linux saiba os nomes do AD O comado lwiinfo -g lista os grupos conhecidos

EXAMPLE+contasEXAMPLE+marketing []

Novamente o Likewise usa o ca-ractere + configurado em lwiauthdconf como separador no Winbind A ferramenta lwimsg corresponde ao smbcontrol e eacute usada para controlar o Winbindd definindo o niacutevel de depuraccedilatildeo por exemplo A contra-parte da ferramenta net do Samba usada para administraccedilatildeo remota de um domiacutenio eacute o lwinet

Apoacutes instalar o software eacute uma boa ideacuteia tentar fazer logon no AD O

formato do nome do usuaacuterio precisa corresponder agravequele definido para o serviccedilo de diretoacuterio Por exemplo se for mantida a configuraccedilatildeo padratildeo para separaccedilatildeo entre o domiacutenio e o nome do usuaacuterio mas o separador for alterado para o sinal de soma os usuaacuterios precisaratildeo digitar seus nomes como DOMIacuteNIO+usuaacuterio no login pelo console ou por um gerenciador de desktop (veja a fi-gura 5)

ubuntu Login EXAMPLE+wane000PasswordEXAMPLE+wane000ubuntu~$

Conforme mencionado anterior-mente o Likewise autentica usuaacute-rios pelo protocolo Kerberos por meio da requisiccedilatildeo de um TGT ao KDC antes de prosseguir agrave instala-ccedilatildeo local do tiacutequete no cliente como tmpkrb5cc_UID (veja o exemplo 2) O comando klist exibe os tiacutequetes vaacutelidos de um usuaacuterio

O usuaacuterio que posuir um tiacutequete tem permissatildeo para acessar serviccedilos kerberizados na rede sem fazer logon separadamente no serviccedilo de rede

Single sign-onPara permitir que um serviccedilo de rede decirc acesso sem senha a um usuaacuterio o administrador precisa atribuir um Service Principal Name (SPN) ao serviccedilo O SPN identifica o serviccedilo dentro do ambiente AD O serviccedilo pede um tiacutequete de serviccedilo para o Service Principal ao KDC identifi-cando-se com seu TGT

O SPN compreende uma defi-niccedilatildeo de serviccedilo seguida por uma barra e o hostname completamente qualificado do servidor um siacutembolo de arroba e o domiacutenio

Figura 4 Depois de entrar no domiacutenio o Likewise cria uma conta de maacutequina para o computador Ubuntu no Active Directory

Figura 5 O GDM pede um nome para login na autenticaccedilatildeo Neste AD o nome eacute composto pelo nome do domiacutenio (EXAMPLE) um sinal + e o nome do usuaacuterio

copy Linux New Media do Brasil Editora Ltda

38 httpwwwlinuxmagazinecombr

CAPA | Likewise

As definiccedilotildees de serviccedilos incluem host ftp ou pop Se um usuaacuterio es-tabelecer uma conexatildeo SSH com outro computador membro de um AD gerenciado pelo Likewise o serviccedilo kerberizado apresentaraacute o TGT do usuaacuterio e pediraacute um tiacute-quete de serviccedilo ao KDC para por exemplo o SPN hostubuntuexam-pleorgEXAMPLEORG ndash isso pressupotildee que o cache local de tiacutequetes ainda natildeo tenha um tiacutequete O tiacutequete de serviccedilo conteacutem o ID do usuaacuterio que faz a requisiccedilatildeo e a chave da sessatildeo O Likewise Open criptograva isso com a chave do servidor e a arma-zena no cache de usuaacuterios como o TGT (exemplo 3)

O cliente SSH envia automati-camente o tiacutequete de serviccedilo crip-tografado e um timestamp tambeacutem criptografado para validar o sshd do autenticador Isso garante que cada requisiccedilatildeo de tiacutequete seja uacutenica enquanto assegura que o cliente re-almente natildeo possui a chave da ses-satildeo Sem o autenticador seria mais faacutecil para um agressor capturar um tiacutequete no traacutefego da rede e iniciar um ataque de repeticcedilatildeo

O servidor valida o tiacutequete de ser-viccedilo apresentado a ele Para isso ele faz referecircncia ao arquivo etckrb5keytab local Esse arquivo armazena a chave do servidor que o usuaacuterio utiliza para decifrar o tiacutequete de serviccedilo revelando assim a chave da sessatildeo O autenticador se baseia na chave da sessatildeo caso tenha sucesso o usuaacuterio eacute autenticado sem neces-sidade de senha (figura 6)

ConexatildeoO Likewise Open configura automa-ticamente clientes SSH preacute-existen-tes e outros clientes ao se juntarem ao domiacutenio permitindo que usem o Kerberos para se autenticarem no futuro No lado do servidor o Likewise adiciona as linhas

GSSAPIAuthentication yesGSSAPICleanupCredentials yes

ao arquivo de configuraccedilatildeo etcsshsshd_config O Likewise tambeacutem acrescenta as seguintes linhas para um cliente SSH

GSAPIAuthentication yesGSSAPIDelegateCredentials yes

A instruccedilatildeo GSSAPIDelegateCreden-tials passa o TGT para o servidor de des-tino Para todas as outras configuraccedilotildees o software utiliza a Generic Security Ser-vices API (API de serviccedilos geneacutericos de seguranccedila GSSAPI) uma interface ge-neacuterica para serviccedilos de seguranccedila como o Kerberos

Figura 6 O Likewise implementa o single sign-on por meio do Kerberos Os usuaacuterios natildeo precisam digitar uma senha para fazer logon

Exemplo 4 Montagem de compartilhamentos Samba

01 ltxml version=rdquo10rdquo encoding=rdquoUTF-8rdquogt02 ltpam_mountgt03 ltvolume user = ldquordquo04 server = ldquoSAMBASERVERrdquo05 mountpoint = ldquohomeEXAMPLE(USER)Documentrdquo06 path = ldquo(USER)rdquo07 fstype = ldquosmbfsrdquo gt08 ltpam_mountgt

Exemplo 3 Tiacutequetes no cache de credenciais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081308 154829 081408 014830 krbtgtEXAMPLEORG EXAMPLEORG07 renew until 082008 15482908 081308 154830 081408 014830 SUSE$EXAMPLEORG09 renew until 082008 15482910 081308 154838 081408 014830 hostubuntuexampleorg11 renew until 082008 15482912 081308 154838 081408 014830 hostubuntuexampleorgEXAMPLEORG13 renew until 082008 154829

copy Linux New Media do Brasil Editora Ltda

39

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

LocalNa primeira vez em que um usuaacuterio do domiacutenio faz logon num cliente o Likewise Open usa o PAM (pam_lwidentityso) para criar diretoacuterios locais para esse usuaacuterio Alterna-tivamente o moacutedulo pam_mount pode montar diretoacuterios centrais do usuaacuterio num servidor remoto por SMBCIFS [5] Isso garante a todos os usuaacuterio o acesso a seus proacuteprios arquivos independentemente do cliente usado por eles no login O compartilhamento eacute definido por uma linha no arquivo etcsecuri-typam_mountconf que usa a palavra-chave volume

volume usuaacuterio sistema_de_arquivos servidor compartilhamento ponto_de_montagem opccedilotildees algoritmo caminho

A presenccedila de um curinga () no paracircmetro usuaacuterio faz o moacutedulo inserir o nome do usuaacuterio Sistema_de_arquivos pode ser smbfs ou cifs O servidor pode ser um IP ou um nome NetBIOS e compartilhamento pode usar o amp como curinga para o nome do usuaacuterio

Os trecircs uacuteltimos paracircmetros geral-mente natildeo satildeo necessaacuterios traccedilos satildeo aceitaacuteveis nesse caso montar o diretoacuterio Documentos ou o diretoacuterio home completo eacute questatildeo de gosto e depende de como a empresa orga-niza seus servidores centrais

Caso o ponto de montagem natildeo exista o moacutedulo pam_mount do PAM o cria se sua opccedilatildeo mkmountpoint 1 estiver presente Na versatildeo 029 o pam_mount armazena as configura-ccedilotildees num formato XML equivalente conforme mostra o exemplo 4

Antes das linhas sufficient na seccedilatildeo auth de etcpamd eacute possiacutevel inserir uma linha para o moacutedulo O exemplo 5 mostra uma configuraccedilatildeo nos arquivos common-auth e common-session no Ubuntu Para evitar a necessidade de os usuaacuterios digitarem suas senhas repetidamente a linha tr_first_pass = yes do arquivo etcsecuritypam_lwidentityconf ativa a opccedilatildeo para tentar novamente uma senha jaacute digitada antes

Versatildeo comercialAleacutem da versatildeo de coacutedigo aberto do Likewise a corporaccedilatildeo america-na Likewise Software oferece uma versatildeo comercial de seu software o Likewise Enterprise [6] A versatildeo comercial possui suporte a poliacuteticas de grupo no AD aleacutem das funciona-lidades oferecidas pela versatildeo livre o produto define aproximadamente 500 poliacuteticas padratildeo O Likewise Ad-ministrative Console eacute capaz de usar uma maacutequina Linux ou Unix para gerenciar registros do AD

Aleacutem disso tudo o Likewise En-terprise suporta desktops Linux que fazem referecircncia ao AD para obten-ccedilatildeo de configuraccedilotildees e restriccedilotildees Isso

ativa a implementaccedilatildeo de poliacuteticas estritas de seguranccedila A variante corporativa estaacute disponiacutevel gratuita-mente para fins de avaliaccedilatildeo ou por US$ 250 na versatildeo para servidores A empresa oferece dois niacuteveis de suporte comercial

Nova caraUma vez configurado o Likewi-se Open oferece o mesmo escopo funcional de uma combinaccedilatildeo de Samba Kerberos PAM e NSS Ele livra o administrador de vaacuterias tarefas monoacutetonas e repetitivas de configu-raccedilatildeo e suporta o gerenciamento de usuaacuterios centralizado e independente de plataforma O serviccedilo de autenti-caccedilatildeo por tiacutequetes do Kerberos e o single sign-on satildeo bocircnus

Quem se interessar pelo Likewi-se Open pode apreciar os recursos adicionais oferecidos pela versatildeo co-mercial ou os benefiacutecios do suporte profissional O uacutenico trabalho ma-nual que resta para o administrador eacute o gerenciamento centralizado dos diretoacuterios dos usuaacuterios

Mais informaccedilotildees

[1] Likewise Open httpwwwlikewisesoftwarecomproductslikewise_open

[2] Walter Neu ldquoDomando os catildees do infernordquo httplnmcombrarticle2424

[3] Kerberos MIT httpwebmitedukerberos

[4] Padratildeo Hieraacuterquico de Arquivos (FHS) httpwwwpathnamecomfhs

[5] Montagem de diretoacuterios home com PAM httppam-mountsourceforgenet

[6] Likewise Enterprise httpwwwlikewisesoftwarecomproductslikewise_enterprise

Exemplo 5 Configuraccedilatildeo do pam_mount

01 etcpamdcommon-auth02 auth required pam_mountso03 auth sufficient libsecuritypam_lwidentityso04 auth requisite pam_unixso nullok_secure try_first_pass05 auth optional pam_smbpassso migrate missingok0607 etcpamdcommon-session08 session optional pam_mountso09 auth sufficient libsecuritypam_lwidentityso10 session required pam_unixso

copy Linux New Media do Brasil Editora Ltda

40 httpwwwlinuxmagazinecombr

Serviccedilo RDP Linux para clientes de terminal Windows

O manda-chuva do terminal

O xrdp ajuda os seus clientes de terminal Windows a se conectarem ao Linuxpor Kenneth Hess

A conexatildeo de desktops remotos do Windows no Linux ge-ralmente consome bastante

banda da rede eacute insegura e difiacutecil de configurar E se um sistema Windows pudesse se conectar a um sistema Linux tatildeo facilmente quanto o faz com outro sistema Windows ndash utili-zando para isso o mesmo aplicativo usado para conectar originalmente ao Windows

O xrdp eacute uma implementaccedilatildeo de coacutedigo aberto do RDP (Remote Desktop Protocol ndash ou Protocolo de Ambiente de Trabalho Remoto na

traduccedilatildeo em portuguecircs) o protoco-lo usado nos serviccedilos de terminal do Windows para conexatildeo nativa a desktops Windows O Pacote xrdp fornece a funcionalidade RDP bem como um servidor graacutefico que seja capaz de aceitar conexotildees do rdesktop [1] e de clientes de serviccedilos de ter-minais Windows

Uma vez conectado e autenticado no servidor RDP Linux o usuaacuterio remoto teraacute disponiacutevel um ambiente de trabalho Linux em modo graacutefico E o melhor eacute que natildeo eacute necessaacuterio executar um servidor graacutefico na maacute-quina com Windows nem eacute preciso exportar a tela do Linux para o com-putador com Windows

Configurar o servidor RDP no Linux eacute faacutecil e leva apenas alguns minutos Para os usuaacuterios novatos de Linux ou os administradores de sistemas Windows segue a lista de requisitos necessaacuterios para fazer o sistema funcionar uma conta de usuaacuterio padratildeo

na maacutequina Linux acesso remoto ou ao console do

servidor Linux acesso com privileacutegios administrati-

vos (de root) no servidor Linux

Tambeacutem ajuda se vocecirc souber al-guma coisa sobre RDP e sobre a otimizaccedilatildeo da configuraccedilatildeo de um cliente RDP

Instalaccedilatildeo e configuraccedilatildeoPara nos certificarmos de que esta-mos usando a versatildeo mais recente do xrdp vamos instalaacute-lo a partir do coacutedigo-fonte Haacute pacotes do pro-grama para algumas distribuiccedilotildees o que pode facilitar a instalaccedilatildeo e a integraccedilatildeo agrave distribuiccedilatildeo Poreacutem o objetivo deste artigo eacute possibili-tar a instalaccedilatildeo em qualquer sis-tema Assim baixe o coacutedigo-fonte do pacote xrdp [2] descompacte-o e compile-o

$ tar zxvf xrdp-041targz$ cd xrdp-041$ make

Em seguida instale-o usando pri-vileacutegios de root

make install

Os arquivos executaacuteveis scripts e bibliotecas seratildeo instalados no diretoacuterio usrlocalxrdp e os arquivos de con-figuraccedilatildeo no diretoacuterio etcxrdp

A documentaccedilatildeo do aplicativo eacute um pouco obscura sobre o que fazer a seguir Embora tenhamos decidido no comeccedilo natildeo mudar nenhum dos paracircmetros nos arquivos sesmanini e xrdpini disponiacuteveis em etcxrdp e tenhamos abordado a situaccedilatildeo

CA

PA

Figura 2 Forneccedila seu usuaacuterio e sua senha do sistema Linux

Figura 1 Janela de conexatildeo com o desktop remoto

copy Linux New Media do Brasil Editora Ltda

41

| CAPAxrdp

como um administrador de sistemas Windows assumindo que as coisas iriam funcionar sem necessidade de muitos ajustes agrave configuraccedilatildeo nesse ponto essa abordagem comeccedila a se tornar frustrante

Uma vez com o sistema instala-do os seguintes comandos devem ser executados como root

cd usrlocalxrdp cp xrdp_controlsh etcinitdxrdp_control

Em seguida em distribuiccedilotildees derivadas do Red Hat os seguintes comandos se aplicam

chkconfig --add xrdp_control

chkconfig xrdp_control on service xrdp_control start

Jaacute em distribuiccedilotildees derivadas do De-bian esses satildeo os comandos

update-rcd xrdp_control defaults update-rcd xrdp_control start 80 3 4 stop 0 1 6 etcinitdxrdp_control start

O script xrdp_controlsh controla os serviccedilos de ativaccedilatildeo desativaccedilatildeo e reinicializaccedilatildeo do pro-grama Ao copiar o script para o diretoacuterio etcinitd pode-se retirar a ex-tensatildeo sh por motivos esteacuteticos ndash nenhum ou-tro script desse diretoacuterio possui essa extensatildeo em-bora todos sejam scripts de shell

Em sistemas baseados em FedoraRed Hat o comando chkconfig eacute um utilitaacuterio para atualizar e buscar informaccedilotildees sobre o niacutevel de execuccedilatildeo para serviccedilos de sistema ma-nipulando os vaacuterios links simboacutelicos em etcinitd para ali-viar um pouco os administradores de

sistema da tarefa tediosa de editar os links simboacuteli-cos e a necessi-dade de manipu-lar esses serviccedilos manualmente

Haacute pacotes para esse apli-cativo disponiacute-veis para outras distribuiccedilotildees como Debian e Ubuntu mas o correto eacute usar a ferramenta ade-quada para a sua distribuiccedilatildeo

Assim para criar um novo serviccedilo de inicializaccedilatildeo copie seu script de controle para etcinitd confor-me mostrado acima e entatildeo use o comando chkconfig para ativaacute-lo A linha chkconfig xrdp_control on de-fine os niacuteveis de execuccedilatildeo (runlevels) do serviccedilo (ver tabela 1) Por exemplo o comando chkconfig --level 35 xrdp_control configura o xrdp_con-trol para funcionar nos niacuteveis de execuccedilatildeo 3 e 5 O uacuteltimo comando na listagem acima inicia os serviccedilos sesman e xrdp

Para se conectar ao serviccedilo RDP no servidor Linux a partir de um PC com Windows basta fazer exatamente como se faria com um servidor Win-dows como mostra a figura 1

O cliente RDP abre uma nova janela conforme ilustrado na figura 2 solicitando o nome de usuaacuterio e a senha que satildeo aqueles configu-rados no servidor Linux Forneccedila um nome e uma senha vaacutelidos e clique em OK Mesmo que a maacute-quina Linux esteja configurada para usar um domiacutenio do serviccedilo Active Directory ainda seraacute preciso adicio-nar cada usuaacuterio aos sistemas Linux que se desejar acessar via RDP Para fazer isso crie primeiramente um grupo para todos os usuaacuterios do serviccedilo RDP

Tabela 1 Niacuteveis de execuccedilatildeo no Linux

0 Desligar

1 Modo monousuaacuterio

2 Multiusuaacuterio sem NFS

3 Multiusuaacuterio completo

4 Natildeo utilizada

5 X11 (graacutefico)

Detalhe haacute distribuiccedilotildees que utilizam o niacutevel 4 como ambiente graacutefico semelhante ao niacutevel 5

Figura 3 Registro do gerenciador de sessatildeo da conexatildeo xrdp

Figura 4 Uma conexatildeo com o desktop pronta para usar

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

42 httpwwwlinuxmagazinecombr

CAPA | xrdp

groupadd rdpusers useradd -g rdpusers fulano passwd fulano

Caso o usuaacuterio jaacute exista no sis-

tema use o comando usermod para adicionaacute-lo ao grupo de usuaacuterios do serviccedilo RDP

usemod -G rdpusers fulano

Embora natildeo seja explicitamente necessaacuterio para o acesso um grupo especial simplifi ca a administraccedilatildeo do sistema Forneccedila agora o nome do usuaacuterio criado e a sua senha e entatildeo clique em OK

A tela mostrada na figura 3 de-veraacute aparecer Essa eacute a janela de registro do gerenciador de sessotildees da conexatildeo que ilustra a negocia-ccedilatildeo entre o cliente e o servidor Perceba que o gerenciador de ses-sotildees conecta primeiramente agrave porta associada ao serviccedilo RDP e entatildeo agrave porta de um serviccedilo VNC para entatildeo apresentar o desktop Linux a vocecirc A figura 4 mostra um desktop CentOS 5

Quando desconectando de uma sessatildeo RDP em Linux vocecirc veraacute a tela mostrada na fi gura 5 Perceba que somente duas accedilotildees estatildeo dis-poniacuteveis Encerrar sessatildeo atual e Cancelar que satildeo recursos padratildeo de conexotildees VNC remotas

O servidor Linux executa os progra-mas xrdp e sesman e fi ca aguardando co-nexotildees RDP Assim que um cliente de serviccedilos de terminais Windows tenta se conectar ao servidor RDP o servidor e o cliente negociam um niacutevel de criptografi a trocam chaves e veri-fi cam quais recursos estatildeo disponiacuteveis A partir daiacute o cliente escolhe a quantidade de cores e a resoluccedilatildeo da tela que seraacute usada na sessatildeo

Se o usuaacuterio fornecer um nome e uma senha no aplicativo cliente a autenticaccedilatildeo eacute iniciada Caso con-traacuterio o usuaacuterio seleciona o moacutedu-lo de uma lista do tipo drop-down e fornece um usuaacuterio e uma senha na tela de login conforme ilustra a fi gura 6

O moacutedulo libvnc eacute carregado e uma conexatildeo TCP eacute feita para o endereccedilo 127001 ou para o en-dereccedilo IP especifi cado no arquivo etcxrdpxrdpini As credenciais de login do usuaacuterio a resoluccedilatildeo da tela e a quantidade de cores satildeo fornecidas ao aplicativo sesman para fi ns de autenticaccedilatildeo Se o sesman

encontrar uma sessatildeo ativa com a resoluccedilatildeo e a quantidade de cores especifi cadas ele retor-na essa tela ao usuaacute-rio Caso contraacuterio ele inicia uma nova instacircncia xvnc com as especifi caccedilotildees de am-biente do usuaacuterio

Conclusotildees O xrdp eacute faacutecil de ins-talar confi gurar cus-tomizar e usar E ndash o que eacute melhor ndash natildeo eacute

necessaacuterio experiecircncia em Linux para trabalhar com essa poderosa ferra-menta Como natildeo haacute o que instalar no cliente Windows natildeo daacute para se complicar com o xrdp

Muito embora este artigo natildeo mostre qualquer tipo de anaacutelise ex-tensiva de desempenho de rede ou uso de banda com esse aplicativo como se trata de RDP eacute sabido que a performance comeccedila a cair quando o nuacutemero de usuaacuterios simultacircneos conectados se aproxima da marca de 25 Contudo vale a pena conhe-cer o xrdp e integraacute-lo ao seu arse-nal de ferramentas independentes de plataforma

Sobre o autor Ken Hess eacute editor de material teacutecnico e jornalista freelance Ele escreve sobre uma grande variedade de temas envolvendo sistemas de coacutedigo aberto entre eles Li-nux bancos de dados e virtualizaccedilatildeo Agradecimentos especiais a Jay Sorg do projeto xrdp e a Matt Chapman do proje-to rdesktop pela ajuda no desenvolvimen-to deste artigo

Mais informaccedilotildees

[1] rdesktop httpwwwrdesktoporg

[2] xrdp httpxrdpsourceforgenet

Figura 5 Janela de fi nalizaccedilatildeo de sessatildeo do VNC

Figura 6 Tela de login do xrdp

copy Linux New Media do Brasil Editora Ltda

43

| CAPAxrdp

Linux Magazine 50 | Dezembro de 2008

SE

CcedilAtilde

O

pocket_atualizadoindd 61 261108 142709

copy Linux New Media do Brasil Editora Ltda

44 httpwwwlinuxmagazinecombr

A possibilidade de realizar uma certa tarefa num momento especiacutefico ou em intervalos

regulares eacute obrigatoacuteria para adminis-tradores de sistemas O cron daemon original oferece um meacutetodo faacutecil para agendar tarefas em sistemas baseados em Unix Embora o Cron tenha recebido diversas melhorias ao longo dos anos suas versotildees mais recentes ainda satildeo projetadas para agendamentos muito simples Administradores que precisam de algo minimamente incomum satildeo obrigados a criar scripts ou a incluir os recursos de que precisam em um dos scripts iniciados pelo Cron

Imagine quanto tempo seria eco-nomizado se natildeo fosse mais neces-saacuterio criar e alterar esses scripts ou ter qualquer outro trabalho para fazer com que os programas rea-jam a condiccedilotildees de erro e sejam executados na exata hora em que deveriam Vaacuterios produtos comer-

ciais oferecem esse recurso mas podem significar uma mordida no orccedilamento de TI Felizmente o mundo do Coacutedigo Aberto tambeacutem oferece soluccedilotildees de agendamento aleacutem do Cron

Assim como em qualquer software de agendamento a unidade primaacuteria eacute o job ou tarefa que geralmente eacute um script ou programa iniciado pelo software de agendamento Em vaacuterios casos o Cron eacute suficiente para suprir os requisitos mais baacutesicos de agen-damento tais como executar uma tarefa uma vez por dia (becapes por exemplo) ou tarefas que precisem ser executadas em intervalos mais frequumlentes menos frequumlentes ou em datas especiacuteficas

Poreacutem quando comeccedilamos a lidar com dependecircncias de algum tipo rapidamente eacute possiacutevel perceber as limitaccedilotildees do Cron ndash por exemplo se for necessaacuterio iniciar um progra-ma especiacutefico apoacutes um certo evento

Haacute casos de verdadeiras seacuteries de co-mandos que precisam ser executados em ordem e precisam todos ter su-cesso ndash se um dos comandos falhar a execuccedilatildeo dos seguintes causaria grandes problemas Nem as versotildees mais novas do Cron conseguem li-dar com isso principalmente se for necessaacuterio iniciar uma tarefa jaacute no meio da cadeia de comandos

Muitas tarefas precisam ser ge-renciadas em muacuteltiplas maacutequinas entatildeo um bom software de agen-damento permite que se gerencie todas as maacutequinas a partir de um ponto central inicie tarefas remo-tamente e assim por diante Para distribuir crontabs para essas maacutequi-nas remotas pode-se usar o Rsync mas isso rapidamente se torna um pesadelo administrativo quando a configuraccedilatildeo eacute diferente ao longo das maacutequinas ou quando as tare-fas agraves vezes precisam ser iniciadas manualmente ou ainda quando haacute

CA

PA

O agendador Open Source Job Scheduler

Muito aleacutem do CronPlanejar e agendar tarefas computacionais pode exigir muito trabalho principalmente se abranger muacuteltiplas maacutequinas Conheccedila uma ferramenta que facilita muito essa aacutereapor James Mohr

copy Linux New Media do Brasil Editora Ltda

45

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

outras tarefas que natildeo fazem parte do Cron

MultiplataformaApesar de ser possiacutevel instalar ver-sotildees abertas do Cron no Windows lidar com diferentes sistemas ope-racionais causa ainda mais proble-mas Por exemplo alguns dialetos de Unix natildeo suportam um arquivo etccrontab central entatildeo eacute preciso criar um arquivo para cada usuaacuterio O Cron era uma boa ferramenta nessa eacutepoca e geralmente ainda eacute mas as necessidades de muitas empresas jaacute superam suas funcionalidades

As limitaccedilotildees do Cron natildeo pas-saram despercebidas Haacute produtos comerciais que custam pequenas fortunas e costumam ser licenciados com base no nuacutemero de servidores ou de scripts a serem iniciados

Por sua vez os problemas dos pro-dutos comerciais tambeacutem natildeo passa-ram despercebidos pela comunida-de do Coacutedigo Aberto Uma soluccedilatildeo surpreendente eacute o Open Source Job Scheduler desenvolvido pela alematilde SOS (Software- und Organisations-Service) Haacute versotildees para Linux So-laris HP-UX (PA-RISC IA64) AIX e Windows Ele tambeacutem suporta vaacuterios bancos de dados incluindo DB2 Oracle MS SQL Server PostgreSQL e MySQL

O software adota um esquema de duplo licenciamento pela GPL e a Guaranteed License (Licenccedila Ga-rantida) Trata-se do mesmo coacutedigo com funcionalidades atualizaccedilotildees e coacutedigo-fonte idecircnticos

A receita da SOS natildeo proveacutem da venda de seu produto mas dos serviccedilos e do suporte Poreacutem estra-nhamente a empresa natildeo anuncia seu produto ndash nem seus serviccedilos ndash da forma tradicional Ao demonstrar o produto o objetivo natildeo eacute convencer clientes potenciais mas mostrar-lhes o que o produto pode fazer e deixar que eles decidam se ele supre suas necessidades

A versatildeo comercial tambeacutem oferece uma ldquopessoa responsaacutevelrdquo para cada chamado de serviccedilo com tempos de resposta garantidos e pedidos de re-cursos recebem maior prioridade de implementaccedilatildeo Aleacutem disso essa ver-satildeo natildeo possui as restriccedilotildees da GPL entatildeo pode ser embutida em outros aplicativos (comerciais ou natildeo) sem que este precise aderir agrave GPL

Diferente da maioria dos softwa-res comerciais e de coacutedigo aberto a SOS oferece garantia limitada de dois anos e um acordo de indeni-zaccedilatildeo Segundo seu diretor a em-presa se sente obrigada a fornecer ao cliente um retorno por seu pa-gamento e isso tambeacutem se estende a discrepacircncias entre o produto e a documentaccedilatildeo

EstruturaO componente central do pacote eacute o mecanismo de agendamento de tarefas que roda em cada uma das maacutequinas que as agendaratildeo Esse meacute-todo eacute diferente de executar a tarefa pode-se ter um agendador em cada

maacutequina com todos agindo como escravos de um central mas tam-beacutem eacute possiacutevel usar um agendador completo em cada uma delas Esse mecanismo pode ser expandido para permitir o balanceamento de carga por meio de muacuteltiplos servidores

Um aspecto importante a ser considerado eacute chamado de order (pedido) que consiste em um sinal passado entre tarefas Dependendo de suas configuraccedilotildees as tarefas natildeo tecircm permissatildeo de iniciar ateacute rece-berem seu pedido

Na forma mais simples pedidos satildeo como o bastatildeo numa corrida de revezamento entregues por cada tarefa para a seguinte Aleacutem disso eacute possiacutevel configurar pedidos com horas especiacuteficas de iniacutecio para que sejam gerados automaticamente pelo sistema no momento especificado e depois a cadeia respectiva possa se iniciar

Note que para conseguir reagir a um pedido uma tarefa precisa ser configurada para aceitaacute-lo mas o pedido soacute pode ser associado a uma

Figura 1 Janela do editor graacutefico do agendador de tarefas

copy Linux New Media do Brasil Editora Ltda

46 httpwwwlinuxmagazinecombr

CAPA | Agendamento

cadeia de tarefas e natildeo a uma ta-refa especiacutefica Ou seja o pedido eacute passado de tarefa para tarefa dentro da cadeia mas eacute associado somente agrave cadeia Se for desejaacutevel que uma uacutenica tarefa se inicie num momento especiacutefico por exemplo isso pode ser feito dentro da proacutepria tarefa Outro componente importante satildeo os Hot Folders (pastas quentes) que seatildeo di-retoacuterios monitorados pelo agendador em busca de alteraccedilotildees tais como a alteraccedilatildeo ou criaccedilatildeo de tarefas

TarefasTarefas podem ser configuradas a partir da interface graacutefica do editor do agendador (figura 1 chamado aqui de ldquoeditor de tarefasrdquo) ou por arqui-vos XML editados manualmente O editor de tarefas eacute um aplicativo em Java que configura vaacuterias tarefas ca-deias e outros aspectos do sistema Todas as informaccedilotildees de configura-

ccedilatildeo do sistema satildeo armazenadas em arquivos XML e basta abrir o arquivo XML respectivo no editor de tarefas para fazer alteraccedilotildees Poder usar o Vim em arquivos de configuraccedilatildeo eacute mais que uma becircnccedilatildeo em casos de alteraccedilotildees em massa

Os arquivos XML podem ser copiados para maacutequinas remotas e salvos via FTP diretamente a partir do editor de tarefas Quando ater-rissam num Hot Folder os arquivos ficam imediatamente disponiacuteveis para o mecanismo do agendador na maacutequina remota

A interface graacutefica do editor de tarefas natildeo eacute tatildeo intuitiva quanto poderia e vaacuterios campos parecem misteriosos a princiacutepio Como a documentaccedilatildeo deixa a desejar fal-tam explicaccedilotildees sobre muitos desses campos Em alguns casos a docu-mentaccedilatildeo dos arquivos XML ajuda a tirar as duacutevidas

Apesar de as informaccedilotildees de con-figuraccedilatildeo serem armazenadas em arquivos XML por padratildeo eacute pos-siacutevel configurar o agendador para usar diversos bancos de dados dife-rentes Essas tarefas satildeo chamadas de ldquogerenciadasrdquo e cada agendador instalado pode ser configurado para acessar as tarefas no banco de da-dos para natildeo ser necessaacuterio copiar os arquivos manualmente

A operaccedilatildeo cotidiana do siste-ma eacute realizada pela sua interface graacutefica (chamada neste artigo de ldquointerface de operaccedilatildeordquo) que eacute acessada por um navegador e per-mite o gerenciamento das tarefas a partir de qualquer maacutequina Com essa interface eacute possiacutevel natildeo apenas monitorar as tarefas mas tambeacutem iniciaacute-las paraacute-las tratar seus erros e muitas outras funccedilotildees

O agendador de tarefas tambeacutem oferece uma API que permite o ge-renciamento e o controle externos de tarefas A API suporta vaacuterias lin-guagens incluindo Perl VBScript JavaScript e Java Surpreendente-mente natildeo haacute suporte a PHP ape-sar da possibilidade de se gerenciar tarefas a partir de um navegador web e da documentaccedilatildeo de scripts PHP de exemplo

InstalaccedilatildeoOs exemplos deste artigo foram feitos com a versatildeo 134 para Li-nux que pode ser baixada do site do Job Scheduler no SourceForge [1] Se houver intenccedilatildeo de se usar um banco de dados MySQL como neste artigo note que o programa natildeo fornece um driver JDBC para esse banco embora haja drivers para Oracle e outros bancos O driver JDBC para MySQL pode ser baixado diretamente do site do MySQL [2] Basta digitar o caminho do arquivo jar apropriado durante a instalaccedilatildeo

Antes de comeccedilar eacute recomen-daacutevel ler o guia de instalaccedilatildeo em Figura 2 Digitaccedilatildeo do coacutedigo-fonte diretamente no editor de tarefas

copy Linux New Media do Brasil Editora Ltda

47

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

PDF incluiacutedo no pacote Aleacutem dis-so haacute vaacuterios outros PDFs no site da empresa [3] mais aprofundados em diversos toacutepicos Fique ciente ateacute para obter as informaccedilotildees mais baacutesicas na documentaccedilatildeo eacute preciso ser um tanto familiarizado com a programaccedilatildeo orientada a objetos e XML pois a documentaccedilatildeo natildeo fornece qualquer introduccedilatildeo a esses toacutepicos Aleacutem disso ela natildeo eacute bem organizada entatildeo saiba que seraacute preciso procurar bastante Apesar de ser volumosa a documentaccedilatildeo natildeo eacute faacutecil de usar o que eacute algo que a empresa pretente melhorar

No Linux a instalaccedilatildeo ocorre por meio de um instalador em Java e se for feita por um usuaacuterio nor-mal o padratildeo eacute os arquivos serem abrigados em $HOMEscheduler Se for instalado como root o diretoacuterio do programa eacute usrlocalschedu-ler Apoacutes instalar o produto haacute um arquivo README que recomenda que o programa natildeo seja instalado como root mas natildeo haacute menccedilatildeo a isso no guia de instalaccedilatildeo e con-figuraccedilatildeo Para evitar problemas potenciais vamos instalaacute-lo como usuaacuterio normal

Durante a instalaccedilatildeo satildeo pedidos o tipo do banco de dados e infor-maccedilotildees da conexatildeo Natildeo fica claro se o campo ldquodatabase parametersrdquo deve receber os paracircmetros de co-nexatildeo apoacutes o banco de dados estar em execuccedilatildeo ou os paracircmetros de conexatildeo para criaccedilatildeo do banco de dados Infelizmente recomenda-se criar um banco de dados e um usuaacuterio para o programa usar mas isso soacute eacute mencionado apoacutes todas as etapas de instalaccedilatildeo Criar o banco de dados manualmente e conferir privileacutegios do banco antes de iniciar a instalaccedilatildeo jaacute resolve

A instalaccedilatildeo eacute relativamente in-tuitiva mas leva alguns minutos para criar e preencher as tabelas do banco de dados Para instalar o Scheduler em muacuteltiplas maacutequinas com os mes-

mos paracircmetros haacute a opccedilatildeo de criar um script automaticamente ao final da primeira instalaccedilatildeo

IniciandoIndependentemente de a instala-ccedilatildeo ocorrer sob o root ou um usuaacute-rio normal eacute necessaacuterio iniciar o agendador manualmente Seu controle eacute feito como num script rc comum

$HOMEschedulerbinjobschedulersh start$HOMEschedulerbinjobschedulersh stop

Para iniciar o Scheduler auto-maticamente na inicializaccedilatildeo re-comenda-se criar um usuaacuterio espe-ciacutefico para ele e depois um script rc que use o comando su para se tornar esse usuaacuterio e iniciar o programa Se houver necessidade de tarefas serem executadas sob o root ou ou-tro usuaacuterio com mais privileacutegios eacute possiacutevel configurar um ambiente sudo apropriado

Novas tarefasPara criar tarefas pode-se ou edi-tar os arquivos XML diretamente ou pelo editor de tarefas No Li-nux execute o script jobeditorsh localizado por padratildeo em usrlo-calschedulerbin ou $HOMEsche-dulerbin

Como exemplo considere a ta-refa tiacutepica de criaccedilatildeo de um beca-pe da configuraccedilatildeo do sistema Por ora vamos supor que isso seja feito diariamente com o script usrbinbecapesh

Primeiramente inicie o editor de tarefas e selecione New | Hot Folder Element | Job (figura 1) No primei-ro formulaacuterio comece digitando as informaccedilotildees baacutesicas de sua tarefa Para este exemplo digite o nome Becape das configuraccedilotildees no campo Job Title adicione uma descriccedilatildeo ou deixe em branco

No painel esquerdo clique em Execute para digitar os detalhes sobre o programa ou script que se deseja iniciar Como o objetivo eacute executar um script externo selecione o botatildeo

Figura 3 Interface de operaccedilatildeo do Job Scheduler

copy Linux New Media do Brasil Editora Ltda

48 httpwwwlinuxmagazinecombr

CAPA | Agendamento

Run executable e digite o caminho completo do script referido Nesse ponto tambeacutem eacute possiacutevel definir masi paracircmetros a ser passados para o script Por exemplo se o becape comprimir os arquivos armazenados pode ser interessante acrescentar um -c a esse campo

Aleacutem disso pode-se incluir os passos individuais de execuccedilatildeo se-lecionando-se o botatildeo Script e o tipo de coacutedigo do programa depois digitando o coacutedigo-fonte na caixa apropriada Note que isso eacute mais que o nome de um script e pode incluir estruturas de programaccedilatildeo baseadas na linguagem seleciona-da (figura 2)

Para salvar a tarefa pressione o botatildeo Save ou escolha Save no menu File Na primeira vez em que o ar-quivo eacute salvo eacute preciso digitar um nome para ele Para isso navegue ateacute o diretoacuterio configlive e salve o arquivo como becape assim

a extensatildeo xml seraacute adicionada au-tomaticamente

Via navegadorComo o arquivo foi salvo no dire-toacuterio live ele fica imediatamente visiacutevel para o sistema Esse diretoacuterio eacute preacute-definido como um Hot Folder que o sistema lecirc regularmente Nesse ponto a tarefa natildeo foi agendada mas apenas adicionada ao sistema Para iniciar a tarefa eacute preciso executar a interface de operaccedilatildeo apontando seu navegador para httplocal-host4444

Em conexotildees pelo navegador o Scheduler exibe uma interface semelhante agrave da figura 3 Para ver os detalhes da tarefa decirc um duplo clique na tarefa de becape na colu-na agrave esquerda Para executar a tarefa imediatamente clique no botatildeo Job menu e selecione Start task now

Por ser muito faacutecil iniciar o script pela linha de comando isso natildeo eacute

nada espetacular Eacute possiacutevel voltar ao editor de tarefas e clicar na en-trada Run Time no painel esquerdo e selecionar uma hora para a exe-cuccedilatildeo da tarefa Para isso clique em Everyday (todos os dias) e de-fina um novo periacuteodo clicando no botatildeo new Period Em Start Time digite algo como 0900 no campo Single Start Depois clique no bo-tatildeo Save e essa nova configuraccedilatildeo seraacute ativada ndash a tarefa teraacute iniacutecio todos os dias agraves 9 horas

Ateacute agora a uacutenica vantagem do programa sobre o Cron eacute uma inter-face amigaacutevel ndash mas isso eacute apenas o comeccedilo Quando comeccedilamos a conhecer as cadeias de tarefas vemos o poder do agendamento de tarefas

BecapePrimeiro suponha que vocecirc tenha criado uma segunda tarefa que faccedila um becape do banco de dados que deve ser executada imediatamente apoacutes o fim do becape das configu-raccedilotildees Uma alternativa eacute criar um uacutenico script que faccedila primeiro o becape das configuraccedilotildees e imedia-tamente depois inicie o do banco de dados Poreacutem cadeias de tarefas satildeo uacuteteis em vaacuterias situaccedilotildees mais complexas em que natildeo eacute possiacutevel simplesmente lanccedilar matildeo de um script shell as quais seratildeo discutidas mais adiante

Assim como na primeira tarefa crie um novo elemento no Hot Folder mas selecione Job Chains Digite o nome da cadeia (Chain Name) e caso se deseje tambeacutem um tiacutetulo (Title) Como cada ele-mento de uma cadeia eacute chamado de noacute (Node) eacute preciso adicionar um New Chain Node a seguir clicando no botatildeo respectivo Caso o nome da tarefa seja conhecido pode-se digitaacute-lo manualmente ou usar o botatildeo Browse para procuraacute-la

No campo State eacute possiacutevel definir um estado para essa etapa ou noacute

Figura 4 As dependecircncias entre as tarefas podem ser exibidas com uso do Job Chain Illustration

copy Linux New Media do Brasil Editora Ltda

49

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

Definido estados eacute possiacutevel criar um fluxo mais complexo para as tarefas Por exemplo pode-se criar um esta-do chamado Erro e se alguma tarefa anterior apresentar um erro pula-se imediatamente para a tarefa definida com esse estado pulando todas as outras Aleacutem disso eacute possiacutevel exe-cutar diferentes tarefas de erro para cada uma das vaacuterias etapas

Mais cadeiasEmbora criar uma cadeia de tare-fas que consista em apenas uma uacutenica tarefa possua certas vanta-gens natildeo pare nesse ponto Como mencionado eacute melhor uma tarefa de becape constituiacuteda por duas etapas entatildeo vamos criar uma segunda cadeia com a tarefa de becape do banco de dados e con-figuraacute-la de forma semelhante agrave segunda tarefa Em nosso exem-plo definimos o primeiro noacute com o estado Iniacutecio e o segundo com o estado Fim embora isso natildeo seja necessaacuterio

Ao se clicar no botatildeo Save eacute mostrada a nova cadeia na aba Job Chains da interface de operaccedilatildeo Marcar a caixa Show Jobs exibe as tarefas individuais que compotildeem a cadeia Um duplo clique na ca-deia abre o painel de detalhes no lado direito como ocorreu com a tarefa uacutenica

Nesse ponto a cadeia de tarefas ainda natildeo seraacute executada porque precisa de um pedido que pode ser inserido manualmente no menu Job | Add Order Eacute mostrada uma nova janela que permite a definiccedilatildeo de vaacuterias caracteriacutesticas do pedido como ID horaacuterio de iniacutecio e ateacute estado da cadeia Neste exemplo apenas deixe tudo em branco e o sistema criaraacute sozinho uma ID de pedido

Se natildeo tiver sido definida uma condiccedilatildeo a cadeia inicia imedia-tamente poreacutem pode ser definida uma fatia de tempo (Time Slot) para qualquer uma dessas tarefas e

o Scheduler esperaria a hora certa para iniciar a tarefa

Note que as tarefas precisam ser capazes de aceitar pedidos para reagir a eles Esta etapa eacute feita na janela de configuraccedilatildeo para as ta-refas individuais Na janela Main Options haacute um botatildeo On Order que precisa ser definido como Yes caso contraacuterio o pedido natildeo ini-ciaraacute a tarefa

Ateacute aqui iniciamos tudo manu-almente Como precisamos definir um pedido para iniciar a cadeia de tarefas obviamente eacute necessaacuteria uma forma de criar pedidos dinami-camente Uma maneira seria criar um pedido numa hora especiacutefica o que por sua vez aciona a cadeia de tarefas Como se pode esperar isso eacute feito pelo menu New | Hot Folder Element | Order Apoacutes dar um nome ao pedido e selecionar a janela Job Chains selecione a cadeia especiacutefica a ser associada a esse pedido Note que um pe-dido soacute pode ser associado a uma uacutenica cadeia Depois defina um novo horaacuterio (Time Period) e um Single Start agraves 0900 Para ativar imediatamente as alteraccedilotildees eacute preciso armazenaacute-la no diretoacuterio configlive

Ao retornar agrave interface de opera-ccedilatildeo pode-se ver que agora haacute um pedido associado agrave cadeia criada Abaixo do pedido uma entrada next start (proacuteximo iniacutecio) mostra a data e hora em que o pedido iniciaraacute Como jaacute passou das 900 am neste exemplo a data eacute amanhatilde Se for usado outro horaacuterio de iniacutecio como o dia primeiro o proacuteximo iniacutecio se-ria nessa data

ControlePara definir o periacuteodo das tarefas cadeias e pedidos eacute possiacutevel esta-belecer um horaacuterio para o iniacutecio de uma tarefa assim como um in-tervalo entre execuccedilotildees (a cada 12 horas por exemplo) Essa segunda

opccedilatildeo natildeo eacute uacutetil no caso de cadeias em que as tarefas precisem seguir uma determinada ordem Poreacutem eacute possiacutevel definir um pedido que seja iniciado diariamente agraves 700 que por sua vez inicie uma cadeia

Haacute tambeacutem definiccedilotildees de tempo como ldquosegundo domingo de cada mecircsrdquo ldquouacuteltimo dia do mecircsrdquo ou ldquoso-mente 8janeiro e 16fevereirordquo

Horaacuterios e intervalos preacute-estabe-lecidos satildeo uacuteteis mas nem sempre eacute possiacutevel saber a priori quando uma tarefa precisaraacute ser realizada No caso daquelas que dependem da existecircncia ou inexistecircncia de algum arquivo eacute possiacutevel definir watch directories (diretoacuterios a ser observados) com regras que aceitam ateacute expressotildees regulares (figura 4)

Pedido proacuteprioDepois de superar as dificuldades iniciais nota-se que o Open Source Job Scheduler eacute um bom produto Com intimidade ele se torna faacutecil de configurar e administrar

A SOS tambeacutem presta um oacutetimo serviccedilo Identifiquei um bug e enviei um patch para um arquivo jar que foi disponibilizado por eles no ser-vidor em menos de um dia Ateacute em uma rede pequena o Open Source Job Scheduler oferece recursos muito uacuteteis Em instalaccedilotildees maiores ele eacute quase indispensaacutevel

Mais informaccedilotildees

[1] Open Source Job Scheduler httpjobschedulersourceforgenet

[2] Driver JDBC para MySQL httpwwwmysqlcomproductsconnector

[3] Software- und Organisations-Service GmbH httpwwwsos-berlincomscheduler

copy Linux New Media do Brasil Editora Ltda

50 httpwwwlinuxmagazinecombr

Faccedila belos graacuteficos via navegador com a API do Google Chart

Graacuteficos via webA API do Google Chart permite desenhar graacuteficos planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simplespor Martin Streicher

Se uma imagem vale mais que mil palavras um graacutefico deve ser algo semelhante a uma no-

vela Em apenas um piscar de olhos um graacutefico pode transmitir o estado do mercado de accedilotildees a tendecircncia de traacutefego em um website a distribui-ccedilatildeo dos eleitores por regiatildeo aleacutem de informar como a verba eacute distribuiacuteda em um orccedilamento familiar Aleacutem dis-so um graacutefico eacute simplesmente mais compreensiacutevel do que uma enorme tabela cheia de nuacutemeros

Poreacutem eacute estranho vermos que muito poucos sites utilizam graacuteficos em seu benefiacutecio Isso acontece em grande parte porque a criaccedilatildeo de graacuteficos requer um software espe-cializado Por exemplo se o site eacute baseado em PHP eacute preciso instalar o pChart [1] adicionar a biblioteca

graacutefica GD e escrever o coacutedigo para produzir algum tipo de graacutefico Ide-almente qualquer um ndash um editor escritor ou mesmo um usuaacuterio adi-cionando comentaacuterios ndash deve ser capaz de criar e embutir graacuteficos em suas paacuteginas

Na verdade o dinamismo a sim-plicidade e a conveniecircncia estatildeo no cerne da interface de programaccedilatildeo de aplicaccedilatildeo (API) Google Chart [2] e talvez essa seja a descriccedilatildeo mais pre-cisa para um Software como Serviccedilo (SaaS) Simplesmente crie uma URL parametrizada como httpchartapisgooglecomchartparacircmetro1ampparacircmetro2ampparacircmetroN e deixe o Google Chart fazer todo o trabalho pesado O Google Chart permite que vocecirc renderize seis tipos de graacuteficos um Google-o-meter um QR code (espeacutecie de coacutedigo de barras) e mapas Aleacutem disso eacute possiacutevel usar praticamente um gugol de opccedilotildees de personalizaccedilatildeo tais como a barra de cores a cor de fundo a legenda e muito mais

Este artigo ajuda nos primeiros passos no uso do Google Chart Vocecirc aprenderaacute a desenhar graacuteficos e adi-cionar efeitos especiais para melhorar suas criaccedilotildees graacuteficas

Elementos de graacuteficosPara gerar um graacutefico com o Google Chart forneccedila o prefixo httpchartapisgooglecomchart o tipo de graacute-

fico (tal como torta ou de linhas) o tamanho do graacutefico seus dados e quaisquer paracircmetros especiacuteficos como as cores e os roacutetulos dos eixos para adequaacute-lo ao resultado final

Todas as opccedilotildees do graacutefico satildeo associadas a pares de valores do tipo chave=valor Algumas chaves satildeo comuns para todos os graacuteficos en-quanto outras satildeo exclusivas para um determinado tipo Da mesma forma a sintaxe para o valor especificado no par tende a variar de acordo com o tipo de graacutefico

O tamanho do graacutefico eacute medido em pixels e especificado com o paracircmetro chs=LxA em que L eacute a largura e A eacute a altura Por exemplo chs=200x100 gera um graacutefico de 200 pixels de lar-gura por 100 pixels de altura A aacuterea de um mapa natildeo pode exceder 440 pixels de largura por 220 de altura Para todos os outros graacuteficos nem a largura nem a altura podem exceder 1000 pixels e a aacuterea maacutexima eacute de 300000 pixels quadrados

O tipo de graacutefico eacute escolhido com o par cht=tipo em que tipo eacute uma das diversas constantes preacute-de-finidas Por exemplo para desenhar um graacutefico de linhas simples com pontos equidistantes do eixo x es-pecifique cht=lc Para cada tipo de graacutefico pode-se consultar a constan-te apropriada na documentaccedilatildeo do Google Chart

TU

TO

RIA

L

Figura 1 Um graacutefico de linha simples produzido pela API do Google Chart

copy Linux New Media do Brasil Editora Ltda

51

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Os dados de um graacutefico podem ser fornecidos em vaacuterios formatos ndash a partir de uma lista de dados brutos simples ateacute uma coleccedilatildeo de coacutedigos alfanumeacutericos para mapear valores de uma escala preacute-definida

Normalmente o conjunto de da-dos brutos eacute constituiacutedo por uma lista de valores separados por viacutergulas e um conjunto de dados codificados eacute uma sequumlecircncia contiacutenua de caracte-res alfanumeacutericos Por exemplo para fornecer dados como texto simples utilize chd=tvalores em que valo-res eacute uma lista de valores de ponto flutuante positivos entre 0 e 100 de-limitados por viacutergula O caractere _ (traccedilo baixo) pode ser usado como um espaccedilo reservado para a falta de um dado Muacuteltiplos conjuntos de dados satildeo delimitados pelo caractere | (pipe ou barra vertical)

Para demonstrar abra um nave-gador e digite a URL httpchartapisgooglecomchartcht=lcampchs=500x400ampchd=t7392079|1515181101612ampchco=FF000000FF00 na barra de endereccedilos Como se pode adivinhar o paracircmetro chco lista os valores RGB para colorir cada gru-po de dados

A figura 1 mostra o exemplo de um graacutefi-co de linha incluindo seus elementos (eixos tiacutetulos e legendas) A URL utilizada para gerar o graacutefico eacute mostrada no exemplo 1 Cada URL mostrada nesse artigo abrange vaacuterias linhas de forma intencional para melhor legibilidade

De forma resumida chtt fornece o tiacutetulo do graacutefico Os dados satildeo fornecidos como valores brutos expres-sos em texto simples mas como os valores satildeo superiores a 100 chds fornece um valor

miacutenimo e um maacuteximo para norma-lizar os dados para um percentual Aqui como os dois conjuntos de dados estatildeo dentro do mes-mo intervalo bastam um valor miacutenimo e um maacuteximo para ambos No entanto se cada um dos conjuntos de dados for traccedilado a partir de uma uacutenica seacuterie eacute preciso fornecer um valor miacutenimo e maacuteximo para cada conjunto O paracircmetro chxt eacute combi-nado com o chxl e com o chxp para criar e posicionar os roacutetulos dos eixos

Acredite ou natildeo desenhar um graacutefico eacute realmente sim-ples Para inserir um graacutefico em um paacutegina web use uma tag img src e defina seu atri-buto src para a URL do graacute-fico Forneccedila uma descriccedilatildeo para o graacutefico por meio do atributo alt

CartografiaDesenhar um mapa com o serviccedilo Google Chart eacute tatildeo simples quanto desenhar qualquer outro graacutefico pri-

meiramente especifique o mape-amento do graacutefico selecione uma regiatildeo do mundo para desenhar e em seguida associe os dados a cada paiacutes proviacutencia ou estado encontrados no mapa Os dados podem ser discretos ndash digamos representar os estados azuis e ver-melhos nos Estados Unidos ndash ou contiacutenuos Aleacutem disso vocecirc pode associar uma cor com o miacutenimo e o maacuteximo em um intervalo e o Google Chart renderiza os valores intermediaacuterios em uma graduaccedilatildeo de cores (degradecirc)

Por exemplo o exemplo 2 gera um mapa dos Estados Unidos mostrando como os estados votaram na eleiccedilatildeo presidencial de 2004 A figura 2 apre-senta os resultados

No exemplo 2 cht=t seleciona o graacutefico de mapa chtm=usa especifica os Estados Unidos como regiatildeo e chs=440x220 desenha o maior mapa

Figura 2 Divisatildeo dos estados em vermelho (republicanos) e azuis (democratas) na eleiccedilatildeo presidencial dos Estados Unidos em 2004

Exemplo 1 Roubo de automoacuteveis na Carolina do Norte

01 httpchartapisgooglecomchart02 cht=lcamp03 chtt=Nuacutemero de automoacuteveis roubadosna NC por mecircs e anoamp04 chs=400x300amp05 chd=t223116582156231823432450258326122522268123262371|06 238119392309224225902642284028372555255824372319amp07 chds=03000amp08 chco=FF00000000FFamp09 chdl=2005|2006amp10 chxt=xyamp11 chxl=0|Jan|June|Dec|1|0|1500|30 00|amp12 chxp=0050100|1050100

Exemplo 2 Estados vermelhos e azuis

01 httpchartapisgooglecomchart02 cht=tamp03 chtm=usaamp04 chs=440x220amp05 chco=FF00000000FF0000FFamp06 chld=CACTDEDCHIILMEMDMAMIMNNHNJNYORPARIVTWAWIamp07 chd=sAAAAAAAAAAAAAAAAAAAA

copy Linux New Media do Brasil Editora Ltda

52 httpwwwlinuxmagazinecombr

TUTORIAL | Google Chart

possiacutevel No graacutefico de mapa chco=FF00000000FF0000FF define as cores padratildeo de cada estado (vermelho)

e a cor de iniacutecio e de final (ambas em azul) do gradiente

O paracircmetro chld conteacutem o coacute-digo de duas letras de cada um dos estados conquistados pelo candidato presidencial democrata Finalmente o paracircmetro chd=s seleciona o es-quema de codificaccedilatildeo simplificada de dados em que todos os valores devem ser representados por um dos caracteres na sequumlecircncia de A-Z a-z e 0-9 sendo A o miacutenimo e 9 o maacuteximo Em outras palavras o es-quema de codificaccedilatildeo simplificada fornece uma granularidade de 62 valores distintos Tendo em conta que todos os estados satildeo coloridos

em vermelho por padratildeo qualquer estado com outro valor ndash aqui A ndash eacute colorido de azul

Quadro 1 Dicas e truques do Google Chart

Essas dicas e truques tornaratildeo seus graacuteficos mais legiacuteveis

Certifique-se de que o tamanho de seu graacutefico eacute su-ficiente para exibir o tiacutetulo os roacutetulos e a legenda da imagem Infelizmente a determinaccedilatildeo da largura miacuteni-ma natildeo tem uma forma algoriacutetmica ndash pode ser preciso utilizar um pouco de tentativa e erro

Para alterar a cor e o tamanho do texto no tiacutetulo do graacute-fico use chts=colorfontsize Aleacutem disso eacute possiacutevel alterar a cor e o tamanho da fonte de um eixo com o roacutetulo chxs Infelizmente natildeo eacute possiacutevel especificar o tipo de fonte

Os quatro eixos satildeo x t y e r ou seja a forma resumi-da para delimitar o eixo inferior x o eixo superior x o eixo agrave esquerda y e o eixo agrave direita y respectivamente Se vocecirc quiser vaacuterios roacutetulos para qualquer eixo repita o nome do eixo no paracircmetro chxt e especifique seus detalhes no chxl

Leia a documentaccedilatildeo da API do Google Chart e dedi-que atenccedilatildeo especial agrave sintaxe de cada opccedilatildeo Mes-mo um erro de um caractere pode tornar um graacutefico ilegiacutevel Por exemplo o paracircmetro chd utiliza a barra vertical para separar cada conjunto de dados dife-rentemente de chds Infelizmente essa natildeo eacute a uacutenica inconsistecircncia na API do Google Chart (o clipping do graacutefico de barras eacute outro) portanto mantenha o manu-al por perto

Antigamente um graacutefico de barras com valores negati-vos e positivos requeria truques para renderizar corre-tamente Agora eacute possiacutevel usar o paracircmetro chp e uma porcentagem para colocar a linha zero a partir de uma distacircncia proporcional da origem sobre o eixo y Os va-lores devem entatildeo ser interpolados para serem rende-rizados adequadamente Por exemplo suponha que o fluxo de caixa da empresa seja (em milhotildees) de -20 -5 1 3 10 Para colocar a linha zero em 05 ou na

metade do caminho para cima do eixo y valores meno-res que 50 seratildeo desenhados ldquoabaixo da linhardquo e todos os valores acima de 100 seratildeo desenhados ldquoacima da linhardquo Para normalizar os dados adicione 50 a todos os valores e plote os novos valores

httpchartapisgooglecomchartcht=bvgampchs=400x400ampchbh=405ampchd=t3045515360ampchp=5ampchm=r00000004955

A figura 5 mostra o graacutefico final

O paracircmetro bvg eacute a constante para o graacutefico do tipo barra vertical e o chd expressa o conjunto de dados normalizado O paracircmetro chp coloca a linha zero a meio caminho acima do eixo y enquanto que o chm eacute uma opccedilatildeo para desenhar uma faixa de marca-ccedilatildeo no graacutefico Os seus paracircmetros satildeo (na ordem) r para um marcador horizontal 000000 para desenhar o marcador em preto 0 que eacute ignorado e 495 e 5 para expressar as margens inferior e superior da faixa de marcaccedilatildeo em termos de proporccedilatildeo sobre o eixo-y Isso porque a linha zero estaacute colocada a 05495 e 5 desenha uma linha bem fina em zero

O paracircmetro chbh especifica a largura de uma barra e o espaccedilo entre cada uma barra Diferentemente de outros tipos de graacuteficos se chbh for grande demais e chs for muito pequeno parte do graacutefico seraacute cor-tada Certifique-se de ajustar o tamanho de um ou todos esses paracircmetros quando estiver desenhando um graacutefico de barras

Exemplo 3 Informaccedilotildees num coacutedigo QR

01 httpchartapisgooglecomchart02 cht=qramp03 chs=200x200amp04 choe=UTF-8amp05 chld=Qamp06 chl=httpwwwlinuxnewmediacombrlmFigura 3 O endereccedilo do site da

revista capturado num coacutedigo QR

copy Linux New Media do Brasil Editora Ltda

53

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] pChart httppchartsourceforgenet

[2] Documentaccedilatildeo do Google Chart httpcodegooglecomapischart

[3] BeeTagg httpwwwbeetaggcom

[4] Zebra biblioteca livre do Google para leitura de coacutedigos de barra httpcodegooglecompzxing

[5] Guia para codificaccedilatildeo de dados em coacutedigos QR httpcodegooglecompzxingwikiBarcodeContents

[6] Gerador simples para o Google Chart httpalmaercomchartmaker

O Google Chart tambeacutem oferece graacuteficos para Aacutefrica Aacutesia Europa Oriente Meacutedio Ameacuterica do Sul e todo o globo

Coacutedigo de barrasNo Japatildeo moderno jovens compar-tilham informaccedilotildees de uma forma digital verdadeiramente inovado-ra eles trocam coacutedigos de barras E agora vocecirc tambeacutem pode O Google Chart fornece uma API para codificar ateacute 4296 caracteres em uma imagem bidimensional e monocromaacutetica chamado QR code ou coacutedigo QR

Para comeccedilar vamos codificar o email da Linux Magazine em um QR code O exemplo 3 mos-tra como a imagem na figura 3 foi criada Ao usar o graacutefico QR choe especifica a codificaccedilatildeo do texto O paracircmetro chld dita o grau de correccedilotildees de erros aplicado agrave ima-gem O valor Q inclui informaccedilotildees duplicadas o suficiente a ponto de 25 da imagem poder ser destruiacuteda sem afetar a legibilidade O paracirc-metro chl eacute o texto a ser codificado geralmente fornecido como uma URL que eacute entatildeo interpretada por um aplicativo

Se vocecirc tem um telefone celu-lar pode baixar gratuitamente o BeeTagg [3] tirar uma fotografia da figura 3 e decodificar os resul-tados para entrar no site da revista

Como uma alternativa o Google oferece gratuitamente uma biblio-teca gratuita para leitura de coacutedigos QR chamada Zebra Crossing [4][5] e um leitor de coacutedigos de barras online experimental que interpreta as imagens recebidas

Um coacutedigo QR pode capturar ateacute 4296 caracteres A figura 4 por exemplo codifica um vCard (cartatildeo de visitas) inteiro

Como vai o coraccedilatildeoA API do Google Chart eacute simples de usar e faacutecil de integrar em apli-caccedilotildees web Conforme mostrado eacute possiacutevel usar a API imediatamente ndash basta inse-rir um link estaacutetico em sua paacutegina web e permitir que o navegador efetue a requisiccedilatildeo e a renderiza-ccedilatildeo de um graacutefico a cada vez que a paacutegina eacute desenhada

Para acelerar a renderizaccedilatildeo da paacutegina vocecirc pode solicitar e efetuar o cache da imagem do graacutefico em seu proacuteprio servidor recriando o graacutefico apenas quando os dados contidos nele forem alterados Aleacutem de proporcionar melhor eficiecircn-cia essa teacutecnica protege melhor os dados brutos Um visitante do site natildeo poderaacute ldquover os fontesrdquo e copiar a URL

Naturalmente tambeacutem eacute pos-siacutevel misturar a API do Google Chart com teacutecnicas AJAX para mo-dificar os graacuteficos dinamicamente em resposta agrave requisiccedilatildeo do usuaacute-rio O Chart Maker [6] eacute uma de-monstraccedilatildeo baacutesica mas efetiva da dinacircmica de graacuteficos outros tecircm usado a API do Google Chart para implementar uma calculadora de empreacutestimos executiva

Naturalmente o Google Chart costuma ser mais lento que as ferra-mentas para geraccedilatildeo de graacuteficos no desktop como o Apple Numbers ou mesmo o Microsoft Excel Estas uti-lizam mecanismos de renderizaccedilatildeo nativos e natildeo requerem consultas

agrave Internet para transmitir dados e baixar um grande graacutefico na forma de uma imagem No entanto o Google Chart eacute um aplicativo gra-tuito que estaacute disponiacutevel em qual-quer lugar Se vocecirc estaacute realmente interessado em utilizar o Google Chart em ambiente de produccedilatildeo o uso de cache pode melhorar o tempo de resposta

Figura 4 Um vCard inteiro represen-tado como coacutedigo QR

Figura 5 Renderizaccedilatildeo de valores positivos e negativos num graacutefico de barras

copy Linux New Media do Brasil Editora Ltda

54 httpwwwlinuxmagazinecombr

Alta disponibilidade em PostgreSQL

Banco cheio mas disponiacutevel

O PostgreSQL natildeo possui embutido um mecanismo para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia por Fernando Ike

O tema alta disponibilida-de abordado na ediccedilatildeo 43 da Linux Magazine [1] eacute

abrangente e envolve vaacuterias aacutereas desenvolvedores administradores de sistemas rede e banco de dados

Geralmente alta disponibilidade em bancos de dados eacute um objetivo mais complexo e criacutetico do que se costuma acreditar Natildeo eacute simples-mente pensar que uma soluccedilatildeo como Oracle RAC garantiraacute disponibili-dade de 100 do banco de dados Para aumentar a disponibilidade eacute necessaacuterio analisar uma seacuterie de variaacuteveis entre elas Se o datacenter tem grupo ge-

rador de energia eleacutetrica Se haacute conexatildeo agrave Internet por

mais de dois links Servidores com fontes redun-

dantes discos etc Circuitos eleacutetricos e rede redun-

dantes Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias de banco de dados Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias dela mesma Se a modelagem permite ins-

tacircncias de banco de dados fi si-camente distantes

Quanto se pode investir Tais variaacuteveis dependem do pro-

jeto em questatildeo ou seja variam de

TU

TO

RIA

L

projeto para projeto Em geral a grande difi culdade para banco de dados eacute o sincronismo das bases de dados entre vaacuterios servidores jaacute que haacute a necessidade de garantir a con-sistecircncia entre eles Aplicaccedilotildees que usam banco de dados para operaccedilotildees somente leitura (como aplicaccedilotildees web por exemplo) tecircm facilidade de trabalhar com vaacuterios servidores de banco de dados usando balan-ceamento de carga Entretanto o mesmo natildeo acontece quando uma aplicaccedilatildeo tem operaccedilotildees de leitu-ra e escrita pois natildeo existe uma soluccedilatildeo defi nitiva uma vez que depende de como a aplicaccedilatildeo foi projetada Uma alternativa seria modelar a aplicaccedilatildeo para acessar um servidor de banco de dados para operaccedilotildees de leituraescrita e os outros servidores para operaccedilotildees de leitura

Para PostgreSQL essa tarefa eacute um pouco mais difiacutecil ndash mas natildeo impossiacutevel ndash pois ofi cialmente exis-tem poucas formas de aumentar sua disponibilidade sem que se use ex-tensotildees ou aplicaccedilotildees de terceiros Existe uma discussatildeo [2] dentro do PostgreSQL Global Development Group para incorporar recursos de replicaccedilatildeo MasterSlave na versatildeo 84 (atualmente em desenvolvimento) e posteriores

PostgreSQL hoje Vejamos o que eacute possiacutevel fazer com o PostgreSQL sem ferramentas de terceiros

Warm Standby usando PITR ( Point-In-Time Recovery ) um servidor pri-maacuterio envia para um ou mais servido-res secundaacuterios os arquivos do WAL ( Write Ahead Log ) que contecircm as modifi caccedilotildees nas bases de dados do servidor primaacuterio Tais arquivos quan-do enviados seratildeo processados pelos servidores secundaacuterios Esse meacutetodo para o PostgreSQL natildeo permite por enquanto que os servidores secundaacute-rios sejam usados para leitura Esses servidores natildeo estaratildeo disponiacuteveis para nenhuma operaccedilatildeo ateacute que haja uma falha no servidor primaacuterio

Em caso de falha no servidor pri-maacuterio falhando a transmissatildeo dos uacuteltimos arquivos do WAL para os servidores secundaacuterios estes perde-ratildeo as uacuteltimas alteraccedilotildees realizadas no servidor primaacuterio Essa perda eacute pequena se comparada agraves estrateacutegias de recuperaccedilatildeo mais comuns para estes tipos de incidentes as quais satildeo becape completo da uacuteltima noite ou recuperaccedilatildeo utilizando os arquivos do WAL A comparaccedilatildeo eacute de alguns segundos usando Warm Standby e de alguns minutos ou horas com recuperaccedilatildeo de becape ou por arquivos do WAL

copy Linux New Media do Brasil Editora Ltda

55

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Compartilhamento de disco usando a mesma aacuterea num equipa-mento remoto (como storage) os servidores poderatildeo ter a aacuterea mon-tada nele mas somente o servidor primaacuterio ou ativo poderaacute ter o serviccedilo do PostgreSQL em execuccedilatildeo O ser-vidor secundaacuterio soacute deve entrar em accedilatildeo em caso de falha do primaacuterio caso contraacuterio haacute o risco de corrom-pimento das bases de dados

Neste meacutetodo numa eventual fa-lha do servidor ativo eacute praticamen-te nula a perda de dados jaacute que as bases de dados estatildeo em um stora-ge Geralmente usa-se NFS como forma de acesso ao storage Uma recomendaccedilatildeo importante ao usar NFS eacute montaacute-lo usando a opccedilatildeo sync (siacutencrono) desabilitar o cache e jamais usar a opccedilatildeo async (assiacuten-crono) jaacute que ela poderaacute corromper as bases de dados do PostgreSQL O recomendaacutevel para esse meacutetodo eacute o uso de SAN (iSCSI AoE etc) em vez de NAS (SMB NFS etc) uma vez que a arquitetura SAN eacute projetada para situaccedilotildees de grande volumes de dados e menor tempo de recuperaccedilatildeo em caso de incidente comparado com NAS

Replicaccedilatildeo por dispositivo de blo-co uma variaccedilatildeo do compartilhamento de disco Quando usado esse recurso o dispositivo de bloco eacute a unidade de replicaccedilatildeo Assim como nos outros meacute-todos natildeo pode haver dois servidores PostgreSQL em execuccedilatildeo ao mesmo tempo O DRBD eacute um software muito popular para essa fi nalidade

Terceiros Existe a possibilidade de se usar ex-tensotildees ou aplicaccedilotildees de terceiros para aumentar a disponibilidade do PostgreSQL em tarefas como repli-caccedilatildeo mestre-escravo middleware de replicaccedilatildeo orientado a sentenccedila e replicaccedilatildeo multimaster assiacutencrona ou siacutencrona

Replicaccedilatildeo mestre-escravo esse meacutetodo envia todas as consultas de

modifi caccedilotildees das bases de dados para o servidor mestre Este envia as mo-difi caccedilotildees que nele ocorreram para o servidor escravo Essas modifi caccedilotildees ocorrem por lote e de forma assiacutencro-na permitindo que se tenha muacuteltiplos servidores escravos O servidor escravo pode responder somente consultas de leitura as quais satildeo ideais para consultas do tipo data warehouse O Slony-1 eacute um exemplo desse tipo de replicaccedilatildeo com granularidade de ta-bela e suporte a muacuteltiplos servidores escravos Em caso de falha no servidor mestre poderaacute haver perda de dados que ainda natildeo foram replicados para o servidor secundaacuterio

Middleware de replicaccedilatildeo orien-tado a sentenccedila programa que intercepta cada consulta SQL e a envia para um ou todos os servido-res Cada servidor opera indepen-dentemente Consultas de leitura e escrita satildeo enviadas para todos os servidores enquanto as consultas somente-leitura podem ser enviadas para qualquer um dos servidores permitindo que o trabalho de leitura seja distribuiacutedo

Se as consultas forem simplesmen-te transmitidas sem modifi caccedilotildees alguns valores especiacutefi cos de cada servidor (como a funccedilatildeo random() e os valores de TIMESTAMP ) teratildeo va-lores diferentes nos servidores Isso ocorre porque cada servidor opera de forma independente e porque as consultas SQL satildeo realizadas em broadcast (e natildeo atuando na modifi caccedilatildeo das colunas) Se isso for inaceitaacutevel o middleware ou aplicaccedilatildeo deve consultar tais valo-res a partir de um servidor e depois usaacute-los para escrever as consultas Exemplos desse tipo de replicaccedilatildeo satildeo o pgpool-II e Sequoia

Replicaccedilatildeo Multimaster Assiacutencro-na para os servidores que natildeo estatildeo regularmente ligados como laptops e servidores remotos manter os da-dos consistentes entre os servidores eacute um desafi o Usando replicaccedilatildeo assiacutencrona multimaster cada servi-dor trabalha com independecircncia e periodicamente se comunica com os outros servidores a fi m de identifi car transaccedilotildees confl itantes Os confl itos podem ser resolvidos pelos usuaacuterios

Figura 1 Soluccedilatildeo de alta disponibilidade do banco de dados proposta

copy Linux New Media do Brasil Editora Ltda

56 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

ou por meio de regras Bucardo eacute um exemplo desse tipo de replicaccedilatildeo

Replicaccedilatildeo multimaster siacutencro-na em replicaccedilatildeo multimaster siacuten-crona cada servidor pode aceitar conexotildees com transaccedilotildees de escrita (como INSERT UPDATE e DELETE) Tais transaccedilotildees satildeo transmitidas a partir do servidor de origem para todos os outros servidores antes de efetivar a transaccedilatildeo Em situaccedilotildees com mui-tas transaccedilotildees isso poderaacute causar bloqueio dos registros degradando consideravelmente a performance Neste tipo de replicaccedilatildeo as transa-ccedilotildees com escrita geralmente satildeo mais lentas do que as feitas em um servi-dor uacutenico Aleacutem de dividir a carga de transaccedilotildees para leitura e escrita como na replicaccedilatildeo mestre-escravo a replicaccedilatildeo multimaster siacutencrona eacute muito usada para balanceamento de carga em alguns casos podendo ha-ver problemas de consistecircncia ao se usar funccedilotildees como random()

Soluccedilatildeo simplesUma soluccedilatildeo muito comum e ba-rata para alta disponibilidade em PostgreSQL eacute o uso de um dispositivo de storage comunicando-se com os

servidores PostgreSQL via NFS (fi-gura 1) A soluccedilatildeo consiste em dois servidores PostgreSQL e Heartbeat Um deles seraacute o primaacuterio e o outro o secundaacuterio O secundaacuterio aguarda-raacute algum problema com o servidor primaacuterio e caso ocorra iniciaraacute o serviccedilo do PostgreSQL assumindo o endereccedilo de rede (VIP) usado para comunicaccedilatildeo com a aplicaccedilatildeo

Essa soluccedilatildeo natildeo foi planejada para que o servidor primaacuterio assuma o controle novamente do ambiente caso retorne a operar pois eacute reco-mendaacutevel verificar a razatildeo do inci-dente corrigir e retornar a operaccedilatildeo ao ambiente num periacuteodo de pouco uso do banco de dados

Haacute alguns pontos importantes nessa soluccedilatildeo Sempre que ocorrer uma atualizaccedilatildeo de seguranccedila no PostgreSQL eacute recomendaacutevel apli-caacute-la a todos os servidores pois natildeo se deve executar uma versatildeo dife-rente do binaacuterio em cada maacutequina Aleacutem disso nesse tipo de soluccedilatildeo de alta disponibilidade natildeo eacute pos-siacutevel haver dois servidores com o serviccedilo PostgreSQL em execuccedilatildeo A disponibilidade eacute garantida pelo armazenamento dos dados no stora-

ge sem necessidade de mecanismos de replicaccedilatildeo de dados externos Por uacuteltimo poliacuteticas de backup devem continuar sendo usadas sem altera-ccedilotildees Caso aconteccedila algum incidente que indisponibilize os dados haveraacute formas de recuperaacute-los

ImplementaccedilatildeoO procedimento de instalaccedilatildeo seraacute dividido por servidores a primeira parte consiste na instalaccedilatildeo do servi-dor primaacuterio e a segunda parte trata do servidor secundaacuterio considerando que um ponto de montagem foi dis-ponibilizado previamente em ambos os servidores em varlibpostgre-sqlstorage

Depois de instalar o pacote do PostgreSQL 83 (versatildeo estaacutevel mais recente) do Debian 50 (Lenny) o di-retoacuterio padratildeo da instalaccedilatildeo do cluster de base de dados[3] eacute o local em que estaacute uma instacircncia do PostgreSQL com seu cataacutelogo de sistema Esse diretoacuterio seraacute movido para o storage usando uma particcedilatildeo NFS montada no servidor o que exige uma parada no serviccedilo do PostgreSQL

Parado o serviccedilo do PostgreSQL mova o diretoacuterio com o cluster de base de dados armazenado local-mente para o diretoacuterio NFS remo-to Depois disso eacute necessaacuterio ainda criar um link simboacutelico para que o serviccedilo inicie corretamente

mv varlibpostgresql83 varlibpostgresqlstorage ln -s varlibpostgresqlstorage83 varlibpostgresql83

Feito isso reinicie o PostgreSQL e crie um arquivo com ajustes de per-formance do PostgreSQL chamado tuningsh em usrlocalsbin (exemplo 1) Esse arquivo conteraacute ajustes de paracirc-metros do kernel Linux para o Postgre-SQL aproveitar melhor os recursos de hardware Seria possiacutevel usar o arquivo etcsysctlconf mas ele natildeo oferece

Exemplo 1 Arquivo tuningsh

01 binbash0203 echo ldquo2rdquo gt procsysvmovercommit_memory0405 kernelshmmax = 447177599906 25 do total da RAM07 echo ldquo17179869184rdquo gt procsyskernelshmmax08 kernelshmmax = 429496729609 echo ldquo17179869184rdquo gt procsyskernelshmall10 echo ldquo300 32500 150 160rdquo gt procsyskernelsem11 echo ldquo65536rdquo gt procsysfsfile-max12 echo ldquodeadlinerdquo gt sysblocksdaqueuescheduler13 echo ldquo16777216rdquo gt procsysnetcorermem_default14 echo ldquo16777216rdquo gt procsysnetcorewmem_default15 echo ldquo16777216rdquo gt procsysnetcorermem_max16 echo ldquo16777216rdquo gt procsysnetcorewmem_max

copy Linux New Media do Brasil Editora Ltda

57

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

a possibilidade de alterar tambeacutem o sistema de arquivos sysfs

Entre os paracircmetros a serem mo-dificados shmmax geralmente deveraacute ser de 25 a 50 do total da memoacute-ria RAM dependendo do tipo de aplicaccedilatildeo e modelagem de dados Nesse caso usamos usamos 50 (16 GB) (linha 7)

Torne o script executaacutevel e crie um link simboacutelico para que ele seja carregado na inicializaccedilatildeo

chmod 0755 usrlocalsbintuningsh ln -s usrlocasbintuningsh etcrcSdS99tuningsh

Em seguida execute-o para efetivar as alteraccedilotildees dos paracircmetros do sis-tema operacional

Ajuste do PostgreSQLCom o sistema operacional pronto eacute hora de ajustar o banco de dados Para isso comece editando o arqui-vo postgresqlconf de acordo com as determinaccedilotildees listen_adresses um asterisco

permite que o PostgreSQL escu-te conexotildees vindas de qualquer rede Ainda eacute necessaacuterio alterar o arquivo pg_hbaconf para que essa alteraccedilatildeo tenha efeito

max_connections nuacutemero total de conexatildeo simultacircneas aceitas pelo PostgreSQL

shared_buffers 20 a 25 do total da memoacuteria RAM

wal_write_delay 500 milisse-gundos

commit_delay 100 checkpoint_segments 128 checkpoint_timeout 30 min checkpoint_completion_

target 07

Exemplo 2 Arquivo postgresqlconf

data_directory = lsquovarlibpostgresql83mainrsquo usar dados em outro diretoacuteriohba_file = lsquoetcpostgresql83mainpg_hbaconfrsquo arquivo de autenticaccedilatildeo por maacutequina (host-based authentication)ident_file = lsquoetcpostgresql83mainpg_identconfrsquo arquivo de configuraccedilatildeo de identexternal_pid_file = lsquovarrunpostgresql83-mainpidrsquo gravar um arquivo extra com o PIDlisten_addresses = lsquorsquo IP(s) para escutarport = 5432 porta (necessaacuterio reiniciar)max_connections = 1000 (necessaacuterio reiniciar)unix_socket_directory = lsquovarrunpostgresqlrsquo (necessaacuterio reiniciar)ssl = false (necessaacuterio reiniciar)shared_buffers = 12GB miacutenimo=128 kB maacuteximo=max_connections16kBmax_fsm_pages = 204800 miacutenimo=max_fsm_relations16 6 bytes cadafsync = on (des)ativa sincronizaccedilatildeo forccediladawal_sync_method = open_sync o padratildeo eacute a primeira opccedilatildeofull_page_writes = on recuperar-se de gravaccedilotildees de paacutegina parciaiswal_writer_delay = 500ms 1-10000 milissegundoscommit_delay = 100 0-100000 em microssegundoscheckpoint_segments = 128 em segmentos de logfile miacutenimo=1 16MB cadacheckpoint_timeout = 30min 30s-1hcheckpoint_completion_target = 07 duraccedilatildeo do alvo do checkpoint 00 - 10effective_cache_size = 48GBdatestyle = lsquoiso dmyrsquolc_messages = lsquopt_BRUTF-8rsquo locale para mensagens de erro do sistemalc_monetary = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo monetaacuterialc_numeric = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo numeacutericalc_time = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo de tempodefault_text_search_config = lsquopg_catalogportuguesersquo

Exemplo 3 Arquivo pg_hbaconf

local all postgres md5local all all md5host all all 12700132 md5host all all 1128 md5host intportal portal 192168103032 md5

copy Linux New Media do Brasil Editora Ltda

58 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

effective_cache_size 75 da memoacuteria RAM

Poreacutem tenha em mente que conforme a base de dados cresce esses e outros paracircmetros do ar-quivo de configuraccedilatildeo precisaratildeo ser alterados

O exemplo 2 mostra o conteuacutedo do arquivo postgresqlconf apoacutes sua ediccedilatildeo

No arquivo pg_hbaconf altere as poliacuteticas de acesso conforme a poliacutetica da instituiccedilatildeo ativando ou desativando a criptografia definindo quais redes podem acessar o banco etc No exemplo 3 o arquivo permite que o usuaacuterio portal acesse a base de dados intportal com o endereccedilo de rede 192168103032 usando cripto-grafia MD5

Para efetivar as al-teraccedilotildees reinicie o PostgreSQL

HeartbeatO hearbeat eacute tido por muitos como si-nocircnimo de alta dis-ponibilidade mas eacute apenas um meio para esse fim e a soluccedilatildeo para alta disponibi-lidade de bancos de dados PostgreSQL proposta neste artigo o utiliza

Apoacutes instalar o pa-cote do heartbeat na distribuiccedilatildeo usada no servidor adicione ao arquivo etchosts os nomes e IPs dos ser-vidores primaacuterio e se-cundaacuterio No exem-plo deste artigo esses valores satildeo

1921681010 pgprimario1921681011 pgsecundario

O arquivo de con-figuraccedilatildeo do heart-beat pode se localizar em etchad ou em etcheartbeat O exemplo 4 mostra o conteuacutedo do arquivo hacf que deve resi-dir no diretoacuterio usa-do pela distribuiccedilatildeo

em questatildeo cujas opccedilotildees tecircm os seguintes efeitos logfacility executar o heart-

beat como serviccedilo logfile local onde seraacute gravado

o registro de atividades do heart-beat

keepalive intervalo de tempo de comunicaccedilatildeo entre os noacutes

deadtime intervalo de tempo para que heartbeat reconheccedila um noacute como morto

bcast forma de comunicaccedilatildeo en-tre os servidores hearbeat neste caso com uma placa exclusiva para comunicaccedilatildeo (eth1)

ping checa se o IP virtual estaacute no ar

auto_failback caso o servi-dor primaacuterio saia do ar quan-do voltar ele natildeo tentaraacute assu-mir como servidor principal no cluster

respawn hacluster usrlibheart-beatipfail serviccedilo do heartbeat para trocar o IP Virtual em caso de falha no noacute principal

Ainda no diretoacuterio de configu-raccedilatildeo do heartbeat crie o arquivo haresources Eacute nesse arquivo que o heartbeat procuraraacute os serviccedilos que precisam ser executados no cluster Tais serviccedilos satildeo scripts que podem ou natildeo ter paracircmetros e estatildeo loca-lizados em etchadresourced Acrescente ao arquivo haresources o seguinte conteuacutedo

pgprimario IPaddr192168105pgprimario PostgreSQL

O paracircmetro IPaddr adiciona o en-dereccedilo de rede virtual (VIP) ao clus-ter e PostgreSQL controla o Postgre-SQL no heartbeat Esse script natildeo eacute distribuiacutedo oficialmente e pode ser personalizado conforme a necessida-de do ambiente

Crie tambeacutem o arquivo authkeys para abrigar a senha (criptografada com SHA1) necessaacuteria agrave comunica-

Exemplo 5 Script PostgreSQL do heartbeat

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 case $1 in07 start)08 etcinitdpostgresql-83 start09 sleep 210 check_pgsqlsh amp11 exit 012 13 14 stop)15 etcinitdpostgresql-83 stop16 kill $(ps a|grep check_pgsql|awk lsquo print $1 rsquo|head -n 1)17 exit 018 19 )20 21 esac

Exemplo 4 Arquivo hacf

logfacility daemonlogfile varloghalognode pgprimario pgsecundariokeepalive 2deadtime 10bcast eth1ping 192168105auto_failback offrespawn hacluster usrlibheartbeatipfail

copy Linux New Media do Brasil Editora Ltda

59

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

ccedilatildeo entre os noacutes do heartbeat Para criar a senha use algo como

echo ldquosuasenhardquo | sha1sum2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53 -

Adicione esse hash ao arquivo authkeys da seguinte forma

auth 11 sha1 2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53

Em seguida altere as permis-sotildees do arquivo para 600 para que somente o usuaacuterio root possa ler e escrever nele

No diretoacuterio etchadresourced ficam os scripts de interaccedilatildeo dos ser-viccedilos do heartbeat Crie nele o script PostgreSQL referenciado no arquivo haresources que criamos antes com o conteuacutedo mostrado no exemplo 5 Esse arquivo tambeacutem precisaraacute ter suas permissotildees alteradas mas dessa vez para permitir que ele seja executado Portanto recomenda-se usar 755 como permissotildees

Crie tambeacutem um script (usrlo-calsbincheck_pgsqlsh) para verificar se o PostgreSQL continua no ar de acordo com o exemplo 6 Esses satildeo os significados das variaacuteveis HOST endereccedilo de rede do ser-

vidor USER usuaacuterio do PostgreSQL DB banco de dados a ser usado TEST tipo de consulta que serviraacute

como teste REPEAT nuacutemero de repeticcedilotildees do

teste ateacute considerar o servidor como inativo

OTHER endereccedilo de rede do ser-vidor secundaacuterio

Apoacutes tornar esse script executaacutevel eacute necessaacuterio novamente reiniciar o PostgreSQL e o proacuteprio heartbeat Com isso fica concluiacuteda a confi-guraccedilatildeo do servidor PostgreSQL primaacuterio

Servidor secundaacuterioPara o servidor secundaacuterio seratildeo repe-tidos os mesmos passos da instalaccedilatildeo e configuraccedilatildeo do servidor primaacuterio

poreacutem com certas diferenccedilasDepois de instalar o pacote do

PostgreSQL 83 pare o serviccedilo deste e apague o diretoacuterio varlibpostgre-

Exemplo 6 Script check_pgsqlsh no servidor primaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101008 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101114 15 check()16 17 while true18 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull19 if [ $ -eq 0 ]20 then21 break22 do23 sleep 224 25 if [ $COUNTER -eq $REPEAT ]26 then27 etcinitdpostgresql-83 stop28 etcinitdheartbeat stop29 else30 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull31 if [ $ -eq 0 ]32 then33 COUNTER=rdquo1rdquo34 else35 let COUNTER=$COUNTER+136 fi37 fi38 39 done40 fi41 42 43 check

copy Linux New Media do Brasil Editora Ltda

60 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

Exemplo 7 Script check_pgsqlsh no servidor secundaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101108 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101014 15 16 check()17 18 while true19 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull20 if [ $ -eq 0 ]21 then22 break23 do24 sleep 225 26 if [ $COUNTER -eq $REPEAT ]27 then28 etcinitdpostgresql-83 stop29 etcinitdheartbeat stop30 else31 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull32 if [ $ -eq 0 ]33 then34 COUNTER=rdquo1rdquo35 else36 let COUNTER=$COUNTER+137 fi38 fi39 40 done41 fi42 43 44 check

sql83 pois ele usaraacute quando ativo o mesmo cluster de base de dados do servidor primaacuterio que estaacute arma-

zenado no storage Esse passo eacute o primeiro em que os procedimentos dos dois servidores diferem

Com o diretoacuterio apagado eacute ne-cessaacuterio criar um link simboacutelico para que o serviccedilo inicie correta-

mente quando for solicitado pelo heartbeat

ln -s varlibpostgresqlstorage83 varlibpostgresql83

Assim como no servidor primaacuterio crie um arquivo tuningsh com ajustes de per-formance para o PostgreSQL em usrlocalsbin Como os servidores tecircm hardwares semelhantes usaremos os mesmos ajustes de perfor-mance (exemplo 1) Apoacutes salvar o script crie um link simboacutelico para que ele seja carregado ao iniciar os servi-ccedilos do servidor

ln -s usrlocalsbintuningsh etcrcSdS99tuningsh

Execute o script receacutem-criado para efetivar as mo-dificaccedilotildees dos paracircmetros do sistema operacional

Diferentemente do servi-dor primaacuterio natildeo seratildeo neces-saacuterias alteraccedilotildees aos arquivos postgresqlconf e pg_hbaconf pois os arquivos usados seratildeo os mesmos

Assim como no servidor primaacuterio instale o heartbeat e acrescente as seguintes linhas ao arquivo etchosts

1921681011 pgprimario1921681010 pgsecundario

Note que os IPs satildeo inver-tidos com relaccedilatildeo ao con-teuacutedo do arquivo no servidor primaacuterio

Em seguida crie o arquivo de configuraccedilatildeo etchad

copy Linux New Media do Brasil Editora Ltda

61

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] Linux Magazine 43 httplnmcombrissuelm_43_alta_disponibilidade

[2] Discussatildeo no PGDG sobre replicaccedilatildeo httparchivespostgresqlorgpgsql-hackers2008-05msg00913php

[3] Criaccedilatildeo de clusters PostgreSQL httpwwwpostgresqlorgdocs83interactivecreating-clusterhtml

hacf de acordo com o exemplo 4 e etchadharesources com conteuacutedo igual ao do servidor primaacuterio

pgprimario IPaddr192168105pgprimario PostgreSQL

Todos os procedimentos com o arquivo etchadauthkeys tambeacutem devem ser repetidos assim como os do script etchadresourcedPostgreSQL (exemplo 5) O script diferente entre os servidores primaacute-rio e secundaacuterio eacute o check_pgsqlsh em usrlocalsbin (exemplo 7) pois os valores das variaacuteveis HOST e OTHER devem ter seus valores troca-dos entre si

Ao final no entanto o mesmo procedimento do servidor primaacuterio eacute necessaacuterio permitir a execuccedilatildeo dos scripts criados e reiniciar o Postgre-SQL e o heartbeat

ConsideraccedilotildeesAs atualizaccedilotildees de seguranccedila deveratildeo ser realizadas em ambos os servido-res com diferentes procedimentos para cada No servidor que estiver ativo no cluster deve-se atualizar conforme a liberaccedilatildeo de novas ver-sotildees do pacote do PostgreSQL e os procedimentos de atualizaccedilatildeo da distribuiccedilatildeo em uso Eacute recomendaacute-vel para ambos os servidores fazer a atualizaccedilatildeo em um horaacuterio de pou-co uso ou numa parada programada para manutenccedilatildeo

As atualizaccedilotildees de seguranccedila no servidor secundaacuterio precisam de atenccedilatildeo pois distribuiccedilotildees baseadas em Debian reiniciam o serviccedilo do PostgreSQL Nesse caso esse rei-niacutecio pode afetar o funcionamento do servidor primaacuterio Para contornar esse problema podemos alterar a permissatildeo do arquivo etcinitdpostgresql-83 antes de atualizar o pacote do PostgreSQL

chmod 000 etcinitdpostgresql-83

Depois de atualizar o pacote basta retornar o pacote agraves permis-sotildees anteriores (e corretas para a operaccedilatildeo)

chmod 755 etcinitdpostgresql-83

O quadro 1 oferece ajuda caso ocorra algum problema com o storage durante a operaccedilatildeo do cluster

ConclusatildeoUma soluccedilatildeo de alta disponibilidade como essa natildeo elimina a necessidade de uma poliacutetica de becape e proce-dimentos de melhora contiacutenua de performance O becape pode ser res-taurado a partir de qualquer maacutequina na soluccedilatildeo de alta disponibilidade desde que elas estejam com o serviccedilo do PostgreSQL em execuccedilatildeo Novos procedimentos de becape podem ser adotados como armazenamento dos logs diaacuterios como complemento da poliacutetica existente

O aumento da disponibilidade do banco de dados natildeo significa aban-donar as poliacuteticas de contingecircncia e becape Tambeacutem eacute necessaacuterio plane-jar o aumento da disponibilidade de todo o ambiente (aplicaccedilatildeo e banco de dados) Natildeo desconsidere o uso de storages com iSCSI ou fibra oacutetica para melhor performance

Quadro 1 Problemas no storage

Em caso de problemas no storage o melhor eacute recriar o cluster de banco de dados com o comando initdb e restaurar seu conteuacutedo a partir do becape Dependendo do incidente pode-se optar por criar o cluster localmente ou em outro storage Caso seja local eacute possiacutevel criar um cluster provisoacuterio ateacute que o storage volte a ficar disponiacutevel para o servidor

O comando para isso eacute

pg_createcluster -u postgres -d varlibpostgresqlprovisorio --start-conf=auto 83 provisorio

e suas opccedilotildees satildeo

-u usuaacuterio que seraacute usado pelo cluster

-d diretoacuterio onde ficaraacute o cluster

--start-conf= opccedilatildeo para acrescentar a etcinitdpostgresq-83 o iniacutecio do cluster que estaacute sendo acrescentado

83 versatildeo instalada do PostgreSQL

provisorio identificaccedilatildeo do novo cluster

copy Linux New Media do Brasil Editora Ltda

62 httpwwwlinuxmagazinecombr

Integraccedilatildeo de dados com o ETL Talend

O talento do Talend Quem procura uma soluccedilatildeo ETL para Business Intelligence natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda por Miguel Koren OrsquoBrien de Lacy

Um dos componentes essen-ciais de uma soluccedilatildeo para a inteligecircncia de negoacutecios (BI

ndash Business Intelligence ) eacute o moacutedulo de integraccedilatildeo de informaccedilotildees de di-versas fontes de dados Felizmente o mercado de Software Livre e de coacutedigo aberto oferece algumas so-luccedilotildees bastante completas que satildeo usadas dentro dos pacotes de BI ou em modo stand alone As soluccedilotildees de integraccedilatildeo de dados satildeo conheci-das como ETL ( Extract Transform Load ) pois a missatildeo dessas soluccedilotildees eacute integrar informaccedilotildees e preparaacute-las para a formaccedilatildeo de tabelas no data mart Normalmente os dados precisam ser manipulados depois de obtidos e logo inseridos nas tabelas dos bancos de dados em que reside o data mart Ou seja estamos falando em obter os dados aplicar regras de negoacutecios da empresa facilitar as consultas pos-teriores ou validar a qualidade dos dados e entregaacute-los transformados ao destino fi nal Dentre as transfor-maccedilotildees normalmente aplicadas aos dados podemos destacar a seleccedilatildeo de campos importantes para a anaacutelise a fi ltragem dos registros necessaacuterios a limpeza dos dados (ldquoSrrdquo ou ldquoSe-nhorrdquo passam a valer ldquoSrdquo) a geraccedilatildeo dos campos calculados (por exemplo ldquovalor nf = quantidade valor unitaacute-riordquo) etc Mas essas soluccedilotildees tambeacutem podem ser consideradas integradores e manipuladores de dados para outras

necessidades podendo substituir mui-tos sistemas de ldquointerfacesrdquo de dados que satildeo desenvolvidos pelas aacutereas de TI de grandes empresas

Originalmente os sistemas cor-porativos foram desenvolvidos de forma isolada para cumprir alguma funccedilatildeo especiacutefi ca natildeo sendo parte do objetivo de projeto a necessidade de compartilhar dados Quando a quan-tidade desses sistemas comeccedilou a ser mais importante dentro das empresas surgiram as primeiras necessidades de integraccedilatildeo de dados como a carga de pedidos aos sistemas de estoque e fatu-ramento Tais necessidades de integra-ccedilatildeo foram implementadas diretamente por programas ou scripts especiacutefi cos Com a crescente complexidade das integraccedilotildees requeridas iniciou-se um encarecimento do desenvolvimento desses processos Os sistemas tinham manutenccedilatildeo complexa e as loacutegicas de integraccedilatildeo difiacuteceis de documentar auditar e entender Por isso as em-presas comeccedilaram a implementar ferramentas prontas ou semi-pron-tas para essa necessidade Essa foi a origem dos sistemas ETL

Esses sistemas poreacutem natildeo pos-suem a popularidade que merecem em razatildeo de certos fatores que impe-dem sua adoccedilatildeo Entre estes fatores devemos destacar Custo inicial Complexidade no uso com curva de

aprendizado muito empinada

Escalabilidade a necessidades de integraccedilotildees pequenas

A empresa Talend eacute fabricante

do Talend Open Studio [1] apre-sentado como ldquoo sistema ETL mais abrangente no mercado de software livre e coacutedigo abertordquo O modelo de negoacutecios da empresa eacute um dos claacutes-sicos para Software Livre A empresa desenvolve um produto que licencia sem custo usando licenciamento em modalidade livre no caso a GPL [2] e oferece serviccedilos e suporte co-merciais O software licenciado sob a GPL natildeo possui todos os compo-nentes que satildeo oferecidos a clientes sob o licenciamento de subscriccedilatildeo do serviccedilo mas mesmo dessa forma eacute extremamente uacutetil para as neces-sidades ETL de qualquer empresa O Talend Open Studio foi liberado no mercado em 2005 pela empresa Talend com bases na Franccedila paiacutes com uma poliacutetica ofi cial de apoio a Software Livre e Coacutedigo Aberto Analistas de TI como Forrester Rese-arch [3] IDC [4] e Bloor Research [5] posicionam o Talend como o melhor sistema para necessidades de integraccedilatildeo de dados O sistema BI em software livre SpagoBI [6] [7] eacute um exemplo de uso do Talend como seu componente ETL padronizado

O modelo de Software Livre eacute bem apropriado para esse tipo de soluccedilatildeo pois faz bom uso de desen-

AN

AacuteLIS

E

AN

AacuteLIS

E

copy Linux New Media do Brasil Editora Ltda

63

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

volvimento colaborativo em que muitas pessoas contribuem com moacutedulos para conexotildees a fontes de dados variadas Mas o sucesso do Talend tambeacutem mostra que o Software Livre natildeo eacute apenas bem sucedido em soluccedilotildees ldquocomoditiza-dasrdquo como sistemas operacionais e utilitaacuterios de infra-estrutura O Talend mostra que uma soluccedilatildeo livre pode ser muito atrativa num mercado novo em formaccedilatildeo com-petindo com sistemas proprietaacuterios de grandes empresas como IBM SAS e SAP as quais tecircm preccedilos de licenciamento de niacutevel corporativo Empresas como Oracle e Microsoft tambeacutem competem nesse mercado poreacutem com uma visatildeo mais restrita focada nos produtos de base de cada uma banco de dados Oracle e SQL Server respectivamente

Um forte apelo do Talend eacute a disponibilidade de uma ferramenta abrangente em que os proacuteprios usuaacute-rios da informaccedilatildeo podem modelar as regras de negoacutecios (fontes de dados campos requeridos regras de trans-formaccedilatildeo etc) para a integraccedilatildeo dos dados Hoje a aacuterea de TI de qualquer

empresa tem diariamente mais e mais dados e os usuaacuterios tecircm necessida-des de visualizaccedilatildeo que satildeo mais urgentes a cada dia Assim eacute muito uacutetil que os proacute-prios usuaacuterios possam usar o sistema de for-ma natildeo teacutecnica para especificar as regras de integraccedilatildeo

Recurso e TecnologiaO Talend eacute um sistema desenvolvi-do em Java que usa uma arquitetura modular formada por Gerenciador graacutefico de negoacutecios

(visatildeo natildeo teacutecnica de necessida-des de fluxo de dados)

Gerenciador graacutefico de proces-sos ETL

Gerenciador de metadados (repositoacuterio para reutilizaccedilatildeo de objetos)

Repositoacuterio de processos (moacutedulo adicional da versatildeo comercial)

Interface web services a proces-sos ETL

Monitor de processos Componentes modulares (atu-

almente mais de 400) Usando a API do sistema podem ser desenvolvidos componentes personalizados

O gerenciador graacutefico de processos ETL roda dentro do ambiente Eclipse [8][9] seguindo a filosofia de inte-graccedilatildeo de ferramentas dentro desse ambiente para desenvolvimento

Normalmente os primeiros trecircs moacutedulos satildeo usados na ordem listada O gerenciador de negoacutecios eacute usado pelos usuaacuterios do sistema enquanto o gerenciador de processos ETL e o gerenciador de metadados satildeo usados pelos programadores Mesmo que o repositoacuterio de projetos ETL com apoio a equipes de trabalho seja um componente oferecido comer-cialmente o Talend Open Studio inclui a possibilidade de versio-

namento do desenvolvimento dos processos A figura 1 mostra o uso desse recurso

O Talend eacute um sistema ldquogera-dor de coacutedigordquo em oposiccedilatildeo a um sistema de ldquocaixa pretardquo ndash a qual eacute responsaacutevel pela execuccedilatildeo dos pro-cessos ETL ndash ou seja o Talend natildeo requer um servidor de execuccedilatildeo de processos ETL A vantagem da gera-ccedilatildeo de coacutedigo eacute que eacute mais simples integrar os processos ETL dentro de outros aplicativos e os modelos satildeo de portabilidade muito mais flexiacutevel Aleacutem de sistemas como SpagoBI o

Figura 1 Gerenciamento de versotildees

Figura 2 Tela de iniacutecio do Talend

copy Linux New Media do Brasil Editora Ltda

64 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

Talend eacute integrado em sistemas de empresas como Ingres Teradata e JasperSoft O mecanismo de geraccedilatildeo de coacutedigo permite a integraccedilatildeo do coacutedigo gerado pelo Talend dentro de outras soluccedilotildees aleacutem de ter maior portabilidade Outra vantagem de mecanismos de geraccedilatildeo de coacutedigo eacute que mecanismos de integraccedilatildeo ldquoonlinerdquo conhecidos hoje como ldquointegraccedilatildeo operacionalrdquo podem ser implementados com maior fa-cilidade O conceito de geraccedilatildeo de coacutedigo versus ldquocaixa pretardquo de exe-cuccedilatildeo dos processos ETL eacute a maior diferenccedila entre o Talend e muitos outros sistemas O conceito de ge-raccedilatildeo de coacutedigo natildeo foi popular no passado possivelmente por causa do marketing das empresas comerciais destas soluccedilotildees mas as vantagens que o Talend apresenta usando este conceito satildeo importantes

No caso o Talend gera coacutedigo Java ou Perl e SQL para os proces-sos ETL Aleacutem de aplicar o conceito ETL ele aplica tambeacutem o conceito ELT (Extract Load Transform) o que significa que pode aproveitar a eficiecircncia e performance nativas de bancos de dados SQL ou seja os dados satildeo extraiacutedos carregados no destino e somente depois jaacute den-tro do banco de destino eacute aplicada a loacutegica de transformaccedilatildeo usando SQL e linguagem procedural de

cada banco de dados Para a funcio-nalidade ELT satildeo suportados nati-vamente hoje os bancos de dados Oracle MySQL e Teradata

OperaccedilatildeoO sistema estaacute disponiacutevel em versotildees para Linux Unix e Windows Para todas as plataformas eacute necessaacuterio ter Java e Perl no equipamento considerando seu conceito de de-senho que eacute de geraccedilatildeo de coacutedigo ou seja que os processos do Talend satildeo executados pela maacutequina vir-tual Java (JVM) ou pelo interpre-tador Perl

O download do sistema ainda eacute relativamente pesado (235 MB) mas com conexotildees de banda larga cada dia mais confiaacuteveis e raacutepidas pode ser feito em poucas horas Neste artigo exploraremos o Ta-lend Open Studio para Linux em ambiente graacutefico Gnome rodando em OpenSUSE 102 No caso de usaacute-lo em Windows 2000 existe um preacute-requisito adicional que eacute a instalaccedilatildeo do GDI requerido pelo Eclipse [10] A partir do Windows XP essa biblioteca estaacute incluiacuteda nativamente Vale a pena fazer o download tambeacutem do pacote com-pleto de documentaccedilatildeo Referente ao produto e agrave documentaccedilatildeo o Talend apresenta as vantagens de suporte por uma empresa comercial pois a documentaccedilatildeo eacute bastante comple-ta Outro destaque importante do Talend eacute o acesso a um sistema de ajuda online muito completo In-felizmente isso ainda natildeo eacute norma na maioria dos sistemas de coacutedigo aberto O site do Talend oferece um wiki e uma aacuterea de tutoriais

Simplesmente descompacte o pacote obtido por download e atri-bua propriedades de executaacutevel ao binaacuterio de iniacutecio do sistemaFigura 4 Geraccedilatildeo de um novo projeto

Figura 3 Definiccedilatildeo de repositoacuterio local inicial

copy Linux New Media do Brasil Editora Ltda

65

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

chmod a+x TalendOpenStudio-linux-gtk-x86

Selecione o binaacuterio de iniacutecio apropriado para sua arquitetura de CPU Para iniciar o gerenciador de processos execute o binaacuterio

TalendOpenStudio-linux-gtk-x86 amp

Isso exibiraacute a tela de abertura do sistema (figura 2)

Leia e aceite o contrato de licen-ciamento Apareceraacute finalmente a tela de conexatildeo ao repositoacuterio de processos ETL (figura 3) No caso do Talend Open Studio o repositoacuterio somente poderaacute ser local

Com o repositoacuterio local defini-do gere um projeto novo selecio-nando Create a new local project (figura 4)

Ao definir o tiacutetulo e a descriccedilatildeo do projeto deve-se selecionar tambeacutem a linguagem de geraccedilatildeo do coacutedigo No exemplo para o artigo escolhemos coacutedigo em Java A figura 5 mostra as opccedilotildees de definiccedilatildeo do projeto

Finalmente jaacute se pode entrar no projeto escolhido pela tela principal bastando selecionar nela o projeto e pressionar o botatildeo open Apoacutes alguns momentos apareceraacute a tela principal do sistema Na primeira vez seraacute pedido ao usuaacuterio que re-

gistre o uso digitando seu email e selecionando o paiacutes Este passo natildeo eacute obrigatoacuterio mas eacute recomendado para receber notificaccedilotildees de novas versotildees do sistema

Antes de usar o Talend Open Stu-dio deve ser configurada a lista de elementos disponiacuteveis para o dese-nho Isso pode ser feito modifican-do-se as propriedades do projeto na

opccedilatildeo de ldquopalette settingsrdquo A figura 6 mostra a inclusatildeo de conectores para MS SQL Server e PostgreSQL que devem ser selecionados no caso de precisarmos desenhar um processo de integraccedilatildeo de dados entre estes dois bancos de dados

O desenho de um processo ETL requer vaacuterias etapas incluindo de-senho dos componentes de negoacute-cios dos jobs de processamento de conexotildees JDBC acoplamento de moacutedulos de processamento e outros elementos A figura 7 mostra um exemplo de configuraccedilatildeo de cone-xatildeo JDBC ao banco Microsoft SQL Server O driver JDBC utilizado vem junto com a instalaccedilatildeo do Talend no caso o excelente JTDS [11] A figura 8 mostra a tela do Talend Open Studio com a visatildeo da paleta de fer-ramentas componentes tratados e a ediccedilatildeo de um elemento de negoacutecios (business object)

Aleacutem das possibilidades de desen-volvimento loacutegico da soluccedilatildeo dentro do ambiente graacutefico o Talend oferece

Figura 5 Detalhes de um novo projeto ETL

Figura 6 Formaccedilatildeo da lista de ferramentas

copy Linux New Media do Brasil Editora Ltda

66 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

ferramentas para preparar diagramas formatados para necessidades de documentaccedilatildeo e apresentaccedilatildeo Por exemplo podem ser escolhidas as fontes as cores e os estilos de linhas para os objetos do diagrama aleacutem de haver a possibilidade de alinhamen-to numa grade e a opccedilatildeo de layout automaacutetico dos componentes

Entre as caracteriacutesticas que mais flexibilidade oferecem ao Talend estaacute a biblioteca de componentes Esses componentes estatildeo divididos em grupos funcionais em que os de maior utilidade para uso corporativo podem ser os componentes prepa-rados para acesso a outros sistemas tais como SugarCRM Salesforce e SAP O Talend apresenta um des-taque no mercado ao oferecer um conector ao SAP A figura 9 mostra alguns componentes do Forge do sistema que podem ser baixados e instalados para aumentar a funcio-nalidade padratildeo do Talend

Um destaque do mecanismo de componentes do Talend eacute a possibili-dade de publicar os processos automa-ticamente por exemplo no servidor de BI SpagoBI Outro componente de uso geral e que incrementa em

muito a complexi-dade de processos que podem ser de-finidos eacute o executor de scripts em Groo-vy Aleacutem de poder desenvolver com-ponentes especiacutefi-cos a possibilidade de gerar scripts em Groovy para trata-mento avanccedilado dos dados permite que as transforma-ccedilotildees sigam regras muito especiais da empresa A figura 10 mostra a definiccedilatildeo de integraccedilatildeo com o SpagoBI

Vale a pena des-tacar algumas ca-

racteriacutesticas conceituais do editor graacutefico que satildeo importantes para uso corporativo do Talend Os desenhos satildeo versionados

com a data de cada versatildeo Cada objeto dos modelos re-

cebe um estado que pode ser ldquonatildeo verificadordquo ldquoverificadordquo ou ldquovalidadordquo por default no caso

dos business objects Entretan-to podem ser definidos outros estados usados na empresa

Existe uma aacuterea em cada proje-to para reunir a documentaccedilatildeo que pode conter objetivos justi-ficativas exemplos de resultados desejados etc O Talend tambeacutem gera documentaccedilatildeo teacutecnica e de processo automaticamente

Separaccedilatildeo de papeacuteis entre usuaacute-rios de negoacutecios que descrevem suas necessidades a niacutevel macro (definindo business objects) e desenvolvedores (definindo jobs e outros elementos)

Notificaccedilatildeo ou atualizaccedilatildeo au-tomaacutetica do sistema quando disponibilizadas novas versotildees Talend ou dos componentes

Facilidade para execuccedilatildeo de testes individuais e integrados de componentes

Importaccedilatildeo e exportaccedilatildeo de pro-jetos completos ou elementos

O Talend eacute um sistema muito completo com o apoio de uma empresa comercial um ecossiste-ma de componentes muito amplo e com um ambiente de definiccedilatildeo

Figura 7 Definiccedilatildeo de conexatildeo JDBC

Figura 8 Tela do Talend Open Studio

copy Linux New Media do Brasil Editora Ltda

67

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

e desenvolvimento faacutecil de usar aleacutem de poderoso e visualmente atraente Assim o projeto pode re-solver a questatildeo relatada no iniacutecio do artigo sobre os motivos da falta de popularizaccedilatildeo de sistemas ETL no mercado

ConclusatildeoHoje qualquer empresa tem ne-cessidades de ETL e integraccedilatildeo de dados e em muitos casos eacute caro e complexo desenvolver soluccedilotildees caseiras especiacuteficas O Talend apre-senta uma soluccedilatildeo flexiacutevel com a qual estes processos podem ser

modelados e executados de forma confiaacutevel Podem ser definidos e documentados com a participaccedilatildeo dos usuaacuterios que satildeo os principais interessados no resultado final Naturalmente esse tipo de divisatildeo de atividades ou responsabilidades requer que todos os usuaacuterios in-dependentemente do papel que desempenham no sistema sejam devidamente treinados Em TI eacute cada vez mais comum haver situ-accedilotildees em que os sistemas satildeo sim-ples e poderosos para usar mas os usuaacuterios devem ser treinados nos princiacutepios da tecnologia apresen-

tada Quem usa o Talend deveraacute estar ciente da documentaccedilatildeo em inglecircs ou em francecircs aleacutem do uso do sistema em inglecircs

O uso do Talend dentro de uma empresa eacute facilitado pelas caracte-riacutesticas corporativas do sistema que permitem entre outras possibilida-des ter alta produtividade e visibi-lidade dos processos pelo apoio a componentes especiacuteficos tais como conectores SAP Salesforce ou cus-tomizados e geraccedilatildeo de documen-taccedilatildeo Provavelmente seraacute difiacutecil encontrar um caso de uso que natildeo possa ser atendido com comodidade pelo Talend

Mais informaccedilotildees

[1] Talend httpwwwtalendcom

[2] GPL versatildeo 2 httpwwwgnuorglicensesold-licensesgpl-20html

[3] Forrester Research httpwwwforrestercom

[4] IDC httpwwwidccom

[5] Bloor Research httpwwwbloor-researchcom

[6] SpagoBI httpspagobiengit

[7] Miguel KO de Lacy ldquoNegoacutecio inteligenterdquo httpwwwlnmcombrarticle1747

[8] Eclipse httpwwweclipseorg

[9] Linux Magazine 36 ndash Eclipse httpwwwlnmcombrissue1353

[10] GDI httpwwweclipseorgswtfaqphpnographicslibrary

[11] JTDS httpjtdssourceforgenet

Figura 9 Forge de componentes mostrando aqueles especiacuteficos de algum sistema

Figura 10 Integraccedilatildeo com o SpagoBI Server

copy Linux New Media do Brasil Editora Ltda

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

68 httpwwwlinuxmagazinecombr

Gerenciamento de identidade na web com o Open ID

Identidade aberta mas segura

O OpenID oferece um padratildeo aberto para login em websites fechadospor Nils Magnus

A Web 20 eacute uma boa coisa como todo mundo imagina Um problema eacute a multiplici-

dade de sites protegidos por senha para acesso Blogs pessoais comu-nidades virtuais do Xing ao Orkut e Facebook e sites que gerenciam fluxo de trabalho despesas plane-jamento de feacuterias frequumlentemente confiam em aplicaccedilotildees baseadas na web com o uso de contas de usuaacuterio privadas Esse excesso de senhas de login estaacute fazendo com que alguns usuaacuterios descontentes percam a pa-ciecircncia Enquanto os usuaacuterios usam um dispositivo fiacutesico uacutenico e local ferramentas como os gerenciadores de senhas oferecidos pela maioria dos navegadores e alternativas como o KDE Wallet satildeo de grande ajuda

Mas o paradigma da Web 20 su-potildee que o usuaacuterio tem a liberdade de se mover e efetuar login de dife-rentes locais

Opccedilatildeo da comunidadeSoluccedilotildees para o gerenciamento de identidades fornecem uma soluccedilatildeo de maior mobilidade e flexibilida-de para simplificar o login via web Essas ferramentas muitas vezes empregam o princiacutepio da idonei-dade com terceiros Alguns grandes

players globais tecircm avanccedilado com serviccedilos que oferecem soluccedilotildees de login confiaacuteveis desenvolvidas por terceiros de uma uacutenica fonte O sis-tema Microsoft Passport foi criado em sintonia com esse sentimento Hoje o mercado do Microsoft Passport eacute o ldquoWindows Live IDrdquo [1] Muitos usuaacuterios no entanto estatildeo receo-sos de se tornarem dependentes de aplicativos proprietaacuterios

Uma recente alternativa conhe-cida como Liberty Alliance Project [2] ofereceu uma abordagem mais aberta mas foi amplamente consi-derada como um exagero de especi-ficaccedilotildees e por isso ainda natildeo obteve grande adoccedilatildeo apesar de seus sete anos de esforccedilo O projeto OpenID sob os auspiacutecios da OpenID Foun-dation [3] se baseia na mais simples funcionalidade podendo ser mais facilmente integrado a sistemas de autenticaccedilatildeo online

Os usuaacuterios que optaram pela alternativa do OpenID natildeo inserem um nome de usuaacuterio mas em vez disso identificam-se com uma URI que pode ser exibida em um navega-dor web A URI pode ser um ende-reccedilo web oferecido por um serviccedilo OpenID como httpnilsmagnusmyopenidcom no MyopenID [4] O tipo de identidade natildeo eacute importan-te contanto que qualquer navegador

consiga acessar a paacutegina A paacutegina teraacute que adicionar uma tag que aponte para o provedor do serviccedilo

ltlink rel=rdquoopenidserverrdquo href=rdquohttpwwwmyopenidcomserverrdquo gtltlink rel=rdquoopeniddelegaterdquo href=rdquohttpnilsmagnusmyopenidcomrdquo gt

O servidor do lado do provedor especifica a primeira relaccedilatildeo a segun-da reafirma o nome da identidade O provedor normalmente cria uma paacutegina para tornar essa informaccedilatildeo disponiacutevel para os sites na Web que requisitem as informaccedilotildees de login Contudo um usuaacuterio poderia de forma alternativa integrar os deta-lhes necessaacuterios em uma paacutegina ou blog pessoal Nesse caso seu proacute-prio endereccedilo poderia servir como sua OpenID

O loginUma aplicaccedilatildeo que suporte o OpenID exibiraacute um campo de login OpenID aleacutem da paacutegina de login tradicional Por exemplo a figura 1 mostra a paacute-gina de autenticaccedilatildeo do OpenID no wiki do Amarok

Quando um usuaacuterio digita seu ID baseado em uma URI a aplica-ccedilatildeo web que eacute conhecida como o

RE

DE

S

RE

DE

S

copy Linux New Media do Brasil Editora Ltda

69

cliente na linguagem do OpenID recupera a porccedilatildeo do servidor da URI O OpenID se refere ao servi-dor como ldquoprovedor de identidaderdquo (identity provider)

O cliente (o wiki do Amarok nes-te caso) solicita ao provedor o nome associado agrave URI Para fazer isso ele redireciona a requisiccedilatildeo para o pro-vedor do site e o provedor indica que foi emitida a solicitaccedilatildeo O usuaacuterio entatildeo concorda com o pedido digi-tando uma senha O provedor redi-reciona o navegador de volta para o site do cliente onde o usuaacuterio estaacute agora logado

Uma praacutetica caracteriacutestica do OpenID eacute a possibilidade de ar-mazenar vaacuterios atributos para uma uacutenica identidade com um provedor por exemplo seu nome completo seu idioma preferido ou sua data de nascimento (ver figura 2) O usuaacuterio que recebe um pedido do cliente pode especificar quais os dados que o prestador deve divulgar para o cliente e quais ele deve conservar como secretos

Esse processo de aprovaccedilatildeo eacute im-portante para evitar o mau uso de

um paracircmetro criacutetico tal como o PIN de um banco que na verdade ateacute pode ser armazenado junto ao seu ID Alguns provedores permitem que o usuaacuterio crie muacuteltiplas identi-dades cada uma com um conjunto distinto de atributos

Essa abordagem tambeacutem eacute co-nhecida como Gerenciamento de Identidade Centrada no Usuaacuterio (do inglecircs User-Centric Identity Mana-gement) em que cada usuaacuterio pode definir individualmente as informa-

ccedilotildees fornecidas pelo provedor para os clientes que pedirem

Alguns provedores de identidade associam-nas gratuitamente Cabe ao usuaacuterio decidir em qual provedor con-fiar Diferentemente da abordagem centralizada utilizada pelo Passport um conjunto descentralizado de pro-vedores OpenID competem entre si na oferta de serviccedilos Os usuaacuterios tecircm ateacute mesmo a liberdade de criar seu proacuteprio provedor

Para quem se interessar pelo desenvolvimento de uma soluccedilatildeo proacutepria haacute pacotes de coacutedigo aberto em vaacuterias linguagens de programa-ccedilatildeo como Perl PHP Ruby Python e Java [5]

Tem seguranccedilaO OpenID pode gerar duacutevidas so-bre sua seguranccedila jaacute que qualquer um pode atuar como provedor Um agressor pode forjar (spoof) ou sequumlestrar uma identidade A primeira questatildeo aponta para um claacutessico problema de seguranccedila se vocecirc pode manipular um site de terceiros vocecirc pode redirecionar os visitantes para o seu proacuteprio prove-dor de identidade ou escrever um para se adequar agrave demanda

Em outras palavras a seguranccedila estaacute nas matildeos das pessoas responsaacuteveis pelo site hospedeiro Considerando-

Linux Magazine 50 | Janeiro de 2009

| REDESOpenID

Figura 2 O provedor especifica os detalhes que pretende enviar para o cliente

Figura 1 O wiki do Amarok permite que seus usuaacuterios efetuem login com o OpenID

copy Linux New Media do Brasil Editora Ltda

70 httpwwwlinuxmagazinecombr

se a qualidade do coacutedigo dos muitos sites escritos nas populares linguagens de script essa eacute uma preocupaccedilatildeo real mas natildeo um argumento funda-mental contra o OpenID

A segunda pergunta eacute complica-da eacute possiacutevel que um hacker capture as comunicaccedilotildees entre o cliente e o provedor de identidade e com isso ar-mazene as sessotildees Afi nal o provedor envia uma confi rmaccedilatildeo de mensagem em caso de sucesso na autenticaccedilatildeo Um agressor poderia tentar apresentar uma sessatildeo gravada na proacutexima ten-tativa de login No entanto isso pode ser evitado com a ativaccedilatildeo do SSL ou do TLS no OpenID para proteger a conexatildeo e adicionar um desafi o para cada solicitaccedilatildeo Essa abordagem

signifi ca que qualquer resposta seraacute vaacutelida apenas uma vez o que exclui a reciclagem trivial

Apesar disso natildeo eacute uma boa ideacuteia subestimar a complexidade do ge-renciamento de sessatildeo baseado em estado ( stateful ) que trafega sobre um protocolo sem base em sessatildeo ( state-less ) como o HTTP que eacute a base do OpenID O fato de vaacuterias aplicaccedilotildees web estarem sendo comprometidas eacute uma indicaccedilatildeo clara dos perigos supondo que vocecirc acredite em pes-quisas e whitepapers [6]

Praacutetico e aberto O OpenID eacute um passo na direccedilatildeo certa para o gerenciamento de iden-tidades Como ele implementa o lo-

gin uacutenico ( single sign-on ) tambeacutem se torna mais con-veniente para os usuaacuterios reduzindo o nuacutemero de senhas a serem lembradas A capacidade de gerenciar atributos eacute muito mais po-derosa do que parece agrave pri-meira vista

O nuacutemero de sites que usam OpenID continua crescendo vertiginosamente mas algumas grandes aplica-ccedilotildees continuaratildeo precisando provar se preenchem todas

as exigecircncias operacionais e concei-tuais no que diz respeito agrave confi anccedila e agrave disponibilidade

Mais informaccedilotildees

[1] Microsoft Passport httpwwwpassportnet

[2] Projeto Liberty Alliance httpwwwprojectlibertyorg

[3] Projeto OpenID httpopenidnet

[4] MyOpenID httpmyopenidcom

[5] Bibliotecas abertas de OpenID httpwikiopenidnetLibraries

[6] Secure Computing ldquoKeeping Customers and Merchants Securerdquo (em inglecircs) httpwwwsecurecomputingcomwebformcfmid=289ampref=pci

[7] Feder ID httpfederidobjectweborg

[8] Extensotildees do Mediawiki para OpenID httpwwwmediawikiorgwikiExtensionOpenID

[9] Suporte a OpenID no Drupal httpdrupalorgprojectopenid

REDES | OpenID

Quadro 1 Gerenciamento de identidade e federaccedilatildeo

O OpenID natildeo eacute soacute um projeto de gerenciamento de identidade O Feder ID [7] por exemplo eacute um projeto de coacutedigo aberto da Franccedila Um dos fi nanciadores do projeto Oudot Cleacutement enfatiza a importacircncia das identidades digitais para o acesso aos recursos da Web em uma recente entrevista com a Linux Magazine

De acordo com Oudot muitos usuaacuterios possuem uma identidade distinta para cada site Isto eacute um grande problema para grandes empresas e organizaccedilotildees jaacute que os usuaacuterios precisam memorizar muacuteltiplas senhas O Feder ID fornece ferramentas para a sincronizaccedilatildeo de repositoacuterios de identidade Estes atributos natildeo estatildeo disponiacuteveis apenas para uma uacutenica organizaccedilatildeo local eles podem ser compartilhados por parceiros confi aacuteveis

As ferramentas do Feder ID satildeo de coacutedigo aberto e respeitam os padrotildees da IETF ( Internet Engineering Task Force ) OASIS ( Organization of Structured Information Standards ) e da Liberty Alliance para a gestatildeo de identidades

Tabela 1 Provedores de identidade para aplicaccedilotildees web

Provedor OpenID

AOL httpopenidaolcomnome_do_usuaacuterio

Blogger httpnome_do_blogblogspotcom

Flickr httpwwwflickrcomphotosusuaacuterio

Livedoor httpprofilelivedoorcomusuaacuterio

Livejournal httpusuaacuteriolivejournalcom

Technorati httptechnoraticompeopletechnoratiusuaacuterio

Wordpress httpusuaacuteriowordpresscom

Yahoo httpopenidyahoocom

copy Linux New Media do Brasil Editora Ltda

71

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

LTRindd 67 251108 173039

copy Linux New Media do Brasil Editora Ltda

72 httpwwwlinuxmagazinecombr

Login no Linux pela impressatildeo digital

Autenticaccedilatildeo biomeacutetrica A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e a confi gurar esse recurso de seguranccedila por Alessandro de Oliveira Faria (Cabelo)

Hoje a autenticaccedilatildeo biomeacute-trica eacute imprescindiacutevel para elevarmos o niacutevel de segu-

ranccedila computacional Na Linux Magazine 48 foram mencionadas as principais tecnologias biomeacutetri-cas de coacutedigo aberto Agora neste documento veremos na praacutetica o uso da biometria para autentica-ccedilatildeo de identidade Esse recurso natildeo faz parte apenas dos fi lmes de

fi cccedilatildeo cientiacutefi ca eacute uma realidade cada vez mais presente no nosso dia-a-dia em diversos segmentos do mercado

Com o crescimento dos equi-pamentos em redes abertas sur-giram problemas de seguranccedila e confi abilidade de autenticaccedilatildeo Uma autenticaccedilatildeo indevida for-nece acesso privilegiado a pessoas natildeo autorizadas dando margem a roubo de informaccedilotildees interrup-ccedilotildees de serviccedilos fraudes sistemaacute-ticas entre outros transtornos do seacuteculo XXI

Neste cenaacuterio surgiu a necessida-de da autenticaccedilatildeo biomeacutetrica ou seja verifi caccedilatildeo da autenticidade do usuaacuterio em operaccedilatildeo Esse me-canismo computacional eacute baseado em caracteriacutesticas (ldquoo que vocecirc eacuterdquo) A biometria aplicada agrave autenticaccedilatildeo de usuaacuterios eacute um meacutetodo automa-tizado para medir as caracteriacutesticas humanas e confrontaacute-las em uma base de dados obtendo assim a au-tenticidade do usuaacuterio

A efi caacutecia da autenticaccedilatildeo biomeacute-trica estaacute diretamente relacionada agrave qualidade dos dados obtidos na fase de cadastramento da caracteriacutestica

biomeacutetrica Nessa etapa a base de dados recebe o template matemaacuteti-co calculado pelo sistema isto eacute a representaccedilatildeo binaacuteria da caracteriacutes-tica humana Essa informaccedilatildeo seraacute utilizada posteriormente na compa-raccedilatildeo biomeacutetrica para autenticaccedilatildeo do sistema obtendo assim um re-sultado positivo ou negativo

Este artigo apresenta um foco teacutecnico e pouco teoacuterico assim obje-

SE

GU

RA

NCcedil

A

Figura 1 Imagem extraiacuteda de um leitor de impressatildeo digital UAreU da Digital Persona

Figura 2 Imagem binarizada (branco e preto)

copy Linux New Media do Brasil Editora Ltda

73

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

tivando configurar ou acrescentar a autenticaccedilatildeo biomeacutetrica como niacutevel adicional de seguranccedila ao login do sistema operacional Linux Para tal operaccedilatildeo utilizaremos a tecnologia de impressatildeo digital e pacotes de coacute-digo aberto (biblioteca fprint)

A tecnologia utilizada para a con-fecccedilatildeo deste artigo foi OpenSuse 103 ndash kernel 26225-

31-bigsmp Notebook Dell Vostro 1510 4 GB de memoacuteria RAM Processador Core 2 Duo Leitor de impressatildeo digital Uare

U Digital Persona 4000B Biblioteca fprint

Fprint conceitosO pacote fprint[1] eacute o sonho de todo desenvolvedor de coacutedigo aberto O kit de integraccedilatildeo permite o desen-volvimento de rotinas para identi-ficaccedilatildeo e verificaccedilatildeo de impressotildees digitais do usuaacuterio Um dos pontos fortes dessa soluccedilatildeo livre eacute a compa-tibilidade com diversos modelos de sensores disponiacuteveis no mercado A lista de aparelhos compatiacuteveis en-contra-se em [2]

A impressatildeo digital eacute composta por linhas formadas pelas elevaccedilotildees da pele A comparaccedilatildeo por impressatildeo digital eacute um meacutetodo utilizado haacute mais de mil anos como forma de identificaccedilatildeo de usuaacuterios Eacute uma caracteriacutestica uacutenica entre os seres humanos inclusive entre irmatildeos gecircmeos univitelinos

Formada ainda quando feto a impressatildeo digital acompanha a pessoa por toda a sua existecircncia sem apresentar grandes mudanccedilas Extraindo os pontos caracteriacutesticos ou ldquopontos de minuacuteciasrdquo de uma impressatildeo digital um papiloscopista ou sistemas computadorizados po-dem identificar pessoas utilizando caacutelculos bastante confiaacuteveis Grande parte dos algoritmos trabalham com o princiacutepio de extraccedilatildeo desses pontos caracteriacutesticos Apoacutes a extraccedilatildeo satildeo calculados a relaccedilatildeo entre as distacircn-cias desses pontos Cada algoritmo possui sua base de caacutelculo seja por anaacutelise dos pontos entre si ou por agrupamentos de pontos para anaacute-lise de semelhanccedilas de triacircngulos com os acircngulos internos

A biblioteca fprint incorpora abstraccedilatildeo de hardware para aces-so ao leitor Com esse recurso natildeo precisamos instalar qualquer moacutedulo do kernel para o funcio-namento de cada modelo de leitor de impressatildeo digital

Na primeira fase a biblioteca extrai a imagem do sensor (figura 1) e logo a seguir a linha da impressatildeo digital eacute realccedilada com a cor preta (figura 2)

Figura 3 Linhas reduzidas para um uacutenico pixel

Figura 4 Pontos de bifurcaccedilatildeo e terminadores

copy Linux New Media do Brasil Editora Ltda

74 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

utilizando algoritmos de extraccedilatildeo com filtros Na proacutexima etapa a imagem jaacute estaacute binarizada (branco e preto figura 3) e as linhas foram reduzidas a um uacutenico pixel de largura Por uacuteltimo a tarefa mais faacutecil ou seja

detectar os pontos de minuacutecias Fa-zendo um exame de cada pixel na imagem se houver um pixel branco sem vizinhos isso significa que en-contramos um ponto terminal Caso um ponto branco possua trecircs pontos

vizinhos significa que en-contramos uma bifurcaccedilatildeo Os pontos de minuacutecias satildeo entatildeo destacados (fi-gura 4) e compotildeem a ver-dadeira identidade da im-pressatildeo digital

As impressotildees digitais satildeo classificadas em cinco grupos conforme mostra a figura 5 ciacuterculo direito ciacuterculo esquerdo espiral arco e arco incompletoA estrutura de uma im-pressatildeo digital eacute forma-da por cruzamentos das linhas core (centro) bi-furcaccedilotildees terminaccedilotildees ilhas deltas (bifurcaccedilotildees inferiores) e poros Os pon-tos terminais assim como os pontos de bifurcaccedilotildees satildeo definidos em funccedilatildeo da distacircncia (coordena-da relativa) para o core Nos pontos terminais eacute co-mum calcular seu acircngulo de inclinaccedilatildeo

InstalaccedilatildeoHaacute pacotes da biblioteca fprint preacute-compilados para OpenSuse [3] e Ubuntu [4] No entanto este artigo sugere a compilaccedilatildeo da biblioteca a partir de seu coacutedigo-fonte que pode ser obtido em [5] Haacute tambeacutem uma demonstraccedilatildeo do software fprint que pode ser baixada a partir de [6]

Apoacutes o download devemos des-compactar os arquivos fontes O exemplo 1 detalha o procedimen-

Exemplo 1 Preparaccedilatildeo da libfprint

$ tar -jxvf libfprint-006tarbz2$ cd libfprint-006$ configure$ make$ suSenha make install ldconfig

Figura 5 Os cinco grupos de impressotildees digitais

Exemplo 3 Arquivo de login do PAM

01 PAM-1002 auth requisite pam_nologinso03 auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securettyso04 auth include common-auth05 auth requisite pam_fprintso06 account include common-account07 password include common-password08 session required pam_loginuidso09 session include common-session10 session required pam_lastlogso nowtmp11 session required pam_resmgrso12 session optional pam_mailso standard13 session optional pam_ck_connectorso

Exemplo 2 Compilaccedilatildeo do pam_fprint

$ wget httpufprdlsourceforgenetsourceforgefprintpam_fprint-02tarbz2$ tar -jxvf pam_fprint-02tarbz2$ cd pam_fprint-02$ configure$ make$ sudo make install

copy Linux New Media do Brasil Editora Ltda

75

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

Exemplo 4 pam_fprint_enroll --help

pam_fprint_enroll --helpUsage pam_fprint_enroll options -h --help Display this usage information -f --enroll-finger index Enroll finger with index Valid indexes are 1 - Left Thumb 2 - Left Index Finger 3 - Left Middle Finger 4 - Left Ring Finger 5 - Left Little Finger 6 - Right Thumb 7 - Right Index Finger 8 - Right Middle Finger 9 - Right Ring Finger 10 - Right Little Finger

Exemplo 5 Cadastramento de digital

pam_fprint_enroll --enroll-finger 7

This program will enroll your finger unconditionally overwriting any selected print that was enrolled previously If you want to continue press enter otherwise hit Ctrl+C Found device claimed by Digital Persona UareU 40004000B driverOpened device Itrsquos now time to enroll your finger You will need to successfully scan your Right Index Finger 1 timesto complete the process Scan your finger nowEnroll completeEnrollment completed

Exemplo 6 Sucesso na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1)lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BUacutetimo loginDom Nov 16 231501 BRST 2008em tty2

Have a lot of fun

copy Linux New Media do Brasil Editora Ltda

76 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

to de configuraccedilatildeo e compilaccedilatildeo da biblioteca

Execute o comando ldquomakerdquo con-vencional para efetuar a compilaccedilatildeo na iacutentegra do coacutedigo-fonte a seguir transforme-se em super-usuaacuterio (root) para efetuar a instalaccedilatildeo da biblioteca por meio do comando ldquomake installrdquo seguido do ldquoldconfigrdquo conforme as instruccedilotildees a seguir

Autenticaccedilatildeo pam_fprintO moacutedulo biomeacutetrico que trabalha em conjunto com o sistema de au-tenticaccedilatildeo PAM (Pluggable Authen-tication Modules) eacute o pam_fprint Sua base tecnoloacutegica eacute a biblioteca fprint receacutem compilada e instalada O pacote pam_fprint utiliza as fun-ccedilotildees biomeacutetricas para processar e verificar a autenticaccedilatildeo do usuaacuterio Em outras palavras a sua impressatildeo digital eacute utilizada para efetuar o login no sistema operacional

Vale a pena mencionar que o PAM eacute um sistema para autenticaccedilatildeo de usuaacuterios em ambientes Linux e Unix Uma de suas principais vantagens eacute a centralizaccedilatildeo das chamadas e funccedilotildees de login assim facilitando a tarefa do desenvolvedor

Continuando nossa jornada vamos agora baixar descompactar compilar e instalar o pacote pam_fprint como no exemplo 2

Sobre o autorAlessandro Faria eacute soacutecio-proprietaacuterio da NETi TECNOLOGIA fundada em Junho de 1996 (httpwwwnetiteccombr) empre-sa especializada em desenvolvimento de software e soluccedilotildees biomeacutetricas Consultor Biomeacutetrico na tecnologia de reconhecimen-to facial atua na aacuterea de tecnologia desde 1986 propiciando assim ao mercado solu-ccedilotildees em software Leva o Linux a seacuterio des-de 1998 com desenvolvimento de soluccedilotildees open source eacute membro colaborador da co-munidade Viva O Linux e mantenedor da bi-blioteca open source de viacutedeo captura aleacuten de participar entre outros projetos

Mais informaccedilotildees

[1] Fprint httpreactivatednetfprintwikiMain_Page

[2] Dispositivos compatiacuteveis com a fprint httpreactivatednetfprintwikiSupported_devices

[3] Pacotes fprint para OpenSuse httpdownloadopensuseorgrepositorieshomedgege

[4] Pacotes fprint para Ubuntu httpwwwmadman2knetcomments105

[5] Download da biblioteca fprint httpufprdlsourceforgenetsourceforgefprintlibfprint-006tarbz2

[6] Demo do fprint httpufprdlsourceforgenetsourceforgefprintfprint_demo-04tarbz2

[7] Portal Viva o Linux httpwwwvivaolinuxcombr

ConfiguraccedilatildeoNo OpenSuse eacute preciso modi-ficar o arquivo de configuraccedilatildeo para autenticaccedilatildeo no modo conso-le etcpamdlogin Esse arquivo pode ter nome diferente em ou-tras distribuiccedilotildees Seu conteuacutedo eacute mostrado no exemplo 3 e a linha 5 deve ser acrescentada pois eacute a res-ponsaacutevel por requisitar o moacutedulo pam_fprint

Eacute importante notar a utilizaccedilatildeo do modo requisite de autenticaccedilatildeo no PAM Para maiores informaccedilotildees sobre o tipo de autenticaccedilatildeo reco-menda-se consultar a documentaccedilatildeo do PAM

CadastramentoO proacuteximo passo eacute efetuar o cadastra-mento biomeacutetrico da sua impressatildeo digital Se concluiacuteda com sucesso essa tarefa no proacuteximo login o usuaacute-rio deveraacute fornecer aleacutem da senha sua impressatildeo digital para ter acesso ao sistema

O programa pam_fprint_enroll eacute responsaacutevel pelo cadastramento das impressotildees digitais Para en-tender melhor sua sintaxe digite pam_fprint_enroll --help e perceba (exemplo 4) que eacute preciso informar o nuacutemero correspondente ao dedo utilizado para cadastro A numeraccedilatildeo comeccedila em 1 no polegar esquerdo e segue ateacute o dedo mindinho esquerdo (nuacutemero 5) seguindo depois para o polegar direito (6) e terminando no mindinho direito (10)

No meu caso utilizei o nuacutemero 7 representando o dedo indicador da matildeo direita (exemplo 5) Ao exe-cutar o programa pressione [ENTER] encoste o dedo no leitor de impres-satildeo digital e pronto Nessa fase ao efetuar o login o sistema opera-cional solicitaraacute a senha seguida da autenticaccedilatildeo biomeacutetrica como mostram os exemplos 6 (sucesso na autenticaccedilatildeo) e 7 (falha na autenti-caccedilatildeo biomeacutetrica)

ConclusatildeoA biblioteca fprint proporciona inuacute-meros recursos aleacutem dos mencio-nados neste artigo Para um estudo detalhado sobre o assunto sugiro algumas leituras no portal Viva o Linux [7] e tambeacutem no site oficial do projeto

Exemplo 7 Falha na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1) lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BLogin incorreto

copy Linux New Media do Brasil Editora Ltda

77

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

SE

CcedilAtilde

O

Site_LNMindd 55 191208 205243

copy Linux New Media do Brasil Editora Ltda

78

SE

RV

ICcedilO

S

httpwwwlinuxmagazinecombr

Fornecedor de Hardware = 1 Redes e Telefonia PBX = 2 Integrador de Soluccedilotildees = 3

Literatura Editora = 4 Fornecedor de Software = 5

Consultoria Treinamento = 6

Linuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

CearaacuteF13 Tecnologia Fortaleza Rua Coronel Solon 480 ndash Bairro de Faacutetima

Fortaleza - CE - CEP 60040-270 85 3252-3836 wwwf13combr

Espiacuterito SantoLinux Shopp Vila Velha Rua Satildeo Simatildeo (Correspondecircncia) 18 ndash CEP 29113-120 27 3082-0932 wwwlinuxshoppcombr

Megawork Consultoria e Sistemas

Vitoacuteria Rua Chapot Presvot 389 ndash Praia do Can-to ndash CEP 29055-410 sl 201 202

27 3315-2370 wwwmegaworkcombr

Spirit Linux Vitoacuteria Rua Marins Alvarino 150 ndash CEP 29047-660 27 3227-5543 wwwspiritlinuxcombr

Minas GeraisInstituto Online Belo Horizonte Av Bias Fortes 932 Sala 204 ndash CEP 30170-011 31 3224-7920 wwwinstitutoonlinecombr

Linux Place Belo Horizonte Rua do Ouro 136 Sala 301 ndash Serra ndash CEP 30220-000 31 3284-0575 corporatelinuxplacecombr

Microhard Belo Horizonte Rua Repuacuteblica da Argentina 520 ndash Sion ndash CEP 30315-490 31 3281-5522 wwwmicrohardcombr

TurboSite Belo Horizonte Rua Paraiacuteba 966 Sala 303 ndash Savassi ndash CEP 30130-141 0800 702-9004 wwwturbositecombr

ParanaacuteiSolve Curitiba Av Cacircndido de Abreu 526 Cj 1206B ndash CEP 80530-000 41 252-2977 wwwisolvecombr

Mandriva Conectiva Curitiba Rua Tocantins 89 ndash Cristo Rei ndash CEP 80050-430 41 3360-2600 wwwmandrivacombr

Telway Tecnologia Curitiba Rua Francisco Rocha 183071 41 3203-0375 wwwtelwaycombr

Rio de JaneiroMuacuteltipla Tecnologia da Informaccedilatildeo

Rio de Janeiro Av Rio Branco 37 14deg andar ndash CEP 20090-003 21 2203-2622 wwwmultipla-ticombr

NSI Training Rio de Janeiro Rua Arauacutejo Porto Alegre 71 4ordm andar Centro ndash CEP 20030-012 21 2220-7055 wwwnsicombr

Open IT Rio de Janeiro Rua do Mercado 34 Sl 402 ndash Centro ndash CEP 20010-120 21 2508-9103 wwwopenitcombr

Unipi Tecnologias Campos dos Goytacazes

Av Alberto Torres 303 1ordmandar ndash Centro ndash CEP 28035-581 22 2725-1041 wwwunipicombr

Rio Grande do Sul4up Soluccedilotildees Corporativas Novo Hamburgo Pso Calccediladatildeo Osvaldo Cruz 54 sl 301 CEP 93510-015 51 3581-4383 www4upcombr

Definitiva Informaacutetica Novo Hamburgo Rua General Osoacuterio 402 - Hamburgo Velho 51 3594 3140 wwwdefinitivacombr

Solis Lajeado Av 7 de Setembro 184 sala 401 ndash Bairro Moinhos CEP 95900-000

51 3714-6653 wwwsoliscoopbr

DualCon Novo Hamburgo Rua Joaquim Pedro Soares 1099 Sl 305 ndash Centro 51 3593-5437 wwwdualconcombr

Datarecover Porto Alegre Av Carlos Gomes 403 Sala 908 Centro Comer-cial Atrium Center ndash Bela Vista ndash CEP 90480-003

51 3018-1200 wwwdatarecovercombr

LM2 Consulting Porto Alegre Rua Germano Petersen Junior 101-Sl 202 ndash Hi-gienoacutepolis ndash CEP 90540-140

51 3018-1007 wwwlm2combr

Lnx-IT Informaccedilatildeo e Tecnologia Porto Alegre Av Venacircncio Aires 1137 ndash Rio Branco ndash CEP 90040193 51 3331-1446 wwwlnx-itinfbr

Plugin Porto Alegre Av Juacutelio de Castilhos 132 11ordm andar Centro ndash CEP 90030-130 51 4003-1001 wwwplugincombr

TeHospedo Porto Alegre Rua dos Andradas 1234610 ndash Centro ndash CEP 90020-008 51 3286-3799 wwwtehospedocombr

Satildeo PauloWs Host Arthur Nogueira Rua Jerere 36 ndash Vista Alegre ndash CEP 13280-000 19 3846-1137 wwwwshostcombr

DigiVoice Barueri Al Juruaacute 159 Teacuterreo ndash Alphaville ndash CEP 06455-010 11 4195-2557 wwwdigivoicecombr

Dextra Sistemas Campinas Rua Antocircnio Paioli 320 ndash Pq das Universidades ndash CEP 13086-045 19 3256-6722 wwwdextracombr

Insigne Free Software do Brasil Campinas Av Andrades Neves 1579 ndash Castelo ndash CEP 13070-001 19 3213-2100 wwwinsignesoftwarecom

Microcamp Campinas Av Thomaz Alves 20 ndash Centro ndash CEP 13010-160 19 3236-1915 wwwmicrocampcombr

PC2 Consultoria em Software Livre

Carapicuiba Rua Edeia 500 - CEP 06350-080 11 3213-6388 wwwpc2consultoriacom

Savant Tecnologia Diadema Av Senador Vitorino Freire 465 ndash CEP 09910-550 11 5034-4199 wwwsavantcombr

Epopeacuteia Informaacutetica Mariacutelia Rua Goiaacutes 392 ndash Bairro Cascata ndash CEP 17509-140 14 3413-1137 wwwepopeiacombr

Redentor Osasco Rua Costante Piovan 150 ndash Jd Trecircs Montanhas ndash CEP 06263-270 11 2106-9392 wwwredentorindbr

Go-Global Santana de Parnaiacuteba

Av Yojiro Takaoca 4384 Ed Shopping Ser-vice Cj 1013 ndash CEP 06541-038

11 2173-4211 wwwgo-globalcombr

AW2NET Santo Andreacute Rua Edson Soares 59 ndash CEP 09760-350 11 4990-0065 wwwaw2netcombr

Async Open Source Satildeo Carlos Rua Orlando Damiano 2212 ndash CEP 13560-450 16 3376-0125 wwwasynccombr

O maior diretoacuterio de empresas que oferecem produtos soluccedilotildees e serviccedilos 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 anuncioslinuxmagazinecombr

copy Linux New Media do Brasil Editora Ltda

79

| SERVICcedilOSLinuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

Satildeo Paulo (continuaccedilatildeo)Delix Internet Satildeo Joseacute do

Rio PretoRua Voluntaacuterio de Satildeo Paulo 3066 9ordm ndash Centro ndash CEP 15015-909 11 4062-9889 wwwdelixhostingcombr

4Linux Satildeo Paulo Rua Teixeira da Silva 660 6ordm andar ndash CEP 04002-031 11 2125-4747 www4linuxcombr

A Casa do Linux Satildeo Paulo Al Jauacute 490 ndash Jd Paulista ndash CEP 01420-000 11 3549-5151 wwwacasadolinuxcombr

Accenture do Brasil Ltda Satildeo Paulo Rua Alexandre Dumas 2051 ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 5188-3000 wwwaccenturecombr

ACR Informaacutetica Satildeo Paulo Rua Lincoln de Albuquerque 65 ndashPerdizes ndash CEP 05004-010 11 3873-1515 wwwacrinformaticacombr

Agit Informaacutetica Satildeo Paulo Rua Major Quedinho 111 5ordm andar Cj 508 ndash Centro ndash CEP 01050-030

11 3255-4945 wwwagitcombr

Altbit - Informaacutetica Comeacutercio e Serviccedilos LTDA

Satildeo Paulo Av Francisco Matarazzo 229 Cj 57 ndash Aacutegua Branca ndash CEP 05001-000

11 3879-9390 wwwaltbitcombr

AS2M -WPC Consultoria Satildeo Paulo Rua Trecircs Rios 131 Cj 61A ndash Bom Retiro ndash CEP 01123-001 11 3228-3709 wwwwpccombr

Big Host Satildeo Paulo Rua Dr Miguel Couto 58 ndash Centro ndash CEP 01008-010 11 3033-4000 wwwbighostcombr

Blanes Satildeo Paulo Rua Andreacute Ampeacutere 153 ndash 9ordm andar ndash Conj 91 CEP 04562-907 (proacutex Av L C Berrini)

11 5506-9677 wwwblanescombr

Commlogik do Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 13797 Bloco II 6ordm andar ndash Morumbi ndash CEP 04794-000

11 5503-1011 wwwcommlogikcombr

Computer Consulting Projeto e Consultoria Ltda

Satildeo Paulo Rua Vergueiro 6455 Cj 06 ndash Alto do Ipiranga ndash CEP 04273-100 11 5062-3927 wwwcomputerconsultingcombr

Consist Consultoria Siste-mas e Representaccedilotildees Ltda

Satildeo Paulo Av das Naccedilotildees Unidas 20727 ndash CEP 04795-100 11 5693-7210 wwwconsistcombr

Domiacutenio Tecnologia Satildeo Paulo Rua das Carnaubeiras 98 ndash Metrocirc Conceiccedilatildeo ndash CEP 04343-080 11 5017-0040 wwwdominiotecnologiacombr

EDS do Brasil Satildeo Paulo Av Pres Juscelino Kubistcheck 1830 Torre 4 - 5ordm andar 11 3707-4100 wwwedscom

Eacutetica Tecnologia Satildeo Paulo Rua Nova York 945 ndash Brooklin ndash CEP04560-002 11 5093-3025 wwweticanet

Getronics ICT Solu-tions and Services

Satildeo Paulo Rua Verbo Divino 1207 ndash CEP 04719-002 11 5187-2700 wwwgetronicscombr

Hewlett-Packard Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 12901 25ordm andar ndash CEP 04578-000 11 5502-5000 wwwhpcombr

IBM Brasil Ltda Satildeo Paulo Rua Tutoacuteia 1157 ndash CEP 04007-900 0800-7074 837 wwwbribmcom

iFractal Satildeo Paulo Rua Fiaccedilatildeo da Sauacutede 145 Conj 66 ndash Sauacutede ndash CEP 04144-020 11 5078-6618 wwwifractalcombr

Integral Satildeo Paulo Rua Dr Gentil Leite Martins 295 2ordm andar Jd Prudecircncia ndash CEP 04648-001

11 5545-2600 wwwintegralcombr

Itautec SA Satildeo Paulo Av Paulista 2028 ndash CEP 01310-200 11 3543-5543 wwwitauteccombr

Kenos Consultoria Satildeo Paulo Av Fagundes Filho 13 Conj 53 ndash CEP 04304-000 11 40821305 wwwkenoscombr

Konsultex Informatica Satildeo Paulo Av Dr Guilherme Dumont Villares 1410 6 andar CEP 05640-003 11 3773-9009 wwwkonsultexcombr

Linux Komputer Informaacutetica Satildeo Paulo Av Dr Lino de Moraes Leme 185 ndash CEP 04360-001 11 5034-4191 wwwkomputercombr

Linux Mall Satildeo Paulo Rua Machado Bittencourt 190 Cj 2087 ndash CEP 04044-001 11 5087-9441 wwwlinuxmallcombr

Livraria Tempo Real Satildeo Paulo Al Santos 1202 ndash Cerqueira Ceacutesar ndash CEP 01418-100 11 3266-2988 wwwtemporealcombr

Locasite Internet Service Satildeo Paulo Av Brigadeiro Luiz Antonio 2482 3ordm andar ndash Centro ndash CEP 01402-000

11 2121-4555 wwwlocasitecombr

Microsiga Satildeo Paulo Av Braz Leme 1631 ndash CEP 02511-000 11 3981-7200 wwwmicrosigacombr

Novatec Editora Ltda Satildeo Paulo Rua Luis Antonio dos Santos 110 ndash Santana ndash CEP 02460-000 11 6979-0071 wwwnovateceditoracombr

Novell Ameacuterica Latina Satildeo Paulo Rua Funchal 418 ndash Vila Oliacutempia 11 3345-3900 wwwnovellcombrasil

Oracle do Brasil Sistemas Ltda Satildeo Paulo Av Alfredo Egiacutedio de Souza Aranha 100 ndash Bloco B ndash 5ordm andar ndash CEP 04726-170

11 5189-3000 wwworaclecombr

Proelbra Tecnolo-gia Eletrocircnica Ltda

Satildeo Paulo Av Rouxinol 1041 Cj 204 2ordm andar Moema ndash CEP 04516-001 11 5052- 8044 wwwproelbracombr

Provider Satildeo Paulo Av Cardoso de Melo 1450 6ordm andar ndash Vila Oliacutempia ndash CEP 04548-005

11 2165-6500 wwwe-providercombr

Red Hat Brasil Satildeo Paulo Av Brigadeiro Faria Lima 3900 Cj 81 8ordm andar Itaim Bibi ndash CEP 04538-132

11 3529-6000 wwwredhatcombr

Samurai Projetos Especiais Satildeo Paulo Rua Baratildeo do Triunfo 550 6ordm andar ndash CEP 04602-002 11 5097-3014 wwwsamuraicombr

SAP Brasil Satildeo Paulo Av das Naccedilotildees Unidas 11541 16ordm andar ndash CEP 04578-000 11 5503-2400 wwwsapcombr

Simples Consultoria Satildeo Paulo Rua Mourato Coelho 299 Cj 02 Pinheiros ndash CEP 05417-010 11 3898-2121 wwwsimplesconsultoriacombr

Smart Solutions Satildeo Paulo Av Jabaquara 2940 cj 56 e 57 11 5052-5958 wwwsmart-teccombr

Snap IT Satildeo Paulo Rua Joatildeo Gomes Junior 131 ndash Jd Bonfiglioli ndash CEP 05299-000 11 3731-8008 wwwsnapitcombr

Stefanini IT Solutions Satildeo Paulo Av Brig Faria Lima 1355 19ordm ndash Pinheiros ndash CEP 01452-919 11 3039-2000 wwwstefaninicombr

Sun Microsystems Satildeo Paulo Rua Alexandre Dumas 2016 ndash CEP 04717-004 11 5187-2100 wwwsuncombr

Sybase Brasil Satildeo Paulo Av Juscelino Kubitschek 510 9ordm andar Itaim Bibi ndash CEP 04543-000 11 3046-7388 wwwsybasecombr

The Source Satildeo Paulo Rua Marquecircs de Abrantes 203 ndash Chaacutecara Tatuapeacute ndash CEP 03060-020

11 6698-5090 wwwthesourcecombr

Unisys Brasil Ltda Satildeo Paulo R Alexandre Dumas 1658 ndash 6ordm 7ordm e 8ordm andares ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 3305-7000 wwwunisyscombr

Utah Satildeo Paulo Av Paulista 925 13ordm andar ndash Cerqueira Ceacutesar ndash CEP 01311-916 11 3145-5888 wwwutahcombr

Visuelles Satildeo Paulo Rua Eng Domicio Diele Pacheco e Silva 585 ndash Interlagos ndash CEP 04455-310

11 5614-1010 wwwvisuellescombr

Webnow Satildeo Paulo Av Naccedilotildees Unidas 12995 10ordm andar Ed Plaza Centenaacuterio ndash Chaacutecara Itaim ndash CEP 04578-000

11 5503-6510 wwwwebnowcombr

WRL Informaacutetica Ltda Satildeo Paulo Rua Santa Ifigecircnia 211213 Box 02ndash Centro ndash CEP 01207-001 11 3362-1334 wwwwrlcombr

Systech Taquaritinga Rua Satildeo Joseacute 1126 ndash Centro - Caixa Postal 71 ndash CEP 15900-000 16 3252-7308 wwwsystech-ltdcombr

2MI Tecnologia e Informaccedilatildeo Embu Rua Joseacute Bonifaacutecio 55 ndash Jd Independecircncia ndash SP CEP 06826-080 11 4203-3937 www2micombr

Linuxlocal

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

80

SERVICcedil

OS

httpwwwlinuxmagazinecombr

Nerdson ndash Os quadrinhos mensais da Linux Magazine

Calendaacuterio de eventos

Evento Data Local Website

Campus Party 15 a 25 de janeiro Satildeo Paulo SP wwwcampus-partycombr

Bossa Conference 08 a 11 de marccediloPorto de Galinhas PE

wwwbossaconferenceorg

FISL 24 a 27 de junho Porto Alegre RS wwwfislsoftwarelivreorg

Interop 02 e 03 de setembro Satildeo Paulo SP wwwinteropsaopaulocombr

Futurecom 2009 13 a 16 de outubro Satildeo Paulo SP wwwfuturecom2009combr

Iacutendice de anunciantes

Empresa Paacuteg

Campus Party 02

Plusserver 07

Insigne 09

UOL 11

Xandros 13

Impacta 15

Linux Pro 33

Pocket Pro 43

Linuz Technical Review 71

Site LNM 77

Guia de TI 81

Bull 83

Ubiquiti 84

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

82 httpwwwlinuxmagazinecombr

Na Linux Magazine 51

PREVIE

W

Na EasyLinux 14 Monitores gigantes Os monitores LCD de 19 polegadas jaacute tecircm preccedilos bem melhores que haacute um ano Seraacute que jaacute chegou o momento de vocecirc comprar aquele monitor cine-matograacutefi co Quais satildeo as vantagens e desvantagens

do LCD em relaccedilatildeo aos antigos monitores de tubo Ateacute onde 21 polegadas va-lem mais que 19 Na Easy Linux 14 vamos comparar marcas modelos e tecno-logias de monitores agrave ven-da no Brasil para orientar suas compras

A melhor parte de todos os sistemas Empresas como Apple e Micro-soft investem pesado em design para deixarem seus sistemas mais atraentes Como resultado tanto o Mac OS quanto o Windows Vista tecircm forte apelo visual Poreacutem engana-se quem pensa que eacute impossiacutevel alcanccedilar um grau de beleza semelhante no Linux Na Easy Linux 14 vamos mostrar o caminho das pedras para deixar seu Linux com a cara do Mac OS X do Vista e do Windows XP seja por pura diversatildeo ou para facilitar o uso do Linux por quem jaacute estaacute habituado a esses sistemas e tem difi culdade de adaptaccedilatildeo ao pinguumlim

DESTAQUE

Seguranccedila com VoIP Verdadeiros administra-dores pensam em segu-ranccedila o tempo inteiro Mesmo que vocecirc seja um usuaacuterio comum eacute importante saber o que os invasores podem fazer Serviccedilos que costumavam ser seguros se tornam brechas de seguranccedila a menos que vocecirc se mantenha atualizado com essas questotildees

Na Linux Magazine 51 vamos examinar algumas estrateacutegias de seguranccedila recomendadas por especialistas Vocecirc jamais teraacute a rede perfeita ou sequer as ferramentas perfeitas ndash o mundo da seguranccedila de redes muda a todo tempo ndash e como eacute impos-siacutevel descartar defi nitivamente os problemas eacute melhor man-ter-se informado

TUTORIAL

Defi cientes visuais O Linux possui muitos ambientes desktop be-liacutessimos incluindo cubos rotativos e janelas que balanccedilam e queimam Poreacutem considere por exemplo uma aacuterea de trabalho com iacutecones cuidadosamente organizados vocecirc conseguiria utilizaacute-la com o monitor desligado

Apesar das vaacuterias ofertas de softwares pro-prietaacuterios cariacutessimos para leitura da tela e teclados sofi sticados que realmente possibi-litam o uso do computador por defi cientes visuais a maioria das ferramentas e extensotildees necessaacuterias para usuaacuterios cegos ou com visatildeo prejudicada aleacutem daqueles com difi culdades motoras ou mentais jaacute estatildeo presentes nos re-positoacuterios da maioria das distribuiccedilotildees Linux Veja como o projeto Adriane une todos esses recursos num uacutenico sistema desktop destinado a defi cientes visuais

os invasores podem fazer

os invasores podem fazer

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRAacuteTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA AacuteREA p36

44 0708

R$ 1390 euro 750

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWWLINUXMAGAZINECOMBR

CASE ALFRESCO p26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p28Iniciada em Porto Alegre a temporada de seminaacuterios Linux Park de 2008

CEZAR TAURION p34O Coacutedigo Aberto como incentivo agrave inovaccedilatildeo

GOVERNANCcedilA COM

raquo O que dizem os profissionais certificados p24

raquo Cobit CMMI ITIL Quais as melhores praacuteticas p36

raquo ITIL na praacutetica p39

raquo Novidades do ITIL v3 p44

SEGURANCcedilA DNSSEC p69

Com o DNSSEC a resoluccedilatildeo de nomes fica protegida de ataques Mas seupreccedilo vale a pena

REDES IPV6 p64

Conheccedila as vantagens da nova versatildeo do Internet Protocol e veja por queeacute difiacutecil adotaacute-la

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo Relatoacuterios do Squid com o SARG p60

raquo Java Ruby e Rails conheccedila o JRuby on Rails p74

raquo Benchmarks do GCC 43 p58

raquo Becape de bancos de dados com a Libferris p46

raquo LPI niacutevel 2 Servidores NIS e DHCP p52

A REVISTA DO PROFISSIONAL DE TI

AS REDES ATUAIS SAtildeO AMBIENTES HETEROGEcircNEOSO BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p27

raquo Conecte o Linux agrave VPN do Windows p28

raquo MS AD e clientes Linux a soluccedilatildeo definitiva p34

raquo Linux como servidor RDP p40

raquo Agendamento de tarefas livre tambeacutem no Windows p44

Interoperabilidade

Linu

x M

agazin

e

50012009

INTEROPERABILIDADE

VPN

AD

RDP AGEN

DADOR DE TAREFAS BIOM

ETRIA OPEN

ID M

IDS GOOGLE CHARTS

HA POSTGRESQL TALEN

D

WWWLINUXMAGAZINECOMBR

50 Janeiro 2009

SANEADA PELO LINUX P22 Linux na Companhia de Aacuteguas do Maranhatildeo

LEI DOS CALL CENTERS P26 Edgar Silva mostra como a nova lei requer TI

BOCA NO TROMBONE P25 Maddog explica como fazer sua parte nas poliacuteticas puacuteblicas

SEGURANCcedilA BIOMETRIA p72

A autenticaccedilatildeo por impressatildeo digital jaacute eacute realidade Aprenda a implementaacute-la com um especialista

REDES OPENID p68

Uma uacutenica identidade para vaacuterios serviccedilos na Web Mas como fica a seguranccedila

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo MIDs seraacute que a moda pega p17

raquo Faccedila graacuteficos pelo Google p50

raquo HA e PostgreSQL uma oacutetima mistura p54

raquo ETL muito competente com o Talend p62

SUPORTANDO O VISTA

50 0109

R$ 1490 euro 750

9 771806 942009

0 0 0 5 0

copy Linux New Media do Brasil Editora Ltda

Page 6: Interoperabilidade SUPORTANDO O VISTA

6 httpwwwlinuxmagazinecombr

CA

RTA

S

sanj

a gj

ener

o ndash

ww

ws

xch

u

Emails para o editor

Permissatildeo de EscritaSe vocecirc tem duacutevidas sobre o mundo Linux criacuteticas ou sugestotildees que possam ajudar a melhorar a nossa revista escreva para o seguinte endereccedilo cartaslinuxmagazinecombr Devido ao grande volume de correspondecircncia torna-se impossiacutevel responder a todas as duacutevidas sobre aplicativos confi guraccedilotildees e problemas de hardware que chegam agrave Redaccedilatildeo mas garantimos que elas satildeo lidas e analisadas As mais interessantes satildeo publicadas nesta seccedilatildeo

Gestatildeo empresarial Primeiramente gostaria de parabenizaacute-los pela revista que possui oacutetimo conteuacutedo poucas propagandas e eacute muito objetiva em suas mateacuterias

Jaacute estive pesquisando poreacutem eacute muito difiacutecil en-contrar sistemas para gerenciamento de empresas como contas a pagar a receber controle de estoque etc Este eacute acredito eu um dos maiores problemas para conseguirmos migrar os nossos clientes para a plataforma Linux

Gostaria de pedir agrave Linux Magazine que se pos-siacutevel indicasse algumas opccedilotildees de softwares (livres ou natildeo) para gestatildeo de empresas para que pudeacutesse-mos analisaacute-los

Ivan Moretto Leme SP

Resposta Prezado Ivan muito obrigado pelos elogios Eacute sempre muito gratifi cante receber o reconhecimento por parte de nossos leitores Mas por favor natildeo hesite em nos informar tambeacutem o que poderia ser melhorado na Li-nux Magazine

Sobre a sua questatildeo jaacute publicamos duas ediccedilotildees (39 e 30) sobre esses sistemas cha-mados ERP (do inglecircs ldquoEnterprise Resour-ce Planningrdquo ndash Planejamento de Recursos da Empresa)

Como vocecirc pode conferir na listagem das mateacuterias de capa dessas ediccedilotildees haacute diversos sistemas ERP (proprietaacuterios ou de coacutedigo aberto) para Linux com destaque para Adem-piere Compiere e Openbravo ndash por sinal todos os trecircs tecircm o coacutedigo aberto

copy Linux New Media do Brasil Editora Ltda

7

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

8 httpwwwlinuxmagazinecombr

Pergunte ao Klaus

Klaus KnopperO professor Klaus responde as mais diversas duacutevidas dos leitores

Espaccedilo na telaHaacute uns dois anos eu comprei um PC bem baacutesico com chip graacutefico onboard Pluguei nele um moni-tor LCD de 19 polegadas (1280x1024) mas troquei-o por um de 22 polegadas (1680x1050) um ano de-pois No Centro de Controle do KDE selecionei a resoluccedilatildeo de 1680x1050 mas agora ele exibe e usa 1680x1200

Como meu monitor natildeo suporta essa resoluccedilatildeo eacute como se meu monitor estivesse ldquoflutuandordquo sobre a aacuterea de trabalho quando chego o mouse perto da base do monitor ele desliza a imagem para baixo mostrando a barra inferior do KDE e escondendo os 150 pixels laacute de cima

Eu gosto desse comportamento pois os progra-mas costumam ter seus menus na parte de cima da janela entatildeo eu natildeo preciso descer para a base com frequumlecircncia Aleacutem disso a base se torna um bom lo-cal para eu jogar janelas que natildeo quero visualizar no momento

Minha duacutevida eacute se essa nova configuraccedilatildeo eacute causa-da por um problema de driver ou se eu encontrei um recurso do Xorg que eacute comum mas pouco usado

Testei recentemente o Fedora 8 e ele reconhece automaticamente o tamanho do monitor Agraves vezes eu sinto falta dos 150 pixels de altura que sobram para baixo Existe alguma forma de recuperaacute-los

RespostaOs ldquo150 pixels ocultosrdquo de fato satildeo causados por

um recurso do servidor X Se o tamanho da tela for configurado como 1680x1050 o Xorg entraraacute no modo de deslizamento (scrolling mode)

Novas versotildees do Xorg substituem esse recurso pela alteraccedilatildeo da resoluccedilatildeo da aacuterea de trabalho usando a extensatildeo randr A vantagem eacute que a aacuterea de trabalho ajusta seu tamanho automaticamente ao se alterar a resoluccedilatildeo

Aleacutem disso alternar entre diferentes dispositivos de saiacuteda eacute mais faacutecil (por exemplo conectar um projetor com uma resoluccedilatildeo diferente ou usar no monitor interno a resoluccedilatildeo do externo) O Xorg carrega automaticamente a extensatildeo randr e depois

as configuraccedilotildees de Modes no arquivo etcX11xorgconf satildeo ignoradas em favor do que o monitor especifica como resoluccedilatildeo favorita

Eacute possiacutevel fazer o Xorg alterar sua resoluccedilatildeo dinami-camente usando o krandtray (no KDE) ou o comando xrandr (na linha de comando) Por exemplo

xrandr --output LVDS --auto

tentaraacute alinhar automaticamente a resoluccedilatildeo do servidor X agrave do monitor enquanto

xrandr --output LVDS --mode 800x600

ou

xrandr --output LVDS -s 800x600

usaraacute o modo ou resoluccedilatildeo para o tamanho de 800x600 especificado no comando o que tambeacutem faz certos ambientes desktop adotarem um tama-nho de tela diferente

xrandr --output VGA --auto

deve ativar a porta VGA externa de um notebook e tambeacutem fazer o desktop adotar a resoluccedilatildeo preferida do monitor ou projetor ligado a essa porta

No seu caso para retornar ao comportamento original com 150 pixels ldquosobrandordquo (desativando o randr no Xorg) basta adicionar a seguinte seccedilatildeo ao seu arquivo etcX11xorgconf

Section ldquoServerFlagsrdquo Option ldquoRandRrdquo ldquofalserdquoEndSection

CO

LU

NA

Escreva para o KlausEnvie suas perguntas em portuguecircs ou inglecircs para klauslinuxmagazinecombr e tire todas as suas duacutevidas

Linux Magazine 50 | Janeiro de 2009

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

9

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

10 httpwwwlinuxmagazinecombr

Siege

Charly Kuumlhnast O cerco a Troacuteia durou dez anos e terminou somente quanto Ulisses introduziu um cavalo de madeira dentro da cidade Charly tambeacutem estaacute planejando um cerco e o alvo eacute seu proacuteprio servidor web Naturalmente ele natildeo tem dez anos para completar essa tarefa nem Ulisses como parte de sua equipe

Estava checando meu servidor Apache e me lembrei do mito do monstro marinho Cila que deu cabo de nada menos que seis ho-

mens de Ulisses voltando de Troacuteia a caminho de casa O moacutedulo de multi-processamento ndash MPM worker ndash do meu servidor tambeacutem eacute capaz de devo-rar muacuteltiplas requisiccedilotildees numa talagada soacute mas ateacute onde ele aguumlenta Quantas threads eu preciso con-fi gurar para conseguir que ele entregue o maacuteximo de desempenho E a partir de quantas threads isso se torna um desperdiacutecio

Teste de carga Usando a ferramenta de ataque Siege [1] vou tentar responder essas questotildees por meio de um teste de car-ga O programa contempla dois modos de ataque o primeiro simula o comportamento de um ser humano navegando na Internet o que explica o intervalo de trecircs segundos entre cada dois acessos No segundo conhecido como modo benchmark esses intervalos satildeo eliminados e a ferramenta faz solicitaccedilotildees ao servidor ininterruptamente Para fazer o servidor ldquosuarrdquo o Sie-ge dispotildee de um exeacutercito de usuaacuterios de contingente confi guraacutevel ndash dez por padratildeo mas eacute possiacutevel usar o paracircmetro a seguir para aumentar o tamanho da tro-pa ateacute que o servidor web peccedila misericoacuterdia e nossos agressores consumam todos os recursos do sistema

--concurrent=ltnuacutemerogt

Como entrar em Troacuteia Como o Siege sabe qual servidor atacar Haacute duas opccedilotildees para isso o paracircmetro

--url=rdquohttpltmeusitecomgtltindexhtmlgtrdquo permite que vocecirc forneccedila a URL que o programa solicitaraacute repetidamente Jaacute a opccedilatildeo

--file=rdquohomecharlysiege-urlstxtrdquo

eacute mais interessante pois permite a criaccedilatildeo de uma sequumlecircncia arbitrariamente longa de endereccedilos web para o Siege atacar O parametro --reps=ltnuacutemerogt permite especifi car quantas vezes o programa deveraacute repetir o teste de carga

Tambeacutem eacute possiacutevel usar o paracircmetro --internet para dizer ao Siege para natildeo realizar as requisiccedilotildees na ordem especifi cada no arquivo siege-urlstxt mas fazecirc-lo de maneira aleatoacuteria o que eacute muito mais proacuteximo da realidade

Fim da batalha Para evitar que o teste de carga se estenda indefi nida-mente eacute prudente utilizar o paracircmetro --time para limitar seu tempo de execuccedilatildeo O ataque cessaraacute ao fi nal do tempo indicado mesmo que a quantidade de execuccedilotildees especifi cada pelo paracircmetro --rep ainda natildeo tenha sido atingida

Apoacutes sua execuccedilatildeo ter sido completada o Siege mostra um resumo dos resultados encontrados (veja a fi gura 1 )

CO

LU

NA

Mais informaccedilotildees

[1] Siege httpwwwjoedogorgJoeDogSiege

Figura 1 Apoacutes a batalha contra o servidor web o Siege apresenta os resultados

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

11

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

Gab

arit

o

Soluccedilatildeo faacutecil e descomplicada para empresas de qualquer tamanho colocarem seus produtos agrave venda na internet

R$4900

por mecircs

a partir de

senhorlojasimplesindd 1 121008 110411 AM

copy Linux New Media do Brasil Editora Ltda

12 httpwwwlinuxmagazinecombr

Crocircnicas do kernel

Zack BrownOs acontecimentos mais recentes na histoacuteria do kernel

Erradicaccedilatildeo do Big LockFrederic Weisbecker criou o Big Kernel Lock Tracer (rastreador do Big Lock ndash grande bloqueio ndash do ker-nel) que rastreia os tempos de atraso causados pelo Big Kernel Lock ou BKL Isso pode ajudar a iden-tificar aacutereas especiacuteficas nas quais o BKL deveria ser eliminado primeiro Linus Torvalds sugeriu livrar-se do BKL e substituiacute-lo por estruturas de bloqueio mais simples Entretanto nem todas as situaccedilotildees podem ser resolvidas com um bloqueio geneacuterico e o coacute-digo de bloqueio estaacute espalhado por todo o kernel o que dificulta qualquer tipo de esforccedilo conjunto Uma tentativa no momento eacute ldquoempurrarrdquo todo o

coacutedigo do BKL para sua proacutepria parte da aacutervore do kernel para centralizaacute-lo de forma a trataacute-lo de uma soacute vez Os participantes de todo o espectro do desen-volvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho A ferramenta de Frederic pode ajudar os desenvolvedores a concentrar sua atenccedilatildeo em aacutereas que beneficiariam a maioria

Redefinindo Load AverageSena Senerviratne e David Levy estatildeo preparando algumas mudanccedilas para o caacutelculo do valor de load average (carga meacutedia) no Linux Sua ideacuteia eacute em vez de calcular apenas um uacutenico nuacutemero para re-presentar toda a carga meacutedia do sistema fornecer muacuteltiplas estatiacutesticas Por exemplo eles querem separar do resto do sistema a carga de IO de disco

para visualizarem esse dado independentemente Aleacutem disso desejam ativar o caacutelculo de load avera-ge por usuaacuterio para que cada usuaacuterio visualize os efeitos sobre o seu sistema Arjan van de Ven pediu encarecidamente que eles apenas acrescentem esta-tiacutesticas sem alterar o comportamento dos nuacutemeros que o sistema jaacute produz

MantenedoresTheodore (Ted) Y Tsrsquoo atualizou o arquivo MAINTAINERS listando-se como mantenedor do sistema de arquivos Ext4 no lugar de Andrew Morton e Stephen Tweedie embora isso natildeo represente uma mudanccedila real de man-tenedor De acordo com Ted a entrada originalmente foi simplesmente copiada daquela do Ext3 e jamais foi precisa o que seu patch agora corrigiu

Um detalhe interessante eacute que embora Andreas Dilger natildeo esteja incluiacutedo como co-mantenedor no patch de Ted a lista de emails para submissatildeo de patches relatoacuterios de bug etc inclui o email de Andreas junto com o de Ted O email de Andreas tambeacutem estaacute listado junto com o de Andrew e Ste-phen na entrada original equivocada Geralmente isso significaria que ele dedica muito trabalho ao projeto e pode atuar como ldquotenenterdquo de Ted da mesma forma que Linus Torvalds confia em seus ldquotenentesrdquo para facilitar seu trabalho de inclusatildeo de coacutedigos no kernel

Mike Frysinger postou um patch para o arquivo MAINTAINERS listando a si mesmo e Subrata Modak como co-mantenedores do LTP (Linux Test Project) Esse projeto patrocinado pela SGI e IBM oferece um conjunto de aproximadamente 3 mil testes para avaliar a confiabilidade robustez e estabilidade do sistema operacional Linux

CO

LU

NA

Sobre o autorA lista de discussatildeo Linux-kernel eacute o nuacutecleo das atividades de desenvolvimento do ker-nel Zack Brown consegue se perder nesse oceano de mensagens e extrair significado Sua newsletter Kernel Traffic esteve em ativi-dade de 1999 a 2005

Os participantes de todo o espectro do desenvolvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho

copy Linux New Media do Brasil Editora Ltda

13

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

O Scalix eacute uma soluccedilatildeo completa para mensagens que suporta muacuteltiplos servidores e atende agraves necessidades de sua empresa Natildeo importa otamanho dela Baseia-se em uma Plataforma Colaborativa que serve de fundaccedilatildeo para todas as ediccedilotildees desse produto

Maiores informaccedilotildees wwwsentegritycombr EUA 646-747-7648 | Satildeo Paulo 11 5105-9037 | Rio de Janeiro 21 2526-7262

Reduza os custos de comunicaccedilatildeo usando Scalix

copy Linux New Media do Brasil Editora Ltda

14 httpwwwlinuxmagazinecombr

A quarta geraccedilatildeo dos rootkits se baseia no hardware e eacute quase indetectaacutevel

InseguranccedilaAnalisamos a histoacuteria dos rootkits incluindo a sua mais nova encarnaccedilatildeo o DR RootKitpor Kurt Seifried

Originalmente eu pretendia escrever um artigo sobre o estado da arte dos rootkits

e as ferramentas que poderiam ser usadas para detectaacute-los Foi aiacute que acabei topando com um problemi-nha os rootkits mais avanccedilados e modernos tendem a ser realmente bons em evitar sua detecccedilatildeo Com ldquorealmente bonsrdquo quero dizer que seraacute improvaacutevel para qualquer um detectaacute-los a menos que se lance matildeo de teacutecnicas como a anaacutelise detalhada de uma coacutepia (dump) da memoacuteria por exemplo comparan-do-se a partir daiacute a imagem real do kernel carregada na memoacuteria com aquela que seria de se esperar

Liccedilotildees histoacutericasRootkits tradicionais satildeo programas simples geralmente rodando como um serviccedilo isolado e fornecendo aces-so a uma backdoor Eles satildeo relativa-mente faacuteceis de detectar bastando para isso procurar novos processos ou programas recentemente instalados Isso levou os agressores a comeccedilar a sobrescrever os programas executaacuteveis do sistema Via de regra esses pro-gramas satildeo substituiacutedos por versotildees modificadas pelo agressor tais como versotildees do OpenSSH com nome e senha do administrador embutidas diretamente no programa com o intuito de escalar privileacutegios e obter direitos de root no sistema O adven-to de ferramentas como o Tripwire e o uso cada vez mais comum de gerenciadores de pacotes com a ca-

pacidade de verificar a integridade dos arquivos instalados no sistema ndash tais como rpm e dpkg ndash acabou por facilitar a detecccedilatildeo desse tipo de rootkit tambeacutem [1]

Rootkits para o kernelNatildeo demorou muito para que os agressores percebessem que meacuteto-dos mais sofisticados de ocultaccedilatildeo e subversatildeo eram necessaacuterios para controlar um sistema o que levou agrave criaccedilatildeo de rootkits para o kernel Assim ao modificar a tabela de ca-madas do sistema um agressor pode evitar facilmente a sua detecccedilatildeo pois em poucas palavras ele controla o que eacute exibido e como seus programas estatildeo sendo executados

Tradicionalmente um agressor usa um dos dois meacutetodos para modificar o kernel do sistema ou ele carrega um moacutedulo com coacutedigo malicioso no kernel (como o heroin por exemplo) ou modifica o kernel carregado na memoacuteria escrevendo no dispositivo especial devkmem (como o SucKIT por exemplo) A desvantagem dessa teacutecnica eacute que como esses ataques estatildeo carregados apenas na memoacuteria do sistema normalmente natildeo sobre-vivem a uma reinicializaccedilatildeo

Por mais difiacutecil que possa parecer esses rootkits podem ser detectados comparando-se a tabela atual de cha-madas do sistema com a que seria de se esperar originalmente (isto eacute examinando-se o arquivo Systemmap) Coacutepias da memoacuteria do sistema po-dem ser feitas e usadas para verificar

se o kernel carregado na memoacuteria estaacute intacto

Quando chegam a esse niacutevel o que vocecirc acha que os agressores fazem Vatildeo mais fundo ainda claro

Hardware e virtualizaccedilatildeoLanccedilado em 2006 durante a Black Hat Conference em Las Vegas o primeiro rootkit desenvolvido para comprometer diretamente o hardware foi chamado de Blue Pill [2] Os processadores mo-dernos da AMD e da Intel dispotildeem de uma gama de recursos para suportar virtualizaccedilatildeo de sistemas operacionais E como natildeo eacute mais necessaacuterio que esses rootkits modifiquem o que quer que seja no sistema operacional para funcionar eles satildeo muito mais difiacuteceis de detec-tar de modo que somente verificar a integridade da tabela de chamadas do sistema natildeo vai funcionar Contudo esses rootkits modificam a tabela de descritores de interrupccedilatildeo (IDT na sigla em inglecircs) que eacute mantida em um dos registradores do processador (o IDTR) [3]

Como passam a existir dois IDTRs no sistema comprometido ndash um real e outro falso que eacute apresentado ao sistema operacional ndash este uacuteltimo vai ocupar uma posiccedilatildeo de memoacuteria diferente da de costume Felizmente a instruccedilatildeo privilegiada Store Inter-rupt Descriptor Table (SIDT) pode ser executada a partir do espaccedilo de usuaacuterio do sistema retornando de forma confiaacutevel o conteuacutedo do IDTR

CO

LU

NA

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

15Linux Magazine 50 | Janeiro de 2009

disponiacutevel para o sistema operacional (o que natildeo serve para muita coisa pois o sistema jaacute foi comprometi-do) bem como ndash e o que eacute mais importante ndash a posiccedilatildeo da memoacuteria em que o IDTR se encontra Pare-ce que chegamos a um beco sem saiacuteda os agressores criaram novos meacutetodos para esconder os rootkits e os defensores encontraram meios para detectaacute-los

A nova geraccedilatildeo de rootkitsLanccedilados em setembro de 2008 pela Immunity Inc o DR RootKit [4] im-plementa ldquoganchosrdquo (hooks) para as chamadas de sistema no kernel Linux 26 sem modificar nem a tabela de chamadas do sistema nem a tabela de descritores de interrupccedilatildeo Para fazer isso ele introduz breakpoints de hardware no manipulador de chamadas do sistema Isso corres-

ponde agrave inclusatildeo de um ldquovigiardquo na memoacuteria da tabela de chamadas do sistema especificamente observando a entrada __NR_syscall usada para exportar nuacutemeros de chamadas do sistema Basicamente o rookit se comporta como uma ferramenta de depuraccedilatildeo de programas espe-rando que determinadas chamadas do sistema sejam executadas e mo-

dificando-as quando isso acontece Os ganchos do DR RootKit estatildeo listados na tabela 1

O DR RootKit dispotildee de recursos tais como ocultaccedilatildeo de processos e prevenccedilatildeo do teacutermino de execuccedilatildeo de processos ocultos (o que significa que um agressor pode executar pro-gramas ocultos e vocecirc natildeo tem como terminaacute-los com o comando kill

Tabela 1 Chamadas do sistema

getdents64 Lecirc entradas de diretoacuterio

getdents Lecirc entradas de diretoacuterio

chdir Muda o diretoacuterio de trabalho

open Abre um arquivo ou dispositivo

execve Executa um programa

socketcall Chamadas de sistema via socket

fork Cria um processo filho

exit Encerra o processo atual

kill Envia um sinal a um processo

getpriority Obteacutem prioridade de escalonamento para um programa

| COLUNAInseguranccedila

copy Linux New Media do Brasil Editora Ltda

16 httpwwwlinuxmagazinecombr

Mais informaccedilotildees

[1] Amir Alsbih ldquoPassagem Secreta Teacutecnicas de criaccedilatildeo de backdoorsrdquo httpwwwlinuxmagazinecombrarticlepassagem_secreta

[2] Blue Pill httpbluepillprojectorg

[3] Red Pill httpwwwinvisiblethingsorgpapersredpillhtml

[4] DR RootKit httpwwwimmunityinccomresources-freesoftwareshtml

[5] Core Security Technologies httpwwwcoresecuritycom

mesmo que vocecirc consiga descobrir a identidade ndash o ID ndash do processo) Se vocecirc usar os exemplos forneci-dos com o pacote eacute relativamente simples estender e criar outras cha-madas de sistema modificadas Por exemplo vocecirc pode alterar o conjun-to de recursos disponiacuteveis para pro-cessos ndash o capset O proacuteprio rootkit eacute um moacutedulo carregaacutevel no kernel o que simplifica sua inserccedilatildeo em um sistema comprometido Poreacutem da mesma forma que acontece com outros rootkits residentes na memoacute-ria a reinicializaccedilatildeo do sistema iraacute removecirc-lo da memoacuteria

Se vocecirc quiser estender o rootkit pode por exemplo inserir suas proacuteprias chamadas do sistema personalizadas Forneci um exemplo para alterar a chamada de sistema exit Em poucas palavras o processo consiste em de-clarar seu proacuteprio gancho para alterar uma chamada de sistema e entatildeo im-plementar uma chamada de sistema customizada ndash isso eacute realmente simples O melhor lugar para comeccedilar eacute o coacute-digo-fonte do kernel ndash mais especifica-mente no subdiretoacuterio kernel onde a maioria das chamadas do sistema satildeo definidas Por exemplo se houver um sistema no qual os recursos em uso restringem o que programas podem ou natildeo fazer vocecirc pode simplesmen-te modificar a chamada de sistema do_sys_capset_other_tasks que sempre retorna todos os recursos de um ID de processo especiacutefico como

-2376 +2379 if (capable(CAP_SETPCAP))return -EPERM+ if (pid == 12345) magic process number + return cap_set_all_evil(effective inheritable permitted)

Como vocecirc pode notar mesmo a menor das modificaccedilotildees pode ter um efeito significativo Assim de uma hora para outra o processo

com o ID 12345 teraacute sempre todos os recursos o que permite a ele fa-zer praticamente tudo o que quiser Assim com apenas uma chamada de sistema um agressor pode criar uma backdoor eficiente

O uacutenico modo de detectar um rootkit desses eacute por meio da mediccedilatildeo de atrasos ou de condiccedilotildees de corri-da (race conditions) que sejam intro-duzidas pelo rootkit Se um rootkit estivesse presente o sistema deveria ficar mais lento do que de costume mas a mediccedilatildeo dessa variaccedilatildeo natildeo eacute uma tarefa simples Aleacutem disso o programa eacute relativamente simples e pode ser estendido facilmente de modo a se esconder de maneira mais eficiente e tornando sua detecccedilatildeo ainda mais difiacutecil

Abordagem alternativaClaro que vocecirc pode comprometer um sistema e manter o acesso de outras formas enquanto permanece escondido Uma outra empresa que desenvolve software de verificaccedilatildeo de invasatildeo chamada Core Security [5] adotou uma abordagem de injetar coacutedigo hostil em processos que jaacute te-nham sido atacados Por exemplo se vocecirc criar uma brecha no conhecido servidor web Apache conseguiraacute inje-tar coacutedigo nele que lhe garanta acesso remoto ao sistema Essa teacutecnica eacute algo limitado se comparada com um roo-tkit de kernel completo ou com um rootkit de hardware A desvantagem dessa teacutecnica satildeo os mecanismos de proteccedilatildeo do sistema operacional tais como o SELinux que permanecem capazes de forccedilar uma poliacutetica de seguranccedila Contudo para agressores obstinados isso natildeo costuma ser um problema muito seacuterio pois eles podem usar um exploit local para comprome-ter ainda mais o sistema ou mesmo permanecer dentro das condiccedilotildees impostas pela poliacutetica definida pelo SELinux mas ainda sim obter infor-maccedilotildees ou usar o sistema para realizar outros ataques maliciosos

ConclusatildeoA boa notiacutecia eacute que chegando agrave camada de hardware os agresso-res (pelo menos conceitualmente) atingiram a uacuteltima camada passiacute-vel de abuso A maacute notiacutecia eacute que um grande contingente de truques de hardware pode ser usado para manter o controle sobre um sistema comprometido Por exemplo uma placa de viacutedeo moderna tem acesso direto agrave memoacuteria (o que significa que ela pode fazer o que bem en-tender com a memoacuteria do sistema sem que o sistema operacional possa interferir significativamente no pro-cesso) dispotildee de memoacuteria proacutepria e de uma grande quantidade de poder de processamento (tanto que estatildeo sendo usadas por muitos para criar clusters de baixo custo) Placas mais modernas tecircm seu firmware arma-zenado em memoacuteria flash passiacutevel de atualizaccedilatildeo por software e eu natildeo tenho a miacutenima duacutevida de que algum dia algueacutem vai criar algum meacutetodo para abusar da placa de viacutedeo com o propoacutesito de controlar um sistema comprometido

COLUNA | Inseguranccedila

copy Linux New Media do Brasil Editora Ltda

17Linux Magazine 50 | Janeiro de 2009

COLUNA

MID mais um degrau na escadaria da mobilidade

Augusto CamposNem smartphone nem subnotebook os MIDs chegam como uma nova categoria para facilitar nossas vidas

Neste iniacutecio de 2009 tive a oportunidade de segurar em minhas matildeos um pedaccedilo do futuro do desktop Soacute que natildeo se tra-

tava propriamente de um desktop ou pelo menos natildeo daquele modelo que aprendemos a conhecer com uma infinidade de arquivos gravados em um disco riacutegido ao meu alcance um ambiente de trabalho cheio de aplicativos instalados local-mente e a ocupaccedilatildeo de uma vasta aacuterea em cima da escrivaninha

Natildeo era nem mesmo um daqueles notebooks pequeninos estilo Eee PC que foram se popula-rizando mundialmente ao longo de 2008 Era algo menor mais singelo mas com poder de processa-mento surpreendente um Aigo MID equipamento do qual provavelmente vocecirc ainda natildeo ouviu falar ndash ateacute porque ele parece estar bem distante do nosso mercado neste momento

Os MIDs ou Mobile Internet Devices satildeo dis-positivos que parecem ficar entre os smartphones e os subnotebooks de hoje Como em uma cadeia darwiniana eu ateacute apostaria que os mais bem-suce-didos entre eles vatildeo acabar ficando no nicho exato que hoje eacute ocupado por um destes dois extremos (os smartphones ou os subnotebooks) ateacute mesmo porque essas fronteiras vatildeo ficando cada vez mais difusas com o passar do tempo Mas hoje eles satildeo uma categoria agrave parte e torccedilo para que suas carac-teriacutesticas e possibilidades sejam logo herdadas pelos celulares (ou pelos subnotebooks)

O equipamento com o qual tive oportunidade de brincar um pouco tem caracteriacutesticas de um PC de pequeniacutessimo porte com um display sufi-cientemente grande para mostrar os sites da web 20 nossos de cada dia um teclado escamoteaacutevel cacircmera microfone e acesso a redes Wi-Fi Alguns modelos tecircm acesso agrave conectividade via redes mais amplas (CDMA 3G etc) mas natildeo eacute o caso do meu E eles permitem fazer o que eu mais faccedilo no meu desktop diariamente acessar a web comuni-car-me por IM VoIP e email consultar (ou editar levemente) documentos e textos e ateacute digitar esta coluna que vocecirc estaacute lendo

E o mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres como o Firefox e o Pidgin entre vaacuterios outros E nem eacute soacute pela questatildeo do custo de aquisiccedilatildeo esses aplicativos livres satildeo leves por natureza e ainda podem ser alterados de acordo com as especificaccedilotildees do aparelho no qual seratildeo distribuiacute-dos seja para ocupar menos disco preencher menos memoacuteria RAM ou mesmo gastar menos bateria

Hoje o acesso agrave Web eacute cada vez mais uma condiccedilatildeo para que eu possa desempenhar bem as minhas ativi-dades e quanto mais rico esse acesso melhor a cada dia eacute necessaacuterio interagir digitar textos captar imagens comunicar-se por viacutedeo e voz conectar-se a redes de

variadas tecnologias abertas Acredito que em algum momento os celulares vatildeo estar aptos a prover com con-forto e economia esses recursos e que vatildeo estar rodando um sistema operacional livre quando o fizerem

Enquanto esse dia natildeo chega eacute interessante ver como a induacutestria avanccedila nesta direccedilatildeo por vias obliacute-quas que convergem em uma direccedilatildeo que muito nos interessa softwares livres conectando-se a pro-tocolos abertos e provendo serviccedilos que facilitam as nossas vidas

COLUNA

Sobre o autorAugusto Ceacutesar Campos eacute administrador de TI e desde 1996 manteacutem o site BR-linuxorg que cobre a cena do Software Li-vre no Brasil e no mundo

O mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres

copy Linux New Media do Brasil Editora Ltda

18

NO

TIacuteC

IAS

httpwwwlinuxmagazinecombr

Xen ganha recursos e promete integraccedilatildeoKeir Fraser da Xensource (atualmente Citrix) anunciou na lista xen-devel a disponibilidade de uma aacutervore com o coacutedigo-fonte para criaccedilatildeo de um dom0 completo do Xen no kernel Linux 2627

Segundo Keir ldquoa intenccedilatildeo eacute fornecer uma aacutervore uacutenica para desenvolvimento e testes voltada aos desenvolvedores que pre-cisarem de um kernel 26 mais modernordquo e menciona o geren-ciamento de energia como um dos motivos para isso

O porte da funcionalidade de dom0 do Xen para o Linux atu-almente depende da implementaccedilatildeo final das pv_ops (operaccedilotildees para-virtualizadas) um conjunto de ldquoganchos de coacutedigordquo (hooks) no kernel que permitem sua operaccedilatildeo mediante o uso da teacutecnica de para-virtualizaccedilatildeo Atualmente o escopo de funcionalidade das pv_ops permite apenas o funcionamento do Linux como

Alta disponibilidadeManter a sincronizaccedilatildeo perfeita de muacuteltiplos servidores Xen cada um com diversas maacutequinas virtuais natildeo eacute tarefa das mais faacuteceis Atualmente eacute preciso replicar arquivos de configuraccedilatildeo entre os servidores e manter sincronizado todo o restante da estrutura

Felizmente tudo isso pode mudar para melhor com o projeto Kemari Trata-se de um software de coacutedigo aberto (GPL) descrito por seus autores como ldquoum mecanismo de coacutedigo aberto para sin-cronizaccedilatildeo de maacutequinas virtuais para toleracircncia a falhas Oferece uma teacutecnica utilizaacutevel para toleracircncia a falhas que natildeo requer o uso de hardware especiacutefico ou a modificaccedilatildeo dos aplicativos ou sistema operacionalrdquo

Lanccedilado o Fedora 10Seis meses apoacutes o lanccedilamento do Fedora 9 o projeto livre lanccedilou a versatildeo 10 da popular distribuiccedilatildeo Linux codinome Cambridge

O Fedora 10 usa o kernel Linux 26275 anunciado no uacuteltimo dia 7 O projeto tambeacutem estaacute buscando trazer seus softwares a um novo niacutevel e ele inclui o OpenOfficeorg 30 Gnome 2241 Eclipse 34 e RPM 46 O produto promete um melhor gerenciamento de impressoras e alguns interessantes recursos de vir-tualizaccedilatildeo No momento o KVM estaacute disponiacutevel por padratildeo no Fedora 10 na versatildeo 74-5 (no Fedora 9 o KVM era apenas uma opccedilatildeo) Certamente a aquisiccedilatildeo da Qumranet criadora e desenvolvedora do KVM pela Red Hat patrocinadora do Fedora tem grande influecircncia nisso No entanto o uso do KVM natildeo implica a rejeiccedilatildeo do ldquoconcorrenterdquo Xen o hypervisor tradicional estaacute presente na versatildeo 330-1 As ferramentas de virtualizaccedilatildeo de criaccedilatildeo do proacuteprio Fedora como a libvirt e o virt-manager tambeacutem estatildeo incluiacutedas

Outra importante novidade do Fedora 10 eacute seu tempo de inicializaccedilatildeo que foi reduzido graccedilas ao novo sistema graacutefico de inicializaccedilatildeo Plymouth

domU (ou seja como maacutequina virtual) enquanto o kernel do dom0 ainda eacute res-trito agrave versatildeo 2618 do Linux

A expectativa eacute que os desenvolvedores da Novell que estatildeo trabalhando nessa ta-refa consigam incrementar as pv_ops de forma a permitir seu uso tambeacutem como dom0 o que permitiria o uso de versotildees mais recentes do kernel Linux (com to-das as vantagens que trazem) no dom0 Posteriormente as novas pv_ops tambeacutem devem ser incluiacutedas na aacutervore principal do kernel unindo definitivamente os projetos Xen e Linux

O objetivo do projeto eacute ldquomanter as maacute-quinas virtuais rodando transparentemente em caso de falhas de hardwarerdquo Para isso ele ldquotransfere o estado da maacutequina virtual primaacuteria para a secundaacuteria quando a pri-maacuteria estaacute prestes a enviar um evento para dispositivos como armazenamento e rederdquo como descreve o anuacutencio do projeto

Espera-se que o Kemari seja integra-do ao Xen 34 a proacutexima versatildeo estaacutevel do popular sistema de virtualizaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

O Linux Professional Institute ndash oacutergatildeo responsaacutevel pela certificaccedilatildeo em Linux que mais cresce no mundo ndash realizou no Brasil a primeira aplicaccedilatildeo das provas 303 Elas correspon-dem agrave categoria especialista do niacutevel 3 da certificaccedilatildeo e qualificam o profissional aprovado como ldquoSecurity Specialistrdquo As provas (grauitas) ocorreram na cidade de Satildeo Paulo no dia 20 de dezembro de 2008

O Programa de Certificaccedilatildeo LPI eacute composto por dois niacuteveis baacutesicos com duas provas cada um As provas do niacutevel 1 (101 e 102) certificam o profissional como ldquoAdministrador Linux Juacuteniorrdquo e as do niacutevel 2 (201 e 202) como ldquoAdministrador Linux Plenordquo

O niacutevel 3 da certificaccedilatildeo LPI eacute focado no mercado corporativo O profissional precisa se certificar obrigatoria-mente na prova 301 (Core) e depois escolher uma das especialidades disponiacuteveis Atualmente a uacutenica disponiacutevel eacute a prova 302 (Mixed Environment) para profissionais que queiram se especializar em interoperabilidade em ambientes mistos (Linux Unix Netware e Windows) A prova lsquo303 - Securityrsquo eacute a segunda especialidade a ser lanccedilada pelo LPI A prova 303 estaacute sendo realizada em caraacuteter de teste antes de ser lanccedilada oficialmente

19

Xen ganha recursos e promete integraccedilatildeo

Linux Magazine 50 | Janeiro de 2009

Gerais | NOTIacuteCIAS

LPI lanccedila provas 303 no Brasil

Google Android no Openmoko Linux versus OpenSolaris e FreeBSD

O site dedicado a Software Livre e hard-ware Phoronix publicou um comparativo de velocidade (benchmark) na realizaccedilatildeo de diversas tarefas entre os sistemas ope-racionais mais famosos baseados em ker-nels de coacutedigo aberto Ubuntu OpenSolaris e FreeBSD

Os testes utilizaram a versatildeo instaacutevel de 64 bits mais recente de cada um dos sistemas (com exceccedilatildeo do Ubuntu cuja versatildeo foi a 810 final) e se basearam no proacuteprio pacote de benchmarks de coacutedigo aberto desenvol-vido pela equipe do Phoronix (e em raacutepida evoluccedilatildeo) o Phoronix Test Suite

Os autores concluem o artigo decla-rando o Ubuntu 810 como vencedor no desempenho mas o representante do ker-nel Linux natildeo foi o campeatildeo em todas as categorias venceu em oito dos 18 testes contra sete vitoacuterias do OpenSolaris e trecircs do FreeBSD

Poucos dias depois os autores retornaram ao ambiente de testes e fizeram o compara-tivo entre o tambeacutem recente Ubuntu 810 e o Fedora

Foram usadas as versotildees de 32 e 64 bits de ambos os sistemas e os testes empregados foram os mesmos do benchmark anterior com o Phoronix Test Suite

O resultado dessa comparaccedilatildeo no entan-to natildeo foi conclusivo as distribuiccedilotildees Linux se saiacuteram praticamente igual com respeito ao desempenho nos testes

Institute

LinuxProfessional

R

A Koolu empresa canadense especializada no desenvolvimento de soluccedilotildees de tecnologia ambientalmente corretas disponibili-zou o coacutedigo-fonte da plataforma Android do Google adaptado ao telefone Openmoko FreeRunner cujo desenvolvimento contou com esforccedilo e total colaboraccedilatildeo da comunidade internacional do Software Livre

O anuacutencio foi realizado no IP Communications Brasil 2008 evento internacional sobre comunicaccedilotildees IP por Jon lsquomaddogrsquo Hall CTO da Koolu e Denis Galvatildeo presidente da paranaense iSolve Durante o evento tambeacutem foi anunciado o acordo nome-ando a iSolve como canal master de distribuiccedilatildeo do Openmoko FreeRunner no Brasil

O Android foi lanccedilado como um software livre no final de outu-bro de 2008 poreacutem muito trabalho precisou ser realizado para que esse coacutedigo pudesse funcionar em telefones de outros fabricantes O FreeRunner telefone com design aberto desenvolvido pela empresa taiwanesa Openmoko demandou uma seacuterie de alteraccedilotildees no coacutedigo-fonte do Android para que ele pudesse fun-cionar corretamente A comunidade de Software Li-vre com ajuda de vaacuterias pessoas ao redor do mundo realizou as implementaccedilotildees necessaacuterias e tornou possiacutevel a execuccedilatildeo do Android no FreeRunner

ldquoAgora que o coacutedigo-fonte jaacute estaacute rodando no FreeRunner es-peramos que os retoques finais estejam prontos rapidamenterdquo dis-se Brian Code diretor teacutecnico da Koolu ldquoA criaccedilatildeo do ambiente para compilaccedilatildeo (toolchain) a criaccedilatildeo dos patches necessaacuterios para tornar o coacutedigo compatiacutevel com o telefone e a documentaccedilatildeo de todo o passo-a-passo do processo de construccedilatildeo do software toma-ram um bom tempo mas agora estaacute mais faacutecil para a comunidade do Software Livre desenvolver e realizar modificaccedilotildees nessa pla-taforma Como um exemplo as aplicaccedilotildees moacuteveis Google Apps bem como outra aplicaccedilotildees corporativas podem ser instaladas e otimizadas para essa plataformardquo

copy Linux New Media do Brasil Editora Ltda

20

CO

RP

OR

ATE

httpwwwlinuxmagazinecombr

ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

Keith Curtis funcionaacuterio por vaacuterios anos da Microsoft conclui em seu livro receacutem-lanccedilado que o futuro do software estaacute no modelo de desenvolvimento de coacutedigo aberto Curtis trabalhou para a Microsoft como de-senvolvedor de software de 1993 a 2004 tendo participado do desenvolvimento dos produtos para bancos de dados da empresa bem como na programaccedilatildeo do Windows do Office e do MSN entre outros No final de 2008 ele publicou o livro intitulado ldquoAfter the Software Warsrdquo (Depois das Guerras do Software) que descreve o processo de produccedilatildeo de software do ponto de vista de um desenvolvedor analisa os possiacuteveis avanccedilos nesse processo no futuro e aborda desde toacutepicos como inteligecircncia artificial culminando no desenvolvimento de sistemas que possibilitem viagens espaciais

A ediccedilatildeo online do The New York Times fez uma resenha do livro e relatou a nova trajetoacuteria do ex-funcio-naacuterio da gigante de Redmond ldquoPara o Sr Curtis a forccedila do software de coacutedigo aberto e o motivo pelo qual esse eacute o modelo de desenvolvimento do futuro estatildeo no fato de que por meio deste a inteligecircncia coletiva eacute estimuladardquo Segundo Curtis ldquoas diferenccedilas entre Software Livre e software natildeo-livre ou proprietaacuterio satildeo comparaacuteveis agraves diferenccedilas existentes entre ciecircncia e alquimia Antes de a ciecircncia se estabelecer havia apenas alquimia na qual as pessoas tentavam proteger suas ideacuteias pois elas desejavam dominar o mercado desenvol-vendo um processo para transformar chumbo em ourordquo

Curtis publicou seu livro usando a plataforma lulucom cujo fundador e diretor executivo eacute Bob Young veterano da cena Open Source e ex-CEO da Red Hat

Sun lanccedila MySQL 51Na nova versatildeo do banco de dados de coacute-digo aberto os desenvolvedores se concen-traram no desempenho o que aumentou a velocidade do programa em surpreendentes 15 Entre as novidades haacute cinco novos meacutetodos de particionamento horizontal range hash key list e composite Outros recursos novos satildeo a replicaccedilatildeo hiacutebrida e o agendador de eventos (event scheduler) que permite a automatizaccedilatildeo de tarefas SQL repetitivas

Os sistemas operacionais suportados satildeo Red Hat Enterprise Linux Suse Linux En-terprise Windows Mac OS X FreeBSD HP-UX IBM AIX IBM i5OS e todas as distribuiccedilotildees Linux

A Sun disponibiliza trecircs versotildees do soft-ware para download Community Server sob a GPL Enterprise Server com base em subscriccedilatildeo (assinatura do serviccedilo) e Embedded Server esta com licenccedila co-mercial proprietaacuteria

MS Windows eacute mais econocircmicoA Microsoft fez de novo um estudo recente encomendado pela empresa ldquoconcluiurdquo que eacute mais barato para empresas usar o Win-dows como plataforma de software A revista australiana iTWire analisou o estudo e fez algumas descobertas interessantes

O que parece agrave primeira vista (com perdatildeo do trocadilho) ser uma histoacuteria de sucesso na realidade natildeo eacute mdash nem de longe em primeiro lugar natildeo haacute economia alguma O que haacute satildeo apenas estimativas da Microsoft segundo as quais a empresa britacircnica Speedy Hire deveraacute economizar 200 mil libras por ano em de-corriencia da utilizaccedilatildeo do Windows

A anaacutelise do estudo disponiacutevel em artigo no site australiano iTWirecom faz um raio-X da ldquoeconomiardquo sugerida pela em-presa de Bill Gates Elas comeccedilam pelo hardware jaacute que no projeto foram utilizados terminais leves para Windows mdash que seriam inexplicavelmente mais baratos do que aqueles equipados com Linux O estudo natildeo menciona nem ldquoen passantrdquo que haacute

alternativas bem mais baratas aos modelos V90 da empresa Wyse equipados com Windows como

os V50 preacute-carregados com Linux Nesse esti-lo o artigo vai revelando de onde vieram as ldquoreduccedilotildees de custordquo obtidas pela Microsoft que vatildeo transformam em vapor agrave medida que

prosseguimos na leitura Estamos curiosos para saber o que sobra da economia de 1 milhatildeo de

libras apoacutes os cinco anos

copy Linux New Media do Brasil Editora Ltda

21

Google e Red Hat firmam parceria

A Red Hat assinou em dezembro um acordo com o Google para trazer os principais de-senvolvedores da empresa para a plataforma de construccedilatildeo de aplicaccedilotildees web Google Web Tookit Com o acordo estabelece-se tambeacutem o suporte do servidor de aplicaccedilotildees da Red Hat o JBoss ao GWT

Aleacutem da assinatura do acordo a Red Hat tambeacutem anunciou que jaacute completou algumas integraccedilotildees preliminares entre o GWT e o JBoss Seam Framework Com a integraccedilatildeo a empresa alavanca o Seam para que os desen-volvedores possam combinar o poder do Java agraves modernas tecnologias view-layer como GWT RichFaces e Spring para desenvolver os Rich Internet Applications

Linux Magazine 50 | Janeiro de 2009

| CORPORATENotiacutecias

Insigne jaacute planeja 2012A fornecedora do Insigne Momentum 50 quer manter sua po-siccedilatildeo de lideranccedila no Brasil e conquistar novos mercados in-clusive no exterior O sucesso de sua participaccedilatildeo no projeto de inclusatildeo digital Computador para Todos fez com que a Insigne Free Software do Brasil conquistasse forte posiccedilatildeo de lideran-ccedila no mercado dos PC populares e tambeacutem ficasse conhecida em outros paiacuteses Esse cenaacuterio positivo lhe permitiu iniciar ne-gociaccedilotildees com fabricantes estrangeiros de PC para embarcar o Insigne Momentum 50 sistema operacional de coacutedigo aberto em microcomputadores fora das fronteiras nacionais

Para atingir a meta de manter seu crescimento perante a perspectiva de elevaccedilatildeo das vendas de PCs nos proacuteximos anos a empresa contratou o consultor de estrateacutegia e professor de engenharia Carlos Roberto Lopes As atividades envolvidas no planejamento estrateacutegico incluem uma seacuterie de workshops com todas as equipes e departamentos da Insigne O objetivo eacute coletar impressotildees dos colaboradores e lhes apresentar as mais recentes mudanccedilas ocorridas no mercado global incluindo a atual situaccedilatildeo econocircmica mundial que poderaacute alterar a correlaccedilatildeo de forccedilas entre os fornecedores de tecnologia nos proacuteximos anos

De acordo com Joatildeo Pereira da Silva Jr presidente da Insigne esse planejamento incluiraacute natildeo apenas o foco no seu cliente que eacute o usuaacuterio do PC popular mas tambeacutem em toda a sua equipe de profissionais envolvidos em todas as etapas de desenvolvimento de um sistema operacional de coacutedigo abertordquo

VMware adquire Tungsten GraphicsA VMware adquiriu por um valor natildeo revelado as operaccedilotildees da empresa Tungsten Graphics fundada em 2001 e motor por traacutes do desenvolvimento da implementa-ccedilatildeo de coacutedigo aberto do OpenGL no Linux a biblioteca Mesa 3D

Aleacutem da Mesa 3D a empresa tambeacutem desenvolve o Gallium 3D framework para desenvolvimento de drivers graacuteficos 3D A Tungsten Graphics eacute formada por um grupo de desenvolvedores de aplicativos graacuteficos de coacutedigo aberto Segundo a FAQ no site da empresa o desenvolvimento dos projetos de coacutedigo aberto encabeccedilados por ela continuaraacute agora como parte das atividades da equipe de engenharia da VMware A aquisiccedilatildeo teria como objetivo melhorar o suporte a graacuteficos 3D em ambientes virtualizados

Mandriva demite dois desenvolvedoresA situaccedilatildeo financeira da Mandriva parece estar ruim Em dezembro a empresa anunciou que ao final de 2008 terminaria o contrato de dois de seus funcionaacuterios Adam Williams (na praacutetica o Community Manager) e o mantenedor de pacotes Oden Eriksson

Os dois desenvolvedores escreveram para a lista de emails do Cooker (Adam Williams Oden Eriksson) Enquanto Adam Williams eacute considerado por muitos como a base da co-munidade do Mandriva Oden manteacutem aproximadamente 1200 pacotes principalmente na aacuterea de servidores incluindo todos os pacotes do stack LAMP

Entretanto a comunidade do Mandriva natildeo pretende esperar sentada a efetivaccedilatildeo dessa decisatildeo Jaacute haacute uma peticcedilatildeo para tentar convencer a empresa a manter pelo me-nos Williams

copy Linux New Media do Brasil Editora Ltda

22 httpwwwlinuxmagazinecombr

CO

RP

OR

ATE

Entrevista com Armstrong Lemos chefe do departamento de TI da CAEMA

Saneada pelo LinuxO Linux entrou com forccedila na Companhia de Aacuteguas e Esgotos do Maranhatildeo proporcionando economia e ganhos fundamentais para a sauacutede da empresa por Pablo Hess

A Companhia de Aacuteguas e Esgo-tos do Maranhatildeo (CAEMA) eacute uma sociedade de economia

mista com capital de investimento predominantemente do Estado do Maranhatildeo Fundada haacute 42 anos a CAEMA atua no fornecimento de aacutegua coleta e tratamento de esgotos Atua em 146 municiacutepios maranhenses com abastecimento de aacutegua sendo que somente em trecircs (Satildeo Luis Im-peratriz e Barreirinhas) faz a coleta de esgotosLinux Magazineraquo Como e por que a CAEMA comeccedilou a usar LinuxArmstrong Lemosraquo A CAEMA opera com deacuteficit de quase R$ 5 milhotildees por mecircs que satildeo repassados pelo governo do estado para comple-mentaccedilatildeo das despesas Isso muito se deve a sua funccedilatildeo social que eacute a de universalizaccedilatildeo do abastecimento de aacutegua no estado Natildeo eacute uma ati-vidade meramente econocircmica mas tambeacutem social

O sistema comercial jaacute foi bloque-ado por falta de pagamento Quanto mais a CAEMA ampliava sua rede de atendimento mais caro pagava pelo uso do sistema sendo que a empresa prestadora mantinha relaccedilatildeo de pou-ca paciecircncia com os atrasos no paga-mento que deveriam ser realizados no dia cinco de cada mecircs Como a

companhia possuiacutea e ainda possui di-ficuldades de arrecadaccedilatildeo esse prazo nem sempre era cumprido

Outros fatores aliados a esse contri-buiacuteram para que no iacutenicio da gestatildeo da atual diretoria se iniciasse um pro-cesso de diagnoacutestico geral da empresa Com esse estudo ficou clara a situa-ccedilatildeo em que se encontravam diversos setores estrateacutegicos da companhia entre eles o de informaacutetica

Tiacutenhamos um parque de aproxi-madamente 500 maacutequinas com vaacuterios problemas principalmente adwares spywares e viacuterus Havia ainda proble-mas de conectividade e processamento em fun-ccedilatildeo do Windows natildeo se adequar ao perfil do hardware fazendo com que o equipamento ti-vesse baixa performan-ce As atualizaccedilotildees com Windows tornavam-se inviaacuteveis nos computa-dores com perfil padratildeo de dois ou mais anos

O departamento natildeo possuiacutea outra funccedilatildeo aleacutem do suporte de ma-nutenccedilatildeo de computado-res e impressoras muitos jaacute ultrapassados uma vez que o uacuteltimo investimen-

to feito em TI na companhia ocorreu no ano 2000

A telefonia as escolhas teacutecni-cas o gerenciamento de contratos de sistemas e outras atividades natildeo eram exercidas pelo departamen-to de informaacutetica Natildeo havia uma poliacutetica definida de TI na empresa e natildeo se dispunha de recursos para investimento Muitos dos sistemas utilizados pela empresa eram piratas e natildeo possuiacuteam suporte O banco de dados da companhia natildeo dispunha mais de suporte de software e o de-partamento de informaacutetica natildeo tinha

Armstrong Lemos chefe do departamento de TI da CAEMA

copy Linux New Media do Brasil Editora Ltda

23Linux Magazine 50 | Janeiro de 2009

| CORPORATECAEMA

conhecimento dos relacionamentos dos dados contidos nele

Apoacutes o diagnoacutestico e reuniotildees so-licitou-se agrave diretoria administrativa da empresa agrave qual a informaacutetica eacute subordinada para que submetesse ao conselho de administraccedilatildeo o resta-belecimento das funccedilotildees relativas agrave aacuterea de TI incluindo telefonia

Aleacutem dessas accedilotildees de retomada das atribuiccedilotildees estruturamos uma equipe de programaccedilatildeo uma equipe de projetos estrateacutegicos e reestrutu-ramos a equipe de suporte teacutecnico tudo isso para viabilizar a poliacutetica de Software Livre da CAEMA

LMraquo Em que consiste essa poliacutetica de Software LivreALraquo Estabelecemos vaacuterias etapas como o desenvolvimento do Livre Linux e do sistema de protocolo via Web a migraccedilatildeo do sistema comer-cial (GSAN) a formaccedilatildeo de monito-res de treinamento e o treinamento dos usuaacuterios na soluccedilatildeo completa (GSAN Livre Linux BrOfficeorg e sistema de protocolo) seguida pela articulaccedilatildeo do Movimento Software Livre Maranhatildeo

LMraquo Como foi a evoluccedilatildeo do uso do Software Livre dentro da empresaALraquo Precisaacutevamos resolver dois fatores que impediam o avanccedilo da politica de Software Livre na empresa o sistema de protocolo em Windows e o sistema comercial tambeacutem em Windows e com arquitetura cliente-servidor Aleacutem disso determinou-se a substituiccedilatildeo deles por um novo sistema que per-mitisse a ampliaccedilatildeo da nossa rede de atendimento e que ainda propiciasse a autonomia no gerenciamento dos dados da companhia

O sistema de protocolo foi resol-vido a partir do desenvolvimento do sistema livre Balula feito pela equi-pe de programaccedilatildeo e Software Livre da CAEMA Hoje o protocolo estaacute agrave disposiccedilatildeo dos demais oacutergatildeos puacutebli-cos para serem implementados sem

qualquer custo adicional atraveacutes de parceria sem ocircnus entre a CAEMA e o oacutergatildeo interessado

Ainda em novembro todos os computadores de atendimento co-mercial das unidades da CAEMA passaram a utilizar o Livre Linux como sistema operacional

LMraquo Como eacute a situaccedilatildeo atualALraquo Hoje utilizamos o GSAN com banco de dados PostgreSQL Com isso estamos ampliando o atendi-mento aos municiacutepios onde nosso sistema comercial antigo natildeo fun-cionava pois era inviabilizado pelo custo alto de contrataccedilatildeo de serviccedilos de transmissatildeo de dados junto agraves operadoras locais Atualmente com uma simples conexatildeo via raacutedio que existe em todos os municiacutepios onde a CAEMA atua faremos a integraccedilatildeo com o novo sistema

Estatildeo rodando na plataforma Linux todos os sistemas Web (comercial protocolo frotas juriacutedico cadastro segunda via de contracheque) etc Estamos com Livre Linux nos setores de atendimento help desk adminis-trativo e em todos os servidores

Vamos estender essa implantaccedilatildeo para os demais setores salvo maacutequinas que possuam aplicativos em Windows sem similares no mundo Linux (que satildeo casos mais raros)

LMraquo Em quanto tempo a CAEMA espera obter o retorno do investi-mento em Software Livre

ALraquo O custo total foi de R$ 104 milhotildees para o sistema comercial e o banco de dados Isso representa uma economia de R$ 360 milhotildees ao lon-go de quatro anos somente nesses dois sistemas Os levantamentos sobre a substituiccedilatildeo do sistema operacional Windows por Linux do proprietaacuterio Microsoft Office pelo BrOfficeorg e programas pagos estatildeo sendo le-vantados o que poderaacute representar uma economia de aproximadamente meio milhatildeo de reais

LMraquo Quanto tempo durou a mi-graccedilatildeoALraquo Aproximadamente oito meses com um analista de sistemas da CAE-MA e mais dois analistas de sistemas quatro programadores e um analista de suporte e bancos de dados de nos-so prestador de serviccedilos (Domiacutenio) aleacutem de quatro analistas de sistemas e um DBA do IPAD

LMraquo Qual a opiniatildeo da direccedilatildeo da empresa sobre o Software LivreALraquo O convencimento junto agrave dire-toria foi de estabilidade e custo fi-nanceiro devido agrave situaccedilatildeo em que estaacutevamos Hoje haacute o reconhecimento quanto agraves soluccedilotildees implantadas e o estiacutemulo para a descoberta de novas alternativas A diretoria percebe as vantagens de total liberdade e au-tonomia de uso e configuraccedilatildeo das ferramentas livres que tornaram a migraccedilatildeo teacutecnica e economicamen-te viaacutevel

LMraquo E a sua opiniatildeo sobre o mer-cado de Software LivreALraquo O mercado de Software Livre no paiacutes estaacute maduro Muitas empresas estatildeo habilitadas para a execuccedilatildeo e a manutenccedilatildeo de projetos livres Seguindo essa tendecircncia grandes empresas tecircm accedilotildees nesse foco No entanto temos carecircncia de empresas privadas que prestem suporte a bancos de dados livres assim como eacute carente o uso desses bancos em aplicaccedilotildees comerciais proprietaacuterias

LMraquo O movimento Software Livre Maranhatildeo jaacute rendeu frutosALraquo No dia 14 de novembro reali-zamos o I Encontro de Articulaccedilatildeo de Software Livre Maranhatildeo para apresentar aos demais gestores de TI do Estado a alternativa de uso de Software Livre pelo governo e articulaccedilatildeo de um movimento in-dependente para fortalecimento dessa poliacutetica

copy Linux New Media do Brasil Editora Ltda

24 httpwwwlinuxmagazinecombr

Como participar da comunidade Open Souce

Cezar TaurionUma anaacutelise do desenvolvimento do kernel Linux

Haacute alguns dias li um interessante artigo de Jona-than Corbet ldquoHow to participate in the Linux Communityrdquo[1] Ele descreve como funciona

o processo de desenvolvimento do kernel Linux e eacute uma excelente fonte de referecircncia para quem estiver interessado em colaborar com a comunidade ou mes-mo conhecer como funciona por dentro o modelo de governanccedila de um projeto de coacutedigo aberto

O kernel Linux tem mais de 6 milhotildees de linhas de coacutedigo e aglutina mais de mil contribuidores ativos Eacute um dos maiores projetos de coacutedigo aberto do mun-do Seu sucesso tem atraiacutedo muitos colaboradores a maioria inclusive pertencendo a empresas que que-rem participar do projeto A questatildeo eacute como entrar e ser um participante ativo da comunidade

Cada comunidade Open Source tem suas proacuteprias regras de conduta e modelos de governanccedila Enten-der como funciona a comunidade que desenvolve o kernel eacute essencial para ser um colaborador e tam-beacutem abre ideacuteias para aprendermos como funciona um projeto Open Source

A primeira seccedilatildeo do artigo mostra a importacircncia de se inserir todo coacutedigo na aacutervore principal do ker-nel para se evitar a proliferaccedilatildeo de forks e futuras ldquobombas reloacutegiordquo Por exemplo um coacutedigo inse-rido no kernel principal passa a ser visto mantido e refinado por toda a comunidade resultando em coacutedigo de alta qualidade Quando o coacutedigo eacute man-tido separado natildeo soacute natildeo recebe contribuiccedilotildees ex-ternas como corre o risco de funcionalidade similar ser incorporada por outro desenvolvedor ao coacutedigo principal fazendo com que o coacutedigo isolado fique cada vez mais difiacutecil e custoso de ser mantido Esse alerta eacute feito porque muitas empresas envolvidas em projetos de software embarcado tendem a acre-ditar que seu coacutedigo pela sua especificidade deve ser mantido de forma isolada da aacutervore principal do kernel o que eacute um grande erro A seccedilatildeo tambeacutem descreve as razotildees por que toda contribuiccedilatildeo deve ser ldquoassinadardquo Eacute necessaacuterio para se evitar eventuais problemas de propriedade intelectual

A seccedilatildeo dois eacute bem interessante pois descreve como funciona o processo de desenvolvimento do kernel e a nomenclatura usada para designar as diversas versotildees

Explica tambeacutem como eacute criado uma versatildeo estaacutevel e o ciclo de vida dos patches Descreve como um patch eacute inserido no kernel e cita alguns dados curiosos A seccedilatildeo tambeacutem descreve as regras de etiqueta da comunidade na troca de mensagens e o uso das listas de email

As outras seccedilotildees descrevem o processo de plane-jamento da evoluccedilatildeo do kernel debatendo as etapas de avaliaccedilatildeo as discussotildees com a comunidade para definir o que e como seraacute feito os estilos de escrita (que garantem a qualidade do coacutedigo) as ferramen-tas de depuraccedilatildeo usadas a documentaccedilatildeo que deve ser gerada e assim por diante

A seccedilatildeo seis mostra como deve ser feito o tra-balho em colaboraccedilatildeo Cada patch eacute revisado por desenvolvedores que vocecirc natildeo conhece o que mui-tas vezes pode gerar algum desconforto Existem algumas recomendaccedilotildees de como se portar nessas situaccedilotildees meio desagradaacuteveis e de como evitar dis-cussotildees desgastantes Trabalhar em colaboraccedilatildeo eacute um exerciacutecio ao qual muitos desenvolvedores natildeo estatildeo acostumados Para muita gente ter um estra-nho revisando seu coacutedigo e expondo as falhas em puacuteblico eacute no miacutenimo desconfortaacutevel

Enfim a leitura desse documento eacute obrigatoacuteria para todos que estejam realmente interessados em conhecer mais a fundo o que eacute o movimento Open Source e os aspectos do desenvolvimento colabora-tivo que o caracterizam

CORPORATE

Mais informaccedilotildees

[1] Jonathan Corbet ldquoHow to participate in the Linux Communityrdquo httpldnlinuxfoundationorgbookhow-participate-linux-community

Sobre o autor

Cezar Taurion (ctaurionbribmcom) eacute geren-te de novas tecnologias aplicadas da IBM Bra-sil e editor do primeiro blog da Ameacuterica Latina do Portal de Tecnologia da IBM developerWorks Seu blog estaacute disponiacutevel em httpwww-03ibmcomdeveloperworksblogspagectaurion

CORPORATE

copy Linux New Media do Brasil Editora Ltda

25

Argumentando em favor do Software Livre

Jon lsquomaddogrsquo HallA comunidade do Coacutedigo Aberto natildeo dispotildee de um seacutequumlito de advogados e consultores de marketing e comunicaccedilatildeo Quando se trata de argumentar em favor do Software Livre vocecirc provavelmente teraacute que assumir esse papel

A ldquocenardquo juriacutedica envolvendo o Software Li-vre estaacute sempre em movimento Decisotildees de tribunais e accedilotildees governamentais estatildeo

sempre reformulando o panorama legal e tecircm efei-tos bruscos na ldquotemperaturardquo do desenvolvimento desse tipo de aplicaccedilatildeo

Uma lei proposta recentemente tinha por obje-tivo ajudar a eliminar a pornografia infantil mas foi modificada para limitar todo e qualquer tipo de liberdade na Internet a ponto de ndash nas palavras de um dos legisladores ndash dificultar o desenvolvimento de tecnologias como redes mesh

No mecircs passado escrevi sobre minha experiecircncia em testemunhar perante uma assembleacuteia nacional sobre uma lei considerada pioneira relativa ao mun-do open source Muito embora oportunidades como essa natildeo apareccedilam todos os dias eacute surpreendente a frequumlecircncia com que os governos ndash em todos os niacute-veis ndash satildeo confrontados com toacutepicos relacionados agrave comunidade open source

Seu governo local tambeacutem gasta dinheiro com software Algumas diretorias de escola gastam mes-mo milhares de doacutelares em aplicativos proprietaacuterios mesmo que suas contrapartes de coacutedigo aberto este-jam disponiacuteveis a um preccedilo muito inferior A maio-ria dos governos locais e das diretorias das escolas dispotildeem entretanto de um tempo para ouvir o cidadatildeo ndash e vocecirc poderia usar esse tempo para lhes dizer o que vocecirc pensa a respeito disso Melhor ain-da vocecirc poderia reunir um grupo de amigos com os mesmos ideais para argumentar em favor do uso de Software Livre

Se vocecirc for chamado para avaliar uma proposta de regulamentaccedilatildeo ou orccedilamento certifique-se de tecirc-la estudado profundamente Natildeo deixe de co-nhecer os poliacuteticos eleitos envolvidos no processo Com frequumlecircncia poliacuteticos locais estatildeo dispostos a discutir esses toacutepicos com vocecirc diretamente E se vocecirc marcar uma reuniatildeo natildeo se esqueccedila de ldquoestar apresentaacutevelrdquo (como sua matildee provavelmente diria)

e de manter a calma lanccedilando matildeo de uma argu-mentaccedilatildeo plausiacutevel

A maneira mais simples de se envolver em niacutevel nacional com esse tipo de legislaccedilatildeo eacute por meio de uma carta A maioria dos legisladores possui um email mas eles recebem milhares de mensagens todos os dias e a sua pode simplesmente ldquose afogarrdquo nesse oceano sem jamais ter sido lida Uma carta tradicional impressa e assinada pode receber mais atenccedilatildeo do que um email e uma carta enviada via portador como encomenda expressa ou registrada tem ainda maiores chances de ser notada Natildeo se esqueccedila de usar um corretor ortograacutefico ao escre-ver ndash nem de deixar algueacutem mais ler a carta antes de enviaacute-la como medida para garantir que o con-teuacutedo esteja inteligiacutevel

Cartas para editores de publicaccedilotildees tambeacutem satildeo eficazes Oficiais de governo ndash bem como cidadatildeos interessados que podem ser persuadidos por argu-mentos bem formulados ndash lecircem jornais Cartas concisas com argumentos claros satildeo preferiacuteveis a cartas longas sem um objetivo claramente definido Evite criticar o caraacuteter dos proponentes da legislaccedilatildeo a que vocecirc se opotildee Em vez disso concentre seus comentaacuterios no conteuacutedo

Se vocecirc busca um modo simples de se envolver no movimento em torno do Software Livre observe as oportunidades para dar a sua opiniatildeo sobre leis regulamentaccedilotildees e decisotildees de compra que afetem de algum modo o ecossistema open source O esfor-ccedilo eacute vaacutelido jaacute que manter os braccedilos cruzados natildeo eacute uma alternativa capaz de lhe dar voz ativa nesse tipo de processo

Sobre o autorJon lsquomaddogrsquo Hall eacute presidente da Linux International insti-tuiccedilatildeo internacional dedicada a promover o Linux e o Software Livre e de Coacutedigo Aberto Maddog viaja o mundo ministrando palestras e debatendo com decisores sobre o uso do Software Livre em acircmbito tanto corporativo quanto comunitaacuterio

CORPORATE

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

26 httpwwwlinuxmagazinecombr

CORPORATE

Nova lei de call center Oacutetima oportunidade para TI

Edgar SilvaHaacute inuacutemeras tecnologias de coacutedigo ou padrotildees abertos que podem ajudar a superar as dificuldades decorrentes da nova lei de call centers

ldquoO brasileiro mesmo com todas as adver-sidades eacute um povo criativo que na dificuldade cria oportunidadesrdquo Essa

afirmaccedilatildeo cabe muito bem quando observarmos a nova lei para call centers Afinal quem nunca ficou esperando horas numa linha telefocircnica e repetindo nuacutemero de documentos nome da matildee endereccedilo etc O decreto visa natildeo soacute a melhorar a vida de todos que precisam dos serviccedilos de empresas de telefonia fixa e moacutevel TV a cabo e outros mas tambeacutem ge-rar novos empregos assim como oportunidades de negoacutecios que eacute o tema deste artigo

Certamente em razatildeo da tradicional morosidade dos atendimentos de call center o comportamento padratildeo de noacutes consumidores eacute procurar alternativas Uma delas foi a Internet o que fez com que as em-presas investissem em portais para evitar o gargalo no atendimento de suas redes e tambeacutem porque re-presenta um aumento no atendimento sem elevar os custos Entatildeo por que natildeo criar novos canais de atendimento A tecnologia Java e algumas especi-ficaccedilotildees padrotildees e projetos open source fazem a diferenccedila nessa induacutestria de atendimento

Java por exemplo eacute extensamente utilizado Dentre os inuacutemeros motivadores destaco liberda-de de escolha de seus fornecedores a existecircncia de padrotildees da induacutestria que garantem maior ROI bem como facilidade de obtenccedilatildeo e formaccedilatildeo de profissionais Java conta com alguns padrotildees de tecnologia que ajudam principalmente a aprovei-tar parte do legado permitindo novos canais de interaccedilatildeo com os clientes Por exemplo os com-ponentes ou serviccedilos que atendem um navegador web podem tambeacutem atender uma chamada te-lefocircnica uma interaccedilatildeo SMS ou ateacute mesmo um canal VoIP via Skype

Entre as tecnologias disponiacuteveis cito as APIs padrotildees JSR116-SIP Servlets 10 [1] e JSR289-SIP Servlets 11 [2] que possibilitam a interaccedilatildeo com servidores SIP (Session Initiation Protocol) protocolo que dentre inuacutemeras funcionalidades estabelece

chamadas de voz via Internet O funcionamento do SIPServlet eacute similar ao do Servlet tradicional Java entretanto em vez de interagir com o protocolo HTTP estaacute apto a processar requisiccedilotildees e respostas do protocolo SIP Eacute por isso que seus componentes e serviccedilos podem ser reaproveitados

O Mobicents [3] tambeacutem eacute uma soluccedilatildeo que combina aleacutem de SIP vaacuterios outros serviccedilos para o segmento de telecomunicaccedilotildees que por sua vez eacute a implementaccedilatildeo de referecircncia do padratildeo JS-LEE 10 que em resumo eacute uma complementaccedilatildeo do jaacute conhecido JEE (J2EE para os mais antigos) especiacutefico para a comunicaccedilatildeo de componentes existentes em arquiteturas que agrupam web Voip som e imagem

Outro portal open source com soluccedilotildees interes-santes eacute o Ignite Real Time [4] que hospeda proje-tos como o OpenFire servidor Jabber (XMPP) com inuacutemeros plugins entre eles para chamadas SIP e comunicaccedilatildeo com o legendaacuterio Asterisk

Mais informaccedilotildees

[1] JSR116 httpjcporgenjsrdetailid=116

[2] JSR289 httpjcporgenjsrdetailid=289

[3] Mobicents httpwwwmobicentsorg

[4] Ignite Real Time httpwwwigniterealtimeorg

Sobre o autor

Edgar A Silva (edgarsilvaredhatcom) eacute Middleware Technology Lead da Red Hat no Brasil com atuaccedilatildeo desde 1998 em objetos distribuiacutedos (Corba COM+ e Java) Edgar vem nos uacuteltimos anos pesquisando aplicando e ministrando pales-tras e treinamentos no Brasil e exterior sobre assuntos de alta tecnologia entre eles JavaEE e SOA

copy Linux New Media do Brasil Editora Ltda

Dicas de especialistas para conviver com o Windows

Integraccedilatildeo transparente Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo que vocecirc queira viver em um mundo de coacutedigo aberto ele ainda estaacute cheio de Windows A ediccedilatildeo deste mecircs traz um apanhado de estrateacutegias para facilitar o conviacutevio com o sistema operacional da Microsoft por Joe Casad e Rafael Peregrino da Silva

As redes de hoje contam com um sortimento consideraacutevel de sistemas e dispositivos

Se todos esses componentes natildeo precisassem se comunicar natildeo as chamariacuteamos de rede Mesmo que vocecirc sonhe com um mundo sem Windows ndash e a IBM se esforce para tornar seu sonho realidade ndash essa rea-lidade ainda estaacute um pouco distante Por conta disso a ediccedilatildeo deste mecircs traz diversos artigos versando sobre interoperabilidade e integraccedilatildeo de sistemas No nosso primeiro artigo examinamos algumas teacutecnicas para conexatildeo de clientes VPN para Linux a servidores Windows

Tambeacutem vamos mostrar alguns aplicativos Linux para gerenciamento de conexotildees a VPNs e descreveremos algumas teacutecnicas de resoluccedilatildeo dos problemas para fazer o sistema do pinguumlim funcionar com o protoco-lo PPTP usado em redes Windows No artigo seguinte abordamos a integraccedilatildeo de sistemas Linux a um ambiente Windows usando o famo-so (alguns diriam infame) Microsoft Active Directory lanccedilando matildeo para tanto do sistema de autenticaccedilatildeo Likewise Open O Likewise eacute uma ferramenta de coacutedigo aberto que fornece uma confi guraccedilatildeo faacutecil para autenticaccedilatildeo dos tipos single sign-on e Kerberos O terceiro artigo da ses-satildeo mostra como confi gurar o Linux como um servidor de terminais para clientes Windows utilizando o xrdp ndash uma implementaccedilatildeo de coacutedigo aberto do Remote Desktop Protocol

(RDP) da Microsoft Nesse artigo vocecirc vai entender por que o siste-ma das janelas natildeo eacute necessaacuterio no servidor para criar um ambiente de terminais Windows e aprenderaacute como fazer os usuaacuterios desse sistema visualizarem um desktop Linux na sua aacuterea de trabalho tudo isso em apenas alguns passos

Por uacuteltimo apresentamos um soft-ware de coacutedigo aberto para agenda-mento de tarefas muito mais comple-xo que o veneraacutevel Cron e que tem como uma de suas maiores vantagens o fato de ser multiplataforma ndash o que facilita muito a administraccedilatildeo de um ambiente heterogecircneo de servidores

Se vocecirc precisa conviver com o Windows por que natildeo vi-ver em paz e com con-

forto Se esse eacute o seu caso esperamos tornar a sua vida um pouco menos atribulada com esta ediccedilatildeo de inte-graccedilatildeo com as tecnologias da gigante de Redmond

CAPA

Linux Magazine 50 | Janeiro de 2009

Iacutendice das mateacuterias de capa

Rede fechada 28Na ativa 34O manda-chuva do terminal 40 Muito aleacutem do Cron 44

27copy Linux New Media do Brasil Editora Ltda

28 httpwwwlinuxmagazinecombr

Configurando conexotildees VPN em clientes Linux

Rede fechadaClientes Linux eventualmente precisam de uma matildeozinha para se conectar a servidores VPN do Windowspor James Stanger

Dois benefiacutecios de se usar tuacute-neis VPN (Virtual Private Networks ou redes virtuais

privadas) satildeo as conexotildees criptografa-das e o acesso aos recursos localizados atraacutes do firewall Quando a questatildeo eacute interoperabilidade entretanto confi-gurar essas conexotildees pode ser difiacutecil em clientes Linux As distribuiccedilotildees Linux frequumlentemente tecircm problemas em es-tabelecer conexotildees a VPNs em servido-res cuja tecnologia eacute baseada em outros sistemas operacionais especialmente porque os aplicativos graacuteficos utiliza-dos para configurar essas conexotildees normalmente natildeo conseguem manter

o mesmo ritmo de desenvolvimento do Linux que estaacute geralmente duas geraccedilotildees agrave frente delas Assim pouco tempo apoacutes as distribuiccedilotildees terem sido lanccediladas as bibliotecas usadas para a criaccedilatildeo de VPNs satildeo modificadas e o aplicativo que vocecirc utilizava para fazer esse tipo de conexatildeo simplesmente paacutera de funcionar em ambientes he-terogecircneos Recentemente houve um avanccedilo nessa situaccedilatildeo e este artigo daacute algumas dicas sobre como estabele-cer conexotildees a VPNs a partir de um desktop Linux

Uma VPN cria um tuacutenel ponto-a-ponto por meio de uma rede puacuteblica

Vaacuterios protocolos oferecem suporte a conexotildees VPN entre eles as seguintes alternativas bastante populares L2TP via IPsec Foi o primeiro

protocolo desenvolvido pela Cisco para criaccedilatildeo de tuacuteneis de acesso criptografados L2TPv3 eacute a versatildeo mais recente mas certifique-se de escolher a ver-satildeo apropriada para a sua rede Lembre-se de que haacute duas im-plementaccedilotildees de IPsec principais no Linux Por exemplo sistemas mais antigos usam FreeSWAN ou Openswan para IPsec Sis-temas mais recentes com qual-

CA

PA

Quadro 1 Problemas e soluccedilotildees

Ao resolver problemas em conexotildees certifique-se de es-tar com os moacutedulos instalados e carregados Por exem-plo num sistema Ubuntu 8041 uma conexatildeo PPTP precisa dos seguintes moacutedulos

ppp_mppe 8068 2ppp_async 13312 1crc_ccitt 3072 1 ppp_asyncppp_generic 29588 6 ppp_mppe ppp_asyncslhc 7040 1 ppp_genericppdev 10372 0

A MTU (unidade maacutexima de transmissatildeo) eacute outra configu-raccedilatildeo importante pode ser necessaacuterio reduzir o valor de 1500 para algo menor como 1490

Em caso de problemas lembre-se de ativar as opccedilotildees de depuraccedilatildeo no cliente ndash sempre eacute possiacutevel desativaacute-las depois As opccedilotildees de depuraccedilatildeo podem incluir especifi-car pacotes ICMP para testar uma conexatildeo assim como determinar o tamanho do intervalo de eco

Uma opccedilatildeo estranha mas eventualmente uacutetil eacute desativar a criptografia Obviamente com isso perdem-se os benefiacutecios da conexatildeo VPN A maioria dos servidores rejeita conexotildees sem criptografia mas ainda assim essa opccedilatildeo pode ser de alguma ajuda para eliminar fontes de problemas

O mascaramento de IP e outras formas de NAT tambeacutem im-potildeem alguns problemas para conexotildees VPN Se estiverem sendo usados ESP ou AH (cabeccedilalhos de autenticaccedilatildeo) por exemplo haveraacute problemas com o NAT pois o AH executa uma verificaccedilatildeo que inclui valores como o endereccedilo IP da conexatildeo Como o NAT modifica o endereccedilo IP a verificaccedilatildeo falharaacute e portanto tambeacutem a comunicaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

29

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

quer versatildeo do kernel da seacuterie 26 dispotildeem de suporte nativo a Ipsec

Point-to-Point Tunneling Pro-tocol (PPTP) trata-se de um protocolo antigo que ainda eacute usado em diversos ambientes Microsoft

Secure Sockets LayerTransport Layer Security (SSLTLS) eacute um dos mais poderosos protocolos de interoperabilidade disponiacute-veis atualmente fornecendo suporte para muitos tipos de conexotildees VPN O OpenVPN [1] por exemplo eacute uma solu-ccedilatildeo para criaccedilatildeo de tuacuteneis de acesso criptografados baseada em SSLTLS

Com o passar dos anos jaacute houve muitas discussotildees sobre qual proto-colo eacute o mais seguro ou qual seria mais favoraacutevel ao modelo de desen-volvimento de coacutedigo aberto Muitas dessas discussotildees chegaram a assumir um teor quase religioso Poreacutem em vez de se envolver em tais discussotildees eacute mais uacutetil simplesmente descobrir qual dos protocolos funciona melhor para o seu tipo de rede em particular e entatildeo adotaacute-lo

Qualquer que seja o protocolo usado para criar o tuacutenel eacute possiacutevel enviar pacotes atraveacutes dele os quais seratildeo considerados pelo firewall como pacotes internos A chave como veremos a seguir eacute se certificar de que os pacotes certos atravessem a interface correta do tuacutenel

O ambiente Linux dispotildee de diversas ferramentas para configu-rar e gerenciar conexotildees VPN O utilitaacuterio KVpnc do projeto KDE oferece suporte para vaacuterias tecnolo-gias VPN (da Cisco passando pela Microsoft e culminando no Open-VPN) O vpnc eacute um programa de linha de comando para sistemas Cisco Muitas distribuiccedilotildees Linux passaram a usar o NetworkManager [2] desenvolvido pela Red Hat que

permite instalar extensotildees para redes Cisco e Microsoft Dependendo da tecnologia VPN que vocecirc pretende usar vocecirc teraacute que instalar a exten-satildeo apropriada

O pptpconfig [3] eacute um aplicativo antigo que funciona especialmente bem para distribuiccedilotildees Linux da Red Hat e da Novell bem como com BSDs e vaacuterios outros sistemas Como o nome sugere o pptpconfig eacute usado para gerenciar VPNs basea-dos em tecnologia Microsoft

Criando um tuacutenelIndependentemente de qual aplicati-vo ou protocolo for usado eacute necessaacuterio obter algumas informaccedilotildees baacutesicas para estabelecer uma conexatildeo com sucesso Por exemplo Informaccedilotildees sobre autenti-

caccedilatildeo dependendo do que o administrador da rede exigir seraacute preciso fornecer informa-ccedilotildees especiacuteficas a respeito do usuaacuterio para se autenticar no servidor VPN A alternativa menos segura (embora mais comum) eacute fornecer um nome de usuaacuterio e uma senha Outras opccedilotildees incluem chaves priva-das e certificados A Cisco daacute preferecircncia ao uso de chaves e certificados por exemplo

Gateway (tambeacutem conhecido popularmente como nome do servidor VPN) eacute o endereccedilo IP

ou nome do equipamento VPN que fornece o tuacutenel depois da autenticaccedilatildeo

Tipo de protocolo como dis-cutido acima eacute necessaacuterio es-colher entre os protocolos exis-tentes tais como L2TP PPTP OpenVPN etc A ferramenta de configuraccedilatildeo vai solicitar que sejam especificadas as opccedilotildees adequadas para o(s) protocolo(s) escolhido(s)- pelo administrador da rede

Configuraccedilotildees gerais qualquer que seja o protocolo de autenti-caccedilatildeo seraacute preciso fornecer in-formaccedilotildees especiacuteficas para a sua conexatildeo Por exemplo algumas redes solicitam a configuraccedilatildeo de uma unidade maacutexima de transmissatildeo (do inglecircs Maximum Transmission Unit o famigerado MTU) especiacutefica o aplicativo permite que sejam realizadas as modificaccedilotildees especiacuteficas para a conexatildeo em questatildeo

Informaccedilotildees de roteamento natildeo importa os tipos de proto-colo ou autenticaccedilatildeo escolhi-dos normalmente tambeacutem eacute necessaacuterio assegurar-se de que os pacotes certos estatildeo de fato sendo roteados atraveacutes da inter-face correta

Assim eacute certo depender da ajuda de um administrador de redes compre-

Quadro 2 Preso do lado de fora

Conforme satildeo feitos experimentos com a conexatildeo VPN certifique-se de que sua conta natildeo seja trancada do lado de fora A maioria das VPNs tem dificuldade em diferenciar entre experimentos com a configuraccedilatildeo e tentati-vas de invasatildeo Se vocecirc ficar trancado de fora natildeo conseguiraacute entrar nem mesmo com as configuraccedilotildees corretas

Se ficar impossiacutevel conectar-se preste atenccedilatildeo ao arquivo de log e agraves men-sagens de depuraccedilatildeo para verificar se as mensagens de autenticaccedilatildeo e conexatildeo mudaram de alguma forma uma mudanccedila sutil pode indicar que se estaacute na verdade trancado do lado de fora da conta Se for esse o caso seraacute preciso esperar a conta ser desbloqueada Com sorte essa limitaccedilatildeo seraacute temporaacuteria Caso contraacuterio seraacute preciso contatar o administrador da rede cada vez que ocorrer esse imprevisto

copy Linux New Media do Brasil Editora Ltda

30 httpwwwlinuxmagazinecombr

CAPA | VPNS

ensivo para ajudar o usuaacuterio a obter as informaccedilotildees listadas acima

PPTP com Microsoft Mesmo que o protocolo PPTP seja considerado menos seguro que o da Cisco ou o OpenVPN ele ainda eacute bastante popular Para confi gurar uma conexatildeo PPTP haacute um grande rol de opccedilotildees de autenticaccedilatildeo com-pressatildeo e criptografi a

Um dos desafi os eacute escolher o meacute-todo de autenticaccedilatildeo Autenticaccedilatildeo direta ( peer authentication ) signifi -ca que o servidor solicitaraacute que o cliente se identifi que As opccedilotildees para essa modalidade de autentica-ccedilatildeo incluem Challenge Handshake Authenti-

cation Protocol (CHAP) proto-colo padratildeo em conformidade com o RFC correspondente Basta fornecer um nome de usuaacuterio e uma senha para se autenticar MS-CHAP eacute a im-plementaccedilatildeo do protocolo pela Microsoft Se o administrador da rede natildeo revelar o protocolo empregado use o MS-CHAP no caso de servidores Windows

EAP eacute uma extensatildeo do pro-tocolo de autenticaccedilatildeo PPP original que permite o uso de um certifi cado em vez de nome de usuaacuterio e senha Me-nos comum do que MS-CHAP e CHAP

Muitos clientes oferecem a opccedilatildeo de recusar todos esses meacutetodos de autenticaccedilatildeo Para trabalhar bem com um servidor VPN remoto talvez a melhor opccedilatildeo seja usar diretamente o daemon PPP do seu sistema Compactar os dados para trans-

missatildeo pela VPN tambeacutem eacute uma boa ideacuteia Geralmente haacute trecircs opccedilotildees de compressatildeo

Microsoft Point-to-Point Com-pression (MPPC) protocolo an-tigo baseado no algoritmo LZ e geralmente reservado a clientes Windows antigos (Windows 95 e NT) Contudo pode funcionar em outras VPNs

Defl ate compression protocolo similar ao MPPC mas livre de patentes Eacute mais universal que

o MPPC mas raramente usado em VPNs Microsoft

BSD compression descrito na RFC 1977 eacute o protocolo de compressatildeo tradicional

O tipo de compressatildeo geralmente causa problemas nas conexotildees Caso o administrador da rede natildeo coope-re eacute melhor tentar primeiro uma conexatildeo sem compressatildeo

A confi guraccedilatildeo da criptografi a tambeacutem eacute importante O Microsoft Point-to-Point Encryption (MPPE) eacute um subconjunto do MPPC Pode-se usar dois comprimentos de chave di-ferentes 40 bits e 128 bits Empresas de muitos paiacuteses usam apenas cha-ves de 40 bits Na confi guraccedilatildeo de clientes PPTP o administrador deve informar o comprimento da chave Senatildeo basta testar ateacute descobrir

Stateful MPPE geralmente eacute a melhor opccedilatildeo de criptografi a uma vez que fornece conexotildees de rede mais raacutepidas Como veremos mais agrave frente eacute necessaacuterio habilitar o moacutedulo MPPE para qualquer uma dessas confi guraccedilotildees

DNS A maioria dos clientes DNS pergunta se deve usar as informaccedilotildees de DNS em etcresolvconf ou aquelas for-necidas pelo servidor VPN A proacutepria conexatildeo VPN pode causar modifi ca-ccedilotildees na resoluccedilatildeo de DNS principal-

Figura 2 Criaccedilatildeo de rotas no cliente NetworkManager

Figura 1 Criaccedilatildeo de rotas no cliente VPN KVpnc

copy Linux New Media do Brasil Editora Ltda

31

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

mente porque o cliente VPN altera o conteuacutedo do arquivo etcresolvconf mesmo quando confi gurado ex-plicitamente para natildeo fazecirc-lo

A melhor soluccedilatildeo eacute usar um clien-te VPN que funcione da forma que se espera Na falta de tal soluccedilatildeo pode-se contornar o problema crian-do um script que faccedila uma coacutepia do arquivo etcresolvconf correto Quando o cliente VPN pergunta se deve ldquorealizar acessos ao DNS atra-veacutes do tuacutenelrdquo geralmente o que ele realmente quer dizer eacute se pode alte-rar o arquivo etcresolvconf com seus novos dados A escolha correta depende de informaccedilotildees fornecidas pelo administrador da rede Se o ob-jetivo natildeo for usar o DNS da VPN seraacute difiacutecil o cliente acessar as outras maacutequinas detraacutes da VPN

Suporte ao GRE Para conectar um cliente a uma VPN Microsoft atraveacutes de um fi -rewall Linux haacute um ajuste extra a ser feito nele para que tudo funcio-ne a ativaccedilatildeo do protocolo Generic Route Encapsulation (GRE) para atravessar o fi rewall Supondo o uso do iptables no fi rewall Linux e um servidor VPN com o endereccedilo 18944453 eacute necessaacuterio executar o seguinte comando

iptables -I FORWARD -p 47 -d 18944453 -j ACCEPT

Roteamento Pode ser necessaacuterio rotear pacotes ex-plicitamente atraveacutes de uma interface especiacutefi ca Muitos administradores de sistemas Windows consideram esse um dos maiores desafi os do trabalho com clientes Linux

A necessidade de rotear pacotes explicitamente eacute especialmente importante quando a rede remota utiliza IPs puacuteblicos Mesmo que seja usado um tuacutenel VPN a in-

terface de rede ainda pode tentar rotear pacotes pela Internet em vez de simplesmente usar o tuacutenel Satildeo muito frequumlentes problemas em conexotildees VPN cuja soluccedilatildeo eacute sim-plesmente adicionar algumas rotas alternativas agrave tabela de roteamento padratildeo do sistema Isso pode ser feito tanto com o aplicativo graacutefi co de confi guraccedilatildeo do VPN quanto pela linha de comando com os utilitaacuterios route ou iproute

route add -net 131639723 netmask 255255255255 dev ppp0 ou iproute

ip route add 17187445424 dev ppp0

Em alguns casos sem essas rotas

natildeo eacute possiacutevel fazer com que os paco-tes que deveriam trafegar pela VPN realmente o faccedilam e eles acabam saindo pela placa de rede

Figura 3 KVpnc com uma sessatildeo PPTP legada

Figura 4 Importaccedilatildeo de um certifi cado Cisco no KVpnc

copy Linux New Media do Brasil Editora Ltda

32 httpwwwlinuxmagazinecombr

CAPA | VPNS

Interface graacutefi ca Os aplicativos graacutefi cos para confi gu-raccedilatildeo de VPNs estatildeo fi cando cada vez melhores quando se trata de adicionar as rotas necessaacuterias auto-maticamente A fi gura 1 mostra as confi guraccedilotildees para o KVpnc A fi gura 2 ilustra uma confi guraccedilatildeo similar no NetworkManager

Assim como essas capturas de tela ilustram pacotes que coincidam com o endereccedilo IP e a maacutescara de rede defi nidos natildeo seratildeo enviados atraveacutes da conexatildeo de rede padratildeo mas simpelo tuacutenel VPN

O KVpnc ( fi gura 3 ) disponiacutevel em vaacuterias distribuiccedilotildees talvez seja o mais versaacutetil entre os clientes atuais pois oferece suporte a L2TP aos protocolos VPN tanto livres quanto proprietaacuterios da Cisco ao OpenVPN e ao PPTP da Microsoft O KVpnc tambeacutem permite a importaccedilatildeo de certifi cados conforme mostra a fi gura 4

Apesar de os desenvolvedores da interface graacutefi ca do programa terem cometido alguns deslizes ortograacutefi -

cos na interface os desenvolvedores do KVpnc realmente criaram um produto que trabalha parti-cularmente bem em conjunto com dispo-sitivos Cisco

O veneraacutevel pptp-config tambeacutem estaacute disponiacutevel em muitas distribuiccedilotildees O se-gredo para o sucesso no seu uso pptpconfig estaacute na confi guraccedilatildeo da criptografi a usada pelo programa que precisa ser exatamen-te aquele previsto pelo administrador

Com frequumlecircncia eacute importante usar de criptografi a MPPE e habilitar o modo stateful desse proto-

colo No caso do pptpconfig seria preciso selecionar Require Microsoft Point-to-Point Encryption (MPPE) e Refuse Stateless Encryption para conseguir isso

O pptpconfig tambeacutem tem capaci-dade de adicionar rotas automatica-mente Simplesmente clique na aba Routing marque o botatildeo Client to LAN e digite as rotas dos sistemas que devem ser conectados pela VPN

Muitos usuaacuterios Linux preferem o NetworkManager por um simples motivo ele costuma funcionar Haacute plugins para ele que suportam vaacuterios protocolos incluindo OpenVPN Microsoft PPTP e L2TP Apoacutes insta-laacute-los basta clicar no iacutecone de rede e selecionar as conexotildees VPN para comeccedilar a fornecer as informaccedilotildees apropriadas A fi gura 5 mostra as etapas para confi gurar uma conexatildeo Cisco num sistema Ubuntu

O NetworkManager suporta a criptografi a por chave compartilhada quanto por certifi cado X509 Para fazecirc-lo funcionar adequadamente

eacute preciso instalar o daemon racoon para fazer a troca de chaves pela In-ternet Depois deve-se obter com o administrador da rede a chave com-partilhada e os certifi cados assinados caso eles sejam usados

IPsec e kernel 26 Certifi que-se de instalar os daemons certos para a conexatildeo Se o sistema utilizar alguma versatildeo do kernel 26 ele jaacute suporta nativametne o IPsec mas se for usado o KVpnc ou o vpnc ainda seraacute preciso instalar o daemon racoon que se encarrega da troca de chaves em implementaccedilotildees IPsec Se o racoon natildeo estiver disponiacutevel no re-positoacuterio da distribuiccedilatildeo em questatildeo basta conferir o site do projeto [4]

Para suportar o FreeSWAN o padratildeo antigo para o IPsec eacute pre-ciso instalar o daemon ipsec caso contraacuterio a implementaccedilatildeo falharaacute pois o sistema natildeo conseguiraacute con-duzir as trocas de senha necessaacuterias ao estabelecer o tuacutenel

Conclusatildeo Estabelecer uma VPN hoje em dia eacute muito mais faacutecil mas os clien-tes VPN graacutefi cos ainda natildeo fazem tudo pelo usuaacuterio Apesar de ainda ser trabalhoso fazer a comunicaccedilatildeo com servidores Microsoft Cisco e OpenVPN basta uma certa dedica-ccedilatildeo para se obter sucesso

Mais informaccedilotildees

[1] OpenVPN httpopenvpnnet

[2] NetworkManager httpwwwgnomeorgprojectsNetworkManager

[3] pptpclient httppptpclientsourceforgenet

[4] Rasvpn httpwwwnetbsdorgdocsnetworkipsecrasvpnhtml

Figura 5 Confi guraccedilatildeo de VPN Cisco no NetworkManager

copy Linux New Media do Brasil Editora Ltda

33

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

Linux Pro novo (julho) 77 251108 172941

copy Linux New Media do Brasil Editora Ltda

34 httpwwwlinuxmagazinecombr

Integraccedilatildeo faacutecil ao Active Directory com o Likewise Open

Na ativaO Likewise Open oferece integraccedilatildeo faacutecil a ambientes Active Directory Mostramos como instalar e configurar o sistema de autenticaccedilatildeo amigaacutevel para administradorespor Walter Neu

O sistema de autenticaccedilatildeo Li-kewise Open [1] integra clien-tes Linux ao ambiente Active

Directory Obviamente tambeacutem eacute possiacutevel configurar o Active Directory pelo Samba e seus atores coadjuvantes [2] mas a soluccedilatildeo da Likewise oferece vaacuterios benefiacutecios para facilitar a confi-guraccedilatildeo e a administraccedilatildeo

A versatildeo gratuita e GPL do Likewi-se suporta autenticaccedilatildeo em diretoacuterios AD a autorizaccedilatildeo de serviccedilos ldquoker-berizadosrdquo e ateacute o recurso de single sign-on Isso pode se parecer bastante com o Samba que faz as mesmas coisas na verdade o gerente de pro-jetos da Likewise Gerald Carter eacute um antigo membro da equipe central

de desenvolvimento do Samba O Likewise Open se aproveita do tra-balho do Samba embora acrescente diversos recursos proacuteprios

Pacotes prontosHaacute pacotes do Likewise para distri-buiccedilotildees da Red Hat Novell e Cano-nical aleacutem de alguns sistemas Unix comerciais e do MacOS X

O site do Likewise exibe a versatildeo 50 embora os pacotes especiacuteficos por distribuiccedilatildeo incluam a versatildeo 4 usada neste artigo Usuaacuterios do Ubuntu tecircm agrave disposiccedilatildeo os pacotes likewise-open e likewise-open-gui no repositoacuterio Uni-verse Os pacotes do Likewise incluem vaacuterias dependecircncias ndash primordialmente

relacionadas ao Kerberos O Likewise Open se baseia na versatildeo MIT do Ker-beros como back-end [3] Durante a instalaccedilatildeo no Ubuntu o pacote pede para o administrador especificar os servidores Kerberos e administrativo (figuras 1 e 2)

Aleacutem de um servidor AD e uma estrutura de domiacutenio gerenciada pelo Windows o Likewise possui dois ou-tros requisitos um servidor de nomes funcional e um reloacutegio do sistema sincronizado Se os reloacutegios do cliente e do servidor estiverem mais de cinco minutos fora de sincronia o servidor Kerberos certamente se recusaraacute a emitir tiacutequetes por medida de segu-ranccedila para evitar ataques

Nova abordagemAdicionar um sistema Linux ldquocrurdquo a um domiacutenio exige certo trabalho de configuraccedilatildeo [2] O Likewise Agent faz a maior parte desse trabalho adi-cionando-se ao Name Service Switch (NSS) e aos Pluggable Authentication Modules (PAM) no cliente local

No lado do servidor o agente re-passa as requisiccedilotildees de autenticaccedilatildeo ao servidor Kerberos 5 e ao AD base-ado em LDAP Para permitir que isso aconteccedila o pacote instala algumas bi-bliotecas e arquivos de configuraccedilatildeo Por exemplo liblibnss_lwidentityso integra o Likewise ao NSS e etcpamdpam_lwidentityso faz o mesmo para o PAM O arquivo de configu-

CA

PA

Figura 1 O gerenciador de pacotes do Ubuntu pede o nome do servidor Kerberos ao se instalar os pacotes do Kerberos

copy Linux New Media do Brasil Editora Ltda

35

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

raccedilatildeo etcsecuritypam_lwidentityconf configura o moacutedulo e a interface do controlador de domiacutenio remoto eacute implementada pelo servidor Winbind do Likewise o likewise-winbindd O servior tem seu proacuteprio arquivo de configuraccedilatildeo etcsambalwiauthdconf semelhante ao arquivo smbconf do pacote Samba

O Likewise Open integra esses com-ponentes para suportar um login de domiacutenio transparente para os usuaacuterios O processo de login repassa o nome do usuaacuterio e sua senha para o PAM O moacutedulo pam_lwidentityso se comuni-ca com o serviccedilo de autenticaccedilatildeo do Likewise que gera uma chave secreta a partir do nome e da senha do usuaacute-rio O daemon do Likewise utiliza a chave secreta para solicitar um tiacutequete para solicitaccedilatildeo de tiacutequetes (TGT na nomenclatura do Kerberos) ao ser-vidor de autenticaccedilatildeo Kerberos que roda como parte do Key Distribution Center (KDC) no servidor AD

Ao apresentar o TGT o serviccedilo de autenticaccedilatildeo do Likewise recebe tiacutequetes de serviccedilo para outros ser-viccedilos de rede como SSH Os usuaacute-rios entatildeo jaacute podem fazer logon nos servidores kerberizados sem digitar suas senhas novamente

Configure o pacote de instalaccedilatildeo do Likewise em cada maacutequina Li-nux que vai se tornar um membro do domiacutenio AD (e ser gerenciada pelo Likewise) Se forem usados os pacotes de instalaccedilatildeo fornecidos no site o Likewise Open seraacute instalado com uso de um Bitrock Installer ndash um executaacutevel cujo nome de arquivo ter-mina com installer Para executar o programa eacute preciso tornar-se root e seguir as instruccedilotildees na tela

O instalador exibe informaccedilotildees sobre as licenccedilas de coacutedigo aberto dos componentes instalados antes de o Likewise instalar seus arquivos Depois disso o instalador leva o ad-ministrador ao domainjoin-cli que se localiza no diretoacuterio usrcente-risbin (violando as-sim as convenccedilotildees do FHS [4] os pacotes das distribuiccedilotildees e as versotildees mais recentes do Likewise corrigem esse erro) O agente ar-mazena informaccedilotildees de log em varloglw-identity ndash se for usada a versatildeo do repositoacuterio do Ubuntu ndash em varloglikewise-open

Pode entrarUm domiacutenio AD precisa que os siste-mas usuaacuterio e cliente tornem-se mem-bros dele O ato de criar uma conta de maacutequina no serviccedilo de diretoacuterio da Microsoft eacute chamado no idioma do AD de ldquojuntar-se ao domiacuteniordquo (ou ldquoJoining the domainrdquo em inglecircs)

Haacute uma ferramenta de linha de co-mando chamada domainjoin-cli que permite que o usuaacuterio root se junte ao domiacutenio AD criando uma conta de maacutequina no diretoacuterio nesse processo A ferramenta domainjoin-cli aceita a opccedilatildeo join e o domiacutenio como argumen-tos O argumento do domiacutenio precisa ser especificado como um nome DNS completamente qualificado

Aleacutem disso o comando espera o nome de um usuaacuterio com autorizaccedilatildeo para criar contas de computador no ambiente AD O exemplo 1 mostra um computador chamado ubuntu se juntando ao domiacutenio exemploorg A conta Administrator possui os privileacute-gios necessaacuterios para essa etapa

A segunda opccedilatildeo para se juntar a um domiacutenio eacute a interface graacutefica do Likewise Open (figura 3) Poreacutem a interface natildeo estaacute incluiacuteda no pacote baacutesico do programa Para acrescentaacute-la simplesmente instale o pacote likewise-open-gui e inicie-o com privileacutegios de root digitando domainjoin-gui

Manual e automaacuteticoNos dois casos o Likewise Open lida com a tarefa de configuraccedilatildeo em se-gundo plano eliminando a necessi-

Figura 2 Eacute preciso especificar o servidor administrativo para o domiacutenio do Kerberos

Exemplo 1 Juntando-se a um domiacutenio

01 domainjoin-cli join exampleorg Administrator02 Joining to AD Domain exampleorg03 With Computer DNS Name ubuntuexampleorg04 05 AdministratorEXAMPLEORGrsquos password06 Enter AdministratorEXAMPLEORGrsquos password07 SUCCESS

copy Linux New Media do Brasil Editora Ltda

36 httpwwwlinuxmagazinecombr

CAPA | Likewise

dade de etapas manuais complexas O software modifica as configuraccedilotildees para interaccedilatildeo do usuaacuterio com o AD (figura 4) incluindo os arquivos neces-saacuterios para a comunicaccedilatildeo do Kerberos com o KDC krb5conf e os arquivos do PAM em etcpamd

Para fazer login usando um domiacutenio de cliente Linux os usuaacuterios precisam de um diretoacuterio home no cliente O Likewise cria o diretoacuterio localmente se for modificado o arquivo etcse-curitypam_lwidentityconf

O arquivo etcnsswitchconf faz o Likewise Open retomar o controle e especifica o meacutetodo lwidentity O servi-ccedilo de nomes do NSS verifica primeiro arquivos locais como etcpasswd

passwd files lwidentitygroup files lwidentity

Se ele natildeo conseguir encontrar uma conta ele acessa o AD em se-guida Isso significa que usuaacuterios lo-cais ainda podem acessar a maacutequina local caso o AD falhe

Configuraccedilatildeo cuidadosaO Likewise eacute cuidadoso na configura-ccedilatildeo do sistema Linux Ele cria becapes de todos os arquivos que modifica acrescentando um sufixo lwid-entitybak e por um bom motivo executar domainjoin-cli leave como root na li-nha de comando ou na interface graacutefica apaga a conta da maacutequina

Nesse caso o Likewise recupera todos os arquivos de configuraccedilatildeo que tive-

rem sido alterados Ele usa o arquivo etcsambalwiauthdconf para permitir que os ad-ministradores especifiquem opccedilotildees de configuraccedilatildeo para seu proacuteprio sistema Winbind essas configuraccedilotildees devem ser familiares agravequeles que utilizam o Samba num am-biente AD

Configuraccedilatildeo individualO paracircmetro template shell define o shell de login para todos os usuaacuterios de forma centralizada O diretoacuterio home do usuaacuterio natildeo eacute definido no banco de dados de usuaacuterios do AD portanto eacute preciso especificar o caminho no ar-quivo de configuraccedilatildeo com o paracircmetro template homedir do Samba

template shell = binbashtemplate homedir = homeDU

O Likewise-Winbind substitui D pelo nome de domiacutenio curto e U pelo usuaacuterio do domiacutenio

Para evitar colisotildees de nomes em relacionamentos de confianccedila faz sentido adicionar o domiacutenio ao caminho do usuaacuterio ndash e aplicar os padrotildees para diretoacuterios dos usuaacuterios Se a configuraccedilatildeo natildeo for alterada o Likewise Open usaraacute a contra-barra como separador de domiacutenios e nomes de usuaacuterios Obviamente a contrabarra possui um significado especial em shells Unix Os especia-listas recomendam mudar isso para outro caractere em todos os clientes usando a variaacutevel winbind separator A sugestatildeo eacute o sinal +

Se houver apenas um domiacutenio eacute possiacutevel definir winbind use default domain = yes para evitar separar o domiacutenio dos nomes de usuaacuterios Se isso natildeo for feito os usuaacuterios do domiacutenio fornecidos pelo Winbind natildeo funcionaratildeo a menos que se adicione um prefixo de domiacutenio Reiniciar o Likewise Open por seu script de inicializaccedilatildeo aplica as mudanccedilas

VerbosoO pacote likewise-open conteacutem trecircs ferramentas de diagnoacutestico ndash lwinet lwimsg e lwiinfo ndash uacuteteis para fins de depuraccedilatildeo entre outros

Exemplo 2 klist exibe os tiacutequetes locais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081208 134808 081208 234808 krbtgtEXAMPLEORGEXAMPLEORG07 renew until 081908 13480808 081208 134808 081208 234808 SUSE$EXAMPLEORG09 renew until 081908 134808

Figura 3 A interface do Likewise Open pede o nome DNS do domiacutenio e os nomes das maacutequinas

copy Linux New Media do Brasil Editora Ltda

37

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

Como o Likewise se baseia no coacutedigo do Winbindd do Samba as ferramentas vatildeo lidar com as tarefas normalmente realizadas pelo dae-mon Winbind do Samba Digitando lwiinfo eacute possiacutevel verificar a conexatildeo ao controlador do domiacutenio

A ferramenta corresponde ao wbin-fo do Samba As duas consultam o daemon do Winbind Por exemplo o lwiinfo -u lista todos os usuaacuterios do domiacutenio padratildeo

EXAMPLE+mokr000EXAMPLE+phkr000EXAMPLE+wane000

O mesmo princiacutepio se aplica a grupos no serviccedilo de diretoacuterio que satildeo exibidos pela opccedilatildeo -g Isso ga-rante que o Linux saiba os nomes do AD O comado lwiinfo -g lista os grupos conhecidos

EXAMPLE+contasEXAMPLE+marketing []

Novamente o Likewise usa o ca-ractere + configurado em lwiauthdconf como separador no Winbind A ferramenta lwimsg corresponde ao smbcontrol e eacute usada para controlar o Winbindd definindo o niacutevel de depuraccedilatildeo por exemplo A contra-parte da ferramenta net do Samba usada para administraccedilatildeo remota de um domiacutenio eacute o lwinet

Apoacutes instalar o software eacute uma boa ideacuteia tentar fazer logon no AD O

formato do nome do usuaacuterio precisa corresponder agravequele definido para o serviccedilo de diretoacuterio Por exemplo se for mantida a configuraccedilatildeo padratildeo para separaccedilatildeo entre o domiacutenio e o nome do usuaacuterio mas o separador for alterado para o sinal de soma os usuaacuterios precisaratildeo digitar seus nomes como DOMIacuteNIO+usuaacuterio no login pelo console ou por um gerenciador de desktop (veja a fi-gura 5)

ubuntu Login EXAMPLE+wane000PasswordEXAMPLE+wane000ubuntu~$

Conforme mencionado anterior-mente o Likewise autentica usuaacute-rios pelo protocolo Kerberos por meio da requisiccedilatildeo de um TGT ao KDC antes de prosseguir agrave instala-ccedilatildeo local do tiacutequete no cliente como tmpkrb5cc_UID (veja o exemplo 2) O comando klist exibe os tiacutequetes vaacutelidos de um usuaacuterio

O usuaacuterio que posuir um tiacutequete tem permissatildeo para acessar serviccedilos kerberizados na rede sem fazer logon separadamente no serviccedilo de rede

Single sign-onPara permitir que um serviccedilo de rede decirc acesso sem senha a um usuaacuterio o administrador precisa atribuir um Service Principal Name (SPN) ao serviccedilo O SPN identifica o serviccedilo dentro do ambiente AD O serviccedilo pede um tiacutequete de serviccedilo para o Service Principal ao KDC identifi-cando-se com seu TGT

O SPN compreende uma defi-niccedilatildeo de serviccedilo seguida por uma barra e o hostname completamente qualificado do servidor um siacutembolo de arroba e o domiacutenio

Figura 4 Depois de entrar no domiacutenio o Likewise cria uma conta de maacutequina para o computador Ubuntu no Active Directory

Figura 5 O GDM pede um nome para login na autenticaccedilatildeo Neste AD o nome eacute composto pelo nome do domiacutenio (EXAMPLE) um sinal + e o nome do usuaacuterio

copy Linux New Media do Brasil Editora Ltda

38 httpwwwlinuxmagazinecombr

CAPA | Likewise

As definiccedilotildees de serviccedilos incluem host ftp ou pop Se um usuaacuterio es-tabelecer uma conexatildeo SSH com outro computador membro de um AD gerenciado pelo Likewise o serviccedilo kerberizado apresentaraacute o TGT do usuaacuterio e pediraacute um tiacute-quete de serviccedilo ao KDC para por exemplo o SPN hostubuntuexam-pleorgEXAMPLEORG ndash isso pressupotildee que o cache local de tiacutequetes ainda natildeo tenha um tiacutequete O tiacutequete de serviccedilo conteacutem o ID do usuaacuterio que faz a requisiccedilatildeo e a chave da sessatildeo O Likewise Open criptograva isso com a chave do servidor e a arma-zena no cache de usuaacuterios como o TGT (exemplo 3)

O cliente SSH envia automati-camente o tiacutequete de serviccedilo crip-tografado e um timestamp tambeacutem criptografado para validar o sshd do autenticador Isso garante que cada requisiccedilatildeo de tiacutequete seja uacutenica enquanto assegura que o cliente re-almente natildeo possui a chave da ses-satildeo Sem o autenticador seria mais faacutecil para um agressor capturar um tiacutequete no traacutefego da rede e iniciar um ataque de repeticcedilatildeo

O servidor valida o tiacutequete de ser-viccedilo apresentado a ele Para isso ele faz referecircncia ao arquivo etckrb5keytab local Esse arquivo armazena a chave do servidor que o usuaacuterio utiliza para decifrar o tiacutequete de serviccedilo revelando assim a chave da sessatildeo O autenticador se baseia na chave da sessatildeo caso tenha sucesso o usuaacuterio eacute autenticado sem neces-sidade de senha (figura 6)

ConexatildeoO Likewise Open configura automa-ticamente clientes SSH preacute-existen-tes e outros clientes ao se juntarem ao domiacutenio permitindo que usem o Kerberos para se autenticarem no futuro No lado do servidor o Likewise adiciona as linhas

GSSAPIAuthentication yesGSSAPICleanupCredentials yes

ao arquivo de configuraccedilatildeo etcsshsshd_config O Likewise tambeacutem acrescenta as seguintes linhas para um cliente SSH

GSAPIAuthentication yesGSSAPIDelegateCredentials yes

A instruccedilatildeo GSSAPIDelegateCreden-tials passa o TGT para o servidor de des-tino Para todas as outras configuraccedilotildees o software utiliza a Generic Security Ser-vices API (API de serviccedilos geneacutericos de seguranccedila GSSAPI) uma interface ge-neacuterica para serviccedilos de seguranccedila como o Kerberos

Figura 6 O Likewise implementa o single sign-on por meio do Kerberos Os usuaacuterios natildeo precisam digitar uma senha para fazer logon

Exemplo 4 Montagem de compartilhamentos Samba

01 ltxml version=rdquo10rdquo encoding=rdquoUTF-8rdquogt02 ltpam_mountgt03 ltvolume user = ldquordquo04 server = ldquoSAMBASERVERrdquo05 mountpoint = ldquohomeEXAMPLE(USER)Documentrdquo06 path = ldquo(USER)rdquo07 fstype = ldquosmbfsrdquo gt08 ltpam_mountgt

Exemplo 3 Tiacutequetes no cache de credenciais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081308 154829 081408 014830 krbtgtEXAMPLEORG EXAMPLEORG07 renew until 082008 15482908 081308 154830 081408 014830 SUSE$EXAMPLEORG09 renew until 082008 15482910 081308 154838 081408 014830 hostubuntuexampleorg11 renew until 082008 15482912 081308 154838 081408 014830 hostubuntuexampleorgEXAMPLEORG13 renew until 082008 154829

copy Linux New Media do Brasil Editora Ltda

39

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

LocalNa primeira vez em que um usuaacuterio do domiacutenio faz logon num cliente o Likewise Open usa o PAM (pam_lwidentityso) para criar diretoacuterios locais para esse usuaacuterio Alterna-tivamente o moacutedulo pam_mount pode montar diretoacuterios centrais do usuaacuterio num servidor remoto por SMBCIFS [5] Isso garante a todos os usuaacuterio o acesso a seus proacuteprios arquivos independentemente do cliente usado por eles no login O compartilhamento eacute definido por uma linha no arquivo etcsecuri-typam_mountconf que usa a palavra-chave volume

volume usuaacuterio sistema_de_arquivos servidor compartilhamento ponto_de_montagem opccedilotildees algoritmo caminho

A presenccedila de um curinga () no paracircmetro usuaacuterio faz o moacutedulo inserir o nome do usuaacuterio Sistema_de_arquivos pode ser smbfs ou cifs O servidor pode ser um IP ou um nome NetBIOS e compartilhamento pode usar o amp como curinga para o nome do usuaacuterio

Os trecircs uacuteltimos paracircmetros geral-mente natildeo satildeo necessaacuterios traccedilos satildeo aceitaacuteveis nesse caso montar o diretoacuterio Documentos ou o diretoacuterio home completo eacute questatildeo de gosto e depende de como a empresa orga-niza seus servidores centrais

Caso o ponto de montagem natildeo exista o moacutedulo pam_mount do PAM o cria se sua opccedilatildeo mkmountpoint 1 estiver presente Na versatildeo 029 o pam_mount armazena as configura-ccedilotildees num formato XML equivalente conforme mostra o exemplo 4

Antes das linhas sufficient na seccedilatildeo auth de etcpamd eacute possiacutevel inserir uma linha para o moacutedulo O exemplo 5 mostra uma configuraccedilatildeo nos arquivos common-auth e common-session no Ubuntu Para evitar a necessidade de os usuaacuterios digitarem suas senhas repetidamente a linha tr_first_pass = yes do arquivo etcsecuritypam_lwidentityconf ativa a opccedilatildeo para tentar novamente uma senha jaacute digitada antes

Versatildeo comercialAleacutem da versatildeo de coacutedigo aberto do Likewise a corporaccedilatildeo america-na Likewise Software oferece uma versatildeo comercial de seu software o Likewise Enterprise [6] A versatildeo comercial possui suporte a poliacuteticas de grupo no AD aleacutem das funciona-lidades oferecidas pela versatildeo livre o produto define aproximadamente 500 poliacuteticas padratildeo O Likewise Ad-ministrative Console eacute capaz de usar uma maacutequina Linux ou Unix para gerenciar registros do AD

Aleacutem disso tudo o Likewise En-terprise suporta desktops Linux que fazem referecircncia ao AD para obten-ccedilatildeo de configuraccedilotildees e restriccedilotildees Isso

ativa a implementaccedilatildeo de poliacuteticas estritas de seguranccedila A variante corporativa estaacute disponiacutevel gratuita-mente para fins de avaliaccedilatildeo ou por US$ 250 na versatildeo para servidores A empresa oferece dois niacuteveis de suporte comercial

Nova caraUma vez configurado o Likewi-se Open oferece o mesmo escopo funcional de uma combinaccedilatildeo de Samba Kerberos PAM e NSS Ele livra o administrador de vaacuterias tarefas monoacutetonas e repetitivas de configu-raccedilatildeo e suporta o gerenciamento de usuaacuterios centralizado e independente de plataforma O serviccedilo de autenti-caccedilatildeo por tiacutequetes do Kerberos e o single sign-on satildeo bocircnus

Quem se interessar pelo Likewi-se Open pode apreciar os recursos adicionais oferecidos pela versatildeo co-mercial ou os benefiacutecios do suporte profissional O uacutenico trabalho ma-nual que resta para o administrador eacute o gerenciamento centralizado dos diretoacuterios dos usuaacuterios

Mais informaccedilotildees

[1] Likewise Open httpwwwlikewisesoftwarecomproductslikewise_open

[2] Walter Neu ldquoDomando os catildees do infernordquo httplnmcombrarticle2424

[3] Kerberos MIT httpwebmitedukerberos

[4] Padratildeo Hieraacuterquico de Arquivos (FHS) httpwwwpathnamecomfhs

[5] Montagem de diretoacuterios home com PAM httppam-mountsourceforgenet

[6] Likewise Enterprise httpwwwlikewisesoftwarecomproductslikewise_enterprise

Exemplo 5 Configuraccedilatildeo do pam_mount

01 etcpamdcommon-auth02 auth required pam_mountso03 auth sufficient libsecuritypam_lwidentityso04 auth requisite pam_unixso nullok_secure try_first_pass05 auth optional pam_smbpassso migrate missingok0607 etcpamdcommon-session08 session optional pam_mountso09 auth sufficient libsecuritypam_lwidentityso10 session required pam_unixso

copy Linux New Media do Brasil Editora Ltda

40 httpwwwlinuxmagazinecombr

Serviccedilo RDP Linux para clientes de terminal Windows

O manda-chuva do terminal

O xrdp ajuda os seus clientes de terminal Windows a se conectarem ao Linuxpor Kenneth Hess

A conexatildeo de desktops remotos do Windows no Linux ge-ralmente consome bastante

banda da rede eacute insegura e difiacutecil de configurar E se um sistema Windows pudesse se conectar a um sistema Linux tatildeo facilmente quanto o faz com outro sistema Windows ndash utili-zando para isso o mesmo aplicativo usado para conectar originalmente ao Windows

O xrdp eacute uma implementaccedilatildeo de coacutedigo aberto do RDP (Remote Desktop Protocol ndash ou Protocolo de Ambiente de Trabalho Remoto na

traduccedilatildeo em portuguecircs) o protoco-lo usado nos serviccedilos de terminal do Windows para conexatildeo nativa a desktops Windows O Pacote xrdp fornece a funcionalidade RDP bem como um servidor graacutefico que seja capaz de aceitar conexotildees do rdesktop [1] e de clientes de serviccedilos de ter-minais Windows

Uma vez conectado e autenticado no servidor RDP Linux o usuaacuterio remoto teraacute disponiacutevel um ambiente de trabalho Linux em modo graacutefico E o melhor eacute que natildeo eacute necessaacuterio executar um servidor graacutefico na maacute-quina com Windows nem eacute preciso exportar a tela do Linux para o com-putador com Windows

Configurar o servidor RDP no Linux eacute faacutecil e leva apenas alguns minutos Para os usuaacuterios novatos de Linux ou os administradores de sistemas Windows segue a lista de requisitos necessaacuterios para fazer o sistema funcionar uma conta de usuaacuterio padratildeo

na maacutequina Linux acesso remoto ou ao console do

servidor Linux acesso com privileacutegios administrati-

vos (de root) no servidor Linux

Tambeacutem ajuda se vocecirc souber al-guma coisa sobre RDP e sobre a otimizaccedilatildeo da configuraccedilatildeo de um cliente RDP

Instalaccedilatildeo e configuraccedilatildeoPara nos certificarmos de que esta-mos usando a versatildeo mais recente do xrdp vamos instalaacute-lo a partir do coacutedigo-fonte Haacute pacotes do pro-grama para algumas distribuiccedilotildees o que pode facilitar a instalaccedilatildeo e a integraccedilatildeo agrave distribuiccedilatildeo Poreacutem o objetivo deste artigo eacute possibili-tar a instalaccedilatildeo em qualquer sis-tema Assim baixe o coacutedigo-fonte do pacote xrdp [2] descompacte-o e compile-o

$ tar zxvf xrdp-041targz$ cd xrdp-041$ make

Em seguida instale-o usando pri-vileacutegios de root

make install

Os arquivos executaacuteveis scripts e bibliotecas seratildeo instalados no diretoacuterio usrlocalxrdp e os arquivos de con-figuraccedilatildeo no diretoacuterio etcxrdp

A documentaccedilatildeo do aplicativo eacute um pouco obscura sobre o que fazer a seguir Embora tenhamos decidido no comeccedilo natildeo mudar nenhum dos paracircmetros nos arquivos sesmanini e xrdpini disponiacuteveis em etcxrdp e tenhamos abordado a situaccedilatildeo

CA

PA

Figura 2 Forneccedila seu usuaacuterio e sua senha do sistema Linux

Figura 1 Janela de conexatildeo com o desktop remoto

copy Linux New Media do Brasil Editora Ltda

41

| CAPAxrdp

como um administrador de sistemas Windows assumindo que as coisas iriam funcionar sem necessidade de muitos ajustes agrave configuraccedilatildeo nesse ponto essa abordagem comeccedila a se tornar frustrante

Uma vez com o sistema instala-do os seguintes comandos devem ser executados como root

cd usrlocalxrdp cp xrdp_controlsh etcinitdxrdp_control

Em seguida em distribuiccedilotildees derivadas do Red Hat os seguintes comandos se aplicam

chkconfig --add xrdp_control

chkconfig xrdp_control on service xrdp_control start

Jaacute em distribuiccedilotildees derivadas do De-bian esses satildeo os comandos

update-rcd xrdp_control defaults update-rcd xrdp_control start 80 3 4 stop 0 1 6 etcinitdxrdp_control start

O script xrdp_controlsh controla os serviccedilos de ativaccedilatildeo desativaccedilatildeo e reinicializaccedilatildeo do pro-grama Ao copiar o script para o diretoacuterio etcinitd pode-se retirar a ex-tensatildeo sh por motivos esteacuteticos ndash nenhum ou-tro script desse diretoacuterio possui essa extensatildeo em-bora todos sejam scripts de shell

Em sistemas baseados em FedoraRed Hat o comando chkconfig eacute um utilitaacuterio para atualizar e buscar informaccedilotildees sobre o niacutevel de execuccedilatildeo para serviccedilos de sistema ma-nipulando os vaacuterios links simboacutelicos em etcinitd para ali-viar um pouco os administradores de

sistema da tarefa tediosa de editar os links simboacuteli-cos e a necessi-dade de manipu-lar esses serviccedilos manualmente

Haacute pacotes para esse apli-cativo disponiacute-veis para outras distribuiccedilotildees como Debian e Ubuntu mas o correto eacute usar a ferramenta ade-quada para a sua distribuiccedilatildeo

Assim para criar um novo serviccedilo de inicializaccedilatildeo copie seu script de controle para etcinitd confor-me mostrado acima e entatildeo use o comando chkconfig para ativaacute-lo A linha chkconfig xrdp_control on de-fine os niacuteveis de execuccedilatildeo (runlevels) do serviccedilo (ver tabela 1) Por exemplo o comando chkconfig --level 35 xrdp_control configura o xrdp_con-trol para funcionar nos niacuteveis de execuccedilatildeo 3 e 5 O uacuteltimo comando na listagem acima inicia os serviccedilos sesman e xrdp

Para se conectar ao serviccedilo RDP no servidor Linux a partir de um PC com Windows basta fazer exatamente como se faria com um servidor Win-dows como mostra a figura 1

O cliente RDP abre uma nova janela conforme ilustrado na figura 2 solicitando o nome de usuaacuterio e a senha que satildeo aqueles configu-rados no servidor Linux Forneccedila um nome e uma senha vaacutelidos e clique em OK Mesmo que a maacute-quina Linux esteja configurada para usar um domiacutenio do serviccedilo Active Directory ainda seraacute preciso adicio-nar cada usuaacuterio aos sistemas Linux que se desejar acessar via RDP Para fazer isso crie primeiramente um grupo para todos os usuaacuterios do serviccedilo RDP

Tabela 1 Niacuteveis de execuccedilatildeo no Linux

0 Desligar

1 Modo monousuaacuterio

2 Multiusuaacuterio sem NFS

3 Multiusuaacuterio completo

4 Natildeo utilizada

5 X11 (graacutefico)

Detalhe haacute distribuiccedilotildees que utilizam o niacutevel 4 como ambiente graacutefico semelhante ao niacutevel 5

Figura 3 Registro do gerenciador de sessatildeo da conexatildeo xrdp

Figura 4 Uma conexatildeo com o desktop pronta para usar

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

42 httpwwwlinuxmagazinecombr

CAPA | xrdp

groupadd rdpusers useradd -g rdpusers fulano passwd fulano

Caso o usuaacuterio jaacute exista no sis-

tema use o comando usermod para adicionaacute-lo ao grupo de usuaacuterios do serviccedilo RDP

usemod -G rdpusers fulano

Embora natildeo seja explicitamente necessaacuterio para o acesso um grupo especial simplifi ca a administraccedilatildeo do sistema Forneccedila agora o nome do usuaacuterio criado e a sua senha e entatildeo clique em OK

A tela mostrada na figura 3 de-veraacute aparecer Essa eacute a janela de registro do gerenciador de sessotildees da conexatildeo que ilustra a negocia-ccedilatildeo entre o cliente e o servidor Perceba que o gerenciador de ses-sotildees conecta primeiramente agrave porta associada ao serviccedilo RDP e entatildeo agrave porta de um serviccedilo VNC para entatildeo apresentar o desktop Linux a vocecirc A figura 4 mostra um desktop CentOS 5

Quando desconectando de uma sessatildeo RDP em Linux vocecirc veraacute a tela mostrada na fi gura 5 Perceba que somente duas accedilotildees estatildeo dis-poniacuteveis Encerrar sessatildeo atual e Cancelar que satildeo recursos padratildeo de conexotildees VNC remotas

O servidor Linux executa os progra-mas xrdp e sesman e fi ca aguardando co-nexotildees RDP Assim que um cliente de serviccedilos de terminais Windows tenta se conectar ao servidor RDP o servidor e o cliente negociam um niacutevel de criptografi a trocam chaves e veri-fi cam quais recursos estatildeo disponiacuteveis A partir daiacute o cliente escolhe a quantidade de cores e a resoluccedilatildeo da tela que seraacute usada na sessatildeo

Se o usuaacuterio fornecer um nome e uma senha no aplicativo cliente a autenticaccedilatildeo eacute iniciada Caso con-traacuterio o usuaacuterio seleciona o moacutedu-lo de uma lista do tipo drop-down e fornece um usuaacuterio e uma senha na tela de login conforme ilustra a fi gura 6

O moacutedulo libvnc eacute carregado e uma conexatildeo TCP eacute feita para o endereccedilo 127001 ou para o en-dereccedilo IP especifi cado no arquivo etcxrdpxrdpini As credenciais de login do usuaacuterio a resoluccedilatildeo da tela e a quantidade de cores satildeo fornecidas ao aplicativo sesman para fi ns de autenticaccedilatildeo Se o sesman

encontrar uma sessatildeo ativa com a resoluccedilatildeo e a quantidade de cores especifi cadas ele retor-na essa tela ao usuaacute-rio Caso contraacuterio ele inicia uma nova instacircncia xvnc com as especifi caccedilotildees de am-biente do usuaacuterio

Conclusotildees O xrdp eacute faacutecil de ins-talar confi gurar cus-tomizar e usar E ndash o que eacute melhor ndash natildeo eacute

necessaacuterio experiecircncia em Linux para trabalhar com essa poderosa ferra-menta Como natildeo haacute o que instalar no cliente Windows natildeo daacute para se complicar com o xrdp

Muito embora este artigo natildeo mostre qualquer tipo de anaacutelise ex-tensiva de desempenho de rede ou uso de banda com esse aplicativo como se trata de RDP eacute sabido que a performance comeccedila a cair quando o nuacutemero de usuaacuterios simultacircneos conectados se aproxima da marca de 25 Contudo vale a pena conhe-cer o xrdp e integraacute-lo ao seu arse-nal de ferramentas independentes de plataforma

Sobre o autor Ken Hess eacute editor de material teacutecnico e jornalista freelance Ele escreve sobre uma grande variedade de temas envolvendo sistemas de coacutedigo aberto entre eles Li-nux bancos de dados e virtualizaccedilatildeo Agradecimentos especiais a Jay Sorg do projeto xrdp e a Matt Chapman do proje-to rdesktop pela ajuda no desenvolvimen-to deste artigo

Mais informaccedilotildees

[1] rdesktop httpwwwrdesktoporg

[2] xrdp httpxrdpsourceforgenet

Figura 5 Janela de fi nalizaccedilatildeo de sessatildeo do VNC

Figura 6 Tela de login do xrdp

copy Linux New Media do Brasil Editora Ltda

43

| CAPAxrdp

Linux Magazine 50 | Dezembro de 2008

SE

CcedilAtilde

O

pocket_atualizadoindd 61 261108 142709

copy Linux New Media do Brasil Editora Ltda

44 httpwwwlinuxmagazinecombr

A possibilidade de realizar uma certa tarefa num momento especiacutefico ou em intervalos

regulares eacute obrigatoacuteria para adminis-tradores de sistemas O cron daemon original oferece um meacutetodo faacutecil para agendar tarefas em sistemas baseados em Unix Embora o Cron tenha recebido diversas melhorias ao longo dos anos suas versotildees mais recentes ainda satildeo projetadas para agendamentos muito simples Administradores que precisam de algo minimamente incomum satildeo obrigados a criar scripts ou a incluir os recursos de que precisam em um dos scripts iniciados pelo Cron

Imagine quanto tempo seria eco-nomizado se natildeo fosse mais neces-saacuterio criar e alterar esses scripts ou ter qualquer outro trabalho para fazer com que os programas rea-jam a condiccedilotildees de erro e sejam executados na exata hora em que deveriam Vaacuterios produtos comer-

ciais oferecem esse recurso mas podem significar uma mordida no orccedilamento de TI Felizmente o mundo do Coacutedigo Aberto tambeacutem oferece soluccedilotildees de agendamento aleacutem do Cron

Assim como em qualquer software de agendamento a unidade primaacuteria eacute o job ou tarefa que geralmente eacute um script ou programa iniciado pelo software de agendamento Em vaacuterios casos o Cron eacute suficiente para suprir os requisitos mais baacutesicos de agen-damento tais como executar uma tarefa uma vez por dia (becapes por exemplo) ou tarefas que precisem ser executadas em intervalos mais frequumlentes menos frequumlentes ou em datas especiacuteficas

Poreacutem quando comeccedilamos a lidar com dependecircncias de algum tipo rapidamente eacute possiacutevel perceber as limitaccedilotildees do Cron ndash por exemplo se for necessaacuterio iniciar um progra-ma especiacutefico apoacutes um certo evento

Haacute casos de verdadeiras seacuteries de co-mandos que precisam ser executados em ordem e precisam todos ter su-cesso ndash se um dos comandos falhar a execuccedilatildeo dos seguintes causaria grandes problemas Nem as versotildees mais novas do Cron conseguem li-dar com isso principalmente se for necessaacuterio iniciar uma tarefa jaacute no meio da cadeia de comandos

Muitas tarefas precisam ser ge-renciadas em muacuteltiplas maacutequinas entatildeo um bom software de agen-damento permite que se gerencie todas as maacutequinas a partir de um ponto central inicie tarefas remo-tamente e assim por diante Para distribuir crontabs para essas maacutequi-nas remotas pode-se usar o Rsync mas isso rapidamente se torna um pesadelo administrativo quando a configuraccedilatildeo eacute diferente ao longo das maacutequinas ou quando as tare-fas agraves vezes precisam ser iniciadas manualmente ou ainda quando haacute

CA

PA

O agendador Open Source Job Scheduler

Muito aleacutem do CronPlanejar e agendar tarefas computacionais pode exigir muito trabalho principalmente se abranger muacuteltiplas maacutequinas Conheccedila uma ferramenta que facilita muito essa aacutereapor James Mohr

copy Linux New Media do Brasil Editora Ltda

45

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

outras tarefas que natildeo fazem parte do Cron

MultiplataformaApesar de ser possiacutevel instalar ver-sotildees abertas do Cron no Windows lidar com diferentes sistemas ope-racionais causa ainda mais proble-mas Por exemplo alguns dialetos de Unix natildeo suportam um arquivo etccrontab central entatildeo eacute preciso criar um arquivo para cada usuaacuterio O Cron era uma boa ferramenta nessa eacutepoca e geralmente ainda eacute mas as necessidades de muitas empresas jaacute superam suas funcionalidades

As limitaccedilotildees do Cron natildeo pas-saram despercebidas Haacute produtos comerciais que custam pequenas fortunas e costumam ser licenciados com base no nuacutemero de servidores ou de scripts a serem iniciados

Por sua vez os problemas dos pro-dutos comerciais tambeacutem natildeo passa-ram despercebidos pela comunida-de do Coacutedigo Aberto Uma soluccedilatildeo surpreendente eacute o Open Source Job Scheduler desenvolvido pela alematilde SOS (Software- und Organisations-Service) Haacute versotildees para Linux So-laris HP-UX (PA-RISC IA64) AIX e Windows Ele tambeacutem suporta vaacuterios bancos de dados incluindo DB2 Oracle MS SQL Server PostgreSQL e MySQL

O software adota um esquema de duplo licenciamento pela GPL e a Guaranteed License (Licenccedila Ga-rantida) Trata-se do mesmo coacutedigo com funcionalidades atualizaccedilotildees e coacutedigo-fonte idecircnticos

A receita da SOS natildeo proveacutem da venda de seu produto mas dos serviccedilos e do suporte Poreacutem estra-nhamente a empresa natildeo anuncia seu produto ndash nem seus serviccedilos ndash da forma tradicional Ao demonstrar o produto o objetivo natildeo eacute convencer clientes potenciais mas mostrar-lhes o que o produto pode fazer e deixar que eles decidam se ele supre suas necessidades

A versatildeo comercial tambeacutem oferece uma ldquopessoa responsaacutevelrdquo para cada chamado de serviccedilo com tempos de resposta garantidos e pedidos de re-cursos recebem maior prioridade de implementaccedilatildeo Aleacutem disso essa ver-satildeo natildeo possui as restriccedilotildees da GPL entatildeo pode ser embutida em outros aplicativos (comerciais ou natildeo) sem que este precise aderir agrave GPL

Diferente da maioria dos softwa-res comerciais e de coacutedigo aberto a SOS oferece garantia limitada de dois anos e um acordo de indeni-zaccedilatildeo Segundo seu diretor a em-presa se sente obrigada a fornecer ao cliente um retorno por seu pa-gamento e isso tambeacutem se estende a discrepacircncias entre o produto e a documentaccedilatildeo

EstruturaO componente central do pacote eacute o mecanismo de agendamento de tarefas que roda em cada uma das maacutequinas que as agendaratildeo Esse meacute-todo eacute diferente de executar a tarefa pode-se ter um agendador em cada

maacutequina com todos agindo como escravos de um central mas tam-beacutem eacute possiacutevel usar um agendador completo em cada uma delas Esse mecanismo pode ser expandido para permitir o balanceamento de carga por meio de muacuteltiplos servidores

Um aspecto importante a ser considerado eacute chamado de order (pedido) que consiste em um sinal passado entre tarefas Dependendo de suas configuraccedilotildees as tarefas natildeo tecircm permissatildeo de iniciar ateacute rece-berem seu pedido

Na forma mais simples pedidos satildeo como o bastatildeo numa corrida de revezamento entregues por cada tarefa para a seguinte Aleacutem disso eacute possiacutevel configurar pedidos com horas especiacuteficas de iniacutecio para que sejam gerados automaticamente pelo sistema no momento especificado e depois a cadeia respectiva possa se iniciar

Note que para conseguir reagir a um pedido uma tarefa precisa ser configurada para aceitaacute-lo mas o pedido soacute pode ser associado a uma

Figura 1 Janela do editor graacutefico do agendador de tarefas

copy Linux New Media do Brasil Editora Ltda

46 httpwwwlinuxmagazinecombr

CAPA | Agendamento

cadeia de tarefas e natildeo a uma ta-refa especiacutefica Ou seja o pedido eacute passado de tarefa para tarefa dentro da cadeia mas eacute associado somente agrave cadeia Se for desejaacutevel que uma uacutenica tarefa se inicie num momento especiacutefico por exemplo isso pode ser feito dentro da proacutepria tarefa Outro componente importante satildeo os Hot Folders (pastas quentes) que seatildeo di-retoacuterios monitorados pelo agendador em busca de alteraccedilotildees tais como a alteraccedilatildeo ou criaccedilatildeo de tarefas

TarefasTarefas podem ser configuradas a partir da interface graacutefica do editor do agendador (figura 1 chamado aqui de ldquoeditor de tarefasrdquo) ou por arqui-vos XML editados manualmente O editor de tarefas eacute um aplicativo em Java que configura vaacuterias tarefas ca-deias e outros aspectos do sistema Todas as informaccedilotildees de configura-

ccedilatildeo do sistema satildeo armazenadas em arquivos XML e basta abrir o arquivo XML respectivo no editor de tarefas para fazer alteraccedilotildees Poder usar o Vim em arquivos de configuraccedilatildeo eacute mais que uma becircnccedilatildeo em casos de alteraccedilotildees em massa

Os arquivos XML podem ser copiados para maacutequinas remotas e salvos via FTP diretamente a partir do editor de tarefas Quando ater-rissam num Hot Folder os arquivos ficam imediatamente disponiacuteveis para o mecanismo do agendador na maacutequina remota

A interface graacutefica do editor de tarefas natildeo eacute tatildeo intuitiva quanto poderia e vaacuterios campos parecem misteriosos a princiacutepio Como a documentaccedilatildeo deixa a desejar fal-tam explicaccedilotildees sobre muitos desses campos Em alguns casos a docu-mentaccedilatildeo dos arquivos XML ajuda a tirar as duacutevidas

Apesar de as informaccedilotildees de con-figuraccedilatildeo serem armazenadas em arquivos XML por padratildeo eacute pos-siacutevel configurar o agendador para usar diversos bancos de dados dife-rentes Essas tarefas satildeo chamadas de ldquogerenciadasrdquo e cada agendador instalado pode ser configurado para acessar as tarefas no banco de da-dos para natildeo ser necessaacuterio copiar os arquivos manualmente

A operaccedilatildeo cotidiana do siste-ma eacute realizada pela sua interface graacutefica (chamada neste artigo de ldquointerface de operaccedilatildeordquo) que eacute acessada por um navegador e per-mite o gerenciamento das tarefas a partir de qualquer maacutequina Com essa interface eacute possiacutevel natildeo apenas monitorar as tarefas mas tambeacutem iniciaacute-las paraacute-las tratar seus erros e muitas outras funccedilotildees

O agendador de tarefas tambeacutem oferece uma API que permite o ge-renciamento e o controle externos de tarefas A API suporta vaacuterias lin-guagens incluindo Perl VBScript JavaScript e Java Surpreendente-mente natildeo haacute suporte a PHP ape-sar da possibilidade de se gerenciar tarefas a partir de um navegador web e da documentaccedilatildeo de scripts PHP de exemplo

InstalaccedilatildeoOs exemplos deste artigo foram feitos com a versatildeo 134 para Li-nux que pode ser baixada do site do Job Scheduler no SourceForge [1] Se houver intenccedilatildeo de se usar um banco de dados MySQL como neste artigo note que o programa natildeo fornece um driver JDBC para esse banco embora haja drivers para Oracle e outros bancos O driver JDBC para MySQL pode ser baixado diretamente do site do MySQL [2] Basta digitar o caminho do arquivo jar apropriado durante a instalaccedilatildeo

Antes de comeccedilar eacute recomen-daacutevel ler o guia de instalaccedilatildeo em Figura 2 Digitaccedilatildeo do coacutedigo-fonte diretamente no editor de tarefas

copy Linux New Media do Brasil Editora Ltda

47

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

PDF incluiacutedo no pacote Aleacutem dis-so haacute vaacuterios outros PDFs no site da empresa [3] mais aprofundados em diversos toacutepicos Fique ciente ateacute para obter as informaccedilotildees mais baacutesicas na documentaccedilatildeo eacute preciso ser um tanto familiarizado com a programaccedilatildeo orientada a objetos e XML pois a documentaccedilatildeo natildeo fornece qualquer introduccedilatildeo a esses toacutepicos Aleacutem disso ela natildeo eacute bem organizada entatildeo saiba que seraacute preciso procurar bastante Apesar de ser volumosa a documentaccedilatildeo natildeo eacute faacutecil de usar o que eacute algo que a empresa pretente melhorar

No Linux a instalaccedilatildeo ocorre por meio de um instalador em Java e se for feita por um usuaacuterio nor-mal o padratildeo eacute os arquivos serem abrigados em $HOMEscheduler Se for instalado como root o diretoacuterio do programa eacute usrlocalschedu-ler Apoacutes instalar o produto haacute um arquivo README que recomenda que o programa natildeo seja instalado como root mas natildeo haacute menccedilatildeo a isso no guia de instalaccedilatildeo e con-figuraccedilatildeo Para evitar problemas potenciais vamos instalaacute-lo como usuaacuterio normal

Durante a instalaccedilatildeo satildeo pedidos o tipo do banco de dados e infor-maccedilotildees da conexatildeo Natildeo fica claro se o campo ldquodatabase parametersrdquo deve receber os paracircmetros de co-nexatildeo apoacutes o banco de dados estar em execuccedilatildeo ou os paracircmetros de conexatildeo para criaccedilatildeo do banco de dados Infelizmente recomenda-se criar um banco de dados e um usuaacuterio para o programa usar mas isso soacute eacute mencionado apoacutes todas as etapas de instalaccedilatildeo Criar o banco de dados manualmente e conferir privileacutegios do banco antes de iniciar a instalaccedilatildeo jaacute resolve

A instalaccedilatildeo eacute relativamente in-tuitiva mas leva alguns minutos para criar e preencher as tabelas do banco de dados Para instalar o Scheduler em muacuteltiplas maacutequinas com os mes-

mos paracircmetros haacute a opccedilatildeo de criar um script automaticamente ao final da primeira instalaccedilatildeo

IniciandoIndependentemente de a instala-ccedilatildeo ocorrer sob o root ou um usuaacute-rio normal eacute necessaacuterio iniciar o agendador manualmente Seu controle eacute feito como num script rc comum

$HOMEschedulerbinjobschedulersh start$HOMEschedulerbinjobschedulersh stop

Para iniciar o Scheduler auto-maticamente na inicializaccedilatildeo re-comenda-se criar um usuaacuterio espe-ciacutefico para ele e depois um script rc que use o comando su para se tornar esse usuaacuterio e iniciar o programa Se houver necessidade de tarefas serem executadas sob o root ou ou-tro usuaacuterio com mais privileacutegios eacute possiacutevel configurar um ambiente sudo apropriado

Novas tarefasPara criar tarefas pode-se ou edi-tar os arquivos XML diretamente ou pelo editor de tarefas No Li-nux execute o script jobeditorsh localizado por padratildeo em usrlo-calschedulerbin ou $HOMEsche-dulerbin

Como exemplo considere a ta-refa tiacutepica de criaccedilatildeo de um beca-pe da configuraccedilatildeo do sistema Por ora vamos supor que isso seja feito diariamente com o script usrbinbecapesh

Primeiramente inicie o editor de tarefas e selecione New | Hot Folder Element | Job (figura 1) No primei-ro formulaacuterio comece digitando as informaccedilotildees baacutesicas de sua tarefa Para este exemplo digite o nome Becape das configuraccedilotildees no campo Job Title adicione uma descriccedilatildeo ou deixe em branco

No painel esquerdo clique em Execute para digitar os detalhes sobre o programa ou script que se deseja iniciar Como o objetivo eacute executar um script externo selecione o botatildeo

Figura 3 Interface de operaccedilatildeo do Job Scheduler

copy Linux New Media do Brasil Editora Ltda

48 httpwwwlinuxmagazinecombr

CAPA | Agendamento

Run executable e digite o caminho completo do script referido Nesse ponto tambeacutem eacute possiacutevel definir masi paracircmetros a ser passados para o script Por exemplo se o becape comprimir os arquivos armazenados pode ser interessante acrescentar um -c a esse campo

Aleacutem disso pode-se incluir os passos individuais de execuccedilatildeo se-lecionando-se o botatildeo Script e o tipo de coacutedigo do programa depois digitando o coacutedigo-fonte na caixa apropriada Note que isso eacute mais que o nome de um script e pode incluir estruturas de programaccedilatildeo baseadas na linguagem seleciona-da (figura 2)

Para salvar a tarefa pressione o botatildeo Save ou escolha Save no menu File Na primeira vez em que o ar-quivo eacute salvo eacute preciso digitar um nome para ele Para isso navegue ateacute o diretoacuterio configlive e salve o arquivo como becape assim

a extensatildeo xml seraacute adicionada au-tomaticamente

Via navegadorComo o arquivo foi salvo no dire-toacuterio live ele fica imediatamente visiacutevel para o sistema Esse diretoacuterio eacute preacute-definido como um Hot Folder que o sistema lecirc regularmente Nesse ponto a tarefa natildeo foi agendada mas apenas adicionada ao sistema Para iniciar a tarefa eacute preciso executar a interface de operaccedilatildeo apontando seu navegador para httplocal-host4444

Em conexotildees pelo navegador o Scheduler exibe uma interface semelhante agrave da figura 3 Para ver os detalhes da tarefa decirc um duplo clique na tarefa de becape na colu-na agrave esquerda Para executar a tarefa imediatamente clique no botatildeo Job menu e selecione Start task now

Por ser muito faacutecil iniciar o script pela linha de comando isso natildeo eacute

nada espetacular Eacute possiacutevel voltar ao editor de tarefas e clicar na en-trada Run Time no painel esquerdo e selecionar uma hora para a exe-cuccedilatildeo da tarefa Para isso clique em Everyday (todos os dias) e de-fina um novo periacuteodo clicando no botatildeo new Period Em Start Time digite algo como 0900 no campo Single Start Depois clique no bo-tatildeo Save e essa nova configuraccedilatildeo seraacute ativada ndash a tarefa teraacute iniacutecio todos os dias agraves 9 horas

Ateacute agora a uacutenica vantagem do programa sobre o Cron eacute uma inter-face amigaacutevel ndash mas isso eacute apenas o comeccedilo Quando comeccedilamos a conhecer as cadeias de tarefas vemos o poder do agendamento de tarefas

BecapePrimeiro suponha que vocecirc tenha criado uma segunda tarefa que faccedila um becape do banco de dados que deve ser executada imediatamente apoacutes o fim do becape das configu-raccedilotildees Uma alternativa eacute criar um uacutenico script que faccedila primeiro o becape das configuraccedilotildees e imedia-tamente depois inicie o do banco de dados Poreacutem cadeias de tarefas satildeo uacuteteis em vaacuterias situaccedilotildees mais complexas em que natildeo eacute possiacutevel simplesmente lanccedilar matildeo de um script shell as quais seratildeo discutidas mais adiante

Assim como na primeira tarefa crie um novo elemento no Hot Folder mas selecione Job Chains Digite o nome da cadeia (Chain Name) e caso se deseje tambeacutem um tiacutetulo (Title) Como cada ele-mento de uma cadeia eacute chamado de noacute (Node) eacute preciso adicionar um New Chain Node a seguir clicando no botatildeo respectivo Caso o nome da tarefa seja conhecido pode-se digitaacute-lo manualmente ou usar o botatildeo Browse para procuraacute-la

No campo State eacute possiacutevel definir um estado para essa etapa ou noacute

Figura 4 As dependecircncias entre as tarefas podem ser exibidas com uso do Job Chain Illustration

copy Linux New Media do Brasil Editora Ltda

49

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

Definido estados eacute possiacutevel criar um fluxo mais complexo para as tarefas Por exemplo pode-se criar um esta-do chamado Erro e se alguma tarefa anterior apresentar um erro pula-se imediatamente para a tarefa definida com esse estado pulando todas as outras Aleacutem disso eacute possiacutevel exe-cutar diferentes tarefas de erro para cada uma das vaacuterias etapas

Mais cadeiasEmbora criar uma cadeia de tare-fas que consista em apenas uma uacutenica tarefa possua certas vanta-gens natildeo pare nesse ponto Como mencionado eacute melhor uma tarefa de becape constituiacuteda por duas etapas entatildeo vamos criar uma segunda cadeia com a tarefa de becape do banco de dados e con-figuraacute-la de forma semelhante agrave segunda tarefa Em nosso exem-plo definimos o primeiro noacute com o estado Iniacutecio e o segundo com o estado Fim embora isso natildeo seja necessaacuterio

Ao se clicar no botatildeo Save eacute mostrada a nova cadeia na aba Job Chains da interface de operaccedilatildeo Marcar a caixa Show Jobs exibe as tarefas individuais que compotildeem a cadeia Um duplo clique na ca-deia abre o painel de detalhes no lado direito como ocorreu com a tarefa uacutenica

Nesse ponto a cadeia de tarefas ainda natildeo seraacute executada porque precisa de um pedido que pode ser inserido manualmente no menu Job | Add Order Eacute mostrada uma nova janela que permite a definiccedilatildeo de vaacuterias caracteriacutesticas do pedido como ID horaacuterio de iniacutecio e ateacute estado da cadeia Neste exemplo apenas deixe tudo em branco e o sistema criaraacute sozinho uma ID de pedido

Se natildeo tiver sido definida uma condiccedilatildeo a cadeia inicia imedia-tamente poreacutem pode ser definida uma fatia de tempo (Time Slot) para qualquer uma dessas tarefas e

o Scheduler esperaria a hora certa para iniciar a tarefa

Note que as tarefas precisam ser capazes de aceitar pedidos para reagir a eles Esta etapa eacute feita na janela de configuraccedilatildeo para as ta-refas individuais Na janela Main Options haacute um botatildeo On Order que precisa ser definido como Yes caso contraacuterio o pedido natildeo ini-ciaraacute a tarefa

Ateacute aqui iniciamos tudo manu-almente Como precisamos definir um pedido para iniciar a cadeia de tarefas obviamente eacute necessaacuteria uma forma de criar pedidos dinami-camente Uma maneira seria criar um pedido numa hora especiacutefica o que por sua vez aciona a cadeia de tarefas Como se pode esperar isso eacute feito pelo menu New | Hot Folder Element | Order Apoacutes dar um nome ao pedido e selecionar a janela Job Chains selecione a cadeia especiacutefica a ser associada a esse pedido Note que um pe-dido soacute pode ser associado a uma uacutenica cadeia Depois defina um novo horaacuterio (Time Period) e um Single Start agraves 0900 Para ativar imediatamente as alteraccedilotildees eacute preciso armazenaacute-la no diretoacuterio configlive

Ao retornar agrave interface de opera-ccedilatildeo pode-se ver que agora haacute um pedido associado agrave cadeia criada Abaixo do pedido uma entrada next start (proacuteximo iniacutecio) mostra a data e hora em que o pedido iniciaraacute Como jaacute passou das 900 am neste exemplo a data eacute amanhatilde Se for usado outro horaacuterio de iniacutecio como o dia primeiro o proacuteximo iniacutecio se-ria nessa data

ControlePara definir o periacuteodo das tarefas cadeias e pedidos eacute possiacutevel esta-belecer um horaacuterio para o iniacutecio de uma tarefa assim como um in-tervalo entre execuccedilotildees (a cada 12 horas por exemplo) Essa segunda

opccedilatildeo natildeo eacute uacutetil no caso de cadeias em que as tarefas precisem seguir uma determinada ordem Poreacutem eacute possiacutevel definir um pedido que seja iniciado diariamente agraves 700 que por sua vez inicie uma cadeia

Haacute tambeacutem definiccedilotildees de tempo como ldquosegundo domingo de cada mecircsrdquo ldquouacuteltimo dia do mecircsrdquo ou ldquoso-mente 8janeiro e 16fevereirordquo

Horaacuterios e intervalos preacute-estabe-lecidos satildeo uacuteteis mas nem sempre eacute possiacutevel saber a priori quando uma tarefa precisaraacute ser realizada No caso daquelas que dependem da existecircncia ou inexistecircncia de algum arquivo eacute possiacutevel definir watch directories (diretoacuterios a ser observados) com regras que aceitam ateacute expressotildees regulares (figura 4)

Pedido proacuteprioDepois de superar as dificuldades iniciais nota-se que o Open Source Job Scheduler eacute um bom produto Com intimidade ele se torna faacutecil de configurar e administrar

A SOS tambeacutem presta um oacutetimo serviccedilo Identifiquei um bug e enviei um patch para um arquivo jar que foi disponibilizado por eles no ser-vidor em menos de um dia Ateacute em uma rede pequena o Open Source Job Scheduler oferece recursos muito uacuteteis Em instalaccedilotildees maiores ele eacute quase indispensaacutevel

Mais informaccedilotildees

[1] Open Source Job Scheduler httpjobschedulersourceforgenet

[2] Driver JDBC para MySQL httpwwwmysqlcomproductsconnector

[3] Software- und Organisations-Service GmbH httpwwwsos-berlincomscheduler

copy Linux New Media do Brasil Editora Ltda

50 httpwwwlinuxmagazinecombr

Faccedila belos graacuteficos via navegador com a API do Google Chart

Graacuteficos via webA API do Google Chart permite desenhar graacuteficos planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simplespor Martin Streicher

Se uma imagem vale mais que mil palavras um graacutefico deve ser algo semelhante a uma no-

vela Em apenas um piscar de olhos um graacutefico pode transmitir o estado do mercado de accedilotildees a tendecircncia de traacutefego em um website a distribui-ccedilatildeo dos eleitores por regiatildeo aleacutem de informar como a verba eacute distribuiacuteda em um orccedilamento familiar Aleacutem dis-so um graacutefico eacute simplesmente mais compreensiacutevel do que uma enorme tabela cheia de nuacutemeros

Poreacutem eacute estranho vermos que muito poucos sites utilizam graacuteficos em seu benefiacutecio Isso acontece em grande parte porque a criaccedilatildeo de graacuteficos requer um software espe-cializado Por exemplo se o site eacute baseado em PHP eacute preciso instalar o pChart [1] adicionar a biblioteca

graacutefica GD e escrever o coacutedigo para produzir algum tipo de graacutefico Ide-almente qualquer um ndash um editor escritor ou mesmo um usuaacuterio adi-cionando comentaacuterios ndash deve ser capaz de criar e embutir graacuteficos em suas paacuteginas

Na verdade o dinamismo a sim-plicidade e a conveniecircncia estatildeo no cerne da interface de programaccedilatildeo de aplicaccedilatildeo (API) Google Chart [2] e talvez essa seja a descriccedilatildeo mais pre-cisa para um Software como Serviccedilo (SaaS) Simplesmente crie uma URL parametrizada como httpchartapisgooglecomchartparacircmetro1ampparacircmetro2ampparacircmetroN e deixe o Google Chart fazer todo o trabalho pesado O Google Chart permite que vocecirc renderize seis tipos de graacuteficos um Google-o-meter um QR code (espeacutecie de coacutedigo de barras) e mapas Aleacutem disso eacute possiacutevel usar praticamente um gugol de opccedilotildees de personalizaccedilatildeo tais como a barra de cores a cor de fundo a legenda e muito mais

Este artigo ajuda nos primeiros passos no uso do Google Chart Vocecirc aprenderaacute a desenhar graacuteficos e adi-cionar efeitos especiais para melhorar suas criaccedilotildees graacuteficas

Elementos de graacuteficosPara gerar um graacutefico com o Google Chart forneccedila o prefixo httpchartapisgooglecomchart o tipo de graacute-

fico (tal como torta ou de linhas) o tamanho do graacutefico seus dados e quaisquer paracircmetros especiacuteficos como as cores e os roacutetulos dos eixos para adequaacute-lo ao resultado final

Todas as opccedilotildees do graacutefico satildeo associadas a pares de valores do tipo chave=valor Algumas chaves satildeo comuns para todos os graacuteficos en-quanto outras satildeo exclusivas para um determinado tipo Da mesma forma a sintaxe para o valor especificado no par tende a variar de acordo com o tipo de graacutefico

O tamanho do graacutefico eacute medido em pixels e especificado com o paracircmetro chs=LxA em que L eacute a largura e A eacute a altura Por exemplo chs=200x100 gera um graacutefico de 200 pixels de lar-gura por 100 pixels de altura A aacuterea de um mapa natildeo pode exceder 440 pixels de largura por 220 de altura Para todos os outros graacuteficos nem a largura nem a altura podem exceder 1000 pixels e a aacuterea maacutexima eacute de 300000 pixels quadrados

O tipo de graacutefico eacute escolhido com o par cht=tipo em que tipo eacute uma das diversas constantes preacute-de-finidas Por exemplo para desenhar um graacutefico de linhas simples com pontos equidistantes do eixo x es-pecifique cht=lc Para cada tipo de graacutefico pode-se consultar a constan-te apropriada na documentaccedilatildeo do Google Chart

TU

TO

RIA

L

Figura 1 Um graacutefico de linha simples produzido pela API do Google Chart

copy Linux New Media do Brasil Editora Ltda

51

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Os dados de um graacutefico podem ser fornecidos em vaacuterios formatos ndash a partir de uma lista de dados brutos simples ateacute uma coleccedilatildeo de coacutedigos alfanumeacutericos para mapear valores de uma escala preacute-definida

Normalmente o conjunto de da-dos brutos eacute constituiacutedo por uma lista de valores separados por viacutergulas e um conjunto de dados codificados eacute uma sequumlecircncia contiacutenua de caracte-res alfanumeacutericos Por exemplo para fornecer dados como texto simples utilize chd=tvalores em que valo-res eacute uma lista de valores de ponto flutuante positivos entre 0 e 100 de-limitados por viacutergula O caractere _ (traccedilo baixo) pode ser usado como um espaccedilo reservado para a falta de um dado Muacuteltiplos conjuntos de dados satildeo delimitados pelo caractere | (pipe ou barra vertical)

Para demonstrar abra um nave-gador e digite a URL httpchartapisgooglecomchartcht=lcampchs=500x400ampchd=t7392079|1515181101612ampchco=FF000000FF00 na barra de endereccedilos Como se pode adivinhar o paracircmetro chco lista os valores RGB para colorir cada gru-po de dados

A figura 1 mostra o exemplo de um graacutefi-co de linha incluindo seus elementos (eixos tiacutetulos e legendas) A URL utilizada para gerar o graacutefico eacute mostrada no exemplo 1 Cada URL mostrada nesse artigo abrange vaacuterias linhas de forma intencional para melhor legibilidade

De forma resumida chtt fornece o tiacutetulo do graacutefico Os dados satildeo fornecidos como valores brutos expres-sos em texto simples mas como os valores satildeo superiores a 100 chds fornece um valor

miacutenimo e um maacuteximo para norma-lizar os dados para um percentual Aqui como os dois conjuntos de dados estatildeo dentro do mes-mo intervalo bastam um valor miacutenimo e um maacuteximo para ambos No entanto se cada um dos conjuntos de dados for traccedilado a partir de uma uacutenica seacuterie eacute preciso fornecer um valor miacutenimo e maacuteximo para cada conjunto O paracircmetro chxt eacute combi-nado com o chxl e com o chxp para criar e posicionar os roacutetulos dos eixos

Acredite ou natildeo desenhar um graacutefico eacute realmente sim-ples Para inserir um graacutefico em um paacutegina web use uma tag img src e defina seu atri-buto src para a URL do graacute-fico Forneccedila uma descriccedilatildeo para o graacutefico por meio do atributo alt

CartografiaDesenhar um mapa com o serviccedilo Google Chart eacute tatildeo simples quanto desenhar qualquer outro graacutefico pri-

meiramente especifique o mape-amento do graacutefico selecione uma regiatildeo do mundo para desenhar e em seguida associe os dados a cada paiacutes proviacutencia ou estado encontrados no mapa Os dados podem ser discretos ndash digamos representar os estados azuis e ver-melhos nos Estados Unidos ndash ou contiacutenuos Aleacutem disso vocecirc pode associar uma cor com o miacutenimo e o maacuteximo em um intervalo e o Google Chart renderiza os valores intermediaacuterios em uma graduaccedilatildeo de cores (degradecirc)

Por exemplo o exemplo 2 gera um mapa dos Estados Unidos mostrando como os estados votaram na eleiccedilatildeo presidencial de 2004 A figura 2 apre-senta os resultados

No exemplo 2 cht=t seleciona o graacutefico de mapa chtm=usa especifica os Estados Unidos como regiatildeo e chs=440x220 desenha o maior mapa

Figura 2 Divisatildeo dos estados em vermelho (republicanos) e azuis (democratas) na eleiccedilatildeo presidencial dos Estados Unidos em 2004

Exemplo 1 Roubo de automoacuteveis na Carolina do Norte

01 httpchartapisgooglecomchart02 cht=lcamp03 chtt=Nuacutemero de automoacuteveis roubadosna NC por mecircs e anoamp04 chs=400x300amp05 chd=t223116582156231823432450258326122522268123262371|06 238119392309224225902642284028372555255824372319amp07 chds=03000amp08 chco=FF00000000FFamp09 chdl=2005|2006amp10 chxt=xyamp11 chxl=0|Jan|June|Dec|1|0|1500|30 00|amp12 chxp=0050100|1050100

Exemplo 2 Estados vermelhos e azuis

01 httpchartapisgooglecomchart02 cht=tamp03 chtm=usaamp04 chs=440x220amp05 chco=FF00000000FF0000FFamp06 chld=CACTDEDCHIILMEMDMAMIMNNHNJNYORPARIVTWAWIamp07 chd=sAAAAAAAAAAAAAAAAAAAA

copy Linux New Media do Brasil Editora Ltda

52 httpwwwlinuxmagazinecombr

TUTORIAL | Google Chart

possiacutevel No graacutefico de mapa chco=FF00000000FF0000FF define as cores padratildeo de cada estado (vermelho)

e a cor de iniacutecio e de final (ambas em azul) do gradiente

O paracircmetro chld conteacutem o coacute-digo de duas letras de cada um dos estados conquistados pelo candidato presidencial democrata Finalmente o paracircmetro chd=s seleciona o es-quema de codificaccedilatildeo simplificada de dados em que todos os valores devem ser representados por um dos caracteres na sequumlecircncia de A-Z a-z e 0-9 sendo A o miacutenimo e 9 o maacuteximo Em outras palavras o es-quema de codificaccedilatildeo simplificada fornece uma granularidade de 62 valores distintos Tendo em conta que todos os estados satildeo coloridos

em vermelho por padratildeo qualquer estado com outro valor ndash aqui A ndash eacute colorido de azul

Quadro 1 Dicas e truques do Google Chart

Essas dicas e truques tornaratildeo seus graacuteficos mais legiacuteveis

Certifique-se de que o tamanho de seu graacutefico eacute su-ficiente para exibir o tiacutetulo os roacutetulos e a legenda da imagem Infelizmente a determinaccedilatildeo da largura miacuteni-ma natildeo tem uma forma algoriacutetmica ndash pode ser preciso utilizar um pouco de tentativa e erro

Para alterar a cor e o tamanho do texto no tiacutetulo do graacute-fico use chts=colorfontsize Aleacutem disso eacute possiacutevel alterar a cor e o tamanho da fonte de um eixo com o roacutetulo chxs Infelizmente natildeo eacute possiacutevel especificar o tipo de fonte

Os quatro eixos satildeo x t y e r ou seja a forma resumi-da para delimitar o eixo inferior x o eixo superior x o eixo agrave esquerda y e o eixo agrave direita y respectivamente Se vocecirc quiser vaacuterios roacutetulos para qualquer eixo repita o nome do eixo no paracircmetro chxt e especifique seus detalhes no chxl

Leia a documentaccedilatildeo da API do Google Chart e dedi-que atenccedilatildeo especial agrave sintaxe de cada opccedilatildeo Mes-mo um erro de um caractere pode tornar um graacutefico ilegiacutevel Por exemplo o paracircmetro chd utiliza a barra vertical para separar cada conjunto de dados dife-rentemente de chds Infelizmente essa natildeo eacute a uacutenica inconsistecircncia na API do Google Chart (o clipping do graacutefico de barras eacute outro) portanto mantenha o manu-al por perto

Antigamente um graacutefico de barras com valores negati-vos e positivos requeria truques para renderizar corre-tamente Agora eacute possiacutevel usar o paracircmetro chp e uma porcentagem para colocar a linha zero a partir de uma distacircncia proporcional da origem sobre o eixo y Os va-lores devem entatildeo ser interpolados para serem rende-rizados adequadamente Por exemplo suponha que o fluxo de caixa da empresa seja (em milhotildees) de -20 -5 1 3 10 Para colocar a linha zero em 05 ou na

metade do caminho para cima do eixo y valores meno-res que 50 seratildeo desenhados ldquoabaixo da linhardquo e todos os valores acima de 100 seratildeo desenhados ldquoacima da linhardquo Para normalizar os dados adicione 50 a todos os valores e plote os novos valores

httpchartapisgooglecomchartcht=bvgampchs=400x400ampchbh=405ampchd=t3045515360ampchp=5ampchm=r00000004955

A figura 5 mostra o graacutefico final

O paracircmetro bvg eacute a constante para o graacutefico do tipo barra vertical e o chd expressa o conjunto de dados normalizado O paracircmetro chp coloca a linha zero a meio caminho acima do eixo y enquanto que o chm eacute uma opccedilatildeo para desenhar uma faixa de marca-ccedilatildeo no graacutefico Os seus paracircmetros satildeo (na ordem) r para um marcador horizontal 000000 para desenhar o marcador em preto 0 que eacute ignorado e 495 e 5 para expressar as margens inferior e superior da faixa de marcaccedilatildeo em termos de proporccedilatildeo sobre o eixo-y Isso porque a linha zero estaacute colocada a 05495 e 5 desenha uma linha bem fina em zero

O paracircmetro chbh especifica a largura de uma barra e o espaccedilo entre cada uma barra Diferentemente de outros tipos de graacuteficos se chbh for grande demais e chs for muito pequeno parte do graacutefico seraacute cor-tada Certifique-se de ajustar o tamanho de um ou todos esses paracircmetros quando estiver desenhando um graacutefico de barras

Exemplo 3 Informaccedilotildees num coacutedigo QR

01 httpchartapisgooglecomchart02 cht=qramp03 chs=200x200amp04 choe=UTF-8amp05 chld=Qamp06 chl=httpwwwlinuxnewmediacombrlmFigura 3 O endereccedilo do site da

revista capturado num coacutedigo QR

copy Linux New Media do Brasil Editora Ltda

53

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] pChart httppchartsourceforgenet

[2] Documentaccedilatildeo do Google Chart httpcodegooglecomapischart

[3] BeeTagg httpwwwbeetaggcom

[4] Zebra biblioteca livre do Google para leitura de coacutedigos de barra httpcodegooglecompzxing

[5] Guia para codificaccedilatildeo de dados em coacutedigos QR httpcodegooglecompzxingwikiBarcodeContents

[6] Gerador simples para o Google Chart httpalmaercomchartmaker

O Google Chart tambeacutem oferece graacuteficos para Aacutefrica Aacutesia Europa Oriente Meacutedio Ameacuterica do Sul e todo o globo

Coacutedigo de barrasNo Japatildeo moderno jovens compar-tilham informaccedilotildees de uma forma digital verdadeiramente inovado-ra eles trocam coacutedigos de barras E agora vocecirc tambeacutem pode O Google Chart fornece uma API para codificar ateacute 4296 caracteres em uma imagem bidimensional e monocromaacutetica chamado QR code ou coacutedigo QR

Para comeccedilar vamos codificar o email da Linux Magazine em um QR code O exemplo 3 mos-tra como a imagem na figura 3 foi criada Ao usar o graacutefico QR choe especifica a codificaccedilatildeo do texto O paracircmetro chld dita o grau de correccedilotildees de erros aplicado agrave ima-gem O valor Q inclui informaccedilotildees duplicadas o suficiente a ponto de 25 da imagem poder ser destruiacuteda sem afetar a legibilidade O paracirc-metro chl eacute o texto a ser codificado geralmente fornecido como uma URL que eacute entatildeo interpretada por um aplicativo

Se vocecirc tem um telefone celu-lar pode baixar gratuitamente o BeeTagg [3] tirar uma fotografia da figura 3 e decodificar os resul-tados para entrar no site da revista

Como uma alternativa o Google oferece gratuitamente uma biblio-teca gratuita para leitura de coacutedigos QR chamada Zebra Crossing [4][5] e um leitor de coacutedigos de barras online experimental que interpreta as imagens recebidas

Um coacutedigo QR pode capturar ateacute 4296 caracteres A figura 4 por exemplo codifica um vCard (cartatildeo de visitas) inteiro

Como vai o coraccedilatildeoA API do Google Chart eacute simples de usar e faacutecil de integrar em apli-caccedilotildees web Conforme mostrado eacute possiacutevel usar a API imediatamente ndash basta inse-rir um link estaacutetico em sua paacutegina web e permitir que o navegador efetue a requisiccedilatildeo e a renderiza-ccedilatildeo de um graacutefico a cada vez que a paacutegina eacute desenhada

Para acelerar a renderizaccedilatildeo da paacutegina vocecirc pode solicitar e efetuar o cache da imagem do graacutefico em seu proacuteprio servidor recriando o graacutefico apenas quando os dados contidos nele forem alterados Aleacutem de proporcionar melhor eficiecircn-cia essa teacutecnica protege melhor os dados brutos Um visitante do site natildeo poderaacute ldquover os fontesrdquo e copiar a URL

Naturalmente tambeacutem eacute pos-siacutevel misturar a API do Google Chart com teacutecnicas AJAX para mo-dificar os graacuteficos dinamicamente em resposta agrave requisiccedilatildeo do usuaacute-rio O Chart Maker [6] eacute uma de-monstraccedilatildeo baacutesica mas efetiva da dinacircmica de graacuteficos outros tecircm usado a API do Google Chart para implementar uma calculadora de empreacutestimos executiva

Naturalmente o Google Chart costuma ser mais lento que as ferra-mentas para geraccedilatildeo de graacuteficos no desktop como o Apple Numbers ou mesmo o Microsoft Excel Estas uti-lizam mecanismos de renderizaccedilatildeo nativos e natildeo requerem consultas

agrave Internet para transmitir dados e baixar um grande graacutefico na forma de uma imagem No entanto o Google Chart eacute um aplicativo gra-tuito que estaacute disponiacutevel em qual-quer lugar Se vocecirc estaacute realmente interessado em utilizar o Google Chart em ambiente de produccedilatildeo o uso de cache pode melhorar o tempo de resposta

Figura 4 Um vCard inteiro represen-tado como coacutedigo QR

Figura 5 Renderizaccedilatildeo de valores positivos e negativos num graacutefico de barras

copy Linux New Media do Brasil Editora Ltda

54 httpwwwlinuxmagazinecombr

Alta disponibilidade em PostgreSQL

Banco cheio mas disponiacutevel

O PostgreSQL natildeo possui embutido um mecanismo para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia por Fernando Ike

O tema alta disponibilida-de abordado na ediccedilatildeo 43 da Linux Magazine [1] eacute

abrangente e envolve vaacuterias aacutereas desenvolvedores administradores de sistemas rede e banco de dados

Geralmente alta disponibilidade em bancos de dados eacute um objetivo mais complexo e criacutetico do que se costuma acreditar Natildeo eacute simples-mente pensar que uma soluccedilatildeo como Oracle RAC garantiraacute disponibili-dade de 100 do banco de dados Para aumentar a disponibilidade eacute necessaacuterio analisar uma seacuterie de variaacuteveis entre elas Se o datacenter tem grupo ge-

rador de energia eleacutetrica Se haacute conexatildeo agrave Internet por

mais de dois links Servidores com fontes redun-

dantes discos etc Circuitos eleacutetricos e rede redun-

dantes Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias de banco de dados Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias dela mesma Se a modelagem permite ins-

tacircncias de banco de dados fi si-camente distantes

Quanto se pode investir Tais variaacuteveis dependem do pro-

jeto em questatildeo ou seja variam de

TU

TO

RIA

L

projeto para projeto Em geral a grande difi culdade para banco de dados eacute o sincronismo das bases de dados entre vaacuterios servidores jaacute que haacute a necessidade de garantir a con-sistecircncia entre eles Aplicaccedilotildees que usam banco de dados para operaccedilotildees somente leitura (como aplicaccedilotildees web por exemplo) tecircm facilidade de trabalhar com vaacuterios servidores de banco de dados usando balan-ceamento de carga Entretanto o mesmo natildeo acontece quando uma aplicaccedilatildeo tem operaccedilotildees de leitu-ra e escrita pois natildeo existe uma soluccedilatildeo defi nitiva uma vez que depende de como a aplicaccedilatildeo foi projetada Uma alternativa seria modelar a aplicaccedilatildeo para acessar um servidor de banco de dados para operaccedilotildees de leituraescrita e os outros servidores para operaccedilotildees de leitura

Para PostgreSQL essa tarefa eacute um pouco mais difiacutecil ndash mas natildeo impossiacutevel ndash pois ofi cialmente exis-tem poucas formas de aumentar sua disponibilidade sem que se use ex-tensotildees ou aplicaccedilotildees de terceiros Existe uma discussatildeo [2] dentro do PostgreSQL Global Development Group para incorporar recursos de replicaccedilatildeo MasterSlave na versatildeo 84 (atualmente em desenvolvimento) e posteriores

PostgreSQL hoje Vejamos o que eacute possiacutevel fazer com o PostgreSQL sem ferramentas de terceiros

Warm Standby usando PITR ( Point-In-Time Recovery ) um servidor pri-maacuterio envia para um ou mais servido-res secundaacuterios os arquivos do WAL ( Write Ahead Log ) que contecircm as modifi caccedilotildees nas bases de dados do servidor primaacuterio Tais arquivos quan-do enviados seratildeo processados pelos servidores secundaacuterios Esse meacutetodo para o PostgreSQL natildeo permite por enquanto que os servidores secundaacute-rios sejam usados para leitura Esses servidores natildeo estaratildeo disponiacuteveis para nenhuma operaccedilatildeo ateacute que haja uma falha no servidor primaacuterio

Em caso de falha no servidor pri-maacuterio falhando a transmissatildeo dos uacuteltimos arquivos do WAL para os servidores secundaacuterios estes perde-ratildeo as uacuteltimas alteraccedilotildees realizadas no servidor primaacuterio Essa perda eacute pequena se comparada agraves estrateacutegias de recuperaccedilatildeo mais comuns para estes tipos de incidentes as quais satildeo becape completo da uacuteltima noite ou recuperaccedilatildeo utilizando os arquivos do WAL A comparaccedilatildeo eacute de alguns segundos usando Warm Standby e de alguns minutos ou horas com recuperaccedilatildeo de becape ou por arquivos do WAL

copy Linux New Media do Brasil Editora Ltda

55

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Compartilhamento de disco usando a mesma aacuterea num equipa-mento remoto (como storage) os servidores poderatildeo ter a aacuterea mon-tada nele mas somente o servidor primaacuterio ou ativo poderaacute ter o serviccedilo do PostgreSQL em execuccedilatildeo O ser-vidor secundaacuterio soacute deve entrar em accedilatildeo em caso de falha do primaacuterio caso contraacuterio haacute o risco de corrom-pimento das bases de dados

Neste meacutetodo numa eventual fa-lha do servidor ativo eacute praticamen-te nula a perda de dados jaacute que as bases de dados estatildeo em um stora-ge Geralmente usa-se NFS como forma de acesso ao storage Uma recomendaccedilatildeo importante ao usar NFS eacute montaacute-lo usando a opccedilatildeo sync (siacutencrono) desabilitar o cache e jamais usar a opccedilatildeo async (assiacuten-crono) jaacute que ela poderaacute corromper as bases de dados do PostgreSQL O recomendaacutevel para esse meacutetodo eacute o uso de SAN (iSCSI AoE etc) em vez de NAS (SMB NFS etc) uma vez que a arquitetura SAN eacute projetada para situaccedilotildees de grande volumes de dados e menor tempo de recuperaccedilatildeo em caso de incidente comparado com NAS

Replicaccedilatildeo por dispositivo de blo-co uma variaccedilatildeo do compartilhamento de disco Quando usado esse recurso o dispositivo de bloco eacute a unidade de replicaccedilatildeo Assim como nos outros meacute-todos natildeo pode haver dois servidores PostgreSQL em execuccedilatildeo ao mesmo tempo O DRBD eacute um software muito popular para essa fi nalidade

Terceiros Existe a possibilidade de se usar ex-tensotildees ou aplicaccedilotildees de terceiros para aumentar a disponibilidade do PostgreSQL em tarefas como repli-caccedilatildeo mestre-escravo middleware de replicaccedilatildeo orientado a sentenccedila e replicaccedilatildeo multimaster assiacutencrona ou siacutencrona

Replicaccedilatildeo mestre-escravo esse meacutetodo envia todas as consultas de

modifi caccedilotildees das bases de dados para o servidor mestre Este envia as mo-difi caccedilotildees que nele ocorreram para o servidor escravo Essas modifi caccedilotildees ocorrem por lote e de forma assiacutencro-na permitindo que se tenha muacuteltiplos servidores escravos O servidor escravo pode responder somente consultas de leitura as quais satildeo ideais para consultas do tipo data warehouse O Slony-1 eacute um exemplo desse tipo de replicaccedilatildeo com granularidade de ta-bela e suporte a muacuteltiplos servidores escravos Em caso de falha no servidor mestre poderaacute haver perda de dados que ainda natildeo foram replicados para o servidor secundaacuterio

Middleware de replicaccedilatildeo orien-tado a sentenccedila programa que intercepta cada consulta SQL e a envia para um ou todos os servido-res Cada servidor opera indepen-dentemente Consultas de leitura e escrita satildeo enviadas para todos os servidores enquanto as consultas somente-leitura podem ser enviadas para qualquer um dos servidores permitindo que o trabalho de leitura seja distribuiacutedo

Se as consultas forem simplesmen-te transmitidas sem modifi caccedilotildees alguns valores especiacutefi cos de cada servidor (como a funccedilatildeo random() e os valores de TIMESTAMP ) teratildeo va-lores diferentes nos servidores Isso ocorre porque cada servidor opera de forma independente e porque as consultas SQL satildeo realizadas em broadcast (e natildeo atuando na modifi caccedilatildeo das colunas) Se isso for inaceitaacutevel o middleware ou aplicaccedilatildeo deve consultar tais valo-res a partir de um servidor e depois usaacute-los para escrever as consultas Exemplos desse tipo de replicaccedilatildeo satildeo o pgpool-II e Sequoia

Replicaccedilatildeo Multimaster Assiacutencro-na para os servidores que natildeo estatildeo regularmente ligados como laptops e servidores remotos manter os da-dos consistentes entre os servidores eacute um desafi o Usando replicaccedilatildeo assiacutencrona multimaster cada servi-dor trabalha com independecircncia e periodicamente se comunica com os outros servidores a fi m de identifi car transaccedilotildees confl itantes Os confl itos podem ser resolvidos pelos usuaacuterios

Figura 1 Soluccedilatildeo de alta disponibilidade do banco de dados proposta

copy Linux New Media do Brasil Editora Ltda

56 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

ou por meio de regras Bucardo eacute um exemplo desse tipo de replicaccedilatildeo

Replicaccedilatildeo multimaster siacutencro-na em replicaccedilatildeo multimaster siacuten-crona cada servidor pode aceitar conexotildees com transaccedilotildees de escrita (como INSERT UPDATE e DELETE) Tais transaccedilotildees satildeo transmitidas a partir do servidor de origem para todos os outros servidores antes de efetivar a transaccedilatildeo Em situaccedilotildees com mui-tas transaccedilotildees isso poderaacute causar bloqueio dos registros degradando consideravelmente a performance Neste tipo de replicaccedilatildeo as transa-ccedilotildees com escrita geralmente satildeo mais lentas do que as feitas em um servi-dor uacutenico Aleacutem de dividir a carga de transaccedilotildees para leitura e escrita como na replicaccedilatildeo mestre-escravo a replicaccedilatildeo multimaster siacutencrona eacute muito usada para balanceamento de carga em alguns casos podendo ha-ver problemas de consistecircncia ao se usar funccedilotildees como random()

Soluccedilatildeo simplesUma soluccedilatildeo muito comum e ba-rata para alta disponibilidade em PostgreSQL eacute o uso de um dispositivo de storage comunicando-se com os

servidores PostgreSQL via NFS (fi-gura 1) A soluccedilatildeo consiste em dois servidores PostgreSQL e Heartbeat Um deles seraacute o primaacuterio e o outro o secundaacuterio O secundaacuterio aguarda-raacute algum problema com o servidor primaacuterio e caso ocorra iniciaraacute o serviccedilo do PostgreSQL assumindo o endereccedilo de rede (VIP) usado para comunicaccedilatildeo com a aplicaccedilatildeo

Essa soluccedilatildeo natildeo foi planejada para que o servidor primaacuterio assuma o controle novamente do ambiente caso retorne a operar pois eacute reco-mendaacutevel verificar a razatildeo do inci-dente corrigir e retornar a operaccedilatildeo ao ambiente num periacuteodo de pouco uso do banco de dados

Haacute alguns pontos importantes nessa soluccedilatildeo Sempre que ocorrer uma atualizaccedilatildeo de seguranccedila no PostgreSQL eacute recomendaacutevel apli-caacute-la a todos os servidores pois natildeo se deve executar uma versatildeo dife-rente do binaacuterio em cada maacutequina Aleacutem disso nesse tipo de soluccedilatildeo de alta disponibilidade natildeo eacute pos-siacutevel haver dois servidores com o serviccedilo PostgreSQL em execuccedilatildeo A disponibilidade eacute garantida pelo armazenamento dos dados no stora-

ge sem necessidade de mecanismos de replicaccedilatildeo de dados externos Por uacuteltimo poliacuteticas de backup devem continuar sendo usadas sem altera-ccedilotildees Caso aconteccedila algum incidente que indisponibilize os dados haveraacute formas de recuperaacute-los

ImplementaccedilatildeoO procedimento de instalaccedilatildeo seraacute dividido por servidores a primeira parte consiste na instalaccedilatildeo do servi-dor primaacuterio e a segunda parte trata do servidor secundaacuterio considerando que um ponto de montagem foi dis-ponibilizado previamente em ambos os servidores em varlibpostgre-sqlstorage

Depois de instalar o pacote do PostgreSQL 83 (versatildeo estaacutevel mais recente) do Debian 50 (Lenny) o di-retoacuterio padratildeo da instalaccedilatildeo do cluster de base de dados[3] eacute o local em que estaacute uma instacircncia do PostgreSQL com seu cataacutelogo de sistema Esse diretoacuterio seraacute movido para o storage usando uma particcedilatildeo NFS montada no servidor o que exige uma parada no serviccedilo do PostgreSQL

Parado o serviccedilo do PostgreSQL mova o diretoacuterio com o cluster de base de dados armazenado local-mente para o diretoacuterio NFS remo-to Depois disso eacute necessaacuterio ainda criar um link simboacutelico para que o serviccedilo inicie corretamente

mv varlibpostgresql83 varlibpostgresqlstorage ln -s varlibpostgresqlstorage83 varlibpostgresql83

Feito isso reinicie o PostgreSQL e crie um arquivo com ajustes de per-formance do PostgreSQL chamado tuningsh em usrlocalsbin (exemplo 1) Esse arquivo conteraacute ajustes de paracirc-metros do kernel Linux para o Postgre-SQL aproveitar melhor os recursos de hardware Seria possiacutevel usar o arquivo etcsysctlconf mas ele natildeo oferece

Exemplo 1 Arquivo tuningsh

01 binbash0203 echo ldquo2rdquo gt procsysvmovercommit_memory0405 kernelshmmax = 447177599906 25 do total da RAM07 echo ldquo17179869184rdquo gt procsyskernelshmmax08 kernelshmmax = 429496729609 echo ldquo17179869184rdquo gt procsyskernelshmall10 echo ldquo300 32500 150 160rdquo gt procsyskernelsem11 echo ldquo65536rdquo gt procsysfsfile-max12 echo ldquodeadlinerdquo gt sysblocksdaqueuescheduler13 echo ldquo16777216rdquo gt procsysnetcorermem_default14 echo ldquo16777216rdquo gt procsysnetcorewmem_default15 echo ldquo16777216rdquo gt procsysnetcorermem_max16 echo ldquo16777216rdquo gt procsysnetcorewmem_max

copy Linux New Media do Brasil Editora Ltda

57

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

a possibilidade de alterar tambeacutem o sistema de arquivos sysfs

Entre os paracircmetros a serem mo-dificados shmmax geralmente deveraacute ser de 25 a 50 do total da memoacute-ria RAM dependendo do tipo de aplicaccedilatildeo e modelagem de dados Nesse caso usamos usamos 50 (16 GB) (linha 7)

Torne o script executaacutevel e crie um link simboacutelico para que ele seja carregado na inicializaccedilatildeo

chmod 0755 usrlocalsbintuningsh ln -s usrlocasbintuningsh etcrcSdS99tuningsh

Em seguida execute-o para efetivar as alteraccedilotildees dos paracircmetros do sis-tema operacional

Ajuste do PostgreSQLCom o sistema operacional pronto eacute hora de ajustar o banco de dados Para isso comece editando o arqui-vo postgresqlconf de acordo com as determinaccedilotildees listen_adresses um asterisco

permite que o PostgreSQL escu-te conexotildees vindas de qualquer rede Ainda eacute necessaacuterio alterar o arquivo pg_hbaconf para que essa alteraccedilatildeo tenha efeito

max_connections nuacutemero total de conexatildeo simultacircneas aceitas pelo PostgreSQL

shared_buffers 20 a 25 do total da memoacuteria RAM

wal_write_delay 500 milisse-gundos

commit_delay 100 checkpoint_segments 128 checkpoint_timeout 30 min checkpoint_completion_

target 07

Exemplo 2 Arquivo postgresqlconf

data_directory = lsquovarlibpostgresql83mainrsquo usar dados em outro diretoacuteriohba_file = lsquoetcpostgresql83mainpg_hbaconfrsquo arquivo de autenticaccedilatildeo por maacutequina (host-based authentication)ident_file = lsquoetcpostgresql83mainpg_identconfrsquo arquivo de configuraccedilatildeo de identexternal_pid_file = lsquovarrunpostgresql83-mainpidrsquo gravar um arquivo extra com o PIDlisten_addresses = lsquorsquo IP(s) para escutarport = 5432 porta (necessaacuterio reiniciar)max_connections = 1000 (necessaacuterio reiniciar)unix_socket_directory = lsquovarrunpostgresqlrsquo (necessaacuterio reiniciar)ssl = false (necessaacuterio reiniciar)shared_buffers = 12GB miacutenimo=128 kB maacuteximo=max_connections16kBmax_fsm_pages = 204800 miacutenimo=max_fsm_relations16 6 bytes cadafsync = on (des)ativa sincronizaccedilatildeo forccediladawal_sync_method = open_sync o padratildeo eacute a primeira opccedilatildeofull_page_writes = on recuperar-se de gravaccedilotildees de paacutegina parciaiswal_writer_delay = 500ms 1-10000 milissegundoscommit_delay = 100 0-100000 em microssegundoscheckpoint_segments = 128 em segmentos de logfile miacutenimo=1 16MB cadacheckpoint_timeout = 30min 30s-1hcheckpoint_completion_target = 07 duraccedilatildeo do alvo do checkpoint 00 - 10effective_cache_size = 48GBdatestyle = lsquoiso dmyrsquolc_messages = lsquopt_BRUTF-8rsquo locale para mensagens de erro do sistemalc_monetary = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo monetaacuterialc_numeric = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo numeacutericalc_time = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo de tempodefault_text_search_config = lsquopg_catalogportuguesersquo

Exemplo 3 Arquivo pg_hbaconf

local all postgres md5local all all md5host all all 12700132 md5host all all 1128 md5host intportal portal 192168103032 md5

copy Linux New Media do Brasil Editora Ltda

58 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

effective_cache_size 75 da memoacuteria RAM

Poreacutem tenha em mente que conforme a base de dados cresce esses e outros paracircmetros do ar-quivo de configuraccedilatildeo precisaratildeo ser alterados

O exemplo 2 mostra o conteuacutedo do arquivo postgresqlconf apoacutes sua ediccedilatildeo

No arquivo pg_hbaconf altere as poliacuteticas de acesso conforme a poliacutetica da instituiccedilatildeo ativando ou desativando a criptografia definindo quais redes podem acessar o banco etc No exemplo 3 o arquivo permite que o usuaacuterio portal acesse a base de dados intportal com o endereccedilo de rede 192168103032 usando cripto-grafia MD5

Para efetivar as al-teraccedilotildees reinicie o PostgreSQL

HeartbeatO hearbeat eacute tido por muitos como si-nocircnimo de alta dis-ponibilidade mas eacute apenas um meio para esse fim e a soluccedilatildeo para alta disponibi-lidade de bancos de dados PostgreSQL proposta neste artigo o utiliza

Apoacutes instalar o pa-cote do heartbeat na distribuiccedilatildeo usada no servidor adicione ao arquivo etchosts os nomes e IPs dos ser-vidores primaacuterio e se-cundaacuterio No exem-plo deste artigo esses valores satildeo

1921681010 pgprimario1921681011 pgsecundario

O arquivo de con-figuraccedilatildeo do heart-beat pode se localizar em etchad ou em etcheartbeat O exemplo 4 mostra o conteuacutedo do arquivo hacf que deve resi-dir no diretoacuterio usa-do pela distribuiccedilatildeo

em questatildeo cujas opccedilotildees tecircm os seguintes efeitos logfacility executar o heart-

beat como serviccedilo logfile local onde seraacute gravado

o registro de atividades do heart-beat

keepalive intervalo de tempo de comunicaccedilatildeo entre os noacutes

deadtime intervalo de tempo para que heartbeat reconheccedila um noacute como morto

bcast forma de comunicaccedilatildeo en-tre os servidores hearbeat neste caso com uma placa exclusiva para comunicaccedilatildeo (eth1)

ping checa se o IP virtual estaacute no ar

auto_failback caso o servi-dor primaacuterio saia do ar quan-do voltar ele natildeo tentaraacute assu-mir como servidor principal no cluster

respawn hacluster usrlibheart-beatipfail serviccedilo do heartbeat para trocar o IP Virtual em caso de falha no noacute principal

Ainda no diretoacuterio de configu-raccedilatildeo do heartbeat crie o arquivo haresources Eacute nesse arquivo que o heartbeat procuraraacute os serviccedilos que precisam ser executados no cluster Tais serviccedilos satildeo scripts que podem ou natildeo ter paracircmetros e estatildeo loca-lizados em etchadresourced Acrescente ao arquivo haresources o seguinte conteuacutedo

pgprimario IPaddr192168105pgprimario PostgreSQL

O paracircmetro IPaddr adiciona o en-dereccedilo de rede virtual (VIP) ao clus-ter e PostgreSQL controla o Postgre-SQL no heartbeat Esse script natildeo eacute distribuiacutedo oficialmente e pode ser personalizado conforme a necessida-de do ambiente

Crie tambeacutem o arquivo authkeys para abrigar a senha (criptografada com SHA1) necessaacuteria agrave comunica-

Exemplo 5 Script PostgreSQL do heartbeat

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 case $1 in07 start)08 etcinitdpostgresql-83 start09 sleep 210 check_pgsqlsh amp11 exit 012 13 14 stop)15 etcinitdpostgresql-83 stop16 kill $(ps a|grep check_pgsql|awk lsquo print $1 rsquo|head -n 1)17 exit 018 19 )20 21 esac

Exemplo 4 Arquivo hacf

logfacility daemonlogfile varloghalognode pgprimario pgsecundariokeepalive 2deadtime 10bcast eth1ping 192168105auto_failback offrespawn hacluster usrlibheartbeatipfail

copy Linux New Media do Brasil Editora Ltda

59

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

ccedilatildeo entre os noacutes do heartbeat Para criar a senha use algo como

echo ldquosuasenhardquo | sha1sum2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53 -

Adicione esse hash ao arquivo authkeys da seguinte forma

auth 11 sha1 2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53

Em seguida altere as permis-sotildees do arquivo para 600 para que somente o usuaacuterio root possa ler e escrever nele

No diretoacuterio etchadresourced ficam os scripts de interaccedilatildeo dos ser-viccedilos do heartbeat Crie nele o script PostgreSQL referenciado no arquivo haresources que criamos antes com o conteuacutedo mostrado no exemplo 5 Esse arquivo tambeacutem precisaraacute ter suas permissotildees alteradas mas dessa vez para permitir que ele seja executado Portanto recomenda-se usar 755 como permissotildees

Crie tambeacutem um script (usrlo-calsbincheck_pgsqlsh) para verificar se o PostgreSQL continua no ar de acordo com o exemplo 6 Esses satildeo os significados das variaacuteveis HOST endereccedilo de rede do ser-

vidor USER usuaacuterio do PostgreSQL DB banco de dados a ser usado TEST tipo de consulta que serviraacute

como teste REPEAT nuacutemero de repeticcedilotildees do

teste ateacute considerar o servidor como inativo

OTHER endereccedilo de rede do ser-vidor secundaacuterio

Apoacutes tornar esse script executaacutevel eacute necessaacuterio novamente reiniciar o PostgreSQL e o proacuteprio heartbeat Com isso fica concluiacuteda a confi-guraccedilatildeo do servidor PostgreSQL primaacuterio

Servidor secundaacuterioPara o servidor secundaacuterio seratildeo repe-tidos os mesmos passos da instalaccedilatildeo e configuraccedilatildeo do servidor primaacuterio

poreacutem com certas diferenccedilasDepois de instalar o pacote do

PostgreSQL 83 pare o serviccedilo deste e apague o diretoacuterio varlibpostgre-

Exemplo 6 Script check_pgsqlsh no servidor primaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101008 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101114 15 check()16 17 while true18 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull19 if [ $ -eq 0 ]20 then21 break22 do23 sleep 224 25 if [ $COUNTER -eq $REPEAT ]26 then27 etcinitdpostgresql-83 stop28 etcinitdheartbeat stop29 else30 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull31 if [ $ -eq 0 ]32 then33 COUNTER=rdquo1rdquo34 else35 let COUNTER=$COUNTER+136 fi37 fi38 39 done40 fi41 42 43 check

copy Linux New Media do Brasil Editora Ltda

60 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

Exemplo 7 Script check_pgsqlsh no servidor secundaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101108 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101014 15 16 check()17 18 while true19 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull20 if [ $ -eq 0 ]21 then22 break23 do24 sleep 225 26 if [ $COUNTER -eq $REPEAT ]27 then28 etcinitdpostgresql-83 stop29 etcinitdheartbeat stop30 else31 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull32 if [ $ -eq 0 ]33 then34 COUNTER=rdquo1rdquo35 else36 let COUNTER=$COUNTER+137 fi38 fi39 40 done41 fi42 43 44 check

sql83 pois ele usaraacute quando ativo o mesmo cluster de base de dados do servidor primaacuterio que estaacute arma-

zenado no storage Esse passo eacute o primeiro em que os procedimentos dos dois servidores diferem

Com o diretoacuterio apagado eacute ne-cessaacuterio criar um link simboacutelico para que o serviccedilo inicie correta-

mente quando for solicitado pelo heartbeat

ln -s varlibpostgresqlstorage83 varlibpostgresql83

Assim como no servidor primaacuterio crie um arquivo tuningsh com ajustes de per-formance para o PostgreSQL em usrlocalsbin Como os servidores tecircm hardwares semelhantes usaremos os mesmos ajustes de perfor-mance (exemplo 1) Apoacutes salvar o script crie um link simboacutelico para que ele seja carregado ao iniciar os servi-ccedilos do servidor

ln -s usrlocalsbintuningsh etcrcSdS99tuningsh

Execute o script receacutem-criado para efetivar as mo-dificaccedilotildees dos paracircmetros do sistema operacional

Diferentemente do servi-dor primaacuterio natildeo seratildeo neces-saacuterias alteraccedilotildees aos arquivos postgresqlconf e pg_hbaconf pois os arquivos usados seratildeo os mesmos

Assim como no servidor primaacuterio instale o heartbeat e acrescente as seguintes linhas ao arquivo etchosts

1921681011 pgprimario1921681010 pgsecundario

Note que os IPs satildeo inver-tidos com relaccedilatildeo ao con-teuacutedo do arquivo no servidor primaacuterio

Em seguida crie o arquivo de configuraccedilatildeo etchad

copy Linux New Media do Brasil Editora Ltda

61

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] Linux Magazine 43 httplnmcombrissuelm_43_alta_disponibilidade

[2] Discussatildeo no PGDG sobre replicaccedilatildeo httparchivespostgresqlorgpgsql-hackers2008-05msg00913php

[3] Criaccedilatildeo de clusters PostgreSQL httpwwwpostgresqlorgdocs83interactivecreating-clusterhtml

hacf de acordo com o exemplo 4 e etchadharesources com conteuacutedo igual ao do servidor primaacuterio

pgprimario IPaddr192168105pgprimario PostgreSQL

Todos os procedimentos com o arquivo etchadauthkeys tambeacutem devem ser repetidos assim como os do script etchadresourcedPostgreSQL (exemplo 5) O script diferente entre os servidores primaacute-rio e secundaacuterio eacute o check_pgsqlsh em usrlocalsbin (exemplo 7) pois os valores das variaacuteveis HOST e OTHER devem ter seus valores troca-dos entre si

Ao final no entanto o mesmo procedimento do servidor primaacuterio eacute necessaacuterio permitir a execuccedilatildeo dos scripts criados e reiniciar o Postgre-SQL e o heartbeat

ConsideraccedilotildeesAs atualizaccedilotildees de seguranccedila deveratildeo ser realizadas em ambos os servido-res com diferentes procedimentos para cada No servidor que estiver ativo no cluster deve-se atualizar conforme a liberaccedilatildeo de novas ver-sotildees do pacote do PostgreSQL e os procedimentos de atualizaccedilatildeo da distribuiccedilatildeo em uso Eacute recomendaacute-vel para ambos os servidores fazer a atualizaccedilatildeo em um horaacuterio de pou-co uso ou numa parada programada para manutenccedilatildeo

As atualizaccedilotildees de seguranccedila no servidor secundaacuterio precisam de atenccedilatildeo pois distribuiccedilotildees baseadas em Debian reiniciam o serviccedilo do PostgreSQL Nesse caso esse rei-niacutecio pode afetar o funcionamento do servidor primaacuterio Para contornar esse problema podemos alterar a permissatildeo do arquivo etcinitdpostgresql-83 antes de atualizar o pacote do PostgreSQL

chmod 000 etcinitdpostgresql-83

Depois de atualizar o pacote basta retornar o pacote agraves permis-sotildees anteriores (e corretas para a operaccedilatildeo)

chmod 755 etcinitdpostgresql-83

O quadro 1 oferece ajuda caso ocorra algum problema com o storage durante a operaccedilatildeo do cluster

ConclusatildeoUma soluccedilatildeo de alta disponibilidade como essa natildeo elimina a necessidade de uma poliacutetica de becape e proce-dimentos de melhora contiacutenua de performance O becape pode ser res-taurado a partir de qualquer maacutequina na soluccedilatildeo de alta disponibilidade desde que elas estejam com o serviccedilo do PostgreSQL em execuccedilatildeo Novos procedimentos de becape podem ser adotados como armazenamento dos logs diaacuterios como complemento da poliacutetica existente

O aumento da disponibilidade do banco de dados natildeo significa aban-donar as poliacuteticas de contingecircncia e becape Tambeacutem eacute necessaacuterio plane-jar o aumento da disponibilidade de todo o ambiente (aplicaccedilatildeo e banco de dados) Natildeo desconsidere o uso de storages com iSCSI ou fibra oacutetica para melhor performance

Quadro 1 Problemas no storage

Em caso de problemas no storage o melhor eacute recriar o cluster de banco de dados com o comando initdb e restaurar seu conteuacutedo a partir do becape Dependendo do incidente pode-se optar por criar o cluster localmente ou em outro storage Caso seja local eacute possiacutevel criar um cluster provisoacuterio ateacute que o storage volte a ficar disponiacutevel para o servidor

O comando para isso eacute

pg_createcluster -u postgres -d varlibpostgresqlprovisorio --start-conf=auto 83 provisorio

e suas opccedilotildees satildeo

-u usuaacuterio que seraacute usado pelo cluster

-d diretoacuterio onde ficaraacute o cluster

--start-conf= opccedilatildeo para acrescentar a etcinitdpostgresq-83 o iniacutecio do cluster que estaacute sendo acrescentado

83 versatildeo instalada do PostgreSQL

provisorio identificaccedilatildeo do novo cluster

copy Linux New Media do Brasil Editora Ltda

62 httpwwwlinuxmagazinecombr

Integraccedilatildeo de dados com o ETL Talend

O talento do Talend Quem procura uma soluccedilatildeo ETL para Business Intelligence natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda por Miguel Koren OrsquoBrien de Lacy

Um dos componentes essen-ciais de uma soluccedilatildeo para a inteligecircncia de negoacutecios (BI

ndash Business Intelligence ) eacute o moacutedulo de integraccedilatildeo de informaccedilotildees de di-versas fontes de dados Felizmente o mercado de Software Livre e de coacutedigo aberto oferece algumas so-luccedilotildees bastante completas que satildeo usadas dentro dos pacotes de BI ou em modo stand alone As soluccedilotildees de integraccedilatildeo de dados satildeo conheci-das como ETL ( Extract Transform Load ) pois a missatildeo dessas soluccedilotildees eacute integrar informaccedilotildees e preparaacute-las para a formaccedilatildeo de tabelas no data mart Normalmente os dados precisam ser manipulados depois de obtidos e logo inseridos nas tabelas dos bancos de dados em que reside o data mart Ou seja estamos falando em obter os dados aplicar regras de negoacutecios da empresa facilitar as consultas pos-teriores ou validar a qualidade dos dados e entregaacute-los transformados ao destino fi nal Dentre as transfor-maccedilotildees normalmente aplicadas aos dados podemos destacar a seleccedilatildeo de campos importantes para a anaacutelise a fi ltragem dos registros necessaacuterios a limpeza dos dados (ldquoSrrdquo ou ldquoSe-nhorrdquo passam a valer ldquoSrdquo) a geraccedilatildeo dos campos calculados (por exemplo ldquovalor nf = quantidade valor unitaacute-riordquo) etc Mas essas soluccedilotildees tambeacutem podem ser consideradas integradores e manipuladores de dados para outras

necessidades podendo substituir mui-tos sistemas de ldquointerfacesrdquo de dados que satildeo desenvolvidos pelas aacutereas de TI de grandes empresas

Originalmente os sistemas cor-porativos foram desenvolvidos de forma isolada para cumprir alguma funccedilatildeo especiacutefi ca natildeo sendo parte do objetivo de projeto a necessidade de compartilhar dados Quando a quan-tidade desses sistemas comeccedilou a ser mais importante dentro das empresas surgiram as primeiras necessidades de integraccedilatildeo de dados como a carga de pedidos aos sistemas de estoque e fatu-ramento Tais necessidades de integra-ccedilatildeo foram implementadas diretamente por programas ou scripts especiacutefi cos Com a crescente complexidade das integraccedilotildees requeridas iniciou-se um encarecimento do desenvolvimento desses processos Os sistemas tinham manutenccedilatildeo complexa e as loacutegicas de integraccedilatildeo difiacuteceis de documentar auditar e entender Por isso as em-presas comeccedilaram a implementar ferramentas prontas ou semi-pron-tas para essa necessidade Essa foi a origem dos sistemas ETL

Esses sistemas poreacutem natildeo pos-suem a popularidade que merecem em razatildeo de certos fatores que impe-dem sua adoccedilatildeo Entre estes fatores devemos destacar Custo inicial Complexidade no uso com curva de

aprendizado muito empinada

Escalabilidade a necessidades de integraccedilotildees pequenas

A empresa Talend eacute fabricante

do Talend Open Studio [1] apre-sentado como ldquoo sistema ETL mais abrangente no mercado de software livre e coacutedigo abertordquo O modelo de negoacutecios da empresa eacute um dos claacutes-sicos para Software Livre A empresa desenvolve um produto que licencia sem custo usando licenciamento em modalidade livre no caso a GPL [2] e oferece serviccedilos e suporte co-merciais O software licenciado sob a GPL natildeo possui todos os compo-nentes que satildeo oferecidos a clientes sob o licenciamento de subscriccedilatildeo do serviccedilo mas mesmo dessa forma eacute extremamente uacutetil para as neces-sidades ETL de qualquer empresa O Talend Open Studio foi liberado no mercado em 2005 pela empresa Talend com bases na Franccedila paiacutes com uma poliacutetica ofi cial de apoio a Software Livre e Coacutedigo Aberto Analistas de TI como Forrester Rese-arch [3] IDC [4] e Bloor Research [5] posicionam o Talend como o melhor sistema para necessidades de integraccedilatildeo de dados O sistema BI em software livre SpagoBI [6] [7] eacute um exemplo de uso do Talend como seu componente ETL padronizado

O modelo de Software Livre eacute bem apropriado para esse tipo de soluccedilatildeo pois faz bom uso de desen-

AN

AacuteLIS

E

AN

AacuteLIS

E

copy Linux New Media do Brasil Editora Ltda

63

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

volvimento colaborativo em que muitas pessoas contribuem com moacutedulos para conexotildees a fontes de dados variadas Mas o sucesso do Talend tambeacutem mostra que o Software Livre natildeo eacute apenas bem sucedido em soluccedilotildees ldquocomoditiza-dasrdquo como sistemas operacionais e utilitaacuterios de infra-estrutura O Talend mostra que uma soluccedilatildeo livre pode ser muito atrativa num mercado novo em formaccedilatildeo com-petindo com sistemas proprietaacuterios de grandes empresas como IBM SAS e SAP as quais tecircm preccedilos de licenciamento de niacutevel corporativo Empresas como Oracle e Microsoft tambeacutem competem nesse mercado poreacutem com uma visatildeo mais restrita focada nos produtos de base de cada uma banco de dados Oracle e SQL Server respectivamente

Um forte apelo do Talend eacute a disponibilidade de uma ferramenta abrangente em que os proacuteprios usuaacute-rios da informaccedilatildeo podem modelar as regras de negoacutecios (fontes de dados campos requeridos regras de trans-formaccedilatildeo etc) para a integraccedilatildeo dos dados Hoje a aacuterea de TI de qualquer

empresa tem diariamente mais e mais dados e os usuaacuterios tecircm necessida-des de visualizaccedilatildeo que satildeo mais urgentes a cada dia Assim eacute muito uacutetil que os proacute-prios usuaacuterios possam usar o sistema de for-ma natildeo teacutecnica para especificar as regras de integraccedilatildeo

Recurso e TecnologiaO Talend eacute um sistema desenvolvi-do em Java que usa uma arquitetura modular formada por Gerenciador graacutefico de negoacutecios

(visatildeo natildeo teacutecnica de necessida-des de fluxo de dados)

Gerenciador graacutefico de proces-sos ETL

Gerenciador de metadados (repositoacuterio para reutilizaccedilatildeo de objetos)

Repositoacuterio de processos (moacutedulo adicional da versatildeo comercial)

Interface web services a proces-sos ETL

Monitor de processos Componentes modulares (atu-

almente mais de 400) Usando a API do sistema podem ser desenvolvidos componentes personalizados

O gerenciador graacutefico de processos ETL roda dentro do ambiente Eclipse [8][9] seguindo a filosofia de inte-graccedilatildeo de ferramentas dentro desse ambiente para desenvolvimento

Normalmente os primeiros trecircs moacutedulos satildeo usados na ordem listada O gerenciador de negoacutecios eacute usado pelos usuaacuterios do sistema enquanto o gerenciador de processos ETL e o gerenciador de metadados satildeo usados pelos programadores Mesmo que o repositoacuterio de projetos ETL com apoio a equipes de trabalho seja um componente oferecido comer-cialmente o Talend Open Studio inclui a possibilidade de versio-

namento do desenvolvimento dos processos A figura 1 mostra o uso desse recurso

O Talend eacute um sistema ldquogera-dor de coacutedigordquo em oposiccedilatildeo a um sistema de ldquocaixa pretardquo ndash a qual eacute responsaacutevel pela execuccedilatildeo dos pro-cessos ETL ndash ou seja o Talend natildeo requer um servidor de execuccedilatildeo de processos ETL A vantagem da gera-ccedilatildeo de coacutedigo eacute que eacute mais simples integrar os processos ETL dentro de outros aplicativos e os modelos satildeo de portabilidade muito mais flexiacutevel Aleacutem de sistemas como SpagoBI o

Figura 1 Gerenciamento de versotildees

Figura 2 Tela de iniacutecio do Talend

copy Linux New Media do Brasil Editora Ltda

64 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

Talend eacute integrado em sistemas de empresas como Ingres Teradata e JasperSoft O mecanismo de geraccedilatildeo de coacutedigo permite a integraccedilatildeo do coacutedigo gerado pelo Talend dentro de outras soluccedilotildees aleacutem de ter maior portabilidade Outra vantagem de mecanismos de geraccedilatildeo de coacutedigo eacute que mecanismos de integraccedilatildeo ldquoonlinerdquo conhecidos hoje como ldquointegraccedilatildeo operacionalrdquo podem ser implementados com maior fa-cilidade O conceito de geraccedilatildeo de coacutedigo versus ldquocaixa pretardquo de exe-cuccedilatildeo dos processos ETL eacute a maior diferenccedila entre o Talend e muitos outros sistemas O conceito de ge-raccedilatildeo de coacutedigo natildeo foi popular no passado possivelmente por causa do marketing das empresas comerciais destas soluccedilotildees mas as vantagens que o Talend apresenta usando este conceito satildeo importantes

No caso o Talend gera coacutedigo Java ou Perl e SQL para os proces-sos ETL Aleacutem de aplicar o conceito ETL ele aplica tambeacutem o conceito ELT (Extract Load Transform) o que significa que pode aproveitar a eficiecircncia e performance nativas de bancos de dados SQL ou seja os dados satildeo extraiacutedos carregados no destino e somente depois jaacute den-tro do banco de destino eacute aplicada a loacutegica de transformaccedilatildeo usando SQL e linguagem procedural de

cada banco de dados Para a funcio-nalidade ELT satildeo suportados nati-vamente hoje os bancos de dados Oracle MySQL e Teradata

OperaccedilatildeoO sistema estaacute disponiacutevel em versotildees para Linux Unix e Windows Para todas as plataformas eacute necessaacuterio ter Java e Perl no equipamento considerando seu conceito de de-senho que eacute de geraccedilatildeo de coacutedigo ou seja que os processos do Talend satildeo executados pela maacutequina vir-tual Java (JVM) ou pelo interpre-tador Perl

O download do sistema ainda eacute relativamente pesado (235 MB) mas com conexotildees de banda larga cada dia mais confiaacuteveis e raacutepidas pode ser feito em poucas horas Neste artigo exploraremos o Ta-lend Open Studio para Linux em ambiente graacutefico Gnome rodando em OpenSUSE 102 No caso de usaacute-lo em Windows 2000 existe um preacute-requisito adicional que eacute a instalaccedilatildeo do GDI requerido pelo Eclipse [10] A partir do Windows XP essa biblioteca estaacute incluiacuteda nativamente Vale a pena fazer o download tambeacutem do pacote com-pleto de documentaccedilatildeo Referente ao produto e agrave documentaccedilatildeo o Talend apresenta as vantagens de suporte por uma empresa comercial pois a documentaccedilatildeo eacute bastante comple-ta Outro destaque importante do Talend eacute o acesso a um sistema de ajuda online muito completo In-felizmente isso ainda natildeo eacute norma na maioria dos sistemas de coacutedigo aberto O site do Talend oferece um wiki e uma aacuterea de tutoriais

Simplesmente descompacte o pacote obtido por download e atri-bua propriedades de executaacutevel ao binaacuterio de iniacutecio do sistemaFigura 4 Geraccedilatildeo de um novo projeto

Figura 3 Definiccedilatildeo de repositoacuterio local inicial

copy Linux New Media do Brasil Editora Ltda

65

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

chmod a+x TalendOpenStudio-linux-gtk-x86

Selecione o binaacuterio de iniacutecio apropriado para sua arquitetura de CPU Para iniciar o gerenciador de processos execute o binaacuterio

TalendOpenStudio-linux-gtk-x86 amp

Isso exibiraacute a tela de abertura do sistema (figura 2)

Leia e aceite o contrato de licen-ciamento Apareceraacute finalmente a tela de conexatildeo ao repositoacuterio de processos ETL (figura 3) No caso do Talend Open Studio o repositoacuterio somente poderaacute ser local

Com o repositoacuterio local defini-do gere um projeto novo selecio-nando Create a new local project (figura 4)

Ao definir o tiacutetulo e a descriccedilatildeo do projeto deve-se selecionar tambeacutem a linguagem de geraccedilatildeo do coacutedigo No exemplo para o artigo escolhemos coacutedigo em Java A figura 5 mostra as opccedilotildees de definiccedilatildeo do projeto

Finalmente jaacute se pode entrar no projeto escolhido pela tela principal bastando selecionar nela o projeto e pressionar o botatildeo open Apoacutes alguns momentos apareceraacute a tela principal do sistema Na primeira vez seraacute pedido ao usuaacuterio que re-

gistre o uso digitando seu email e selecionando o paiacutes Este passo natildeo eacute obrigatoacuterio mas eacute recomendado para receber notificaccedilotildees de novas versotildees do sistema

Antes de usar o Talend Open Stu-dio deve ser configurada a lista de elementos disponiacuteveis para o dese-nho Isso pode ser feito modifican-do-se as propriedades do projeto na

opccedilatildeo de ldquopalette settingsrdquo A figura 6 mostra a inclusatildeo de conectores para MS SQL Server e PostgreSQL que devem ser selecionados no caso de precisarmos desenhar um processo de integraccedilatildeo de dados entre estes dois bancos de dados

O desenho de um processo ETL requer vaacuterias etapas incluindo de-senho dos componentes de negoacute-cios dos jobs de processamento de conexotildees JDBC acoplamento de moacutedulos de processamento e outros elementos A figura 7 mostra um exemplo de configuraccedilatildeo de cone-xatildeo JDBC ao banco Microsoft SQL Server O driver JDBC utilizado vem junto com a instalaccedilatildeo do Talend no caso o excelente JTDS [11] A figura 8 mostra a tela do Talend Open Studio com a visatildeo da paleta de fer-ramentas componentes tratados e a ediccedilatildeo de um elemento de negoacutecios (business object)

Aleacutem das possibilidades de desen-volvimento loacutegico da soluccedilatildeo dentro do ambiente graacutefico o Talend oferece

Figura 5 Detalhes de um novo projeto ETL

Figura 6 Formaccedilatildeo da lista de ferramentas

copy Linux New Media do Brasil Editora Ltda

66 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

ferramentas para preparar diagramas formatados para necessidades de documentaccedilatildeo e apresentaccedilatildeo Por exemplo podem ser escolhidas as fontes as cores e os estilos de linhas para os objetos do diagrama aleacutem de haver a possibilidade de alinhamen-to numa grade e a opccedilatildeo de layout automaacutetico dos componentes

Entre as caracteriacutesticas que mais flexibilidade oferecem ao Talend estaacute a biblioteca de componentes Esses componentes estatildeo divididos em grupos funcionais em que os de maior utilidade para uso corporativo podem ser os componentes prepa-rados para acesso a outros sistemas tais como SugarCRM Salesforce e SAP O Talend apresenta um des-taque no mercado ao oferecer um conector ao SAP A figura 9 mostra alguns componentes do Forge do sistema que podem ser baixados e instalados para aumentar a funcio-nalidade padratildeo do Talend

Um destaque do mecanismo de componentes do Talend eacute a possibili-dade de publicar os processos automa-ticamente por exemplo no servidor de BI SpagoBI Outro componente de uso geral e que incrementa em

muito a complexi-dade de processos que podem ser de-finidos eacute o executor de scripts em Groo-vy Aleacutem de poder desenvolver com-ponentes especiacutefi-cos a possibilidade de gerar scripts em Groovy para trata-mento avanccedilado dos dados permite que as transforma-ccedilotildees sigam regras muito especiais da empresa A figura 10 mostra a definiccedilatildeo de integraccedilatildeo com o SpagoBI

Vale a pena des-tacar algumas ca-

racteriacutesticas conceituais do editor graacutefico que satildeo importantes para uso corporativo do Talend Os desenhos satildeo versionados

com a data de cada versatildeo Cada objeto dos modelos re-

cebe um estado que pode ser ldquonatildeo verificadordquo ldquoverificadordquo ou ldquovalidadordquo por default no caso

dos business objects Entretan-to podem ser definidos outros estados usados na empresa

Existe uma aacuterea em cada proje-to para reunir a documentaccedilatildeo que pode conter objetivos justi-ficativas exemplos de resultados desejados etc O Talend tambeacutem gera documentaccedilatildeo teacutecnica e de processo automaticamente

Separaccedilatildeo de papeacuteis entre usuaacute-rios de negoacutecios que descrevem suas necessidades a niacutevel macro (definindo business objects) e desenvolvedores (definindo jobs e outros elementos)

Notificaccedilatildeo ou atualizaccedilatildeo au-tomaacutetica do sistema quando disponibilizadas novas versotildees Talend ou dos componentes

Facilidade para execuccedilatildeo de testes individuais e integrados de componentes

Importaccedilatildeo e exportaccedilatildeo de pro-jetos completos ou elementos

O Talend eacute um sistema muito completo com o apoio de uma empresa comercial um ecossiste-ma de componentes muito amplo e com um ambiente de definiccedilatildeo

Figura 7 Definiccedilatildeo de conexatildeo JDBC

Figura 8 Tela do Talend Open Studio

copy Linux New Media do Brasil Editora Ltda

67

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

e desenvolvimento faacutecil de usar aleacutem de poderoso e visualmente atraente Assim o projeto pode re-solver a questatildeo relatada no iniacutecio do artigo sobre os motivos da falta de popularizaccedilatildeo de sistemas ETL no mercado

ConclusatildeoHoje qualquer empresa tem ne-cessidades de ETL e integraccedilatildeo de dados e em muitos casos eacute caro e complexo desenvolver soluccedilotildees caseiras especiacuteficas O Talend apre-senta uma soluccedilatildeo flexiacutevel com a qual estes processos podem ser

modelados e executados de forma confiaacutevel Podem ser definidos e documentados com a participaccedilatildeo dos usuaacuterios que satildeo os principais interessados no resultado final Naturalmente esse tipo de divisatildeo de atividades ou responsabilidades requer que todos os usuaacuterios in-dependentemente do papel que desempenham no sistema sejam devidamente treinados Em TI eacute cada vez mais comum haver situ-accedilotildees em que os sistemas satildeo sim-ples e poderosos para usar mas os usuaacuterios devem ser treinados nos princiacutepios da tecnologia apresen-

tada Quem usa o Talend deveraacute estar ciente da documentaccedilatildeo em inglecircs ou em francecircs aleacutem do uso do sistema em inglecircs

O uso do Talend dentro de uma empresa eacute facilitado pelas caracte-riacutesticas corporativas do sistema que permitem entre outras possibilida-des ter alta produtividade e visibi-lidade dos processos pelo apoio a componentes especiacuteficos tais como conectores SAP Salesforce ou cus-tomizados e geraccedilatildeo de documen-taccedilatildeo Provavelmente seraacute difiacutecil encontrar um caso de uso que natildeo possa ser atendido com comodidade pelo Talend

Mais informaccedilotildees

[1] Talend httpwwwtalendcom

[2] GPL versatildeo 2 httpwwwgnuorglicensesold-licensesgpl-20html

[3] Forrester Research httpwwwforrestercom

[4] IDC httpwwwidccom

[5] Bloor Research httpwwwbloor-researchcom

[6] SpagoBI httpspagobiengit

[7] Miguel KO de Lacy ldquoNegoacutecio inteligenterdquo httpwwwlnmcombrarticle1747

[8] Eclipse httpwwweclipseorg

[9] Linux Magazine 36 ndash Eclipse httpwwwlnmcombrissue1353

[10] GDI httpwwweclipseorgswtfaqphpnographicslibrary

[11] JTDS httpjtdssourceforgenet

Figura 9 Forge de componentes mostrando aqueles especiacuteficos de algum sistema

Figura 10 Integraccedilatildeo com o SpagoBI Server

copy Linux New Media do Brasil Editora Ltda

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

68 httpwwwlinuxmagazinecombr

Gerenciamento de identidade na web com o Open ID

Identidade aberta mas segura

O OpenID oferece um padratildeo aberto para login em websites fechadospor Nils Magnus

A Web 20 eacute uma boa coisa como todo mundo imagina Um problema eacute a multiplici-

dade de sites protegidos por senha para acesso Blogs pessoais comu-nidades virtuais do Xing ao Orkut e Facebook e sites que gerenciam fluxo de trabalho despesas plane-jamento de feacuterias frequumlentemente confiam em aplicaccedilotildees baseadas na web com o uso de contas de usuaacuterio privadas Esse excesso de senhas de login estaacute fazendo com que alguns usuaacuterios descontentes percam a pa-ciecircncia Enquanto os usuaacuterios usam um dispositivo fiacutesico uacutenico e local ferramentas como os gerenciadores de senhas oferecidos pela maioria dos navegadores e alternativas como o KDE Wallet satildeo de grande ajuda

Mas o paradigma da Web 20 su-potildee que o usuaacuterio tem a liberdade de se mover e efetuar login de dife-rentes locais

Opccedilatildeo da comunidadeSoluccedilotildees para o gerenciamento de identidades fornecem uma soluccedilatildeo de maior mobilidade e flexibilida-de para simplificar o login via web Essas ferramentas muitas vezes empregam o princiacutepio da idonei-dade com terceiros Alguns grandes

players globais tecircm avanccedilado com serviccedilos que oferecem soluccedilotildees de login confiaacuteveis desenvolvidas por terceiros de uma uacutenica fonte O sis-tema Microsoft Passport foi criado em sintonia com esse sentimento Hoje o mercado do Microsoft Passport eacute o ldquoWindows Live IDrdquo [1] Muitos usuaacuterios no entanto estatildeo receo-sos de se tornarem dependentes de aplicativos proprietaacuterios

Uma recente alternativa conhe-cida como Liberty Alliance Project [2] ofereceu uma abordagem mais aberta mas foi amplamente consi-derada como um exagero de especi-ficaccedilotildees e por isso ainda natildeo obteve grande adoccedilatildeo apesar de seus sete anos de esforccedilo O projeto OpenID sob os auspiacutecios da OpenID Foun-dation [3] se baseia na mais simples funcionalidade podendo ser mais facilmente integrado a sistemas de autenticaccedilatildeo online

Os usuaacuterios que optaram pela alternativa do OpenID natildeo inserem um nome de usuaacuterio mas em vez disso identificam-se com uma URI que pode ser exibida em um navega-dor web A URI pode ser um ende-reccedilo web oferecido por um serviccedilo OpenID como httpnilsmagnusmyopenidcom no MyopenID [4] O tipo de identidade natildeo eacute importan-te contanto que qualquer navegador

consiga acessar a paacutegina A paacutegina teraacute que adicionar uma tag que aponte para o provedor do serviccedilo

ltlink rel=rdquoopenidserverrdquo href=rdquohttpwwwmyopenidcomserverrdquo gtltlink rel=rdquoopeniddelegaterdquo href=rdquohttpnilsmagnusmyopenidcomrdquo gt

O servidor do lado do provedor especifica a primeira relaccedilatildeo a segun-da reafirma o nome da identidade O provedor normalmente cria uma paacutegina para tornar essa informaccedilatildeo disponiacutevel para os sites na Web que requisitem as informaccedilotildees de login Contudo um usuaacuterio poderia de forma alternativa integrar os deta-lhes necessaacuterios em uma paacutegina ou blog pessoal Nesse caso seu proacute-prio endereccedilo poderia servir como sua OpenID

O loginUma aplicaccedilatildeo que suporte o OpenID exibiraacute um campo de login OpenID aleacutem da paacutegina de login tradicional Por exemplo a figura 1 mostra a paacute-gina de autenticaccedilatildeo do OpenID no wiki do Amarok

Quando um usuaacuterio digita seu ID baseado em uma URI a aplica-ccedilatildeo web que eacute conhecida como o

RE

DE

S

RE

DE

S

copy Linux New Media do Brasil Editora Ltda

69

cliente na linguagem do OpenID recupera a porccedilatildeo do servidor da URI O OpenID se refere ao servi-dor como ldquoprovedor de identidaderdquo (identity provider)

O cliente (o wiki do Amarok nes-te caso) solicita ao provedor o nome associado agrave URI Para fazer isso ele redireciona a requisiccedilatildeo para o pro-vedor do site e o provedor indica que foi emitida a solicitaccedilatildeo O usuaacuterio entatildeo concorda com o pedido digi-tando uma senha O provedor redi-reciona o navegador de volta para o site do cliente onde o usuaacuterio estaacute agora logado

Uma praacutetica caracteriacutestica do OpenID eacute a possibilidade de ar-mazenar vaacuterios atributos para uma uacutenica identidade com um provedor por exemplo seu nome completo seu idioma preferido ou sua data de nascimento (ver figura 2) O usuaacuterio que recebe um pedido do cliente pode especificar quais os dados que o prestador deve divulgar para o cliente e quais ele deve conservar como secretos

Esse processo de aprovaccedilatildeo eacute im-portante para evitar o mau uso de

um paracircmetro criacutetico tal como o PIN de um banco que na verdade ateacute pode ser armazenado junto ao seu ID Alguns provedores permitem que o usuaacuterio crie muacuteltiplas identi-dades cada uma com um conjunto distinto de atributos

Essa abordagem tambeacutem eacute co-nhecida como Gerenciamento de Identidade Centrada no Usuaacuterio (do inglecircs User-Centric Identity Mana-gement) em que cada usuaacuterio pode definir individualmente as informa-

ccedilotildees fornecidas pelo provedor para os clientes que pedirem

Alguns provedores de identidade associam-nas gratuitamente Cabe ao usuaacuterio decidir em qual provedor con-fiar Diferentemente da abordagem centralizada utilizada pelo Passport um conjunto descentralizado de pro-vedores OpenID competem entre si na oferta de serviccedilos Os usuaacuterios tecircm ateacute mesmo a liberdade de criar seu proacuteprio provedor

Para quem se interessar pelo desenvolvimento de uma soluccedilatildeo proacutepria haacute pacotes de coacutedigo aberto em vaacuterias linguagens de programa-ccedilatildeo como Perl PHP Ruby Python e Java [5]

Tem seguranccedilaO OpenID pode gerar duacutevidas so-bre sua seguranccedila jaacute que qualquer um pode atuar como provedor Um agressor pode forjar (spoof) ou sequumlestrar uma identidade A primeira questatildeo aponta para um claacutessico problema de seguranccedila se vocecirc pode manipular um site de terceiros vocecirc pode redirecionar os visitantes para o seu proacuteprio prove-dor de identidade ou escrever um para se adequar agrave demanda

Em outras palavras a seguranccedila estaacute nas matildeos das pessoas responsaacuteveis pelo site hospedeiro Considerando-

Linux Magazine 50 | Janeiro de 2009

| REDESOpenID

Figura 2 O provedor especifica os detalhes que pretende enviar para o cliente

Figura 1 O wiki do Amarok permite que seus usuaacuterios efetuem login com o OpenID

copy Linux New Media do Brasil Editora Ltda

70 httpwwwlinuxmagazinecombr

se a qualidade do coacutedigo dos muitos sites escritos nas populares linguagens de script essa eacute uma preocupaccedilatildeo real mas natildeo um argumento funda-mental contra o OpenID

A segunda pergunta eacute complica-da eacute possiacutevel que um hacker capture as comunicaccedilotildees entre o cliente e o provedor de identidade e com isso ar-mazene as sessotildees Afi nal o provedor envia uma confi rmaccedilatildeo de mensagem em caso de sucesso na autenticaccedilatildeo Um agressor poderia tentar apresentar uma sessatildeo gravada na proacutexima ten-tativa de login No entanto isso pode ser evitado com a ativaccedilatildeo do SSL ou do TLS no OpenID para proteger a conexatildeo e adicionar um desafi o para cada solicitaccedilatildeo Essa abordagem

signifi ca que qualquer resposta seraacute vaacutelida apenas uma vez o que exclui a reciclagem trivial

Apesar disso natildeo eacute uma boa ideacuteia subestimar a complexidade do ge-renciamento de sessatildeo baseado em estado ( stateful ) que trafega sobre um protocolo sem base em sessatildeo ( state-less ) como o HTTP que eacute a base do OpenID O fato de vaacuterias aplicaccedilotildees web estarem sendo comprometidas eacute uma indicaccedilatildeo clara dos perigos supondo que vocecirc acredite em pes-quisas e whitepapers [6]

Praacutetico e aberto O OpenID eacute um passo na direccedilatildeo certa para o gerenciamento de iden-tidades Como ele implementa o lo-

gin uacutenico ( single sign-on ) tambeacutem se torna mais con-veniente para os usuaacuterios reduzindo o nuacutemero de senhas a serem lembradas A capacidade de gerenciar atributos eacute muito mais po-derosa do que parece agrave pri-meira vista

O nuacutemero de sites que usam OpenID continua crescendo vertiginosamente mas algumas grandes aplica-ccedilotildees continuaratildeo precisando provar se preenchem todas

as exigecircncias operacionais e concei-tuais no que diz respeito agrave confi anccedila e agrave disponibilidade

Mais informaccedilotildees

[1] Microsoft Passport httpwwwpassportnet

[2] Projeto Liberty Alliance httpwwwprojectlibertyorg

[3] Projeto OpenID httpopenidnet

[4] MyOpenID httpmyopenidcom

[5] Bibliotecas abertas de OpenID httpwikiopenidnetLibraries

[6] Secure Computing ldquoKeeping Customers and Merchants Securerdquo (em inglecircs) httpwwwsecurecomputingcomwebformcfmid=289ampref=pci

[7] Feder ID httpfederidobjectweborg

[8] Extensotildees do Mediawiki para OpenID httpwwwmediawikiorgwikiExtensionOpenID

[9] Suporte a OpenID no Drupal httpdrupalorgprojectopenid

REDES | OpenID

Quadro 1 Gerenciamento de identidade e federaccedilatildeo

O OpenID natildeo eacute soacute um projeto de gerenciamento de identidade O Feder ID [7] por exemplo eacute um projeto de coacutedigo aberto da Franccedila Um dos fi nanciadores do projeto Oudot Cleacutement enfatiza a importacircncia das identidades digitais para o acesso aos recursos da Web em uma recente entrevista com a Linux Magazine

De acordo com Oudot muitos usuaacuterios possuem uma identidade distinta para cada site Isto eacute um grande problema para grandes empresas e organizaccedilotildees jaacute que os usuaacuterios precisam memorizar muacuteltiplas senhas O Feder ID fornece ferramentas para a sincronizaccedilatildeo de repositoacuterios de identidade Estes atributos natildeo estatildeo disponiacuteveis apenas para uma uacutenica organizaccedilatildeo local eles podem ser compartilhados por parceiros confi aacuteveis

As ferramentas do Feder ID satildeo de coacutedigo aberto e respeitam os padrotildees da IETF ( Internet Engineering Task Force ) OASIS ( Organization of Structured Information Standards ) e da Liberty Alliance para a gestatildeo de identidades

Tabela 1 Provedores de identidade para aplicaccedilotildees web

Provedor OpenID

AOL httpopenidaolcomnome_do_usuaacuterio

Blogger httpnome_do_blogblogspotcom

Flickr httpwwwflickrcomphotosusuaacuterio

Livedoor httpprofilelivedoorcomusuaacuterio

Livejournal httpusuaacuteriolivejournalcom

Technorati httptechnoraticompeopletechnoratiusuaacuterio

Wordpress httpusuaacuteriowordpresscom

Yahoo httpopenidyahoocom

copy Linux New Media do Brasil Editora Ltda

71

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

LTRindd 67 251108 173039

copy Linux New Media do Brasil Editora Ltda

72 httpwwwlinuxmagazinecombr

Login no Linux pela impressatildeo digital

Autenticaccedilatildeo biomeacutetrica A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e a confi gurar esse recurso de seguranccedila por Alessandro de Oliveira Faria (Cabelo)

Hoje a autenticaccedilatildeo biomeacute-trica eacute imprescindiacutevel para elevarmos o niacutevel de segu-

ranccedila computacional Na Linux Magazine 48 foram mencionadas as principais tecnologias biomeacutetri-cas de coacutedigo aberto Agora neste documento veremos na praacutetica o uso da biometria para autentica-ccedilatildeo de identidade Esse recurso natildeo faz parte apenas dos fi lmes de

fi cccedilatildeo cientiacutefi ca eacute uma realidade cada vez mais presente no nosso dia-a-dia em diversos segmentos do mercado

Com o crescimento dos equi-pamentos em redes abertas sur-giram problemas de seguranccedila e confi abilidade de autenticaccedilatildeo Uma autenticaccedilatildeo indevida for-nece acesso privilegiado a pessoas natildeo autorizadas dando margem a roubo de informaccedilotildees interrup-ccedilotildees de serviccedilos fraudes sistemaacute-ticas entre outros transtornos do seacuteculo XXI

Neste cenaacuterio surgiu a necessida-de da autenticaccedilatildeo biomeacutetrica ou seja verifi caccedilatildeo da autenticidade do usuaacuterio em operaccedilatildeo Esse me-canismo computacional eacute baseado em caracteriacutesticas (ldquoo que vocecirc eacuterdquo) A biometria aplicada agrave autenticaccedilatildeo de usuaacuterios eacute um meacutetodo automa-tizado para medir as caracteriacutesticas humanas e confrontaacute-las em uma base de dados obtendo assim a au-tenticidade do usuaacuterio

A efi caacutecia da autenticaccedilatildeo biomeacute-trica estaacute diretamente relacionada agrave qualidade dos dados obtidos na fase de cadastramento da caracteriacutestica

biomeacutetrica Nessa etapa a base de dados recebe o template matemaacuteti-co calculado pelo sistema isto eacute a representaccedilatildeo binaacuteria da caracteriacutes-tica humana Essa informaccedilatildeo seraacute utilizada posteriormente na compa-raccedilatildeo biomeacutetrica para autenticaccedilatildeo do sistema obtendo assim um re-sultado positivo ou negativo

Este artigo apresenta um foco teacutecnico e pouco teoacuterico assim obje-

SE

GU

RA

NCcedil

A

Figura 1 Imagem extraiacuteda de um leitor de impressatildeo digital UAreU da Digital Persona

Figura 2 Imagem binarizada (branco e preto)

copy Linux New Media do Brasil Editora Ltda

73

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

tivando configurar ou acrescentar a autenticaccedilatildeo biomeacutetrica como niacutevel adicional de seguranccedila ao login do sistema operacional Linux Para tal operaccedilatildeo utilizaremos a tecnologia de impressatildeo digital e pacotes de coacute-digo aberto (biblioteca fprint)

A tecnologia utilizada para a con-fecccedilatildeo deste artigo foi OpenSuse 103 ndash kernel 26225-

31-bigsmp Notebook Dell Vostro 1510 4 GB de memoacuteria RAM Processador Core 2 Duo Leitor de impressatildeo digital Uare

U Digital Persona 4000B Biblioteca fprint

Fprint conceitosO pacote fprint[1] eacute o sonho de todo desenvolvedor de coacutedigo aberto O kit de integraccedilatildeo permite o desen-volvimento de rotinas para identi-ficaccedilatildeo e verificaccedilatildeo de impressotildees digitais do usuaacuterio Um dos pontos fortes dessa soluccedilatildeo livre eacute a compa-tibilidade com diversos modelos de sensores disponiacuteveis no mercado A lista de aparelhos compatiacuteveis en-contra-se em [2]

A impressatildeo digital eacute composta por linhas formadas pelas elevaccedilotildees da pele A comparaccedilatildeo por impressatildeo digital eacute um meacutetodo utilizado haacute mais de mil anos como forma de identificaccedilatildeo de usuaacuterios Eacute uma caracteriacutestica uacutenica entre os seres humanos inclusive entre irmatildeos gecircmeos univitelinos

Formada ainda quando feto a impressatildeo digital acompanha a pessoa por toda a sua existecircncia sem apresentar grandes mudanccedilas Extraindo os pontos caracteriacutesticos ou ldquopontos de minuacuteciasrdquo de uma impressatildeo digital um papiloscopista ou sistemas computadorizados po-dem identificar pessoas utilizando caacutelculos bastante confiaacuteveis Grande parte dos algoritmos trabalham com o princiacutepio de extraccedilatildeo desses pontos caracteriacutesticos Apoacutes a extraccedilatildeo satildeo calculados a relaccedilatildeo entre as distacircn-cias desses pontos Cada algoritmo possui sua base de caacutelculo seja por anaacutelise dos pontos entre si ou por agrupamentos de pontos para anaacute-lise de semelhanccedilas de triacircngulos com os acircngulos internos

A biblioteca fprint incorpora abstraccedilatildeo de hardware para aces-so ao leitor Com esse recurso natildeo precisamos instalar qualquer moacutedulo do kernel para o funcio-namento de cada modelo de leitor de impressatildeo digital

Na primeira fase a biblioteca extrai a imagem do sensor (figura 1) e logo a seguir a linha da impressatildeo digital eacute realccedilada com a cor preta (figura 2)

Figura 3 Linhas reduzidas para um uacutenico pixel

Figura 4 Pontos de bifurcaccedilatildeo e terminadores

copy Linux New Media do Brasil Editora Ltda

74 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

utilizando algoritmos de extraccedilatildeo com filtros Na proacutexima etapa a imagem jaacute estaacute binarizada (branco e preto figura 3) e as linhas foram reduzidas a um uacutenico pixel de largura Por uacuteltimo a tarefa mais faacutecil ou seja

detectar os pontos de minuacutecias Fa-zendo um exame de cada pixel na imagem se houver um pixel branco sem vizinhos isso significa que en-contramos um ponto terminal Caso um ponto branco possua trecircs pontos

vizinhos significa que en-contramos uma bifurcaccedilatildeo Os pontos de minuacutecias satildeo entatildeo destacados (fi-gura 4) e compotildeem a ver-dadeira identidade da im-pressatildeo digital

As impressotildees digitais satildeo classificadas em cinco grupos conforme mostra a figura 5 ciacuterculo direito ciacuterculo esquerdo espiral arco e arco incompletoA estrutura de uma im-pressatildeo digital eacute forma-da por cruzamentos das linhas core (centro) bi-furcaccedilotildees terminaccedilotildees ilhas deltas (bifurcaccedilotildees inferiores) e poros Os pon-tos terminais assim como os pontos de bifurcaccedilotildees satildeo definidos em funccedilatildeo da distacircncia (coordena-da relativa) para o core Nos pontos terminais eacute co-mum calcular seu acircngulo de inclinaccedilatildeo

InstalaccedilatildeoHaacute pacotes da biblioteca fprint preacute-compilados para OpenSuse [3] e Ubuntu [4] No entanto este artigo sugere a compilaccedilatildeo da biblioteca a partir de seu coacutedigo-fonte que pode ser obtido em [5] Haacute tambeacutem uma demonstraccedilatildeo do software fprint que pode ser baixada a partir de [6]

Apoacutes o download devemos des-compactar os arquivos fontes O exemplo 1 detalha o procedimen-

Exemplo 1 Preparaccedilatildeo da libfprint

$ tar -jxvf libfprint-006tarbz2$ cd libfprint-006$ configure$ make$ suSenha make install ldconfig

Figura 5 Os cinco grupos de impressotildees digitais

Exemplo 3 Arquivo de login do PAM

01 PAM-1002 auth requisite pam_nologinso03 auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securettyso04 auth include common-auth05 auth requisite pam_fprintso06 account include common-account07 password include common-password08 session required pam_loginuidso09 session include common-session10 session required pam_lastlogso nowtmp11 session required pam_resmgrso12 session optional pam_mailso standard13 session optional pam_ck_connectorso

Exemplo 2 Compilaccedilatildeo do pam_fprint

$ wget httpufprdlsourceforgenetsourceforgefprintpam_fprint-02tarbz2$ tar -jxvf pam_fprint-02tarbz2$ cd pam_fprint-02$ configure$ make$ sudo make install

copy Linux New Media do Brasil Editora Ltda

75

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

Exemplo 4 pam_fprint_enroll --help

pam_fprint_enroll --helpUsage pam_fprint_enroll options -h --help Display this usage information -f --enroll-finger index Enroll finger with index Valid indexes are 1 - Left Thumb 2 - Left Index Finger 3 - Left Middle Finger 4 - Left Ring Finger 5 - Left Little Finger 6 - Right Thumb 7 - Right Index Finger 8 - Right Middle Finger 9 - Right Ring Finger 10 - Right Little Finger

Exemplo 5 Cadastramento de digital

pam_fprint_enroll --enroll-finger 7

This program will enroll your finger unconditionally overwriting any selected print that was enrolled previously If you want to continue press enter otherwise hit Ctrl+C Found device claimed by Digital Persona UareU 40004000B driverOpened device Itrsquos now time to enroll your finger You will need to successfully scan your Right Index Finger 1 timesto complete the process Scan your finger nowEnroll completeEnrollment completed

Exemplo 6 Sucesso na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1)lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BUacutetimo loginDom Nov 16 231501 BRST 2008em tty2

Have a lot of fun

copy Linux New Media do Brasil Editora Ltda

76 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

to de configuraccedilatildeo e compilaccedilatildeo da biblioteca

Execute o comando ldquomakerdquo con-vencional para efetuar a compilaccedilatildeo na iacutentegra do coacutedigo-fonte a seguir transforme-se em super-usuaacuterio (root) para efetuar a instalaccedilatildeo da biblioteca por meio do comando ldquomake installrdquo seguido do ldquoldconfigrdquo conforme as instruccedilotildees a seguir

Autenticaccedilatildeo pam_fprintO moacutedulo biomeacutetrico que trabalha em conjunto com o sistema de au-tenticaccedilatildeo PAM (Pluggable Authen-tication Modules) eacute o pam_fprint Sua base tecnoloacutegica eacute a biblioteca fprint receacutem compilada e instalada O pacote pam_fprint utiliza as fun-ccedilotildees biomeacutetricas para processar e verificar a autenticaccedilatildeo do usuaacuterio Em outras palavras a sua impressatildeo digital eacute utilizada para efetuar o login no sistema operacional

Vale a pena mencionar que o PAM eacute um sistema para autenticaccedilatildeo de usuaacuterios em ambientes Linux e Unix Uma de suas principais vantagens eacute a centralizaccedilatildeo das chamadas e funccedilotildees de login assim facilitando a tarefa do desenvolvedor

Continuando nossa jornada vamos agora baixar descompactar compilar e instalar o pacote pam_fprint como no exemplo 2

Sobre o autorAlessandro Faria eacute soacutecio-proprietaacuterio da NETi TECNOLOGIA fundada em Junho de 1996 (httpwwwnetiteccombr) empre-sa especializada em desenvolvimento de software e soluccedilotildees biomeacutetricas Consultor Biomeacutetrico na tecnologia de reconhecimen-to facial atua na aacuterea de tecnologia desde 1986 propiciando assim ao mercado solu-ccedilotildees em software Leva o Linux a seacuterio des-de 1998 com desenvolvimento de soluccedilotildees open source eacute membro colaborador da co-munidade Viva O Linux e mantenedor da bi-blioteca open source de viacutedeo captura aleacuten de participar entre outros projetos

Mais informaccedilotildees

[1] Fprint httpreactivatednetfprintwikiMain_Page

[2] Dispositivos compatiacuteveis com a fprint httpreactivatednetfprintwikiSupported_devices

[3] Pacotes fprint para OpenSuse httpdownloadopensuseorgrepositorieshomedgege

[4] Pacotes fprint para Ubuntu httpwwwmadman2knetcomments105

[5] Download da biblioteca fprint httpufprdlsourceforgenetsourceforgefprintlibfprint-006tarbz2

[6] Demo do fprint httpufprdlsourceforgenetsourceforgefprintfprint_demo-04tarbz2

[7] Portal Viva o Linux httpwwwvivaolinuxcombr

ConfiguraccedilatildeoNo OpenSuse eacute preciso modi-ficar o arquivo de configuraccedilatildeo para autenticaccedilatildeo no modo conso-le etcpamdlogin Esse arquivo pode ter nome diferente em ou-tras distribuiccedilotildees Seu conteuacutedo eacute mostrado no exemplo 3 e a linha 5 deve ser acrescentada pois eacute a res-ponsaacutevel por requisitar o moacutedulo pam_fprint

Eacute importante notar a utilizaccedilatildeo do modo requisite de autenticaccedilatildeo no PAM Para maiores informaccedilotildees sobre o tipo de autenticaccedilatildeo reco-menda-se consultar a documentaccedilatildeo do PAM

CadastramentoO proacuteximo passo eacute efetuar o cadastra-mento biomeacutetrico da sua impressatildeo digital Se concluiacuteda com sucesso essa tarefa no proacuteximo login o usuaacute-rio deveraacute fornecer aleacutem da senha sua impressatildeo digital para ter acesso ao sistema

O programa pam_fprint_enroll eacute responsaacutevel pelo cadastramento das impressotildees digitais Para en-tender melhor sua sintaxe digite pam_fprint_enroll --help e perceba (exemplo 4) que eacute preciso informar o nuacutemero correspondente ao dedo utilizado para cadastro A numeraccedilatildeo comeccedila em 1 no polegar esquerdo e segue ateacute o dedo mindinho esquerdo (nuacutemero 5) seguindo depois para o polegar direito (6) e terminando no mindinho direito (10)

No meu caso utilizei o nuacutemero 7 representando o dedo indicador da matildeo direita (exemplo 5) Ao exe-cutar o programa pressione [ENTER] encoste o dedo no leitor de impres-satildeo digital e pronto Nessa fase ao efetuar o login o sistema opera-cional solicitaraacute a senha seguida da autenticaccedilatildeo biomeacutetrica como mostram os exemplos 6 (sucesso na autenticaccedilatildeo) e 7 (falha na autenti-caccedilatildeo biomeacutetrica)

ConclusatildeoA biblioteca fprint proporciona inuacute-meros recursos aleacutem dos mencio-nados neste artigo Para um estudo detalhado sobre o assunto sugiro algumas leituras no portal Viva o Linux [7] e tambeacutem no site oficial do projeto

Exemplo 7 Falha na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1) lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BLogin incorreto

copy Linux New Media do Brasil Editora Ltda

77

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

SE

CcedilAtilde

O

Site_LNMindd 55 191208 205243

copy Linux New Media do Brasil Editora Ltda

78

SE

RV

ICcedilO

S

httpwwwlinuxmagazinecombr

Fornecedor de Hardware = 1 Redes e Telefonia PBX = 2 Integrador de Soluccedilotildees = 3

Literatura Editora = 4 Fornecedor de Software = 5

Consultoria Treinamento = 6

Linuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

CearaacuteF13 Tecnologia Fortaleza Rua Coronel Solon 480 ndash Bairro de Faacutetima

Fortaleza - CE - CEP 60040-270 85 3252-3836 wwwf13combr

Espiacuterito SantoLinux Shopp Vila Velha Rua Satildeo Simatildeo (Correspondecircncia) 18 ndash CEP 29113-120 27 3082-0932 wwwlinuxshoppcombr

Megawork Consultoria e Sistemas

Vitoacuteria Rua Chapot Presvot 389 ndash Praia do Can-to ndash CEP 29055-410 sl 201 202

27 3315-2370 wwwmegaworkcombr

Spirit Linux Vitoacuteria Rua Marins Alvarino 150 ndash CEP 29047-660 27 3227-5543 wwwspiritlinuxcombr

Minas GeraisInstituto Online Belo Horizonte Av Bias Fortes 932 Sala 204 ndash CEP 30170-011 31 3224-7920 wwwinstitutoonlinecombr

Linux Place Belo Horizonte Rua do Ouro 136 Sala 301 ndash Serra ndash CEP 30220-000 31 3284-0575 corporatelinuxplacecombr

Microhard Belo Horizonte Rua Repuacuteblica da Argentina 520 ndash Sion ndash CEP 30315-490 31 3281-5522 wwwmicrohardcombr

TurboSite Belo Horizonte Rua Paraiacuteba 966 Sala 303 ndash Savassi ndash CEP 30130-141 0800 702-9004 wwwturbositecombr

ParanaacuteiSolve Curitiba Av Cacircndido de Abreu 526 Cj 1206B ndash CEP 80530-000 41 252-2977 wwwisolvecombr

Mandriva Conectiva Curitiba Rua Tocantins 89 ndash Cristo Rei ndash CEP 80050-430 41 3360-2600 wwwmandrivacombr

Telway Tecnologia Curitiba Rua Francisco Rocha 183071 41 3203-0375 wwwtelwaycombr

Rio de JaneiroMuacuteltipla Tecnologia da Informaccedilatildeo

Rio de Janeiro Av Rio Branco 37 14deg andar ndash CEP 20090-003 21 2203-2622 wwwmultipla-ticombr

NSI Training Rio de Janeiro Rua Arauacutejo Porto Alegre 71 4ordm andar Centro ndash CEP 20030-012 21 2220-7055 wwwnsicombr

Open IT Rio de Janeiro Rua do Mercado 34 Sl 402 ndash Centro ndash CEP 20010-120 21 2508-9103 wwwopenitcombr

Unipi Tecnologias Campos dos Goytacazes

Av Alberto Torres 303 1ordmandar ndash Centro ndash CEP 28035-581 22 2725-1041 wwwunipicombr

Rio Grande do Sul4up Soluccedilotildees Corporativas Novo Hamburgo Pso Calccediladatildeo Osvaldo Cruz 54 sl 301 CEP 93510-015 51 3581-4383 www4upcombr

Definitiva Informaacutetica Novo Hamburgo Rua General Osoacuterio 402 - Hamburgo Velho 51 3594 3140 wwwdefinitivacombr

Solis Lajeado Av 7 de Setembro 184 sala 401 ndash Bairro Moinhos CEP 95900-000

51 3714-6653 wwwsoliscoopbr

DualCon Novo Hamburgo Rua Joaquim Pedro Soares 1099 Sl 305 ndash Centro 51 3593-5437 wwwdualconcombr

Datarecover Porto Alegre Av Carlos Gomes 403 Sala 908 Centro Comer-cial Atrium Center ndash Bela Vista ndash CEP 90480-003

51 3018-1200 wwwdatarecovercombr

LM2 Consulting Porto Alegre Rua Germano Petersen Junior 101-Sl 202 ndash Hi-gienoacutepolis ndash CEP 90540-140

51 3018-1007 wwwlm2combr

Lnx-IT Informaccedilatildeo e Tecnologia Porto Alegre Av Venacircncio Aires 1137 ndash Rio Branco ndash CEP 90040193 51 3331-1446 wwwlnx-itinfbr

Plugin Porto Alegre Av Juacutelio de Castilhos 132 11ordm andar Centro ndash CEP 90030-130 51 4003-1001 wwwplugincombr

TeHospedo Porto Alegre Rua dos Andradas 1234610 ndash Centro ndash CEP 90020-008 51 3286-3799 wwwtehospedocombr

Satildeo PauloWs Host Arthur Nogueira Rua Jerere 36 ndash Vista Alegre ndash CEP 13280-000 19 3846-1137 wwwwshostcombr

DigiVoice Barueri Al Juruaacute 159 Teacuterreo ndash Alphaville ndash CEP 06455-010 11 4195-2557 wwwdigivoicecombr

Dextra Sistemas Campinas Rua Antocircnio Paioli 320 ndash Pq das Universidades ndash CEP 13086-045 19 3256-6722 wwwdextracombr

Insigne Free Software do Brasil Campinas Av Andrades Neves 1579 ndash Castelo ndash CEP 13070-001 19 3213-2100 wwwinsignesoftwarecom

Microcamp Campinas Av Thomaz Alves 20 ndash Centro ndash CEP 13010-160 19 3236-1915 wwwmicrocampcombr

PC2 Consultoria em Software Livre

Carapicuiba Rua Edeia 500 - CEP 06350-080 11 3213-6388 wwwpc2consultoriacom

Savant Tecnologia Diadema Av Senador Vitorino Freire 465 ndash CEP 09910-550 11 5034-4199 wwwsavantcombr

Epopeacuteia Informaacutetica Mariacutelia Rua Goiaacutes 392 ndash Bairro Cascata ndash CEP 17509-140 14 3413-1137 wwwepopeiacombr

Redentor Osasco Rua Costante Piovan 150 ndash Jd Trecircs Montanhas ndash CEP 06263-270 11 2106-9392 wwwredentorindbr

Go-Global Santana de Parnaiacuteba

Av Yojiro Takaoca 4384 Ed Shopping Ser-vice Cj 1013 ndash CEP 06541-038

11 2173-4211 wwwgo-globalcombr

AW2NET Santo Andreacute Rua Edson Soares 59 ndash CEP 09760-350 11 4990-0065 wwwaw2netcombr

Async Open Source Satildeo Carlos Rua Orlando Damiano 2212 ndash CEP 13560-450 16 3376-0125 wwwasynccombr

O maior diretoacuterio de empresas que oferecem produtos soluccedilotildees e serviccedilos 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 anuncioslinuxmagazinecombr

copy Linux New Media do Brasil Editora Ltda

79

| SERVICcedilOSLinuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

Satildeo Paulo (continuaccedilatildeo)Delix Internet Satildeo Joseacute do

Rio PretoRua Voluntaacuterio de Satildeo Paulo 3066 9ordm ndash Centro ndash CEP 15015-909 11 4062-9889 wwwdelixhostingcombr

4Linux Satildeo Paulo Rua Teixeira da Silva 660 6ordm andar ndash CEP 04002-031 11 2125-4747 www4linuxcombr

A Casa do Linux Satildeo Paulo Al Jauacute 490 ndash Jd Paulista ndash CEP 01420-000 11 3549-5151 wwwacasadolinuxcombr

Accenture do Brasil Ltda Satildeo Paulo Rua Alexandre Dumas 2051 ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 5188-3000 wwwaccenturecombr

ACR Informaacutetica Satildeo Paulo Rua Lincoln de Albuquerque 65 ndashPerdizes ndash CEP 05004-010 11 3873-1515 wwwacrinformaticacombr

Agit Informaacutetica Satildeo Paulo Rua Major Quedinho 111 5ordm andar Cj 508 ndash Centro ndash CEP 01050-030

11 3255-4945 wwwagitcombr

Altbit - Informaacutetica Comeacutercio e Serviccedilos LTDA

Satildeo Paulo Av Francisco Matarazzo 229 Cj 57 ndash Aacutegua Branca ndash CEP 05001-000

11 3879-9390 wwwaltbitcombr

AS2M -WPC Consultoria Satildeo Paulo Rua Trecircs Rios 131 Cj 61A ndash Bom Retiro ndash CEP 01123-001 11 3228-3709 wwwwpccombr

Big Host Satildeo Paulo Rua Dr Miguel Couto 58 ndash Centro ndash CEP 01008-010 11 3033-4000 wwwbighostcombr

Blanes Satildeo Paulo Rua Andreacute Ampeacutere 153 ndash 9ordm andar ndash Conj 91 CEP 04562-907 (proacutex Av L C Berrini)

11 5506-9677 wwwblanescombr

Commlogik do Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 13797 Bloco II 6ordm andar ndash Morumbi ndash CEP 04794-000

11 5503-1011 wwwcommlogikcombr

Computer Consulting Projeto e Consultoria Ltda

Satildeo Paulo Rua Vergueiro 6455 Cj 06 ndash Alto do Ipiranga ndash CEP 04273-100 11 5062-3927 wwwcomputerconsultingcombr

Consist Consultoria Siste-mas e Representaccedilotildees Ltda

Satildeo Paulo Av das Naccedilotildees Unidas 20727 ndash CEP 04795-100 11 5693-7210 wwwconsistcombr

Domiacutenio Tecnologia Satildeo Paulo Rua das Carnaubeiras 98 ndash Metrocirc Conceiccedilatildeo ndash CEP 04343-080 11 5017-0040 wwwdominiotecnologiacombr

EDS do Brasil Satildeo Paulo Av Pres Juscelino Kubistcheck 1830 Torre 4 - 5ordm andar 11 3707-4100 wwwedscom

Eacutetica Tecnologia Satildeo Paulo Rua Nova York 945 ndash Brooklin ndash CEP04560-002 11 5093-3025 wwweticanet

Getronics ICT Solu-tions and Services

Satildeo Paulo Rua Verbo Divino 1207 ndash CEP 04719-002 11 5187-2700 wwwgetronicscombr

Hewlett-Packard Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 12901 25ordm andar ndash CEP 04578-000 11 5502-5000 wwwhpcombr

IBM Brasil Ltda Satildeo Paulo Rua Tutoacuteia 1157 ndash CEP 04007-900 0800-7074 837 wwwbribmcom

iFractal Satildeo Paulo Rua Fiaccedilatildeo da Sauacutede 145 Conj 66 ndash Sauacutede ndash CEP 04144-020 11 5078-6618 wwwifractalcombr

Integral Satildeo Paulo Rua Dr Gentil Leite Martins 295 2ordm andar Jd Prudecircncia ndash CEP 04648-001

11 5545-2600 wwwintegralcombr

Itautec SA Satildeo Paulo Av Paulista 2028 ndash CEP 01310-200 11 3543-5543 wwwitauteccombr

Kenos Consultoria Satildeo Paulo Av Fagundes Filho 13 Conj 53 ndash CEP 04304-000 11 40821305 wwwkenoscombr

Konsultex Informatica Satildeo Paulo Av Dr Guilherme Dumont Villares 1410 6 andar CEP 05640-003 11 3773-9009 wwwkonsultexcombr

Linux Komputer Informaacutetica Satildeo Paulo Av Dr Lino de Moraes Leme 185 ndash CEP 04360-001 11 5034-4191 wwwkomputercombr

Linux Mall Satildeo Paulo Rua Machado Bittencourt 190 Cj 2087 ndash CEP 04044-001 11 5087-9441 wwwlinuxmallcombr

Livraria Tempo Real Satildeo Paulo Al Santos 1202 ndash Cerqueira Ceacutesar ndash CEP 01418-100 11 3266-2988 wwwtemporealcombr

Locasite Internet Service Satildeo Paulo Av Brigadeiro Luiz Antonio 2482 3ordm andar ndash Centro ndash CEP 01402-000

11 2121-4555 wwwlocasitecombr

Microsiga Satildeo Paulo Av Braz Leme 1631 ndash CEP 02511-000 11 3981-7200 wwwmicrosigacombr

Novatec Editora Ltda Satildeo Paulo Rua Luis Antonio dos Santos 110 ndash Santana ndash CEP 02460-000 11 6979-0071 wwwnovateceditoracombr

Novell Ameacuterica Latina Satildeo Paulo Rua Funchal 418 ndash Vila Oliacutempia 11 3345-3900 wwwnovellcombrasil

Oracle do Brasil Sistemas Ltda Satildeo Paulo Av Alfredo Egiacutedio de Souza Aranha 100 ndash Bloco B ndash 5ordm andar ndash CEP 04726-170

11 5189-3000 wwworaclecombr

Proelbra Tecnolo-gia Eletrocircnica Ltda

Satildeo Paulo Av Rouxinol 1041 Cj 204 2ordm andar Moema ndash CEP 04516-001 11 5052- 8044 wwwproelbracombr

Provider Satildeo Paulo Av Cardoso de Melo 1450 6ordm andar ndash Vila Oliacutempia ndash CEP 04548-005

11 2165-6500 wwwe-providercombr

Red Hat Brasil Satildeo Paulo Av Brigadeiro Faria Lima 3900 Cj 81 8ordm andar Itaim Bibi ndash CEP 04538-132

11 3529-6000 wwwredhatcombr

Samurai Projetos Especiais Satildeo Paulo Rua Baratildeo do Triunfo 550 6ordm andar ndash CEP 04602-002 11 5097-3014 wwwsamuraicombr

SAP Brasil Satildeo Paulo Av das Naccedilotildees Unidas 11541 16ordm andar ndash CEP 04578-000 11 5503-2400 wwwsapcombr

Simples Consultoria Satildeo Paulo Rua Mourato Coelho 299 Cj 02 Pinheiros ndash CEP 05417-010 11 3898-2121 wwwsimplesconsultoriacombr

Smart Solutions Satildeo Paulo Av Jabaquara 2940 cj 56 e 57 11 5052-5958 wwwsmart-teccombr

Snap IT Satildeo Paulo Rua Joatildeo Gomes Junior 131 ndash Jd Bonfiglioli ndash CEP 05299-000 11 3731-8008 wwwsnapitcombr

Stefanini IT Solutions Satildeo Paulo Av Brig Faria Lima 1355 19ordm ndash Pinheiros ndash CEP 01452-919 11 3039-2000 wwwstefaninicombr

Sun Microsystems Satildeo Paulo Rua Alexandre Dumas 2016 ndash CEP 04717-004 11 5187-2100 wwwsuncombr

Sybase Brasil Satildeo Paulo Av Juscelino Kubitschek 510 9ordm andar Itaim Bibi ndash CEP 04543-000 11 3046-7388 wwwsybasecombr

The Source Satildeo Paulo Rua Marquecircs de Abrantes 203 ndash Chaacutecara Tatuapeacute ndash CEP 03060-020

11 6698-5090 wwwthesourcecombr

Unisys Brasil Ltda Satildeo Paulo R Alexandre Dumas 1658 ndash 6ordm 7ordm e 8ordm andares ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 3305-7000 wwwunisyscombr

Utah Satildeo Paulo Av Paulista 925 13ordm andar ndash Cerqueira Ceacutesar ndash CEP 01311-916 11 3145-5888 wwwutahcombr

Visuelles Satildeo Paulo Rua Eng Domicio Diele Pacheco e Silva 585 ndash Interlagos ndash CEP 04455-310

11 5614-1010 wwwvisuellescombr

Webnow Satildeo Paulo Av Naccedilotildees Unidas 12995 10ordm andar Ed Plaza Centenaacuterio ndash Chaacutecara Itaim ndash CEP 04578-000

11 5503-6510 wwwwebnowcombr

WRL Informaacutetica Ltda Satildeo Paulo Rua Santa Ifigecircnia 211213 Box 02ndash Centro ndash CEP 01207-001 11 3362-1334 wwwwrlcombr

Systech Taquaritinga Rua Satildeo Joseacute 1126 ndash Centro - Caixa Postal 71 ndash CEP 15900-000 16 3252-7308 wwwsystech-ltdcombr

2MI Tecnologia e Informaccedilatildeo Embu Rua Joseacute Bonifaacutecio 55 ndash Jd Independecircncia ndash SP CEP 06826-080 11 4203-3937 www2micombr

Linuxlocal

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

80

SERVICcedil

OS

httpwwwlinuxmagazinecombr

Nerdson ndash Os quadrinhos mensais da Linux Magazine

Calendaacuterio de eventos

Evento Data Local Website

Campus Party 15 a 25 de janeiro Satildeo Paulo SP wwwcampus-partycombr

Bossa Conference 08 a 11 de marccediloPorto de Galinhas PE

wwwbossaconferenceorg

FISL 24 a 27 de junho Porto Alegre RS wwwfislsoftwarelivreorg

Interop 02 e 03 de setembro Satildeo Paulo SP wwwinteropsaopaulocombr

Futurecom 2009 13 a 16 de outubro Satildeo Paulo SP wwwfuturecom2009combr

Iacutendice de anunciantes

Empresa Paacuteg

Campus Party 02

Plusserver 07

Insigne 09

UOL 11

Xandros 13

Impacta 15

Linux Pro 33

Pocket Pro 43

Linuz Technical Review 71

Site LNM 77

Guia de TI 81

Bull 83

Ubiquiti 84

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

82 httpwwwlinuxmagazinecombr

Na Linux Magazine 51

PREVIE

W

Na EasyLinux 14 Monitores gigantes Os monitores LCD de 19 polegadas jaacute tecircm preccedilos bem melhores que haacute um ano Seraacute que jaacute chegou o momento de vocecirc comprar aquele monitor cine-matograacutefi co Quais satildeo as vantagens e desvantagens

do LCD em relaccedilatildeo aos antigos monitores de tubo Ateacute onde 21 polegadas va-lem mais que 19 Na Easy Linux 14 vamos comparar marcas modelos e tecno-logias de monitores agrave ven-da no Brasil para orientar suas compras

A melhor parte de todos os sistemas Empresas como Apple e Micro-soft investem pesado em design para deixarem seus sistemas mais atraentes Como resultado tanto o Mac OS quanto o Windows Vista tecircm forte apelo visual Poreacutem engana-se quem pensa que eacute impossiacutevel alcanccedilar um grau de beleza semelhante no Linux Na Easy Linux 14 vamos mostrar o caminho das pedras para deixar seu Linux com a cara do Mac OS X do Vista e do Windows XP seja por pura diversatildeo ou para facilitar o uso do Linux por quem jaacute estaacute habituado a esses sistemas e tem difi culdade de adaptaccedilatildeo ao pinguumlim

DESTAQUE

Seguranccedila com VoIP Verdadeiros administra-dores pensam em segu-ranccedila o tempo inteiro Mesmo que vocecirc seja um usuaacuterio comum eacute importante saber o que os invasores podem fazer Serviccedilos que costumavam ser seguros se tornam brechas de seguranccedila a menos que vocecirc se mantenha atualizado com essas questotildees

Na Linux Magazine 51 vamos examinar algumas estrateacutegias de seguranccedila recomendadas por especialistas Vocecirc jamais teraacute a rede perfeita ou sequer as ferramentas perfeitas ndash o mundo da seguranccedila de redes muda a todo tempo ndash e como eacute impos-siacutevel descartar defi nitivamente os problemas eacute melhor man-ter-se informado

TUTORIAL

Defi cientes visuais O Linux possui muitos ambientes desktop be-liacutessimos incluindo cubos rotativos e janelas que balanccedilam e queimam Poreacutem considere por exemplo uma aacuterea de trabalho com iacutecones cuidadosamente organizados vocecirc conseguiria utilizaacute-la com o monitor desligado

Apesar das vaacuterias ofertas de softwares pro-prietaacuterios cariacutessimos para leitura da tela e teclados sofi sticados que realmente possibi-litam o uso do computador por defi cientes visuais a maioria das ferramentas e extensotildees necessaacuterias para usuaacuterios cegos ou com visatildeo prejudicada aleacutem daqueles com difi culdades motoras ou mentais jaacute estatildeo presentes nos re-positoacuterios da maioria das distribuiccedilotildees Linux Veja como o projeto Adriane une todos esses recursos num uacutenico sistema desktop destinado a defi cientes visuais

os invasores podem fazer

os invasores podem fazer

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRAacuteTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA AacuteREA p36

44 0708

R$ 1390 euro 750

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWWLINUXMAGAZINECOMBR

CASE ALFRESCO p26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p28Iniciada em Porto Alegre a temporada de seminaacuterios Linux Park de 2008

CEZAR TAURION p34O Coacutedigo Aberto como incentivo agrave inovaccedilatildeo

GOVERNANCcedilA COM

raquo O que dizem os profissionais certificados p24

raquo Cobit CMMI ITIL Quais as melhores praacuteticas p36

raquo ITIL na praacutetica p39

raquo Novidades do ITIL v3 p44

SEGURANCcedilA DNSSEC p69

Com o DNSSEC a resoluccedilatildeo de nomes fica protegida de ataques Mas seupreccedilo vale a pena

REDES IPV6 p64

Conheccedila as vantagens da nova versatildeo do Internet Protocol e veja por queeacute difiacutecil adotaacute-la

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo Relatoacuterios do Squid com o SARG p60

raquo Java Ruby e Rails conheccedila o JRuby on Rails p74

raquo Benchmarks do GCC 43 p58

raquo Becape de bancos de dados com a Libferris p46

raquo LPI niacutevel 2 Servidores NIS e DHCP p52

A REVISTA DO PROFISSIONAL DE TI

AS REDES ATUAIS SAtildeO AMBIENTES HETEROGEcircNEOSO BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p27

raquo Conecte o Linux agrave VPN do Windows p28

raquo MS AD e clientes Linux a soluccedilatildeo definitiva p34

raquo Linux como servidor RDP p40

raquo Agendamento de tarefas livre tambeacutem no Windows p44

Interoperabilidade

Linu

x M

agazin

e

50012009

INTEROPERABILIDADE

VPN

AD

RDP AGEN

DADOR DE TAREFAS BIOM

ETRIA OPEN

ID M

IDS GOOGLE CHARTS

HA POSTGRESQL TALEN

D

WWWLINUXMAGAZINECOMBR

50 Janeiro 2009

SANEADA PELO LINUX P22 Linux na Companhia de Aacuteguas do Maranhatildeo

LEI DOS CALL CENTERS P26 Edgar Silva mostra como a nova lei requer TI

BOCA NO TROMBONE P25 Maddog explica como fazer sua parte nas poliacuteticas puacuteblicas

SEGURANCcedilA BIOMETRIA p72

A autenticaccedilatildeo por impressatildeo digital jaacute eacute realidade Aprenda a implementaacute-la com um especialista

REDES OPENID p68

Uma uacutenica identidade para vaacuterios serviccedilos na Web Mas como fica a seguranccedila

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo MIDs seraacute que a moda pega p17

raquo Faccedila graacuteficos pelo Google p50

raquo HA e PostgreSQL uma oacutetima mistura p54

raquo ETL muito competente com o Talend p62

SUPORTANDO O VISTA

50 0109

R$ 1490 euro 750

9 771806 942009

0 0 0 5 0

copy Linux New Media do Brasil Editora Ltda

Page 7: Interoperabilidade SUPORTANDO O VISTA

7

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

8 httpwwwlinuxmagazinecombr

Pergunte ao Klaus

Klaus KnopperO professor Klaus responde as mais diversas duacutevidas dos leitores

Espaccedilo na telaHaacute uns dois anos eu comprei um PC bem baacutesico com chip graacutefico onboard Pluguei nele um moni-tor LCD de 19 polegadas (1280x1024) mas troquei-o por um de 22 polegadas (1680x1050) um ano de-pois No Centro de Controle do KDE selecionei a resoluccedilatildeo de 1680x1050 mas agora ele exibe e usa 1680x1200

Como meu monitor natildeo suporta essa resoluccedilatildeo eacute como se meu monitor estivesse ldquoflutuandordquo sobre a aacuterea de trabalho quando chego o mouse perto da base do monitor ele desliza a imagem para baixo mostrando a barra inferior do KDE e escondendo os 150 pixels laacute de cima

Eu gosto desse comportamento pois os progra-mas costumam ter seus menus na parte de cima da janela entatildeo eu natildeo preciso descer para a base com frequumlecircncia Aleacutem disso a base se torna um bom lo-cal para eu jogar janelas que natildeo quero visualizar no momento

Minha duacutevida eacute se essa nova configuraccedilatildeo eacute causa-da por um problema de driver ou se eu encontrei um recurso do Xorg que eacute comum mas pouco usado

Testei recentemente o Fedora 8 e ele reconhece automaticamente o tamanho do monitor Agraves vezes eu sinto falta dos 150 pixels de altura que sobram para baixo Existe alguma forma de recuperaacute-los

RespostaOs ldquo150 pixels ocultosrdquo de fato satildeo causados por

um recurso do servidor X Se o tamanho da tela for configurado como 1680x1050 o Xorg entraraacute no modo de deslizamento (scrolling mode)

Novas versotildees do Xorg substituem esse recurso pela alteraccedilatildeo da resoluccedilatildeo da aacuterea de trabalho usando a extensatildeo randr A vantagem eacute que a aacuterea de trabalho ajusta seu tamanho automaticamente ao se alterar a resoluccedilatildeo

Aleacutem disso alternar entre diferentes dispositivos de saiacuteda eacute mais faacutecil (por exemplo conectar um projetor com uma resoluccedilatildeo diferente ou usar no monitor interno a resoluccedilatildeo do externo) O Xorg carrega automaticamente a extensatildeo randr e depois

as configuraccedilotildees de Modes no arquivo etcX11xorgconf satildeo ignoradas em favor do que o monitor especifica como resoluccedilatildeo favorita

Eacute possiacutevel fazer o Xorg alterar sua resoluccedilatildeo dinami-camente usando o krandtray (no KDE) ou o comando xrandr (na linha de comando) Por exemplo

xrandr --output LVDS --auto

tentaraacute alinhar automaticamente a resoluccedilatildeo do servidor X agrave do monitor enquanto

xrandr --output LVDS --mode 800x600

ou

xrandr --output LVDS -s 800x600

usaraacute o modo ou resoluccedilatildeo para o tamanho de 800x600 especificado no comando o que tambeacutem faz certos ambientes desktop adotarem um tama-nho de tela diferente

xrandr --output VGA --auto

deve ativar a porta VGA externa de um notebook e tambeacutem fazer o desktop adotar a resoluccedilatildeo preferida do monitor ou projetor ligado a essa porta

No seu caso para retornar ao comportamento original com 150 pixels ldquosobrandordquo (desativando o randr no Xorg) basta adicionar a seguinte seccedilatildeo ao seu arquivo etcX11xorgconf

Section ldquoServerFlagsrdquo Option ldquoRandRrdquo ldquofalserdquoEndSection

CO

LU

NA

Escreva para o KlausEnvie suas perguntas em portuguecircs ou inglecircs para klauslinuxmagazinecombr e tire todas as suas duacutevidas

Linux Magazine 50 | Janeiro de 2009

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

9

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

10 httpwwwlinuxmagazinecombr

Siege

Charly Kuumlhnast O cerco a Troacuteia durou dez anos e terminou somente quanto Ulisses introduziu um cavalo de madeira dentro da cidade Charly tambeacutem estaacute planejando um cerco e o alvo eacute seu proacuteprio servidor web Naturalmente ele natildeo tem dez anos para completar essa tarefa nem Ulisses como parte de sua equipe

Estava checando meu servidor Apache e me lembrei do mito do monstro marinho Cila que deu cabo de nada menos que seis ho-

mens de Ulisses voltando de Troacuteia a caminho de casa O moacutedulo de multi-processamento ndash MPM worker ndash do meu servidor tambeacutem eacute capaz de devo-rar muacuteltiplas requisiccedilotildees numa talagada soacute mas ateacute onde ele aguumlenta Quantas threads eu preciso con-fi gurar para conseguir que ele entregue o maacuteximo de desempenho E a partir de quantas threads isso se torna um desperdiacutecio

Teste de carga Usando a ferramenta de ataque Siege [1] vou tentar responder essas questotildees por meio de um teste de car-ga O programa contempla dois modos de ataque o primeiro simula o comportamento de um ser humano navegando na Internet o que explica o intervalo de trecircs segundos entre cada dois acessos No segundo conhecido como modo benchmark esses intervalos satildeo eliminados e a ferramenta faz solicitaccedilotildees ao servidor ininterruptamente Para fazer o servidor ldquosuarrdquo o Sie-ge dispotildee de um exeacutercito de usuaacuterios de contingente confi guraacutevel ndash dez por padratildeo mas eacute possiacutevel usar o paracircmetro a seguir para aumentar o tamanho da tro-pa ateacute que o servidor web peccedila misericoacuterdia e nossos agressores consumam todos os recursos do sistema

--concurrent=ltnuacutemerogt

Como entrar em Troacuteia Como o Siege sabe qual servidor atacar Haacute duas opccedilotildees para isso o paracircmetro

--url=rdquohttpltmeusitecomgtltindexhtmlgtrdquo permite que vocecirc forneccedila a URL que o programa solicitaraacute repetidamente Jaacute a opccedilatildeo

--file=rdquohomecharlysiege-urlstxtrdquo

eacute mais interessante pois permite a criaccedilatildeo de uma sequumlecircncia arbitrariamente longa de endereccedilos web para o Siege atacar O parametro --reps=ltnuacutemerogt permite especifi car quantas vezes o programa deveraacute repetir o teste de carga

Tambeacutem eacute possiacutevel usar o paracircmetro --internet para dizer ao Siege para natildeo realizar as requisiccedilotildees na ordem especifi cada no arquivo siege-urlstxt mas fazecirc-lo de maneira aleatoacuteria o que eacute muito mais proacuteximo da realidade

Fim da batalha Para evitar que o teste de carga se estenda indefi nida-mente eacute prudente utilizar o paracircmetro --time para limitar seu tempo de execuccedilatildeo O ataque cessaraacute ao fi nal do tempo indicado mesmo que a quantidade de execuccedilotildees especifi cada pelo paracircmetro --rep ainda natildeo tenha sido atingida

Apoacutes sua execuccedilatildeo ter sido completada o Siege mostra um resumo dos resultados encontrados (veja a fi gura 1 )

CO

LU

NA

Mais informaccedilotildees

[1] Siege httpwwwjoedogorgJoeDogSiege

Figura 1 Apoacutes a batalha contra o servidor web o Siege apresenta os resultados

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

11

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

Gab

arit

o

Soluccedilatildeo faacutecil e descomplicada para empresas de qualquer tamanho colocarem seus produtos agrave venda na internet

R$4900

por mecircs

a partir de

senhorlojasimplesindd 1 121008 110411 AM

copy Linux New Media do Brasil Editora Ltda

12 httpwwwlinuxmagazinecombr

Crocircnicas do kernel

Zack BrownOs acontecimentos mais recentes na histoacuteria do kernel

Erradicaccedilatildeo do Big LockFrederic Weisbecker criou o Big Kernel Lock Tracer (rastreador do Big Lock ndash grande bloqueio ndash do ker-nel) que rastreia os tempos de atraso causados pelo Big Kernel Lock ou BKL Isso pode ajudar a iden-tificar aacutereas especiacuteficas nas quais o BKL deveria ser eliminado primeiro Linus Torvalds sugeriu livrar-se do BKL e substituiacute-lo por estruturas de bloqueio mais simples Entretanto nem todas as situaccedilotildees podem ser resolvidas com um bloqueio geneacuterico e o coacute-digo de bloqueio estaacute espalhado por todo o kernel o que dificulta qualquer tipo de esforccedilo conjunto Uma tentativa no momento eacute ldquoempurrarrdquo todo o

coacutedigo do BKL para sua proacutepria parte da aacutervore do kernel para centralizaacute-lo de forma a trataacute-lo de uma soacute vez Os participantes de todo o espectro do desen-volvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho A ferramenta de Frederic pode ajudar os desenvolvedores a concentrar sua atenccedilatildeo em aacutereas que beneficiariam a maioria

Redefinindo Load AverageSena Senerviratne e David Levy estatildeo preparando algumas mudanccedilas para o caacutelculo do valor de load average (carga meacutedia) no Linux Sua ideacuteia eacute em vez de calcular apenas um uacutenico nuacutemero para re-presentar toda a carga meacutedia do sistema fornecer muacuteltiplas estatiacutesticas Por exemplo eles querem separar do resto do sistema a carga de IO de disco

para visualizarem esse dado independentemente Aleacutem disso desejam ativar o caacutelculo de load avera-ge por usuaacuterio para que cada usuaacuterio visualize os efeitos sobre o seu sistema Arjan van de Ven pediu encarecidamente que eles apenas acrescentem esta-tiacutesticas sem alterar o comportamento dos nuacutemeros que o sistema jaacute produz

MantenedoresTheodore (Ted) Y Tsrsquoo atualizou o arquivo MAINTAINERS listando-se como mantenedor do sistema de arquivos Ext4 no lugar de Andrew Morton e Stephen Tweedie embora isso natildeo represente uma mudanccedila real de man-tenedor De acordo com Ted a entrada originalmente foi simplesmente copiada daquela do Ext3 e jamais foi precisa o que seu patch agora corrigiu

Um detalhe interessante eacute que embora Andreas Dilger natildeo esteja incluiacutedo como co-mantenedor no patch de Ted a lista de emails para submissatildeo de patches relatoacuterios de bug etc inclui o email de Andreas junto com o de Ted O email de Andreas tambeacutem estaacute listado junto com o de Andrew e Ste-phen na entrada original equivocada Geralmente isso significaria que ele dedica muito trabalho ao projeto e pode atuar como ldquotenenterdquo de Ted da mesma forma que Linus Torvalds confia em seus ldquotenentesrdquo para facilitar seu trabalho de inclusatildeo de coacutedigos no kernel

Mike Frysinger postou um patch para o arquivo MAINTAINERS listando a si mesmo e Subrata Modak como co-mantenedores do LTP (Linux Test Project) Esse projeto patrocinado pela SGI e IBM oferece um conjunto de aproximadamente 3 mil testes para avaliar a confiabilidade robustez e estabilidade do sistema operacional Linux

CO

LU

NA

Sobre o autorA lista de discussatildeo Linux-kernel eacute o nuacutecleo das atividades de desenvolvimento do ker-nel Zack Brown consegue se perder nesse oceano de mensagens e extrair significado Sua newsletter Kernel Traffic esteve em ativi-dade de 1999 a 2005

Os participantes de todo o espectro do desenvolvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho

copy Linux New Media do Brasil Editora Ltda

13

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

O Scalix eacute uma soluccedilatildeo completa para mensagens que suporta muacuteltiplos servidores e atende agraves necessidades de sua empresa Natildeo importa otamanho dela Baseia-se em uma Plataforma Colaborativa que serve de fundaccedilatildeo para todas as ediccedilotildees desse produto

Maiores informaccedilotildees wwwsentegritycombr EUA 646-747-7648 | Satildeo Paulo 11 5105-9037 | Rio de Janeiro 21 2526-7262

Reduza os custos de comunicaccedilatildeo usando Scalix

copy Linux New Media do Brasil Editora Ltda

14 httpwwwlinuxmagazinecombr

A quarta geraccedilatildeo dos rootkits se baseia no hardware e eacute quase indetectaacutevel

InseguranccedilaAnalisamos a histoacuteria dos rootkits incluindo a sua mais nova encarnaccedilatildeo o DR RootKitpor Kurt Seifried

Originalmente eu pretendia escrever um artigo sobre o estado da arte dos rootkits

e as ferramentas que poderiam ser usadas para detectaacute-los Foi aiacute que acabei topando com um problemi-nha os rootkits mais avanccedilados e modernos tendem a ser realmente bons em evitar sua detecccedilatildeo Com ldquorealmente bonsrdquo quero dizer que seraacute improvaacutevel para qualquer um detectaacute-los a menos que se lance matildeo de teacutecnicas como a anaacutelise detalhada de uma coacutepia (dump) da memoacuteria por exemplo comparan-do-se a partir daiacute a imagem real do kernel carregada na memoacuteria com aquela que seria de se esperar

Liccedilotildees histoacutericasRootkits tradicionais satildeo programas simples geralmente rodando como um serviccedilo isolado e fornecendo aces-so a uma backdoor Eles satildeo relativa-mente faacuteceis de detectar bastando para isso procurar novos processos ou programas recentemente instalados Isso levou os agressores a comeccedilar a sobrescrever os programas executaacuteveis do sistema Via de regra esses pro-gramas satildeo substituiacutedos por versotildees modificadas pelo agressor tais como versotildees do OpenSSH com nome e senha do administrador embutidas diretamente no programa com o intuito de escalar privileacutegios e obter direitos de root no sistema O adven-to de ferramentas como o Tripwire e o uso cada vez mais comum de gerenciadores de pacotes com a ca-

pacidade de verificar a integridade dos arquivos instalados no sistema ndash tais como rpm e dpkg ndash acabou por facilitar a detecccedilatildeo desse tipo de rootkit tambeacutem [1]

Rootkits para o kernelNatildeo demorou muito para que os agressores percebessem que meacuteto-dos mais sofisticados de ocultaccedilatildeo e subversatildeo eram necessaacuterios para controlar um sistema o que levou agrave criaccedilatildeo de rootkits para o kernel Assim ao modificar a tabela de ca-madas do sistema um agressor pode evitar facilmente a sua detecccedilatildeo pois em poucas palavras ele controla o que eacute exibido e como seus programas estatildeo sendo executados

Tradicionalmente um agressor usa um dos dois meacutetodos para modificar o kernel do sistema ou ele carrega um moacutedulo com coacutedigo malicioso no kernel (como o heroin por exemplo) ou modifica o kernel carregado na memoacuteria escrevendo no dispositivo especial devkmem (como o SucKIT por exemplo) A desvantagem dessa teacutecnica eacute que como esses ataques estatildeo carregados apenas na memoacuteria do sistema normalmente natildeo sobre-vivem a uma reinicializaccedilatildeo

Por mais difiacutecil que possa parecer esses rootkits podem ser detectados comparando-se a tabela atual de cha-madas do sistema com a que seria de se esperar originalmente (isto eacute examinando-se o arquivo Systemmap) Coacutepias da memoacuteria do sistema po-dem ser feitas e usadas para verificar

se o kernel carregado na memoacuteria estaacute intacto

Quando chegam a esse niacutevel o que vocecirc acha que os agressores fazem Vatildeo mais fundo ainda claro

Hardware e virtualizaccedilatildeoLanccedilado em 2006 durante a Black Hat Conference em Las Vegas o primeiro rootkit desenvolvido para comprometer diretamente o hardware foi chamado de Blue Pill [2] Os processadores mo-dernos da AMD e da Intel dispotildeem de uma gama de recursos para suportar virtualizaccedilatildeo de sistemas operacionais E como natildeo eacute mais necessaacuterio que esses rootkits modifiquem o que quer que seja no sistema operacional para funcionar eles satildeo muito mais difiacuteceis de detec-tar de modo que somente verificar a integridade da tabela de chamadas do sistema natildeo vai funcionar Contudo esses rootkits modificam a tabela de descritores de interrupccedilatildeo (IDT na sigla em inglecircs) que eacute mantida em um dos registradores do processador (o IDTR) [3]

Como passam a existir dois IDTRs no sistema comprometido ndash um real e outro falso que eacute apresentado ao sistema operacional ndash este uacuteltimo vai ocupar uma posiccedilatildeo de memoacuteria diferente da de costume Felizmente a instruccedilatildeo privilegiada Store Inter-rupt Descriptor Table (SIDT) pode ser executada a partir do espaccedilo de usuaacuterio do sistema retornando de forma confiaacutevel o conteuacutedo do IDTR

CO

LU

NA

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

15Linux Magazine 50 | Janeiro de 2009

disponiacutevel para o sistema operacional (o que natildeo serve para muita coisa pois o sistema jaacute foi comprometi-do) bem como ndash e o que eacute mais importante ndash a posiccedilatildeo da memoacuteria em que o IDTR se encontra Pare-ce que chegamos a um beco sem saiacuteda os agressores criaram novos meacutetodos para esconder os rootkits e os defensores encontraram meios para detectaacute-los

A nova geraccedilatildeo de rootkitsLanccedilados em setembro de 2008 pela Immunity Inc o DR RootKit [4] im-plementa ldquoganchosrdquo (hooks) para as chamadas de sistema no kernel Linux 26 sem modificar nem a tabela de chamadas do sistema nem a tabela de descritores de interrupccedilatildeo Para fazer isso ele introduz breakpoints de hardware no manipulador de chamadas do sistema Isso corres-

ponde agrave inclusatildeo de um ldquovigiardquo na memoacuteria da tabela de chamadas do sistema especificamente observando a entrada __NR_syscall usada para exportar nuacutemeros de chamadas do sistema Basicamente o rookit se comporta como uma ferramenta de depuraccedilatildeo de programas espe-rando que determinadas chamadas do sistema sejam executadas e mo-

dificando-as quando isso acontece Os ganchos do DR RootKit estatildeo listados na tabela 1

O DR RootKit dispotildee de recursos tais como ocultaccedilatildeo de processos e prevenccedilatildeo do teacutermino de execuccedilatildeo de processos ocultos (o que significa que um agressor pode executar pro-gramas ocultos e vocecirc natildeo tem como terminaacute-los com o comando kill

Tabela 1 Chamadas do sistema

getdents64 Lecirc entradas de diretoacuterio

getdents Lecirc entradas de diretoacuterio

chdir Muda o diretoacuterio de trabalho

open Abre um arquivo ou dispositivo

execve Executa um programa

socketcall Chamadas de sistema via socket

fork Cria um processo filho

exit Encerra o processo atual

kill Envia um sinal a um processo

getpriority Obteacutem prioridade de escalonamento para um programa

| COLUNAInseguranccedila

copy Linux New Media do Brasil Editora Ltda

16 httpwwwlinuxmagazinecombr

Mais informaccedilotildees

[1] Amir Alsbih ldquoPassagem Secreta Teacutecnicas de criaccedilatildeo de backdoorsrdquo httpwwwlinuxmagazinecombrarticlepassagem_secreta

[2] Blue Pill httpbluepillprojectorg

[3] Red Pill httpwwwinvisiblethingsorgpapersredpillhtml

[4] DR RootKit httpwwwimmunityinccomresources-freesoftwareshtml

[5] Core Security Technologies httpwwwcoresecuritycom

mesmo que vocecirc consiga descobrir a identidade ndash o ID ndash do processo) Se vocecirc usar os exemplos forneci-dos com o pacote eacute relativamente simples estender e criar outras cha-madas de sistema modificadas Por exemplo vocecirc pode alterar o conjun-to de recursos disponiacuteveis para pro-cessos ndash o capset O proacuteprio rootkit eacute um moacutedulo carregaacutevel no kernel o que simplifica sua inserccedilatildeo em um sistema comprometido Poreacutem da mesma forma que acontece com outros rootkits residentes na memoacute-ria a reinicializaccedilatildeo do sistema iraacute removecirc-lo da memoacuteria

Se vocecirc quiser estender o rootkit pode por exemplo inserir suas proacuteprias chamadas do sistema personalizadas Forneci um exemplo para alterar a chamada de sistema exit Em poucas palavras o processo consiste em de-clarar seu proacuteprio gancho para alterar uma chamada de sistema e entatildeo im-plementar uma chamada de sistema customizada ndash isso eacute realmente simples O melhor lugar para comeccedilar eacute o coacute-digo-fonte do kernel ndash mais especifica-mente no subdiretoacuterio kernel onde a maioria das chamadas do sistema satildeo definidas Por exemplo se houver um sistema no qual os recursos em uso restringem o que programas podem ou natildeo fazer vocecirc pode simplesmen-te modificar a chamada de sistema do_sys_capset_other_tasks que sempre retorna todos os recursos de um ID de processo especiacutefico como

-2376 +2379 if (capable(CAP_SETPCAP))return -EPERM+ if (pid == 12345) magic process number + return cap_set_all_evil(effective inheritable permitted)

Como vocecirc pode notar mesmo a menor das modificaccedilotildees pode ter um efeito significativo Assim de uma hora para outra o processo

com o ID 12345 teraacute sempre todos os recursos o que permite a ele fa-zer praticamente tudo o que quiser Assim com apenas uma chamada de sistema um agressor pode criar uma backdoor eficiente

O uacutenico modo de detectar um rootkit desses eacute por meio da mediccedilatildeo de atrasos ou de condiccedilotildees de corri-da (race conditions) que sejam intro-duzidas pelo rootkit Se um rootkit estivesse presente o sistema deveria ficar mais lento do que de costume mas a mediccedilatildeo dessa variaccedilatildeo natildeo eacute uma tarefa simples Aleacutem disso o programa eacute relativamente simples e pode ser estendido facilmente de modo a se esconder de maneira mais eficiente e tornando sua detecccedilatildeo ainda mais difiacutecil

Abordagem alternativaClaro que vocecirc pode comprometer um sistema e manter o acesso de outras formas enquanto permanece escondido Uma outra empresa que desenvolve software de verificaccedilatildeo de invasatildeo chamada Core Security [5] adotou uma abordagem de injetar coacutedigo hostil em processos que jaacute te-nham sido atacados Por exemplo se vocecirc criar uma brecha no conhecido servidor web Apache conseguiraacute inje-tar coacutedigo nele que lhe garanta acesso remoto ao sistema Essa teacutecnica eacute algo limitado se comparada com um roo-tkit de kernel completo ou com um rootkit de hardware A desvantagem dessa teacutecnica satildeo os mecanismos de proteccedilatildeo do sistema operacional tais como o SELinux que permanecem capazes de forccedilar uma poliacutetica de seguranccedila Contudo para agressores obstinados isso natildeo costuma ser um problema muito seacuterio pois eles podem usar um exploit local para comprome-ter ainda mais o sistema ou mesmo permanecer dentro das condiccedilotildees impostas pela poliacutetica definida pelo SELinux mas ainda sim obter infor-maccedilotildees ou usar o sistema para realizar outros ataques maliciosos

ConclusatildeoA boa notiacutecia eacute que chegando agrave camada de hardware os agresso-res (pelo menos conceitualmente) atingiram a uacuteltima camada passiacute-vel de abuso A maacute notiacutecia eacute que um grande contingente de truques de hardware pode ser usado para manter o controle sobre um sistema comprometido Por exemplo uma placa de viacutedeo moderna tem acesso direto agrave memoacuteria (o que significa que ela pode fazer o que bem en-tender com a memoacuteria do sistema sem que o sistema operacional possa interferir significativamente no pro-cesso) dispotildee de memoacuteria proacutepria e de uma grande quantidade de poder de processamento (tanto que estatildeo sendo usadas por muitos para criar clusters de baixo custo) Placas mais modernas tecircm seu firmware arma-zenado em memoacuteria flash passiacutevel de atualizaccedilatildeo por software e eu natildeo tenho a miacutenima duacutevida de que algum dia algueacutem vai criar algum meacutetodo para abusar da placa de viacutedeo com o propoacutesito de controlar um sistema comprometido

COLUNA | Inseguranccedila

copy Linux New Media do Brasil Editora Ltda

17Linux Magazine 50 | Janeiro de 2009

COLUNA

MID mais um degrau na escadaria da mobilidade

Augusto CamposNem smartphone nem subnotebook os MIDs chegam como uma nova categoria para facilitar nossas vidas

Neste iniacutecio de 2009 tive a oportunidade de segurar em minhas matildeos um pedaccedilo do futuro do desktop Soacute que natildeo se tra-

tava propriamente de um desktop ou pelo menos natildeo daquele modelo que aprendemos a conhecer com uma infinidade de arquivos gravados em um disco riacutegido ao meu alcance um ambiente de trabalho cheio de aplicativos instalados local-mente e a ocupaccedilatildeo de uma vasta aacuterea em cima da escrivaninha

Natildeo era nem mesmo um daqueles notebooks pequeninos estilo Eee PC que foram se popula-rizando mundialmente ao longo de 2008 Era algo menor mais singelo mas com poder de processa-mento surpreendente um Aigo MID equipamento do qual provavelmente vocecirc ainda natildeo ouviu falar ndash ateacute porque ele parece estar bem distante do nosso mercado neste momento

Os MIDs ou Mobile Internet Devices satildeo dis-positivos que parecem ficar entre os smartphones e os subnotebooks de hoje Como em uma cadeia darwiniana eu ateacute apostaria que os mais bem-suce-didos entre eles vatildeo acabar ficando no nicho exato que hoje eacute ocupado por um destes dois extremos (os smartphones ou os subnotebooks) ateacute mesmo porque essas fronteiras vatildeo ficando cada vez mais difusas com o passar do tempo Mas hoje eles satildeo uma categoria agrave parte e torccedilo para que suas carac-teriacutesticas e possibilidades sejam logo herdadas pelos celulares (ou pelos subnotebooks)

O equipamento com o qual tive oportunidade de brincar um pouco tem caracteriacutesticas de um PC de pequeniacutessimo porte com um display sufi-cientemente grande para mostrar os sites da web 20 nossos de cada dia um teclado escamoteaacutevel cacircmera microfone e acesso a redes Wi-Fi Alguns modelos tecircm acesso agrave conectividade via redes mais amplas (CDMA 3G etc) mas natildeo eacute o caso do meu E eles permitem fazer o que eu mais faccedilo no meu desktop diariamente acessar a web comuni-car-me por IM VoIP e email consultar (ou editar levemente) documentos e textos e ateacute digitar esta coluna que vocecirc estaacute lendo

E o mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres como o Firefox e o Pidgin entre vaacuterios outros E nem eacute soacute pela questatildeo do custo de aquisiccedilatildeo esses aplicativos livres satildeo leves por natureza e ainda podem ser alterados de acordo com as especificaccedilotildees do aparelho no qual seratildeo distribuiacute-dos seja para ocupar menos disco preencher menos memoacuteria RAM ou mesmo gastar menos bateria

Hoje o acesso agrave Web eacute cada vez mais uma condiccedilatildeo para que eu possa desempenhar bem as minhas ativi-dades e quanto mais rico esse acesso melhor a cada dia eacute necessaacuterio interagir digitar textos captar imagens comunicar-se por viacutedeo e voz conectar-se a redes de

variadas tecnologias abertas Acredito que em algum momento os celulares vatildeo estar aptos a prover com con-forto e economia esses recursos e que vatildeo estar rodando um sistema operacional livre quando o fizerem

Enquanto esse dia natildeo chega eacute interessante ver como a induacutestria avanccedila nesta direccedilatildeo por vias obliacute-quas que convergem em uma direccedilatildeo que muito nos interessa softwares livres conectando-se a pro-tocolos abertos e provendo serviccedilos que facilitam as nossas vidas

COLUNA

Sobre o autorAugusto Ceacutesar Campos eacute administrador de TI e desde 1996 manteacutem o site BR-linuxorg que cobre a cena do Software Li-vre no Brasil e no mundo

O mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres

copy Linux New Media do Brasil Editora Ltda

18

NO

TIacuteC

IAS

httpwwwlinuxmagazinecombr

Xen ganha recursos e promete integraccedilatildeoKeir Fraser da Xensource (atualmente Citrix) anunciou na lista xen-devel a disponibilidade de uma aacutervore com o coacutedigo-fonte para criaccedilatildeo de um dom0 completo do Xen no kernel Linux 2627

Segundo Keir ldquoa intenccedilatildeo eacute fornecer uma aacutervore uacutenica para desenvolvimento e testes voltada aos desenvolvedores que pre-cisarem de um kernel 26 mais modernordquo e menciona o geren-ciamento de energia como um dos motivos para isso

O porte da funcionalidade de dom0 do Xen para o Linux atu-almente depende da implementaccedilatildeo final das pv_ops (operaccedilotildees para-virtualizadas) um conjunto de ldquoganchos de coacutedigordquo (hooks) no kernel que permitem sua operaccedilatildeo mediante o uso da teacutecnica de para-virtualizaccedilatildeo Atualmente o escopo de funcionalidade das pv_ops permite apenas o funcionamento do Linux como

Alta disponibilidadeManter a sincronizaccedilatildeo perfeita de muacuteltiplos servidores Xen cada um com diversas maacutequinas virtuais natildeo eacute tarefa das mais faacuteceis Atualmente eacute preciso replicar arquivos de configuraccedilatildeo entre os servidores e manter sincronizado todo o restante da estrutura

Felizmente tudo isso pode mudar para melhor com o projeto Kemari Trata-se de um software de coacutedigo aberto (GPL) descrito por seus autores como ldquoum mecanismo de coacutedigo aberto para sin-cronizaccedilatildeo de maacutequinas virtuais para toleracircncia a falhas Oferece uma teacutecnica utilizaacutevel para toleracircncia a falhas que natildeo requer o uso de hardware especiacutefico ou a modificaccedilatildeo dos aplicativos ou sistema operacionalrdquo

Lanccedilado o Fedora 10Seis meses apoacutes o lanccedilamento do Fedora 9 o projeto livre lanccedilou a versatildeo 10 da popular distribuiccedilatildeo Linux codinome Cambridge

O Fedora 10 usa o kernel Linux 26275 anunciado no uacuteltimo dia 7 O projeto tambeacutem estaacute buscando trazer seus softwares a um novo niacutevel e ele inclui o OpenOfficeorg 30 Gnome 2241 Eclipse 34 e RPM 46 O produto promete um melhor gerenciamento de impressoras e alguns interessantes recursos de vir-tualizaccedilatildeo No momento o KVM estaacute disponiacutevel por padratildeo no Fedora 10 na versatildeo 74-5 (no Fedora 9 o KVM era apenas uma opccedilatildeo) Certamente a aquisiccedilatildeo da Qumranet criadora e desenvolvedora do KVM pela Red Hat patrocinadora do Fedora tem grande influecircncia nisso No entanto o uso do KVM natildeo implica a rejeiccedilatildeo do ldquoconcorrenterdquo Xen o hypervisor tradicional estaacute presente na versatildeo 330-1 As ferramentas de virtualizaccedilatildeo de criaccedilatildeo do proacuteprio Fedora como a libvirt e o virt-manager tambeacutem estatildeo incluiacutedas

Outra importante novidade do Fedora 10 eacute seu tempo de inicializaccedilatildeo que foi reduzido graccedilas ao novo sistema graacutefico de inicializaccedilatildeo Plymouth

domU (ou seja como maacutequina virtual) enquanto o kernel do dom0 ainda eacute res-trito agrave versatildeo 2618 do Linux

A expectativa eacute que os desenvolvedores da Novell que estatildeo trabalhando nessa ta-refa consigam incrementar as pv_ops de forma a permitir seu uso tambeacutem como dom0 o que permitiria o uso de versotildees mais recentes do kernel Linux (com to-das as vantagens que trazem) no dom0 Posteriormente as novas pv_ops tambeacutem devem ser incluiacutedas na aacutervore principal do kernel unindo definitivamente os projetos Xen e Linux

O objetivo do projeto eacute ldquomanter as maacute-quinas virtuais rodando transparentemente em caso de falhas de hardwarerdquo Para isso ele ldquotransfere o estado da maacutequina virtual primaacuteria para a secundaacuteria quando a pri-maacuteria estaacute prestes a enviar um evento para dispositivos como armazenamento e rederdquo como descreve o anuacutencio do projeto

Espera-se que o Kemari seja integra-do ao Xen 34 a proacutexima versatildeo estaacutevel do popular sistema de virtualizaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

O Linux Professional Institute ndash oacutergatildeo responsaacutevel pela certificaccedilatildeo em Linux que mais cresce no mundo ndash realizou no Brasil a primeira aplicaccedilatildeo das provas 303 Elas correspon-dem agrave categoria especialista do niacutevel 3 da certificaccedilatildeo e qualificam o profissional aprovado como ldquoSecurity Specialistrdquo As provas (grauitas) ocorreram na cidade de Satildeo Paulo no dia 20 de dezembro de 2008

O Programa de Certificaccedilatildeo LPI eacute composto por dois niacuteveis baacutesicos com duas provas cada um As provas do niacutevel 1 (101 e 102) certificam o profissional como ldquoAdministrador Linux Juacuteniorrdquo e as do niacutevel 2 (201 e 202) como ldquoAdministrador Linux Plenordquo

O niacutevel 3 da certificaccedilatildeo LPI eacute focado no mercado corporativo O profissional precisa se certificar obrigatoria-mente na prova 301 (Core) e depois escolher uma das especialidades disponiacuteveis Atualmente a uacutenica disponiacutevel eacute a prova 302 (Mixed Environment) para profissionais que queiram se especializar em interoperabilidade em ambientes mistos (Linux Unix Netware e Windows) A prova lsquo303 - Securityrsquo eacute a segunda especialidade a ser lanccedilada pelo LPI A prova 303 estaacute sendo realizada em caraacuteter de teste antes de ser lanccedilada oficialmente

19

Xen ganha recursos e promete integraccedilatildeo

Linux Magazine 50 | Janeiro de 2009

Gerais | NOTIacuteCIAS

LPI lanccedila provas 303 no Brasil

Google Android no Openmoko Linux versus OpenSolaris e FreeBSD

O site dedicado a Software Livre e hard-ware Phoronix publicou um comparativo de velocidade (benchmark) na realizaccedilatildeo de diversas tarefas entre os sistemas ope-racionais mais famosos baseados em ker-nels de coacutedigo aberto Ubuntu OpenSolaris e FreeBSD

Os testes utilizaram a versatildeo instaacutevel de 64 bits mais recente de cada um dos sistemas (com exceccedilatildeo do Ubuntu cuja versatildeo foi a 810 final) e se basearam no proacuteprio pacote de benchmarks de coacutedigo aberto desenvol-vido pela equipe do Phoronix (e em raacutepida evoluccedilatildeo) o Phoronix Test Suite

Os autores concluem o artigo decla-rando o Ubuntu 810 como vencedor no desempenho mas o representante do ker-nel Linux natildeo foi o campeatildeo em todas as categorias venceu em oito dos 18 testes contra sete vitoacuterias do OpenSolaris e trecircs do FreeBSD

Poucos dias depois os autores retornaram ao ambiente de testes e fizeram o compara-tivo entre o tambeacutem recente Ubuntu 810 e o Fedora

Foram usadas as versotildees de 32 e 64 bits de ambos os sistemas e os testes empregados foram os mesmos do benchmark anterior com o Phoronix Test Suite

O resultado dessa comparaccedilatildeo no entan-to natildeo foi conclusivo as distribuiccedilotildees Linux se saiacuteram praticamente igual com respeito ao desempenho nos testes

Institute

LinuxProfessional

R

A Koolu empresa canadense especializada no desenvolvimento de soluccedilotildees de tecnologia ambientalmente corretas disponibili-zou o coacutedigo-fonte da plataforma Android do Google adaptado ao telefone Openmoko FreeRunner cujo desenvolvimento contou com esforccedilo e total colaboraccedilatildeo da comunidade internacional do Software Livre

O anuacutencio foi realizado no IP Communications Brasil 2008 evento internacional sobre comunicaccedilotildees IP por Jon lsquomaddogrsquo Hall CTO da Koolu e Denis Galvatildeo presidente da paranaense iSolve Durante o evento tambeacutem foi anunciado o acordo nome-ando a iSolve como canal master de distribuiccedilatildeo do Openmoko FreeRunner no Brasil

O Android foi lanccedilado como um software livre no final de outu-bro de 2008 poreacutem muito trabalho precisou ser realizado para que esse coacutedigo pudesse funcionar em telefones de outros fabricantes O FreeRunner telefone com design aberto desenvolvido pela empresa taiwanesa Openmoko demandou uma seacuterie de alteraccedilotildees no coacutedigo-fonte do Android para que ele pudesse fun-cionar corretamente A comunidade de Software Li-vre com ajuda de vaacuterias pessoas ao redor do mundo realizou as implementaccedilotildees necessaacuterias e tornou possiacutevel a execuccedilatildeo do Android no FreeRunner

ldquoAgora que o coacutedigo-fonte jaacute estaacute rodando no FreeRunner es-peramos que os retoques finais estejam prontos rapidamenterdquo dis-se Brian Code diretor teacutecnico da Koolu ldquoA criaccedilatildeo do ambiente para compilaccedilatildeo (toolchain) a criaccedilatildeo dos patches necessaacuterios para tornar o coacutedigo compatiacutevel com o telefone e a documentaccedilatildeo de todo o passo-a-passo do processo de construccedilatildeo do software toma-ram um bom tempo mas agora estaacute mais faacutecil para a comunidade do Software Livre desenvolver e realizar modificaccedilotildees nessa pla-taforma Como um exemplo as aplicaccedilotildees moacuteveis Google Apps bem como outra aplicaccedilotildees corporativas podem ser instaladas e otimizadas para essa plataformardquo

copy Linux New Media do Brasil Editora Ltda

20

CO

RP

OR

ATE

httpwwwlinuxmagazinecombr

ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

Keith Curtis funcionaacuterio por vaacuterios anos da Microsoft conclui em seu livro receacutem-lanccedilado que o futuro do software estaacute no modelo de desenvolvimento de coacutedigo aberto Curtis trabalhou para a Microsoft como de-senvolvedor de software de 1993 a 2004 tendo participado do desenvolvimento dos produtos para bancos de dados da empresa bem como na programaccedilatildeo do Windows do Office e do MSN entre outros No final de 2008 ele publicou o livro intitulado ldquoAfter the Software Warsrdquo (Depois das Guerras do Software) que descreve o processo de produccedilatildeo de software do ponto de vista de um desenvolvedor analisa os possiacuteveis avanccedilos nesse processo no futuro e aborda desde toacutepicos como inteligecircncia artificial culminando no desenvolvimento de sistemas que possibilitem viagens espaciais

A ediccedilatildeo online do The New York Times fez uma resenha do livro e relatou a nova trajetoacuteria do ex-funcio-naacuterio da gigante de Redmond ldquoPara o Sr Curtis a forccedila do software de coacutedigo aberto e o motivo pelo qual esse eacute o modelo de desenvolvimento do futuro estatildeo no fato de que por meio deste a inteligecircncia coletiva eacute estimuladardquo Segundo Curtis ldquoas diferenccedilas entre Software Livre e software natildeo-livre ou proprietaacuterio satildeo comparaacuteveis agraves diferenccedilas existentes entre ciecircncia e alquimia Antes de a ciecircncia se estabelecer havia apenas alquimia na qual as pessoas tentavam proteger suas ideacuteias pois elas desejavam dominar o mercado desenvol-vendo um processo para transformar chumbo em ourordquo

Curtis publicou seu livro usando a plataforma lulucom cujo fundador e diretor executivo eacute Bob Young veterano da cena Open Source e ex-CEO da Red Hat

Sun lanccedila MySQL 51Na nova versatildeo do banco de dados de coacute-digo aberto os desenvolvedores se concen-traram no desempenho o que aumentou a velocidade do programa em surpreendentes 15 Entre as novidades haacute cinco novos meacutetodos de particionamento horizontal range hash key list e composite Outros recursos novos satildeo a replicaccedilatildeo hiacutebrida e o agendador de eventos (event scheduler) que permite a automatizaccedilatildeo de tarefas SQL repetitivas

Os sistemas operacionais suportados satildeo Red Hat Enterprise Linux Suse Linux En-terprise Windows Mac OS X FreeBSD HP-UX IBM AIX IBM i5OS e todas as distribuiccedilotildees Linux

A Sun disponibiliza trecircs versotildees do soft-ware para download Community Server sob a GPL Enterprise Server com base em subscriccedilatildeo (assinatura do serviccedilo) e Embedded Server esta com licenccedila co-mercial proprietaacuteria

MS Windows eacute mais econocircmicoA Microsoft fez de novo um estudo recente encomendado pela empresa ldquoconcluiurdquo que eacute mais barato para empresas usar o Win-dows como plataforma de software A revista australiana iTWire analisou o estudo e fez algumas descobertas interessantes

O que parece agrave primeira vista (com perdatildeo do trocadilho) ser uma histoacuteria de sucesso na realidade natildeo eacute mdash nem de longe em primeiro lugar natildeo haacute economia alguma O que haacute satildeo apenas estimativas da Microsoft segundo as quais a empresa britacircnica Speedy Hire deveraacute economizar 200 mil libras por ano em de-corriencia da utilizaccedilatildeo do Windows

A anaacutelise do estudo disponiacutevel em artigo no site australiano iTWirecom faz um raio-X da ldquoeconomiardquo sugerida pela em-presa de Bill Gates Elas comeccedilam pelo hardware jaacute que no projeto foram utilizados terminais leves para Windows mdash que seriam inexplicavelmente mais baratos do que aqueles equipados com Linux O estudo natildeo menciona nem ldquoen passantrdquo que haacute

alternativas bem mais baratas aos modelos V90 da empresa Wyse equipados com Windows como

os V50 preacute-carregados com Linux Nesse esti-lo o artigo vai revelando de onde vieram as ldquoreduccedilotildees de custordquo obtidas pela Microsoft que vatildeo transformam em vapor agrave medida que

prosseguimos na leitura Estamos curiosos para saber o que sobra da economia de 1 milhatildeo de

libras apoacutes os cinco anos

copy Linux New Media do Brasil Editora Ltda

21

Google e Red Hat firmam parceria

A Red Hat assinou em dezembro um acordo com o Google para trazer os principais de-senvolvedores da empresa para a plataforma de construccedilatildeo de aplicaccedilotildees web Google Web Tookit Com o acordo estabelece-se tambeacutem o suporte do servidor de aplicaccedilotildees da Red Hat o JBoss ao GWT

Aleacutem da assinatura do acordo a Red Hat tambeacutem anunciou que jaacute completou algumas integraccedilotildees preliminares entre o GWT e o JBoss Seam Framework Com a integraccedilatildeo a empresa alavanca o Seam para que os desen-volvedores possam combinar o poder do Java agraves modernas tecnologias view-layer como GWT RichFaces e Spring para desenvolver os Rich Internet Applications

Linux Magazine 50 | Janeiro de 2009

| CORPORATENotiacutecias

Insigne jaacute planeja 2012A fornecedora do Insigne Momentum 50 quer manter sua po-siccedilatildeo de lideranccedila no Brasil e conquistar novos mercados in-clusive no exterior O sucesso de sua participaccedilatildeo no projeto de inclusatildeo digital Computador para Todos fez com que a Insigne Free Software do Brasil conquistasse forte posiccedilatildeo de lideran-ccedila no mercado dos PC populares e tambeacutem ficasse conhecida em outros paiacuteses Esse cenaacuterio positivo lhe permitiu iniciar ne-gociaccedilotildees com fabricantes estrangeiros de PC para embarcar o Insigne Momentum 50 sistema operacional de coacutedigo aberto em microcomputadores fora das fronteiras nacionais

Para atingir a meta de manter seu crescimento perante a perspectiva de elevaccedilatildeo das vendas de PCs nos proacuteximos anos a empresa contratou o consultor de estrateacutegia e professor de engenharia Carlos Roberto Lopes As atividades envolvidas no planejamento estrateacutegico incluem uma seacuterie de workshops com todas as equipes e departamentos da Insigne O objetivo eacute coletar impressotildees dos colaboradores e lhes apresentar as mais recentes mudanccedilas ocorridas no mercado global incluindo a atual situaccedilatildeo econocircmica mundial que poderaacute alterar a correlaccedilatildeo de forccedilas entre os fornecedores de tecnologia nos proacuteximos anos

De acordo com Joatildeo Pereira da Silva Jr presidente da Insigne esse planejamento incluiraacute natildeo apenas o foco no seu cliente que eacute o usuaacuterio do PC popular mas tambeacutem em toda a sua equipe de profissionais envolvidos em todas as etapas de desenvolvimento de um sistema operacional de coacutedigo abertordquo

VMware adquire Tungsten GraphicsA VMware adquiriu por um valor natildeo revelado as operaccedilotildees da empresa Tungsten Graphics fundada em 2001 e motor por traacutes do desenvolvimento da implementa-ccedilatildeo de coacutedigo aberto do OpenGL no Linux a biblioteca Mesa 3D

Aleacutem da Mesa 3D a empresa tambeacutem desenvolve o Gallium 3D framework para desenvolvimento de drivers graacuteficos 3D A Tungsten Graphics eacute formada por um grupo de desenvolvedores de aplicativos graacuteficos de coacutedigo aberto Segundo a FAQ no site da empresa o desenvolvimento dos projetos de coacutedigo aberto encabeccedilados por ela continuaraacute agora como parte das atividades da equipe de engenharia da VMware A aquisiccedilatildeo teria como objetivo melhorar o suporte a graacuteficos 3D em ambientes virtualizados

Mandriva demite dois desenvolvedoresA situaccedilatildeo financeira da Mandriva parece estar ruim Em dezembro a empresa anunciou que ao final de 2008 terminaria o contrato de dois de seus funcionaacuterios Adam Williams (na praacutetica o Community Manager) e o mantenedor de pacotes Oden Eriksson

Os dois desenvolvedores escreveram para a lista de emails do Cooker (Adam Williams Oden Eriksson) Enquanto Adam Williams eacute considerado por muitos como a base da co-munidade do Mandriva Oden manteacutem aproximadamente 1200 pacotes principalmente na aacuterea de servidores incluindo todos os pacotes do stack LAMP

Entretanto a comunidade do Mandriva natildeo pretende esperar sentada a efetivaccedilatildeo dessa decisatildeo Jaacute haacute uma peticcedilatildeo para tentar convencer a empresa a manter pelo me-nos Williams

copy Linux New Media do Brasil Editora Ltda

22 httpwwwlinuxmagazinecombr

CO

RP

OR

ATE

Entrevista com Armstrong Lemos chefe do departamento de TI da CAEMA

Saneada pelo LinuxO Linux entrou com forccedila na Companhia de Aacuteguas e Esgotos do Maranhatildeo proporcionando economia e ganhos fundamentais para a sauacutede da empresa por Pablo Hess

A Companhia de Aacuteguas e Esgo-tos do Maranhatildeo (CAEMA) eacute uma sociedade de economia

mista com capital de investimento predominantemente do Estado do Maranhatildeo Fundada haacute 42 anos a CAEMA atua no fornecimento de aacutegua coleta e tratamento de esgotos Atua em 146 municiacutepios maranhenses com abastecimento de aacutegua sendo que somente em trecircs (Satildeo Luis Im-peratriz e Barreirinhas) faz a coleta de esgotosLinux Magazineraquo Como e por que a CAEMA comeccedilou a usar LinuxArmstrong Lemosraquo A CAEMA opera com deacuteficit de quase R$ 5 milhotildees por mecircs que satildeo repassados pelo governo do estado para comple-mentaccedilatildeo das despesas Isso muito se deve a sua funccedilatildeo social que eacute a de universalizaccedilatildeo do abastecimento de aacutegua no estado Natildeo eacute uma ati-vidade meramente econocircmica mas tambeacutem social

O sistema comercial jaacute foi bloque-ado por falta de pagamento Quanto mais a CAEMA ampliava sua rede de atendimento mais caro pagava pelo uso do sistema sendo que a empresa prestadora mantinha relaccedilatildeo de pou-ca paciecircncia com os atrasos no paga-mento que deveriam ser realizados no dia cinco de cada mecircs Como a

companhia possuiacutea e ainda possui di-ficuldades de arrecadaccedilatildeo esse prazo nem sempre era cumprido

Outros fatores aliados a esse contri-buiacuteram para que no iacutenicio da gestatildeo da atual diretoria se iniciasse um pro-cesso de diagnoacutestico geral da empresa Com esse estudo ficou clara a situa-ccedilatildeo em que se encontravam diversos setores estrateacutegicos da companhia entre eles o de informaacutetica

Tiacutenhamos um parque de aproxi-madamente 500 maacutequinas com vaacuterios problemas principalmente adwares spywares e viacuterus Havia ainda proble-mas de conectividade e processamento em fun-ccedilatildeo do Windows natildeo se adequar ao perfil do hardware fazendo com que o equipamento ti-vesse baixa performan-ce As atualizaccedilotildees com Windows tornavam-se inviaacuteveis nos computa-dores com perfil padratildeo de dois ou mais anos

O departamento natildeo possuiacutea outra funccedilatildeo aleacutem do suporte de ma-nutenccedilatildeo de computado-res e impressoras muitos jaacute ultrapassados uma vez que o uacuteltimo investimen-

to feito em TI na companhia ocorreu no ano 2000

A telefonia as escolhas teacutecni-cas o gerenciamento de contratos de sistemas e outras atividades natildeo eram exercidas pelo departamen-to de informaacutetica Natildeo havia uma poliacutetica definida de TI na empresa e natildeo se dispunha de recursos para investimento Muitos dos sistemas utilizados pela empresa eram piratas e natildeo possuiacuteam suporte O banco de dados da companhia natildeo dispunha mais de suporte de software e o de-partamento de informaacutetica natildeo tinha

Armstrong Lemos chefe do departamento de TI da CAEMA

copy Linux New Media do Brasil Editora Ltda

23Linux Magazine 50 | Janeiro de 2009

| CORPORATECAEMA

conhecimento dos relacionamentos dos dados contidos nele

Apoacutes o diagnoacutestico e reuniotildees so-licitou-se agrave diretoria administrativa da empresa agrave qual a informaacutetica eacute subordinada para que submetesse ao conselho de administraccedilatildeo o resta-belecimento das funccedilotildees relativas agrave aacuterea de TI incluindo telefonia

Aleacutem dessas accedilotildees de retomada das atribuiccedilotildees estruturamos uma equipe de programaccedilatildeo uma equipe de projetos estrateacutegicos e reestrutu-ramos a equipe de suporte teacutecnico tudo isso para viabilizar a poliacutetica de Software Livre da CAEMA

LMraquo Em que consiste essa poliacutetica de Software LivreALraquo Estabelecemos vaacuterias etapas como o desenvolvimento do Livre Linux e do sistema de protocolo via Web a migraccedilatildeo do sistema comer-cial (GSAN) a formaccedilatildeo de monito-res de treinamento e o treinamento dos usuaacuterios na soluccedilatildeo completa (GSAN Livre Linux BrOfficeorg e sistema de protocolo) seguida pela articulaccedilatildeo do Movimento Software Livre Maranhatildeo

LMraquo Como foi a evoluccedilatildeo do uso do Software Livre dentro da empresaALraquo Precisaacutevamos resolver dois fatores que impediam o avanccedilo da politica de Software Livre na empresa o sistema de protocolo em Windows e o sistema comercial tambeacutem em Windows e com arquitetura cliente-servidor Aleacutem disso determinou-se a substituiccedilatildeo deles por um novo sistema que per-mitisse a ampliaccedilatildeo da nossa rede de atendimento e que ainda propiciasse a autonomia no gerenciamento dos dados da companhia

O sistema de protocolo foi resol-vido a partir do desenvolvimento do sistema livre Balula feito pela equi-pe de programaccedilatildeo e Software Livre da CAEMA Hoje o protocolo estaacute agrave disposiccedilatildeo dos demais oacutergatildeos puacutebli-cos para serem implementados sem

qualquer custo adicional atraveacutes de parceria sem ocircnus entre a CAEMA e o oacutergatildeo interessado

Ainda em novembro todos os computadores de atendimento co-mercial das unidades da CAEMA passaram a utilizar o Livre Linux como sistema operacional

LMraquo Como eacute a situaccedilatildeo atualALraquo Hoje utilizamos o GSAN com banco de dados PostgreSQL Com isso estamos ampliando o atendi-mento aos municiacutepios onde nosso sistema comercial antigo natildeo fun-cionava pois era inviabilizado pelo custo alto de contrataccedilatildeo de serviccedilos de transmissatildeo de dados junto agraves operadoras locais Atualmente com uma simples conexatildeo via raacutedio que existe em todos os municiacutepios onde a CAEMA atua faremos a integraccedilatildeo com o novo sistema

Estatildeo rodando na plataforma Linux todos os sistemas Web (comercial protocolo frotas juriacutedico cadastro segunda via de contracheque) etc Estamos com Livre Linux nos setores de atendimento help desk adminis-trativo e em todos os servidores

Vamos estender essa implantaccedilatildeo para os demais setores salvo maacutequinas que possuam aplicativos em Windows sem similares no mundo Linux (que satildeo casos mais raros)

LMraquo Em quanto tempo a CAEMA espera obter o retorno do investi-mento em Software Livre

ALraquo O custo total foi de R$ 104 milhotildees para o sistema comercial e o banco de dados Isso representa uma economia de R$ 360 milhotildees ao lon-go de quatro anos somente nesses dois sistemas Os levantamentos sobre a substituiccedilatildeo do sistema operacional Windows por Linux do proprietaacuterio Microsoft Office pelo BrOfficeorg e programas pagos estatildeo sendo le-vantados o que poderaacute representar uma economia de aproximadamente meio milhatildeo de reais

LMraquo Quanto tempo durou a mi-graccedilatildeoALraquo Aproximadamente oito meses com um analista de sistemas da CAE-MA e mais dois analistas de sistemas quatro programadores e um analista de suporte e bancos de dados de nos-so prestador de serviccedilos (Domiacutenio) aleacutem de quatro analistas de sistemas e um DBA do IPAD

LMraquo Qual a opiniatildeo da direccedilatildeo da empresa sobre o Software LivreALraquo O convencimento junto agrave dire-toria foi de estabilidade e custo fi-nanceiro devido agrave situaccedilatildeo em que estaacutevamos Hoje haacute o reconhecimento quanto agraves soluccedilotildees implantadas e o estiacutemulo para a descoberta de novas alternativas A diretoria percebe as vantagens de total liberdade e au-tonomia de uso e configuraccedilatildeo das ferramentas livres que tornaram a migraccedilatildeo teacutecnica e economicamen-te viaacutevel

LMraquo E a sua opiniatildeo sobre o mer-cado de Software LivreALraquo O mercado de Software Livre no paiacutes estaacute maduro Muitas empresas estatildeo habilitadas para a execuccedilatildeo e a manutenccedilatildeo de projetos livres Seguindo essa tendecircncia grandes empresas tecircm accedilotildees nesse foco No entanto temos carecircncia de empresas privadas que prestem suporte a bancos de dados livres assim como eacute carente o uso desses bancos em aplicaccedilotildees comerciais proprietaacuterias

LMraquo O movimento Software Livre Maranhatildeo jaacute rendeu frutosALraquo No dia 14 de novembro reali-zamos o I Encontro de Articulaccedilatildeo de Software Livre Maranhatildeo para apresentar aos demais gestores de TI do Estado a alternativa de uso de Software Livre pelo governo e articulaccedilatildeo de um movimento in-dependente para fortalecimento dessa poliacutetica

copy Linux New Media do Brasil Editora Ltda

24 httpwwwlinuxmagazinecombr

Como participar da comunidade Open Souce

Cezar TaurionUma anaacutelise do desenvolvimento do kernel Linux

Haacute alguns dias li um interessante artigo de Jona-than Corbet ldquoHow to participate in the Linux Communityrdquo[1] Ele descreve como funciona

o processo de desenvolvimento do kernel Linux e eacute uma excelente fonte de referecircncia para quem estiver interessado em colaborar com a comunidade ou mes-mo conhecer como funciona por dentro o modelo de governanccedila de um projeto de coacutedigo aberto

O kernel Linux tem mais de 6 milhotildees de linhas de coacutedigo e aglutina mais de mil contribuidores ativos Eacute um dos maiores projetos de coacutedigo aberto do mun-do Seu sucesso tem atraiacutedo muitos colaboradores a maioria inclusive pertencendo a empresas que que-rem participar do projeto A questatildeo eacute como entrar e ser um participante ativo da comunidade

Cada comunidade Open Source tem suas proacuteprias regras de conduta e modelos de governanccedila Enten-der como funciona a comunidade que desenvolve o kernel eacute essencial para ser um colaborador e tam-beacutem abre ideacuteias para aprendermos como funciona um projeto Open Source

A primeira seccedilatildeo do artigo mostra a importacircncia de se inserir todo coacutedigo na aacutervore principal do ker-nel para se evitar a proliferaccedilatildeo de forks e futuras ldquobombas reloacutegiordquo Por exemplo um coacutedigo inse-rido no kernel principal passa a ser visto mantido e refinado por toda a comunidade resultando em coacutedigo de alta qualidade Quando o coacutedigo eacute man-tido separado natildeo soacute natildeo recebe contribuiccedilotildees ex-ternas como corre o risco de funcionalidade similar ser incorporada por outro desenvolvedor ao coacutedigo principal fazendo com que o coacutedigo isolado fique cada vez mais difiacutecil e custoso de ser mantido Esse alerta eacute feito porque muitas empresas envolvidas em projetos de software embarcado tendem a acre-ditar que seu coacutedigo pela sua especificidade deve ser mantido de forma isolada da aacutervore principal do kernel o que eacute um grande erro A seccedilatildeo tambeacutem descreve as razotildees por que toda contribuiccedilatildeo deve ser ldquoassinadardquo Eacute necessaacuterio para se evitar eventuais problemas de propriedade intelectual

A seccedilatildeo dois eacute bem interessante pois descreve como funciona o processo de desenvolvimento do kernel e a nomenclatura usada para designar as diversas versotildees

Explica tambeacutem como eacute criado uma versatildeo estaacutevel e o ciclo de vida dos patches Descreve como um patch eacute inserido no kernel e cita alguns dados curiosos A seccedilatildeo tambeacutem descreve as regras de etiqueta da comunidade na troca de mensagens e o uso das listas de email

As outras seccedilotildees descrevem o processo de plane-jamento da evoluccedilatildeo do kernel debatendo as etapas de avaliaccedilatildeo as discussotildees com a comunidade para definir o que e como seraacute feito os estilos de escrita (que garantem a qualidade do coacutedigo) as ferramen-tas de depuraccedilatildeo usadas a documentaccedilatildeo que deve ser gerada e assim por diante

A seccedilatildeo seis mostra como deve ser feito o tra-balho em colaboraccedilatildeo Cada patch eacute revisado por desenvolvedores que vocecirc natildeo conhece o que mui-tas vezes pode gerar algum desconforto Existem algumas recomendaccedilotildees de como se portar nessas situaccedilotildees meio desagradaacuteveis e de como evitar dis-cussotildees desgastantes Trabalhar em colaboraccedilatildeo eacute um exerciacutecio ao qual muitos desenvolvedores natildeo estatildeo acostumados Para muita gente ter um estra-nho revisando seu coacutedigo e expondo as falhas em puacuteblico eacute no miacutenimo desconfortaacutevel

Enfim a leitura desse documento eacute obrigatoacuteria para todos que estejam realmente interessados em conhecer mais a fundo o que eacute o movimento Open Source e os aspectos do desenvolvimento colabora-tivo que o caracterizam

CORPORATE

Mais informaccedilotildees

[1] Jonathan Corbet ldquoHow to participate in the Linux Communityrdquo httpldnlinuxfoundationorgbookhow-participate-linux-community

Sobre o autor

Cezar Taurion (ctaurionbribmcom) eacute geren-te de novas tecnologias aplicadas da IBM Bra-sil e editor do primeiro blog da Ameacuterica Latina do Portal de Tecnologia da IBM developerWorks Seu blog estaacute disponiacutevel em httpwww-03ibmcomdeveloperworksblogspagectaurion

CORPORATE

copy Linux New Media do Brasil Editora Ltda

25

Argumentando em favor do Software Livre

Jon lsquomaddogrsquo HallA comunidade do Coacutedigo Aberto natildeo dispotildee de um seacutequumlito de advogados e consultores de marketing e comunicaccedilatildeo Quando se trata de argumentar em favor do Software Livre vocecirc provavelmente teraacute que assumir esse papel

A ldquocenardquo juriacutedica envolvendo o Software Li-vre estaacute sempre em movimento Decisotildees de tribunais e accedilotildees governamentais estatildeo

sempre reformulando o panorama legal e tecircm efei-tos bruscos na ldquotemperaturardquo do desenvolvimento desse tipo de aplicaccedilatildeo

Uma lei proposta recentemente tinha por obje-tivo ajudar a eliminar a pornografia infantil mas foi modificada para limitar todo e qualquer tipo de liberdade na Internet a ponto de ndash nas palavras de um dos legisladores ndash dificultar o desenvolvimento de tecnologias como redes mesh

No mecircs passado escrevi sobre minha experiecircncia em testemunhar perante uma assembleacuteia nacional sobre uma lei considerada pioneira relativa ao mun-do open source Muito embora oportunidades como essa natildeo apareccedilam todos os dias eacute surpreendente a frequumlecircncia com que os governos ndash em todos os niacute-veis ndash satildeo confrontados com toacutepicos relacionados agrave comunidade open source

Seu governo local tambeacutem gasta dinheiro com software Algumas diretorias de escola gastam mes-mo milhares de doacutelares em aplicativos proprietaacuterios mesmo que suas contrapartes de coacutedigo aberto este-jam disponiacuteveis a um preccedilo muito inferior A maio-ria dos governos locais e das diretorias das escolas dispotildeem entretanto de um tempo para ouvir o cidadatildeo ndash e vocecirc poderia usar esse tempo para lhes dizer o que vocecirc pensa a respeito disso Melhor ain-da vocecirc poderia reunir um grupo de amigos com os mesmos ideais para argumentar em favor do uso de Software Livre

Se vocecirc for chamado para avaliar uma proposta de regulamentaccedilatildeo ou orccedilamento certifique-se de tecirc-la estudado profundamente Natildeo deixe de co-nhecer os poliacuteticos eleitos envolvidos no processo Com frequumlecircncia poliacuteticos locais estatildeo dispostos a discutir esses toacutepicos com vocecirc diretamente E se vocecirc marcar uma reuniatildeo natildeo se esqueccedila de ldquoestar apresentaacutevelrdquo (como sua matildee provavelmente diria)

e de manter a calma lanccedilando matildeo de uma argu-mentaccedilatildeo plausiacutevel

A maneira mais simples de se envolver em niacutevel nacional com esse tipo de legislaccedilatildeo eacute por meio de uma carta A maioria dos legisladores possui um email mas eles recebem milhares de mensagens todos os dias e a sua pode simplesmente ldquose afogarrdquo nesse oceano sem jamais ter sido lida Uma carta tradicional impressa e assinada pode receber mais atenccedilatildeo do que um email e uma carta enviada via portador como encomenda expressa ou registrada tem ainda maiores chances de ser notada Natildeo se esqueccedila de usar um corretor ortograacutefico ao escre-ver ndash nem de deixar algueacutem mais ler a carta antes de enviaacute-la como medida para garantir que o con-teuacutedo esteja inteligiacutevel

Cartas para editores de publicaccedilotildees tambeacutem satildeo eficazes Oficiais de governo ndash bem como cidadatildeos interessados que podem ser persuadidos por argu-mentos bem formulados ndash lecircem jornais Cartas concisas com argumentos claros satildeo preferiacuteveis a cartas longas sem um objetivo claramente definido Evite criticar o caraacuteter dos proponentes da legislaccedilatildeo a que vocecirc se opotildee Em vez disso concentre seus comentaacuterios no conteuacutedo

Se vocecirc busca um modo simples de se envolver no movimento em torno do Software Livre observe as oportunidades para dar a sua opiniatildeo sobre leis regulamentaccedilotildees e decisotildees de compra que afetem de algum modo o ecossistema open source O esfor-ccedilo eacute vaacutelido jaacute que manter os braccedilos cruzados natildeo eacute uma alternativa capaz de lhe dar voz ativa nesse tipo de processo

Sobre o autorJon lsquomaddogrsquo Hall eacute presidente da Linux International insti-tuiccedilatildeo internacional dedicada a promover o Linux e o Software Livre e de Coacutedigo Aberto Maddog viaja o mundo ministrando palestras e debatendo com decisores sobre o uso do Software Livre em acircmbito tanto corporativo quanto comunitaacuterio

CORPORATE

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

26 httpwwwlinuxmagazinecombr

CORPORATE

Nova lei de call center Oacutetima oportunidade para TI

Edgar SilvaHaacute inuacutemeras tecnologias de coacutedigo ou padrotildees abertos que podem ajudar a superar as dificuldades decorrentes da nova lei de call centers

ldquoO brasileiro mesmo com todas as adver-sidades eacute um povo criativo que na dificuldade cria oportunidadesrdquo Essa

afirmaccedilatildeo cabe muito bem quando observarmos a nova lei para call centers Afinal quem nunca ficou esperando horas numa linha telefocircnica e repetindo nuacutemero de documentos nome da matildee endereccedilo etc O decreto visa natildeo soacute a melhorar a vida de todos que precisam dos serviccedilos de empresas de telefonia fixa e moacutevel TV a cabo e outros mas tambeacutem ge-rar novos empregos assim como oportunidades de negoacutecios que eacute o tema deste artigo

Certamente em razatildeo da tradicional morosidade dos atendimentos de call center o comportamento padratildeo de noacutes consumidores eacute procurar alternativas Uma delas foi a Internet o que fez com que as em-presas investissem em portais para evitar o gargalo no atendimento de suas redes e tambeacutem porque re-presenta um aumento no atendimento sem elevar os custos Entatildeo por que natildeo criar novos canais de atendimento A tecnologia Java e algumas especi-ficaccedilotildees padrotildees e projetos open source fazem a diferenccedila nessa induacutestria de atendimento

Java por exemplo eacute extensamente utilizado Dentre os inuacutemeros motivadores destaco liberda-de de escolha de seus fornecedores a existecircncia de padrotildees da induacutestria que garantem maior ROI bem como facilidade de obtenccedilatildeo e formaccedilatildeo de profissionais Java conta com alguns padrotildees de tecnologia que ajudam principalmente a aprovei-tar parte do legado permitindo novos canais de interaccedilatildeo com os clientes Por exemplo os com-ponentes ou serviccedilos que atendem um navegador web podem tambeacutem atender uma chamada te-lefocircnica uma interaccedilatildeo SMS ou ateacute mesmo um canal VoIP via Skype

Entre as tecnologias disponiacuteveis cito as APIs padrotildees JSR116-SIP Servlets 10 [1] e JSR289-SIP Servlets 11 [2] que possibilitam a interaccedilatildeo com servidores SIP (Session Initiation Protocol) protocolo que dentre inuacutemeras funcionalidades estabelece

chamadas de voz via Internet O funcionamento do SIPServlet eacute similar ao do Servlet tradicional Java entretanto em vez de interagir com o protocolo HTTP estaacute apto a processar requisiccedilotildees e respostas do protocolo SIP Eacute por isso que seus componentes e serviccedilos podem ser reaproveitados

O Mobicents [3] tambeacutem eacute uma soluccedilatildeo que combina aleacutem de SIP vaacuterios outros serviccedilos para o segmento de telecomunicaccedilotildees que por sua vez eacute a implementaccedilatildeo de referecircncia do padratildeo JS-LEE 10 que em resumo eacute uma complementaccedilatildeo do jaacute conhecido JEE (J2EE para os mais antigos) especiacutefico para a comunicaccedilatildeo de componentes existentes em arquiteturas que agrupam web Voip som e imagem

Outro portal open source com soluccedilotildees interes-santes eacute o Ignite Real Time [4] que hospeda proje-tos como o OpenFire servidor Jabber (XMPP) com inuacutemeros plugins entre eles para chamadas SIP e comunicaccedilatildeo com o legendaacuterio Asterisk

Mais informaccedilotildees

[1] JSR116 httpjcporgenjsrdetailid=116

[2] JSR289 httpjcporgenjsrdetailid=289

[3] Mobicents httpwwwmobicentsorg

[4] Ignite Real Time httpwwwigniterealtimeorg

Sobre o autor

Edgar A Silva (edgarsilvaredhatcom) eacute Middleware Technology Lead da Red Hat no Brasil com atuaccedilatildeo desde 1998 em objetos distribuiacutedos (Corba COM+ e Java) Edgar vem nos uacuteltimos anos pesquisando aplicando e ministrando pales-tras e treinamentos no Brasil e exterior sobre assuntos de alta tecnologia entre eles JavaEE e SOA

copy Linux New Media do Brasil Editora Ltda

Dicas de especialistas para conviver com o Windows

Integraccedilatildeo transparente Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo que vocecirc queira viver em um mundo de coacutedigo aberto ele ainda estaacute cheio de Windows A ediccedilatildeo deste mecircs traz um apanhado de estrateacutegias para facilitar o conviacutevio com o sistema operacional da Microsoft por Joe Casad e Rafael Peregrino da Silva

As redes de hoje contam com um sortimento consideraacutevel de sistemas e dispositivos

Se todos esses componentes natildeo precisassem se comunicar natildeo as chamariacuteamos de rede Mesmo que vocecirc sonhe com um mundo sem Windows ndash e a IBM se esforce para tornar seu sonho realidade ndash essa rea-lidade ainda estaacute um pouco distante Por conta disso a ediccedilatildeo deste mecircs traz diversos artigos versando sobre interoperabilidade e integraccedilatildeo de sistemas No nosso primeiro artigo examinamos algumas teacutecnicas para conexatildeo de clientes VPN para Linux a servidores Windows

Tambeacutem vamos mostrar alguns aplicativos Linux para gerenciamento de conexotildees a VPNs e descreveremos algumas teacutecnicas de resoluccedilatildeo dos problemas para fazer o sistema do pinguumlim funcionar com o protoco-lo PPTP usado em redes Windows No artigo seguinte abordamos a integraccedilatildeo de sistemas Linux a um ambiente Windows usando o famo-so (alguns diriam infame) Microsoft Active Directory lanccedilando matildeo para tanto do sistema de autenticaccedilatildeo Likewise Open O Likewise eacute uma ferramenta de coacutedigo aberto que fornece uma confi guraccedilatildeo faacutecil para autenticaccedilatildeo dos tipos single sign-on e Kerberos O terceiro artigo da ses-satildeo mostra como confi gurar o Linux como um servidor de terminais para clientes Windows utilizando o xrdp ndash uma implementaccedilatildeo de coacutedigo aberto do Remote Desktop Protocol

(RDP) da Microsoft Nesse artigo vocecirc vai entender por que o siste-ma das janelas natildeo eacute necessaacuterio no servidor para criar um ambiente de terminais Windows e aprenderaacute como fazer os usuaacuterios desse sistema visualizarem um desktop Linux na sua aacuterea de trabalho tudo isso em apenas alguns passos

Por uacuteltimo apresentamos um soft-ware de coacutedigo aberto para agenda-mento de tarefas muito mais comple-xo que o veneraacutevel Cron e que tem como uma de suas maiores vantagens o fato de ser multiplataforma ndash o que facilita muito a administraccedilatildeo de um ambiente heterogecircneo de servidores

Se vocecirc precisa conviver com o Windows por que natildeo vi-ver em paz e com con-

forto Se esse eacute o seu caso esperamos tornar a sua vida um pouco menos atribulada com esta ediccedilatildeo de inte-graccedilatildeo com as tecnologias da gigante de Redmond

CAPA

Linux Magazine 50 | Janeiro de 2009

Iacutendice das mateacuterias de capa

Rede fechada 28Na ativa 34O manda-chuva do terminal 40 Muito aleacutem do Cron 44

27copy Linux New Media do Brasil Editora Ltda

28 httpwwwlinuxmagazinecombr

Configurando conexotildees VPN em clientes Linux

Rede fechadaClientes Linux eventualmente precisam de uma matildeozinha para se conectar a servidores VPN do Windowspor James Stanger

Dois benefiacutecios de se usar tuacute-neis VPN (Virtual Private Networks ou redes virtuais

privadas) satildeo as conexotildees criptografa-das e o acesso aos recursos localizados atraacutes do firewall Quando a questatildeo eacute interoperabilidade entretanto confi-gurar essas conexotildees pode ser difiacutecil em clientes Linux As distribuiccedilotildees Linux frequumlentemente tecircm problemas em es-tabelecer conexotildees a VPNs em servido-res cuja tecnologia eacute baseada em outros sistemas operacionais especialmente porque os aplicativos graacuteficos utiliza-dos para configurar essas conexotildees normalmente natildeo conseguem manter

o mesmo ritmo de desenvolvimento do Linux que estaacute geralmente duas geraccedilotildees agrave frente delas Assim pouco tempo apoacutes as distribuiccedilotildees terem sido lanccediladas as bibliotecas usadas para a criaccedilatildeo de VPNs satildeo modificadas e o aplicativo que vocecirc utilizava para fazer esse tipo de conexatildeo simplesmente paacutera de funcionar em ambientes he-terogecircneos Recentemente houve um avanccedilo nessa situaccedilatildeo e este artigo daacute algumas dicas sobre como estabele-cer conexotildees a VPNs a partir de um desktop Linux

Uma VPN cria um tuacutenel ponto-a-ponto por meio de uma rede puacuteblica

Vaacuterios protocolos oferecem suporte a conexotildees VPN entre eles as seguintes alternativas bastante populares L2TP via IPsec Foi o primeiro

protocolo desenvolvido pela Cisco para criaccedilatildeo de tuacuteneis de acesso criptografados L2TPv3 eacute a versatildeo mais recente mas certifique-se de escolher a ver-satildeo apropriada para a sua rede Lembre-se de que haacute duas im-plementaccedilotildees de IPsec principais no Linux Por exemplo sistemas mais antigos usam FreeSWAN ou Openswan para IPsec Sis-temas mais recentes com qual-

CA

PA

Quadro 1 Problemas e soluccedilotildees

Ao resolver problemas em conexotildees certifique-se de es-tar com os moacutedulos instalados e carregados Por exem-plo num sistema Ubuntu 8041 uma conexatildeo PPTP precisa dos seguintes moacutedulos

ppp_mppe 8068 2ppp_async 13312 1crc_ccitt 3072 1 ppp_asyncppp_generic 29588 6 ppp_mppe ppp_asyncslhc 7040 1 ppp_genericppdev 10372 0

A MTU (unidade maacutexima de transmissatildeo) eacute outra configu-raccedilatildeo importante pode ser necessaacuterio reduzir o valor de 1500 para algo menor como 1490

Em caso de problemas lembre-se de ativar as opccedilotildees de depuraccedilatildeo no cliente ndash sempre eacute possiacutevel desativaacute-las depois As opccedilotildees de depuraccedilatildeo podem incluir especifi-car pacotes ICMP para testar uma conexatildeo assim como determinar o tamanho do intervalo de eco

Uma opccedilatildeo estranha mas eventualmente uacutetil eacute desativar a criptografia Obviamente com isso perdem-se os benefiacutecios da conexatildeo VPN A maioria dos servidores rejeita conexotildees sem criptografia mas ainda assim essa opccedilatildeo pode ser de alguma ajuda para eliminar fontes de problemas

O mascaramento de IP e outras formas de NAT tambeacutem im-potildeem alguns problemas para conexotildees VPN Se estiverem sendo usados ESP ou AH (cabeccedilalhos de autenticaccedilatildeo) por exemplo haveraacute problemas com o NAT pois o AH executa uma verificaccedilatildeo que inclui valores como o endereccedilo IP da conexatildeo Como o NAT modifica o endereccedilo IP a verificaccedilatildeo falharaacute e portanto tambeacutem a comunicaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

29

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

quer versatildeo do kernel da seacuterie 26 dispotildeem de suporte nativo a Ipsec

Point-to-Point Tunneling Pro-tocol (PPTP) trata-se de um protocolo antigo que ainda eacute usado em diversos ambientes Microsoft

Secure Sockets LayerTransport Layer Security (SSLTLS) eacute um dos mais poderosos protocolos de interoperabilidade disponiacute-veis atualmente fornecendo suporte para muitos tipos de conexotildees VPN O OpenVPN [1] por exemplo eacute uma solu-ccedilatildeo para criaccedilatildeo de tuacuteneis de acesso criptografados baseada em SSLTLS

Com o passar dos anos jaacute houve muitas discussotildees sobre qual proto-colo eacute o mais seguro ou qual seria mais favoraacutevel ao modelo de desen-volvimento de coacutedigo aberto Muitas dessas discussotildees chegaram a assumir um teor quase religioso Poreacutem em vez de se envolver em tais discussotildees eacute mais uacutetil simplesmente descobrir qual dos protocolos funciona melhor para o seu tipo de rede em particular e entatildeo adotaacute-lo

Qualquer que seja o protocolo usado para criar o tuacutenel eacute possiacutevel enviar pacotes atraveacutes dele os quais seratildeo considerados pelo firewall como pacotes internos A chave como veremos a seguir eacute se certificar de que os pacotes certos atravessem a interface correta do tuacutenel

O ambiente Linux dispotildee de diversas ferramentas para configu-rar e gerenciar conexotildees VPN O utilitaacuterio KVpnc do projeto KDE oferece suporte para vaacuterias tecnolo-gias VPN (da Cisco passando pela Microsoft e culminando no Open-VPN) O vpnc eacute um programa de linha de comando para sistemas Cisco Muitas distribuiccedilotildees Linux passaram a usar o NetworkManager [2] desenvolvido pela Red Hat que

permite instalar extensotildees para redes Cisco e Microsoft Dependendo da tecnologia VPN que vocecirc pretende usar vocecirc teraacute que instalar a exten-satildeo apropriada

O pptpconfig [3] eacute um aplicativo antigo que funciona especialmente bem para distribuiccedilotildees Linux da Red Hat e da Novell bem como com BSDs e vaacuterios outros sistemas Como o nome sugere o pptpconfig eacute usado para gerenciar VPNs basea-dos em tecnologia Microsoft

Criando um tuacutenelIndependentemente de qual aplicati-vo ou protocolo for usado eacute necessaacuterio obter algumas informaccedilotildees baacutesicas para estabelecer uma conexatildeo com sucesso Por exemplo Informaccedilotildees sobre autenti-

caccedilatildeo dependendo do que o administrador da rede exigir seraacute preciso fornecer informa-ccedilotildees especiacuteficas a respeito do usuaacuterio para se autenticar no servidor VPN A alternativa menos segura (embora mais comum) eacute fornecer um nome de usuaacuterio e uma senha Outras opccedilotildees incluem chaves priva-das e certificados A Cisco daacute preferecircncia ao uso de chaves e certificados por exemplo

Gateway (tambeacutem conhecido popularmente como nome do servidor VPN) eacute o endereccedilo IP

ou nome do equipamento VPN que fornece o tuacutenel depois da autenticaccedilatildeo

Tipo de protocolo como dis-cutido acima eacute necessaacuterio es-colher entre os protocolos exis-tentes tais como L2TP PPTP OpenVPN etc A ferramenta de configuraccedilatildeo vai solicitar que sejam especificadas as opccedilotildees adequadas para o(s) protocolo(s) escolhido(s)- pelo administrador da rede

Configuraccedilotildees gerais qualquer que seja o protocolo de autenti-caccedilatildeo seraacute preciso fornecer in-formaccedilotildees especiacuteficas para a sua conexatildeo Por exemplo algumas redes solicitam a configuraccedilatildeo de uma unidade maacutexima de transmissatildeo (do inglecircs Maximum Transmission Unit o famigerado MTU) especiacutefica o aplicativo permite que sejam realizadas as modificaccedilotildees especiacuteficas para a conexatildeo em questatildeo

Informaccedilotildees de roteamento natildeo importa os tipos de proto-colo ou autenticaccedilatildeo escolhi-dos normalmente tambeacutem eacute necessaacuterio assegurar-se de que os pacotes certos estatildeo de fato sendo roteados atraveacutes da inter-face correta

Assim eacute certo depender da ajuda de um administrador de redes compre-

Quadro 2 Preso do lado de fora

Conforme satildeo feitos experimentos com a conexatildeo VPN certifique-se de que sua conta natildeo seja trancada do lado de fora A maioria das VPNs tem dificuldade em diferenciar entre experimentos com a configuraccedilatildeo e tentati-vas de invasatildeo Se vocecirc ficar trancado de fora natildeo conseguiraacute entrar nem mesmo com as configuraccedilotildees corretas

Se ficar impossiacutevel conectar-se preste atenccedilatildeo ao arquivo de log e agraves men-sagens de depuraccedilatildeo para verificar se as mensagens de autenticaccedilatildeo e conexatildeo mudaram de alguma forma uma mudanccedila sutil pode indicar que se estaacute na verdade trancado do lado de fora da conta Se for esse o caso seraacute preciso esperar a conta ser desbloqueada Com sorte essa limitaccedilatildeo seraacute temporaacuteria Caso contraacuterio seraacute preciso contatar o administrador da rede cada vez que ocorrer esse imprevisto

copy Linux New Media do Brasil Editora Ltda

30 httpwwwlinuxmagazinecombr

CAPA | VPNS

ensivo para ajudar o usuaacuterio a obter as informaccedilotildees listadas acima

PPTP com Microsoft Mesmo que o protocolo PPTP seja considerado menos seguro que o da Cisco ou o OpenVPN ele ainda eacute bastante popular Para confi gurar uma conexatildeo PPTP haacute um grande rol de opccedilotildees de autenticaccedilatildeo com-pressatildeo e criptografi a

Um dos desafi os eacute escolher o meacute-todo de autenticaccedilatildeo Autenticaccedilatildeo direta ( peer authentication ) signifi -ca que o servidor solicitaraacute que o cliente se identifi que As opccedilotildees para essa modalidade de autentica-ccedilatildeo incluem Challenge Handshake Authenti-

cation Protocol (CHAP) proto-colo padratildeo em conformidade com o RFC correspondente Basta fornecer um nome de usuaacuterio e uma senha para se autenticar MS-CHAP eacute a im-plementaccedilatildeo do protocolo pela Microsoft Se o administrador da rede natildeo revelar o protocolo empregado use o MS-CHAP no caso de servidores Windows

EAP eacute uma extensatildeo do pro-tocolo de autenticaccedilatildeo PPP original que permite o uso de um certifi cado em vez de nome de usuaacuterio e senha Me-nos comum do que MS-CHAP e CHAP

Muitos clientes oferecem a opccedilatildeo de recusar todos esses meacutetodos de autenticaccedilatildeo Para trabalhar bem com um servidor VPN remoto talvez a melhor opccedilatildeo seja usar diretamente o daemon PPP do seu sistema Compactar os dados para trans-

missatildeo pela VPN tambeacutem eacute uma boa ideacuteia Geralmente haacute trecircs opccedilotildees de compressatildeo

Microsoft Point-to-Point Com-pression (MPPC) protocolo an-tigo baseado no algoritmo LZ e geralmente reservado a clientes Windows antigos (Windows 95 e NT) Contudo pode funcionar em outras VPNs

Defl ate compression protocolo similar ao MPPC mas livre de patentes Eacute mais universal que

o MPPC mas raramente usado em VPNs Microsoft

BSD compression descrito na RFC 1977 eacute o protocolo de compressatildeo tradicional

O tipo de compressatildeo geralmente causa problemas nas conexotildees Caso o administrador da rede natildeo coope-re eacute melhor tentar primeiro uma conexatildeo sem compressatildeo

A confi guraccedilatildeo da criptografi a tambeacutem eacute importante O Microsoft Point-to-Point Encryption (MPPE) eacute um subconjunto do MPPC Pode-se usar dois comprimentos de chave di-ferentes 40 bits e 128 bits Empresas de muitos paiacuteses usam apenas cha-ves de 40 bits Na confi guraccedilatildeo de clientes PPTP o administrador deve informar o comprimento da chave Senatildeo basta testar ateacute descobrir

Stateful MPPE geralmente eacute a melhor opccedilatildeo de criptografi a uma vez que fornece conexotildees de rede mais raacutepidas Como veremos mais agrave frente eacute necessaacuterio habilitar o moacutedulo MPPE para qualquer uma dessas confi guraccedilotildees

DNS A maioria dos clientes DNS pergunta se deve usar as informaccedilotildees de DNS em etcresolvconf ou aquelas for-necidas pelo servidor VPN A proacutepria conexatildeo VPN pode causar modifi ca-ccedilotildees na resoluccedilatildeo de DNS principal-

Figura 2 Criaccedilatildeo de rotas no cliente NetworkManager

Figura 1 Criaccedilatildeo de rotas no cliente VPN KVpnc

copy Linux New Media do Brasil Editora Ltda

31

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

mente porque o cliente VPN altera o conteuacutedo do arquivo etcresolvconf mesmo quando confi gurado ex-plicitamente para natildeo fazecirc-lo

A melhor soluccedilatildeo eacute usar um clien-te VPN que funcione da forma que se espera Na falta de tal soluccedilatildeo pode-se contornar o problema crian-do um script que faccedila uma coacutepia do arquivo etcresolvconf correto Quando o cliente VPN pergunta se deve ldquorealizar acessos ao DNS atra-veacutes do tuacutenelrdquo geralmente o que ele realmente quer dizer eacute se pode alte-rar o arquivo etcresolvconf com seus novos dados A escolha correta depende de informaccedilotildees fornecidas pelo administrador da rede Se o ob-jetivo natildeo for usar o DNS da VPN seraacute difiacutecil o cliente acessar as outras maacutequinas detraacutes da VPN

Suporte ao GRE Para conectar um cliente a uma VPN Microsoft atraveacutes de um fi -rewall Linux haacute um ajuste extra a ser feito nele para que tudo funcio-ne a ativaccedilatildeo do protocolo Generic Route Encapsulation (GRE) para atravessar o fi rewall Supondo o uso do iptables no fi rewall Linux e um servidor VPN com o endereccedilo 18944453 eacute necessaacuterio executar o seguinte comando

iptables -I FORWARD -p 47 -d 18944453 -j ACCEPT

Roteamento Pode ser necessaacuterio rotear pacotes ex-plicitamente atraveacutes de uma interface especiacutefi ca Muitos administradores de sistemas Windows consideram esse um dos maiores desafi os do trabalho com clientes Linux

A necessidade de rotear pacotes explicitamente eacute especialmente importante quando a rede remota utiliza IPs puacuteblicos Mesmo que seja usado um tuacutenel VPN a in-

terface de rede ainda pode tentar rotear pacotes pela Internet em vez de simplesmente usar o tuacutenel Satildeo muito frequumlentes problemas em conexotildees VPN cuja soluccedilatildeo eacute sim-plesmente adicionar algumas rotas alternativas agrave tabela de roteamento padratildeo do sistema Isso pode ser feito tanto com o aplicativo graacutefi co de confi guraccedilatildeo do VPN quanto pela linha de comando com os utilitaacuterios route ou iproute

route add -net 131639723 netmask 255255255255 dev ppp0 ou iproute

ip route add 17187445424 dev ppp0

Em alguns casos sem essas rotas

natildeo eacute possiacutevel fazer com que os paco-tes que deveriam trafegar pela VPN realmente o faccedilam e eles acabam saindo pela placa de rede

Figura 3 KVpnc com uma sessatildeo PPTP legada

Figura 4 Importaccedilatildeo de um certifi cado Cisco no KVpnc

copy Linux New Media do Brasil Editora Ltda

32 httpwwwlinuxmagazinecombr

CAPA | VPNS

Interface graacutefi ca Os aplicativos graacutefi cos para confi gu-raccedilatildeo de VPNs estatildeo fi cando cada vez melhores quando se trata de adicionar as rotas necessaacuterias auto-maticamente A fi gura 1 mostra as confi guraccedilotildees para o KVpnc A fi gura 2 ilustra uma confi guraccedilatildeo similar no NetworkManager

Assim como essas capturas de tela ilustram pacotes que coincidam com o endereccedilo IP e a maacutescara de rede defi nidos natildeo seratildeo enviados atraveacutes da conexatildeo de rede padratildeo mas simpelo tuacutenel VPN

O KVpnc ( fi gura 3 ) disponiacutevel em vaacuterias distribuiccedilotildees talvez seja o mais versaacutetil entre os clientes atuais pois oferece suporte a L2TP aos protocolos VPN tanto livres quanto proprietaacuterios da Cisco ao OpenVPN e ao PPTP da Microsoft O KVpnc tambeacutem permite a importaccedilatildeo de certifi cados conforme mostra a fi gura 4

Apesar de os desenvolvedores da interface graacutefi ca do programa terem cometido alguns deslizes ortograacutefi -

cos na interface os desenvolvedores do KVpnc realmente criaram um produto que trabalha parti-cularmente bem em conjunto com dispo-sitivos Cisco

O veneraacutevel pptp-config tambeacutem estaacute disponiacutevel em muitas distribuiccedilotildees O se-gredo para o sucesso no seu uso pptpconfig estaacute na confi guraccedilatildeo da criptografi a usada pelo programa que precisa ser exatamen-te aquele previsto pelo administrador

Com frequumlecircncia eacute importante usar de criptografi a MPPE e habilitar o modo stateful desse proto-

colo No caso do pptpconfig seria preciso selecionar Require Microsoft Point-to-Point Encryption (MPPE) e Refuse Stateless Encryption para conseguir isso

O pptpconfig tambeacutem tem capaci-dade de adicionar rotas automatica-mente Simplesmente clique na aba Routing marque o botatildeo Client to LAN e digite as rotas dos sistemas que devem ser conectados pela VPN

Muitos usuaacuterios Linux preferem o NetworkManager por um simples motivo ele costuma funcionar Haacute plugins para ele que suportam vaacuterios protocolos incluindo OpenVPN Microsoft PPTP e L2TP Apoacutes insta-laacute-los basta clicar no iacutecone de rede e selecionar as conexotildees VPN para comeccedilar a fornecer as informaccedilotildees apropriadas A fi gura 5 mostra as etapas para confi gurar uma conexatildeo Cisco num sistema Ubuntu

O NetworkManager suporta a criptografi a por chave compartilhada quanto por certifi cado X509 Para fazecirc-lo funcionar adequadamente

eacute preciso instalar o daemon racoon para fazer a troca de chaves pela In-ternet Depois deve-se obter com o administrador da rede a chave com-partilhada e os certifi cados assinados caso eles sejam usados

IPsec e kernel 26 Certifi que-se de instalar os daemons certos para a conexatildeo Se o sistema utilizar alguma versatildeo do kernel 26 ele jaacute suporta nativametne o IPsec mas se for usado o KVpnc ou o vpnc ainda seraacute preciso instalar o daemon racoon que se encarrega da troca de chaves em implementaccedilotildees IPsec Se o racoon natildeo estiver disponiacutevel no re-positoacuterio da distribuiccedilatildeo em questatildeo basta conferir o site do projeto [4]

Para suportar o FreeSWAN o padratildeo antigo para o IPsec eacute pre-ciso instalar o daemon ipsec caso contraacuterio a implementaccedilatildeo falharaacute pois o sistema natildeo conseguiraacute con-duzir as trocas de senha necessaacuterias ao estabelecer o tuacutenel

Conclusatildeo Estabelecer uma VPN hoje em dia eacute muito mais faacutecil mas os clien-tes VPN graacutefi cos ainda natildeo fazem tudo pelo usuaacuterio Apesar de ainda ser trabalhoso fazer a comunicaccedilatildeo com servidores Microsoft Cisco e OpenVPN basta uma certa dedica-ccedilatildeo para se obter sucesso

Mais informaccedilotildees

[1] OpenVPN httpopenvpnnet

[2] NetworkManager httpwwwgnomeorgprojectsNetworkManager

[3] pptpclient httppptpclientsourceforgenet

[4] Rasvpn httpwwwnetbsdorgdocsnetworkipsecrasvpnhtml

Figura 5 Confi guraccedilatildeo de VPN Cisco no NetworkManager

copy Linux New Media do Brasil Editora Ltda

33

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

Linux Pro novo (julho) 77 251108 172941

copy Linux New Media do Brasil Editora Ltda

34 httpwwwlinuxmagazinecombr

Integraccedilatildeo faacutecil ao Active Directory com o Likewise Open

Na ativaO Likewise Open oferece integraccedilatildeo faacutecil a ambientes Active Directory Mostramos como instalar e configurar o sistema de autenticaccedilatildeo amigaacutevel para administradorespor Walter Neu

O sistema de autenticaccedilatildeo Li-kewise Open [1] integra clien-tes Linux ao ambiente Active

Directory Obviamente tambeacutem eacute possiacutevel configurar o Active Directory pelo Samba e seus atores coadjuvantes [2] mas a soluccedilatildeo da Likewise oferece vaacuterios benefiacutecios para facilitar a confi-guraccedilatildeo e a administraccedilatildeo

A versatildeo gratuita e GPL do Likewi-se suporta autenticaccedilatildeo em diretoacuterios AD a autorizaccedilatildeo de serviccedilos ldquoker-berizadosrdquo e ateacute o recurso de single sign-on Isso pode se parecer bastante com o Samba que faz as mesmas coisas na verdade o gerente de pro-jetos da Likewise Gerald Carter eacute um antigo membro da equipe central

de desenvolvimento do Samba O Likewise Open se aproveita do tra-balho do Samba embora acrescente diversos recursos proacuteprios

Pacotes prontosHaacute pacotes do Likewise para distri-buiccedilotildees da Red Hat Novell e Cano-nical aleacutem de alguns sistemas Unix comerciais e do MacOS X

O site do Likewise exibe a versatildeo 50 embora os pacotes especiacuteficos por distribuiccedilatildeo incluam a versatildeo 4 usada neste artigo Usuaacuterios do Ubuntu tecircm agrave disposiccedilatildeo os pacotes likewise-open e likewise-open-gui no repositoacuterio Uni-verse Os pacotes do Likewise incluem vaacuterias dependecircncias ndash primordialmente

relacionadas ao Kerberos O Likewise Open se baseia na versatildeo MIT do Ker-beros como back-end [3] Durante a instalaccedilatildeo no Ubuntu o pacote pede para o administrador especificar os servidores Kerberos e administrativo (figuras 1 e 2)

Aleacutem de um servidor AD e uma estrutura de domiacutenio gerenciada pelo Windows o Likewise possui dois ou-tros requisitos um servidor de nomes funcional e um reloacutegio do sistema sincronizado Se os reloacutegios do cliente e do servidor estiverem mais de cinco minutos fora de sincronia o servidor Kerberos certamente se recusaraacute a emitir tiacutequetes por medida de segu-ranccedila para evitar ataques

Nova abordagemAdicionar um sistema Linux ldquocrurdquo a um domiacutenio exige certo trabalho de configuraccedilatildeo [2] O Likewise Agent faz a maior parte desse trabalho adi-cionando-se ao Name Service Switch (NSS) e aos Pluggable Authentication Modules (PAM) no cliente local

No lado do servidor o agente re-passa as requisiccedilotildees de autenticaccedilatildeo ao servidor Kerberos 5 e ao AD base-ado em LDAP Para permitir que isso aconteccedila o pacote instala algumas bi-bliotecas e arquivos de configuraccedilatildeo Por exemplo liblibnss_lwidentityso integra o Likewise ao NSS e etcpamdpam_lwidentityso faz o mesmo para o PAM O arquivo de configu-

CA

PA

Figura 1 O gerenciador de pacotes do Ubuntu pede o nome do servidor Kerberos ao se instalar os pacotes do Kerberos

copy Linux New Media do Brasil Editora Ltda

35

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

raccedilatildeo etcsecuritypam_lwidentityconf configura o moacutedulo e a interface do controlador de domiacutenio remoto eacute implementada pelo servidor Winbind do Likewise o likewise-winbindd O servior tem seu proacuteprio arquivo de configuraccedilatildeo etcsambalwiauthdconf semelhante ao arquivo smbconf do pacote Samba

O Likewise Open integra esses com-ponentes para suportar um login de domiacutenio transparente para os usuaacuterios O processo de login repassa o nome do usuaacuterio e sua senha para o PAM O moacutedulo pam_lwidentityso se comuni-ca com o serviccedilo de autenticaccedilatildeo do Likewise que gera uma chave secreta a partir do nome e da senha do usuaacute-rio O daemon do Likewise utiliza a chave secreta para solicitar um tiacutequete para solicitaccedilatildeo de tiacutequetes (TGT na nomenclatura do Kerberos) ao ser-vidor de autenticaccedilatildeo Kerberos que roda como parte do Key Distribution Center (KDC) no servidor AD

Ao apresentar o TGT o serviccedilo de autenticaccedilatildeo do Likewise recebe tiacutequetes de serviccedilo para outros ser-viccedilos de rede como SSH Os usuaacute-rios entatildeo jaacute podem fazer logon nos servidores kerberizados sem digitar suas senhas novamente

Configure o pacote de instalaccedilatildeo do Likewise em cada maacutequina Li-nux que vai se tornar um membro do domiacutenio AD (e ser gerenciada pelo Likewise) Se forem usados os pacotes de instalaccedilatildeo fornecidos no site o Likewise Open seraacute instalado com uso de um Bitrock Installer ndash um executaacutevel cujo nome de arquivo ter-mina com installer Para executar o programa eacute preciso tornar-se root e seguir as instruccedilotildees na tela

O instalador exibe informaccedilotildees sobre as licenccedilas de coacutedigo aberto dos componentes instalados antes de o Likewise instalar seus arquivos Depois disso o instalador leva o ad-ministrador ao domainjoin-cli que se localiza no diretoacuterio usrcente-risbin (violando as-sim as convenccedilotildees do FHS [4] os pacotes das distribuiccedilotildees e as versotildees mais recentes do Likewise corrigem esse erro) O agente ar-mazena informaccedilotildees de log em varloglw-identity ndash se for usada a versatildeo do repositoacuterio do Ubuntu ndash em varloglikewise-open

Pode entrarUm domiacutenio AD precisa que os siste-mas usuaacuterio e cliente tornem-se mem-bros dele O ato de criar uma conta de maacutequina no serviccedilo de diretoacuterio da Microsoft eacute chamado no idioma do AD de ldquojuntar-se ao domiacuteniordquo (ou ldquoJoining the domainrdquo em inglecircs)

Haacute uma ferramenta de linha de co-mando chamada domainjoin-cli que permite que o usuaacuterio root se junte ao domiacutenio AD criando uma conta de maacutequina no diretoacuterio nesse processo A ferramenta domainjoin-cli aceita a opccedilatildeo join e o domiacutenio como argumen-tos O argumento do domiacutenio precisa ser especificado como um nome DNS completamente qualificado

Aleacutem disso o comando espera o nome de um usuaacuterio com autorizaccedilatildeo para criar contas de computador no ambiente AD O exemplo 1 mostra um computador chamado ubuntu se juntando ao domiacutenio exemploorg A conta Administrator possui os privileacute-gios necessaacuterios para essa etapa

A segunda opccedilatildeo para se juntar a um domiacutenio eacute a interface graacutefica do Likewise Open (figura 3) Poreacutem a interface natildeo estaacute incluiacuteda no pacote baacutesico do programa Para acrescentaacute-la simplesmente instale o pacote likewise-open-gui e inicie-o com privileacutegios de root digitando domainjoin-gui

Manual e automaacuteticoNos dois casos o Likewise Open lida com a tarefa de configuraccedilatildeo em se-gundo plano eliminando a necessi-

Figura 2 Eacute preciso especificar o servidor administrativo para o domiacutenio do Kerberos

Exemplo 1 Juntando-se a um domiacutenio

01 domainjoin-cli join exampleorg Administrator02 Joining to AD Domain exampleorg03 With Computer DNS Name ubuntuexampleorg04 05 AdministratorEXAMPLEORGrsquos password06 Enter AdministratorEXAMPLEORGrsquos password07 SUCCESS

copy Linux New Media do Brasil Editora Ltda

36 httpwwwlinuxmagazinecombr

CAPA | Likewise

dade de etapas manuais complexas O software modifica as configuraccedilotildees para interaccedilatildeo do usuaacuterio com o AD (figura 4) incluindo os arquivos neces-saacuterios para a comunicaccedilatildeo do Kerberos com o KDC krb5conf e os arquivos do PAM em etcpamd

Para fazer login usando um domiacutenio de cliente Linux os usuaacuterios precisam de um diretoacuterio home no cliente O Likewise cria o diretoacuterio localmente se for modificado o arquivo etcse-curitypam_lwidentityconf

O arquivo etcnsswitchconf faz o Likewise Open retomar o controle e especifica o meacutetodo lwidentity O servi-ccedilo de nomes do NSS verifica primeiro arquivos locais como etcpasswd

passwd files lwidentitygroup files lwidentity

Se ele natildeo conseguir encontrar uma conta ele acessa o AD em se-guida Isso significa que usuaacuterios lo-cais ainda podem acessar a maacutequina local caso o AD falhe

Configuraccedilatildeo cuidadosaO Likewise eacute cuidadoso na configura-ccedilatildeo do sistema Linux Ele cria becapes de todos os arquivos que modifica acrescentando um sufixo lwid-entitybak e por um bom motivo executar domainjoin-cli leave como root na li-nha de comando ou na interface graacutefica apaga a conta da maacutequina

Nesse caso o Likewise recupera todos os arquivos de configuraccedilatildeo que tive-

rem sido alterados Ele usa o arquivo etcsambalwiauthdconf para permitir que os ad-ministradores especifiquem opccedilotildees de configuraccedilatildeo para seu proacuteprio sistema Winbind essas configuraccedilotildees devem ser familiares agravequeles que utilizam o Samba num am-biente AD

Configuraccedilatildeo individualO paracircmetro template shell define o shell de login para todos os usuaacuterios de forma centralizada O diretoacuterio home do usuaacuterio natildeo eacute definido no banco de dados de usuaacuterios do AD portanto eacute preciso especificar o caminho no ar-quivo de configuraccedilatildeo com o paracircmetro template homedir do Samba

template shell = binbashtemplate homedir = homeDU

O Likewise-Winbind substitui D pelo nome de domiacutenio curto e U pelo usuaacuterio do domiacutenio

Para evitar colisotildees de nomes em relacionamentos de confianccedila faz sentido adicionar o domiacutenio ao caminho do usuaacuterio ndash e aplicar os padrotildees para diretoacuterios dos usuaacuterios Se a configuraccedilatildeo natildeo for alterada o Likewise Open usaraacute a contra-barra como separador de domiacutenios e nomes de usuaacuterios Obviamente a contrabarra possui um significado especial em shells Unix Os especia-listas recomendam mudar isso para outro caractere em todos os clientes usando a variaacutevel winbind separator A sugestatildeo eacute o sinal +

Se houver apenas um domiacutenio eacute possiacutevel definir winbind use default domain = yes para evitar separar o domiacutenio dos nomes de usuaacuterios Se isso natildeo for feito os usuaacuterios do domiacutenio fornecidos pelo Winbind natildeo funcionaratildeo a menos que se adicione um prefixo de domiacutenio Reiniciar o Likewise Open por seu script de inicializaccedilatildeo aplica as mudanccedilas

VerbosoO pacote likewise-open conteacutem trecircs ferramentas de diagnoacutestico ndash lwinet lwimsg e lwiinfo ndash uacuteteis para fins de depuraccedilatildeo entre outros

Exemplo 2 klist exibe os tiacutequetes locais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081208 134808 081208 234808 krbtgtEXAMPLEORGEXAMPLEORG07 renew until 081908 13480808 081208 134808 081208 234808 SUSE$EXAMPLEORG09 renew until 081908 134808

Figura 3 A interface do Likewise Open pede o nome DNS do domiacutenio e os nomes das maacutequinas

copy Linux New Media do Brasil Editora Ltda

37

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

Como o Likewise se baseia no coacutedigo do Winbindd do Samba as ferramentas vatildeo lidar com as tarefas normalmente realizadas pelo dae-mon Winbind do Samba Digitando lwiinfo eacute possiacutevel verificar a conexatildeo ao controlador do domiacutenio

A ferramenta corresponde ao wbin-fo do Samba As duas consultam o daemon do Winbind Por exemplo o lwiinfo -u lista todos os usuaacuterios do domiacutenio padratildeo

EXAMPLE+mokr000EXAMPLE+phkr000EXAMPLE+wane000

O mesmo princiacutepio se aplica a grupos no serviccedilo de diretoacuterio que satildeo exibidos pela opccedilatildeo -g Isso ga-rante que o Linux saiba os nomes do AD O comado lwiinfo -g lista os grupos conhecidos

EXAMPLE+contasEXAMPLE+marketing []

Novamente o Likewise usa o ca-ractere + configurado em lwiauthdconf como separador no Winbind A ferramenta lwimsg corresponde ao smbcontrol e eacute usada para controlar o Winbindd definindo o niacutevel de depuraccedilatildeo por exemplo A contra-parte da ferramenta net do Samba usada para administraccedilatildeo remota de um domiacutenio eacute o lwinet

Apoacutes instalar o software eacute uma boa ideacuteia tentar fazer logon no AD O

formato do nome do usuaacuterio precisa corresponder agravequele definido para o serviccedilo de diretoacuterio Por exemplo se for mantida a configuraccedilatildeo padratildeo para separaccedilatildeo entre o domiacutenio e o nome do usuaacuterio mas o separador for alterado para o sinal de soma os usuaacuterios precisaratildeo digitar seus nomes como DOMIacuteNIO+usuaacuterio no login pelo console ou por um gerenciador de desktop (veja a fi-gura 5)

ubuntu Login EXAMPLE+wane000PasswordEXAMPLE+wane000ubuntu~$

Conforme mencionado anterior-mente o Likewise autentica usuaacute-rios pelo protocolo Kerberos por meio da requisiccedilatildeo de um TGT ao KDC antes de prosseguir agrave instala-ccedilatildeo local do tiacutequete no cliente como tmpkrb5cc_UID (veja o exemplo 2) O comando klist exibe os tiacutequetes vaacutelidos de um usuaacuterio

O usuaacuterio que posuir um tiacutequete tem permissatildeo para acessar serviccedilos kerberizados na rede sem fazer logon separadamente no serviccedilo de rede

Single sign-onPara permitir que um serviccedilo de rede decirc acesso sem senha a um usuaacuterio o administrador precisa atribuir um Service Principal Name (SPN) ao serviccedilo O SPN identifica o serviccedilo dentro do ambiente AD O serviccedilo pede um tiacutequete de serviccedilo para o Service Principal ao KDC identifi-cando-se com seu TGT

O SPN compreende uma defi-niccedilatildeo de serviccedilo seguida por uma barra e o hostname completamente qualificado do servidor um siacutembolo de arroba e o domiacutenio

Figura 4 Depois de entrar no domiacutenio o Likewise cria uma conta de maacutequina para o computador Ubuntu no Active Directory

Figura 5 O GDM pede um nome para login na autenticaccedilatildeo Neste AD o nome eacute composto pelo nome do domiacutenio (EXAMPLE) um sinal + e o nome do usuaacuterio

copy Linux New Media do Brasil Editora Ltda

38 httpwwwlinuxmagazinecombr

CAPA | Likewise

As definiccedilotildees de serviccedilos incluem host ftp ou pop Se um usuaacuterio es-tabelecer uma conexatildeo SSH com outro computador membro de um AD gerenciado pelo Likewise o serviccedilo kerberizado apresentaraacute o TGT do usuaacuterio e pediraacute um tiacute-quete de serviccedilo ao KDC para por exemplo o SPN hostubuntuexam-pleorgEXAMPLEORG ndash isso pressupotildee que o cache local de tiacutequetes ainda natildeo tenha um tiacutequete O tiacutequete de serviccedilo conteacutem o ID do usuaacuterio que faz a requisiccedilatildeo e a chave da sessatildeo O Likewise Open criptograva isso com a chave do servidor e a arma-zena no cache de usuaacuterios como o TGT (exemplo 3)

O cliente SSH envia automati-camente o tiacutequete de serviccedilo crip-tografado e um timestamp tambeacutem criptografado para validar o sshd do autenticador Isso garante que cada requisiccedilatildeo de tiacutequete seja uacutenica enquanto assegura que o cliente re-almente natildeo possui a chave da ses-satildeo Sem o autenticador seria mais faacutecil para um agressor capturar um tiacutequete no traacutefego da rede e iniciar um ataque de repeticcedilatildeo

O servidor valida o tiacutequete de ser-viccedilo apresentado a ele Para isso ele faz referecircncia ao arquivo etckrb5keytab local Esse arquivo armazena a chave do servidor que o usuaacuterio utiliza para decifrar o tiacutequete de serviccedilo revelando assim a chave da sessatildeo O autenticador se baseia na chave da sessatildeo caso tenha sucesso o usuaacuterio eacute autenticado sem neces-sidade de senha (figura 6)

ConexatildeoO Likewise Open configura automa-ticamente clientes SSH preacute-existen-tes e outros clientes ao se juntarem ao domiacutenio permitindo que usem o Kerberos para se autenticarem no futuro No lado do servidor o Likewise adiciona as linhas

GSSAPIAuthentication yesGSSAPICleanupCredentials yes

ao arquivo de configuraccedilatildeo etcsshsshd_config O Likewise tambeacutem acrescenta as seguintes linhas para um cliente SSH

GSAPIAuthentication yesGSSAPIDelegateCredentials yes

A instruccedilatildeo GSSAPIDelegateCreden-tials passa o TGT para o servidor de des-tino Para todas as outras configuraccedilotildees o software utiliza a Generic Security Ser-vices API (API de serviccedilos geneacutericos de seguranccedila GSSAPI) uma interface ge-neacuterica para serviccedilos de seguranccedila como o Kerberos

Figura 6 O Likewise implementa o single sign-on por meio do Kerberos Os usuaacuterios natildeo precisam digitar uma senha para fazer logon

Exemplo 4 Montagem de compartilhamentos Samba

01 ltxml version=rdquo10rdquo encoding=rdquoUTF-8rdquogt02 ltpam_mountgt03 ltvolume user = ldquordquo04 server = ldquoSAMBASERVERrdquo05 mountpoint = ldquohomeEXAMPLE(USER)Documentrdquo06 path = ldquo(USER)rdquo07 fstype = ldquosmbfsrdquo gt08 ltpam_mountgt

Exemplo 3 Tiacutequetes no cache de credenciais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081308 154829 081408 014830 krbtgtEXAMPLEORG EXAMPLEORG07 renew until 082008 15482908 081308 154830 081408 014830 SUSE$EXAMPLEORG09 renew until 082008 15482910 081308 154838 081408 014830 hostubuntuexampleorg11 renew until 082008 15482912 081308 154838 081408 014830 hostubuntuexampleorgEXAMPLEORG13 renew until 082008 154829

copy Linux New Media do Brasil Editora Ltda

39

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

LocalNa primeira vez em que um usuaacuterio do domiacutenio faz logon num cliente o Likewise Open usa o PAM (pam_lwidentityso) para criar diretoacuterios locais para esse usuaacuterio Alterna-tivamente o moacutedulo pam_mount pode montar diretoacuterios centrais do usuaacuterio num servidor remoto por SMBCIFS [5] Isso garante a todos os usuaacuterio o acesso a seus proacuteprios arquivos independentemente do cliente usado por eles no login O compartilhamento eacute definido por uma linha no arquivo etcsecuri-typam_mountconf que usa a palavra-chave volume

volume usuaacuterio sistema_de_arquivos servidor compartilhamento ponto_de_montagem opccedilotildees algoritmo caminho

A presenccedila de um curinga () no paracircmetro usuaacuterio faz o moacutedulo inserir o nome do usuaacuterio Sistema_de_arquivos pode ser smbfs ou cifs O servidor pode ser um IP ou um nome NetBIOS e compartilhamento pode usar o amp como curinga para o nome do usuaacuterio

Os trecircs uacuteltimos paracircmetros geral-mente natildeo satildeo necessaacuterios traccedilos satildeo aceitaacuteveis nesse caso montar o diretoacuterio Documentos ou o diretoacuterio home completo eacute questatildeo de gosto e depende de como a empresa orga-niza seus servidores centrais

Caso o ponto de montagem natildeo exista o moacutedulo pam_mount do PAM o cria se sua opccedilatildeo mkmountpoint 1 estiver presente Na versatildeo 029 o pam_mount armazena as configura-ccedilotildees num formato XML equivalente conforme mostra o exemplo 4

Antes das linhas sufficient na seccedilatildeo auth de etcpamd eacute possiacutevel inserir uma linha para o moacutedulo O exemplo 5 mostra uma configuraccedilatildeo nos arquivos common-auth e common-session no Ubuntu Para evitar a necessidade de os usuaacuterios digitarem suas senhas repetidamente a linha tr_first_pass = yes do arquivo etcsecuritypam_lwidentityconf ativa a opccedilatildeo para tentar novamente uma senha jaacute digitada antes

Versatildeo comercialAleacutem da versatildeo de coacutedigo aberto do Likewise a corporaccedilatildeo america-na Likewise Software oferece uma versatildeo comercial de seu software o Likewise Enterprise [6] A versatildeo comercial possui suporte a poliacuteticas de grupo no AD aleacutem das funciona-lidades oferecidas pela versatildeo livre o produto define aproximadamente 500 poliacuteticas padratildeo O Likewise Ad-ministrative Console eacute capaz de usar uma maacutequina Linux ou Unix para gerenciar registros do AD

Aleacutem disso tudo o Likewise En-terprise suporta desktops Linux que fazem referecircncia ao AD para obten-ccedilatildeo de configuraccedilotildees e restriccedilotildees Isso

ativa a implementaccedilatildeo de poliacuteticas estritas de seguranccedila A variante corporativa estaacute disponiacutevel gratuita-mente para fins de avaliaccedilatildeo ou por US$ 250 na versatildeo para servidores A empresa oferece dois niacuteveis de suporte comercial

Nova caraUma vez configurado o Likewi-se Open oferece o mesmo escopo funcional de uma combinaccedilatildeo de Samba Kerberos PAM e NSS Ele livra o administrador de vaacuterias tarefas monoacutetonas e repetitivas de configu-raccedilatildeo e suporta o gerenciamento de usuaacuterios centralizado e independente de plataforma O serviccedilo de autenti-caccedilatildeo por tiacutequetes do Kerberos e o single sign-on satildeo bocircnus

Quem se interessar pelo Likewi-se Open pode apreciar os recursos adicionais oferecidos pela versatildeo co-mercial ou os benefiacutecios do suporte profissional O uacutenico trabalho ma-nual que resta para o administrador eacute o gerenciamento centralizado dos diretoacuterios dos usuaacuterios

Mais informaccedilotildees

[1] Likewise Open httpwwwlikewisesoftwarecomproductslikewise_open

[2] Walter Neu ldquoDomando os catildees do infernordquo httplnmcombrarticle2424

[3] Kerberos MIT httpwebmitedukerberos

[4] Padratildeo Hieraacuterquico de Arquivos (FHS) httpwwwpathnamecomfhs

[5] Montagem de diretoacuterios home com PAM httppam-mountsourceforgenet

[6] Likewise Enterprise httpwwwlikewisesoftwarecomproductslikewise_enterprise

Exemplo 5 Configuraccedilatildeo do pam_mount

01 etcpamdcommon-auth02 auth required pam_mountso03 auth sufficient libsecuritypam_lwidentityso04 auth requisite pam_unixso nullok_secure try_first_pass05 auth optional pam_smbpassso migrate missingok0607 etcpamdcommon-session08 session optional pam_mountso09 auth sufficient libsecuritypam_lwidentityso10 session required pam_unixso

copy Linux New Media do Brasil Editora Ltda

40 httpwwwlinuxmagazinecombr

Serviccedilo RDP Linux para clientes de terminal Windows

O manda-chuva do terminal

O xrdp ajuda os seus clientes de terminal Windows a se conectarem ao Linuxpor Kenneth Hess

A conexatildeo de desktops remotos do Windows no Linux ge-ralmente consome bastante

banda da rede eacute insegura e difiacutecil de configurar E se um sistema Windows pudesse se conectar a um sistema Linux tatildeo facilmente quanto o faz com outro sistema Windows ndash utili-zando para isso o mesmo aplicativo usado para conectar originalmente ao Windows

O xrdp eacute uma implementaccedilatildeo de coacutedigo aberto do RDP (Remote Desktop Protocol ndash ou Protocolo de Ambiente de Trabalho Remoto na

traduccedilatildeo em portuguecircs) o protoco-lo usado nos serviccedilos de terminal do Windows para conexatildeo nativa a desktops Windows O Pacote xrdp fornece a funcionalidade RDP bem como um servidor graacutefico que seja capaz de aceitar conexotildees do rdesktop [1] e de clientes de serviccedilos de ter-minais Windows

Uma vez conectado e autenticado no servidor RDP Linux o usuaacuterio remoto teraacute disponiacutevel um ambiente de trabalho Linux em modo graacutefico E o melhor eacute que natildeo eacute necessaacuterio executar um servidor graacutefico na maacute-quina com Windows nem eacute preciso exportar a tela do Linux para o com-putador com Windows

Configurar o servidor RDP no Linux eacute faacutecil e leva apenas alguns minutos Para os usuaacuterios novatos de Linux ou os administradores de sistemas Windows segue a lista de requisitos necessaacuterios para fazer o sistema funcionar uma conta de usuaacuterio padratildeo

na maacutequina Linux acesso remoto ou ao console do

servidor Linux acesso com privileacutegios administrati-

vos (de root) no servidor Linux

Tambeacutem ajuda se vocecirc souber al-guma coisa sobre RDP e sobre a otimizaccedilatildeo da configuraccedilatildeo de um cliente RDP

Instalaccedilatildeo e configuraccedilatildeoPara nos certificarmos de que esta-mos usando a versatildeo mais recente do xrdp vamos instalaacute-lo a partir do coacutedigo-fonte Haacute pacotes do pro-grama para algumas distribuiccedilotildees o que pode facilitar a instalaccedilatildeo e a integraccedilatildeo agrave distribuiccedilatildeo Poreacutem o objetivo deste artigo eacute possibili-tar a instalaccedilatildeo em qualquer sis-tema Assim baixe o coacutedigo-fonte do pacote xrdp [2] descompacte-o e compile-o

$ tar zxvf xrdp-041targz$ cd xrdp-041$ make

Em seguida instale-o usando pri-vileacutegios de root

make install

Os arquivos executaacuteveis scripts e bibliotecas seratildeo instalados no diretoacuterio usrlocalxrdp e os arquivos de con-figuraccedilatildeo no diretoacuterio etcxrdp

A documentaccedilatildeo do aplicativo eacute um pouco obscura sobre o que fazer a seguir Embora tenhamos decidido no comeccedilo natildeo mudar nenhum dos paracircmetros nos arquivos sesmanini e xrdpini disponiacuteveis em etcxrdp e tenhamos abordado a situaccedilatildeo

CA

PA

Figura 2 Forneccedila seu usuaacuterio e sua senha do sistema Linux

Figura 1 Janela de conexatildeo com o desktop remoto

copy Linux New Media do Brasil Editora Ltda

41

| CAPAxrdp

como um administrador de sistemas Windows assumindo que as coisas iriam funcionar sem necessidade de muitos ajustes agrave configuraccedilatildeo nesse ponto essa abordagem comeccedila a se tornar frustrante

Uma vez com o sistema instala-do os seguintes comandos devem ser executados como root

cd usrlocalxrdp cp xrdp_controlsh etcinitdxrdp_control

Em seguida em distribuiccedilotildees derivadas do Red Hat os seguintes comandos se aplicam

chkconfig --add xrdp_control

chkconfig xrdp_control on service xrdp_control start

Jaacute em distribuiccedilotildees derivadas do De-bian esses satildeo os comandos

update-rcd xrdp_control defaults update-rcd xrdp_control start 80 3 4 stop 0 1 6 etcinitdxrdp_control start

O script xrdp_controlsh controla os serviccedilos de ativaccedilatildeo desativaccedilatildeo e reinicializaccedilatildeo do pro-grama Ao copiar o script para o diretoacuterio etcinitd pode-se retirar a ex-tensatildeo sh por motivos esteacuteticos ndash nenhum ou-tro script desse diretoacuterio possui essa extensatildeo em-bora todos sejam scripts de shell

Em sistemas baseados em FedoraRed Hat o comando chkconfig eacute um utilitaacuterio para atualizar e buscar informaccedilotildees sobre o niacutevel de execuccedilatildeo para serviccedilos de sistema ma-nipulando os vaacuterios links simboacutelicos em etcinitd para ali-viar um pouco os administradores de

sistema da tarefa tediosa de editar os links simboacuteli-cos e a necessi-dade de manipu-lar esses serviccedilos manualmente

Haacute pacotes para esse apli-cativo disponiacute-veis para outras distribuiccedilotildees como Debian e Ubuntu mas o correto eacute usar a ferramenta ade-quada para a sua distribuiccedilatildeo

Assim para criar um novo serviccedilo de inicializaccedilatildeo copie seu script de controle para etcinitd confor-me mostrado acima e entatildeo use o comando chkconfig para ativaacute-lo A linha chkconfig xrdp_control on de-fine os niacuteveis de execuccedilatildeo (runlevels) do serviccedilo (ver tabela 1) Por exemplo o comando chkconfig --level 35 xrdp_control configura o xrdp_con-trol para funcionar nos niacuteveis de execuccedilatildeo 3 e 5 O uacuteltimo comando na listagem acima inicia os serviccedilos sesman e xrdp

Para se conectar ao serviccedilo RDP no servidor Linux a partir de um PC com Windows basta fazer exatamente como se faria com um servidor Win-dows como mostra a figura 1

O cliente RDP abre uma nova janela conforme ilustrado na figura 2 solicitando o nome de usuaacuterio e a senha que satildeo aqueles configu-rados no servidor Linux Forneccedila um nome e uma senha vaacutelidos e clique em OK Mesmo que a maacute-quina Linux esteja configurada para usar um domiacutenio do serviccedilo Active Directory ainda seraacute preciso adicio-nar cada usuaacuterio aos sistemas Linux que se desejar acessar via RDP Para fazer isso crie primeiramente um grupo para todos os usuaacuterios do serviccedilo RDP

Tabela 1 Niacuteveis de execuccedilatildeo no Linux

0 Desligar

1 Modo monousuaacuterio

2 Multiusuaacuterio sem NFS

3 Multiusuaacuterio completo

4 Natildeo utilizada

5 X11 (graacutefico)

Detalhe haacute distribuiccedilotildees que utilizam o niacutevel 4 como ambiente graacutefico semelhante ao niacutevel 5

Figura 3 Registro do gerenciador de sessatildeo da conexatildeo xrdp

Figura 4 Uma conexatildeo com o desktop pronta para usar

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

42 httpwwwlinuxmagazinecombr

CAPA | xrdp

groupadd rdpusers useradd -g rdpusers fulano passwd fulano

Caso o usuaacuterio jaacute exista no sis-

tema use o comando usermod para adicionaacute-lo ao grupo de usuaacuterios do serviccedilo RDP

usemod -G rdpusers fulano

Embora natildeo seja explicitamente necessaacuterio para o acesso um grupo especial simplifi ca a administraccedilatildeo do sistema Forneccedila agora o nome do usuaacuterio criado e a sua senha e entatildeo clique em OK

A tela mostrada na figura 3 de-veraacute aparecer Essa eacute a janela de registro do gerenciador de sessotildees da conexatildeo que ilustra a negocia-ccedilatildeo entre o cliente e o servidor Perceba que o gerenciador de ses-sotildees conecta primeiramente agrave porta associada ao serviccedilo RDP e entatildeo agrave porta de um serviccedilo VNC para entatildeo apresentar o desktop Linux a vocecirc A figura 4 mostra um desktop CentOS 5

Quando desconectando de uma sessatildeo RDP em Linux vocecirc veraacute a tela mostrada na fi gura 5 Perceba que somente duas accedilotildees estatildeo dis-poniacuteveis Encerrar sessatildeo atual e Cancelar que satildeo recursos padratildeo de conexotildees VNC remotas

O servidor Linux executa os progra-mas xrdp e sesman e fi ca aguardando co-nexotildees RDP Assim que um cliente de serviccedilos de terminais Windows tenta se conectar ao servidor RDP o servidor e o cliente negociam um niacutevel de criptografi a trocam chaves e veri-fi cam quais recursos estatildeo disponiacuteveis A partir daiacute o cliente escolhe a quantidade de cores e a resoluccedilatildeo da tela que seraacute usada na sessatildeo

Se o usuaacuterio fornecer um nome e uma senha no aplicativo cliente a autenticaccedilatildeo eacute iniciada Caso con-traacuterio o usuaacuterio seleciona o moacutedu-lo de uma lista do tipo drop-down e fornece um usuaacuterio e uma senha na tela de login conforme ilustra a fi gura 6

O moacutedulo libvnc eacute carregado e uma conexatildeo TCP eacute feita para o endereccedilo 127001 ou para o en-dereccedilo IP especifi cado no arquivo etcxrdpxrdpini As credenciais de login do usuaacuterio a resoluccedilatildeo da tela e a quantidade de cores satildeo fornecidas ao aplicativo sesman para fi ns de autenticaccedilatildeo Se o sesman

encontrar uma sessatildeo ativa com a resoluccedilatildeo e a quantidade de cores especifi cadas ele retor-na essa tela ao usuaacute-rio Caso contraacuterio ele inicia uma nova instacircncia xvnc com as especifi caccedilotildees de am-biente do usuaacuterio

Conclusotildees O xrdp eacute faacutecil de ins-talar confi gurar cus-tomizar e usar E ndash o que eacute melhor ndash natildeo eacute

necessaacuterio experiecircncia em Linux para trabalhar com essa poderosa ferra-menta Como natildeo haacute o que instalar no cliente Windows natildeo daacute para se complicar com o xrdp

Muito embora este artigo natildeo mostre qualquer tipo de anaacutelise ex-tensiva de desempenho de rede ou uso de banda com esse aplicativo como se trata de RDP eacute sabido que a performance comeccedila a cair quando o nuacutemero de usuaacuterios simultacircneos conectados se aproxima da marca de 25 Contudo vale a pena conhe-cer o xrdp e integraacute-lo ao seu arse-nal de ferramentas independentes de plataforma

Sobre o autor Ken Hess eacute editor de material teacutecnico e jornalista freelance Ele escreve sobre uma grande variedade de temas envolvendo sistemas de coacutedigo aberto entre eles Li-nux bancos de dados e virtualizaccedilatildeo Agradecimentos especiais a Jay Sorg do projeto xrdp e a Matt Chapman do proje-to rdesktop pela ajuda no desenvolvimen-to deste artigo

Mais informaccedilotildees

[1] rdesktop httpwwwrdesktoporg

[2] xrdp httpxrdpsourceforgenet

Figura 5 Janela de fi nalizaccedilatildeo de sessatildeo do VNC

Figura 6 Tela de login do xrdp

copy Linux New Media do Brasil Editora Ltda

43

| CAPAxrdp

Linux Magazine 50 | Dezembro de 2008

SE

CcedilAtilde

O

pocket_atualizadoindd 61 261108 142709

copy Linux New Media do Brasil Editora Ltda

44 httpwwwlinuxmagazinecombr

A possibilidade de realizar uma certa tarefa num momento especiacutefico ou em intervalos

regulares eacute obrigatoacuteria para adminis-tradores de sistemas O cron daemon original oferece um meacutetodo faacutecil para agendar tarefas em sistemas baseados em Unix Embora o Cron tenha recebido diversas melhorias ao longo dos anos suas versotildees mais recentes ainda satildeo projetadas para agendamentos muito simples Administradores que precisam de algo minimamente incomum satildeo obrigados a criar scripts ou a incluir os recursos de que precisam em um dos scripts iniciados pelo Cron

Imagine quanto tempo seria eco-nomizado se natildeo fosse mais neces-saacuterio criar e alterar esses scripts ou ter qualquer outro trabalho para fazer com que os programas rea-jam a condiccedilotildees de erro e sejam executados na exata hora em que deveriam Vaacuterios produtos comer-

ciais oferecem esse recurso mas podem significar uma mordida no orccedilamento de TI Felizmente o mundo do Coacutedigo Aberto tambeacutem oferece soluccedilotildees de agendamento aleacutem do Cron

Assim como em qualquer software de agendamento a unidade primaacuteria eacute o job ou tarefa que geralmente eacute um script ou programa iniciado pelo software de agendamento Em vaacuterios casos o Cron eacute suficiente para suprir os requisitos mais baacutesicos de agen-damento tais como executar uma tarefa uma vez por dia (becapes por exemplo) ou tarefas que precisem ser executadas em intervalos mais frequumlentes menos frequumlentes ou em datas especiacuteficas

Poreacutem quando comeccedilamos a lidar com dependecircncias de algum tipo rapidamente eacute possiacutevel perceber as limitaccedilotildees do Cron ndash por exemplo se for necessaacuterio iniciar um progra-ma especiacutefico apoacutes um certo evento

Haacute casos de verdadeiras seacuteries de co-mandos que precisam ser executados em ordem e precisam todos ter su-cesso ndash se um dos comandos falhar a execuccedilatildeo dos seguintes causaria grandes problemas Nem as versotildees mais novas do Cron conseguem li-dar com isso principalmente se for necessaacuterio iniciar uma tarefa jaacute no meio da cadeia de comandos

Muitas tarefas precisam ser ge-renciadas em muacuteltiplas maacutequinas entatildeo um bom software de agen-damento permite que se gerencie todas as maacutequinas a partir de um ponto central inicie tarefas remo-tamente e assim por diante Para distribuir crontabs para essas maacutequi-nas remotas pode-se usar o Rsync mas isso rapidamente se torna um pesadelo administrativo quando a configuraccedilatildeo eacute diferente ao longo das maacutequinas ou quando as tare-fas agraves vezes precisam ser iniciadas manualmente ou ainda quando haacute

CA

PA

O agendador Open Source Job Scheduler

Muito aleacutem do CronPlanejar e agendar tarefas computacionais pode exigir muito trabalho principalmente se abranger muacuteltiplas maacutequinas Conheccedila uma ferramenta que facilita muito essa aacutereapor James Mohr

copy Linux New Media do Brasil Editora Ltda

45

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

outras tarefas que natildeo fazem parte do Cron

MultiplataformaApesar de ser possiacutevel instalar ver-sotildees abertas do Cron no Windows lidar com diferentes sistemas ope-racionais causa ainda mais proble-mas Por exemplo alguns dialetos de Unix natildeo suportam um arquivo etccrontab central entatildeo eacute preciso criar um arquivo para cada usuaacuterio O Cron era uma boa ferramenta nessa eacutepoca e geralmente ainda eacute mas as necessidades de muitas empresas jaacute superam suas funcionalidades

As limitaccedilotildees do Cron natildeo pas-saram despercebidas Haacute produtos comerciais que custam pequenas fortunas e costumam ser licenciados com base no nuacutemero de servidores ou de scripts a serem iniciados

Por sua vez os problemas dos pro-dutos comerciais tambeacutem natildeo passa-ram despercebidos pela comunida-de do Coacutedigo Aberto Uma soluccedilatildeo surpreendente eacute o Open Source Job Scheduler desenvolvido pela alematilde SOS (Software- und Organisations-Service) Haacute versotildees para Linux So-laris HP-UX (PA-RISC IA64) AIX e Windows Ele tambeacutem suporta vaacuterios bancos de dados incluindo DB2 Oracle MS SQL Server PostgreSQL e MySQL

O software adota um esquema de duplo licenciamento pela GPL e a Guaranteed License (Licenccedila Ga-rantida) Trata-se do mesmo coacutedigo com funcionalidades atualizaccedilotildees e coacutedigo-fonte idecircnticos

A receita da SOS natildeo proveacutem da venda de seu produto mas dos serviccedilos e do suporte Poreacutem estra-nhamente a empresa natildeo anuncia seu produto ndash nem seus serviccedilos ndash da forma tradicional Ao demonstrar o produto o objetivo natildeo eacute convencer clientes potenciais mas mostrar-lhes o que o produto pode fazer e deixar que eles decidam se ele supre suas necessidades

A versatildeo comercial tambeacutem oferece uma ldquopessoa responsaacutevelrdquo para cada chamado de serviccedilo com tempos de resposta garantidos e pedidos de re-cursos recebem maior prioridade de implementaccedilatildeo Aleacutem disso essa ver-satildeo natildeo possui as restriccedilotildees da GPL entatildeo pode ser embutida em outros aplicativos (comerciais ou natildeo) sem que este precise aderir agrave GPL

Diferente da maioria dos softwa-res comerciais e de coacutedigo aberto a SOS oferece garantia limitada de dois anos e um acordo de indeni-zaccedilatildeo Segundo seu diretor a em-presa se sente obrigada a fornecer ao cliente um retorno por seu pa-gamento e isso tambeacutem se estende a discrepacircncias entre o produto e a documentaccedilatildeo

EstruturaO componente central do pacote eacute o mecanismo de agendamento de tarefas que roda em cada uma das maacutequinas que as agendaratildeo Esse meacute-todo eacute diferente de executar a tarefa pode-se ter um agendador em cada

maacutequina com todos agindo como escravos de um central mas tam-beacutem eacute possiacutevel usar um agendador completo em cada uma delas Esse mecanismo pode ser expandido para permitir o balanceamento de carga por meio de muacuteltiplos servidores

Um aspecto importante a ser considerado eacute chamado de order (pedido) que consiste em um sinal passado entre tarefas Dependendo de suas configuraccedilotildees as tarefas natildeo tecircm permissatildeo de iniciar ateacute rece-berem seu pedido

Na forma mais simples pedidos satildeo como o bastatildeo numa corrida de revezamento entregues por cada tarefa para a seguinte Aleacutem disso eacute possiacutevel configurar pedidos com horas especiacuteficas de iniacutecio para que sejam gerados automaticamente pelo sistema no momento especificado e depois a cadeia respectiva possa se iniciar

Note que para conseguir reagir a um pedido uma tarefa precisa ser configurada para aceitaacute-lo mas o pedido soacute pode ser associado a uma

Figura 1 Janela do editor graacutefico do agendador de tarefas

copy Linux New Media do Brasil Editora Ltda

46 httpwwwlinuxmagazinecombr

CAPA | Agendamento

cadeia de tarefas e natildeo a uma ta-refa especiacutefica Ou seja o pedido eacute passado de tarefa para tarefa dentro da cadeia mas eacute associado somente agrave cadeia Se for desejaacutevel que uma uacutenica tarefa se inicie num momento especiacutefico por exemplo isso pode ser feito dentro da proacutepria tarefa Outro componente importante satildeo os Hot Folders (pastas quentes) que seatildeo di-retoacuterios monitorados pelo agendador em busca de alteraccedilotildees tais como a alteraccedilatildeo ou criaccedilatildeo de tarefas

TarefasTarefas podem ser configuradas a partir da interface graacutefica do editor do agendador (figura 1 chamado aqui de ldquoeditor de tarefasrdquo) ou por arqui-vos XML editados manualmente O editor de tarefas eacute um aplicativo em Java que configura vaacuterias tarefas ca-deias e outros aspectos do sistema Todas as informaccedilotildees de configura-

ccedilatildeo do sistema satildeo armazenadas em arquivos XML e basta abrir o arquivo XML respectivo no editor de tarefas para fazer alteraccedilotildees Poder usar o Vim em arquivos de configuraccedilatildeo eacute mais que uma becircnccedilatildeo em casos de alteraccedilotildees em massa

Os arquivos XML podem ser copiados para maacutequinas remotas e salvos via FTP diretamente a partir do editor de tarefas Quando ater-rissam num Hot Folder os arquivos ficam imediatamente disponiacuteveis para o mecanismo do agendador na maacutequina remota

A interface graacutefica do editor de tarefas natildeo eacute tatildeo intuitiva quanto poderia e vaacuterios campos parecem misteriosos a princiacutepio Como a documentaccedilatildeo deixa a desejar fal-tam explicaccedilotildees sobre muitos desses campos Em alguns casos a docu-mentaccedilatildeo dos arquivos XML ajuda a tirar as duacutevidas

Apesar de as informaccedilotildees de con-figuraccedilatildeo serem armazenadas em arquivos XML por padratildeo eacute pos-siacutevel configurar o agendador para usar diversos bancos de dados dife-rentes Essas tarefas satildeo chamadas de ldquogerenciadasrdquo e cada agendador instalado pode ser configurado para acessar as tarefas no banco de da-dos para natildeo ser necessaacuterio copiar os arquivos manualmente

A operaccedilatildeo cotidiana do siste-ma eacute realizada pela sua interface graacutefica (chamada neste artigo de ldquointerface de operaccedilatildeordquo) que eacute acessada por um navegador e per-mite o gerenciamento das tarefas a partir de qualquer maacutequina Com essa interface eacute possiacutevel natildeo apenas monitorar as tarefas mas tambeacutem iniciaacute-las paraacute-las tratar seus erros e muitas outras funccedilotildees

O agendador de tarefas tambeacutem oferece uma API que permite o ge-renciamento e o controle externos de tarefas A API suporta vaacuterias lin-guagens incluindo Perl VBScript JavaScript e Java Surpreendente-mente natildeo haacute suporte a PHP ape-sar da possibilidade de se gerenciar tarefas a partir de um navegador web e da documentaccedilatildeo de scripts PHP de exemplo

InstalaccedilatildeoOs exemplos deste artigo foram feitos com a versatildeo 134 para Li-nux que pode ser baixada do site do Job Scheduler no SourceForge [1] Se houver intenccedilatildeo de se usar um banco de dados MySQL como neste artigo note que o programa natildeo fornece um driver JDBC para esse banco embora haja drivers para Oracle e outros bancos O driver JDBC para MySQL pode ser baixado diretamente do site do MySQL [2] Basta digitar o caminho do arquivo jar apropriado durante a instalaccedilatildeo

Antes de comeccedilar eacute recomen-daacutevel ler o guia de instalaccedilatildeo em Figura 2 Digitaccedilatildeo do coacutedigo-fonte diretamente no editor de tarefas

copy Linux New Media do Brasil Editora Ltda

47

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

PDF incluiacutedo no pacote Aleacutem dis-so haacute vaacuterios outros PDFs no site da empresa [3] mais aprofundados em diversos toacutepicos Fique ciente ateacute para obter as informaccedilotildees mais baacutesicas na documentaccedilatildeo eacute preciso ser um tanto familiarizado com a programaccedilatildeo orientada a objetos e XML pois a documentaccedilatildeo natildeo fornece qualquer introduccedilatildeo a esses toacutepicos Aleacutem disso ela natildeo eacute bem organizada entatildeo saiba que seraacute preciso procurar bastante Apesar de ser volumosa a documentaccedilatildeo natildeo eacute faacutecil de usar o que eacute algo que a empresa pretente melhorar

No Linux a instalaccedilatildeo ocorre por meio de um instalador em Java e se for feita por um usuaacuterio nor-mal o padratildeo eacute os arquivos serem abrigados em $HOMEscheduler Se for instalado como root o diretoacuterio do programa eacute usrlocalschedu-ler Apoacutes instalar o produto haacute um arquivo README que recomenda que o programa natildeo seja instalado como root mas natildeo haacute menccedilatildeo a isso no guia de instalaccedilatildeo e con-figuraccedilatildeo Para evitar problemas potenciais vamos instalaacute-lo como usuaacuterio normal

Durante a instalaccedilatildeo satildeo pedidos o tipo do banco de dados e infor-maccedilotildees da conexatildeo Natildeo fica claro se o campo ldquodatabase parametersrdquo deve receber os paracircmetros de co-nexatildeo apoacutes o banco de dados estar em execuccedilatildeo ou os paracircmetros de conexatildeo para criaccedilatildeo do banco de dados Infelizmente recomenda-se criar um banco de dados e um usuaacuterio para o programa usar mas isso soacute eacute mencionado apoacutes todas as etapas de instalaccedilatildeo Criar o banco de dados manualmente e conferir privileacutegios do banco antes de iniciar a instalaccedilatildeo jaacute resolve

A instalaccedilatildeo eacute relativamente in-tuitiva mas leva alguns minutos para criar e preencher as tabelas do banco de dados Para instalar o Scheduler em muacuteltiplas maacutequinas com os mes-

mos paracircmetros haacute a opccedilatildeo de criar um script automaticamente ao final da primeira instalaccedilatildeo

IniciandoIndependentemente de a instala-ccedilatildeo ocorrer sob o root ou um usuaacute-rio normal eacute necessaacuterio iniciar o agendador manualmente Seu controle eacute feito como num script rc comum

$HOMEschedulerbinjobschedulersh start$HOMEschedulerbinjobschedulersh stop

Para iniciar o Scheduler auto-maticamente na inicializaccedilatildeo re-comenda-se criar um usuaacuterio espe-ciacutefico para ele e depois um script rc que use o comando su para se tornar esse usuaacuterio e iniciar o programa Se houver necessidade de tarefas serem executadas sob o root ou ou-tro usuaacuterio com mais privileacutegios eacute possiacutevel configurar um ambiente sudo apropriado

Novas tarefasPara criar tarefas pode-se ou edi-tar os arquivos XML diretamente ou pelo editor de tarefas No Li-nux execute o script jobeditorsh localizado por padratildeo em usrlo-calschedulerbin ou $HOMEsche-dulerbin

Como exemplo considere a ta-refa tiacutepica de criaccedilatildeo de um beca-pe da configuraccedilatildeo do sistema Por ora vamos supor que isso seja feito diariamente com o script usrbinbecapesh

Primeiramente inicie o editor de tarefas e selecione New | Hot Folder Element | Job (figura 1) No primei-ro formulaacuterio comece digitando as informaccedilotildees baacutesicas de sua tarefa Para este exemplo digite o nome Becape das configuraccedilotildees no campo Job Title adicione uma descriccedilatildeo ou deixe em branco

No painel esquerdo clique em Execute para digitar os detalhes sobre o programa ou script que se deseja iniciar Como o objetivo eacute executar um script externo selecione o botatildeo

Figura 3 Interface de operaccedilatildeo do Job Scheduler

copy Linux New Media do Brasil Editora Ltda

48 httpwwwlinuxmagazinecombr

CAPA | Agendamento

Run executable e digite o caminho completo do script referido Nesse ponto tambeacutem eacute possiacutevel definir masi paracircmetros a ser passados para o script Por exemplo se o becape comprimir os arquivos armazenados pode ser interessante acrescentar um -c a esse campo

Aleacutem disso pode-se incluir os passos individuais de execuccedilatildeo se-lecionando-se o botatildeo Script e o tipo de coacutedigo do programa depois digitando o coacutedigo-fonte na caixa apropriada Note que isso eacute mais que o nome de um script e pode incluir estruturas de programaccedilatildeo baseadas na linguagem seleciona-da (figura 2)

Para salvar a tarefa pressione o botatildeo Save ou escolha Save no menu File Na primeira vez em que o ar-quivo eacute salvo eacute preciso digitar um nome para ele Para isso navegue ateacute o diretoacuterio configlive e salve o arquivo como becape assim

a extensatildeo xml seraacute adicionada au-tomaticamente

Via navegadorComo o arquivo foi salvo no dire-toacuterio live ele fica imediatamente visiacutevel para o sistema Esse diretoacuterio eacute preacute-definido como um Hot Folder que o sistema lecirc regularmente Nesse ponto a tarefa natildeo foi agendada mas apenas adicionada ao sistema Para iniciar a tarefa eacute preciso executar a interface de operaccedilatildeo apontando seu navegador para httplocal-host4444

Em conexotildees pelo navegador o Scheduler exibe uma interface semelhante agrave da figura 3 Para ver os detalhes da tarefa decirc um duplo clique na tarefa de becape na colu-na agrave esquerda Para executar a tarefa imediatamente clique no botatildeo Job menu e selecione Start task now

Por ser muito faacutecil iniciar o script pela linha de comando isso natildeo eacute

nada espetacular Eacute possiacutevel voltar ao editor de tarefas e clicar na en-trada Run Time no painel esquerdo e selecionar uma hora para a exe-cuccedilatildeo da tarefa Para isso clique em Everyday (todos os dias) e de-fina um novo periacuteodo clicando no botatildeo new Period Em Start Time digite algo como 0900 no campo Single Start Depois clique no bo-tatildeo Save e essa nova configuraccedilatildeo seraacute ativada ndash a tarefa teraacute iniacutecio todos os dias agraves 9 horas

Ateacute agora a uacutenica vantagem do programa sobre o Cron eacute uma inter-face amigaacutevel ndash mas isso eacute apenas o comeccedilo Quando comeccedilamos a conhecer as cadeias de tarefas vemos o poder do agendamento de tarefas

BecapePrimeiro suponha que vocecirc tenha criado uma segunda tarefa que faccedila um becape do banco de dados que deve ser executada imediatamente apoacutes o fim do becape das configu-raccedilotildees Uma alternativa eacute criar um uacutenico script que faccedila primeiro o becape das configuraccedilotildees e imedia-tamente depois inicie o do banco de dados Poreacutem cadeias de tarefas satildeo uacuteteis em vaacuterias situaccedilotildees mais complexas em que natildeo eacute possiacutevel simplesmente lanccedilar matildeo de um script shell as quais seratildeo discutidas mais adiante

Assim como na primeira tarefa crie um novo elemento no Hot Folder mas selecione Job Chains Digite o nome da cadeia (Chain Name) e caso se deseje tambeacutem um tiacutetulo (Title) Como cada ele-mento de uma cadeia eacute chamado de noacute (Node) eacute preciso adicionar um New Chain Node a seguir clicando no botatildeo respectivo Caso o nome da tarefa seja conhecido pode-se digitaacute-lo manualmente ou usar o botatildeo Browse para procuraacute-la

No campo State eacute possiacutevel definir um estado para essa etapa ou noacute

Figura 4 As dependecircncias entre as tarefas podem ser exibidas com uso do Job Chain Illustration

copy Linux New Media do Brasil Editora Ltda

49

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

Definido estados eacute possiacutevel criar um fluxo mais complexo para as tarefas Por exemplo pode-se criar um esta-do chamado Erro e se alguma tarefa anterior apresentar um erro pula-se imediatamente para a tarefa definida com esse estado pulando todas as outras Aleacutem disso eacute possiacutevel exe-cutar diferentes tarefas de erro para cada uma das vaacuterias etapas

Mais cadeiasEmbora criar uma cadeia de tare-fas que consista em apenas uma uacutenica tarefa possua certas vanta-gens natildeo pare nesse ponto Como mencionado eacute melhor uma tarefa de becape constituiacuteda por duas etapas entatildeo vamos criar uma segunda cadeia com a tarefa de becape do banco de dados e con-figuraacute-la de forma semelhante agrave segunda tarefa Em nosso exem-plo definimos o primeiro noacute com o estado Iniacutecio e o segundo com o estado Fim embora isso natildeo seja necessaacuterio

Ao se clicar no botatildeo Save eacute mostrada a nova cadeia na aba Job Chains da interface de operaccedilatildeo Marcar a caixa Show Jobs exibe as tarefas individuais que compotildeem a cadeia Um duplo clique na ca-deia abre o painel de detalhes no lado direito como ocorreu com a tarefa uacutenica

Nesse ponto a cadeia de tarefas ainda natildeo seraacute executada porque precisa de um pedido que pode ser inserido manualmente no menu Job | Add Order Eacute mostrada uma nova janela que permite a definiccedilatildeo de vaacuterias caracteriacutesticas do pedido como ID horaacuterio de iniacutecio e ateacute estado da cadeia Neste exemplo apenas deixe tudo em branco e o sistema criaraacute sozinho uma ID de pedido

Se natildeo tiver sido definida uma condiccedilatildeo a cadeia inicia imedia-tamente poreacutem pode ser definida uma fatia de tempo (Time Slot) para qualquer uma dessas tarefas e

o Scheduler esperaria a hora certa para iniciar a tarefa

Note que as tarefas precisam ser capazes de aceitar pedidos para reagir a eles Esta etapa eacute feita na janela de configuraccedilatildeo para as ta-refas individuais Na janela Main Options haacute um botatildeo On Order que precisa ser definido como Yes caso contraacuterio o pedido natildeo ini-ciaraacute a tarefa

Ateacute aqui iniciamos tudo manu-almente Como precisamos definir um pedido para iniciar a cadeia de tarefas obviamente eacute necessaacuteria uma forma de criar pedidos dinami-camente Uma maneira seria criar um pedido numa hora especiacutefica o que por sua vez aciona a cadeia de tarefas Como se pode esperar isso eacute feito pelo menu New | Hot Folder Element | Order Apoacutes dar um nome ao pedido e selecionar a janela Job Chains selecione a cadeia especiacutefica a ser associada a esse pedido Note que um pe-dido soacute pode ser associado a uma uacutenica cadeia Depois defina um novo horaacuterio (Time Period) e um Single Start agraves 0900 Para ativar imediatamente as alteraccedilotildees eacute preciso armazenaacute-la no diretoacuterio configlive

Ao retornar agrave interface de opera-ccedilatildeo pode-se ver que agora haacute um pedido associado agrave cadeia criada Abaixo do pedido uma entrada next start (proacuteximo iniacutecio) mostra a data e hora em que o pedido iniciaraacute Como jaacute passou das 900 am neste exemplo a data eacute amanhatilde Se for usado outro horaacuterio de iniacutecio como o dia primeiro o proacuteximo iniacutecio se-ria nessa data

ControlePara definir o periacuteodo das tarefas cadeias e pedidos eacute possiacutevel esta-belecer um horaacuterio para o iniacutecio de uma tarefa assim como um in-tervalo entre execuccedilotildees (a cada 12 horas por exemplo) Essa segunda

opccedilatildeo natildeo eacute uacutetil no caso de cadeias em que as tarefas precisem seguir uma determinada ordem Poreacutem eacute possiacutevel definir um pedido que seja iniciado diariamente agraves 700 que por sua vez inicie uma cadeia

Haacute tambeacutem definiccedilotildees de tempo como ldquosegundo domingo de cada mecircsrdquo ldquouacuteltimo dia do mecircsrdquo ou ldquoso-mente 8janeiro e 16fevereirordquo

Horaacuterios e intervalos preacute-estabe-lecidos satildeo uacuteteis mas nem sempre eacute possiacutevel saber a priori quando uma tarefa precisaraacute ser realizada No caso daquelas que dependem da existecircncia ou inexistecircncia de algum arquivo eacute possiacutevel definir watch directories (diretoacuterios a ser observados) com regras que aceitam ateacute expressotildees regulares (figura 4)

Pedido proacuteprioDepois de superar as dificuldades iniciais nota-se que o Open Source Job Scheduler eacute um bom produto Com intimidade ele se torna faacutecil de configurar e administrar

A SOS tambeacutem presta um oacutetimo serviccedilo Identifiquei um bug e enviei um patch para um arquivo jar que foi disponibilizado por eles no ser-vidor em menos de um dia Ateacute em uma rede pequena o Open Source Job Scheduler oferece recursos muito uacuteteis Em instalaccedilotildees maiores ele eacute quase indispensaacutevel

Mais informaccedilotildees

[1] Open Source Job Scheduler httpjobschedulersourceforgenet

[2] Driver JDBC para MySQL httpwwwmysqlcomproductsconnector

[3] Software- und Organisations-Service GmbH httpwwwsos-berlincomscheduler

copy Linux New Media do Brasil Editora Ltda

50 httpwwwlinuxmagazinecombr

Faccedila belos graacuteficos via navegador com a API do Google Chart

Graacuteficos via webA API do Google Chart permite desenhar graacuteficos planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simplespor Martin Streicher

Se uma imagem vale mais que mil palavras um graacutefico deve ser algo semelhante a uma no-

vela Em apenas um piscar de olhos um graacutefico pode transmitir o estado do mercado de accedilotildees a tendecircncia de traacutefego em um website a distribui-ccedilatildeo dos eleitores por regiatildeo aleacutem de informar como a verba eacute distribuiacuteda em um orccedilamento familiar Aleacutem dis-so um graacutefico eacute simplesmente mais compreensiacutevel do que uma enorme tabela cheia de nuacutemeros

Poreacutem eacute estranho vermos que muito poucos sites utilizam graacuteficos em seu benefiacutecio Isso acontece em grande parte porque a criaccedilatildeo de graacuteficos requer um software espe-cializado Por exemplo se o site eacute baseado em PHP eacute preciso instalar o pChart [1] adicionar a biblioteca

graacutefica GD e escrever o coacutedigo para produzir algum tipo de graacutefico Ide-almente qualquer um ndash um editor escritor ou mesmo um usuaacuterio adi-cionando comentaacuterios ndash deve ser capaz de criar e embutir graacuteficos em suas paacuteginas

Na verdade o dinamismo a sim-plicidade e a conveniecircncia estatildeo no cerne da interface de programaccedilatildeo de aplicaccedilatildeo (API) Google Chart [2] e talvez essa seja a descriccedilatildeo mais pre-cisa para um Software como Serviccedilo (SaaS) Simplesmente crie uma URL parametrizada como httpchartapisgooglecomchartparacircmetro1ampparacircmetro2ampparacircmetroN e deixe o Google Chart fazer todo o trabalho pesado O Google Chart permite que vocecirc renderize seis tipos de graacuteficos um Google-o-meter um QR code (espeacutecie de coacutedigo de barras) e mapas Aleacutem disso eacute possiacutevel usar praticamente um gugol de opccedilotildees de personalizaccedilatildeo tais como a barra de cores a cor de fundo a legenda e muito mais

Este artigo ajuda nos primeiros passos no uso do Google Chart Vocecirc aprenderaacute a desenhar graacuteficos e adi-cionar efeitos especiais para melhorar suas criaccedilotildees graacuteficas

Elementos de graacuteficosPara gerar um graacutefico com o Google Chart forneccedila o prefixo httpchartapisgooglecomchart o tipo de graacute-

fico (tal como torta ou de linhas) o tamanho do graacutefico seus dados e quaisquer paracircmetros especiacuteficos como as cores e os roacutetulos dos eixos para adequaacute-lo ao resultado final

Todas as opccedilotildees do graacutefico satildeo associadas a pares de valores do tipo chave=valor Algumas chaves satildeo comuns para todos os graacuteficos en-quanto outras satildeo exclusivas para um determinado tipo Da mesma forma a sintaxe para o valor especificado no par tende a variar de acordo com o tipo de graacutefico

O tamanho do graacutefico eacute medido em pixels e especificado com o paracircmetro chs=LxA em que L eacute a largura e A eacute a altura Por exemplo chs=200x100 gera um graacutefico de 200 pixels de lar-gura por 100 pixels de altura A aacuterea de um mapa natildeo pode exceder 440 pixels de largura por 220 de altura Para todos os outros graacuteficos nem a largura nem a altura podem exceder 1000 pixels e a aacuterea maacutexima eacute de 300000 pixels quadrados

O tipo de graacutefico eacute escolhido com o par cht=tipo em que tipo eacute uma das diversas constantes preacute-de-finidas Por exemplo para desenhar um graacutefico de linhas simples com pontos equidistantes do eixo x es-pecifique cht=lc Para cada tipo de graacutefico pode-se consultar a constan-te apropriada na documentaccedilatildeo do Google Chart

TU

TO

RIA

L

Figura 1 Um graacutefico de linha simples produzido pela API do Google Chart

copy Linux New Media do Brasil Editora Ltda

51

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Os dados de um graacutefico podem ser fornecidos em vaacuterios formatos ndash a partir de uma lista de dados brutos simples ateacute uma coleccedilatildeo de coacutedigos alfanumeacutericos para mapear valores de uma escala preacute-definida

Normalmente o conjunto de da-dos brutos eacute constituiacutedo por uma lista de valores separados por viacutergulas e um conjunto de dados codificados eacute uma sequumlecircncia contiacutenua de caracte-res alfanumeacutericos Por exemplo para fornecer dados como texto simples utilize chd=tvalores em que valo-res eacute uma lista de valores de ponto flutuante positivos entre 0 e 100 de-limitados por viacutergula O caractere _ (traccedilo baixo) pode ser usado como um espaccedilo reservado para a falta de um dado Muacuteltiplos conjuntos de dados satildeo delimitados pelo caractere | (pipe ou barra vertical)

Para demonstrar abra um nave-gador e digite a URL httpchartapisgooglecomchartcht=lcampchs=500x400ampchd=t7392079|1515181101612ampchco=FF000000FF00 na barra de endereccedilos Como se pode adivinhar o paracircmetro chco lista os valores RGB para colorir cada gru-po de dados

A figura 1 mostra o exemplo de um graacutefi-co de linha incluindo seus elementos (eixos tiacutetulos e legendas) A URL utilizada para gerar o graacutefico eacute mostrada no exemplo 1 Cada URL mostrada nesse artigo abrange vaacuterias linhas de forma intencional para melhor legibilidade

De forma resumida chtt fornece o tiacutetulo do graacutefico Os dados satildeo fornecidos como valores brutos expres-sos em texto simples mas como os valores satildeo superiores a 100 chds fornece um valor

miacutenimo e um maacuteximo para norma-lizar os dados para um percentual Aqui como os dois conjuntos de dados estatildeo dentro do mes-mo intervalo bastam um valor miacutenimo e um maacuteximo para ambos No entanto se cada um dos conjuntos de dados for traccedilado a partir de uma uacutenica seacuterie eacute preciso fornecer um valor miacutenimo e maacuteximo para cada conjunto O paracircmetro chxt eacute combi-nado com o chxl e com o chxp para criar e posicionar os roacutetulos dos eixos

Acredite ou natildeo desenhar um graacutefico eacute realmente sim-ples Para inserir um graacutefico em um paacutegina web use uma tag img src e defina seu atri-buto src para a URL do graacute-fico Forneccedila uma descriccedilatildeo para o graacutefico por meio do atributo alt

CartografiaDesenhar um mapa com o serviccedilo Google Chart eacute tatildeo simples quanto desenhar qualquer outro graacutefico pri-

meiramente especifique o mape-amento do graacutefico selecione uma regiatildeo do mundo para desenhar e em seguida associe os dados a cada paiacutes proviacutencia ou estado encontrados no mapa Os dados podem ser discretos ndash digamos representar os estados azuis e ver-melhos nos Estados Unidos ndash ou contiacutenuos Aleacutem disso vocecirc pode associar uma cor com o miacutenimo e o maacuteximo em um intervalo e o Google Chart renderiza os valores intermediaacuterios em uma graduaccedilatildeo de cores (degradecirc)

Por exemplo o exemplo 2 gera um mapa dos Estados Unidos mostrando como os estados votaram na eleiccedilatildeo presidencial de 2004 A figura 2 apre-senta os resultados

No exemplo 2 cht=t seleciona o graacutefico de mapa chtm=usa especifica os Estados Unidos como regiatildeo e chs=440x220 desenha o maior mapa

Figura 2 Divisatildeo dos estados em vermelho (republicanos) e azuis (democratas) na eleiccedilatildeo presidencial dos Estados Unidos em 2004

Exemplo 1 Roubo de automoacuteveis na Carolina do Norte

01 httpchartapisgooglecomchart02 cht=lcamp03 chtt=Nuacutemero de automoacuteveis roubadosna NC por mecircs e anoamp04 chs=400x300amp05 chd=t223116582156231823432450258326122522268123262371|06 238119392309224225902642284028372555255824372319amp07 chds=03000amp08 chco=FF00000000FFamp09 chdl=2005|2006amp10 chxt=xyamp11 chxl=0|Jan|June|Dec|1|0|1500|30 00|amp12 chxp=0050100|1050100

Exemplo 2 Estados vermelhos e azuis

01 httpchartapisgooglecomchart02 cht=tamp03 chtm=usaamp04 chs=440x220amp05 chco=FF00000000FF0000FFamp06 chld=CACTDEDCHIILMEMDMAMIMNNHNJNYORPARIVTWAWIamp07 chd=sAAAAAAAAAAAAAAAAAAAA

copy Linux New Media do Brasil Editora Ltda

52 httpwwwlinuxmagazinecombr

TUTORIAL | Google Chart

possiacutevel No graacutefico de mapa chco=FF00000000FF0000FF define as cores padratildeo de cada estado (vermelho)

e a cor de iniacutecio e de final (ambas em azul) do gradiente

O paracircmetro chld conteacutem o coacute-digo de duas letras de cada um dos estados conquistados pelo candidato presidencial democrata Finalmente o paracircmetro chd=s seleciona o es-quema de codificaccedilatildeo simplificada de dados em que todos os valores devem ser representados por um dos caracteres na sequumlecircncia de A-Z a-z e 0-9 sendo A o miacutenimo e 9 o maacuteximo Em outras palavras o es-quema de codificaccedilatildeo simplificada fornece uma granularidade de 62 valores distintos Tendo em conta que todos os estados satildeo coloridos

em vermelho por padratildeo qualquer estado com outro valor ndash aqui A ndash eacute colorido de azul

Quadro 1 Dicas e truques do Google Chart

Essas dicas e truques tornaratildeo seus graacuteficos mais legiacuteveis

Certifique-se de que o tamanho de seu graacutefico eacute su-ficiente para exibir o tiacutetulo os roacutetulos e a legenda da imagem Infelizmente a determinaccedilatildeo da largura miacuteni-ma natildeo tem uma forma algoriacutetmica ndash pode ser preciso utilizar um pouco de tentativa e erro

Para alterar a cor e o tamanho do texto no tiacutetulo do graacute-fico use chts=colorfontsize Aleacutem disso eacute possiacutevel alterar a cor e o tamanho da fonte de um eixo com o roacutetulo chxs Infelizmente natildeo eacute possiacutevel especificar o tipo de fonte

Os quatro eixos satildeo x t y e r ou seja a forma resumi-da para delimitar o eixo inferior x o eixo superior x o eixo agrave esquerda y e o eixo agrave direita y respectivamente Se vocecirc quiser vaacuterios roacutetulos para qualquer eixo repita o nome do eixo no paracircmetro chxt e especifique seus detalhes no chxl

Leia a documentaccedilatildeo da API do Google Chart e dedi-que atenccedilatildeo especial agrave sintaxe de cada opccedilatildeo Mes-mo um erro de um caractere pode tornar um graacutefico ilegiacutevel Por exemplo o paracircmetro chd utiliza a barra vertical para separar cada conjunto de dados dife-rentemente de chds Infelizmente essa natildeo eacute a uacutenica inconsistecircncia na API do Google Chart (o clipping do graacutefico de barras eacute outro) portanto mantenha o manu-al por perto

Antigamente um graacutefico de barras com valores negati-vos e positivos requeria truques para renderizar corre-tamente Agora eacute possiacutevel usar o paracircmetro chp e uma porcentagem para colocar a linha zero a partir de uma distacircncia proporcional da origem sobre o eixo y Os va-lores devem entatildeo ser interpolados para serem rende-rizados adequadamente Por exemplo suponha que o fluxo de caixa da empresa seja (em milhotildees) de -20 -5 1 3 10 Para colocar a linha zero em 05 ou na

metade do caminho para cima do eixo y valores meno-res que 50 seratildeo desenhados ldquoabaixo da linhardquo e todos os valores acima de 100 seratildeo desenhados ldquoacima da linhardquo Para normalizar os dados adicione 50 a todos os valores e plote os novos valores

httpchartapisgooglecomchartcht=bvgampchs=400x400ampchbh=405ampchd=t3045515360ampchp=5ampchm=r00000004955

A figura 5 mostra o graacutefico final

O paracircmetro bvg eacute a constante para o graacutefico do tipo barra vertical e o chd expressa o conjunto de dados normalizado O paracircmetro chp coloca a linha zero a meio caminho acima do eixo y enquanto que o chm eacute uma opccedilatildeo para desenhar uma faixa de marca-ccedilatildeo no graacutefico Os seus paracircmetros satildeo (na ordem) r para um marcador horizontal 000000 para desenhar o marcador em preto 0 que eacute ignorado e 495 e 5 para expressar as margens inferior e superior da faixa de marcaccedilatildeo em termos de proporccedilatildeo sobre o eixo-y Isso porque a linha zero estaacute colocada a 05495 e 5 desenha uma linha bem fina em zero

O paracircmetro chbh especifica a largura de uma barra e o espaccedilo entre cada uma barra Diferentemente de outros tipos de graacuteficos se chbh for grande demais e chs for muito pequeno parte do graacutefico seraacute cor-tada Certifique-se de ajustar o tamanho de um ou todos esses paracircmetros quando estiver desenhando um graacutefico de barras

Exemplo 3 Informaccedilotildees num coacutedigo QR

01 httpchartapisgooglecomchart02 cht=qramp03 chs=200x200amp04 choe=UTF-8amp05 chld=Qamp06 chl=httpwwwlinuxnewmediacombrlmFigura 3 O endereccedilo do site da

revista capturado num coacutedigo QR

copy Linux New Media do Brasil Editora Ltda

53

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] pChart httppchartsourceforgenet

[2] Documentaccedilatildeo do Google Chart httpcodegooglecomapischart

[3] BeeTagg httpwwwbeetaggcom

[4] Zebra biblioteca livre do Google para leitura de coacutedigos de barra httpcodegooglecompzxing

[5] Guia para codificaccedilatildeo de dados em coacutedigos QR httpcodegooglecompzxingwikiBarcodeContents

[6] Gerador simples para o Google Chart httpalmaercomchartmaker

O Google Chart tambeacutem oferece graacuteficos para Aacutefrica Aacutesia Europa Oriente Meacutedio Ameacuterica do Sul e todo o globo

Coacutedigo de barrasNo Japatildeo moderno jovens compar-tilham informaccedilotildees de uma forma digital verdadeiramente inovado-ra eles trocam coacutedigos de barras E agora vocecirc tambeacutem pode O Google Chart fornece uma API para codificar ateacute 4296 caracteres em uma imagem bidimensional e monocromaacutetica chamado QR code ou coacutedigo QR

Para comeccedilar vamos codificar o email da Linux Magazine em um QR code O exemplo 3 mos-tra como a imagem na figura 3 foi criada Ao usar o graacutefico QR choe especifica a codificaccedilatildeo do texto O paracircmetro chld dita o grau de correccedilotildees de erros aplicado agrave ima-gem O valor Q inclui informaccedilotildees duplicadas o suficiente a ponto de 25 da imagem poder ser destruiacuteda sem afetar a legibilidade O paracirc-metro chl eacute o texto a ser codificado geralmente fornecido como uma URL que eacute entatildeo interpretada por um aplicativo

Se vocecirc tem um telefone celu-lar pode baixar gratuitamente o BeeTagg [3] tirar uma fotografia da figura 3 e decodificar os resul-tados para entrar no site da revista

Como uma alternativa o Google oferece gratuitamente uma biblio-teca gratuita para leitura de coacutedigos QR chamada Zebra Crossing [4][5] e um leitor de coacutedigos de barras online experimental que interpreta as imagens recebidas

Um coacutedigo QR pode capturar ateacute 4296 caracteres A figura 4 por exemplo codifica um vCard (cartatildeo de visitas) inteiro

Como vai o coraccedilatildeoA API do Google Chart eacute simples de usar e faacutecil de integrar em apli-caccedilotildees web Conforme mostrado eacute possiacutevel usar a API imediatamente ndash basta inse-rir um link estaacutetico em sua paacutegina web e permitir que o navegador efetue a requisiccedilatildeo e a renderiza-ccedilatildeo de um graacutefico a cada vez que a paacutegina eacute desenhada

Para acelerar a renderizaccedilatildeo da paacutegina vocecirc pode solicitar e efetuar o cache da imagem do graacutefico em seu proacuteprio servidor recriando o graacutefico apenas quando os dados contidos nele forem alterados Aleacutem de proporcionar melhor eficiecircn-cia essa teacutecnica protege melhor os dados brutos Um visitante do site natildeo poderaacute ldquover os fontesrdquo e copiar a URL

Naturalmente tambeacutem eacute pos-siacutevel misturar a API do Google Chart com teacutecnicas AJAX para mo-dificar os graacuteficos dinamicamente em resposta agrave requisiccedilatildeo do usuaacute-rio O Chart Maker [6] eacute uma de-monstraccedilatildeo baacutesica mas efetiva da dinacircmica de graacuteficos outros tecircm usado a API do Google Chart para implementar uma calculadora de empreacutestimos executiva

Naturalmente o Google Chart costuma ser mais lento que as ferra-mentas para geraccedilatildeo de graacuteficos no desktop como o Apple Numbers ou mesmo o Microsoft Excel Estas uti-lizam mecanismos de renderizaccedilatildeo nativos e natildeo requerem consultas

agrave Internet para transmitir dados e baixar um grande graacutefico na forma de uma imagem No entanto o Google Chart eacute um aplicativo gra-tuito que estaacute disponiacutevel em qual-quer lugar Se vocecirc estaacute realmente interessado em utilizar o Google Chart em ambiente de produccedilatildeo o uso de cache pode melhorar o tempo de resposta

Figura 4 Um vCard inteiro represen-tado como coacutedigo QR

Figura 5 Renderizaccedilatildeo de valores positivos e negativos num graacutefico de barras

copy Linux New Media do Brasil Editora Ltda

54 httpwwwlinuxmagazinecombr

Alta disponibilidade em PostgreSQL

Banco cheio mas disponiacutevel

O PostgreSQL natildeo possui embutido um mecanismo para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia por Fernando Ike

O tema alta disponibilida-de abordado na ediccedilatildeo 43 da Linux Magazine [1] eacute

abrangente e envolve vaacuterias aacutereas desenvolvedores administradores de sistemas rede e banco de dados

Geralmente alta disponibilidade em bancos de dados eacute um objetivo mais complexo e criacutetico do que se costuma acreditar Natildeo eacute simples-mente pensar que uma soluccedilatildeo como Oracle RAC garantiraacute disponibili-dade de 100 do banco de dados Para aumentar a disponibilidade eacute necessaacuterio analisar uma seacuterie de variaacuteveis entre elas Se o datacenter tem grupo ge-

rador de energia eleacutetrica Se haacute conexatildeo agrave Internet por

mais de dois links Servidores com fontes redun-

dantes discos etc Circuitos eleacutetricos e rede redun-

dantes Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias de banco de dados Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias dela mesma Se a modelagem permite ins-

tacircncias de banco de dados fi si-camente distantes

Quanto se pode investir Tais variaacuteveis dependem do pro-

jeto em questatildeo ou seja variam de

TU

TO

RIA

L

projeto para projeto Em geral a grande difi culdade para banco de dados eacute o sincronismo das bases de dados entre vaacuterios servidores jaacute que haacute a necessidade de garantir a con-sistecircncia entre eles Aplicaccedilotildees que usam banco de dados para operaccedilotildees somente leitura (como aplicaccedilotildees web por exemplo) tecircm facilidade de trabalhar com vaacuterios servidores de banco de dados usando balan-ceamento de carga Entretanto o mesmo natildeo acontece quando uma aplicaccedilatildeo tem operaccedilotildees de leitu-ra e escrita pois natildeo existe uma soluccedilatildeo defi nitiva uma vez que depende de como a aplicaccedilatildeo foi projetada Uma alternativa seria modelar a aplicaccedilatildeo para acessar um servidor de banco de dados para operaccedilotildees de leituraescrita e os outros servidores para operaccedilotildees de leitura

Para PostgreSQL essa tarefa eacute um pouco mais difiacutecil ndash mas natildeo impossiacutevel ndash pois ofi cialmente exis-tem poucas formas de aumentar sua disponibilidade sem que se use ex-tensotildees ou aplicaccedilotildees de terceiros Existe uma discussatildeo [2] dentro do PostgreSQL Global Development Group para incorporar recursos de replicaccedilatildeo MasterSlave na versatildeo 84 (atualmente em desenvolvimento) e posteriores

PostgreSQL hoje Vejamos o que eacute possiacutevel fazer com o PostgreSQL sem ferramentas de terceiros

Warm Standby usando PITR ( Point-In-Time Recovery ) um servidor pri-maacuterio envia para um ou mais servido-res secundaacuterios os arquivos do WAL ( Write Ahead Log ) que contecircm as modifi caccedilotildees nas bases de dados do servidor primaacuterio Tais arquivos quan-do enviados seratildeo processados pelos servidores secundaacuterios Esse meacutetodo para o PostgreSQL natildeo permite por enquanto que os servidores secundaacute-rios sejam usados para leitura Esses servidores natildeo estaratildeo disponiacuteveis para nenhuma operaccedilatildeo ateacute que haja uma falha no servidor primaacuterio

Em caso de falha no servidor pri-maacuterio falhando a transmissatildeo dos uacuteltimos arquivos do WAL para os servidores secundaacuterios estes perde-ratildeo as uacuteltimas alteraccedilotildees realizadas no servidor primaacuterio Essa perda eacute pequena se comparada agraves estrateacutegias de recuperaccedilatildeo mais comuns para estes tipos de incidentes as quais satildeo becape completo da uacuteltima noite ou recuperaccedilatildeo utilizando os arquivos do WAL A comparaccedilatildeo eacute de alguns segundos usando Warm Standby e de alguns minutos ou horas com recuperaccedilatildeo de becape ou por arquivos do WAL

copy Linux New Media do Brasil Editora Ltda

55

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Compartilhamento de disco usando a mesma aacuterea num equipa-mento remoto (como storage) os servidores poderatildeo ter a aacuterea mon-tada nele mas somente o servidor primaacuterio ou ativo poderaacute ter o serviccedilo do PostgreSQL em execuccedilatildeo O ser-vidor secundaacuterio soacute deve entrar em accedilatildeo em caso de falha do primaacuterio caso contraacuterio haacute o risco de corrom-pimento das bases de dados

Neste meacutetodo numa eventual fa-lha do servidor ativo eacute praticamen-te nula a perda de dados jaacute que as bases de dados estatildeo em um stora-ge Geralmente usa-se NFS como forma de acesso ao storage Uma recomendaccedilatildeo importante ao usar NFS eacute montaacute-lo usando a opccedilatildeo sync (siacutencrono) desabilitar o cache e jamais usar a opccedilatildeo async (assiacuten-crono) jaacute que ela poderaacute corromper as bases de dados do PostgreSQL O recomendaacutevel para esse meacutetodo eacute o uso de SAN (iSCSI AoE etc) em vez de NAS (SMB NFS etc) uma vez que a arquitetura SAN eacute projetada para situaccedilotildees de grande volumes de dados e menor tempo de recuperaccedilatildeo em caso de incidente comparado com NAS

Replicaccedilatildeo por dispositivo de blo-co uma variaccedilatildeo do compartilhamento de disco Quando usado esse recurso o dispositivo de bloco eacute a unidade de replicaccedilatildeo Assim como nos outros meacute-todos natildeo pode haver dois servidores PostgreSQL em execuccedilatildeo ao mesmo tempo O DRBD eacute um software muito popular para essa fi nalidade

Terceiros Existe a possibilidade de se usar ex-tensotildees ou aplicaccedilotildees de terceiros para aumentar a disponibilidade do PostgreSQL em tarefas como repli-caccedilatildeo mestre-escravo middleware de replicaccedilatildeo orientado a sentenccedila e replicaccedilatildeo multimaster assiacutencrona ou siacutencrona

Replicaccedilatildeo mestre-escravo esse meacutetodo envia todas as consultas de

modifi caccedilotildees das bases de dados para o servidor mestre Este envia as mo-difi caccedilotildees que nele ocorreram para o servidor escravo Essas modifi caccedilotildees ocorrem por lote e de forma assiacutencro-na permitindo que se tenha muacuteltiplos servidores escravos O servidor escravo pode responder somente consultas de leitura as quais satildeo ideais para consultas do tipo data warehouse O Slony-1 eacute um exemplo desse tipo de replicaccedilatildeo com granularidade de ta-bela e suporte a muacuteltiplos servidores escravos Em caso de falha no servidor mestre poderaacute haver perda de dados que ainda natildeo foram replicados para o servidor secundaacuterio

Middleware de replicaccedilatildeo orien-tado a sentenccedila programa que intercepta cada consulta SQL e a envia para um ou todos os servido-res Cada servidor opera indepen-dentemente Consultas de leitura e escrita satildeo enviadas para todos os servidores enquanto as consultas somente-leitura podem ser enviadas para qualquer um dos servidores permitindo que o trabalho de leitura seja distribuiacutedo

Se as consultas forem simplesmen-te transmitidas sem modifi caccedilotildees alguns valores especiacutefi cos de cada servidor (como a funccedilatildeo random() e os valores de TIMESTAMP ) teratildeo va-lores diferentes nos servidores Isso ocorre porque cada servidor opera de forma independente e porque as consultas SQL satildeo realizadas em broadcast (e natildeo atuando na modifi caccedilatildeo das colunas) Se isso for inaceitaacutevel o middleware ou aplicaccedilatildeo deve consultar tais valo-res a partir de um servidor e depois usaacute-los para escrever as consultas Exemplos desse tipo de replicaccedilatildeo satildeo o pgpool-II e Sequoia

Replicaccedilatildeo Multimaster Assiacutencro-na para os servidores que natildeo estatildeo regularmente ligados como laptops e servidores remotos manter os da-dos consistentes entre os servidores eacute um desafi o Usando replicaccedilatildeo assiacutencrona multimaster cada servi-dor trabalha com independecircncia e periodicamente se comunica com os outros servidores a fi m de identifi car transaccedilotildees confl itantes Os confl itos podem ser resolvidos pelos usuaacuterios

Figura 1 Soluccedilatildeo de alta disponibilidade do banco de dados proposta

copy Linux New Media do Brasil Editora Ltda

56 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

ou por meio de regras Bucardo eacute um exemplo desse tipo de replicaccedilatildeo

Replicaccedilatildeo multimaster siacutencro-na em replicaccedilatildeo multimaster siacuten-crona cada servidor pode aceitar conexotildees com transaccedilotildees de escrita (como INSERT UPDATE e DELETE) Tais transaccedilotildees satildeo transmitidas a partir do servidor de origem para todos os outros servidores antes de efetivar a transaccedilatildeo Em situaccedilotildees com mui-tas transaccedilotildees isso poderaacute causar bloqueio dos registros degradando consideravelmente a performance Neste tipo de replicaccedilatildeo as transa-ccedilotildees com escrita geralmente satildeo mais lentas do que as feitas em um servi-dor uacutenico Aleacutem de dividir a carga de transaccedilotildees para leitura e escrita como na replicaccedilatildeo mestre-escravo a replicaccedilatildeo multimaster siacutencrona eacute muito usada para balanceamento de carga em alguns casos podendo ha-ver problemas de consistecircncia ao se usar funccedilotildees como random()

Soluccedilatildeo simplesUma soluccedilatildeo muito comum e ba-rata para alta disponibilidade em PostgreSQL eacute o uso de um dispositivo de storage comunicando-se com os

servidores PostgreSQL via NFS (fi-gura 1) A soluccedilatildeo consiste em dois servidores PostgreSQL e Heartbeat Um deles seraacute o primaacuterio e o outro o secundaacuterio O secundaacuterio aguarda-raacute algum problema com o servidor primaacuterio e caso ocorra iniciaraacute o serviccedilo do PostgreSQL assumindo o endereccedilo de rede (VIP) usado para comunicaccedilatildeo com a aplicaccedilatildeo

Essa soluccedilatildeo natildeo foi planejada para que o servidor primaacuterio assuma o controle novamente do ambiente caso retorne a operar pois eacute reco-mendaacutevel verificar a razatildeo do inci-dente corrigir e retornar a operaccedilatildeo ao ambiente num periacuteodo de pouco uso do banco de dados

Haacute alguns pontos importantes nessa soluccedilatildeo Sempre que ocorrer uma atualizaccedilatildeo de seguranccedila no PostgreSQL eacute recomendaacutevel apli-caacute-la a todos os servidores pois natildeo se deve executar uma versatildeo dife-rente do binaacuterio em cada maacutequina Aleacutem disso nesse tipo de soluccedilatildeo de alta disponibilidade natildeo eacute pos-siacutevel haver dois servidores com o serviccedilo PostgreSQL em execuccedilatildeo A disponibilidade eacute garantida pelo armazenamento dos dados no stora-

ge sem necessidade de mecanismos de replicaccedilatildeo de dados externos Por uacuteltimo poliacuteticas de backup devem continuar sendo usadas sem altera-ccedilotildees Caso aconteccedila algum incidente que indisponibilize os dados haveraacute formas de recuperaacute-los

ImplementaccedilatildeoO procedimento de instalaccedilatildeo seraacute dividido por servidores a primeira parte consiste na instalaccedilatildeo do servi-dor primaacuterio e a segunda parte trata do servidor secundaacuterio considerando que um ponto de montagem foi dis-ponibilizado previamente em ambos os servidores em varlibpostgre-sqlstorage

Depois de instalar o pacote do PostgreSQL 83 (versatildeo estaacutevel mais recente) do Debian 50 (Lenny) o di-retoacuterio padratildeo da instalaccedilatildeo do cluster de base de dados[3] eacute o local em que estaacute uma instacircncia do PostgreSQL com seu cataacutelogo de sistema Esse diretoacuterio seraacute movido para o storage usando uma particcedilatildeo NFS montada no servidor o que exige uma parada no serviccedilo do PostgreSQL

Parado o serviccedilo do PostgreSQL mova o diretoacuterio com o cluster de base de dados armazenado local-mente para o diretoacuterio NFS remo-to Depois disso eacute necessaacuterio ainda criar um link simboacutelico para que o serviccedilo inicie corretamente

mv varlibpostgresql83 varlibpostgresqlstorage ln -s varlibpostgresqlstorage83 varlibpostgresql83

Feito isso reinicie o PostgreSQL e crie um arquivo com ajustes de per-formance do PostgreSQL chamado tuningsh em usrlocalsbin (exemplo 1) Esse arquivo conteraacute ajustes de paracirc-metros do kernel Linux para o Postgre-SQL aproveitar melhor os recursos de hardware Seria possiacutevel usar o arquivo etcsysctlconf mas ele natildeo oferece

Exemplo 1 Arquivo tuningsh

01 binbash0203 echo ldquo2rdquo gt procsysvmovercommit_memory0405 kernelshmmax = 447177599906 25 do total da RAM07 echo ldquo17179869184rdquo gt procsyskernelshmmax08 kernelshmmax = 429496729609 echo ldquo17179869184rdquo gt procsyskernelshmall10 echo ldquo300 32500 150 160rdquo gt procsyskernelsem11 echo ldquo65536rdquo gt procsysfsfile-max12 echo ldquodeadlinerdquo gt sysblocksdaqueuescheduler13 echo ldquo16777216rdquo gt procsysnetcorermem_default14 echo ldquo16777216rdquo gt procsysnetcorewmem_default15 echo ldquo16777216rdquo gt procsysnetcorermem_max16 echo ldquo16777216rdquo gt procsysnetcorewmem_max

copy Linux New Media do Brasil Editora Ltda

57

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

a possibilidade de alterar tambeacutem o sistema de arquivos sysfs

Entre os paracircmetros a serem mo-dificados shmmax geralmente deveraacute ser de 25 a 50 do total da memoacute-ria RAM dependendo do tipo de aplicaccedilatildeo e modelagem de dados Nesse caso usamos usamos 50 (16 GB) (linha 7)

Torne o script executaacutevel e crie um link simboacutelico para que ele seja carregado na inicializaccedilatildeo

chmod 0755 usrlocalsbintuningsh ln -s usrlocasbintuningsh etcrcSdS99tuningsh

Em seguida execute-o para efetivar as alteraccedilotildees dos paracircmetros do sis-tema operacional

Ajuste do PostgreSQLCom o sistema operacional pronto eacute hora de ajustar o banco de dados Para isso comece editando o arqui-vo postgresqlconf de acordo com as determinaccedilotildees listen_adresses um asterisco

permite que o PostgreSQL escu-te conexotildees vindas de qualquer rede Ainda eacute necessaacuterio alterar o arquivo pg_hbaconf para que essa alteraccedilatildeo tenha efeito

max_connections nuacutemero total de conexatildeo simultacircneas aceitas pelo PostgreSQL

shared_buffers 20 a 25 do total da memoacuteria RAM

wal_write_delay 500 milisse-gundos

commit_delay 100 checkpoint_segments 128 checkpoint_timeout 30 min checkpoint_completion_

target 07

Exemplo 2 Arquivo postgresqlconf

data_directory = lsquovarlibpostgresql83mainrsquo usar dados em outro diretoacuteriohba_file = lsquoetcpostgresql83mainpg_hbaconfrsquo arquivo de autenticaccedilatildeo por maacutequina (host-based authentication)ident_file = lsquoetcpostgresql83mainpg_identconfrsquo arquivo de configuraccedilatildeo de identexternal_pid_file = lsquovarrunpostgresql83-mainpidrsquo gravar um arquivo extra com o PIDlisten_addresses = lsquorsquo IP(s) para escutarport = 5432 porta (necessaacuterio reiniciar)max_connections = 1000 (necessaacuterio reiniciar)unix_socket_directory = lsquovarrunpostgresqlrsquo (necessaacuterio reiniciar)ssl = false (necessaacuterio reiniciar)shared_buffers = 12GB miacutenimo=128 kB maacuteximo=max_connections16kBmax_fsm_pages = 204800 miacutenimo=max_fsm_relations16 6 bytes cadafsync = on (des)ativa sincronizaccedilatildeo forccediladawal_sync_method = open_sync o padratildeo eacute a primeira opccedilatildeofull_page_writes = on recuperar-se de gravaccedilotildees de paacutegina parciaiswal_writer_delay = 500ms 1-10000 milissegundoscommit_delay = 100 0-100000 em microssegundoscheckpoint_segments = 128 em segmentos de logfile miacutenimo=1 16MB cadacheckpoint_timeout = 30min 30s-1hcheckpoint_completion_target = 07 duraccedilatildeo do alvo do checkpoint 00 - 10effective_cache_size = 48GBdatestyle = lsquoiso dmyrsquolc_messages = lsquopt_BRUTF-8rsquo locale para mensagens de erro do sistemalc_monetary = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo monetaacuterialc_numeric = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo numeacutericalc_time = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo de tempodefault_text_search_config = lsquopg_catalogportuguesersquo

Exemplo 3 Arquivo pg_hbaconf

local all postgres md5local all all md5host all all 12700132 md5host all all 1128 md5host intportal portal 192168103032 md5

copy Linux New Media do Brasil Editora Ltda

58 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

effective_cache_size 75 da memoacuteria RAM

Poreacutem tenha em mente que conforme a base de dados cresce esses e outros paracircmetros do ar-quivo de configuraccedilatildeo precisaratildeo ser alterados

O exemplo 2 mostra o conteuacutedo do arquivo postgresqlconf apoacutes sua ediccedilatildeo

No arquivo pg_hbaconf altere as poliacuteticas de acesso conforme a poliacutetica da instituiccedilatildeo ativando ou desativando a criptografia definindo quais redes podem acessar o banco etc No exemplo 3 o arquivo permite que o usuaacuterio portal acesse a base de dados intportal com o endereccedilo de rede 192168103032 usando cripto-grafia MD5

Para efetivar as al-teraccedilotildees reinicie o PostgreSQL

HeartbeatO hearbeat eacute tido por muitos como si-nocircnimo de alta dis-ponibilidade mas eacute apenas um meio para esse fim e a soluccedilatildeo para alta disponibi-lidade de bancos de dados PostgreSQL proposta neste artigo o utiliza

Apoacutes instalar o pa-cote do heartbeat na distribuiccedilatildeo usada no servidor adicione ao arquivo etchosts os nomes e IPs dos ser-vidores primaacuterio e se-cundaacuterio No exem-plo deste artigo esses valores satildeo

1921681010 pgprimario1921681011 pgsecundario

O arquivo de con-figuraccedilatildeo do heart-beat pode se localizar em etchad ou em etcheartbeat O exemplo 4 mostra o conteuacutedo do arquivo hacf que deve resi-dir no diretoacuterio usa-do pela distribuiccedilatildeo

em questatildeo cujas opccedilotildees tecircm os seguintes efeitos logfacility executar o heart-

beat como serviccedilo logfile local onde seraacute gravado

o registro de atividades do heart-beat

keepalive intervalo de tempo de comunicaccedilatildeo entre os noacutes

deadtime intervalo de tempo para que heartbeat reconheccedila um noacute como morto

bcast forma de comunicaccedilatildeo en-tre os servidores hearbeat neste caso com uma placa exclusiva para comunicaccedilatildeo (eth1)

ping checa se o IP virtual estaacute no ar

auto_failback caso o servi-dor primaacuterio saia do ar quan-do voltar ele natildeo tentaraacute assu-mir como servidor principal no cluster

respawn hacluster usrlibheart-beatipfail serviccedilo do heartbeat para trocar o IP Virtual em caso de falha no noacute principal

Ainda no diretoacuterio de configu-raccedilatildeo do heartbeat crie o arquivo haresources Eacute nesse arquivo que o heartbeat procuraraacute os serviccedilos que precisam ser executados no cluster Tais serviccedilos satildeo scripts que podem ou natildeo ter paracircmetros e estatildeo loca-lizados em etchadresourced Acrescente ao arquivo haresources o seguinte conteuacutedo

pgprimario IPaddr192168105pgprimario PostgreSQL

O paracircmetro IPaddr adiciona o en-dereccedilo de rede virtual (VIP) ao clus-ter e PostgreSQL controla o Postgre-SQL no heartbeat Esse script natildeo eacute distribuiacutedo oficialmente e pode ser personalizado conforme a necessida-de do ambiente

Crie tambeacutem o arquivo authkeys para abrigar a senha (criptografada com SHA1) necessaacuteria agrave comunica-

Exemplo 5 Script PostgreSQL do heartbeat

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 case $1 in07 start)08 etcinitdpostgresql-83 start09 sleep 210 check_pgsqlsh amp11 exit 012 13 14 stop)15 etcinitdpostgresql-83 stop16 kill $(ps a|grep check_pgsql|awk lsquo print $1 rsquo|head -n 1)17 exit 018 19 )20 21 esac

Exemplo 4 Arquivo hacf

logfacility daemonlogfile varloghalognode pgprimario pgsecundariokeepalive 2deadtime 10bcast eth1ping 192168105auto_failback offrespawn hacluster usrlibheartbeatipfail

copy Linux New Media do Brasil Editora Ltda

59

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

ccedilatildeo entre os noacutes do heartbeat Para criar a senha use algo como

echo ldquosuasenhardquo | sha1sum2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53 -

Adicione esse hash ao arquivo authkeys da seguinte forma

auth 11 sha1 2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53

Em seguida altere as permis-sotildees do arquivo para 600 para que somente o usuaacuterio root possa ler e escrever nele

No diretoacuterio etchadresourced ficam os scripts de interaccedilatildeo dos ser-viccedilos do heartbeat Crie nele o script PostgreSQL referenciado no arquivo haresources que criamos antes com o conteuacutedo mostrado no exemplo 5 Esse arquivo tambeacutem precisaraacute ter suas permissotildees alteradas mas dessa vez para permitir que ele seja executado Portanto recomenda-se usar 755 como permissotildees

Crie tambeacutem um script (usrlo-calsbincheck_pgsqlsh) para verificar se o PostgreSQL continua no ar de acordo com o exemplo 6 Esses satildeo os significados das variaacuteveis HOST endereccedilo de rede do ser-

vidor USER usuaacuterio do PostgreSQL DB banco de dados a ser usado TEST tipo de consulta que serviraacute

como teste REPEAT nuacutemero de repeticcedilotildees do

teste ateacute considerar o servidor como inativo

OTHER endereccedilo de rede do ser-vidor secundaacuterio

Apoacutes tornar esse script executaacutevel eacute necessaacuterio novamente reiniciar o PostgreSQL e o proacuteprio heartbeat Com isso fica concluiacuteda a confi-guraccedilatildeo do servidor PostgreSQL primaacuterio

Servidor secundaacuterioPara o servidor secundaacuterio seratildeo repe-tidos os mesmos passos da instalaccedilatildeo e configuraccedilatildeo do servidor primaacuterio

poreacutem com certas diferenccedilasDepois de instalar o pacote do

PostgreSQL 83 pare o serviccedilo deste e apague o diretoacuterio varlibpostgre-

Exemplo 6 Script check_pgsqlsh no servidor primaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101008 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101114 15 check()16 17 while true18 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull19 if [ $ -eq 0 ]20 then21 break22 do23 sleep 224 25 if [ $COUNTER -eq $REPEAT ]26 then27 etcinitdpostgresql-83 stop28 etcinitdheartbeat stop29 else30 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull31 if [ $ -eq 0 ]32 then33 COUNTER=rdquo1rdquo34 else35 let COUNTER=$COUNTER+136 fi37 fi38 39 done40 fi41 42 43 check

copy Linux New Media do Brasil Editora Ltda

60 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

Exemplo 7 Script check_pgsqlsh no servidor secundaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101108 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101014 15 16 check()17 18 while true19 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull20 if [ $ -eq 0 ]21 then22 break23 do24 sleep 225 26 if [ $COUNTER -eq $REPEAT ]27 then28 etcinitdpostgresql-83 stop29 etcinitdheartbeat stop30 else31 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull32 if [ $ -eq 0 ]33 then34 COUNTER=rdquo1rdquo35 else36 let COUNTER=$COUNTER+137 fi38 fi39 40 done41 fi42 43 44 check

sql83 pois ele usaraacute quando ativo o mesmo cluster de base de dados do servidor primaacuterio que estaacute arma-

zenado no storage Esse passo eacute o primeiro em que os procedimentos dos dois servidores diferem

Com o diretoacuterio apagado eacute ne-cessaacuterio criar um link simboacutelico para que o serviccedilo inicie correta-

mente quando for solicitado pelo heartbeat

ln -s varlibpostgresqlstorage83 varlibpostgresql83

Assim como no servidor primaacuterio crie um arquivo tuningsh com ajustes de per-formance para o PostgreSQL em usrlocalsbin Como os servidores tecircm hardwares semelhantes usaremos os mesmos ajustes de perfor-mance (exemplo 1) Apoacutes salvar o script crie um link simboacutelico para que ele seja carregado ao iniciar os servi-ccedilos do servidor

ln -s usrlocalsbintuningsh etcrcSdS99tuningsh

Execute o script receacutem-criado para efetivar as mo-dificaccedilotildees dos paracircmetros do sistema operacional

Diferentemente do servi-dor primaacuterio natildeo seratildeo neces-saacuterias alteraccedilotildees aos arquivos postgresqlconf e pg_hbaconf pois os arquivos usados seratildeo os mesmos

Assim como no servidor primaacuterio instale o heartbeat e acrescente as seguintes linhas ao arquivo etchosts

1921681011 pgprimario1921681010 pgsecundario

Note que os IPs satildeo inver-tidos com relaccedilatildeo ao con-teuacutedo do arquivo no servidor primaacuterio

Em seguida crie o arquivo de configuraccedilatildeo etchad

copy Linux New Media do Brasil Editora Ltda

61

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] Linux Magazine 43 httplnmcombrissuelm_43_alta_disponibilidade

[2] Discussatildeo no PGDG sobre replicaccedilatildeo httparchivespostgresqlorgpgsql-hackers2008-05msg00913php

[3] Criaccedilatildeo de clusters PostgreSQL httpwwwpostgresqlorgdocs83interactivecreating-clusterhtml

hacf de acordo com o exemplo 4 e etchadharesources com conteuacutedo igual ao do servidor primaacuterio

pgprimario IPaddr192168105pgprimario PostgreSQL

Todos os procedimentos com o arquivo etchadauthkeys tambeacutem devem ser repetidos assim como os do script etchadresourcedPostgreSQL (exemplo 5) O script diferente entre os servidores primaacute-rio e secundaacuterio eacute o check_pgsqlsh em usrlocalsbin (exemplo 7) pois os valores das variaacuteveis HOST e OTHER devem ter seus valores troca-dos entre si

Ao final no entanto o mesmo procedimento do servidor primaacuterio eacute necessaacuterio permitir a execuccedilatildeo dos scripts criados e reiniciar o Postgre-SQL e o heartbeat

ConsideraccedilotildeesAs atualizaccedilotildees de seguranccedila deveratildeo ser realizadas em ambos os servido-res com diferentes procedimentos para cada No servidor que estiver ativo no cluster deve-se atualizar conforme a liberaccedilatildeo de novas ver-sotildees do pacote do PostgreSQL e os procedimentos de atualizaccedilatildeo da distribuiccedilatildeo em uso Eacute recomendaacute-vel para ambos os servidores fazer a atualizaccedilatildeo em um horaacuterio de pou-co uso ou numa parada programada para manutenccedilatildeo

As atualizaccedilotildees de seguranccedila no servidor secundaacuterio precisam de atenccedilatildeo pois distribuiccedilotildees baseadas em Debian reiniciam o serviccedilo do PostgreSQL Nesse caso esse rei-niacutecio pode afetar o funcionamento do servidor primaacuterio Para contornar esse problema podemos alterar a permissatildeo do arquivo etcinitdpostgresql-83 antes de atualizar o pacote do PostgreSQL

chmod 000 etcinitdpostgresql-83

Depois de atualizar o pacote basta retornar o pacote agraves permis-sotildees anteriores (e corretas para a operaccedilatildeo)

chmod 755 etcinitdpostgresql-83

O quadro 1 oferece ajuda caso ocorra algum problema com o storage durante a operaccedilatildeo do cluster

ConclusatildeoUma soluccedilatildeo de alta disponibilidade como essa natildeo elimina a necessidade de uma poliacutetica de becape e proce-dimentos de melhora contiacutenua de performance O becape pode ser res-taurado a partir de qualquer maacutequina na soluccedilatildeo de alta disponibilidade desde que elas estejam com o serviccedilo do PostgreSQL em execuccedilatildeo Novos procedimentos de becape podem ser adotados como armazenamento dos logs diaacuterios como complemento da poliacutetica existente

O aumento da disponibilidade do banco de dados natildeo significa aban-donar as poliacuteticas de contingecircncia e becape Tambeacutem eacute necessaacuterio plane-jar o aumento da disponibilidade de todo o ambiente (aplicaccedilatildeo e banco de dados) Natildeo desconsidere o uso de storages com iSCSI ou fibra oacutetica para melhor performance

Quadro 1 Problemas no storage

Em caso de problemas no storage o melhor eacute recriar o cluster de banco de dados com o comando initdb e restaurar seu conteuacutedo a partir do becape Dependendo do incidente pode-se optar por criar o cluster localmente ou em outro storage Caso seja local eacute possiacutevel criar um cluster provisoacuterio ateacute que o storage volte a ficar disponiacutevel para o servidor

O comando para isso eacute

pg_createcluster -u postgres -d varlibpostgresqlprovisorio --start-conf=auto 83 provisorio

e suas opccedilotildees satildeo

-u usuaacuterio que seraacute usado pelo cluster

-d diretoacuterio onde ficaraacute o cluster

--start-conf= opccedilatildeo para acrescentar a etcinitdpostgresq-83 o iniacutecio do cluster que estaacute sendo acrescentado

83 versatildeo instalada do PostgreSQL

provisorio identificaccedilatildeo do novo cluster

copy Linux New Media do Brasil Editora Ltda

62 httpwwwlinuxmagazinecombr

Integraccedilatildeo de dados com o ETL Talend

O talento do Talend Quem procura uma soluccedilatildeo ETL para Business Intelligence natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda por Miguel Koren OrsquoBrien de Lacy

Um dos componentes essen-ciais de uma soluccedilatildeo para a inteligecircncia de negoacutecios (BI

ndash Business Intelligence ) eacute o moacutedulo de integraccedilatildeo de informaccedilotildees de di-versas fontes de dados Felizmente o mercado de Software Livre e de coacutedigo aberto oferece algumas so-luccedilotildees bastante completas que satildeo usadas dentro dos pacotes de BI ou em modo stand alone As soluccedilotildees de integraccedilatildeo de dados satildeo conheci-das como ETL ( Extract Transform Load ) pois a missatildeo dessas soluccedilotildees eacute integrar informaccedilotildees e preparaacute-las para a formaccedilatildeo de tabelas no data mart Normalmente os dados precisam ser manipulados depois de obtidos e logo inseridos nas tabelas dos bancos de dados em que reside o data mart Ou seja estamos falando em obter os dados aplicar regras de negoacutecios da empresa facilitar as consultas pos-teriores ou validar a qualidade dos dados e entregaacute-los transformados ao destino fi nal Dentre as transfor-maccedilotildees normalmente aplicadas aos dados podemos destacar a seleccedilatildeo de campos importantes para a anaacutelise a fi ltragem dos registros necessaacuterios a limpeza dos dados (ldquoSrrdquo ou ldquoSe-nhorrdquo passam a valer ldquoSrdquo) a geraccedilatildeo dos campos calculados (por exemplo ldquovalor nf = quantidade valor unitaacute-riordquo) etc Mas essas soluccedilotildees tambeacutem podem ser consideradas integradores e manipuladores de dados para outras

necessidades podendo substituir mui-tos sistemas de ldquointerfacesrdquo de dados que satildeo desenvolvidos pelas aacutereas de TI de grandes empresas

Originalmente os sistemas cor-porativos foram desenvolvidos de forma isolada para cumprir alguma funccedilatildeo especiacutefi ca natildeo sendo parte do objetivo de projeto a necessidade de compartilhar dados Quando a quan-tidade desses sistemas comeccedilou a ser mais importante dentro das empresas surgiram as primeiras necessidades de integraccedilatildeo de dados como a carga de pedidos aos sistemas de estoque e fatu-ramento Tais necessidades de integra-ccedilatildeo foram implementadas diretamente por programas ou scripts especiacutefi cos Com a crescente complexidade das integraccedilotildees requeridas iniciou-se um encarecimento do desenvolvimento desses processos Os sistemas tinham manutenccedilatildeo complexa e as loacutegicas de integraccedilatildeo difiacuteceis de documentar auditar e entender Por isso as em-presas comeccedilaram a implementar ferramentas prontas ou semi-pron-tas para essa necessidade Essa foi a origem dos sistemas ETL

Esses sistemas poreacutem natildeo pos-suem a popularidade que merecem em razatildeo de certos fatores que impe-dem sua adoccedilatildeo Entre estes fatores devemos destacar Custo inicial Complexidade no uso com curva de

aprendizado muito empinada

Escalabilidade a necessidades de integraccedilotildees pequenas

A empresa Talend eacute fabricante

do Talend Open Studio [1] apre-sentado como ldquoo sistema ETL mais abrangente no mercado de software livre e coacutedigo abertordquo O modelo de negoacutecios da empresa eacute um dos claacutes-sicos para Software Livre A empresa desenvolve um produto que licencia sem custo usando licenciamento em modalidade livre no caso a GPL [2] e oferece serviccedilos e suporte co-merciais O software licenciado sob a GPL natildeo possui todos os compo-nentes que satildeo oferecidos a clientes sob o licenciamento de subscriccedilatildeo do serviccedilo mas mesmo dessa forma eacute extremamente uacutetil para as neces-sidades ETL de qualquer empresa O Talend Open Studio foi liberado no mercado em 2005 pela empresa Talend com bases na Franccedila paiacutes com uma poliacutetica ofi cial de apoio a Software Livre e Coacutedigo Aberto Analistas de TI como Forrester Rese-arch [3] IDC [4] e Bloor Research [5] posicionam o Talend como o melhor sistema para necessidades de integraccedilatildeo de dados O sistema BI em software livre SpagoBI [6] [7] eacute um exemplo de uso do Talend como seu componente ETL padronizado

O modelo de Software Livre eacute bem apropriado para esse tipo de soluccedilatildeo pois faz bom uso de desen-

AN

AacuteLIS

E

AN

AacuteLIS

E

copy Linux New Media do Brasil Editora Ltda

63

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

volvimento colaborativo em que muitas pessoas contribuem com moacutedulos para conexotildees a fontes de dados variadas Mas o sucesso do Talend tambeacutem mostra que o Software Livre natildeo eacute apenas bem sucedido em soluccedilotildees ldquocomoditiza-dasrdquo como sistemas operacionais e utilitaacuterios de infra-estrutura O Talend mostra que uma soluccedilatildeo livre pode ser muito atrativa num mercado novo em formaccedilatildeo com-petindo com sistemas proprietaacuterios de grandes empresas como IBM SAS e SAP as quais tecircm preccedilos de licenciamento de niacutevel corporativo Empresas como Oracle e Microsoft tambeacutem competem nesse mercado poreacutem com uma visatildeo mais restrita focada nos produtos de base de cada uma banco de dados Oracle e SQL Server respectivamente

Um forte apelo do Talend eacute a disponibilidade de uma ferramenta abrangente em que os proacuteprios usuaacute-rios da informaccedilatildeo podem modelar as regras de negoacutecios (fontes de dados campos requeridos regras de trans-formaccedilatildeo etc) para a integraccedilatildeo dos dados Hoje a aacuterea de TI de qualquer

empresa tem diariamente mais e mais dados e os usuaacuterios tecircm necessida-des de visualizaccedilatildeo que satildeo mais urgentes a cada dia Assim eacute muito uacutetil que os proacute-prios usuaacuterios possam usar o sistema de for-ma natildeo teacutecnica para especificar as regras de integraccedilatildeo

Recurso e TecnologiaO Talend eacute um sistema desenvolvi-do em Java que usa uma arquitetura modular formada por Gerenciador graacutefico de negoacutecios

(visatildeo natildeo teacutecnica de necessida-des de fluxo de dados)

Gerenciador graacutefico de proces-sos ETL

Gerenciador de metadados (repositoacuterio para reutilizaccedilatildeo de objetos)

Repositoacuterio de processos (moacutedulo adicional da versatildeo comercial)

Interface web services a proces-sos ETL

Monitor de processos Componentes modulares (atu-

almente mais de 400) Usando a API do sistema podem ser desenvolvidos componentes personalizados

O gerenciador graacutefico de processos ETL roda dentro do ambiente Eclipse [8][9] seguindo a filosofia de inte-graccedilatildeo de ferramentas dentro desse ambiente para desenvolvimento

Normalmente os primeiros trecircs moacutedulos satildeo usados na ordem listada O gerenciador de negoacutecios eacute usado pelos usuaacuterios do sistema enquanto o gerenciador de processos ETL e o gerenciador de metadados satildeo usados pelos programadores Mesmo que o repositoacuterio de projetos ETL com apoio a equipes de trabalho seja um componente oferecido comer-cialmente o Talend Open Studio inclui a possibilidade de versio-

namento do desenvolvimento dos processos A figura 1 mostra o uso desse recurso

O Talend eacute um sistema ldquogera-dor de coacutedigordquo em oposiccedilatildeo a um sistema de ldquocaixa pretardquo ndash a qual eacute responsaacutevel pela execuccedilatildeo dos pro-cessos ETL ndash ou seja o Talend natildeo requer um servidor de execuccedilatildeo de processos ETL A vantagem da gera-ccedilatildeo de coacutedigo eacute que eacute mais simples integrar os processos ETL dentro de outros aplicativos e os modelos satildeo de portabilidade muito mais flexiacutevel Aleacutem de sistemas como SpagoBI o

Figura 1 Gerenciamento de versotildees

Figura 2 Tela de iniacutecio do Talend

copy Linux New Media do Brasil Editora Ltda

64 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

Talend eacute integrado em sistemas de empresas como Ingres Teradata e JasperSoft O mecanismo de geraccedilatildeo de coacutedigo permite a integraccedilatildeo do coacutedigo gerado pelo Talend dentro de outras soluccedilotildees aleacutem de ter maior portabilidade Outra vantagem de mecanismos de geraccedilatildeo de coacutedigo eacute que mecanismos de integraccedilatildeo ldquoonlinerdquo conhecidos hoje como ldquointegraccedilatildeo operacionalrdquo podem ser implementados com maior fa-cilidade O conceito de geraccedilatildeo de coacutedigo versus ldquocaixa pretardquo de exe-cuccedilatildeo dos processos ETL eacute a maior diferenccedila entre o Talend e muitos outros sistemas O conceito de ge-raccedilatildeo de coacutedigo natildeo foi popular no passado possivelmente por causa do marketing das empresas comerciais destas soluccedilotildees mas as vantagens que o Talend apresenta usando este conceito satildeo importantes

No caso o Talend gera coacutedigo Java ou Perl e SQL para os proces-sos ETL Aleacutem de aplicar o conceito ETL ele aplica tambeacutem o conceito ELT (Extract Load Transform) o que significa que pode aproveitar a eficiecircncia e performance nativas de bancos de dados SQL ou seja os dados satildeo extraiacutedos carregados no destino e somente depois jaacute den-tro do banco de destino eacute aplicada a loacutegica de transformaccedilatildeo usando SQL e linguagem procedural de

cada banco de dados Para a funcio-nalidade ELT satildeo suportados nati-vamente hoje os bancos de dados Oracle MySQL e Teradata

OperaccedilatildeoO sistema estaacute disponiacutevel em versotildees para Linux Unix e Windows Para todas as plataformas eacute necessaacuterio ter Java e Perl no equipamento considerando seu conceito de de-senho que eacute de geraccedilatildeo de coacutedigo ou seja que os processos do Talend satildeo executados pela maacutequina vir-tual Java (JVM) ou pelo interpre-tador Perl

O download do sistema ainda eacute relativamente pesado (235 MB) mas com conexotildees de banda larga cada dia mais confiaacuteveis e raacutepidas pode ser feito em poucas horas Neste artigo exploraremos o Ta-lend Open Studio para Linux em ambiente graacutefico Gnome rodando em OpenSUSE 102 No caso de usaacute-lo em Windows 2000 existe um preacute-requisito adicional que eacute a instalaccedilatildeo do GDI requerido pelo Eclipse [10] A partir do Windows XP essa biblioteca estaacute incluiacuteda nativamente Vale a pena fazer o download tambeacutem do pacote com-pleto de documentaccedilatildeo Referente ao produto e agrave documentaccedilatildeo o Talend apresenta as vantagens de suporte por uma empresa comercial pois a documentaccedilatildeo eacute bastante comple-ta Outro destaque importante do Talend eacute o acesso a um sistema de ajuda online muito completo In-felizmente isso ainda natildeo eacute norma na maioria dos sistemas de coacutedigo aberto O site do Talend oferece um wiki e uma aacuterea de tutoriais

Simplesmente descompacte o pacote obtido por download e atri-bua propriedades de executaacutevel ao binaacuterio de iniacutecio do sistemaFigura 4 Geraccedilatildeo de um novo projeto

Figura 3 Definiccedilatildeo de repositoacuterio local inicial

copy Linux New Media do Brasil Editora Ltda

65

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

chmod a+x TalendOpenStudio-linux-gtk-x86

Selecione o binaacuterio de iniacutecio apropriado para sua arquitetura de CPU Para iniciar o gerenciador de processos execute o binaacuterio

TalendOpenStudio-linux-gtk-x86 amp

Isso exibiraacute a tela de abertura do sistema (figura 2)

Leia e aceite o contrato de licen-ciamento Apareceraacute finalmente a tela de conexatildeo ao repositoacuterio de processos ETL (figura 3) No caso do Talend Open Studio o repositoacuterio somente poderaacute ser local

Com o repositoacuterio local defini-do gere um projeto novo selecio-nando Create a new local project (figura 4)

Ao definir o tiacutetulo e a descriccedilatildeo do projeto deve-se selecionar tambeacutem a linguagem de geraccedilatildeo do coacutedigo No exemplo para o artigo escolhemos coacutedigo em Java A figura 5 mostra as opccedilotildees de definiccedilatildeo do projeto

Finalmente jaacute se pode entrar no projeto escolhido pela tela principal bastando selecionar nela o projeto e pressionar o botatildeo open Apoacutes alguns momentos apareceraacute a tela principal do sistema Na primeira vez seraacute pedido ao usuaacuterio que re-

gistre o uso digitando seu email e selecionando o paiacutes Este passo natildeo eacute obrigatoacuterio mas eacute recomendado para receber notificaccedilotildees de novas versotildees do sistema

Antes de usar o Talend Open Stu-dio deve ser configurada a lista de elementos disponiacuteveis para o dese-nho Isso pode ser feito modifican-do-se as propriedades do projeto na

opccedilatildeo de ldquopalette settingsrdquo A figura 6 mostra a inclusatildeo de conectores para MS SQL Server e PostgreSQL que devem ser selecionados no caso de precisarmos desenhar um processo de integraccedilatildeo de dados entre estes dois bancos de dados

O desenho de um processo ETL requer vaacuterias etapas incluindo de-senho dos componentes de negoacute-cios dos jobs de processamento de conexotildees JDBC acoplamento de moacutedulos de processamento e outros elementos A figura 7 mostra um exemplo de configuraccedilatildeo de cone-xatildeo JDBC ao banco Microsoft SQL Server O driver JDBC utilizado vem junto com a instalaccedilatildeo do Talend no caso o excelente JTDS [11] A figura 8 mostra a tela do Talend Open Studio com a visatildeo da paleta de fer-ramentas componentes tratados e a ediccedilatildeo de um elemento de negoacutecios (business object)

Aleacutem das possibilidades de desen-volvimento loacutegico da soluccedilatildeo dentro do ambiente graacutefico o Talend oferece

Figura 5 Detalhes de um novo projeto ETL

Figura 6 Formaccedilatildeo da lista de ferramentas

copy Linux New Media do Brasil Editora Ltda

66 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

ferramentas para preparar diagramas formatados para necessidades de documentaccedilatildeo e apresentaccedilatildeo Por exemplo podem ser escolhidas as fontes as cores e os estilos de linhas para os objetos do diagrama aleacutem de haver a possibilidade de alinhamen-to numa grade e a opccedilatildeo de layout automaacutetico dos componentes

Entre as caracteriacutesticas que mais flexibilidade oferecem ao Talend estaacute a biblioteca de componentes Esses componentes estatildeo divididos em grupos funcionais em que os de maior utilidade para uso corporativo podem ser os componentes prepa-rados para acesso a outros sistemas tais como SugarCRM Salesforce e SAP O Talend apresenta um des-taque no mercado ao oferecer um conector ao SAP A figura 9 mostra alguns componentes do Forge do sistema que podem ser baixados e instalados para aumentar a funcio-nalidade padratildeo do Talend

Um destaque do mecanismo de componentes do Talend eacute a possibili-dade de publicar os processos automa-ticamente por exemplo no servidor de BI SpagoBI Outro componente de uso geral e que incrementa em

muito a complexi-dade de processos que podem ser de-finidos eacute o executor de scripts em Groo-vy Aleacutem de poder desenvolver com-ponentes especiacutefi-cos a possibilidade de gerar scripts em Groovy para trata-mento avanccedilado dos dados permite que as transforma-ccedilotildees sigam regras muito especiais da empresa A figura 10 mostra a definiccedilatildeo de integraccedilatildeo com o SpagoBI

Vale a pena des-tacar algumas ca-

racteriacutesticas conceituais do editor graacutefico que satildeo importantes para uso corporativo do Talend Os desenhos satildeo versionados

com a data de cada versatildeo Cada objeto dos modelos re-

cebe um estado que pode ser ldquonatildeo verificadordquo ldquoverificadordquo ou ldquovalidadordquo por default no caso

dos business objects Entretan-to podem ser definidos outros estados usados na empresa

Existe uma aacuterea em cada proje-to para reunir a documentaccedilatildeo que pode conter objetivos justi-ficativas exemplos de resultados desejados etc O Talend tambeacutem gera documentaccedilatildeo teacutecnica e de processo automaticamente

Separaccedilatildeo de papeacuteis entre usuaacute-rios de negoacutecios que descrevem suas necessidades a niacutevel macro (definindo business objects) e desenvolvedores (definindo jobs e outros elementos)

Notificaccedilatildeo ou atualizaccedilatildeo au-tomaacutetica do sistema quando disponibilizadas novas versotildees Talend ou dos componentes

Facilidade para execuccedilatildeo de testes individuais e integrados de componentes

Importaccedilatildeo e exportaccedilatildeo de pro-jetos completos ou elementos

O Talend eacute um sistema muito completo com o apoio de uma empresa comercial um ecossiste-ma de componentes muito amplo e com um ambiente de definiccedilatildeo

Figura 7 Definiccedilatildeo de conexatildeo JDBC

Figura 8 Tela do Talend Open Studio

copy Linux New Media do Brasil Editora Ltda

67

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

e desenvolvimento faacutecil de usar aleacutem de poderoso e visualmente atraente Assim o projeto pode re-solver a questatildeo relatada no iniacutecio do artigo sobre os motivos da falta de popularizaccedilatildeo de sistemas ETL no mercado

ConclusatildeoHoje qualquer empresa tem ne-cessidades de ETL e integraccedilatildeo de dados e em muitos casos eacute caro e complexo desenvolver soluccedilotildees caseiras especiacuteficas O Talend apre-senta uma soluccedilatildeo flexiacutevel com a qual estes processos podem ser

modelados e executados de forma confiaacutevel Podem ser definidos e documentados com a participaccedilatildeo dos usuaacuterios que satildeo os principais interessados no resultado final Naturalmente esse tipo de divisatildeo de atividades ou responsabilidades requer que todos os usuaacuterios in-dependentemente do papel que desempenham no sistema sejam devidamente treinados Em TI eacute cada vez mais comum haver situ-accedilotildees em que os sistemas satildeo sim-ples e poderosos para usar mas os usuaacuterios devem ser treinados nos princiacutepios da tecnologia apresen-

tada Quem usa o Talend deveraacute estar ciente da documentaccedilatildeo em inglecircs ou em francecircs aleacutem do uso do sistema em inglecircs

O uso do Talend dentro de uma empresa eacute facilitado pelas caracte-riacutesticas corporativas do sistema que permitem entre outras possibilida-des ter alta produtividade e visibi-lidade dos processos pelo apoio a componentes especiacuteficos tais como conectores SAP Salesforce ou cus-tomizados e geraccedilatildeo de documen-taccedilatildeo Provavelmente seraacute difiacutecil encontrar um caso de uso que natildeo possa ser atendido com comodidade pelo Talend

Mais informaccedilotildees

[1] Talend httpwwwtalendcom

[2] GPL versatildeo 2 httpwwwgnuorglicensesold-licensesgpl-20html

[3] Forrester Research httpwwwforrestercom

[4] IDC httpwwwidccom

[5] Bloor Research httpwwwbloor-researchcom

[6] SpagoBI httpspagobiengit

[7] Miguel KO de Lacy ldquoNegoacutecio inteligenterdquo httpwwwlnmcombrarticle1747

[8] Eclipse httpwwweclipseorg

[9] Linux Magazine 36 ndash Eclipse httpwwwlnmcombrissue1353

[10] GDI httpwwweclipseorgswtfaqphpnographicslibrary

[11] JTDS httpjtdssourceforgenet

Figura 9 Forge de componentes mostrando aqueles especiacuteficos de algum sistema

Figura 10 Integraccedilatildeo com o SpagoBI Server

copy Linux New Media do Brasil Editora Ltda

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

68 httpwwwlinuxmagazinecombr

Gerenciamento de identidade na web com o Open ID

Identidade aberta mas segura

O OpenID oferece um padratildeo aberto para login em websites fechadospor Nils Magnus

A Web 20 eacute uma boa coisa como todo mundo imagina Um problema eacute a multiplici-

dade de sites protegidos por senha para acesso Blogs pessoais comu-nidades virtuais do Xing ao Orkut e Facebook e sites que gerenciam fluxo de trabalho despesas plane-jamento de feacuterias frequumlentemente confiam em aplicaccedilotildees baseadas na web com o uso de contas de usuaacuterio privadas Esse excesso de senhas de login estaacute fazendo com que alguns usuaacuterios descontentes percam a pa-ciecircncia Enquanto os usuaacuterios usam um dispositivo fiacutesico uacutenico e local ferramentas como os gerenciadores de senhas oferecidos pela maioria dos navegadores e alternativas como o KDE Wallet satildeo de grande ajuda

Mas o paradigma da Web 20 su-potildee que o usuaacuterio tem a liberdade de se mover e efetuar login de dife-rentes locais

Opccedilatildeo da comunidadeSoluccedilotildees para o gerenciamento de identidades fornecem uma soluccedilatildeo de maior mobilidade e flexibilida-de para simplificar o login via web Essas ferramentas muitas vezes empregam o princiacutepio da idonei-dade com terceiros Alguns grandes

players globais tecircm avanccedilado com serviccedilos que oferecem soluccedilotildees de login confiaacuteveis desenvolvidas por terceiros de uma uacutenica fonte O sis-tema Microsoft Passport foi criado em sintonia com esse sentimento Hoje o mercado do Microsoft Passport eacute o ldquoWindows Live IDrdquo [1] Muitos usuaacuterios no entanto estatildeo receo-sos de se tornarem dependentes de aplicativos proprietaacuterios

Uma recente alternativa conhe-cida como Liberty Alliance Project [2] ofereceu uma abordagem mais aberta mas foi amplamente consi-derada como um exagero de especi-ficaccedilotildees e por isso ainda natildeo obteve grande adoccedilatildeo apesar de seus sete anos de esforccedilo O projeto OpenID sob os auspiacutecios da OpenID Foun-dation [3] se baseia na mais simples funcionalidade podendo ser mais facilmente integrado a sistemas de autenticaccedilatildeo online

Os usuaacuterios que optaram pela alternativa do OpenID natildeo inserem um nome de usuaacuterio mas em vez disso identificam-se com uma URI que pode ser exibida em um navega-dor web A URI pode ser um ende-reccedilo web oferecido por um serviccedilo OpenID como httpnilsmagnusmyopenidcom no MyopenID [4] O tipo de identidade natildeo eacute importan-te contanto que qualquer navegador

consiga acessar a paacutegina A paacutegina teraacute que adicionar uma tag que aponte para o provedor do serviccedilo

ltlink rel=rdquoopenidserverrdquo href=rdquohttpwwwmyopenidcomserverrdquo gtltlink rel=rdquoopeniddelegaterdquo href=rdquohttpnilsmagnusmyopenidcomrdquo gt

O servidor do lado do provedor especifica a primeira relaccedilatildeo a segun-da reafirma o nome da identidade O provedor normalmente cria uma paacutegina para tornar essa informaccedilatildeo disponiacutevel para os sites na Web que requisitem as informaccedilotildees de login Contudo um usuaacuterio poderia de forma alternativa integrar os deta-lhes necessaacuterios em uma paacutegina ou blog pessoal Nesse caso seu proacute-prio endereccedilo poderia servir como sua OpenID

O loginUma aplicaccedilatildeo que suporte o OpenID exibiraacute um campo de login OpenID aleacutem da paacutegina de login tradicional Por exemplo a figura 1 mostra a paacute-gina de autenticaccedilatildeo do OpenID no wiki do Amarok

Quando um usuaacuterio digita seu ID baseado em uma URI a aplica-ccedilatildeo web que eacute conhecida como o

RE

DE

S

RE

DE

S

copy Linux New Media do Brasil Editora Ltda

69

cliente na linguagem do OpenID recupera a porccedilatildeo do servidor da URI O OpenID se refere ao servi-dor como ldquoprovedor de identidaderdquo (identity provider)

O cliente (o wiki do Amarok nes-te caso) solicita ao provedor o nome associado agrave URI Para fazer isso ele redireciona a requisiccedilatildeo para o pro-vedor do site e o provedor indica que foi emitida a solicitaccedilatildeo O usuaacuterio entatildeo concorda com o pedido digi-tando uma senha O provedor redi-reciona o navegador de volta para o site do cliente onde o usuaacuterio estaacute agora logado

Uma praacutetica caracteriacutestica do OpenID eacute a possibilidade de ar-mazenar vaacuterios atributos para uma uacutenica identidade com um provedor por exemplo seu nome completo seu idioma preferido ou sua data de nascimento (ver figura 2) O usuaacuterio que recebe um pedido do cliente pode especificar quais os dados que o prestador deve divulgar para o cliente e quais ele deve conservar como secretos

Esse processo de aprovaccedilatildeo eacute im-portante para evitar o mau uso de

um paracircmetro criacutetico tal como o PIN de um banco que na verdade ateacute pode ser armazenado junto ao seu ID Alguns provedores permitem que o usuaacuterio crie muacuteltiplas identi-dades cada uma com um conjunto distinto de atributos

Essa abordagem tambeacutem eacute co-nhecida como Gerenciamento de Identidade Centrada no Usuaacuterio (do inglecircs User-Centric Identity Mana-gement) em que cada usuaacuterio pode definir individualmente as informa-

ccedilotildees fornecidas pelo provedor para os clientes que pedirem

Alguns provedores de identidade associam-nas gratuitamente Cabe ao usuaacuterio decidir em qual provedor con-fiar Diferentemente da abordagem centralizada utilizada pelo Passport um conjunto descentralizado de pro-vedores OpenID competem entre si na oferta de serviccedilos Os usuaacuterios tecircm ateacute mesmo a liberdade de criar seu proacuteprio provedor

Para quem se interessar pelo desenvolvimento de uma soluccedilatildeo proacutepria haacute pacotes de coacutedigo aberto em vaacuterias linguagens de programa-ccedilatildeo como Perl PHP Ruby Python e Java [5]

Tem seguranccedilaO OpenID pode gerar duacutevidas so-bre sua seguranccedila jaacute que qualquer um pode atuar como provedor Um agressor pode forjar (spoof) ou sequumlestrar uma identidade A primeira questatildeo aponta para um claacutessico problema de seguranccedila se vocecirc pode manipular um site de terceiros vocecirc pode redirecionar os visitantes para o seu proacuteprio prove-dor de identidade ou escrever um para se adequar agrave demanda

Em outras palavras a seguranccedila estaacute nas matildeos das pessoas responsaacuteveis pelo site hospedeiro Considerando-

Linux Magazine 50 | Janeiro de 2009

| REDESOpenID

Figura 2 O provedor especifica os detalhes que pretende enviar para o cliente

Figura 1 O wiki do Amarok permite que seus usuaacuterios efetuem login com o OpenID

copy Linux New Media do Brasil Editora Ltda

70 httpwwwlinuxmagazinecombr

se a qualidade do coacutedigo dos muitos sites escritos nas populares linguagens de script essa eacute uma preocupaccedilatildeo real mas natildeo um argumento funda-mental contra o OpenID

A segunda pergunta eacute complica-da eacute possiacutevel que um hacker capture as comunicaccedilotildees entre o cliente e o provedor de identidade e com isso ar-mazene as sessotildees Afi nal o provedor envia uma confi rmaccedilatildeo de mensagem em caso de sucesso na autenticaccedilatildeo Um agressor poderia tentar apresentar uma sessatildeo gravada na proacutexima ten-tativa de login No entanto isso pode ser evitado com a ativaccedilatildeo do SSL ou do TLS no OpenID para proteger a conexatildeo e adicionar um desafi o para cada solicitaccedilatildeo Essa abordagem

signifi ca que qualquer resposta seraacute vaacutelida apenas uma vez o que exclui a reciclagem trivial

Apesar disso natildeo eacute uma boa ideacuteia subestimar a complexidade do ge-renciamento de sessatildeo baseado em estado ( stateful ) que trafega sobre um protocolo sem base em sessatildeo ( state-less ) como o HTTP que eacute a base do OpenID O fato de vaacuterias aplicaccedilotildees web estarem sendo comprometidas eacute uma indicaccedilatildeo clara dos perigos supondo que vocecirc acredite em pes-quisas e whitepapers [6]

Praacutetico e aberto O OpenID eacute um passo na direccedilatildeo certa para o gerenciamento de iden-tidades Como ele implementa o lo-

gin uacutenico ( single sign-on ) tambeacutem se torna mais con-veniente para os usuaacuterios reduzindo o nuacutemero de senhas a serem lembradas A capacidade de gerenciar atributos eacute muito mais po-derosa do que parece agrave pri-meira vista

O nuacutemero de sites que usam OpenID continua crescendo vertiginosamente mas algumas grandes aplica-ccedilotildees continuaratildeo precisando provar se preenchem todas

as exigecircncias operacionais e concei-tuais no que diz respeito agrave confi anccedila e agrave disponibilidade

Mais informaccedilotildees

[1] Microsoft Passport httpwwwpassportnet

[2] Projeto Liberty Alliance httpwwwprojectlibertyorg

[3] Projeto OpenID httpopenidnet

[4] MyOpenID httpmyopenidcom

[5] Bibliotecas abertas de OpenID httpwikiopenidnetLibraries

[6] Secure Computing ldquoKeeping Customers and Merchants Securerdquo (em inglecircs) httpwwwsecurecomputingcomwebformcfmid=289ampref=pci

[7] Feder ID httpfederidobjectweborg

[8] Extensotildees do Mediawiki para OpenID httpwwwmediawikiorgwikiExtensionOpenID

[9] Suporte a OpenID no Drupal httpdrupalorgprojectopenid

REDES | OpenID

Quadro 1 Gerenciamento de identidade e federaccedilatildeo

O OpenID natildeo eacute soacute um projeto de gerenciamento de identidade O Feder ID [7] por exemplo eacute um projeto de coacutedigo aberto da Franccedila Um dos fi nanciadores do projeto Oudot Cleacutement enfatiza a importacircncia das identidades digitais para o acesso aos recursos da Web em uma recente entrevista com a Linux Magazine

De acordo com Oudot muitos usuaacuterios possuem uma identidade distinta para cada site Isto eacute um grande problema para grandes empresas e organizaccedilotildees jaacute que os usuaacuterios precisam memorizar muacuteltiplas senhas O Feder ID fornece ferramentas para a sincronizaccedilatildeo de repositoacuterios de identidade Estes atributos natildeo estatildeo disponiacuteveis apenas para uma uacutenica organizaccedilatildeo local eles podem ser compartilhados por parceiros confi aacuteveis

As ferramentas do Feder ID satildeo de coacutedigo aberto e respeitam os padrotildees da IETF ( Internet Engineering Task Force ) OASIS ( Organization of Structured Information Standards ) e da Liberty Alliance para a gestatildeo de identidades

Tabela 1 Provedores de identidade para aplicaccedilotildees web

Provedor OpenID

AOL httpopenidaolcomnome_do_usuaacuterio

Blogger httpnome_do_blogblogspotcom

Flickr httpwwwflickrcomphotosusuaacuterio

Livedoor httpprofilelivedoorcomusuaacuterio

Livejournal httpusuaacuteriolivejournalcom

Technorati httptechnoraticompeopletechnoratiusuaacuterio

Wordpress httpusuaacuteriowordpresscom

Yahoo httpopenidyahoocom

copy Linux New Media do Brasil Editora Ltda

71

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

LTRindd 67 251108 173039

copy Linux New Media do Brasil Editora Ltda

72 httpwwwlinuxmagazinecombr

Login no Linux pela impressatildeo digital

Autenticaccedilatildeo biomeacutetrica A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e a confi gurar esse recurso de seguranccedila por Alessandro de Oliveira Faria (Cabelo)

Hoje a autenticaccedilatildeo biomeacute-trica eacute imprescindiacutevel para elevarmos o niacutevel de segu-

ranccedila computacional Na Linux Magazine 48 foram mencionadas as principais tecnologias biomeacutetri-cas de coacutedigo aberto Agora neste documento veremos na praacutetica o uso da biometria para autentica-ccedilatildeo de identidade Esse recurso natildeo faz parte apenas dos fi lmes de

fi cccedilatildeo cientiacutefi ca eacute uma realidade cada vez mais presente no nosso dia-a-dia em diversos segmentos do mercado

Com o crescimento dos equi-pamentos em redes abertas sur-giram problemas de seguranccedila e confi abilidade de autenticaccedilatildeo Uma autenticaccedilatildeo indevida for-nece acesso privilegiado a pessoas natildeo autorizadas dando margem a roubo de informaccedilotildees interrup-ccedilotildees de serviccedilos fraudes sistemaacute-ticas entre outros transtornos do seacuteculo XXI

Neste cenaacuterio surgiu a necessida-de da autenticaccedilatildeo biomeacutetrica ou seja verifi caccedilatildeo da autenticidade do usuaacuterio em operaccedilatildeo Esse me-canismo computacional eacute baseado em caracteriacutesticas (ldquoo que vocecirc eacuterdquo) A biometria aplicada agrave autenticaccedilatildeo de usuaacuterios eacute um meacutetodo automa-tizado para medir as caracteriacutesticas humanas e confrontaacute-las em uma base de dados obtendo assim a au-tenticidade do usuaacuterio

A efi caacutecia da autenticaccedilatildeo biomeacute-trica estaacute diretamente relacionada agrave qualidade dos dados obtidos na fase de cadastramento da caracteriacutestica

biomeacutetrica Nessa etapa a base de dados recebe o template matemaacuteti-co calculado pelo sistema isto eacute a representaccedilatildeo binaacuteria da caracteriacutes-tica humana Essa informaccedilatildeo seraacute utilizada posteriormente na compa-raccedilatildeo biomeacutetrica para autenticaccedilatildeo do sistema obtendo assim um re-sultado positivo ou negativo

Este artigo apresenta um foco teacutecnico e pouco teoacuterico assim obje-

SE

GU

RA

NCcedil

A

Figura 1 Imagem extraiacuteda de um leitor de impressatildeo digital UAreU da Digital Persona

Figura 2 Imagem binarizada (branco e preto)

copy Linux New Media do Brasil Editora Ltda

73

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

tivando configurar ou acrescentar a autenticaccedilatildeo biomeacutetrica como niacutevel adicional de seguranccedila ao login do sistema operacional Linux Para tal operaccedilatildeo utilizaremos a tecnologia de impressatildeo digital e pacotes de coacute-digo aberto (biblioteca fprint)

A tecnologia utilizada para a con-fecccedilatildeo deste artigo foi OpenSuse 103 ndash kernel 26225-

31-bigsmp Notebook Dell Vostro 1510 4 GB de memoacuteria RAM Processador Core 2 Duo Leitor de impressatildeo digital Uare

U Digital Persona 4000B Biblioteca fprint

Fprint conceitosO pacote fprint[1] eacute o sonho de todo desenvolvedor de coacutedigo aberto O kit de integraccedilatildeo permite o desen-volvimento de rotinas para identi-ficaccedilatildeo e verificaccedilatildeo de impressotildees digitais do usuaacuterio Um dos pontos fortes dessa soluccedilatildeo livre eacute a compa-tibilidade com diversos modelos de sensores disponiacuteveis no mercado A lista de aparelhos compatiacuteveis en-contra-se em [2]

A impressatildeo digital eacute composta por linhas formadas pelas elevaccedilotildees da pele A comparaccedilatildeo por impressatildeo digital eacute um meacutetodo utilizado haacute mais de mil anos como forma de identificaccedilatildeo de usuaacuterios Eacute uma caracteriacutestica uacutenica entre os seres humanos inclusive entre irmatildeos gecircmeos univitelinos

Formada ainda quando feto a impressatildeo digital acompanha a pessoa por toda a sua existecircncia sem apresentar grandes mudanccedilas Extraindo os pontos caracteriacutesticos ou ldquopontos de minuacuteciasrdquo de uma impressatildeo digital um papiloscopista ou sistemas computadorizados po-dem identificar pessoas utilizando caacutelculos bastante confiaacuteveis Grande parte dos algoritmos trabalham com o princiacutepio de extraccedilatildeo desses pontos caracteriacutesticos Apoacutes a extraccedilatildeo satildeo calculados a relaccedilatildeo entre as distacircn-cias desses pontos Cada algoritmo possui sua base de caacutelculo seja por anaacutelise dos pontos entre si ou por agrupamentos de pontos para anaacute-lise de semelhanccedilas de triacircngulos com os acircngulos internos

A biblioteca fprint incorpora abstraccedilatildeo de hardware para aces-so ao leitor Com esse recurso natildeo precisamos instalar qualquer moacutedulo do kernel para o funcio-namento de cada modelo de leitor de impressatildeo digital

Na primeira fase a biblioteca extrai a imagem do sensor (figura 1) e logo a seguir a linha da impressatildeo digital eacute realccedilada com a cor preta (figura 2)

Figura 3 Linhas reduzidas para um uacutenico pixel

Figura 4 Pontos de bifurcaccedilatildeo e terminadores

copy Linux New Media do Brasil Editora Ltda

74 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

utilizando algoritmos de extraccedilatildeo com filtros Na proacutexima etapa a imagem jaacute estaacute binarizada (branco e preto figura 3) e as linhas foram reduzidas a um uacutenico pixel de largura Por uacuteltimo a tarefa mais faacutecil ou seja

detectar os pontos de minuacutecias Fa-zendo um exame de cada pixel na imagem se houver um pixel branco sem vizinhos isso significa que en-contramos um ponto terminal Caso um ponto branco possua trecircs pontos

vizinhos significa que en-contramos uma bifurcaccedilatildeo Os pontos de minuacutecias satildeo entatildeo destacados (fi-gura 4) e compotildeem a ver-dadeira identidade da im-pressatildeo digital

As impressotildees digitais satildeo classificadas em cinco grupos conforme mostra a figura 5 ciacuterculo direito ciacuterculo esquerdo espiral arco e arco incompletoA estrutura de uma im-pressatildeo digital eacute forma-da por cruzamentos das linhas core (centro) bi-furcaccedilotildees terminaccedilotildees ilhas deltas (bifurcaccedilotildees inferiores) e poros Os pon-tos terminais assim como os pontos de bifurcaccedilotildees satildeo definidos em funccedilatildeo da distacircncia (coordena-da relativa) para o core Nos pontos terminais eacute co-mum calcular seu acircngulo de inclinaccedilatildeo

InstalaccedilatildeoHaacute pacotes da biblioteca fprint preacute-compilados para OpenSuse [3] e Ubuntu [4] No entanto este artigo sugere a compilaccedilatildeo da biblioteca a partir de seu coacutedigo-fonte que pode ser obtido em [5] Haacute tambeacutem uma demonstraccedilatildeo do software fprint que pode ser baixada a partir de [6]

Apoacutes o download devemos des-compactar os arquivos fontes O exemplo 1 detalha o procedimen-

Exemplo 1 Preparaccedilatildeo da libfprint

$ tar -jxvf libfprint-006tarbz2$ cd libfprint-006$ configure$ make$ suSenha make install ldconfig

Figura 5 Os cinco grupos de impressotildees digitais

Exemplo 3 Arquivo de login do PAM

01 PAM-1002 auth requisite pam_nologinso03 auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securettyso04 auth include common-auth05 auth requisite pam_fprintso06 account include common-account07 password include common-password08 session required pam_loginuidso09 session include common-session10 session required pam_lastlogso nowtmp11 session required pam_resmgrso12 session optional pam_mailso standard13 session optional pam_ck_connectorso

Exemplo 2 Compilaccedilatildeo do pam_fprint

$ wget httpufprdlsourceforgenetsourceforgefprintpam_fprint-02tarbz2$ tar -jxvf pam_fprint-02tarbz2$ cd pam_fprint-02$ configure$ make$ sudo make install

copy Linux New Media do Brasil Editora Ltda

75

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

Exemplo 4 pam_fprint_enroll --help

pam_fprint_enroll --helpUsage pam_fprint_enroll options -h --help Display this usage information -f --enroll-finger index Enroll finger with index Valid indexes are 1 - Left Thumb 2 - Left Index Finger 3 - Left Middle Finger 4 - Left Ring Finger 5 - Left Little Finger 6 - Right Thumb 7 - Right Index Finger 8 - Right Middle Finger 9 - Right Ring Finger 10 - Right Little Finger

Exemplo 5 Cadastramento de digital

pam_fprint_enroll --enroll-finger 7

This program will enroll your finger unconditionally overwriting any selected print that was enrolled previously If you want to continue press enter otherwise hit Ctrl+C Found device claimed by Digital Persona UareU 40004000B driverOpened device Itrsquos now time to enroll your finger You will need to successfully scan your Right Index Finger 1 timesto complete the process Scan your finger nowEnroll completeEnrollment completed

Exemplo 6 Sucesso na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1)lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BUacutetimo loginDom Nov 16 231501 BRST 2008em tty2

Have a lot of fun

copy Linux New Media do Brasil Editora Ltda

76 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

to de configuraccedilatildeo e compilaccedilatildeo da biblioteca

Execute o comando ldquomakerdquo con-vencional para efetuar a compilaccedilatildeo na iacutentegra do coacutedigo-fonte a seguir transforme-se em super-usuaacuterio (root) para efetuar a instalaccedilatildeo da biblioteca por meio do comando ldquomake installrdquo seguido do ldquoldconfigrdquo conforme as instruccedilotildees a seguir

Autenticaccedilatildeo pam_fprintO moacutedulo biomeacutetrico que trabalha em conjunto com o sistema de au-tenticaccedilatildeo PAM (Pluggable Authen-tication Modules) eacute o pam_fprint Sua base tecnoloacutegica eacute a biblioteca fprint receacutem compilada e instalada O pacote pam_fprint utiliza as fun-ccedilotildees biomeacutetricas para processar e verificar a autenticaccedilatildeo do usuaacuterio Em outras palavras a sua impressatildeo digital eacute utilizada para efetuar o login no sistema operacional

Vale a pena mencionar que o PAM eacute um sistema para autenticaccedilatildeo de usuaacuterios em ambientes Linux e Unix Uma de suas principais vantagens eacute a centralizaccedilatildeo das chamadas e funccedilotildees de login assim facilitando a tarefa do desenvolvedor

Continuando nossa jornada vamos agora baixar descompactar compilar e instalar o pacote pam_fprint como no exemplo 2

Sobre o autorAlessandro Faria eacute soacutecio-proprietaacuterio da NETi TECNOLOGIA fundada em Junho de 1996 (httpwwwnetiteccombr) empre-sa especializada em desenvolvimento de software e soluccedilotildees biomeacutetricas Consultor Biomeacutetrico na tecnologia de reconhecimen-to facial atua na aacuterea de tecnologia desde 1986 propiciando assim ao mercado solu-ccedilotildees em software Leva o Linux a seacuterio des-de 1998 com desenvolvimento de soluccedilotildees open source eacute membro colaborador da co-munidade Viva O Linux e mantenedor da bi-blioteca open source de viacutedeo captura aleacuten de participar entre outros projetos

Mais informaccedilotildees

[1] Fprint httpreactivatednetfprintwikiMain_Page

[2] Dispositivos compatiacuteveis com a fprint httpreactivatednetfprintwikiSupported_devices

[3] Pacotes fprint para OpenSuse httpdownloadopensuseorgrepositorieshomedgege

[4] Pacotes fprint para Ubuntu httpwwwmadman2knetcomments105

[5] Download da biblioteca fprint httpufprdlsourceforgenetsourceforgefprintlibfprint-006tarbz2

[6] Demo do fprint httpufprdlsourceforgenetsourceforgefprintfprint_demo-04tarbz2

[7] Portal Viva o Linux httpwwwvivaolinuxcombr

ConfiguraccedilatildeoNo OpenSuse eacute preciso modi-ficar o arquivo de configuraccedilatildeo para autenticaccedilatildeo no modo conso-le etcpamdlogin Esse arquivo pode ter nome diferente em ou-tras distribuiccedilotildees Seu conteuacutedo eacute mostrado no exemplo 3 e a linha 5 deve ser acrescentada pois eacute a res-ponsaacutevel por requisitar o moacutedulo pam_fprint

Eacute importante notar a utilizaccedilatildeo do modo requisite de autenticaccedilatildeo no PAM Para maiores informaccedilotildees sobre o tipo de autenticaccedilatildeo reco-menda-se consultar a documentaccedilatildeo do PAM

CadastramentoO proacuteximo passo eacute efetuar o cadastra-mento biomeacutetrico da sua impressatildeo digital Se concluiacuteda com sucesso essa tarefa no proacuteximo login o usuaacute-rio deveraacute fornecer aleacutem da senha sua impressatildeo digital para ter acesso ao sistema

O programa pam_fprint_enroll eacute responsaacutevel pelo cadastramento das impressotildees digitais Para en-tender melhor sua sintaxe digite pam_fprint_enroll --help e perceba (exemplo 4) que eacute preciso informar o nuacutemero correspondente ao dedo utilizado para cadastro A numeraccedilatildeo comeccedila em 1 no polegar esquerdo e segue ateacute o dedo mindinho esquerdo (nuacutemero 5) seguindo depois para o polegar direito (6) e terminando no mindinho direito (10)

No meu caso utilizei o nuacutemero 7 representando o dedo indicador da matildeo direita (exemplo 5) Ao exe-cutar o programa pressione [ENTER] encoste o dedo no leitor de impres-satildeo digital e pronto Nessa fase ao efetuar o login o sistema opera-cional solicitaraacute a senha seguida da autenticaccedilatildeo biomeacutetrica como mostram os exemplos 6 (sucesso na autenticaccedilatildeo) e 7 (falha na autenti-caccedilatildeo biomeacutetrica)

ConclusatildeoA biblioteca fprint proporciona inuacute-meros recursos aleacutem dos mencio-nados neste artigo Para um estudo detalhado sobre o assunto sugiro algumas leituras no portal Viva o Linux [7] e tambeacutem no site oficial do projeto

Exemplo 7 Falha na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1) lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BLogin incorreto

copy Linux New Media do Brasil Editora Ltda

77

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

SE

CcedilAtilde

O

Site_LNMindd 55 191208 205243

copy Linux New Media do Brasil Editora Ltda

78

SE

RV

ICcedilO

S

httpwwwlinuxmagazinecombr

Fornecedor de Hardware = 1 Redes e Telefonia PBX = 2 Integrador de Soluccedilotildees = 3

Literatura Editora = 4 Fornecedor de Software = 5

Consultoria Treinamento = 6

Linuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

CearaacuteF13 Tecnologia Fortaleza Rua Coronel Solon 480 ndash Bairro de Faacutetima

Fortaleza - CE - CEP 60040-270 85 3252-3836 wwwf13combr

Espiacuterito SantoLinux Shopp Vila Velha Rua Satildeo Simatildeo (Correspondecircncia) 18 ndash CEP 29113-120 27 3082-0932 wwwlinuxshoppcombr

Megawork Consultoria e Sistemas

Vitoacuteria Rua Chapot Presvot 389 ndash Praia do Can-to ndash CEP 29055-410 sl 201 202

27 3315-2370 wwwmegaworkcombr

Spirit Linux Vitoacuteria Rua Marins Alvarino 150 ndash CEP 29047-660 27 3227-5543 wwwspiritlinuxcombr

Minas GeraisInstituto Online Belo Horizonte Av Bias Fortes 932 Sala 204 ndash CEP 30170-011 31 3224-7920 wwwinstitutoonlinecombr

Linux Place Belo Horizonte Rua do Ouro 136 Sala 301 ndash Serra ndash CEP 30220-000 31 3284-0575 corporatelinuxplacecombr

Microhard Belo Horizonte Rua Repuacuteblica da Argentina 520 ndash Sion ndash CEP 30315-490 31 3281-5522 wwwmicrohardcombr

TurboSite Belo Horizonte Rua Paraiacuteba 966 Sala 303 ndash Savassi ndash CEP 30130-141 0800 702-9004 wwwturbositecombr

ParanaacuteiSolve Curitiba Av Cacircndido de Abreu 526 Cj 1206B ndash CEP 80530-000 41 252-2977 wwwisolvecombr

Mandriva Conectiva Curitiba Rua Tocantins 89 ndash Cristo Rei ndash CEP 80050-430 41 3360-2600 wwwmandrivacombr

Telway Tecnologia Curitiba Rua Francisco Rocha 183071 41 3203-0375 wwwtelwaycombr

Rio de JaneiroMuacuteltipla Tecnologia da Informaccedilatildeo

Rio de Janeiro Av Rio Branco 37 14deg andar ndash CEP 20090-003 21 2203-2622 wwwmultipla-ticombr

NSI Training Rio de Janeiro Rua Arauacutejo Porto Alegre 71 4ordm andar Centro ndash CEP 20030-012 21 2220-7055 wwwnsicombr

Open IT Rio de Janeiro Rua do Mercado 34 Sl 402 ndash Centro ndash CEP 20010-120 21 2508-9103 wwwopenitcombr

Unipi Tecnologias Campos dos Goytacazes

Av Alberto Torres 303 1ordmandar ndash Centro ndash CEP 28035-581 22 2725-1041 wwwunipicombr

Rio Grande do Sul4up Soluccedilotildees Corporativas Novo Hamburgo Pso Calccediladatildeo Osvaldo Cruz 54 sl 301 CEP 93510-015 51 3581-4383 www4upcombr

Definitiva Informaacutetica Novo Hamburgo Rua General Osoacuterio 402 - Hamburgo Velho 51 3594 3140 wwwdefinitivacombr

Solis Lajeado Av 7 de Setembro 184 sala 401 ndash Bairro Moinhos CEP 95900-000

51 3714-6653 wwwsoliscoopbr

DualCon Novo Hamburgo Rua Joaquim Pedro Soares 1099 Sl 305 ndash Centro 51 3593-5437 wwwdualconcombr

Datarecover Porto Alegre Av Carlos Gomes 403 Sala 908 Centro Comer-cial Atrium Center ndash Bela Vista ndash CEP 90480-003

51 3018-1200 wwwdatarecovercombr

LM2 Consulting Porto Alegre Rua Germano Petersen Junior 101-Sl 202 ndash Hi-gienoacutepolis ndash CEP 90540-140

51 3018-1007 wwwlm2combr

Lnx-IT Informaccedilatildeo e Tecnologia Porto Alegre Av Venacircncio Aires 1137 ndash Rio Branco ndash CEP 90040193 51 3331-1446 wwwlnx-itinfbr

Plugin Porto Alegre Av Juacutelio de Castilhos 132 11ordm andar Centro ndash CEP 90030-130 51 4003-1001 wwwplugincombr

TeHospedo Porto Alegre Rua dos Andradas 1234610 ndash Centro ndash CEP 90020-008 51 3286-3799 wwwtehospedocombr

Satildeo PauloWs Host Arthur Nogueira Rua Jerere 36 ndash Vista Alegre ndash CEP 13280-000 19 3846-1137 wwwwshostcombr

DigiVoice Barueri Al Juruaacute 159 Teacuterreo ndash Alphaville ndash CEP 06455-010 11 4195-2557 wwwdigivoicecombr

Dextra Sistemas Campinas Rua Antocircnio Paioli 320 ndash Pq das Universidades ndash CEP 13086-045 19 3256-6722 wwwdextracombr

Insigne Free Software do Brasil Campinas Av Andrades Neves 1579 ndash Castelo ndash CEP 13070-001 19 3213-2100 wwwinsignesoftwarecom

Microcamp Campinas Av Thomaz Alves 20 ndash Centro ndash CEP 13010-160 19 3236-1915 wwwmicrocampcombr

PC2 Consultoria em Software Livre

Carapicuiba Rua Edeia 500 - CEP 06350-080 11 3213-6388 wwwpc2consultoriacom

Savant Tecnologia Diadema Av Senador Vitorino Freire 465 ndash CEP 09910-550 11 5034-4199 wwwsavantcombr

Epopeacuteia Informaacutetica Mariacutelia Rua Goiaacutes 392 ndash Bairro Cascata ndash CEP 17509-140 14 3413-1137 wwwepopeiacombr

Redentor Osasco Rua Costante Piovan 150 ndash Jd Trecircs Montanhas ndash CEP 06263-270 11 2106-9392 wwwredentorindbr

Go-Global Santana de Parnaiacuteba

Av Yojiro Takaoca 4384 Ed Shopping Ser-vice Cj 1013 ndash CEP 06541-038

11 2173-4211 wwwgo-globalcombr

AW2NET Santo Andreacute Rua Edson Soares 59 ndash CEP 09760-350 11 4990-0065 wwwaw2netcombr

Async Open Source Satildeo Carlos Rua Orlando Damiano 2212 ndash CEP 13560-450 16 3376-0125 wwwasynccombr

O maior diretoacuterio de empresas que oferecem produtos soluccedilotildees e serviccedilos 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 anuncioslinuxmagazinecombr

copy Linux New Media do Brasil Editora Ltda

79

| SERVICcedilOSLinuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

Satildeo Paulo (continuaccedilatildeo)Delix Internet Satildeo Joseacute do

Rio PretoRua Voluntaacuterio de Satildeo Paulo 3066 9ordm ndash Centro ndash CEP 15015-909 11 4062-9889 wwwdelixhostingcombr

4Linux Satildeo Paulo Rua Teixeira da Silva 660 6ordm andar ndash CEP 04002-031 11 2125-4747 www4linuxcombr

A Casa do Linux Satildeo Paulo Al Jauacute 490 ndash Jd Paulista ndash CEP 01420-000 11 3549-5151 wwwacasadolinuxcombr

Accenture do Brasil Ltda Satildeo Paulo Rua Alexandre Dumas 2051 ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 5188-3000 wwwaccenturecombr

ACR Informaacutetica Satildeo Paulo Rua Lincoln de Albuquerque 65 ndashPerdizes ndash CEP 05004-010 11 3873-1515 wwwacrinformaticacombr

Agit Informaacutetica Satildeo Paulo Rua Major Quedinho 111 5ordm andar Cj 508 ndash Centro ndash CEP 01050-030

11 3255-4945 wwwagitcombr

Altbit - Informaacutetica Comeacutercio e Serviccedilos LTDA

Satildeo Paulo Av Francisco Matarazzo 229 Cj 57 ndash Aacutegua Branca ndash CEP 05001-000

11 3879-9390 wwwaltbitcombr

AS2M -WPC Consultoria Satildeo Paulo Rua Trecircs Rios 131 Cj 61A ndash Bom Retiro ndash CEP 01123-001 11 3228-3709 wwwwpccombr

Big Host Satildeo Paulo Rua Dr Miguel Couto 58 ndash Centro ndash CEP 01008-010 11 3033-4000 wwwbighostcombr

Blanes Satildeo Paulo Rua Andreacute Ampeacutere 153 ndash 9ordm andar ndash Conj 91 CEP 04562-907 (proacutex Av L C Berrini)

11 5506-9677 wwwblanescombr

Commlogik do Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 13797 Bloco II 6ordm andar ndash Morumbi ndash CEP 04794-000

11 5503-1011 wwwcommlogikcombr

Computer Consulting Projeto e Consultoria Ltda

Satildeo Paulo Rua Vergueiro 6455 Cj 06 ndash Alto do Ipiranga ndash CEP 04273-100 11 5062-3927 wwwcomputerconsultingcombr

Consist Consultoria Siste-mas e Representaccedilotildees Ltda

Satildeo Paulo Av das Naccedilotildees Unidas 20727 ndash CEP 04795-100 11 5693-7210 wwwconsistcombr

Domiacutenio Tecnologia Satildeo Paulo Rua das Carnaubeiras 98 ndash Metrocirc Conceiccedilatildeo ndash CEP 04343-080 11 5017-0040 wwwdominiotecnologiacombr

EDS do Brasil Satildeo Paulo Av Pres Juscelino Kubistcheck 1830 Torre 4 - 5ordm andar 11 3707-4100 wwwedscom

Eacutetica Tecnologia Satildeo Paulo Rua Nova York 945 ndash Brooklin ndash CEP04560-002 11 5093-3025 wwweticanet

Getronics ICT Solu-tions and Services

Satildeo Paulo Rua Verbo Divino 1207 ndash CEP 04719-002 11 5187-2700 wwwgetronicscombr

Hewlett-Packard Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 12901 25ordm andar ndash CEP 04578-000 11 5502-5000 wwwhpcombr

IBM Brasil Ltda Satildeo Paulo Rua Tutoacuteia 1157 ndash CEP 04007-900 0800-7074 837 wwwbribmcom

iFractal Satildeo Paulo Rua Fiaccedilatildeo da Sauacutede 145 Conj 66 ndash Sauacutede ndash CEP 04144-020 11 5078-6618 wwwifractalcombr

Integral Satildeo Paulo Rua Dr Gentil Leite Martins 295 2ordm andar Jd Prudecircncia ndash CEP 04648-001

11 5545-2600 wwwintegralcombr

Itautec SA Satildeo Paulo Av Paulista 2028 ndash CEP 01310-200 11 3543-5543 wwwitauteccombr

Kenos Consultoria Satildeo Paulo Av Fagundes Filho 13 Conj 53 ndash CEP 04304-000 11 40821305 wwwkenoscombr

Konsultex Informatica Satildeo Paulo Av Dr Guilherme Dumont Villares 1410 6 andar CEP 05640-003 11 3773-9009 wwwkonsultexcombr

Linux Komputer Informaacutetica Satildeo Paulo Av Dr Lino de Moraes Leme 185 ndash CEP 04360-001 11 5034-4191 wwwkomputercombr

Linux Mall Satildeo Paulo Rua Machado Bittencourt 190 Cj 2087 ndash CEP 04044-001 11 5087-9441 wwwlinuxmallcombr

Livraria Tempo Real Satildeo Paulo Al Santos 1202 ndash Cerqueira Ceacutesar ndash CEP 01418-100 11 3266-2988 wwwtemporealcombr

Locasite Internet Service Satildeo Paulo Av Brigadeiro Luiz Antonio 2482 3ordm andar ndash Centro ndash CEP 01402-000

11 2121-4555 wwwlocasitecombr

Microsiga Satildeo Paulo Av Braz Leme 1631 ndash CEP 02511-000 11 3981-7200 wwwmicrosigacombr

Novatec Editora Ltda Satildeo Paulo Rua Luis Antonio dos Santos 110 ndash Santana ndash CEP 02460-000 11 6979-0071 wwwnovateceditoracombr

Novell Ameacuterica Latina Satildeo Paulo Rua Funchal 418 ndash Vila Oliacutempia 11 3345-3900 wwwnovellcombrasil

Oracle do Brasil Sistemas Ltda Satildeo Paulo Av Alfredo Egiacutedio de Souza Aranha 100 ndash Bloco B ndash 5ordm andar ndash CEP 04726-170

11 5189-3000 wwworaclecombr

Proelbra Tecnolo-gia Eletrocircnica Ltda

Satildeo Paulo Av Rouxinol 1041 Cj 204 2ordm andar Moema ndash CEP 04516-001 11 5052- 8044 wwwproelbracombr

Provider Satildeo Paulo Av Cardoso de Melo 1450 6ordm andar ndash Vila Oliacutempia ndash CEP 04548-005

11 2165-6500 wwwe-providercombr

Red Hat Brasil Satildeo Paulo Av Brigadeiro Faria Lima 3900 Cj 81 8ordm andar Itaim Bibi ndash CEP 04538-132

11 3529-6000 wwwredhatcombr

Samurai Projetos Especiais Satildeo Paulo Rua Baratildeo do Triunfo 550 6ordm andar ndash CEP 04602-002 11 5097-3014 wwwsamuraicombr

SAP Brasil Satildeo Paulo Av das Naccedilotildees Unidas 11541 16ordm andar ndash CEP 04578-000 11 5503-2400 wwwsapcombr

Simples Consultoria Satildeo Paulo Rua Mourato Coelho 299 Cj 02 Pinheiros ndash CEP 05417-010 11 3898-2121 wwwsimplesconsultoriacombr

Smart Solutions Satildeo Paulo Av Jabaquara 2940 cj 56 e 57 11 5052-5958 wwwsmart-teccombr

Snap IT Satildeo Paulo Rua Joatildeo Gomes Junior 131 ndash Jd Bonfiglioli ndash CEP 05299-000 11 3731-8008 wwwsnapitcombr

Stefanini IT Solutions Satildeo Paulo Av Brig Faria Lima 1355 19ordm ndash Pinheiros ndash CEP 01452-919 11 3039-2000 wwwstefaninicombr

Sun Microsystems Satildeo Paulo Rua Alexandre Dumas 2016 ndash CEP 04717-004 11 5187-2100 wwwsuncombr

Sybase Brasil Satildeo Paulo Av Juscelino Kubitschek 510 9ordm andar Itaim Bibi ndash CEP 04543-000 11 3046-7388 wwwsybasecombr

The Source Satildeo Paulo Rua Marquecircs de Abrantes 203 ndash Chaacutecara Tatuapeacute ndash CEP 03060-020

11 6698-5090 wwwthesourcecombr

Unisys Brasil Ltda Satildeo Paulo R Alexandre Dumas 1658 ndash 6ordm 7ordm e 8ordm andares ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 3305-7000 wwwunisyscombr

Utah Satildeo Paulo Av Paulista 925 13ordm andar ndash Cerqueira Ceacutesar ndash CEP 01311-916 11 3145-5888 wwwutahcombr

Visuelles Satildeo Paulo Rua Eng Domicio Diele Pacheco e Silva 585 ndash Interlagos ndash CEP 04455-310

11 5614-1010 wwwvisuellescombr

Webnow Satildeo Paulo Av Naccedilotildees Unidas 12995 10ordm andar Ed Plaza Centenaacuterio ndash Chaacutecara Itaim ndash CEP 04578-000

11 5503-6510 wwwwebnowcombr

WRL Informaacutetica Ltda Satildeo Paulo Rua Santa Ifigecircnia 211213 Box 02ndash Centro ndash CEP 01207-001 11 3362-1334 wwwwrlcombr

Systech Taquaritinga Rua Satildeo Joseacute 1126 ndash Centro - Caixa Postal 71 ndash CEP 15900-000 16 3252-7308 wwwsystech-ltdcombr

2MI Tecnologia e Informaccedilatildeo Embu Rua Joseacute Bonifaacutecio 55 ndash Jd Independecircncia ndash SP CEP 06826-080 11 4203-3937 www2micombr

Linuxlocal

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

80

SERVICcedil

OS

httpwwwlinuxmagazinecombr

Nerdson ndash Os quadrinhos mensais da Linux Magazine

Calendaacuterio de eventos

Evento Data Local Website

Campus Party 15 a 25 de janeiro Satildeo Paulo SP wwwcampus-partycombr

Bossa Conference 08 a 11 de marccediloPorto de Galinhas PE

wwwbossaconferenceorg

FISL 24 a 27 de junho Porto Alegre RS wwwfislsoftwarelivreorg

Interop 02 e 03 de setembro Satildeo Paulo SP wwwinteropsaopaulocombr

Futurecom 2009 13 a 16 de outubro Satildeo Paulo SP wwwfuturecom2009combr

Iacutendice de anunciantes

Empresa Paacuteg

Campus Party 02

Plusserver 07

Insigne 09

UOL 11

Xandros 13

Impacta 15

Linux Pro 33

Pocket Pro 43

Linuz Technical Review 71

Site LNM 77

Guia de TI 81

Bull 83

Ubiquiti 84

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

82 httpwwwlinuxmagazinecombr

Na Linux Magazine 51

PREVIE

W

Na EasyLinux 14 Monitores gigantes Os monitores LCD de 19 polegadas jaacute tecircm preccedilos bem melhores que haacute um ano Seraacute que jaacute chegou o momento de vocecirc comprar aquele monitor cine-matograacutefi co Quais satildeo as vantagens e desvantagens

do LCD em relaccedilatildeo aos antigos monitores de tubo Ateacute onde 21 polegadas va-lem mais que 19 Na Easy Linux 14 vamos comparar marcas modelos e tecno-logias de monitores agrave ven-da no Brasil para orientar suas compras

A melhor parte de todos os sistemas Empresas como Apple e Micro-soft investem pesado em design para deixarem seus sistemas mais atraentes Como resultado tanto o Mac OS quanto o Windows Vista tecircm forte apelo visual Poreacutem engana-se quem pensa que eacute impossiacutevel alcanccedilar um grau de beleza semelhante no Linux Na Easy Linux 14 vamos mostrar o caminho das pedras para deixar seu Linux com a cara do Mac OS X do Vista e do Windows XP seja por pura diversatildeo ou para facilitar o uso do Linux por quem jaacute estaacute habituado a esses sistemas e tem difi culdade de adaptaccedilatildeo ao pinguumlim

DESTAQUE

Seguranccedila com VoIP Verdadeiros administra-dores pensam em segu-ranccedila o tempo inteiro Mesmo que vocecirc seja um usuaacuterio comum eacute importante saber o que os invasores podem fazer Serviccedilos que costumavam ser seguros se tornam brechas de seguranccedila a menos que vocecirc se mantenha atualizado com essas questotildees

Na Linux Magazine 51 vamos examinar algumas estrateacutegias de seguranccedila recomendadas por especialistas Vocecirc jamais teraacute a rede perfeita ou sequer as ferramentas perfeitas ndash o mundo da seguranccedila de redes muda a todo tempo ndash e como eacute impos-siacutevel descartar defi nitivamente os problemas eacute melhor man-ter-se informado

TUTORIAL

Defi cientes visuais O Linux possui muitos ambientes desktop be-liacutessimos incluindo cubos rotativos e janelas que balanccedilam e queimam Poreacutem considere por exemplo uma aacuterea de trabalho com iacutecones cuidadosamente organizados vocecirc conseguiria utilizaacute-la com o monitor desligado

Apesar das vaacuterias ofertas de softwares pro-prietaacuterios cariacutessimos para leitura da tela e teclados sofi sticados que realmente possibi-litam o uso do computador por defi cientes visuais a maioria das ferramentas e extensotildees necessaacuterias para usuaacuterios cegos ou com visatildeo prejudicada aleacutem daqueles com difi culdades motoras ou mentais jaacute estatildeo presentes nos re-positoacuterios da maioria das distribuiccedilotildees Linux Veja como o projeto Adriane une todos esses recursos num uacutenico sistema desktop destinado a defi cientes visuais

os invasores podem fazer

os invasores podem fazer

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRAacuteTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA AacuteREA p36

44 0708

R$ 1390 euro 750

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWWLINUXMAGAZINECOMBR

CASE ALFRESCO p26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p28Iniciada em Porto Alegre a temporada de seminaacuterios Linux Park de 2008

CEZAR TAURION p34O Coacutedigo Aberto como incentivo agrave inovaccedilatildeo

GOVERNANCcedilA COM

raquo O que dizem os profissionais certificados p24

raquo Cobit CMMI ITIL Quais as melhores praacuteticas p36

raquo ITIL na praacutetica p39

raquo Novidades do ITIL v3 p44

SEGURANCcedilA DNSSEC p69

Com o DNSSEC a resoluccedilatildeo de nomes fica protegida de ataques Mas seupreccedilo vale a pena

REDES IPV6 p64

Conheccedila as vantagens da nova versatildeo do Internet Protocol e veja por queeacute difiacutecil adotaacute-la

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo Relatoacuterios do Squid com o SARG p60

raquo Java Ruby e Rails conheccedila o JRuby on Rails p74

raquo Benchmarks do GCC 43 p58

raquo Becape de bancos de dados com a Libferris p46

raquo LPI niacutevel 2 Servidores NIS e DHCP p52

A REVISTA DO PROFISSIONAL DE TI

AS REDES ATUAIS SAtildeO AMBIENTES HETEROGEcircNEOSO BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p27

raquo Conecte o Linux agrave VPN do Windows p28

raquo MS AD e clientes Linux a soluccedilatildeo definitiva p34

raquo Linux como servidor RDP p40

raquo Agendamento de tarefas livre tambeacutem no Windows p44

Interoperabilidade

Linu

x M

agazin

e

50012009

INTEROPERABILIDADE

VPN

AD

RDP AGEN

DADOR DE TAREFAS BIOM

ETRIA OPEN

ID M

IDS GOOGLE CHARTS

HA POSTGRESQL TALEN

D

WWWLINUXMAGAZINECOMBR

50 Janeiro 2009

SANEADA PELO LINUX P22 Linux na Companhia de Aacuteguas do Maranhatildeo

LEI DOS CALL CENTERS P26 Edgar Silva mostra como a nova lei requer TI

BOCA NO TROMBONE P25 Maddog explica como fazer sua parte nas poliacuteticas puacuteblicas

SEGURANCcedilA BIOMETRIA p72

A autenticaccedilatildeo por impressatildeo digital jaacute eacute realidade Aprenda a implementaacute-la com um especialista

REDES OPENID p68

Uma uacutenica identidade para vaacuterios serviccedilos na Web Mas como fica a seguranccedila

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo MIDs seraacute que a moda pega p17

raquo Faccedila graacuteficos pelo Google p50

raquo HA e PostgreSQL uma oacutetima mistura p54

raquo ETL muito competente com o Talend p62

SUPORTANDO O VISTA

50 0109

R$ 1490 euro 750

9 771806 942009

0 0 0 5 0

copy Linux New Media do Brasil Editora Ltda

Page 8: Interoperabilidade SUPORTANDO O VISTA

8 httpwwwlinuxmagazinecombr

Pergunte ao Klaus

Klaus KnopperO professor Klaus responde as mais diversas duacutevidas dos leitores

Espaccedilo na telaHaacute uns dois anos eu comprei um PC bem baacutesico com chip graacutefico onboard Pluguei nele um moni-tor LCD de 19 polegadas (1280x1024) mas troquei-o por um de 22 polegadas (1680x1050) um ano de-pois No Centro de Controle do KDE selecionei a resoluccedilatildeo de 1680x1050 mas agora ele exibe e usa 1680x1200

Como meu monitor natildeo suporta essa resoluccedilatildeo eacute como se meu monitor estivesse ldquoflutuandordquo sobre a aacuterea de trabalho quando chego o mouse perto da base do monitor ele desliza a imagem para baixo mostrando a barra inferior do KDE e escondendo os 150 pixels laacute de cima

Eu gosto desse comportamento pois os progra-mas costumam ter seus menus na parte de cima da janela entatildeo eu natildeo preciso descer para a base com frequumlecircncia Aleacutem disso a base se torna um bom lo-cal para eu jogar janelas que natildeo quero visualizar no momento

Minha duacutevida eacute se essa nova configuraccedilatildeo eacute causa-da por um problema de driver ou se eu encontrei um recurso do Xorg que eacute comum mas pouco usado

Testei recentemente o Fedora 8 e ele reconhece automaticamente o tamanho do monitor Agraves vezes eu sinto falta dos 150 pixels de altura que sobram para baixo Existe alguma forma de recuperaacute-los

RespostaOs ldquo150 pixels ocultosrdquo de fato satildeo causados por

um recurso do servidor X Se o tamanho da tela for configurado como 1680x1050 o Xorg entraraacute no modo de deslizamento (scrolling mode)

Novas versotildees do Xorg substituem esse recurso pela alteraccedilatildeo da resoluccedilatildeo da aacuterea de trabalho usando a extensatildeo randr A vantagem eacute que a aacuterea de trabalho ajusta seu tamanho automaticamente ao se alterar a resoluccedilatildeo

Aleacutem disso alternar entre diferentes dispositivos de saiacuteda eacute mais faacutecil (por exemplo conectar um projetor com uma resoluccedilatildeo diferente ou usar no monitor interno a resoluccedilatildeo do externo) O Xorg carrega automaticamente a extensatildeo randr e depois

as configuraccedilotildees de Modes no arquivo etcX11xorgconf satildeo ignoradas em favor do que o monitor especifica como resoluccedilatildeo favorita

Eacute possiacutevel fazer o Xorg alterar sua resoluccedilatildeo dinami-camente usando o krandtray (no KDE) ou o comando xrandr (na linha de comando) Por exemplo

xrandr --output LVDS --auto

tentaraacute alinhar automaticamente a resoluccedilatildeo do servidor X agrave do monitor enquanto

xrandr --output LVDS --mode 800x600

ou

xrandr --output LVDS -s 800x600

usaraacute o modo ou resoluccedilatildeo para o tamanho de 800x600 especificado no comando o que tambeacutem faz certos ambientes desktop adotarem um tama-nho de tela diferente

xrandr --output VGA --auto

deve ativar a porta VGA externa de um notebook e tambeacutem fazer o desktop adotar a resoluccedilatildeo preferida do monitor ou projetor ligado a essa porta

No seu caso para retornar ao comportamento original com 150 pixels ldquosobrandordquo (desativando o randr no Xorg) basta adicionar a seguinte seccedilatildeo ao seu arquivo etcX11xorgconf

Section ldquoServerFlagsrdquo Option ldquoRandRrdquo ldquofalserdquoEndSection

CO

LU

NA

Escreva para o KlausEnvie suas perguntas em portuguecircs ou inglecircs para klauslinuxmagazinecombr e tire todas as suas duacutevidas

Linux Magazine 50 | Janeiro de 2009

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

9

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

copy Linux New Media do Brasil Editora Ltda

10 httpwwwlinuxmagazinecombr

Siege

Charly Kuumlhnast O cerco a Troacuteia durou dez anos e terminou somente quanto Ulisses introduziu um cavalo de madeira dentro da cidade Charly tambeacutem estaacute planejando um cerco e o alvo eacute seu proacuteprio servidor web Naturalmente ele natildeo tem dez anos para completar essa tarefa nem Ulisses como parte de sua equipe

Estava checando meu servidor Apache e me lembrei do mito do monstro marinho Cila que deu cabo de nada menos que seis ho-

mens de Ulisses voltando de Troacuteia a caminho de casa O moacutedulo de multi-processamento ndash MPM worker ndash do meu servidor tambeacutem eacute capaz de devo-rar muacuteltiplas requisiccedilotildees numa talagada soacute mas ateacute onde ele aguumlenta Quantas threads eu preciso con-fi gurar para conseguir que ele entregue o maacuteximo de desempenho E a partir de quantas threads isso se torna um desperdiacutecio

Teste de carga Usando a ferramenta de ataque Siege [1] vou tentar responder essas questotildees por meio de um teste de car-ga O programa contempla dois modos de ataque o primeiro simula o comportamento de um ser humano navegando na Internet o que explica o intervalo de trecircs segundos entre cada dois acessos No segundo conhecido como modo benchmark esses intervalos satildeo eliminados e a ferramenta faz solicitaccedilotildees ao servidor ininterruptamente Para fazer o servidor ldquosuarrdquo o Sie-ge dispotildee de um exeacutercito de usuaacuterios de contingente confi guraacutevel ndash dez por padratildeo mas eacute possiacutevel usar o paracircmetro a seguir para aumentar o tamanho da tro-pa ateacute que o servidor web peccedila misericoacuterdia e nossos agressores consumam todos os recursos do sistema

--concurrent=ltnuacutemerogt

Como entrar em Troacuteia Como o Siege sabe qual servidor atacar Haacute duas opccedilotildees para isso o paracircmetro

--url=rdquohttpltmeusitecomgtltindexhtmlgtrdquo permite que vocecirc forneccedila a URL que o programa solicitaraacute repetidamente Jaacute a opccedilatildeo

--file=rdquohomecharlysiege-urlstxtrdquo

eacute mais interessante pois permite a criaccedilatildeo de uma sequumlecircncia arbitrariamente longa de endereccedilos web para o Siege atacar O parametro --reps=ltnuacutemerogt permite especifi car quantas vezes o programa deveraacute repetir o teste de carga

Tambeacutem eacute possiacutevel usar o paracircmetro --internet para dizer ao Siege para natildeo realizar as requisiccedilotildees na ordem especifi cada no arquivo siege-urlstxt mas fazecirc-lo de maneira aleatoacuteria o que eacute muito mais proacuteximo da realidade

Fim da batalha Para evitar que o teste de carga se estenda indefi nida-mente eacute prudente utilizar o paracircmetro --time para limitar seu tempo de execuccedilatildeo O ataque cessaraacute ao fi nal do tempo indicado mesmo que a quantidade de execuccedilotildees especifi cada pelo paracircmetro --rep ainda natildeo tenha sido atingida

Apoacutes sua execuccedilatildeo ter sido completada o Siege mostra um resumo dos resultados encontrados (veja a fi gura 1 )

CO

LU

NA

Mais informaccedilotildees

[1] Siege httpwwwjoedogorgJoeDogSiege

Figura 1 Apoacutes a batalha contra o servidor web o Siege apresenta os resultados

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

11

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

Gab

arit

o

Soluccedilatildeo faacutecil e descomplicada para empresas de qualquer tamanho colocarem seus produtos agrave venda na internet

R$4900

por mecircs

a partir de

senhorlojasimplesindd 1 121008 110411 AM

copy Linux New Media do Brasil Editora Ltda

12 httpwwwlinuxmagazinecombr

Crocircnicas do kernel

Zack BrownOs acontecimentos mais recentes na histoacuteria do kernel

Erradicaccedilatildeo do Big LockFrederic Weisbecker criou o Big Kernel Lock Tracer (rastreador do Big Lock ndash grande bloqueio ndash do ker-nel) que rastreia os tempos de atraso causados pelo Big Kernel Lock ou BKL Isso pode ajudar a iden-tificar aacutereas especiacuteficas nas quais o BKL deveria ser eliminado primeiro Linus Torvalds sugeriu livrar-se do BKL e substituiacute-lo por estruturas de bloqueio mais simples Entretanto nem todas as situaccedilotildees podem ser resolvidas com um bloqueio geneacuterico e o coacute-digo de bloqueio estaacute espalhado por todo o kernel o que dificulta qualquer tipo de esforccedilo conjunto Uma tentativa no momento eacute ldquoempurrarrdquo todo o

coacutedigo do BKL para sua proacutepria parte da aacutervore do kernel para centralizaacute-lo de forma a trataacute-lo de uma soacute vez Os participantes de todo o espectro do desen-volvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho A ferramenta de Frederic pode ajudar os desenvolvedores a concentrar sua atenccedilatildeo em aacutereas que beneficiariam a maioria

Redefinindo Load AverageSena Senerviratne e David Levy estatildeo preparando algumas mudanccedilas para o caacutelculo do valor de load average (carga meacutedia) no Linux Sua ideacuteia eacute em vez de calcular apenas um uacutenico nuacutemero para re-presentar toda a carga meacutedia do sistema fornecer muacuteltiplas estatiacutesticas Por exemplo eles querem separar do resto do sistema a carga de IO de disco

para visualizarem esse dado independentemente Aleacutem disso desejam ativar o caacutelculo de load avera-ge por usuaacuterio para que cada usuaacuterio visualize os efeitos sobre o seu sistema Arjan van de Ven pediu encarecidamente que eles apenas acrescentem esta-tiacutesticas sem alterar o comportamento dos nuacutemeros que o sistema jaacute produz

MantenedoresTheodore (Ted) Y Tsrsquoo atualizou o arquivo MAINTAINERS listando-se como mantenedor do sistema de arquivos Ext4 no lugar de Andrew Morton e Stephen Tweedie embora isso natildeo represente uma mudanccedila real de man-tenedor De acordo com Ted a entrada originalmente foi simplesmente copiada daquela do Ext3 e jamais foi precisa o que seu patch agora corrigiu

Um detalhe interessante eacute que embora Andreas Dilger natildeo esteja incluiacutedo como co-mantenedor no patch de Ted a lista de emails para submissatildeo de patches relatoacuterios de bug etc inclui o email de Andreas junto com o de Ted O email de Andreas tambeacutem estaacute listado junto com o de Andrew e Ste-phen na entrada original equivocada Geralmente isso significaria que ele dedica muito trabalho ao projeto e pode atuar como ldquotenenterdquo de Ted da mesma forma que Linus Torvalds confia em seus ldquotenentesrdquo para facilitar seu trabalho de inclusatildeo de coacutedigos no kernel

Mike Frysinger postou um patch para o arquivo MAINTAINERS listando a si mesmo e Subrata Modak como co-mantenedores do LTP (Linux Test Project) Esse projeto patrocinado pela SGI e IBM oferece um conjunto de aproximadamente 3 mil testes para avaliar a confiabilidade robustez e estabilidade do sistema operacional Linux

CO

LU

NA

Sobre o autorA lista de discussatildeo Linux-kernel eacute o nuacutecleo das atividades de desenvolvimento do ker-nel Zack Brown consegue se perder nesse oceano de mensagens e extrair significado Sua newsletter Kernel Traffic esteve em ativi-dade de 1999 a 2005

Os participantes de todo o espectro do desenvolvimento do kernel estatildeo imbuiacutedos da missatildeo de procurar e destruir o BKL haacute meses mas ainda falta bastante trabalho

copy Linux New Media do Brasil Editora Ltda

13

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

O Scalix eacute uma soluccedilatildeo completa para mensagens que suporta muacuteltiplos servidores e atende agraves necessidades de sua empresa Natildeo importa otamanho dela Baseia-se em uma Plataforma Colaborativa que serve de fundaccedilatildeo para todas as ediccedilotildees desse produto

Maiores informaccedilotildees wwwsentegritycombr EUA 646-747-7648 | Satildeo Paulo 11 5105-9037 | Rio de Janeiro 21 2526-7262

Reduza os custos de comunicaccedilatildeo usando Scalix

copy Linux New Media do Brasil Editora Ltda

14 httpwwwlinuxmagazinecombr

A quarta geraccedilatildeo dos rootkits se baseia no hardware e eacute quase indetectaacutevel

InseguranccedilaAnalisamos a histoacuteria dos rootkits incluindo a sua mais nova encarnaccedilatildeo o DR RootKitpor Kurt Seifried

Originalmente eu pretendia escrever um artigo sobre o estado da arte dos rootkits

e as ferramentas que poderiam ser usadas para detectaacute-los Foi aiacute que acabei topando com um problemi-nha os rootkits mais avanccedilados e modernos tendem a ser realmente bons em evitar sua detecccedilatildeo Com ldquorealmente bonsrdquo quero dizer que seraacute improvaacutevel para qualquer um detectaacute-los a menos que se lance matildeo de teacutecnicas como a anaacutelise detalhada de uma coacutepia (dump) da memoacuteria por exemplo comparan-do-se a partir daiacute a imagem real do kernel carregada na memoacuteria com aquela que seria de se esperar

Liccedilotildees histoacutericasRootkits tradicionais satildeo programas simples geralmente rodando como um serviccedilo isolado e fornecendo aces-so a uma backdoor Eles satildeo relativa-mente faacuteceis de detectar bastando para isso procurar novos processos ou programas recentemente instalados Isso levou os agressores a comeccedilar a sobrescrever os programas executaacuteveis do sistema Via de regra esses pro-gramas satildeo substituiacutedos por versotildees modificadas pelo agressor tais como versotildees do OpenSSH com nome e senha do administrador embutidas diretamente no programa com o intuito de escalar privileacutegios e obter direitos de root no sistema O adven-to de ferramentas como o Tripwire e o uso cada vez mais comum de gerenciadores de pacotes com a ca-

pacidade de verificar a integridade dos arquivos instalados no sistema ndash tais como rpm e dpkg ndash acabou por facilitar a detecccedilatildeo desse tipo de rootkit tambeacutem [1]

Rootkits para o kernelNatildeo demorou muito para que os agressores percebessem que meacuteto-dos mais sofisticados de ocultaccedilatildeo e subversatildeo eram necessaacuterios para controlar um sistema o que levou agrave criaccedilatildeo de rootkits para o kernel Assim ao modificar a tabela de ca-madas do sistema um agressor pode evitar facilmente a sua detecccedilatildeo pois em poucas palavras ele controla o que eacute exibido e como seus programas estatildeo sendo executados

Tradicionalmente um agressor usa um dos dois meacutetodos para modificar o kernel do sistema ou ele carrega um moacutedulo com coacutedigo malicioso no kernel (como o heroin por exemplo) ou modifica o kernel carregado na memoacuteria escrevendo no dispositivo especial devkmem (como o SucKIT por exemplo) A desvantagem dessa teacutecnica eacute que como esses ataques estatildeo carregados apenas na memoacuteria do sistema normalmente natildeo sobre-vivem a uma reinicializaccedilatildeo

Por mais difiacutecil que possa parecer esses rootkits podem ser detectados comparando-se a tabela atual de cha-madas do sistema com a que seria de se esperar originalmente (isto eacute examinando-se o arquivo Systemmap) Coacutepias da memoacuteria do sistema po-dem ser feitas e usadas para verificar

se o kernel carregado na memoacuteria estaacute intacto

Quando chegam a esse niacutevel o que vocecirc acha que os agressores fazem Vatildeo mais fundo ainda claro

Hardware e virtualizaccedilatildeoLanccedilado em 2006 durante a Black Hat Conference em Las Vegas o primeiro rootkit desenvolvido para comprometer diretamente o hardware foi chamado de Blue Pill [2] Os processadores mo-dernos da AMD e da Intel dispotildeem de uma gama de recursos para suportar virtualizaccedilatildeo de sistemas operacionais E como natildeo eacute mais necessaacuterio que esses rootkits modifiquem o que quer que seja no sistema operacional para funcionar eles satildeo muito mais difiacuteceis de detec-tar de modo que somente verificar a integridade da tabela de chamadas do sistema natildeo vai funcionar Contudo esses rootkits modificam a tabela de descritores de interrupccedilatildeo (IDT na sigla em inglecircs) que eacute mantida em um dos registradores do processador (o IDTR) [3]

Como passam a existir dois IDTRs no sistema comprometido ndash um real e outro falso que eacute apresentado ao sistema operacional ndash este uacuteltimo vai ocupar uma posiccedilatildeo de memoacuteria diferente da de costume Felizmente a instruccedilatildeo privilegiada Store Inter-rupt Descriptor Table (SIDT) pode ser executada a partir do espaccedilo de usuaacuterio do sistema retornando de forma confiaacutevel o conteuacutedo do IDTR

CO

LU

NA

CO

LU

NA

copy Linux New Media do Brasil Editora Ltda

15Linux Magazine 50 | Janeiro de 2009

disponiacutevel para o sistema operacional (o que natildeo serve para muita coisa pois o sistema jaacute foi comprometi-do) bem como ndash e o que eacute mais importante ndash a posiccedilatildeo da memoacuteria em que o IDTR se encontra Pare-ce que chegamos a um beco sem saiacuteda os agressores criaram novos meacutetodos para esconder os rootkits e os defensores encontraram meios para detectaacute-los

A nova geraccedilatildeo de rootkitsLanccedilados em setembro de 2008 pela Immunity Inc o DR RootKit [4] im-plementa ldquoganchosrdquo (hooks) para as chamadas de sistema no kernel Linux 26 sem modificar nem a tabela de chamadas do sistema nem a tabela de descritores de interrupccedilatildeo Para fazer isso ele introduz breakpoints de hardware no manipulador de chamadas do sistema Isso corres-

ponde agrave inclusatildeo de um ldquovigiardquo na memoacuteria da tabela de chamadas do sistema especificamente observando a entrada __NR_syscall usada para exportar nuacutemeros de chamadas do sistema Basicamente o rookit se comporta como uma ferramenta de depuraccedilatildeo de programas espe-rando que determinadas chamadas do sistema sejam executadas e mo-

dificando-as quando isso acontece Os ganchos do DR RootKit estatildeo listados na tabela 1

O DR RootKit dispotildee de recursos tais como ocultaccedilatildeo de processos e prevenccedilatildeo do teacutermino de execuccedilatildeo de processos ocultos (o que significa que um agressor pode executar pro-gramas ocultos e vocecirc natildeo tem como terminaacute-los com o comando kill

Tabela 1 Chamadas do sistema

getdents64 Lecirc entradas de diretoacuterio

getdents Lecirc entradas de diretoacuterio

chdir Muda o diretoacuterio de trabalho

open Abre um arquivo ou dispositivo

execve Executa um programa

socketcall Chamadas de sistema via socket

fork Cria um processo filho

exit Encerra o processo atual

kill Envia um sinal a um processo

getpriority Obteacutem prioridade de escalonamento para um programa

| COLUNAInseguranccedila

copy Linux New Media do Brasil Editora Ltda

16 httpwwwlinuxmagazinecombr

Mais informaccedilotildees

[1] Amir Alsbih ldquoPassagem Secreta Teacutecnicas de criaccedilatildeo de backdoorsrdquo httpwwwlinuxmagazinecombrarticlepassagem_secreta

[2] Blue Pill httpbluepillprojectorg

[3] Red Pill httpwwwinvisiblethingsorgpapersredpillhtml

[4] DR RootKit httpwwwimmunityinccomresources-freesoftwareshtml

[5] Core Security Technologies httpwwwcoresecuritycom

mesmo que vocecirc consiga descobrir a identidade ndash o ID ndash do processo) Se vocecirc usar os exemplos forneci-dos com o pacote eacute relativamente simples estender e criar outras cha-madas de sistema modificadas Por exemplo vocecirc pode alterar o conjun-to de recursos disponiacuteveis para pro-cessos ndash o capset O proacuteprio rootkit eacute um moacutedulo carregaacutevel no kernel o que simplifica sua inserccedilatildeo em um sistema comprometido Poreacutem da mesma forma que acontece com outros rootkits residentes na memoacute-ria a reinicializaccedilatildeo do sistema iraacute removecirc-lo da memoacuteria

Se vocecirc quiser estender o rootkit pode por exemplo inserir suas proacuteprias chamadas do sistema personalizadas Forneci um exemplo para alterar a chamada de sistema exit Em poucas palavras o processo consiste em de-clarar seu proacuteprio gancho para alterar uma chamada de sistema e entatildeo im-plementar uma chamada de sistema customizada ndash isso eacute realmente simples O melhor lugar para comeccedilar eacute o coacute-digo-fonte do kernel ndash mais especifica-mente no subdiretoacuterio kernel onde a maioria das chamadas do sistema satildeo definidas Por exemplo se houver um sistema no qual os recursos em uso restringem o que programas podem ou natildeo fazer vocecirc pode simplesmen-te modificar a chamada de sistema do_sys_capset_other_tasks que sempre retorna todos os recursos de um ID de processo especiacutefico como

-2376 +2379 if (capable(CAP_SETPCAP))return -EPERM+ if (pid == 12345) magic process number + return cap_set_all_evil(effective inheritable permitted)

Como vocecirc pode notar mesmo a menor das modificaccedilotildees pode ter um efeito significativo Assim de uma hora para outra o processo

com o ID 12345 teraacute sempre todos os recursos o que permite a ele fa-zer praticamente tudo o que quiser Assim com apenas uma chamada de sistema um agressor pode criar uma backdoor eficiente

O uacutenico modo de detectar um rootkit desses eacute por meio da mediccedilatildeo de atrasos ou de condiccedilotildees de corri-da (race conditions) que sejam intro-duzidas pelo rootkit Se um rootkit estivesse presente o sistema deveria ficar mais lento do que de costume mas a mediccedilatildeo dessa variaccedilatildeo natildeo eacute uma tarefa simples Aleacutem disso o programa eacute relativamente simples e pode ser estendido facilmente de modo a se esconder de maneira mais eficiente e tornando sua detecccedilatildeo ainda mais difiacutecil

Abordagem alternativaClaro que vocecirc pode comprometer um sistema e manter o acesso de outras formas enquanto permanece escondido Uma outra empresa que desenvolve software de verificaccedilatildeo de invasatildeo chamada Core Security [5] adotou uma abordagem de injetar coacutedigo hostil em processos que jaacute te-nham sido atacados Por exemplo se vocecirc criar uma brecha no conhecido servidor web Apache conseguiraacute inje-tar coacutedigo nele que lhe garanta acesso remoto ao sistema Essa teacutecnica eacute algo limitado se comparada com um roo-tkit de kernel completo ou com um rootkit de hardware A desvantagem dessa teacutecnica satildeo os mecanismos de proteccedilatildeo do sistema operacional tais como o SELinux que permanecem capazes de forccedilar uma poliacutetica de seguranccedila Contudo para agressores obstinados isso natildeo costuma ser um problema muito seacuterio pois eles podem usar um exploit local para comprome-ter ainda mais o sistema ou mesmo permanecer dentro das condiccedilotildees impostas pela poliacutetica definida pelo SELinux mas ainda sim obter infor-maccedilotildees ou usar o sistema para realizar outros ataques maliciosos

ConclusatildeoA boa notiacutecia eacute que chegando agrave camada de hardware os agresso-res (pelo menos conceitualmente) atingiram a uacuteltima camada passiacute-vel de abuso A maacute notiacutecia eacute que um grande contingente de truques de hardware pode ser usado para manter o controle sobre um sistema comprometido Por exemplo uma placa de viacutedeo moderna tem acesso direto agrave memoacuteria (o que significa que ela pode fazer o que bem en-tender com a memoacuteria do sistema sem que o sistema operacional possa interferir significativamente no pro-cesso) dispotildee de memoacuteria proacutepria e de uma grande quantidade de poder de processamento (tanto que estatildeo sendo usadas por muitos para criar clusters de baixo custo) Placas mais modernas tecircm seu firmware arma-zenado em memoacuteria flash passiacutevel de atualizaccedilatildeo por software e eu natildeo tenho a miacutenima duacutevida de que algum dia algueacutem vai criar algum meacutetodo para abusar da placa de viacutedeo com o propoacutesito de controlar um sistema comprometido

COLUNA | Inseguranccedila

copy Linux New Media do Brasil Editora Ltda

17Linux Magazine 50 | Janeiro de 2009

COLUNA

MID mais um degrau na escadaria da mobilidade

Augusto CamposNem smartphone nem subnotebook os MIDs chegam como uma nova categoria para facilitar nossas vidas

Neste iniacutecio de 2009 tive a oportunidade de segurar em minhas matildeos um pedaccedilo do futuro do desktop Soacute que natildeo se tra-

tava propriamente de um desktop ou pelo menos natildeo daquele modelo que aprendemos a conhecer com uma infinidade de arquivos gravados em um disco riacutegido ao meu alcance um ambiente de trabalho cheio de aplicativos instalados local-mente e a ocupaccedilatildeo de uma vasta aacuterea em cima da escrivaninha

Natildeo era nem mesmo um daqueles notebooks pequeninos estilo Eee PC que foram se popula-rizando mundialmente ao longo de 2008 Era algo menor mais singelo mas com poder de processa-mento surpreendente um Aigo MID equipamento do qual provavelmente vocecirc ainda natildeo ouviu falar ndash ateacute porque ele parece estar bem distante do nosso mercado neste momento

Os MIDs ou Mobile Internet Devices satildeo dis-positivos que parecem ficar entre os smartphones e os subnotebooks de hoje Como em uma cadeia darwiniana eu ateacute apostaria que os mais bem-suce-didos entre eles vatildeo acabar ficando no nicho exato que hoje eacute ocupado por um destes dois extremos (os smartphones ou os subnotebooks) ateacute mesmo porque essas fronteiras vatildeo ficando cada vez mais difusas com o passar do tempo Mas hoje eles satildeo uma categoria agrave parte e torccedilo para que suas carac-teriacutesticas e possibilidades sejam logo herdadas pelos celulares (ou pelos subnotebooks)

O equipamento com o qual tive oportunidade de brincar um pouco tem caracteriacutesticas de um PC de pequeniacutessimo porte com um display sufi-cientemente grande para mostrar os sites da web 20 nossos de cada dia um teclado escamoteaacutevel cacircmera microfone e acesso a redes Wi-Fi Alguns modelos tecircm acesso agrave conectividade via redes mais amplas (CDMA 3G etc) mas natildeo eacute o caso do meu E eles permitem fazer o que eu mais faccedilo no meu desktop diariamente acessar a web comuni-car-me por IM VoIP e email consultar (ou editar levemente) documentos e textos e ateacute digitar esta coluna que vocecirc estaacute lendo

E o mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres como o Firefox e o Pidgin entre vaacuterios outros E nem eacute soacute pela questatildeo do custo de aquisiccedilatildeo esses aplicativos livres satildeo leves por natureza e ainda podem ser alterados de acordo com as especificaccedilotildees do aparelho no qual seratildeo distribuiacute-dos seja para ocupar menos disco preencher menos memoacuteria RAM ou mesmo gastar menos bateria

Hoje o acesso agrave Web eacute cada vez mais uma condiccedilatildeo para que eu possa desempenhar bem as minhas ativi-dades e quanto mais rico esse acesso melhor a cada dia eacute necessaacuterio interagir digitar textos captar imagens comunicar-se por viacutedeo e voz conectar-se a redes de

variadas tecnologias abertas Acredito que em algum momento os celulares vatildeo estar aptos a prover com con-forto e economia esses recursos e que vatildeo estar rodando um sistema operacional livre quando o fizerem

Enquanto esse dia natildeo chega eacute interessante ver como a induacutestria avanccedila nesta direccedilatildeo por vias obliacute-quas que convergem em uma direccedilatildeo que muito nos interessa softwares livres conectando-se a pro-tocolos abertos e provendo serviccedilos que facilitam as nossas vidas

COLUNA

Sobre o autorAugusto Ceacutesar Campos eacute administrador de TI e desde 1996 manteacutem o site BR-linuxorg que cobre a cena do Software Li-vre no Brasil e no mundo

O mais interessante o aparelho que tenho em matildeos assim como tantos de sua categoria roda Linux e uma seacuterie de aplicativos livres

copy Linux New Media do Brasil Editora Ltda

18

NO

TIacuteC

IAS

httpwwwlinuxmagazinecombr

Xen ganha recursos e promete integraccedilatildeoKeir Fraser da Xensource (atualmente Citrix) anunciou na lista xen-devel a disponibilidade de uma aacutervore com o coacutedigo-fonte para criaccedilatildeo de um dom0 completo do Xen no kernel Linux 2627

Segundo Keir ldquoa intenccedilatildeo eacute fornecer uma aacutervore uacutenica para desenvolvimento e testes voltada aos desenvolvedores que pre-cisarem de um kernel 26 mais modernordquo e menciona o geren-ciamento de energia como um dos motivos para isso

O porte da funcionalidade de dom0 do Xen para o Linux atu-almente depende da implementaccedilatildeo final das pv_ops (operaccedilotildees para-virtualizadas) um conjunto de ldquoganchos de coacutedigordquo (hooks) no kernel que permitem sua operaccedilatildeo mediante o uso da teacutecnica de para-virtualizaccedilatildeo Atualmente o escopo de funcionalidade das pv_ops permite apenas o funcionamento do Linux como

Alta disponibilidadeManter a sincronizaccedilatildeo perfeita de muacuteltiplos servidores Xen cada um com diversas maacutequinas virtuais natildeo eacute tarefa das mais faacuteceis Atualmente eacute preciso replicar arquivos de configuraccedilatildeo entre os servidores e manter sincronizado todo o restante da estrutura

Felizmente tudo isso pode mudar para melhor com o projeto Kemari Trata-se de um software de coacutedigo aberto (GPL) descrito por seus autores como ldquoum mecanismo de coacutedigo aberto para sin-cronizaccedilatildeo de maacutequinas virtuais para toleracircncia a falhas Oferece uma teacutecnica utilizaacutevel para toleracircncia a falhas que natildeo requer o uso de hardware especiacutefico ou a modificaccedilatildeo dos aplicativos ou sistema operacionalrdquo

Lanccedilado o Fedora 10Seis meses apoacutes o lanccedilamento do Fedora 9 o projeto livre lanccedilou a versatildeo 10 da popular distribuiccedilatildeo Linux codinome Cambridge

O Fedora 10 usa o kernel Linux 26275 anunciado no uacuteltimo dia 7 O projeto tambeacutem estaacute buscando trazer seus softwares a um novo niacutevel e ele inclui o OpenOfficeorg 30 Gnome 2241 Eclipse 34 e RPM 46 O produto promete um melhor gerenciamento de impressoras e alguns interessantes recursos de vir-tualizaccedilatildeo No momento o KVM estaacute disponiacutevel por padratildeo no Fedora 10 na versatildeo 74-5 (no Fedora 9 o KVM era apenas uma opccedilatildeo) Certamente a aquisiccedilatildeo da Qumranet criadora e desenvolvedora do KVM pela Red Hat patrocinadora do Fedora tem grande influecircncia nisso No entanto o uso do KVM natildeo implica a rejeiccedilatildeo do ldquoconcorrenterdquo Xen o hypervisor tradicional estaacute presente na versatildeo 330-1 As ferramentas de virtualizaccedilatildeo de criaccedilatildeo do proacuteprio Fedora como a libvirt e o virt-manager tambeacutem estatildeo incluiacutedas

Outra importante novidade do Fedora 10 eacute seu tempo de inicializaccedilatildeo que foi reduzido graccedilas ao novo sistema graacutefico de inicializaccedilatildeo Plymouth

domU (ou seja como maacutequina virtual) enquanto o kernel do dom0 ainda eacute res-trito agrave versatildeo 2618 do Linux

A expectativa eacute que os desenvolvedores da Novell que estatildeo trabalhando nessa ta-refa consigam incrementar as pv_ops de forma a permitir seu uso tambeacutem como dom0 o que permitiria o uso de versotildees mais recentes do kernel Linux (com to-das as vantagens que trazem) no dom0 Posteriormente as novas pv_ops tambeacutem devem ser incluiacutedas na aacutervore principal do kernel unindo definitivamente os projetos Xen e Linux

O objetivo do projeto eacute ldquomanter as maacute-quinas virtuais rodando transparentemente em caso de falhas de hardwarerdquo Para isso ele ldquotransfere o estado da maacutequina virtual primaacuteria para a secundaacuteria quando a pri-maacuteria estaacute prestes a enviar um evento para dispositivos como armazenamento e rederdquo como descreve o anuacutencio do projeto

Espera-se que o Kemari seja integra-do ao Xen 34 a proacutexima versatildeo estaacutevel do popular sistema de virtualizaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

O Linux Professional Institute ndash oacutergatildeo responsaacutevel pela certificaccedilatildeo em Linux que mais cresce no mundo ndash realizou no Brasil a primeira aplicaccedilatildeo das provas 303 Elas correspon-dem agrave categoria especialista do niacutevel 3 da certificaccedilatildeo e qualificam o profissional aprovado como ldquoSecurity Specialistrdquo As provas (grauitas) ocorreram na cidade de Satildeo Paulo no dia 20 de dezembro de 2008

O Programa de Certificaccedilatildeo LPI eacute composto por dois niacuteveis baacutesicos com duas provas cada um As provas do niacutevel 1 (101 e 102) certificam o profissional como ldquoAdministrador Linux Juacuteniorrdquo e as do niacutevel 2 (201 e 202) como ldquoAdministrador Linux Plenordquo

O niacutevel 3 da certificaccedilatildeo LPI eacute focado no mercado corporativo O profissional precisa se certificar obrigatoria-mente na prova 301 (Core) e depois escolher uma das especialidades disponiacuteveis Atualmente a uacutenica disponiacutevel eacute a prova 302 (Mixed Environment) para profissionais que queiram se especializar em interoperabilidade em ambientes mistos (Linux Unix Netware e Windows) A prova lsquo303 - Securityrsquo eacute a segunda especialidade a ser lanccedilada pelo LPI A prova 303 estaacute sendo realizada em caraacuteter de teste antes de ser lanccedilada oficialmente

19

Xen ganha recursos e promete integraccedilatildeo

Linux Magazine 50 | Janeiro de 2009

Gerais | NOTIacuteCIAS

LPI lanccedila provas 303 no Brasil

Google Android no Openmoko Linux versus OpenSolaris e FreeBSD

O site dedicado a Software Livre e hard-ware Phoronix publicou um comparativo de velocidade (benchmark) na realizaccedilatildeo de diversas tarefas entre os sistemas ope-racionais mais famosos baseados em ker-nels de coacutedigo aberto Ubuntu OpenSolaris e FreeBSD

Os testes utilizaram a versatildeo instaacutevel de 64 bits mais recente de cada um dos sistemas (com exceccedilatildeo do Ubuntu cuja versatildeo foi a 810 final) e se basearam no proacuteprio pacote de benchmarks de coacutedigo aberto desenvol-vido pela equipe do Phoronix (e em raacutepida evoluccedilatildeo) o Phoronix Test Suite

Os autores concluem o artigo decla-rando o Ubuntu 810 como vencedor no desempenho mas o representante do ker-nel Linux natildeo foi o campeatildeo em todas as categorias venceu em oito dos 18 testes contra sete vitoacuterias do OpenSolaris e trecircs do FreeBSD

Poucos dias depois os autores retornaram ao ambiente de testes e fizeram o compara-tivo entre o tambeacutem recente Ubuntu 810 e o Fedora

Foram usadas as versotildees de 32 e 64 bits de ambos os sistemas e os testes empregados foram os mesmos do benchmark anterior com o Phoronix Test Suite

O resultado dessa comparaccedilatildeo no entan-to natildeo foi conclusivo as distribuiccedilotildees Linux se saiacuteram praticamente igual com respeito ao desempenho nos testes

Institute

LinuxProfessional

R

A Koolu empresa canadense especializada no desenvolvimento de soluccedilotildees de tecnologia ambientalmente corretas disponibili-zou o coacutedigo-fonte da plataforma Android do Google adaptado ao telefone Openmoko FreeRunner cujo desenvolvimento contou com esforccedilo e total colaboraccedilatildeo da comunidade internacional do Software Livre

O anuacutencio foi realizado no IP Communications Brasil 2008 evento internacional sobre comunicaccedilotildees IP por Jon lsquomaddogrsquo Hall CTO da Koolu e Denis Galvatildeo presidente da paranaense iSolve Durante o evento tambeacutem foi anunciado o acordo nome-ando a iSolve como canal master de distribuiccedilatildeo do Openmoko FreeRunner no Brasil

O Android foi lanccedilado como um software livre no final de outu-bro de 2008 poreacutem muito trabalho precisou ser realizado para que esse coacutedigo pudesse funcionar em telefones de outros fabricantes O FreeRunner telefone com design aberto desenvolvido pela empresa taiwanesa Openmoko demandou uma seacuterie de alteraccedilotildees no coacutedigo-fonte do Android para que ele pudesse fun-cionar corretamente A comunidade de Software Li-vre com ajuda de vaacuterias pessoas ao redor do mundo realizou as implementaccedilotildees necessaacuterias e tornou possiacutevel a execuccedilatildeo do Android no FreeRunner

ldquoAgora que o coacutedigo-fonte jaacute estaacute rodando no FreeRunner es-peramos que os retoques finais estejam prontos rapidamenterdquo dis-se Brian Code diretor teacutecnico da Koolu ldquoA criaccedilatildeo do ambiente para compilaccedilatildeo (toolchain) a criaccedilatildeo dos patches necessaacuterios para tornar o coacutedigo compatiacutevel com o telefone e a documentaccedilatildeo de todo o passo-a-passo do processo de construccedilatildeo do software toma-ram um bom tempo mas agora estaacute mais faacutecil para a comunidade do Software Livre desenvolver e realizar modificaccedilotildees nessa pla-taforma Como um exemplo as aplicaccedilotildees moacuteveis Google Apps bem como outra aplicaccedilotildees corporativas podem ser instaladas e otimizadas para essa plataformardquo

copy Linux New Media do Brasil Editora Ltda

20

CO

RP

OR

ATE

httpwwwlinuxmagazinecombr

ldquoO futuro eacute Open Sourcerdquo diz ex-desenvolvedor MS

Keith Curtis funcionaacuterio por vaacuterios anos da Microsoft conclui em seu livro receacutem-lanccedilado que o futuro do software estaacute no modelo de desenvolvimento de coacutedigo aberto Curtis trabalhou para a Microsoft como de-senvolvedor de software de 1993 a 2004 tendo participado do desenvolvimento dos produtos para bancos de dados da empresa bem como na programaccedilatildeo do Windows do Office e do MSN entre outros No final de 2008 ele publicou o livro intitulado ldquoAfter the Software Warsrdquo (Depois das Guerras do Software) que descreve o processo de produccedilatildeo de software do ponto de vista de um desenvolvedor analisa os possiacuteveis avanccedilos nesse processo no futuro e aborda desde toacutepicos como inteligecircncia artificial culminando no desenvolvimento de sistemas que possibilitem viagens espaciais

A ediccedilatildeo online do The New York Times fez uma resenha do livro e relatou a nova trajetoacuteria do ex-funcio-naacuterio da gigante de Redmond ldquoPara o Sr Curtis a forccedila do software de coacutedigo aberto e o motivo pelo qual esse eacute o modelo de desenvolvimento do futuro estatildeo no fato de que por meio deste a inteligecircncia coletiva eacute estimuladardquo Segundo Curtis ldquoas diferenccedilas entre Software Livre e software natildeo-livre ou proprietaacuterio satildeo comparaacuteveis agraves diferenccedilas existentes entre ciecircncia e alquimia Antes de a ciecircncia se estabelecer havia apenas alquimia na qual as pessoas tentavam proteger suas ideacuteias pois elas desejavam dominar o mercado desenvol-vendo um processo para transformar chumbo em ourordquo

Curtis publicou seu livro usando a plataforma lulucom cujo fundador e diretor executivo eacute Bob Young veterano da cena Open Source e ex-CEO da Red Hat

Sun lanccedila MySQL 51Na nova versatildeo do banco de dados de coacute-digo aberto os desenvolvedores se concen-traram no desempenho o que aumentou a velocidade do programa em surpreendentes 15 Entre as novidades haacute cinco novos meacutetodos de particionamento horizontal range hash key list e composite Outros recursos novos satildeo a replicaccedilatildeo hiacutebrida e o agendador de eventos (event scheduler) que permite a automatizaccedilatildeo de tarefas SQL repetitivas

Os sistemas operacionais suportados satildeo Red Hat Enterprise Linux Suse Linux En-terprise Windows Mac OS X FreeBSD HP-UX IBM AIX IBM i5OS e todas as distribuiccedilotildees Linux

A Sun disponibiliza trecircs versotildees do soft-ware para download Community Server sob a GPL Enterprise Server com base em subscriccedilatildeo (assinatura do serviccedilo) e Embedded Server esta com licenccedila co-mercial proprietaacuteria

MS Windows eacute mais econocircmicoA Microsoft fez de novo um estudo recente encomendado pela empresa ldquoconcluiurdquo que eacute mais barato para empresas usar o Win-dows como plataforma de software A revista australiana iTWire analisou o estudo e fez algumas descobertas interessantes

O que parece agrave primeira vista (com perdatildeo do trocadilho) ser uma histoacuteria de sucesso na realidade natildeo eacute mdash nem de longe em primeiro lugar natildeo haacute economia alguma O que haacute satildeo apenas estimativas da Microsoft segundo as quais a empresa britacircnica Speedy Hire deveraacute economizar 200 mil libras por ano em de-corriencia da utilizaccedilatildeo do Windows

A anaacutelise do estudo disponiacutevel em artigo no site australiano iTWirecom faz um raio-X da ldquoeconomiardquo sugerida pela em-presa de Bill Gates Elas comeccedilam pelo hardware jaacute que no projeto foram utilizados terminais leves para Windows mdash que seriam inexplicavelmente mais baratos do que aqueles equipados com Linux O estudo natildeo menciona nem ldquoen passantrdquo que haacute

alternativas bem mais baratas aos modelos V90 da empresa Wyse equipados com Windows como

os V50 preacute-carregados com Linux Nesse esti-lo o artigo vai revelando de onde vieram as ldquoreduccedilotildees de custordquo obtidas pela Microsoft que vatildeo transformam em vapor agrave medida que

prosseguimos na leitura Estamos curiosos para saber o que sobra da economia de 1 milhatildeo de

libras apoacutes os cinco anos

copy Linux New Media do Brasil Editora Ltda

21

Google e Red Hat firmam parceria

A Red Hat assinou em dezembro um acordo com o Google para trazer os principais de-senvolvedores da empresa para a plataforma de construccedilatildeo de aplicaccedilotildees web Google Web Tookit Com o acordo estabelece-se tambeacutem o suporte do servidor de aplicaccedilotildees da Red Hat o JBoss ao GWT

Aleacutem da assinatura do acordo a Red Hat tambeacutem anunciou que jaacute completou algumas integraccedilotildees preliminares entre o GWT e o JBoss Seam Framework Com a integraccedilatildeo a empresa alavanca o Seam para que os desen-volvedores possam combinar o poder do Java agraves modernas tecnologias view-layer como GWT RichFaces e Spring para desenvolver os Rich Internet Applications

Linux Magazine 50 | Janeiro de 2009

| CORPORATENotiacutecias

Insigne jaacute planeja 2012A fornecedora do Insigne Momentum 50 quer manter sua po-siccedilatildeo de lideranccedila no Brasil e conquistar novos mercados in-clusive no exterior O sucesso de sua participaccedilatildeo no projeto de inclusatildeo digital Computador para Todos fez com que a Insigne Free Software do Brasil conquistasse forte posiccedilatildeo de lideran-ccedila no mercado dos PC populares e tambeacutem ficasse conhecida em outros paiacuteses Esse cenaacuterio positivo lhe permitiu iniciar ne-gociaccedilotildees com fabricantes estrangeiros de PC para embarcar o Insigne Momentum 50 sistema operacional de coacutedigo aberto em microcomputadores fora das fronteiras nacionais

Para atingir a meta de manter seu crescimento perante a perspectiva de elevaccedilatildeo das vendas de PCs nos proacuteximos anos a empresa contratou o consultor de estrateacutegia e professor de engenharia Carlos Roberto Lopes As atividades envolvidas no planejamento estrateacutegico incluem uma seacuterie de workshops com todas as equipes e departamentos da Insigne O objetivo eacute coletar impressotildees dos colaboradores e lhes apresentar as mais recentes mudanccedilas ocorridas no mercado global incluindo a atual situaccedilatildeo econocircmica mundial que poderaacute alterar a correlaccedilatildeo de forccedilas entre os fornecedores de tecnologia nos proacuteximos anos

De acordo com Joatildeo Pereira da Silva Jr presidente da Insigne esse planejamento incluiraacute natildeo apenas o foco no seu cliente que eacute o usuaacuterio do PC popular mas tambeacutem em toda a sua equipe de profissionais envolvidos em todas as etapas de desenvolvimento de um sistema operacional de coacutedigo abertordquo

VMware adquire Tungsten GraphicsA VMware adquiriu por um valor natildeo revelado as operaccedilotildees da empresa Tungsten Graphics fundada em 2001 e motor por traacutes do desenvolvimento da implementa-ccedilatildeo de coacutedigo aberto do OpenGL no Linux a biblioteca Mesa 3D

Aleacutem da Mesa 3D a empresa tambeacutem desenvolve o Gallium 3D framework para desenvolvimento de drivers graacuteficos 3D A Tungsten Graphics eacute formada por um grupo de desenvolvedores de aplicativos graacuteficos de coacutedigo aberto Segundo a FAQ no site da empresa o desenvolvimento dos projetos de coacutedigo aberto encabeccedilados por ela continuaraacute agora como parte das atividades da equipe de engenharia da VMware A aquisiccedilatildeo teria como objetivo melhorar o suporte a graacuteficos 3D em ambientes virtualizados

Mandriva demite dois desenvolvedoresA situaccedilatildeo financeira da Mandriva parece estar ruim Em dezembro a empresa anunciou que ao final de 2008 terminaria o contrato de dois de seus funcionaacuterios Adam Williams (na praacutetica o Community Manager) e o mantenedor de pacotes Oden Eriksson

Os dois desenvolvedores escreveram para a lista de emails do Cooker (Adam Williams Oden Eriksson) Enquanto Adam Williams eacute considerado por muitos como a base da co-munidade do Mandriva Oden manteacutem aproximadamente 1200 pacotes principalmente na aacuterea de servidores incluindo todos os pacotes do stack LAMP

Entretanto a comunidade do Mandriva natildeo pretende esperar sentada a efetivaccedilatildeo dessa decisatildeo Jaacute haacute uma peticcedilatildeo para tentar convencer a empresa a manter pelo me-nos Williams

copy Linux New Media do Brasil Editora Ltda

22 httpwwwlinuxmagazinecombr

CO

RP

OR

ATE

Entrevista com Armstrong Lemos chefe do departamento de TI da CAEMA

Saneada pelo LinuxO Linux entrou com forccedila na Companhia de Aacuteguas e Esgotos do Maranhatildeo proporcionando economia e ganhos fundamentais para a sauacutede da empresa por Pablo Hess

A Companhia de Aacuteguas e Esgo-tos do Maranhatildeo (CAEMA) eacute uma sociedade de economia

mista com capital de investimento predominantemente do Estado do Maranhatildeo Fundada haacute 42 anos a CAEMA atua no fornecimento de aacutegua coleta e tratamento de esgotos Atua em 146 municiacutepios maranhenses com abastecimento de aacutegua sendo que somente em trecircs (Satildeo Luis Im-peratriz e Barreirinhas) faz a coleta de esgotosLinux Magazineraquo Como e por que a CAEMA comeccedilou a usar LinuxArmstrong Lemosraquo A CAEMA opera com deacuteficit de quase R$ 5 milhotildees por mecircs que satildeo repassados pelo governo do estado para comple-mentaccedilatildeo das despesas Isso muito se deve a sua funccedilatildeo social que eacute a de universalizaccedilatildeo do abastecimento de aacutegua no estado Natildeo eacute uma ati-vidade meramente econocircmica mas tambeacutem social

O sistema comercial jaacute foi bloque-ado por falta de pagamento Quanto mais a CAEMA ampliava sua rede de atendimento mais caro pagava pelo uso do sistema sendo que a empresa prestadora mantinha relaccedilatildeo de pou-ca paciecircncia com os atrasos no paga-mento que deveriam ser realizados no dia cinco de cada mecircs Como a

companhia possuiacutea e ainda possui di-ficuldades de arrecadaccedilatildeo esse prazo nem sempre era cumprido

Outros fatores aliados a esse contri-buiacuteram para que no iacutenicio da gestatildeo da atual diretoria se iniciasse um pro-cesso de diagnoacutestico geral da empresa Com esse estudo ficou clara a situa-ccedilatildeo em que se encontravam diversos setores estrateacutegicos da companhia entre eles o de informaacutetica

Tiacutenhamos um parque de aproxi-madamente 500 maacutequinas com vaacuterios problemas principalmente adwares spywares e viacuterus Havia ainda proble-mas de conectividade e processamento em fun-ccedilatildeo do Windows natildeo se adequar ao perfil do hardware fazendo com que o equipamento ti-vesse baixa performan-ce As atualizaccedilotildees com Windows tornavam-se inviaacuteveis nos computa-dores com perfil padratildeo de dois ou mais anos

O departamento natildeo possuiacutea outra funccedilatildeo aleacutem do suporte de ma-nutenccedilatildeo de computado-res e impressoras muitos jaacute ultrapassados uma vez que o uacuteltimo investimen-

to feito em TI na companhia ocorreu no ano 2000

A telefonia as escolhas teacutecni-cas o gerenciamento de contratos de sistemas e outras atividades natildeo eram exercidas pelo departamen-to de informaacutetica Natildeo havia uma poliacutetica definida de TI na empresa e natildeo se dispunha de recursos para investimento Muitos dos sistemas utilizados pela empresa eram piratas e natildeo possuiacuteam suporte O banco de dados da companhia natildeo dispunha mais de suporte de software e o de-partamento de informaacutetica natildeo tinha

Armstrong Lemos chefe do departamento de TI da CAEMA

copy Linux New Media do Brasil Editora Ltda

23Linux Magazine 50 | Janeiro de 2009

| CORPORATECAEMA

conhecimento dos relacionamentos dos dados contidos nele

Apoacutes o diagnoacutestico e reuniotildees so-licitou-se agrave diretoria administrativa da empresa agrave qual a informaacutetica eacute subordinada para que submetesse ao conselho de administraccedilatildeo o resta-belecimento das funccedilotildees relativas agrave aacuterea de TI incluindo telefonia

Aleacutem dessas accedilotildees de retomada das atribuiccedilotildees estruturamos uma equipe de programaccedilatildeo uma equipe de projetos estrateacutegicos e reestrutu-ramos a equipe de suporte teacutecnico tudo isso para viabilizar a poliacutetica de Software Livre da CAEMA

LMraquo Em que consiste essa poliacutetica de Software LivreALraquo Estabelecemos vaacuterias etapas como o desenvolvimento do Livre Linux e do sistema de protocolo via Web a migraccedilatildeo do sistema comer-cial (GSAN) a formaccedilatildeo de monito-res de treinamento e o treinamento dos usuaacuterios na soluccedilatildeo completa (GSAN Livre Linux BrOfficeorg e sistema de protocolo) seguida pela articulaccedilatildeo do Movimento Software Livre Maranhatildeo

LMraquo Como foi a evoluccedilatildeo do uso do Software Livre dentro da empresaALraquo Precisaacutevamos resolver dois fatores que impediam o avanccedilo da politica de Software Livre na empresa o sistema de protocolo em Windows e o sistema comercial tambeacutem em Windows e com arquitetura cliente-servidor Aleacutem disso determinou-se a substituiccedilatildeo deles por um novo sistema que per-mitisse a ampliaccedilatildeo da nossa rede de atendimento e que ainda propiciasse a autonomia no gerenciamento dos dados da companhia

O sistema de protocolo foi resol-vido a partir do desenvolvimento do sistema livre Balula feito pela equi-pe de programaccedilatildeo e Software Livre da CAEMA Hoje o protocolo estaacute agrave disposiccedilatildeo dos demais oacutergatildeos puacutebli-cos para serem implementados sem

qualquer custo adicional atraveacutes de parceria sem ocircnus entre a CAEMA e o oacutergatildeo interessado

Ainda em novembro todos os computadores de atendimento co-mercial das unidades da CAEMA passaram a utilizar o Livre Linux como sistema operacional

LMraquo Como eacute a situaccedilatildeo atualALraquo Hoje utilizamos o GSAN com banco de dados PostgreSQL Com isso estamos ampliando o atendi-mento aos municiacutepios onde nosso sistema comercial antigo natildeo fun-cionava pois era inviabilizado pelo custo alto de contrataccedilatildeo de serviccedilos de transmissatildeo de dados junto agraves operadoras locais Atualmente com uma simples conexatildeo via raacutedio que existe em todos os municiacutepios onde a CAEMA atua faremos a integraccedilatildeo com o novo sistema

Estatildeo rodando na plataforma Linux todos os sistemas Web (comercial protocolo frotas juriacutedico cadastro segunda via de contracheque) etc Estamos com Livre Linux nos setores de atendimento help desk adminis-trativo e em todos os servidores

Vamos estender essa implantaccedilatildeo para os demais setores salvo maacutequinas que possuam aplicativos em Windows sem similares no mundo Linux (que satildeo casos mais raros)

LMraquo Em quanto tempo a CAEMA espera obter o retorno do investi-mento em Software Livre

ALraquo O custo total foi de R$ 104 milhotildees para o sistema comercial e o banco de dados Isso representa uma economia de R$ 360 milhotildees ao lon-go de quatro anos somente nesses dois sistemas Os levantamentos sobre a substituiccedilatildeo do sistema operacional Windows por Linux do proprietaacuterio Microsoft Office pelo BrOfficeorg e programas pagos estatildeo sendo le-vantados o que poderaacute representar uma economia de aproximadamente meio milhatildeo de reais

LMraquo Quanto tempo durou a mi-graccedilatildeoALraquo Aproximadamente oito meses com um analista de sistemas da CAE-MA e mais dois analistas de sistemas quatro programadores e um analista de suporte e bancos de dados de nos-so prestador de serviccedilos (Domiacutenio) aleacutem de quatro analistas de sistemas e um DBA do IPAD

LMraquo Qual a opiniatildeo da direccedilatildeo da empresa sobre o Software LivreALraquo O convencimento junto agrave dire-toria foi de estabilidade e custo fi-nanceiro devido agrave situaccedilatildeo em que estaacutevamos Hoje haacute o reconhecimento quanto agraves soluccedilotildees implantadas e o estiacutemulo para a descoberta de novas alternativas A diretoria percebe as vantagens de total liberdade e au-tonomia de uso e configuraccedilatildeo das ferramentas livres que tornaram a migraccedilatildeo teacutecnica e economicamen-te viaacutevel

LMraquo E a sua opiniatildeo sobre o mer-cado de Software LivreALraquo O mercado de Software Livre no paiacutes estaacute maduro Muitas empresas estatildeo habilitadas para a execuccedilatildeo e a manutenccedilatildeo de projetos livres Seguindo essa tendecircncia grandes empresas tecircm accedilotildees nesse foco No entanto temos carecircncia de empresas privadas que prestem suporte a bancos de dados livres assim como eacute carente o uso desses bancos em aplicaccedilotildees comerciais proprietaacuterias

LMraquo O movimento Software Livre Maranhatildeo jaacute rendeu frutosALraquo No dia 14 de novembro reali-zamos o I Encontro de Articulaccedilatildeo de Software Livre Maranhatildeo para apresentar aos demais gestores de TI do Estado a alternativa de uso de Software Livre pelo governo e articulaccedilatildeo de um movimento in-dependente para fortalecimento dessa poliacutetica

copy Linux New Media do Brasil Editora Ltda

24 httpwwwlinuxmagazinecombr

Como participar da comunidade Open Souce

Cezar TaurionUma anaacutelise do desenvolvimento do kernel Linux

Haacute alguns dias li um interessante artigo de Jona-than Corbet ldquoHow to participate in the Linux Communityrdquo[1] Ele descreve como funciona

o processo de desenvolvimento do kernel Linux e eacute uma excelente fonte de referecircncia para quem estiver interessado em colaborar com a comunidade ou mes-mo conhecer como funciona por dentro o modelo de governanccedila de um projeto de coacutedigo aberto

O kernel Linux tem mais de 6 milhotildees de linhas de coacutedigo e aglutina mais de mil contribuidores ativos Eacute um dos maiores projetos de coacutedigo aberto do mun-do Seu sucesso tem atraiacutedo muitos colaboradores a maioria inclusive pertencendo a empresas que que-rem participar do projeto A questatildeo eacute como entrar e ser um participante ativo da comunidade

Cada comunidade Open Source tem suas proacuteprias regras de conduta e modelos de governanccedila Enten-der como funciona a comunidade que desenvolve o kernel eacute essencial para ser um colaborador e tam-beacutem abre ideacuteias para aprendermos como funciona um projeto Open Source

A primeira seccedilatildeo do artigo mostra a importacircncia de se inserir todo coacutedigo na aacutervore principal do ker-nel para se evitar a proliferaccedilatildeo de forks e futuras ldquobombas reloacutegiordquo Por exemplo um coacutedigo inse-rido no kernel principal passa a ser visto mantido e refinado por toda a comunidade resultando em coacutedigo de alta qualidade Quando o coacutedigo eacute man-tido separado natildeo soacute natildeo recebe contribuiccedilotildees ex-ternas como corre o risco de funcionalidade similar ser incorporada por outro desenvolvedor ao coacutedigo principal fazendo com que o coacutedigo isolado fique cada vez mais difiacutecil e custoso de ser mantido Esse alerta eacute feito porque muitas empresas envolvidas em projetos de software embarcado tendem a acre-ditar que seu coacutedigo pela sua especificidade deve ser mantido de forma isolada da aacutervore principal do kernel o que eacute um grande erro A seccedilatildeo tambeacutem descreve as razotildees por que toda contribuiccedilatildeo deve ser ldquoassinadardquo Eacute necessaacuterio para se evitar eventuais problemas de propriedade intelectual

A seccedilatildeo dois eacute bem interessante pois descreve como funciona o processo de desenvolvimento do kernel e a nomenclatura usada para designar as diversas versotildees

Explica tambeacutem como eacute criado uma versatildeo estaacutevel e o ciclo de vida dos patches Descreve como um patch eacute inserido no kernel e cita alguns dados curiosos A seccedilatildeo tambeacutem descreve as regras de etiqueta da comunidade na troca de mensagens e o uso das listas de email

As outras seccedilotildees descrevem o processo de plane-jamento da evoluccedilatildeo do kernel debatendo as etapas de avaliaccedilatildeo as discussotildees com a comunidade para definir o que e como seraacute feito os estilos de escrita (que garantem a qualidade do coacutedigo) as ferramen-tas de depuraccedilatildeo usadas a documentaccedilatildeo que deve ser gerada e assim por diante

A seccedilatildeo seis mostra como deve ser feito o tra-balho em colaboraccedilatildeo Cada patch eacute revisado por desenvolvedores que vocecirc natildeo conhece o que mui-tas vezes pode gerar algum desconforto Existem algumas recomendaccedilotildees de como se portar nessas situaccedilotildees meio desagradaacuteveis e de como evitar dis-cussotildees desgastantes Trabalhar em colaboraccedilatildeo eacute um exerciacutecio ao qual muitos desenvolvedores natildeo estatildeo acostumados Para muita gente ter um estra-nho revisando seu coacutedigo e expondo as falhas em puacuteblico eacute no miacutenimo desconfortaacutevel

Enfim a leitura desse documento eacute obrigatoacuteria para todos que estejam realmente interessados em conhecer mais a fundo o que eacute o movimento Open Source e os aspectos do desenvolvimento colabora-tivo que o caracterizam

CORPORATE

Mais informaccedilotildees

[1] Jonathan Corbet ldquoHow to participate in the Linux Communityrdquo httpldnlinuxfoundationorgbookhow-participate-linux-community

Sobre o autor

Cezar Taurion (ctaurionbribmcom) eacute geren-te de novas tecnologias aplicadas da IBM Bra-sil e editor do primeiro blog da Ameacuterica Latina do Portal de Tecnologia da IBM developerWorks Seu blog estaacute disponiacutevel em httpwww-03ibmcomdeveloperworksblogspagectaurion

CORPORATE

copy Linux New Media do Brasil Editora Ltda

25

Argumentando em favor do Software Livre

Jon lsquomaddogrsquo HallA comunidade do Coacutedigo Aberto natildeo dispotildee de um seacutequumlito de advogados e consultores de marketing e comunicaccedilatildeo Quando se trata de argumentar em favor do Software Livre vocecirc provavelmente teraacute que assumir esse papel

A ldquocenardquo juriacutedica envolvendo o Software Li-vre estaacute sempre em movimento Decisotildees de tribunais e accedilotildees governamentais estatildeo

sempre reformulando o panorama legal e tecircm efei-tos bruscos na ldquotemperaturardquo do desenvolvimento desse tipo de aplicaccedilatildeo

Uma lei proposta recentemente tinha por obje-tivo ajudar a eliminar a pornografia infantil mas foi modificada para limitar todo e qualquer tipo de liberdade na Internet a ponto de ndash nas palavras de um dos legisladores ndash dificultar o desenvolvimento de tecnologias como redes mesh

No mecircs passado escrevi sobre minha experiecircncia em testemunhar perante uma assembleacuteia nacional sobre uma lei considerada pioneira relativa ao mun-do open source Muito embora oportunidades como essa natildeo apareccedilam todos os dias eacute surpreendente a frequumlecircncia com que os governos ndash em todos os niacute-veis ndash satildeo confrontados com toacutepicos relacionados agrave comunidade open source

Seu governo local tambeacutem gasta dinheiro com software Algumas diretorias de escola gastam mes-mo milhares de doacutelares em aplicativos proprietaacuterios mesmo que suas contrapartes de coacutedigo aberto este-jam disponiacuteveis a um preccedilo muito inferior A maio-ria dos governos locais e das diretorias das escolas dispotildeem entretanto de um tempo para ouvir o cidadatildeo ndash e vocecirc poderia usar esse tempo para lhes dizer o que vocecirc pensa a respeito disso Melhor ain-da vocecirc poderia reunir um grupo de amigos com os mesmos ideais para argumentar em favor do uso de Software Livre

Se vocecirc for chamado para avaliar uma proposta de regulamentaccedilatildeo ou orccedilamento certifique-se de tecirc-la estudado profundamente Natildeo deixe de co-nhecer os poliacuteticos eleitos envolvidos no processo Com frequumlecircncia poliacuteticos locais estatildeo dispostos a discutir esses toacutepicos com vocecirc diretamente E se vocecirc marcar uma reuniatildeo natildeo se esqueccedila de ldquoestar apresentaacutevelrdquo (como sua matildee provavelmente diria)

e de manter a calma lanccedilando matildeo de uma argu-mentaccedilatildeo plausiacutevel

A maneira mais simples de se envolver em niacutevel nacional com esse tipo de legislaccedilatildeo eacute por meio de uma carta A maioria dos legisladores possui um email mas eles recebem milhares de mensagens todos os dias e a sua pode simplesmente ldquose afogarrdquo nesse oceano sem jamais ter sido lida Uma carta tradicional impressa e assinada pode receber mais atenccedilatildeo do que um email e uma carta enviada via portador como encomenda expressa ou registrada tem ainda maiores chances de ser notada Natildeo se esqueccedila de usar um corretor ortograacutefico ao escre-ver ndash nem de deixar algueacutem mais ler a carta antes de enviaacute-la como medida para garantir que o con-teuacutedo esteja inteligiacutevel

Cartas para editores de publicaccedilotildees tambeacutem satildeo eficazes Oficiais de governo ndash bem como cidadatildeos interessados que podem ser persuadidos por argu-mentos bem formulados ndash lecircem jornais Cartas concisas com argumentos claros satildeo preferiacuteveis a cartas longas sem um objetivo claramente definido Evite criticar o caraacuteter dos proponentes da legislaccedilatildeo a que vocecirc se opotildee Em vez disso concentre seus comentaacuterios no conteuacutedo

Se vocecirc busca um modo simples de se envolver no movimento em torno do Software Livre observe as oportunidades para dar a sua opiniatildeo sobre leis regulamentaccedilotildees e decisotildees de compra que afetem de algum modo o ecossistema open source O esfor-ccedilo eacute vaacutelido jaacute que manter os braccedilos cruzados natildeo eacute uma alternativa capaz de lhe dar voz ativa nesse tipo de processo

Sobre o autorJon lsquomaddogrsquo Hall eacute presidente da Linux International insti-tuiccedilatildeo internacional dedicada a promover o Linux e o Software Livre e de Coacutedigo Aberto Maddog viaja o mundo ministrando palestras e debatendo com decisores sobre o uso do Software Livre em acircmbito tanto corporativo quanto comunitaacuterio

CORPORATE

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

26 httpwwwlinuxmagazinecombr

CORPORATE

Nova lei de call center Oacutetima oportunidade para TI

Edgar SilvaHaacute inuacutemeras tecnologias de coacutedigo ou padrotildees abertos que podem ajudar a superar as dificuldades decorrentes da nova lei de call centers

ldquoO brasileiro mesmo com todas as adver-sidades eacute um povo criativo que na dificuldade cria oportunidadesrdquo Essa

afirmaccedilatildeo cabe muito bem quando observarmos a nova lei para call centers Afinal quem nunca ficou esperando horas numa linha telefocircnica e repetindo nuacutemero de documentos nome da matildee endereccedilo etc O decreto visa natildeo soacute a melhorar a vida de todos que precisam dos serviccedilos de empresas de telefonia fixa e moacutevel TV a cabo e outros mas tambeacutem ge-rar novos empregos assim como oportunidades de negoacutecios que eacute o tema deste artigo

Certamente em razatildeo da tradicional morosidade dos atendimentos de call center o comportamento padratildeo de noacutes consumidores eacute procurar alternativas Uma delas foi a Internet o que fez com que as em-presas investissem em portais para evitar o gargalo no atendimento de suas redes e tambeacutem porque re-presenta um aumento no atendimento sem elevar os custos Entatildeo por que natildeo criar novos canais de atendimento A tecnologia Java e algumas especi-ficaccedilotildees padrotildees e projetos open source fazem a diferenccedila nessa induacutestria de atendimento

Java por exemplo eacute extensamente utilizado Dentre os inuacutemeros motivadores destaco liberda-de de escolha de seus fornecedores a existecircncia de padrotildees da induacutestria que garantem maior ROI bem como facilidade de obtenccedilatildeo e formaccedilatildeo de profissionais Java conta com alguns padrotildees de tecnologia que ajudam principalmente a aprovei-tar parte do legado permitindo novos canais de interaccedilatildeo com os clientes Por exemplo os com-ponentes ou serviccedilos que atendem um navegador web podem tambeacutem atender uma chamada te-lefocircnica uma interaccedilatildeo SMS ou ateacute mesmo um canal VoIP via Skype

Entre as tecnologias disponiacuteveis cito as APIs padrotildees JSR116-SIP Servlets 10 [1] e JSR289-SIP Servlets 11 [2] que possibilitam a interaccedilatildeo com servidores SIP (Session Initiation Protocol) protocolo que dentre inuacutemeras funcionalidades estabelece

chamadas de voz via Internet O funcionamento do SIPServlet eacute similar ao do Servlet tradicional Java entretanto em vez de interagir com o protocolo HTTP estaacute apto a processar requisiccedilotildees e respostas do protocolo SIP Eacute por isso que seus componentes e serviccedilos podem ser reaproveitados

O Mobicents [3] tambeacutem eacute uma soluccedilatildeo que combina aleacutem de SIP vaacuterios outros serviccedilos para o segmento de telecomunicaccedilotildees que por sua vez eacute a implementaccedilatildeo de referecircncia do padratildeo JS-LEE 10 que em resumo eacute uma complementaccedilatildeo do jaacute conhecido JEE (J2EE para os mais antigos) especiacutefico para a comunicaccedilatildeo de componentes existentes em arquiteturas que agrupam web Voip som e imagem

Outro portal open source com soluccedilotildees interes-santes eacute o Ignite Real Time [4] que hospeda proje-tos como o OpenFire servidor Jabber (XMPP) com inuacutemeros plugins entre eles para chamadas SIP e comunicaccedilatildeo com o legendaacuterio Asterisk

Mais informaccedilotildees

[1] JSR116 httpjcporgenjsrdetailid=116

[2] JSR289 httpjcporgenjsrdetailid=289

[3] Mobicents httpwwwmobicentsorg

[4] Ignite Real Time httpwwwigniterealtimeorg

Sobre o autor

Edgar A Silva (edgarsilvaredhatcom) eacute Middleware Technology Lead da Red Hat no Brasil com atuaccedilatildeo desde 1998 em objetos distribuiacutedos (Corba COM+ e Java) Edgar vem nos uacuteltimos anos pesquisando aplicando e ministrando pales-tras e treinamentos no Brasil e exterior sobre assuntos de alta tecnologia entre eles JavaEE e SOA

copy Linux New Media do Brasil Editora Ltda

Dicas de especialistas para conviver com o Windows

Integraccedilatildeo transparente Sim eacute possiacutevel fazer tudo com o Linuxhellip Mas mesmo que vocecirc queira viver em um mundo de coacutedigo aberto ele ainda estaacute cheio de Windows A ediccedilatildeo deste mecircs traz um apanhado de estrateacutegias para facilitar o conviacutevio com o sistema operacional da Microsoft por Joe Casad e Rafael Peregrino da Silva

As redes de hoje contam com um sortimento consideraacutevel de sistemas e dispositivos

Se todos esses componentes natildeo precisassem se comunicar natildeo as chamariacuteamos de rede Mesmo que vocecirc sonhe com um mundo sem Windows ndash e a IBM se esforce para tornar seu sonho realidade ndash essa rea-lidade ainda estaacute um pouco distante Por conta disso a ediccedilatildeo deste mecircs traz diversos artigos versando sobre interoperabilidade e integraccedilatildeo de sistemas No nosso primeiro artigo examinamos algumas teacutecnicas para conexatildeo de clientes VPN para Linux a servidores Windows

Tambeacutem vamos mostrar alguns aplicativos Linux para gerenciamento de conexotildees a VPNs e descreveremos algumas teacutecnicas de resoluccedilatildeo dos problemas para fazer o sistema do pinguumlim funcionar com o protoco-lo PPTP usado em redes Windows No artigo seguinte abordamos a integraccedilatildeo de sistemas Linux a um ambiente Windows usando o famo-so (alguns diriam infame) Microsoft Active Directory lanccedilando matildeo para tanto do sistema de autenticaccedilatildeo Likewise Open O Likewise eacute uma ferramenta de coacutedigo aberto que fornece uma confi guraccedilatildeo faacutecil para autenticaccedilatildeo dos tipos single sign-on e Kerberos O terceiro artigo da ses-satildeo mostra como confi gurar o Linux como um servidor de terminais para clientes Windows utilizando o xrdp ndash uma implementaccedilatildeo de coacutedigo aberto do Remote Desktop Protocol

(RDP) da Microsoft Nesse artigo vocecirc vai entender por que o siste-ma das janelas natildeo eacute necessaacuterio no servidor para criar um ambiente de terminais Windows e aprenderaacute como fazer os usuaacuterios desse sistema visualizarem um desktop Linux na sua aacuterea de trabalho tudo isso em apenas alguns passos

Por uacuteltimo apresentamos um soft-ware de coacutedigo aberto para agenda-mento de tarefas muito mais comple-xo que o veneraacutevel Cron e que tem como uma de suas maiores vantagens o fato de ser multiplataforma ndash o que facilita muito a administraccedilatildeo de um ambiente heterogecircneo de servidores

Se vocecirc precisa conviver com o Windows por que natildeo vi-ver em paz e com con-

forto Se esse eacute o seu caso esperamos tornar a sua vida um pouco menos atribulada com esta ediccedilatildeo de inte-graccedilatildeo com as tecnologias da gigante de Redmond

CAPA

Linux Magazine 50 | Janeiro de 2009

Iacutendice das mateacuterias de capa

Rede fechada 28Na ativa 34O manda-chuva do terminal 40 Muito aleacutem do Cron 44

27copy Linux New Media do Brasil Editora Ltda

28 httpwwwlinuxmagazinecombr

Configurando conexotildees VPN em clientes Linux

Rede fechadaClientes Linux eventualmente precisam de uma matildeozinha para se conectar a servidores VPN do Windowspor James Stanger

Dois benefiacutecios de se usar tuacute-neis VPN (Virtual Private Networks ou redes virtuais

privadas) satildeo as conexotildees criptografa-das e o acesso aos recursos localizados atraacutes do firewall Quando a questatildeo eacute interoperabilidade entretanto confi-gurar essas conexotildees pode ser difiacutecil em clientes Linux As distribuiccedilotildees Linux frequumlentemente tecircm problemas em es-tabelecer conexotildees a VPNs em servido-res cuja tecnologia eacute baseada em outros sistemas operacionais especialmente porque os aplicativos graacuteficos utiliza-dos para configurar essas conexotildees normalmente natildeo conseguem manter

o mesmo ritmo de desenvolvimento do Linux que estaacute geralmente duas geraccedilotildees agrave frente delas Assim pouco tempo apoacutes as distribuiccedilotildees terem sido lanccediladas as bibliotecas usadas para a criaccedilatildeo de VPNs satildeo modificadas e o aplicativo que vocecirc utilizava para fazer esse tipo de conexatildeo simplesmente paacutera de funcionar em ambientes he-terogecircneos Recentemente houve um avanccedilo nessa situaccedilatildeo e este artigo daacute algumas dicas sobre como estabele-cer conexotildees a VPNs a partir de um desktop Linux

Uma VPN cria um tuacutenel ponto-a-ponto por meio de uma rede puacuteblica

Vaacuterios protocolos oferecem suporte a conexotildees VPN entre eles as seguintes alternativas bastante populares L2TP via IPsec Foi o primeiro

protocolo desenvolvido pela Cisco para criaccedilatildeo de tuacuteneis de acesso criptografados L2TPv3 eacute a versatildeo mais recente mas certifique-se de escolher a ver-satildeo apropriada para a sua rede Lembre-se de que haacute duas im-plementaccedilotildees de IPsec principais no Linux Por exemplo sistemas mais antigos usam FreeSWAN ou Openswan para IPsec Sis-temas mais recentes com qual-

CA

PA

Quadro 1 Problemas e soluccedilotildees

Ao resolver problemas em conexotildees certifique-se de es-tar com os moacutedulos instalados e carregados Por exem-plo num sistema Ubuntu 8041 uma conexatildeo PPTP precisa dos seguintes moacutedulos

ppp_mppe 8068 2ppp_async 13312 1crc_ccitt 3072 1 ppp_asyncppp_generic 29588 6 ppp_mppe ppp_asyncslhc 7040 1 ppp_genericppdev 10372 0

A MTU (unidade maacutexima de transmissatildeo) eacute outra configu-raccedilatildeo importante pode ser necessaacuterio reduzir o valor de 1500 para algo menor como 1490

Em caso de problemas lembre-se de ativar as opccedilotildees de depuraccedilatildeo no cliente ndash sempre eacute possiacutevel desativaacute-las depois As opccedilotildees de depuraccedilatildeo podem incluir especifi-car pacotes ICMP para testar uma conexatildeo assim como determinar o tamanho do intervalo de eco

Uma opccedilatildeo estranha mas eventualmente uacutetil eacute desativar a criptografia Obviamente com isso perdem-se os benefiacutecios da conexatildeo VPN A maioria dos servidores rejeita conexotildees sem criptografia mas ainda assim essa opccedilatildeo pode ser de alguma ajuda para eliminar fontes de problemas

O mascaramento de IP e outras formas de NAT tambeacutem im-potildeem alguns problemas para conexotildees VPN Se estiverem sendo usados ESP ou AH (cabeccedilalhos de autenticaccedilatildeo) por exemplo haveraacute problemas com o NAT pois o AH executa uma verificaccedilatildeo que inclui valores como o endereccedilo IP da conexatildeo Como o NAT modifica o endereccedilo IP a verificaccedilatildeo falharaacute e portanto tambeacutem a comunicaccedilatildeo

copy Linux New Media do Brasil Editora Ltda

29

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

quer versatildeo do kernel da seacuterie 26 dispotildeem de suporte nativo a Ipsec

Point-to-Point Tunneling Pro-tocol (PPTP) trata-se de um protocolo antigo que ainda eacute usado em diversos ambientes Microsoft

Secure Sockets LayerTransport Layer Security (SSLTLS) eacute um dos mais poderosos protocolos de interoperabilidade disponiacute-veis atualmente fornecendo suporte para muitos tipos de conexotildees VPN O OpenVPN [1] por exemplo eacute uma solu-ccedilatildeo para criaccedilatildeo de tuacuteneis de acesso criptografados baseada em SSLTLS

Com o passar dos anos jaacute houve muitas discussotildees sobre qual proto-colo eacute o mais seguro ou qual seria mais favoraacutevel ao modelo de desen-volvimento de coacutedigo aberto Muitas dessas discussotildees chegaram a assumir um teor quase religioso Poreacutem em vez de se envolver em tais discussotildees eacute mais uacutetil simplesmente descobrir qual dos protocolos funciona melhor para o seu tipo de rede em particular e entatildeo adotaacute-lo

Qualquer que seja o protocolo usado para criar o tuacutenel eacute possiacutevel enviar pacotes atraveacutes dele os quais seratildeo considerados pelo firewall como pacotes internos A chave como veremos a seguir eacute se certificar de que os pacotes certos atravessem a interface correta do tuacutenel

O ambiente Linux dispotildee de diversas ferramentas para configu-rar e gerenciar conexotildees VPN O utilitaacuterio KVpnc do projeto KDE oferece suporte para vaacuterias tecnolo-gias VPN (da Cisco passando pela Microsoft e culminando no Open-VPN) O vpnc eacute um programa de linha de comando para sistemas Cisco Muitas distribuiccedilotildees Linux passaram a usar o NetworkManager [2] desenvolvido pela Red Hat que

permite instalar extensotildees para redes Cisco e Microsoft Dependendo da tecnologia VPN que vocecirc pretende usar vocecirc teraacute que instalar a exten-satildeo apropriada

O pptpconfig [3] eacute um aplicativo antigo que funciona especialmente bem para distribuiccedilotildees Linux da Red Hat e da Novell bem como com BSDs e vaacuterios outros sistemas Como o nome sugere o pptpconfig eacute usado para gerenciar VPNs basea-dos em tecnologia Microsoft

Criando um tuacutenelIndependentemente de qual aplicati-vo ou protocolo for usado eacute necessaacuterio obter algumas informaccedilotildees baacutesicas para estabelecer uma conexatildeo com sucesso Por exemplo Informaccedilotildees sobre autenti-

caccedilatildeo dependendo do que o administrador da rede exigir seraacute preciso fornecer informa-ccedilotildees especiacuteficas a respeito do usuaacuterio para se autenticar no servidor VPN A alternativa menos segura (embora mais comum) eacute fornecer um nome de usuaacuterio e uma senha Outras opccedilotildees incluem chaves priva-das e certificados A Cisco daacute preferecircncia ao uso de chaves e certificados por exemplo

Gateway (tambeacutem conhecido popularmente como nome do servidor VPN) eacute o endereccedilo IP

ou nome do equipamento VPN que fornece o tuacutenel depois da autenticaccedilatildeo

Tipo de protocolo como dis-cutido acima eacute necessaacuterio es-colher entre os protocolos exis-tentes tais como L2TP PPTP OpenVPN etc A ferramenta de configuraccedilatildeo vai solicitar que sejam especificadas as opccedilotildees adequadas para o(s) protocolo(s) escolhido(s)- pelo administrador da rede

Configuraccedilotildees gerais qualquer que seja o protocolo de autenti-caccedilatildeo seraacute preciso fornecer in-formaccedilotildees especiacuteficas para a sua conexatildeo Por exemplo algumas redes solicitam a configuraccedilatildeo de uma unidade maacutexima de transmissatildeo (do inglecircs Maximum Transmission Unit o famigerado MTU) especiacutefica o aplicativo permite que sejam realizadas as modificaccedilotildees especiacuteficas para a conexatildeo em questatildeo

Informaccedilotildees de roteamento natildeo importa os tipos de proto-colo ou autenticaccedilatildeo escolhi-dos normalmente tambeacutem eacute necessaacuterio assegurar-se de que os pacotes certos estatildeo de fato sendo roteados atraveacutes da inter-face correta

Assim eacute certo depender da ajuda de um administrador de redes compre-

Quadro 2 Preso do lado de fora

Conforme satildeo feitos experimentos com a conexatildeo VPN certifique-se de que sua conta natildeo seja trancada do lado de fora A maioria das VPNs tem dificuldade em diferenciar entre experimentos com a configuraccedilatildeo e tentati-vas de invasatildeo Se vocecirc ficar trancado de fora natildeo conseguiraacute entrar nem mesmo com as configuraccedilotildees corretas

Se ficar impossiacutevel conectar-se preste atenccedilatildeo ao arquivo de log e agraves men-sagens de depuraccedilatildeo para verificar se as mensagens de autenticaccedilatildeo e conexatildeo mudaram de alguma forma uma mudanccedila sutil pode indicar que se estaacute na verdade trancado do lado de fora da conta Se for esse o caso seraacute preciso esperar a conta ser desbloqueada Com sorte essa limitaccedilatildeo seraacute temporaacuteria Caso contraacuterio seraacute preciso contatar o administrador da rede cada vez que ocorrer esse imprevisto

copy Linux New Media do Brasil Editora Ltda

30 httpwwwlinuxmagazinecombr

CAPA | VPNS

ensivo para ajudar o usuaacuterio a obter as informaccedilotildees listadas acima

PPTP com Microsoft Mesmo que o protocolo PPTP seja considerado menos seguro que o da Cisco ou o OpenVPN ele ainda eacute bastante popular Para confi gurar uma conexatildeo PPTP haacute um grande rol de opccedilotildees de autenticaccedilatildeo com-pressatildeo e criptografi a

Um dos desafi os eacute escolher o meacute-todo de autenticaccedilatildeo Autenticaccedilatildeo direta ( peer authentication ) signifi -ca que o servidor solicitaraacute que o cliente se identifi que As opccedilotildees para essa modalidade de autentica-ccedilatildeo incluem Challenge Handshake Authenti-

cation Protocol (CHAP) proto-colo padratildeo em conformidade com o RFC correspondente Basta fornecer um nome de usuaacuterio e uma senha para se autenticar MS-CHAP eacute a im-plementaccedilatildeo do protocolo pela Microsoft Se o administrador da rede natildeo revelar o protocolo empregado use o MS-CHAP no caso de servidores Windows

EAP eacute uma extensatildeo do pro-tocolo de autenticaccedilatildeo PPP original que permite o uso de um certifi cado em vez de nome de usuaacuterio e senha Me-nos comum do que MS-CHAP e CHAP

Muitos clientes oferecem a opccedilatildeo de recusar todos esses meacutetodos de autenticaccedilatildeo Para trabalhar bem com um servidor VPN remoto talvez a melhor opccedilatildeo seja usar diretamente o daemon PPP do seu sistema Compactar os dados para trans-

missatildeo pela VPN tambeacutem eacute uma boa ideacuteia Geralmente haacute trecircs opccedilotildees de compressatildeo

Microsoft Point-to-Point Com-pression (MPPC) protocolo an-tigo baseado no algoritmo LZ e geralmente reservado a clientes Windows antigos (Windows 95 e NT) Contudo pode funcionar em outras VPNs

Defl ate compression protocolo similar ao MPPC mas livre de patentes Eacute mais universal que

o MPPC mas raramente usado em VPNs Microsoft

BSD compression descrito na RFC 1977 eacute o protocolo de compressatildeo tradicional

O tipo de compressatildeo geralmente causa problemas nas conexotildees Caso o administrador da rede natildeo coope-re eacute melhor tentar primeiro uma conexatildeo sem compressatildeo

A confi guraccedilatildeo da criptografi a tambeacutem eacute importante O Microsoft Point-to-Point Encryption (MPPE) eacute um subconjunto do MPPC Pode-se usar dois comprimentos de chave di-ferentes 40 bits e 128 bits Empresas de muitos paiacuteses usam apenas cha-ves de 40 bits Na confi guraccedilatildeo de clientes PPTP o administrador deve informar o comprimento da chave Senatildeo basta testar ateacute descobrir

Stateful MPPE geralmente eacute a melhor opccedilatildeo de criptografi a uma vez que fornece conexotildees de rede mais raacutepidas Como veremos mais agrave frente eacute necessaacuterio habilitar o moacutedulo MPPE para qualquer uma dessas confi guraccedilotildees

DNS A maioria dos clientes DNS pergunta se deve usar as informaccedilotildees de DNS em etcresolvconf ou aquelas for-necidas pelo servidor VPN A proacutepria conexatildeo VPN pode causar modifi ca-ccedilotildees na resoluccedilatildeo de DNS principal-

Figura 2 Criaccedilatildeo de rotas no cliente NetworkManager

Figura 1 Criaccedilatildeo de rotas no cliente VPN KVpnc

copy Linux New Media do Brasil Editora Ltda

31

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

mente porque o cliente VPN altera o conteuacutedo do arquivo etcresolvconf mesmo quando confi gurado ex-plicitamente para natildeo fazecirc-lo

A melhor soluccedilatildeo eacute usar um clien-te VPN que funcione da forma que se espera Na falta de tal soluccedilatildeo pode-se contornar o problema crian-do um script que faccedila uma coacutepia do arquivo etcresolvconf correto Quando o cliente VPN pergunta se deve ldquorealizar acessos ao DNS atra-veacutes do tuacutenelrdquo geralmente o que ele realmente quer dizer eacute se pode alte-rar o arquivo etcresolvconf com seus novos dados A escolha correta depende de informaccedilotildees fornecidas pelo administrador da rede Se o ob-jetivo natildeo for usar o DNS da VPN seraacute difiacutecil o cliente acessar as outras maacutequinas detraacutes da VPN

Suporte ao GRE Para conectar um cliente a uma VPN Microsoft atraveacutes de um fi -rewall Linux haacute um ajuste extra a ser feito nele para que tudo funcio-ne a ativaccedilatildeo do protocolo Generic Route Encapsulation (GRE) para atravessar o fi rewall Supondo o uso do iptables no fi rewall Linux e um servidor VPN com o endereccedilo 18944453 eacute necessaacuterio executar o seguinte comando

iptables -I FORWARD -p 47 -d 18944453 -j ACCEPT

Roteamento Pode ser necessaacuterio rotear pacotes ex-plicitamente atraveacutes de uma interface especiacutefi ca Muitos administradores de sistemas Windows consideram esse um dos maiores desafi os do trabalho com clientes Linux

A necessidade de rotear pacotes explicitamente eacute especialmente importante quando a rede remota utiliza IPs puacuteblicos Mesmo que seja usado um tuacutenel VPN a in-

terface de rede ainda pode tentar rotear pacotes pela Internet em vez de simplesmente usar o tuacutenel Satildeo muito frequumlentes problemas em conexotildees VPN cuja soluccedilatildeo eacute sim-plesmente adicionar algumas rotas alternativas agrave tabela de roteamento padratildeo do sistema Isso pode ser feito tanto com o aplicativo graacutefi co de confi guraccedilatildeo do VPN quanto pela linha de comando com os utilitaacuterios route ou iproute

route add -net 131639723 netmask 255255255255 dev ppp0 ou iproute

ip route add 17187445424 dev ppp0

Em alguns casos sem essas rotas

natildeo eacute possiacutevel fazer com que os paco-tes que deveriam trafegar pela VPN realmente o faccedilam e eles acabam saindo pela placa de rede

Figura 3 KVpnc com uma sessatildeo PPTP legada

Figura 4 Importaccedilatildeo de um certifi cado Cisco no KVpnc

copy Linux New Media do Brasil Editora Ltda

32 httpwwwlinuxmagazinecombr

CAPA | VPNS

Interface graacutefi ca Os aplicativos graacutefi cos para confi gu-raccedilatildeo de VPNs estatildeo fi cando cada vez melhores quando se trata de adicionar as rotas necessaacuterias auto-maticamente A fi gura 1 mostra as confi guraccedilotildees para o KVpnc A fi gura 2 ilustra uma confi guraccedilatildeo similar no NetworkManager

Assim como essas capturas de tela ilustram pacotes que coincidam com o endereccedilo IP e a maacutescara de rede defi nidos natildeo seratildeo enviados atraveacutes da conexatildeo de rede padratildeo mas simpelo tuacutenel VPN

O KVpnc ( fi gura 3 ) disponiacutevel em vaacuterias distribuiccedilotildees talvez seja o mais versaacutetil entre os clientes atuais pois oferece suporte a L2TP aos protocolos VPN tanto livres quanto proprietaacuterios da Cisco ao OpenVPN e ao PPTP da Microsoft O KVpnc tambeacutem permite a importaccedilatildeo de certifi cados conforme mostra a fi gura 4

Apesar de os desenvolvedores da interface graacutefi ca do programa terem cometido alguns deslizes ortograacutefi -

cos na interface os desenvolvedores do KVpnc realmente criaram um produto que trabalha parti-cularmente bem em conjunto com dispo-sitivos Cisco

O veneraacutevel pptp-config tambeacutem estaacute disponiacutevel em muitas distribuiccedilotildees O se-gredo para o sucesso no seu uso pptpconfig estaacute na confi guraccedilatildeo da criptografi a usada pelo programa que precisa ser exatamen-te aquele previsto pelo administrador

Com frequumlecircncia eacute importante usar de criptografi a MPPE e habilitar o modo stateful desse proto-

colo No caso do pptpconfig seria preciso selecionar Require Microsoft Point-to-Point Encryption (MPPE) e Refuse Stateless Encryption para conseguir isso

O pptpconfig tambeacutem tem capaci-dade de adicionar rotas automatica-mente Simplesmente clique na aba Routing marque o botatildeo Client to LAN e digite as rotas dos sistemas que devem ser conectados pela VPN

Muitos usuaacuterios Linux preferem o NetworkManager por um simples motivo ele costuma funcionar Haacute plugins para ele que suportam vaacuterios protocolos incluindo OpenVPN Microsoft PPTP e L2TP Apoacutes insta-laacute-los basta clicar no iacutecone de rede e selecionar as conexotildees VPN para comeccedilar a fornecer as informaccedilotildees apropriadas A fi gura 5 mostra as etapas para confi gurar uma conexatildeo Cisco num sistema Ubuntu

O NetworkManager suporta a criptografi a por chave compartilhada quanto por certifi cado X509 Para fazecirc-lo funcionar adequadamente

eacute preciso instalar o daemon racoon para fazer a troca de chaves pela In-ternet Depois deve-se obter com o administrador da rede a chave com-partilhada e os certifi cados assinados caso eles sejam usados

IPsec e kernel 26 Certifi que-se de instalar os daemons certos para a conexatildeo Se o sistema utilizar alguma versatildeo do kernel 26 ele jaacute suporta nativametne o IPsec mas se for usado o KVpnc ou o vpnc ainda seraacute preciso instalar o daemon racoon que se encarrega da troca de chaves em implementaccedilotildees IPsec Se o racoon natildeo estiver disponiacutevel no re-positoacuterio da distribuiccedilatildeo em questatildeo basta conferir o site do projeto [4]

Para suportar o FreeSWAN o padratildeo antigo para o IPsec eacute pre-ciso instalar o daemon ipsec caso contraacuterio a implementaccedilatildeo falharaacute pois o sistema natildeo conseguiraacute con-duzir as trocas de senha necessaacuterias ao estabelecer o tuacutenel

Conclusatildeo Estabelecer uma VPN hoje em dia eacute muito mais faacutecil mas os clien-tes VPN graacutefi cos ainda natildeo fazem tudo pelo usuaacuterio Apesar de ainda ser trabalhoso fazer a comunicaccedilatildeo com servidores Microsoft Cisco e OpenVPN basta uma certa dedica-ccedilatildeo para se obter sucesso

Mais informaccedilotildees

[1] OpenVPN httpopenvpnnet

[2] NetworkManager httpwwwgnomeorgprojectsNetworkManager

[3] pptpclient httppptpclientsourceforgenet

[4] Rasvpn httpwwwnetbsdorgdocsnetworkipsecrasvpnhtml

Figura 5 Confi guraccedilatildeo de VPN Cisco no NetworkManager

copy Linux New Media do Brasil Editora Ltda

33

| CAPAVPNS

Linux Magazine 50 | Janeiro de 2009

Linux Pro novo (julho) 77 251108 172941

copy Linux New Media do Brasil Editora Ltda

34 httpwwwlinuxmagazinecombr

Integraccedilatildeo faacutecil ao Active Directory com o Likewise Open

Na ativaO Likewise Open oferece integraccedilatildeo faacutecil a ambientes Active Directory Mostramos como instalar e configurar o sistema de autenticaccedilatildeo amigaacutevel para administradorespor Walter Neu

O sistema de autenticaccedilatildeo Li-kewise Open [1] integra clien-tes Linux ao ambiente Active

Directory Obviamente tambeacutem eacute possiacutevel configurar o Active Directory pelo Samba e seus atores coadjuvantes [2] mas a soluccedilatildeo da Likewise oferece vaacuterios benefiacutecios para facilitar a confi-guraccedilatildeo e a administraccedilatildeo

A versatildeo gratuita e GPL do Likewi-se suporta autenticaccedilatildeo em diretoacuterios AD a autorizaccedilatildeo de serviccedilos ldquoker-berizadosrdquo e ateacute o recurso de single sign-on Isso pode se parecer bastante com o Samba que faz as mesmas coisas na verdade o gerente de pro-jetos da Likewise Gerald Carter eacute um antigo membro da equipe central

de desenvolvimento do Samba O Likewise Open se aproveita do tra-balho do Samba embora acrescente diversos recursos proacuteprios

Pacotes prontosHaacute pacotes do Likewise para distri-buiccedilotildees da Red Hat Novell e Cano-nical aleacutem de alguns sistemas Unix comerciais e do MacOS X

O site do Likewise exibe a versatildeo 50 embora os pacotes especiacuteficos por distribuiccedilatildeo incluam a versatildeo 4 usada neste artigo Usuaacuterios do Ubuntu tecircm agrave disposiccedilatildeo os pacotes likewise-open e likewise-open-gui no repositoacuterio Uni-verse Os pacotes do Likewise incluem vaacuterias dependecircncias ndash primordialmente

relacionadas ao Kerberos O Likewise Open se baseia na versatildeo MIT do Ker-beros como back-end [3] Durante a instalaccedilatildeo no Ubuntu o pacote pede para o administrador especificar os servidores Kerberos e administrativo (figuras 1 e 2)

Aleacutem de um servidor AD e uma estrutura de domiacutenio gerenciada pelo Windows o Likewise possui dois ou-tros requisitos um servidor de nomes funcional e um reloacutegio do sistema sincronizado Se os reloacutegios do cliente e do servidor estiverem mais de cinco minutos fora de sincronia o servidor Kerberos certamente se recusaraacute a emitir tiacutequetes por medida de segu-ranccedila para evitar ataques

Nova abordagemAdicionar um sistema Linux ldquocrurdquo a um domiacutenio exige certo trabalho de configuraccedilatildeo [2] O Likewise Agent faz a maior parte desse trabalho adi-cionando-se ao Name Service Switch (NSS) e aos Pluggable Authentication Modules (PAM) no cliente local

No lado do servidor o agente re-passa as requisiccedilotildees de autenticaccedilatildeo ao servidor Kerberos 5 e ao AD base-ado em LDAP Para permitir que isso aconteccedila o pacote instala algumas bi-bliotecas e arquivos de configuraccedilatildeo Por exemplo liblibnss_lwidentityso integra o Likewise ao NSS e etcpamdpam_lwidentityso faz o mesmo para o PAM O arquivo de configu-

CA

PA

Figura 1 O gerenciador de pacotes do Ubuntu pede o nome do servidor Kerberos ao se instalar os pacotes do Kerberos

copy Linux New Media do Brasil Editora Ltda

35

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

raccedilatildeo etcsecuritypam_lwidentityconf configura o moacutedulo e a interface do controlador de domiacutenio remoto eacute implementada pelo servidor Winbind do Likewise o likewise-winbindd O servior tem seu proacuteprio arquivo de configuraccedilatildeo etcsambalwiauthdconf semelhante ao arquivo smbconf do pacote Samba

O Likewise Open integra esses com-ponentes para suportar um login de domiacutenio transparente para os usuaacuterios O processo de login repassa o nome do usuaacuterio e sua senha para o PAM O moacutedulo pam_lwidentityso se comuni-ca com o serviccedilo de autenticaccedilatildeo do Likewise que gera uma chave secreta a partir do nome e da senha do usuaacute-rio O daemon do Likewise utiliza a chave secreta para solicitar um tiacutequete para solicitaccedilatildeo de tiacutequetes (TGT na nomenclatura do Kerberos) ao ser-vidor de autenticaccedilatildeo Kerberos que roda como parte do Key Distribution Center (KDC) no servidor AD

Ao apresentar o TGT o serviccedilo de autenticaccedilatildeo do Likewise recebe tiacutequetes de serviccedilo para outros ser-viccedilos de rede como SSH Os usuaacute-rios entatildeo jaacute podem fazer logon nos servidores kerberizados sem digitar suas senhas novamente

Configure o pacote de instalaccedilatildeo do Likewise em cada maacutequina Li-nux que vai se tornar um membro do domiacutenio AD (e ser gerenciada pelo Likewise) Se forem usados os pacotes de instalaccedilatildeo fornecidos no site o Likewise Open seraacute instalado com uso de um Bitrock Installer ndash um executaacutevel cujo nome de arquivo ter-mina com installer Para executar o programa eacute preciso tornar-se root e seguir as instruccedilotildees na tela

O instalador exibe informaccedilotildees sobre as licenccedilas de coacutedigo aberto dos componentes instalados antes de o Likewise instalar seus arquivos Depois disso o instalador leva o ad-ministrador ao domainjoin-cli que se localiza no diretoacuterio usrcente-risbin (violando as-sim as convenccedilotildees do FHS [4] os pacotes das distribuiccedilotildees e as versotildees mais recentes do Likewise corrigem esse erro) O agente ar-mazena informaccedilotildees de log em varloglw-identity ndash se for usada a versatildeo do repositoacuterio do Ubuntu ndash em varloglikewise-open

Pode entrarUm domiacutenio AD precisa que os siste-mas usuaacuterio e cliente tornem-se mem-bros dele O ato de criar uma conta de maacutequina no serviccedilo de diretoacuterio da Microsoft eacute chamado no idioma do AD de ldquojuntar-se ao domiacuteniordquo (ou ldquoJoining the domainrdquo em inglecircs)

Haacute uma ferramenta de linha de co-mando chamada domainjoin-cli que permite que o usuaacuterio root se junte ao domiacutenio AD criando uma conta de maacutequina no diretoacuterio nesse processo A ferramenta domainjoin-cli aceita a opccedilatildeo join e o domiacutenio como argumen-tos O argumento do domiacutenio precisa ser especificado como um nome DNS completamente qualificado

Aleacutem disso o comando espera o nome de um usuaacuterio com autorizaccedilatildeo para criar contas de computador no ambiente AD O exemplo 1 mostra um computador chamado ubuntu se juntando ao domiacutenio exemploorg A conta Administrator possui os privileacute-gios necessaacuterios para essa etapa

A segunda opccedilatildeo para se juntar a um domiacutenio eacute a interface graacutefica do Likewise Open (figura 3) Poreacutem a interface natildeo estaacute incluiacuteda no pacote baacutesico do programa Para acrescentaacute-la simplesmente instale o pacote likewise-open-gui e inicie-o com privileacutegios de root digitando domainjoin-gui

Manual e automaacuteticoNos dois casos o Likewise Open lida com a tarefa de configuraccedilatildeo em se-gundo plano eliminando a necessi-

Figura 2 Eacute preciso especificar o servidor administrativo para o domiacutenio do Kerberos

Exemplo 1 Juntando-se a um domiacutenio

01 domainjoin-cli join exampleorg Administrator02 Joining to AD Domain exampleorg03 With Computer DNS Name ubuntuexampleorg04 05 AdministratorEXAMPLEORGrsquos password06 Enter AdministratorEXAMPLEORGrsquos password07 SUCCESS

copy Linux New Media do Brasil Editora Ltda

36 httpwwwlinuxmagazinecombr

CAPA | Likewise

dade de etapas manuais complexas O software modifica as configuraccedilotildees para interaccedilatildeo do usuaacuterio com o AD (figura 4) incluindo os arquivos neces-saacuterios para a comunicaccedilatildeo do Kerberos com o KDC krb5conf e os arquivos do PAM em etcpamd

Para fazer login usando um domiacutenio de cliente Linux os usuaacuterios precisam de um diretoacuterio home no cliente O Likewise cria o diretoacuterio localmente se for modificado o arquivo etcse-curitypam_lwidentityconf

O arquivo etcnsswitchconf faz o Likewise Open retomar o controle e especifica o meacutetodo lwidentity O servi-ccedilo de nomes do NSS verifica primeiro arquivos locais como etcpasswd

passwd files lwidentitygroup files lwidentity

Se ele natildeo conseguir encontrar uma conta ele acessa o AD em se-guida Isso significa que usuaacuterios lo-cais ainda podem acessar a maacutequina local caso o AD falhe

Configuraccedilatildeo cuidadosaO Likewise eacute cuidadoso na configura-ccedilatildeo do sistema Linux Ele cria becapes de todos os arquivos que modifica acrescentando um sufixo lwid-entitybak e por um bom motivo executar domainjoin-cli leave como root na li-nha de comando ou na interface graacutefica apaga a conta da maacutequina

Nesse caso o Likewise recupera todos os arquivos de configuraccedilatildeo que tive-

rem sido alterados Ele usa o arquivo etcsambalwiauthdconf para permitir que os ad-ministradores especifiquem opccedilotildees de configuraccedilatildeo para seu proacuteprio sistema Winbind essas configuraccedilotildees devem ser familiares agravequeles que utilizam o Samba num am-biente AD

Configuraccedilatildeo individualO paracircmetro template shell define o shell de login para todos os usuaacuterios de forma centralizada O diretoacuterio home do usuaacuterio natildeo eacute definido no banco de dados de usuaacuterios do AD portanto eacute preciso especificar o caminho no ar-quivo de configuraccedilatildeo com o paracircmetro template homedir do Samba

template shell = binbashtemplate homedir = homeDU

O Likewise-Winbind substitui D pelo nome de domiacutenio curto e U pelo usuaacuterio do domiacutenio

Para evitar colisotildees de nomes em relacionamentos de confianccedila faz sentido adicionar o domiacutenio ao caminho do usuaacuterio ndash e aplicar os padrotildees para diretoacuterios dos usuaacuterios Se a configuraccedilatildeo natildeo for alterada o Likewise Open usaraacute a contra-barra como separador de domiacutenios e nomes de usuaacuterios Obviamente a contrabarra possui um significado especial em shells Unix Os especia-listas recomendam mudar isso para outro caractere em todos os clientes usando a variaacutevel winbind separator A sugestatildeo eacute o sinal +

Se houver apenas um domiacutenio eacute possiacutevel definir winbind use default domain = yes para evitar separar o domiacutenio dos nomes de usuaacuterios Se isso natildeo for feito os usuaacuterios do domiacutenio fornecidos pelo Winbind natildeo funcionaratildeo a menos que se adicione um prefixo de domiacutenio Reiniciar o Likewise Open por seu script de inicializaccedilatildeo aplica as mudanccedilas

VerbosoO pacote likewise-open conteacutem trecircs ferramentas de diagnoacutestico ndash lwinet lwimsg e lwiinfo ndash uacuteteis para fins de depuraccedilatildeo entre outros

Exemplo 2 klist exibe os tiacutequetes locais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081208 134808 081208 234808 krbtgtEXAMPLEORGEXAMPLEORG07 renew until 081908 13480808 081208 134808 081208 234808 SUSE$EXAMPLEORG09 renew until 081908 134808

Figura 3 A interface do Likewise Open pede o nome DNS do domiacutenio e os nomes das maacutequinas

copy Linux New Media do Brasil Editora Ltda

37

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

Como o Likewise se baseia no coacutedigo do Winbindd do Samba as ferramentas vatildeo lidar com as tarefas normalmente realizadas pelo dae-mon Winbind do Samba Digitando lwiinfo eacute possiacutevel verificar a conexatildeo ao controlador do domiacutenio

A ferramenta corresponde ao wbin-fo do Samba As duas consultam o daemon do Winbind Por exemplo o lwiinfo -u lista todos os usuaacuterios do domiacutenio padratildeo

EXAMPLE+mokr000EXAMPLE+phkr000EXAMPLE+wane000

O mesmo princiacutepio se aplica a grupos no serviccedilo de diretoacuterio que satildeo exibidos pela opccedilatildeo -g Isso ga-rante que o Linux saiba os nomes do AD O comado lwiinfo -g lista os grupos conhecidos

EXAMPLE+contasEXAMPLE+marketing []

Novamente o Likewise usa o ca-ractere + configurado em lwiauthdconf como separador no Winbind A ferramenta lwimsg corresponde ao smbcontrol e eacute usada para controlar o Winbindd definindo o niacutevel de depuraccedilatildeo por exemplo A contra-parte da ferramenta net do Samba usada para administraccedilatildeo remota de um domiacutenio eacute o lwinet

Apoacutes instalar o software eacute uma boa ideacuteia tentar fazer logon no AD O

formato do nome do usuaacuterio precisa corresponder agravequele definido para o serviccedilo de diretoacuterio Por exemplo se for mantida a configuraccedilatildeo padratildeo para separaccedilatildeo entre o domiacutenio e o nome do usuaacuterio mas o separador for alterado para o sinal de soma os usuaacuterios precisaratildeo digitar seus nomes como DOMIacuteNIO+usuaacuterio no login pelo console ou por um gerenciador de desktop (veja a fi-gura 5)

ubuntu Login EXAMPLE+wane000PasswordEXAMPLE+wane000ubuntu~$

Conforme mencionado anterior-mente o Likewise autentica usuaacute-rios pelo protocolo Kerberos por meio da requisiccedilatildeo de um TGT ao KDC antes de prosseguir agrave instala-ccedilatildeo local do tiacutequete no cliente como tmpkrb5cc_UID (veja o exemplo 2) O comando klist exibe os tiacutequetes vaacutelidos de um usuaacuterio

O usuaacuterio que posuir um tiacutequete tem permissatildeo para acessar serviccedilos kerberizados na rede sem fazer logon separadamente no serviccedilo de rede

Single sign-onPara permitir que um serviccedilo de rede decirc acesso sem senha a um usuaacuterio o administrador precisa atribuir um Service Principal Name (SPN) ao serviccedilo O SPN identifica o serviccedilo dentro do ambiente AD O serviccedilo pede um tiacutequete de serviccedilo para o Service Principal ao KDC identifi-cando-se com seu TGT

O SPN compreende uma defi-niccedilatildeo de serviccedilo seguida por uma barra e o hostname completamente qualificado do servidor um siacutembolo de arroba e o domiacutenio

Figura 4 Depois de entrar no domiacutenio o Likewise cria uma conta de maacutequina para o computador Ubuntu no Active Directory

Figura 5 O GDM pede um nome para login na autenticaccedilatildeo Neste AD o nome eacute composto pelo nome do domiacutenio (EXAMPLE) um sinal + e o nome do usuaacuterio

copy Linux New Media do Brasil Editora Ltda

38 httpwwwlinuxmagazinecombr

CAPA | Likewise

As definiccedilotildees de serviccedilos incluem host ftp ou pop Se um usuaacuterio es-tabelecer uma conexatildeo SSH com outro computador membro de um AD gerenciado pelo Likewise o serviccedilo kerberizado apresentaraacute o TGT do usuaacuterio e pediraacute um tiacute-quete de serviccedilo ao KDC para por exemplo o SPN hostubuntuexam-pleorgEXAMPLEORG ndash isso pressupotildee que o cache local de tiacutequetes ainda natildeo tenha um tiacutequete O tiacutequete de serviccedilo conteacutem o ID do usuaacuterio que faz a requisiccedilatildeo e a chave da sessatildeo O Likewise Open criptograva isso com a chave do servidor e a arma-zena no cache de usuaacuterios como o TGT (exemplo 3)

O cliente SSH envia automati-camente o tiacutequete de serviccedilo crip-tografado e um timestamp tambeacutem criptografado para validar o sshd do autenticador Isso garante que cada requisiccedilatildeo de tiacutequete seja uacutenica enquanto assegura que o cliente re-almente natildeo possui a chave da ses-satildeo Sem o autenticador seria mais faacutecil para um agressor capturar um tiacutequete no traacutefego da rede e iniciar um ataque de repeticcedilatildeo

O servidor valida o tiacutequete de ser-viccedilo apresentado a ele Para isso ele faz referecircncia ao arquivo etckrb5keytab local Esse arquivo armazena a chave do servidor que o usuaacuterio utiliza para decifrar o tiacutequete de serviccedilo revelando assim a chave da sessatildeo O autenticador se baseia na chave da sessatildeo caso tenha sucesso o usuaacuterio eacute autenticado sem neces-sidade de senha (figura 6)

ConexatildeoO Likewise Open configura automa-ticamente clientes SSH preacute-existen-tes e outros clientes ao se juntarem ao domiacutenio permitindo que usem o Kerberos para se autenticarem no futuro No lado do servidor o Likewise adiciona as linhas

GSSAPIAuthentication yesGSSAPICleanupCredentials yes

ao arquivo de configuraccedilatildeo etcsshsshd_config O Likewise tambeacutem acrescenta as seguintes linhas para um cliente SSH

GSAPIAuthentication yesGSSAPIDelegateCredentials yes

A instruccedilatildeo GSSAPIDelegateCreden-tials passa o TGT para o servidor de des-tino Para todas as outras configuraccedilotildees o software utiliza a Generic Security Ser-vices API (API de serviccedilos geneacutericos de seguranccedila GSSAPI) uma interface ge-neacuterica para serviccedilos de seguranccedila como o Kerberos

Figura 6 O Likewise implementa o single sign-on por meio do Kerberos Os usuaacuterios natildeo precisam digitar uma senha para fazer logon

Exemplo 4 Montagem de compartilhamentos Samba

01 ltxml version=rdquo10rdquo encoding=rdquoUTF-8rdquogt02 ltpam_mountgt03 ltvolume user = ldquordquo04 server = ldquoSAMBASERVERrdquo05 mountpoint = ldquohomeEXAMPLE(USER)Documentrdquo06 path = ldquo(USER)rdquo07 fstype = ldquosmbfsrdquo gt08 ltpam_mountgt

Exemplo 3 Tiacutequetes no cache de credenciais

01 $ klist02 Ticket cache FILEtmpkrb5cc_156028219703 Default principal wane000EXAMPLEORG0405 Valid starting Expires Service principal06 081308 154829 081408 014830 krbtgtEXAMPLEORG EXAMPLEORG07 renew until 082008 15482908 081308 154830 081408 014830 SUSE$EXAMPLEORG09 renew until 082008 15482910 081308 154838 081408 014830 hostubuntuexampleorg11 renew until 082008 15482912 081308 154838 081408 014830 hostubuntuexampleorgEXAMPLEORG13 renew until 082008 154829

copy Linux New Media do Brasil Editora Ltda

39

| CAPALikewise

Linux Magazine 50 | Janeiro de 2009

LocalNa primeira vez em que um usuaacuterio do domiacutenio faz logon num cliente o Likewise Open usa o PAM (pam_lwidentityso) para criar diretoacuterios locais para esse usuaacuterio Alterna-tivamente o moacutedulo pam_mount pode montar diretoacuterios centrais do usuaacuterio num servidor remoto por SMBCIFS [5] Isso garante a todos os usuaacuterio o acesso a seus proacuteprios arquivos independentemente do cliente usado por eles no login O compartilhamento eacute definido por uma linha no arquivo etcsecuri-typam_mountconf que usa a palavra-chave volume

volume usuaacuterio sistema_de_arquivos servidor compartilhamento ponto_de_montagem opccedilotildees algoritmo caminho

A presenccedila de um curinga () no paracircmetro usuaacuterio faz o moacutedulo inserir o nome do usuaacuterio Sistema_de_arquivos pode ser smbfs ou cifs O servidor pode ser um IP ou um nome NetBIOS e compartilhamento pode usar o amp como curinga para o nome do usuaacuterio

Os trecircs uacuteltimos paracircmetros geral-mente natildeo satildeo necessaacuterios traccedilos satildeo aceitaacuteveis nesse caso montar o diretoacuterio Documentos ou o diretoacuterio home completo eacute questatildeo de gosto e depende de como a empresa orga-niza seus servidores centrais

Caso o ponto de montagem natildeo exista o moacutedulo pam_mount do PAM o cria se sua opccedilatildeo mkmountpoint 1 estiver presente Na versatildeo 029 o pam_mount armazena as configura-ccedilotildees num formato XML equivalente conforme mostra o exemplo 4

Antes das linhas sufficient na seccedilatildeo auth de etcpamd eacute possiacutevel inserir uma linha para o moacutedulo O exemplo 5 mostra uma configuraccedilatildeo nos arquivos common-auth e common-session no Ubuntu Para evitar a necessidade de os usuaacuterios digitarem suas senhas repetidamente a linha tr_first_pass = yes do arquivo etcsecuritypam_lwidentityconf ativa a opccedilatildeo para tentar novamente uma senha jaacute digitada antes

Versatildeo comercialAleacutem da versatildeo de coacutedigo aberto do Likewise a corporaccedilatildeo america-na Likewise Software oferece uma versatildeo comercial de seu software o Likewise Enterprise [6] A versatildeo comercial possui suporte a poliacuteticas de grupo no AD aleacutem das funciona-lidades oferecidas pela versatildeo livre o produto define aproximadamente 500 poliacuteticas padratildeo O Likewise Ad-ministrative Console eacute capaz de usar uma maacutequina Linux ou Unix para gerenciar registros do AD

Aleacutem disso tudo o Likewise En-terprise suporta desktops Linux que fazem referecircncia ao AD para obten-ccedilatildeo de configuraccedilotildees e restriccedilotildees Isso

ativa a implementaccedilatildeo de poliacuteticas estritas de seguranccedila A variante corporativa estaacute disponiacutevel gratuita-mente para fins de avaliaccedilatildeo ou por US$ 250 na versatildeo para servidores A empresa oferece dois niacuteveis de suporte comercial

Nova caraUma vez configurado o Likewi-se Open oferece o mesmo escopo funcional de uma combinaccedilatildeo de Samba Kerberos PAM e NSS Ele livra o administrador de vaacuterias tarefas monoacutetonas e repetitivas de configu-raccedilatildeo e suporta o gerenciamento de usuaacuterios centralizado e independente de plataforma O serviccedilo de autenti-caccedilatildeo por tiacutequetes do Kerberos e o single sign-on satildeo bocircnus

Quem se interessar pelo Likewi-se Open pode apreciar os recursos adicionais oferecidos pela versatildeo co-mercial ou os benefiacutecios do suporte profissional O uacutenico trabalho ma-nual que resta para o administrador eacute o gerenciamento centralizado dos diretoacuterios dos usuaacuterios

Mais informaccedilotildees

[1] Likewise Open httpwwwlikewisesoftwarecomproductslikewise_open

[2] Walter Neu ldquoDomando os catildees do infernordquo httplnmcombrarticle2424

[3] Kerberos MIT httpwebmitedukerberos

[4] Padratildeo Hieraacuterquico de Arquivos (FHS) httpwwwpathnamecomfhs

[5] Montagem de diretoacuterios home com PAM httppam-mountsourceforgenet

[6] Likewise Enterprise httpwwwlikewisesoftwarecomproductslikewise_enterprise

Exemplo 5 Configuraccedilatildeo do pam_mount

01 etcpamdcommon-auth02 auth required pam_mountso03 auth sufficient libsecuritypam_lwidentityso04 auth requisite pam_unixso nullok_secure try_first_pass05 auth optional pam_smbpassso migrate missingok0607 etcpamdcommon-session08 session optional pam_mountso09 auth sufficient libsecuritypam_lwidentityso10 session required pam_unixso

copy Linux New Media do Brasil Editora Ltda

40 httpwwwlinuxmagazinecombr

Serviccedilo RDP Linux para clientes de terminal Windows

O manda-chuva do terminal

O xrdp ajuda os seus clientes de terminal Windows a se conectarem ao Linuxpor Kenneth Hess

A conexatildeo de desktops remotos do Windows no Linux ge-ralmente consome bastante

banda da rede eacute insegura e difiacutecil de configurar E se um sistema Windows pudesse se conectar a um sistema Linux tatildeo facilmente quanto o faz com outro sistema Windows ndash utili-zando para isso o mesmo aplicativo usado para conectar originalmente ao Windows

O xrdp eacute uma implementaccedilatildeo de coacutedigo aberto do RDP (Remote Desktop Protocol ndash ou Protocolo de Ambiente de Trabalho Remoto na

traduccedilatildeo em portuguecircs) o protoco-lo usado nos serviccedilos de terminal do Windows para conexatildeo nativa a desktops Windows O Pacote xrdp fornece a funcionalidade RDP bem como um servidor graacutefico que seja capaz de aceitar conexotildees do rdesktop [1] e de clientes de serviccedilos de ter-minais Windows

Uma vez conectado e autenticado no servidor RDP Linux o usuaacuterio remoto teraacute disponiacutevel um ambiente de trabalho Linux em modo graacutefico E o melhor eacute que natildeo eacute necessaacuterio executar um servidor graacutefico na maacute-quina com Windows nem eacute preciso exportar a tela do Linux para o com-putador com Windows

Configurar o servidor RDP no Linux eacute faacutecil e leva apenas alguns minutos Para os usuaacuterios novatos de Linux ou os administradores de sistemas Windows segue a lista de requisitos necessaacuterios para fazer o sistema funcionar uma conta de usuaacuterio padratildeo

na maacutequina Linux acesso remoto ou ao console do

servidor Linux acesso com privileacutegios administrati-

vos (de root) no servidor Linux

Tambeacutem ajuda se vocecirc souber al-guma coisa sobre RDP e sobre a otimizaccedilatildeo da configuraccedilatildeo de um cliente RDP

Instalaccedilatildeo e configuraccedilatildeoPara nos certificarmos de que esta-mos usando a versatildeo mais recente do xrdp vamos instalaacute-lo a partir do coacutedigo-fonte Haacute pacotes do pro-grama para algumas distribuiccedilotildees o que pode facilitar a instalaccedilatildeo e a integraccedilatildeo agrave distribuiccedilatildeo Poreacutem o objetivo deste artigo eacute possibili-tar a instalaccedilatildeo em qualquer sis-tema Assim baixe o coacutedigo-fonte do pacote xrdp [2] descompacte-o e compile-o

$ tar zxvf xrdp-041targz$ cd xrdp-041$ make

Em seguida instale-o usando pri-vileacutegios de root

make install

Os arquivos executaacuteveis scripts e bibliotecas seratildeo instalados no diretoacuterio usrlocalxrdp e os arquivos de con-figuraccedilatildeo no diretoacuterio etcxrdp

A documentaccedilatildeo do aplicativo eacute um pouco obscura sobre o que fazer a seguir Embora tenhamos decidido no comeccedilo natildeo mudar nenhum dos paracircmetros nos arquivos sesmanini e xrdpini disponiacuteveis em etcxrdp e tenhamos abordado a situaccedilatildeo

CA

PA

Figura 2 Forneccedila seu usuaacuterio e sua senha do sistema Linux

Figura 1 Janela de conexatildeo com o desktop remoto

copy Linux New Media do Brasil Editora Ltda

41

| CAPAxrdp

como um administrador de sistemas Windows assumindo que as coisas iriam funcionar sem necessidade de muitos ajustes agrave configuraccedilatildeo nesse ponto essa abordagem comeccedila a se tornar frustrante

Uma vez com o sistema instala-do os seguintes comandos devem ser executados como root

cd usrlocalxrdp cp xrdp_controlsh etcinitdxrdp_control

Em seguida em distribuiccedilotildees derivadas do Red Hat os seguintes comandos se aplicam

chkconfig --add xrdp_control

chkconfig xrdp_control on service xrdp_control start

Jaacute em distribuiccedilotildees derivadas do De-bian esses satildeo os comandos

update-rcd xrdp_control defaults update-rcd xrdp_control start 80 3 4 stop 0 1 6 etcinitdxrdp_control start

O script xrdp_controlsh controla os serviccedilos de ativaccedilatildeo desativaccedilatildeo e reinicializaccedilatildeo do pro-grama Ao copiar o script para o diretoacuterio etcinitd pode-se retirar a ex-tensatildeo sh por motivos esteacuteticos ndash nenhum ou-tro script desse diretoacuterio possui essa extensatildeo em-bora todos sejam scripts de shell

Em sistemas baseados em FedoraRed Hat o comando chkconfig eacute um utilitaacuterio para atualizar e buscar informaccedilotildees sobre o niacutevel de execuccedilatildeo para serviccedilos de sistema ma-nipulando os vaacuterios links simboacutelicos em etcinitd para ali-viar um pouco os administradores de

sistema da tarefa tediosa de editar os links simboacuteli-cos e a necessi-dade de manipu-lar esses serviccedilos manualmente

Haacute pacotes para esse apli-cativo disponiacute-veis para outras distribuiccedilotildees como Debian e Ubuntu mas o correto eacute usar a ferramenta ade-quada para a sua distribuiccedilatildeo

Assim para criar um novo serviccedilo de inicializaccedilatildeo copie seu script de controle para etcinitd confor-me mostrado acima e entatildeo use o comando chkconfig para ativaacute-lo A linha chkconfig xrdp_control on de-fine os niacuteveis de execuccedilatildeo (runlevels) do serviccedilo (ver tabela 1) Por exemplo o comando chkconfig --level 35 xrdp_control configura o xrdp_con-trol para funcionar nos niacuteveis de execuccedilatildeo 3 e 5 O uacuteltimo comando na listagem acima inicia os serviccedilos sesman e xrdp

Para se conectar ao serviccedilo RDP no servidor Linux a partir de um PC com Windows basta fazer exatamente como se faria com um servidor Win-dows como mostra a figura 1

O cliente RDP abre uma nova janela conforme ilustrado na figura 2 solicitando o nome de usuaacuterio e a senha que satildeo aqueles configu-rados no servidor Linux Forneccedila um nome e uma senha vaacutelidos e clique em OK Mesmo que a maacute-quina Linux esteja configurada para usar um domiacutenio do serviccedilo Active Directory ainda seraacute preciso adicio-nar cada usuaacuterio aos sistemas Linux que se desejar acessar via RDP Para fazer isso crie primeiramente um grupo para todos os usuaacuterios do serviccedilo RDP

Tabela 1 Niacuteveis de execuccedilatildeo no Linux

0 Desligar

1 Modo monousuaacuterio

2 Multiusuaacuterio sem NFS

3 Multiusuaacuterio completo

4 Natildeo utilizada

5 X11 (graacutefico)

Detalhe haacute distribuiccedilotildees que utilizam o niacutevel 4 como ambiente graacutefico semelhante ao niacutevel 5

Figura 3 Registro do gerenciador de sessatildeo da conexatildeo xrdp

Figura 4 Uma conexatildeo com o desktop pronta para usar

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

42 httpwwwlinuxmagazinecombr

CAPA | xrdp

groupadd rdpusers useradd -g rdpusers fulano passwd fulano

Caso o usuaacuterio jaacute exista no sis-

tema use o comando usermod para adicionaacute-lo ao grupo de usuaacuterios do serviccedilo RDP

usemod -G rdpusers fulano

Embora natildeo seja explicitamente necessaacuterio para o acesso um grupo especial simplifi ca a administraccedilatildeo do sistema Forneccedila agora o nome do usuaacuterio criado e a sua senha e entatildeo clique em OK

A tela mostrada na figura 3 de-veraacute aparecer Essa eacute a janela de registro do gerenciador de sessotildees da conexatildeo que ilustra a negocia-ccedilatildeo entre o cliente e o servidor Perceba que o gerenciador de ses-sotildees conecta primeiramente agrave porta associada ao serviccedilo RDP e entatildeo agrave porta de um serviccedilo VNC para entatildeo apresentar o desktop Linux a vocecirc A figura 4 mostra um desktop CentOS 5

Quando desconectando de uma sessatildeo RDP em Linux vocecirc veraacute a tela mostrada na fi gura 5 Perceba que somente duas accedilotildees estatildeo dis-poniacuteveis Encerrar sessatildeo atual e Cancelar que satildeo recursos padratildeo de conexotildees VNC remotas

O servidor Linux executa os progra-mas xrdp e sesman e fi ca aguardando co-nexotildees RDP Assim que um cliente de serviccedilos de terminais Windows tenta se conectar ao servidor RDP o servidor e o cliente negociam um niacutevel de criptografi a trocam chaves e veri-fi cam quais recursos estatildeo disponiacuteveis A partir daiacute o cliente escolhe a quantidade de cores e a resoluccedilatildeo da tela que seraacute usada na sessatildeo

Se o usuaacuterio fornecer um nome e uma senha no aplicativo cliente a autenticaccedilatildeo eacute iniciada Caso con-traacuterio o usuaacuterio seleciona o moacutedu-lo de uma lista do tipo drop-down e fornece um usuaacuterio e uma senha na tela de login conforme ilustra a fi gura 6

O moacutedulo libvnc eacute carregado e uma conexatildeo TCP eacute feita para o endereccedilo 127001 ou para o en-dereccedilo IP especifi cado no arquivo etcxrdpxrdpini As credenciais de login do usuaacuterio a resoluccedilatildeo da tela e a quantidade de cores satildeo fornecidas ao aplicativo sesman para fi ns de autenticaccedilatildeo Se o sesman

encontrar uma sessatildeo ativa com a resoluccedilatildeo e a quantidade de cores especifi cadas ele retor-na essa tela ao usuaacute-rio Caso contraacuterio ele inicia uma nova instacircncia xvnc com as especifi caccedilotildees de am-biente do usuaacuterio

Conclusotildees O xrdp eacute faacutecil de ins-talar confi gurar cus-tomizar e usar E ndash o que eacute melhor ndash natildeo eacute

necessaacuterio experiecircncia em Linux para trabalhar com essa poderosa ferra-menta Como natildeo haacute o que instalar no cliente Windows natildeo daacute para se complicar com o xrdp

Muito embora este artigo natildeo mostre qualquer tipo de anaacutelise ex-tensiva de desempenho de rede ou uso de banda com esse aplicativo como se trata de RDP eacute sabido que a performance comeccedila a cair quando o nuacutemero de usuaacuterios simultacircneos conectados se aproxima da marca de 25 Contudo vale a pena conhe-cer o xrdp e integraacute-lo ao seu arse-nal de ferramentas independentes de plataforma

Sobre o autor Ken Hess eacute editor de material teacutecnico e jornalista freelance Ele escreve sobre uma grande variedade de temas envolvendo sistemas de coacutedigo aberto entre eles Li-nux bancos de dados e virtualizaccedilatildeo Agradecimentos especiais a Jay Sorg do projeto xrdp e a Matt Chapman do proje-to rdesktop pela ajuda no desenvolvimen-to deste artigo

Mais informaccedilotildees

[1] rdesktop httpwwwrdesktoporg

[2] xrdp httpxrdpsourceforgenet

Figura 5 Janela de fi nalizaccedilatildeo de sessatildeo do VNC

Figura 6 Tela de login do xrdp

copy Linux New Media do Brasil Editora Ltda

43

| CAPAxrdp

Linux Magazine 50 | Dezembro de 2008

SE

CcedilAtilde

O

pocket_atualizadoindd 61 261108 142709

copy Linux New Media do Brasil Editora Ltda

44 httpwwwlinuxmagazinecombr

A possibilidade de realizar uma certa tarefa num momento especiacutefico ou em intervalos

regulares eacute obrigatoacuteria para adminis-tradores de sistemas O cron daemon original oferece um meacutetodo faacutecil para agendar tarefas em sistemas baseados em Unix Embora o Cron tenha recebido diversas melhorias ao longo dos anos suas versotildees mais recentes ainda satildeo projetadas para agendamentos muito simples Administradores que precisam de algo minimamente incomum satildeo obrigados a criar scripts ou a incluir os recursos de que precisam em um dos scripts iniciados pelo Cron

Imagine quanto tempo seria eco-nomizado se natildeo fosse mais neces-saacuterio criar e alterar esses scripts ou ter qualquer outro trabalho para fazer com que os programas rea-jam a condiccedilotildees de erro e sejam executados na exata hora em que deveriam Vaacuterios produtos comer-

ciais oferecem esse recurso mas podem significar uma mordida no orccedilamento de TI Felizmente o mundo do Coacutedigo Aberto tambeacutem oferece soluccedilotildees de agendamento aleacutem do Cron

Assim como em qualquer software de agendamento a unidade primaacuteria eacute o job ou tarefa que geralmente eacute um script ou programa iniciado pelo software de agendamento Em vaacuterios casos o Cron eacute suficiente para suprir os requisitos mais baacutesicos de agen-damento tais como executar uma tarefa uma vez por dia (becapes por exemplo) ou tarefas que precisem ser executadas em intervalos mais frequumlentes menos frequumlentes ou em datas especiacuteficas

Poreacutem quando comeccedilamos a lidar com dependecircncias de algum tipo rapidamente eacute possiacutevel perceber as limitaccedilotildees do Cron ndash por exemplo se for necessaacuterio iniciar um progra-ma especiacutefico apoacutes um certo evento

Haacute casos de verdadeiras seacuteries de co-mandos que precisam ser executados em ordem e precisam todos ter su-cesso ndash se um dos comandos falhar a execuccedilatildeo dos seguintes causaria grandes problemas Nem as versotildees mais novas do Cron conseguem li-dar com isso principalmente se for necessaacuterio iniciar uma tarefa jaacute no meio da cadeia de comandos

Muitas tarefas precisam ser ge-renciadas em muacuteltiplas maacutequinas entatildeo um bom software de agen-damento permite que se gerencie todas as maacutequinas a partir de um ponto central inicie tarefas remo-tamente e assim por diante Para distribuir crontabs para essas maacutequi-nas remotas pode-se usar o Rsync mas isso rapidamente se torna um pesadelo administrativo quando a configuraccedilatildeo eacute diferente ao longo das maacutequinas ou quando as tare-fas agraves vezes precisam ser iniciadas manualmente ou ainda quando haacute

CA

PA

O agendador Open Source Job Scheduler

Muito aleacutem do CronPlanejar e agendar tarefas computacionais pode exigir muito trabalho principalmente se abranger muacuteltiplas maacutequinas Conheccedila uma ferramenta que facilita muito essa aacutereapor James Mohr

copy Linux New Media do Brasil Editora Ltda

45

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

outras tarefas que natildeo fazem parte do Cron

MultiplataformaApesar de ser possiacutevel instalar ver-sotildees abertas do Cron no Windows lidar com diferentes sistemas ope-racionais causa ainda mais proble-mas Por exemplo alguns dialetos de Unix natildeo suportam um arquivo etccrontab central entatildeo eacute preciso criar um arquivo para cada usuaacuterio O Cron era uma boa ferramenta nessa eacutepoca e geralmente ainda eacute mas as necessidades de muitas empresas jaacute superam suas funcionalidades

As limitaccedilotildees do Cron natildeo pas-saram despercebidas Haacute produtos comerciais que custam pequenas fortunas e costumam ser licenciados com base no nuacutemero de servidores ou de scripts a serem iniciados

Por sua vez os problemas dos pro-dutos comerciais tambeacutem natildeo passa-ram despercebidos pela comunida-de do Coacutedigo Aberto Uma soluccedilatildeo surpreendente eacute o Open Source Job Scheduler desenvolvido pela alematilde SOS (Software- und Organisations-Service) Haacute versotildees para Linux So-laris HP-UX (PA-RISC IA64) AIX e Windows Ele tambeacutem suporta vaacuterios bancos de dados incluindo DB2 Oracle MS SQL Server PostgreSQL e MySQL

O software adota um esquema de duplo licenciamento pela GPL e a Guaranteed License (Licenccedila Ga-rantida) Trata-se do mesmo coacutedigo com funcionalidades atualizaccedilotildees e coacutedigo-fonte idecircnticos

A receita da SOS natildeo proveacutem da venda de seu produto mas dos serviccedilos e do suporte Poreacutem estra-nhamente a empresa natildeo anuncia seu produto ndash nem seus serviccedilos ndash da forma tradicional Ao demonstrar o produto o objetivo natildeo eacute convencer clientes potenciais mas mostrar-lhes o que o produto pode fazer e deixar que eles decidam se ele supre suas necessidades

A versatildeo comercial tambeacutem oferece uma ldquopessoa responsaacutevelrdquo para cada chamado de serviccedilo com tempos de resposta garantidos e pedidos de re-cursos recebem maior prioridade de implementaccedilatildeo Aleacutem disso essa ver-satildeo natildeo possui as restriccedilotildees da GPL entatildeo pode ser embutida em outros aplicativos (comerciais ou natildeo) sem que este precise aderir agrave GPL

Diferente da maioria dos softwa-res comerciais e de coacutedigo aberto a SOS oferece garantia limitada de dois anos e um acordo de indeni-zaccedilatildeo Segundo seu diretor a em-presa se sente obrigada a fornecer ao cliente um retorno por seu pa-gamento e isso tambeacutem se estende a discrepacircncias entre o produto e a documentaccedilatildeo

EstruturaO componente central do pacote eacute o mecanismo de agendamento de tarefas que roda em cada uma das maacutequinas que as agendaratildeo Esse meacute-todo eacute diferente de executar a tarefa pode-se ter um agendador em cada

maacutequina com todos agindo como escravos de um central mas tam-beacutem eacute possiacutevel usar um agendador completo em cada uma delas Esse mecanismo pode ser expandido para permitir o balanceamento de carga por meio de muacuteltiplos servidores

Um aspecto importante a ser considerado eacute chamado de order (pedido) que consiste em um sinal passado entre tarefas Dependendo de suas configuraccedilotildees as tarefas natildeo tecircm permissatildeo de iniciar ateacute rece-berem seu pedido

Na forma mais simples pedidos satildeo como o bastatildeo numa corrida de revezamento entregues por cada tarefa para a seguinte Aleacutem disso eacute possiacutevel configurar pedidos com horas especiacuteficas de iniacutecio para que sejam gerados automaticamente pelo sistema no momento especificado e depois a cadeia respectiva possa se iniciar

Note que para conseguir reagir a um pedido uma tarefa precisa ser configurada para aceitaacute-lo mas o pedido soacute pode ser associado a uma

Figura 1 Janela do editor graacutefico do agendador de tarefas

copy Linux New Media do Brasil Editora Ltda

46 httpwwwlinuxmagazinecombr

CAPA | Agendamento

cadeia de tarefas e natildeo a uma ta-refa especiacutefica Ou seja o pedido eacute passado de tarefa para tarefa dentro da cadeia mas eacute associado somente agrave cadeia Se for desejaacutevel que uma uacutenica tarefa se inicie num momento especiacutefico por exemplo isso pode ser feito dentro da proacutepria tarefa Outro componente importante satildeo os Hot Folders (pastas quentes) que seatildeo di-retoacuterios monitorados pelo agendador em busca de alteraccedilotildees tais como a alteraccedilatildeo ou criaccedilatildeo de tarefas

TarefasTarefas podem ser configuradas a partir da interface graacutefica do editor do agendador (figura 1 chamado aqui de ldquoeditor de tarefasrdquo) ou por arqui-vos XML editados manualmente O editor de tarefas eacute um aplicativo em Java que configura vaacuterias tarefas ca-deias e outros aspectos do sistema Todas as informaccedilotildees de configura-

ccedilatildeo do sistema satildeo armazenadas em arquivos XML e basta abrir o arquivo XML respectivo no editor de tarefas para fazer alteraccedilotildees Poder usar o Vim em arquivos de configuraccedilatildeo eacute mais que uma becircnccedilatildeo em casos de alteraccedilotildees em massa

Os arquivos XML podem ser copiados para maacutequinas remotas e salvos via FTP diretamente a partir do editor de tarefas Quando ater-rissam num Hot Folder os arquivos ficam imediatamente disponiacuteveis para o mecanismo do agendador na maacutequina remota

A interface graacutefica do editor de tarefas natildeo eacute tatildeo intuitiva quanto poderia e vaacuterios campos parecem misteriosos a princiacutepio Como a documentaccedilatildeo deixa a desejar fal-tam explicaccedilotildees sobre muitos desses campos Em alguns casos a docu-mentaccedilatildeo dos arquivos XML ajuda a tirar as duacutevidas

Apesar de as informaccedilotildees de con-figuraccedilatildeo serem armazenadas em arquivos XML por padratildeo eacute pos-siacutevel configurar o agendador para usar diversos bancos de dados dife-rentes Essas tarefas satildeo chamadas de ldquogerenciadasrdquo e cada agendador instalado pode ser configurado para acessar as tarefas no banco de da-dos para natildeo ser necessaacuterio copiar os arquivos manualmente

A operaccedilatildeo cotidiana do siste-ma eacute realizada pela sua interface graacutefica (chamada neste artigo de ldquointerface de operaccedilatildeordquo) que eacute acessada por um navegador e per-mite o gerenciamento das tarefas a partir de qualquer maacutequina Com essa interface eacute possiacutevel natildeo apenas monitorar as tarefas mas tambeacutem iniciaacute-las paraacute-las tratar seus erros e muitas outras funccedilotildees

O agendador de tarefas tambeacutem oferece uma API que permite o ge-renciamento e o controle externos de tarefas A API suporta vaacuterias lin-guagens incluindo Perl VBScript JavaScript e Java Surpreendente-mente natildeo haacute suporte a PHP ape-sar da possibilidade de se gerenciar tarefas a partir de um navegador web e da documentaccedilatildeo de scripts PHP de exemplo

InstalaccedilatildeoOs exemplos deste artigo foram feitos com a versatildeo 134 para Li-nux que pode ser baixada do site do Job Scheduler no SourceForge [1] Se houver intenccedilatildeo de se usar um banco de dados MySQL como neste artigo note que o programa natildeo fornece um driver JDBC para esse banco embora haja drivers para Oracle e outros bancos O driver JDBC para MySQL pode ser baixado diretamente do site do MySQL [2] Basta digitar o caminho do arquivo jar apropriado durante a instalaccedilatildeo

Antes de comeccedilar eacute recomen-daacutevel ler o guia de instalaccedilatildeo em Figura 2 Digitaccedilatildeo do coacutedigo-fonte diretamente no editor de tarefas

copy Linux New Media do Brasil Editora Ltda

47

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

PDF incluiacutedo no pacote Aleacutem dis-so haacute vaacuterios outros PDFs no site da empresa [3] mais aprofundados em diversos toacutepicos Fique ciente ateacute para obter as informaccedilotildees mais baacutesicas na documentaccedilatildeo eacute preciso ser um tanto familiarizado com a programaccedilatildeo orientada a objetos e XML pois a documentaccedilatildeo natildeo fornece qualquer introduccedilatildeo a esses toacutepicos Aleacutem disso ela natildeo eacute bem organizada entatildeo saiba que seraacute preciso procurar bastante Apesar de ser volumosa a documentaccedilatildeo natildeo eacute faacutecil de usar o que eacute algo que a empresa pretente melhorar

No Linux a instalaccedilatildeo ocorre por meio de um instalador em Java e se for feita por um usuaacuterio nor-mal o padratildeo eacute os arquivos serem abrigados em $HOMEscheduler Se for instalado como root o diretoacuterio do programa eacute usrlocalschedu-ler Apoacutes instalar o produto haacute um arquivo README que recomenda que o programa natildeo seja instalado como root mas natildeo haacute menccedilatildeo a isso no guia de instalaccedilatildeo e con-figuraccedilatildeo Para evitar problemas potenciais vamos instalaacute-lo como usuaacuterio normal

Durante a instalaccedilatildeo satildeo pedidos o tipo do banco de dados e infor-maccedilotildees da conexatildeo Natildeo fica claro se o campo ldquodatabase parametersrdquo deve receber os paracircmetros de co-nexatildeo apoacutes o banco de dados estar em execuccedilatildeo ou os paracircmetros de conexatildeo para criaccedilatildeo do banco de dados Infelizmente recomenda-se criar um banco de dados e um usuaacuterio para o programa usar mas isso soacute eacute mencionado apoacutes todas as etapas de instalaccedilatildeo Criar o banco de dados manualmente e conferir privileacutegios do banco antes de iniciar a instalaccedilatildeo jaacute resolve

A instalaccedilatildeo eacute relativamente in-tuitiva mas leva alguns minutos para criar e preencher as tabelas do banco de dados Para instalar o Scheduler em muacuteltiplas maacutequinas com os mes-

mos paracircmetros haacute a opccedilatildeo de criar um script automaticamente ao final da primeira instalaccedilatildeo

IniciandoIndependentemente de a instala-ccedilatildeo ocorrer sob o root ou um usuaacute-rio normal eacute necessaacuterio iniciar o agendador manualmente Seu controle eacute feito como num script rc comum

$HOMEschedulerbinjobschedulersh start$HOMEschedulerbinjobschedulersh stop

Para iniciar o Scheduler auto-maticamente na inicializaccedilatildeo re-comenda-se criar um usuaacuterio espe-ciacutefico para ele e depois um script rc que use o comando su para se tornar esse usuaacuterio e iniciar o programa Se houver necessidade de tarefas serem executadas sob o root ou ou-tro usuaacuterio com mais privileacutegios eacute possiacutevel configurar um ambiente sudo apropriado

Novas tarefasPara criar tarefas pode-se ou edi-tar os arquivos XML diretamente ou pelo editor de tarefas No Li-nux execute o script jobeditorsh localizado por padratildeo em usrlo-calschedulerbin ou $HOMEsche-dulerbin

Como exemplo considere a ta-refa tiacutepica de criaccedilatildeo de um beca-pe da configuraccedilatildeo do sistema Por ora vamos supor que isso seja feito diariamente com o script usrbinbecapesh

Primeiramente inicie o editor de tarefas e selecione New | Hot Folder Element | Job (figura 1) No primei-ro formulaacuterio comece digitando as informaccedilotildees baacutesicas de sua tarefa Para este exemplo digite o nome Becape das configuraccedilotildees no campo Job Title adicione uma descriccedilatildeo ou deixe em branco

No painel esquerdo clique em Execute para digitar os detalhes sobre o programa ou script que se deseja iniciar Como o objetivo eacute executar um script externo selecione o botatildeo

Figura 3 Interface de operaccedilatildeo do Job Scheduler

copy Linux New Media do Brasil Editora Ltda

48 httpwwwlinuxmagazinecombr

CAPA | Agendamento

Run executable e digite o caminho completo do script referido Nesse ponto tambeacutem eacute possiacutevel definir masi paracircmetros a ser passados para o script Por exemplo se o becape comprimir os arquivos armazenados pode ser interessante acrescentar um -c a esse campo

Aleacutem disso pode-se incluir os passos individuais de execuccedilatildeo se-lecionando-se o botatildeo Script e o tipo de coacutedigo do programa depois digitando o coacutedigo-fonte na caixa apropriada Note que isso eacute mais que o nome de um script e pode incluir estruturas de programaccedilatildeo baseadas na linguagem seleciona-da (figura 2)

Para salvar a tarefa pressione o botatildeo Save ou escolha Save no menu File Na primeira vez em que o ar-quivo eacute salvo eacute preciso digitar um nome para ele Para isso navegue ateacute o diretoacuterio configlive e salve o arquivo como becape assim

a extensatildeo xml seraacute adicionada au-tomaticamente

Via navegadorComo o arquivo foi salvo no dire-toacuterio live ele fica imediatamente visiacutevel para o sistema Esse diretoacuterio eacute preacute-definido como um Hot Folder que o sistema lecirc regularmente Nesse ponto a tarefa natildeo foi agendada mas apenas adicionada ao sistema Para iniciar a tarefa eacute preciso executar a interface de operaccedilatildeo apontando seu navegador para httplocal-host4444

Em conexotildees pelo navegador o Scheduler exibe uma interface semelhante agrave da figura 3 Para ver os detalhes da tarefa decirc um duplo clique na tarefa de becape na colu-na agrave esquerda Para executar a tarefa imediatamente clique no botatildeo Job menu e selecione Start task now

Por ser muito faacutecil iniciar o script pela linha de comando isso natildeo eacute

nada espetacular Eacute possiacutevel voltar ao editor de tarefas e clicar na en-trada Run Time no painel esquerdo e selecionar uma hora para a exe-cuccedilatildeo da tarefa Para isso clique em Everyday (todos os dias) e de-fina um novo periacuteodo clicando no botatildeo new Period Em Start Time digite algo como 0900 no campo Single Start Depois clique no bo-tatildeo Save e essa nova configuraccedilatildeo seraacute ativada ndash a tarefa teraacute iniacutecio todos os dias agraves 9 horas

Ateacute agora a uacutenica vantagem do programa sobre o Cron eacute uma inter-face amigaacutevel ndash mas isso eacute apenas o comeccedilo Quando comeccedilamos a conhecer as cadeias de tarefas vemos o poder do agendamento de tarefas

BecapePrimeiro suponha que vocecirc tenha criado uma segunda tarefa que faccedila um becape do banco de dados que deve ser executada imediatamente apoacutes o fim do becape das configu-raccedilotildees Uma alternativa eacute criar um uacutenico script que faccedila primeiro o becape das configuraccedilotildees e imedia-tamente depois inicie o do banco de dados Poreacutem cadeias de tarefas satildeo uacuteteis em vaacuterias situaccedilotildees mais complexas em que natildeo eacute possiacutevel simplesmente lanccedilar matildeo de um script shell as quais seratildeo discutidas mais adiante

Assim como na primeira tarefa crie um novo elemento no Hot Folder mas selecione Job Chains Digite o nome da cadeia (Chain Name) e caso se deseje tambeacutem um tiacutetulo (Title) Como cada ele-mento de uma cadeia eacute chamado de noacute (Node) eacute preciso adicionar um New Chain Node a seguir clicando no botatildeo respectivo Caso o nome da tarefa seja conhecido pode-se digitaacute-lo manualmente ou usar o botatildeo Browse para procuraacute-la

No campo State eacute possiacutevel definir um estado para essa etapa ou noacute

Figura 4 As dependecircncias entre as tarefas podem ser exibidas com uso do Job Chain Illustration

copy Linux New Media do Brasil Editora Ltda

49

| CAPAAgendamento

Linux Magazine 50 | Janeiro de 2009

Definido estados eacute possiacutevel criar um fluxo mais complexo para as tarefas Por exemplo pode-se criar um esta-do chamado Erro e se alguma tarefa anterior apresentar um erro pula-se imediatamente para a tarefa definida com esse estado pulando todas as outras Aleacutem disso eacute possiacutevel exe-cutar diferentes tarefas de erro para cada uma das vaacuterias etapas

Mais cadeiasEmbora criar uma cadeia de tare-fas que consista em apenas uma uacutenica tarefa possua certas vanta-gens natildeo pare nesse ponto Como mencionado eacute melhor uma tarefa de becape constituiacuteda por duas etapas entatildeo vamos criar uma segunda cadeia com a tarefa de becape do banco de dados e con-figuraacute-la de forma semelhante agrave segunda tarefa Em nosso exem-plo definimos o primeiro noacute com o estado Iniacutecio e o segundo com o estado Fim embora isso natildeo seja necessaacuterio

Ao se clicar no botatildeo Save eacute mostrada a nova cadeia na aba Job Chains da interface de operaccedilatildeo Marcar a caixa Show Jobs exibe as tarefas individuais que compotildeem a cadeia Um duplo clique na ca-deia abre o painel de detalhes no lado direito como ocorreu com a tarefa uacutenica

Nesse ponto a cadeia de tarefas ainda natildeo seraacute executada porque precisa de um pedido que pode ser inserido manualmente no menu Job | Add Order Eacute mostrada uma nova janela que permite a definiccedilatildeo de vaacuterias caracteriacutesticas do pedido como ID horaacuterio de iniacutecio e ateacute estado da cadeia Neste exemplo apenas deixe tudo em branco e o sistema criaraacute sozinho uma ID de pedido

Se natildeo tiver sido definida uma condiccedilatildeo a cadeia inicia imedia-tamente poreacutem pode ser definida uma fatia de tempo (Time Slot) para qualquer uma dessas tarefas e

o Scheduler esperaria a hora certa para iniciar a tarefa

Note que as tarefas precisam ser capazes de aceitar pedidos para reagir a eles Esta etapa eacute feita na janela de configuraccedilatildeo para as ta-refas individuais Na janela Main Options haacute um botatildeo On Order que precisa ser definido como Yes caso contraacuterio o pedido natildeo ini-ciaraacute a tarefa

Ateacute aqui iniciamos tudo manu-almente Como precisamos definir um pedido para iniciar a cadeia de tarefas obviamente eacute necessaacuteria uma forma de criar pedidos dinami-camente Uma maneira seria criar um pedido numa hora especiacutefica o que por sua vez aciona a cadeia de tarefas Como se pode esperar isso eacute feito pelo menu New | Hot Folder Element | Order Apoacutes dar um nome ao pedido e selecionar a janela Job Chains selecione a cadeia especiacutefica a ser associada a esse pedido Note que um pe-dido soacute pode ser associado a uma uacutenica cadeia Depois defina um novo horaacuterio (Time Period) e um Single Start agraves 0900 Para ativar imediatamente as alteraccedilotildees eacute preciso armazenaacute-la no diretoacuterio configlive

Ao retornar agrave interface de opera-ccedilatildeo pode-se ver que agora haacute um pedido associado agrave cadeia criada Abaixo do pedido uma entrada next start (proacuteximo iniacutecio) mostra a data e hora em que o pedido iniciaraacute Como jaacute passou das 900 am neste exemplo a data eacute amanhatilde Se for usado outro horaacuterio de iniacutecio como o dia primeiro o proacuteximo iniacutecio se-ria nessa data

ControlePara definir o periacuteodo das tarefas cadeias e pedidos eacute possiacutevel esta-belecer um horaacuterio para o iniacutecio de uma tarefa assim como um in-tervalo entre execuccedilotildees (a cada 12 horas por exemplo) Essa segunda

opccedilatildeo natildeo eacute uacutetil no caso de cadeias em que as tarefas precisem seguir uma determinada ordem Poreacutem eacute possiacutevel definir um pedido que seja iniciado diariamente agraves 700 que por sua vez inicie uma cadeia

Haacute tambeacutem definiccedilotildees de tempo como ldquosegundo domingo de cada mecircsrdquo ldquouacuteltimo dia do mecircsrdquo ou ldquoso-mente 8janeiro e 16fevereirordquo

Horaacuterios e intervalos preacute-estabe-lecidos satildeo uacuteteis mas nem sempre eacute possiacutevel saber a priori quando uma tarefa precisaraacute ser realizada No caso daquelas que dependem da existecircncia ou inexistecircncia de algum arquivo eacute possiacutevel definir watch directories (diretoacuterios a ser observados) com regras que aceitam ateacute expressotildees regulares (figura 4)

Pedido proacuteprioDepois de superar as dificuldades iniciais nota-se que o Open Source Job Scheduler eacute um bom produto Com intimidade ele se torna faacutecil de configurar e administrar

A SOS tambeacutem presta um oacutetimo serviccedilo Identifiquei um bug e enviei um patch para um arquivo jar que foi disponibilizado por eles no ser-vidor em menos de um dia Ateacute em uma rede pequena o Open Source Job Scheduler oferece recursos muito uacuteteis Em instalaccedilotildees maiores ele eacute quase indispensaacutevel

Mais informaccedilotildees

[1] Open Source Job Scheduler httpjobschedulersourceforgenet

[2] Driver JDBC para MySQL httpwwwmysqlcomproductsconnector

[3] Software- und Organisations-Service GmbH httpwwwsos-berlincomscheduler

copy Linux New Media do Brasil Editora Ltda

50 httpwwwlinuxmagazinecombr

Faccedila belos graacuteficos via navegador com a API do Google Chart

Graacuteficos via webA API do Google Chart permite desenhar graacuteficos planilhas mapas e coacutedigos de barras personalizados atraveacutes de uma interface web simplespor Martin Streicher

Se uma imagem vale mais que mil palavras um graacutefico deve ser algo semelhante a uma no-

vela Em apenas um piscar de olhos um graacutefico pode transmitir o estado do mercado de accedilotildees a tendecircncia de traacutefego em um website a distribui-ccedilatildeo dos eleitores por regiatildeo aleacutem de informar como a verba eacute distribuiacuteda em um orccedilamento familiar Aleacutem dis-so um graacutefico eacute simplesmente mais compreensiacutevel do que uma enorme tabela cheia de nuacutemeros

Poreacutem eacute estranho vermos que muito poucos sites utilizam graacuteficos em seu benefiacutecio Isso acontece em grande parte porque a criaccedilatildeo de graacuteficos requer um software espe-cializado Por exemplo se o site eacute baseado em PHP eacute preciso instalar o pChart [1] adicionar a biblioteca

graacutefica GD e escrever o coacutedigo para produzir algum tipo de graacutefico Ide-almente qualquer um ndash um editor escritor ou mesmo um usuaacuterio adi-cionando comentaacuterios ndash deve ser capaz de criar e embutir graacuteficos em suas paacuteginas

Na verdade o dinamismo a sim-plicidade e a conveniecircncia estatildeo no cerne da interface de programaccedilatildeo de aplicaccedilatildeo (API) Google Chart [2] e talvez essa seja a descriccedilatildeo mais pre-cisa para um Software como Serviccedilo (SaaS) Simplesmente crie uma URL parametrizada como httpchartapisgooglecomchartparacircmetro1ampparacircmetro2ampparacircmetroN e deixe o Google Chart fazer todo o trabalho pesado O Google Chart permite que vocecirc renderize seis tipos de graacuteficos um Google-o-meter um QR code (espeacutecie de coacutedigo de barras) e mapas Aleacutem disso eacute possiacutevel usar praticamente um gugol de opccedilotildees de personalizaccedilatildeo tais como a barra de cores a cor de fundo a legenda e muito mais

Este artigo ajuda nos primeiros passos no uso do Google Chart Vocecirc aprenderaacute a desenhar graacuteficos e adi-cionar efeitos especiais para melhorar suas criaccedilotildees graacuteficas

Elementos de graacuteficosPara gerar um graacutefico com o Google Chart forneccedila o prefixo httpchartapisgooglecomchart o tipo de graacute-

fico (tal como torta ou de linhas) o tamanho do graacutefico seus dados e quaisquer paracircmetros especiacuteficos como as cores e os roacutetulos dos eixos para adequaacute-lo ao resultado final

Todas as opccedilotildees do graacutefico satildeo associadas a pares de valores do tipo chave=valor Algumas chaves satildeo comuns para todos os graacuteficos en-quanto outras satildeo exclusivas para um determinado tipo Da mesma forma a sintaxe para o valor especificado no par tende a variar de acordo com o tipo de graacutefico

O tamanho do graacutefico eacute medido em pixels e especificado com o paracircmetro chs=LxA em que L eacute a largura e A eacute a altura Por exemplo chs=200x100 gera um graacutefico de 200 pixels de lar-gura por 100 pixels de altura A aacuterea de um mapa natildeo pode exceder 440 pixels de largura por 220 de altura Para todos os outros graacuteficos nem a largura nem a altura podem exceder 1000 pixels e a aacuterea maacutexima eacute de 300000 pixels quadrados

O tipo de graacutefico eacute escolhido com o par cht=tipo em que tipo eacute uma das diversas constantes preacute-de-finidas Por exemplo para desenhar um graacutefico de linhas simples com pontos equidistantes do eixo x es-pecifique cht=lc Para cada tipo de graacutefico pode-se consultar a constan-te apropriada na documentaccedilatildeo do Google Chart

TU

TO

RIA

L

Figura 1 Um graacutefico de linha simples produzido pela API do Google Chart

copy Linux New Media do Brasil Editora Ltda

51

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Os dados de um graacutefico podem ser fornecidos em vaacuterios formatos ndash a partir de uma lista de dados brutos simples ateacute uma coleccedilatildeo de coacutedigos alfanumeacutericos para mapear valores de uma escala preacute-definida

Normalmente o conjunto de da-dos brutos eacute constituiacutedo por uma lista de valores separados por viacutergulas e um conjunto de dados codificados eacute uma sequumlecircncia contiacutenua de caracte-res alfanumeacutericos Por exemplo para fornecer dados como texto simples utilize chd=tvalores em que valo-res eacute uma lista de valores de ponto flutuante positivos entre 0 e 100 de-limitados por viacutergula O caractere _ (traccedilo baixo) pode ser usado como um espaccedilo reservado para a falta de um dado Muacuteltiplos conjuntos de dados satildeo delimitados pelo caractere | (pipe ou barra vertical)

Para demonstrar abra um nave-gador e digite a URL httpchartapisgooglecomchartcht=lcampchs=500x400ampchd=t7392079|1515181101612ampchco=FF000000FF00 na barra de endereccedilos Como se pode adivinhar o paracircmetro chco lista os valores RGB para colorir cada gru-po de dados

A figura 1 mostra o exemplo de um graacutefi-co de linha incluindo seus elementos (eixos tiacutetulos e legendas) A URL utilizada para gerar o graacutefico eacute mostrada no exemplo 1 Cada URL mostrada nesse artigo abrange vaacuterias linhas de forma intencional para melhor legibilidade

De forma resumida chtt fornece o tiacutetulo do graacutefico Os dados satildeo fornecidos como valores brutos expres-sos em texto simples mas como os valores satildeo superiores a 100 chds fornece um valor

miacutenimo e um maacuteximo para norma-lizar os dados para um percentual Aqui como os dois conjuntos de dados estatildeo dentro do mes-mo intervalo bastam um valor miacutenimo e um maacuteximo para ambos No entanto se cada um dos conjuntos de dados for traccedilado a partir de uma uacutenica seacuterie eacute preciso fornecer um valor miacutenimo e maacuteximo para cada conjunto O paracircmetro chxt eacute combi-nado com o chxl e com o chxp para criar e posicionar os roacutetulos dos eixos

Acredite ou natildeo desenhar um graacutefico eacute realmente sim-ples Para inserir um graacutefico em um paacutegina web use uma tag img src e defina seu atri-buto src para a URL do graacute-fico Forneccedila uma descriccedilatildeo para o graacutefico por meio do atributo alt

CartografiaDesenhar um mapa com o serviccedilo Google Chart eacute tatildeo simples quanto desenhar qualquer outro graacutefico pri-

meiramente especifique o mape-amento do graacutefico selecione uma regiatildeo do mundo para desenhar e em seguida associe os dados a cada paiacutes proviacutencia ou estado encontrados no mapa Os dados podem ser discretos ndash digamos representar os estados azuis e ver-melhos nos Estados Unidos ndash ou contiacutenuos Aleacutem disso vocecirc pode associar uma cor com o miacutenimo e o maacuteximo em um intervalo e o Google Chart renderiza os valores intermediaacuterios em uma graduaccedilatildeo de cores (degradecirc)

Por exemplo o exemplo 2 gera um mapa dos Estados Unidos mostrando como os estados votaram na eleiccedilatildeo presidencial de 2004 A figura 2 apre-senta os resultados

No exemplo 2 cht=t seleciona o graacutefico de mapa chtm=usa especifica os Estados Unidos como regiatildeo e chs=440x220 desenha o maior mapa

Figura 2 Divisatildeo dos estados em vermelho (republicanos) e azuis (democratas) na eleiccedilatildeo presidencial dos Estados Unidos em 2004

Exemplo 1 Roubo de automoacuteveis na Carolina do Norte

01 httpchartapisgooglecomchart02 cht=lcamp03 chtt=Nuacutemero de automoacuteveis roubadosna NC por mecircs e anoamp04 chs=400x300amp05 chd=t223116582156231823432450258326122522268123262371|06 238119392309224225902642284028372555255824372319amp07 chds=03000amp08 chco=FF00000000FFamp09 chdl=2005|2006amp10 chxt=xyamp11 chxl=0|Jan|June|Dec|1|0|1500|30 00|amp12 chxp=0050100|1050100

Exemplo 2 Estados vermelhos e azuis

01 httpchartapisgooglecomchart02 cht=tamp03 chtm=usaamp04 chs=440x220amp05 chco=FF00000000FF0000FFamp06 chld=CACTDEDCHIILMEMDMAMIMNNHNJNYORPARIVTWAWIamp07 chd=sAAAAAAAAAAAAAAAAAAAA

copy Linux New Media do Brasil Editora Ltda

52 httpwwwlinuxmagazinecombr

TUTORIAL | Google Chart

possiacutevel No graacutefico de mapa chco=FF00000000FF0000FF define as cores padratildeo de cada estado (vermelho)

e a cor de iniacutecio e de final (ambas em azul) do gradiente

O paracircmetro chld conteacutem o coacute-digo de duas letras de cada um dos estados conquistados pelo candidato presidencial democrata Finalmente o paracircmetro chd=s seleciona o es-quema de codificaccedilatildeo simplificada de dados em que todos os valores devem ser representados por um dos caracteres na sequumlecircncia de A-Z a-z e 0-9 sendo A o miacutenimo e 9 o maacuteximo Em outras palavras o es-quema de codificaccedilatildeo simplificada fornece uma granularidade de 62 valores distintos Tendo em conta que todos os estados satildeo coloridos

em vermelho por padratildeo qualquer estado com outro valor ndash aqui A ndash eacute colorido de azul

Quadro 1 Dicas e truques do Google Chart

Essas dicas e truques tornaratildeo seus graacuteficos mais legiacuteveis

Certifique-se de que o tamanho de seu graacutefico eacute su-ficiente para exibir o tiacutetulo os roacutetulos e a legenda da imagem Infelizmente a determinaccedilatildeo da largura miacuteni-ma natildeo tem uma forma algoriacutetmica ndash pode ser preciso utilizar um pouco de tentativa e erro

Para alterar a cor e o tamanho do texto no tiacutetulo do graacute-fico use chts=colorfontsize Aleacutem disso eacute possiacutevel alterar a cor e o tamanho da fonte de um eixo com o roacutetulo chxs Infelizmente natildeo eacute possiacutevel especificar o tipo de fonte

Os quatro eixos satildeo x t y e r ou seja a forma resumi-da para delimitar o eixo inferior x o eixo superior x o eixo agrave esquerda y e o eixo agrave direita y respectivamente Se vocecirc quiser vaacuterios roacutetulos para qualquer eixo repita o nome do eixo no paracircmetro chxt e especifique seus detalhes no chxl

Leia a documentaccedilatildeo da API do Google Chart e dedi-que atenccedilatildeo especial agrave sintaxe de cada opccedilatildeo Mes-mo um erro de um caractere pode tornar um graacutefico ilegiacutevel Por exemplo o paracircmetro chd utiliza a barra vertical para separar cada conjunto de dados dife-rentemente de chds Infelizmente essa natildeo eacute a uacutenica inconsistecircncia na API do Google Chart (o clipping do graacutefico de barras eacute outro) portanto mantenha o manu-al por perto

Antigamente um graacutefico de barras com valores negati-vos e positivos requeria truques para renderizar corre-tamente Agora eacute possiacutevel usar o paracircmetro chp e uma porcentagem para colocar a linha zero a partir de uma distacircncia proporcional da origem sobre o eixo y Os va-lores devem entatildeo ser interpolados para serem rende-rizados adequadamente Por exemplo suponha que o fluxo de caixa da empresa seja (em milhotildees) de -20 -5 1 3 10 Para colocar a linha zero em 05 ou na

metade do caminho para cima do eixo y valores meno-res que 50 seratildeo desenhados ldquoabaixo da linhardquo e todos os valores acima de 100 seratildeo desenhados ldquoacima da linhardquo Para normalizar os dados adicione 50 a todos os valores e plote os novos valores

httpchartapisgooglecomchartcht=bvgampchs=400x400ampchbh=405ampchd=t3045515360ampchp=5ampchm=r00000004955

A figura 5 mostra o graacutefico final

O paracircmetro bvg eacute a constante para o graacutefico do tipo barra vertical e o chd expressa o conjunto de dados normalizado O paracircmetro chp coloca a linha zero a meio caminho acima do eixo y enquanto que o chm eacute uma opccedilatildeo para desenhar uma faixa de marca-ccedilatildeo no graacutefico Os seus paracircmetros satildeo (na ordem) r para um marcador horizontal 000000 para desenhar o marcador em preto 0 que eacute ignorado e 495 e 5 para expressar as margens inferior e superior da faixa de marcaccedilatildeo em termos de proporccedilatildeo sobre o eixo-y Isso porque a linha zero estaacute colocada a 05495 e 5 desenha uma linha bem fina em zero

O paracircmetro chbh especifica a largura de uma barra e o espaccedilo entre cada uma barra Diferentemente de outros tipos de graacuteficos se chbh for grande demais e chs for muito pequeno parte do graacutefico seraacute cor-tada Certifique-se de ajustar o tamanho de um ou todos esses paracircmetros quando estiver desenhando um graacutefico de barras

Exemplo 3 Informaccedilotildees num coacutedigo QR

01 httpchartapisgooglecomchart02 cht=qramp03 chs=200x200amp04 choe=UTF-8amp05 chld=Qamp06 chl=httpwwwlinuxnewmediacombrlmFigura 3 O endereccedilo do site da

revista capturado num coacutedigo QR

copy Linux New Media do Brasil Editora Ltda

53

| TUTORIALGoogle Chart

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] pChart httppchartsourceforgenet

[2] Documentaccedilatildeo do Google Chart httpcodegooglecomapischart

[3] BeeTagg httpwwwbeetaggcom

[4] Zebra biblioteca livre do Google para leitura de coacutedigos de barra httpcodegooglecompzxing

[5] Guia para codificaccedilatildeo de dados em coacutedigos QR httpcodegooglecompzxingwikiBarcodeContents

[6] Gerador simples para o Google Chart httpalmaercomchartmaker

O Google Chart tambeacutem oferece graacuteficos para Aacutefrica Aacutesia Europa Oriente Meacutedio Ameacuterica do Sul e todo o globo

Coacutedigo de barrasNo Japatildeo moderno jovens compar-tilham informaccedilotildees de uma forma digital verdadeiramente inovado-ra eles trocam coacutedigos de barras E agora vocecirc tambeacutem pode O Google Chart fornece uma API para codificar ateacute 4296 caracteres em uma imagem bidimensional e monocromaacutetica chamado QR code ou coacutedigo QR

Para comeccedilar vamos codificar o email da Linux Magazine em um QR code O exemplo 3 mos-tra como a imagem na figura 3 foi criada Ao usar o graacutefico QR choe especifica a codificaccedilatildeo do texto O paracircmetro chld dita o grau de correccedilotildees de erros aplicado agrave ima-gem O valor Q inclui informaccedilotildees duplicadas o suficiente a ponto de 25 da imagem poder ser destruiacuteda sem afetar a legibilidade O paracirc-metro chl eacute o texto a ser codificado geralmente fornecido como uma URL que eacute entatildeo interpretada por um aplicativo

Se vocecirc tem um telefone celu-lar pode baixar gratuitamente o BeeTagg [3] tirar uma fotografia da figura 3 e decodificar os resul-tados para entrar no site da revista

Como uma alternativa o Google oferece gratuitamente uma biblio-teca gratuita para leitura de coacutedigos QR chamada Zebra Crossing [4][5] e um leitor de coacutedigos de barras online experimental que interpreta as imagens recebidas

Um coacutedigo QR pode capturar ateacute 4296 caracteres A figura 4 por exemplo codifica um vCard (cartatildeo de visitas) inteiro

Como vai o coraccedilatildeoA API do Google Chart eacute simples de usar e faacutecil de integrar em apli-caccedilotildees web Conforme mostrado eacute possiacutevel usar a API imediatamente ndash basta inse-rir um link estaacutetico em sua paacutegina web e permitir que o navegador efetue a requisiccedilatildeo e a renderiza-ccedilatildeo de um graacutefico a cada vez que a paacutegina eacute desenhada

Para acelerar a renderizaccedilatildeo da paacutegina vocecirc pode solicitar e efetuar o cache da imagem do graacutefico em seu proacuteprio servidor recriando o graacutefico apenas quando os dados contidos nele forem alterados Aleacutem de proporcionar melhor eficiecircn-cia essa teacutecnica protege melhor os dados brutos Um visitante do site natildeo poderaacute ldquover os fontesrdquo e copiar a URL

Naturalmente tambeacutem eacute pos-siacutevel misturar a API do Google Chart com teacutecnicas AJAX para mo-dificar os graacuteficos dinamicamente em resposta agrave requisiccedilatildeo do usuaacute-rio O Chart Maker [6] eacute uma de-monstraccedilatildeo baacutesica mas efetiva da dinacircmica de graacuteficos outros tecircm usado a API do Google Chart para implementar uma calculadora de empreacutestimos executiva

Naturalmente o Google Chart costuma ser mais lento que as ferra-mentas para geraccedilatildeo de graacuteficos no desktop como o Apple Numbers ou mesmo o Microsoft Excel Estas uti-lizam mecanismos de renderizaccedilatildeo nativos e natildeo requerem consultas

agrave Internet para transmitir dados e baixar um grande graacutefico na forma de uma imagem No entanto o Google Chart eacute um aplicativo gra-tuito que estaacute disponiacutevel em qual-quer lugar Se vocecirc estaacute realmente interessado em utilizar o Google Chart em ambiente de produccedilatildeo o uso de cache pode melhorar o tempo de resposta

Figura 4 Um vCard inteiro represen-tado como coacutedigo QR

Figura 5 Renderizaccedilatildeo de valores positivos e negativos num graacutefico de barras

copy Linux New Media do Brasil Editora Ltda

54 httpwwwlinuxmagazinecombr

Alta disponibilidade em PostgreSQL

Banco cheio mas disponiacutevel

O PostgreSQL natildeo possui embutido um mecanismo para criaccedilatildeo de clusters mas essa tarefa eacute faacutecil com ferramentas externas Conheccedila uma oacutetima estrateacutegia por Fernando Ike

O tema alta disponibilida-de abordado na ediccedilatildeo 43 da Linux Magazine [1] eacute

abrangente e envolve vaacuterias aacutereas desenvolvedores administradores de sistemas rede e banco de dados

Geralmente alta disponibilidade em bancos de dados eacute um objetivo mais complexo e criacutetico do que se costuma acreditar Natildeo eacute simples-mente pensar que uma soluccedilatildeo como Oracle RAC garantiraacute disponibili-dade de 100 do banco de dados Para aumentar a disponibilidade eacute necessaacuterio analisar uma seacuterie de variaacuteveis entre elas Se o datacenter tem grupo ge-

rador de energia eleacutetrica Se haacute conexatildeo agrave Internet por

mais de dois links Servidores com fontes redun-

dantes discos etc Circuitos eleacutetricos e rede redun-

dantes Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias de banco de dados Se a aplicaccedilatildeo suporta muacuteltiplas

instacircncias dela mesma Se a modelagem permite ins-

tacircncias de banco de dados fi si-camente distantes

Quanto se pode investir Tais variaacuteveis dependem do pro-

jeto em questatildeo ou seja variam de

TU

TO

RIA

L

projeto para projeto Em geral a grande difi culdade para banco de dados eacute o sincronismo das bases de dados entre vaacuterios servidores jaacute que haacute a necessidade de garantir a con-sistecircncia entre eles Aplicaccedilotildees que usam banco de dados para operaccedilotildees somente leitura (como aplicaccedilotildees web por exemplo) tecircm facilidade de trabalhar com vaacuterios servidores de banco de dados usando balan-ceamento de carga Entretanto o mesmo natildeo acontece quando uma aplicaccedilatildeo tem operaccedilotildees de leitu-ra e escrita pois natildeo existe uma soluccedilatildeo defi nitiva uma vez que depende de como a aplicaccedilatildeo foi projetada Uma alternativa seria modelar a aplicaccedilatildeo para acessar um servidor de banco de dados para operaccedilotildees de leituraescrita e os outros servidores para operaccedilotildees de leitura

Para PostgreSQL essa tarefa eacute um pouco mais difiacutecil ndash mas natildeo impossiacutevel ndash pois ofi cialmente exis-tem poucas formas de aumentar sua disponibilidade sem que se use ex-tensotildees ou aplicaccedilotildees de terceiros Existe uma discussatildeo [2] dentro do PostgreSQL Global Development Group para incorporar recursos de replicaccedilatildeo MasterSlave na versatildeo 84 (atualmente em desenvolvimento) e posteriores

PostgreSQL hoje Vejamos o que eacute possiacutevel fazer com o PostgreSQL sem ferramentas de terceiros

Warm Standby usando PITR ( Point-In-Time Recovery ) um servidor pri-maacuterio envia para um ou mais servido-res secundaacuterios os arquivos do WAL ( Write Ahead Log ) que contecircm as modifi caccedilotildees nas bases de dados do servidor primaacuterio Tais arquivos quan-do enviados seratildeo processados pelos servidores secundaacuterios Esse meacutetodo para o PostgreSQL natildeo permite por enquanto que os servidores secundaacute-rios sejam usados para leitura Esses servidores natildeo estaratildeo disponiacuteveis para nenhuma operaccedilatildeo ateacute que haja uma falha no servidor primaacuterio

Em caso de falha no servidor pri-maacuterio falhando a transmissatildeo dos uacuteltimos arquivos do WAL para os servidores secundaacuterios estes perde-ratildeo as uacuteltimas alteraccedilotildees realizadas no servidor primaacuterio Essa perda eacute pequena se comparada agraves estrateacutegias de recuperaccedilatildeo mais comuns para estes tipos de incidentes as quais satildeo becape completo da uacuteltima noite ou recuperaccedilatildeo utilizando os arquivos do WAL A comparaccedilatildeo eacute de alguns segundos usando Warm Standby e de alguns minutos ou horas com recuperaccedilatildeo de becape ou por arquivos do WAL

copy Linux New Media do Brasil Editora Ltda

55

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Compartilhamento de disco usando a mesma aacuterea num equipa-mento remoto (como storage) os servidores poderatildeo ter a aacuterea mon-tada nele mas somente o servidor primaacuterio ou ativo poderaacute ter o serviccedilo do PostgreSQL em execuccedilatildeo O ser-vidor secundaacuterio soacute deve entrar em accedilatildeo em caso de falha do primaacuterio caso contraacuterio haacute o risco de corrom-pimento das bases de dados

Neste meacutetodo numa eventual fa-lha do servidor ativo eacute praticamen-te nula a perda de dados jaacute que as bases de dados estatildeo em um stora-ge Geralmente usa-se NFS como forma de acesso ao storage Uma recomendaccedilatildeo importante ao usar NFS eacute montaacute-lo usando a opccedilatildeo sync (siacutencrono) desabilitar o cache e jamais usar a opccedilatildeo async (assiacuten-crono) jaacute que ela poderaacute corromper as bases de dados do PostgreSQL O recomendaacutevel para esse meacutetodo eacute o uso de SAN (iSCSI AoE etc) em vez de NAS (SMB NFS etc) uma vez que a arquitetura SAN eacute projetada para situaccedilotildees de grande volumes de dados e menor tempo de recuperaccedilatildeo em caso de incidente comparado com NAS

Replicaccedilatildeo por dispositivo de blo-co uma variaccedilatildeo do compartilhamento de disco Quando usado esse recurso o dispositivo de bloco eacute a unidade de replicaccedilatildeo Assim como nos outros meacute-todos natildeo pode haver dois servidores PostgreSQL em execuccedilatildeo ao mesmo tempo O DRBD eacute um software muito popular para essa fi nalidade

Terceiros Existe a possibilidade de se usar ex-tensotildees ou aplicaccedilotildees de terceiros para aumentar a disponibilidade do PostgreSQL em tarefas como repli-caccedilatildeo mestre-escravo middleware de replicaccedilatildeo orientado a sentenccedila e replicaccedilatildeo multimaster assiacutencrona ou siacutencrona

Replicaccedilatildeo mestre-escravo esse meacutetodo envia todas as consultas de

modifi caccedilotildees das bases de dados para o servidor mestre Este envia as mo-difi caccedilotildees que nele ocorreram para o servidor escravo Essas modifi caccedilotildees ocorrem por lote e de forma assiacutencro-na permitindo que se tenha muacuteltiplos servidores escravos O servidor escravo pode responder somente consultas de leitura as quais satildeo ideais para consultas do tipo data warehouse O Slony-1 eacute um exemplo desse tipo de replicaccedilatildeo com granularidade de ta-bela e suporte a muacuteltiplos servidores escravos Em caso de falha no servidor mestre poderaacute haver perda de dados que ainda natildeo foram replicados para o servidor secundaacuterio

Middleware de replicaccedilatildeo orien-tado a sentenccedila programa que intercepta cada consulta SQL e a envia para um ou todos os servido-res Cada servidor opera indepen-dentemente Consultas de leitura e escrita satildeo enviadas para todos os servidores enquanto as consultas somente-leitura podem ser enviadas para qualquer um dos servidores permitindo que o trabalho de leitura seja distribuiacutedo

Se as consultas forem simplesmen-te transmitidas sem modifi caccedilotildees alguns valores especiacutefi cos de cada servidor (como a funccedilatildeo random() e os valores de TIMESTAMP ) teratildeo va-lores diferentes nos servidores Isso ocorre porque cada servidor opera de forma independente e porque as consultas SQL satildeo realizadas em broadcast (e natildeo atuando na modifi caccedilatildeo das colunas) Se isso for inaceitaacutevel o middleware ou aplicaccedilatildeo deve consultar tais valo-res a partir de um servidor e depois usaacute-los para escrever as consultas Exemplos desse tipo de replicaccedilatildeo satildeo o pgpool-II e Sequoia

Replicaccedilatildeo Multimaster Assiacutencro-na para os servidores que natildeo estatildeo regularmente ligados como laptops e servidores remotos manter os da-dos consistentes entre os servidores eacute um desafi o Usando replicaccedilatildeo assiacutencrona multimaster cada servi-dor trabalha com independecircncia e periodicamente se comunica com os outros servidores a fi m de identifi car transaccedilotildees confl itantes Os confl itos podem ser resolvidos pelos usuaacuterios

Figura 1 Soluccedilatildeo de alta disponibilidade do banco de dados proposta

copy Linux New Media do Brasil Editora Ltda

56 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

ou por meio de regras Bucardo eacute um exemplo desse tipo de replicaccedilatildeo

Replicaccedilatildeo multimaster siacutencro-na em replicaccedilatildeo multimaster siacuten-crona cada servidor pode aceitar conexotildees com transaccedilotildees de escrita (como INSERT UPDATE e DELETE) Tais transaccedilotildees satildeo transmitidas a partir do servidor de origem para todos os outros servidores antes de efetivar a transaccedilatildeo Em situaccedilotildees com mui-tas transaccedilotildees isso poderaacute causar bloqueio dos registros degradando consideravelmente a performance Neste tipo de replicaccedilatildeo as transa-ccedilotildees com escrita geralmente satildeo mais lentas do que as feitas em um servi-dor uacutenico Aleacutem de dividir a carga de transaccedilotildees para leitura e escrita como na replicaccedilatildeo mestre-escravo a replicaccedilatildeo multimaster siacutencrona eacute muito usada para balanceamento de carga em alguns casos podendo ha-ver problemas de consistecircncia ao se usar funccedilotildees como random()

Soluccedilatildeo simplesUma soluccedilatildeo muito comum e ba-rata para alta disponibilidade em PostgreSQL eacute o uso de um dispositivo de storage comunicando-se com os

servidores PostgreSQL via NFS (fi-gura 1) A soluccedilatildeo consiste em dois servidores PostgreSQL e Heartbeat Um deles seraacute o primaacuterio e o outro o secundaacuterio O secundaacuterio aguarda-raacute algum problema com o servidor primaacuterio e caso ocorra iniciaraacute o serviccedilo do PostgreSQL assumindo o endereccedilo de rede (VIP) usado para comunicaccedilatildeo com a aplicaccedilatildeo

Essa soluccedilatildeo natildeo foi planejada para que o servidor primaacuterio assuma o controle novamente do ambiente caso retorne a operar pois eacute reco-mendaacutevel verificar a razatildeo do inci-dente corrigir e retornar a operaccedilatildeo ao ambiente num periacuteodo de pouco uso do banco de dados

Haacute alguns pontos importantes nessa soluccedilatildeo Sempre que ocorrer uma atualizaccedilatildeo de seguranccedila no PostgreSQL eacute recomendaacutevel apli-caacute-la a todos os servidores pois natildeo se deve executar uma versatildeo dife-rente do binaacuterio em cada maacutequina Aleacutem disso nesse tipo de soluccedilatildeo de alta disponibilidade natildeo eacute pos-siacutevel haver dois servidores com o serviccedilo PostgreSQL em execuccedilatildeo A disponibilidade eacute garantida pelo armazenamento dos dados no stora-

ge sem necessidade de mecanismos de replicaccedilatildeo de dados externos Por uacuteltimo poliacuteticas de backup devem continuar sendo usadas sem altera-ccedilotildees Caso aconteccedila algum incidente que indisponibilize os dados haveraacute formas de recuperaacute-los

ImplementaccedilatildeoO procedimento de instalaccedilatildeo seraacute dividido por servidores a primeira parte consiste na instalaccedilatildeo do servi-dor primaacuterio e a segunda parte trata do servidor secundaacuterio considerando que um ponto de montagem foi dis-ponibilizado previamente em ambos os servidores em varlibpostgre-sqlstorage

Depois de instalar o pacote do PostgreSQL 83 (versatildeo estaacutevel mais recente) do Debian 50 (Lenny) o di-retoacuterio padratildeo da instalaccedilatildeo do cluster de base de dados[3] eacute o local em que estaacute uma instacircncia do PostgreSQL com seu cataacutelogo de sistema Esse diretoacuterio seraacute movido para o storage usando uma particcedilatildeo NFS montada no servidor o que exige uma parada no serviccedilo do PostgreSQL

Parado o serviccedilo do PostgreSQL mova o diretoacuterio com o cluster de base de dados armazenado local-mente para o diretoacuterio NFS remo-to Depois disso eacute necessaacuterio ainda criar um link simboacutelico para que o serviccedilo inicie corretamente

mv varlibpostgresql83 varlibpostgresqlstorage ln -s varlibpostgresqlstorage83 varlibpostgresql83

Feito isso reinicie o PostgreSQL e crie um arquivo com ajustes de per-formance do PostgreSQL chamado tuningsh em usrlocalsbin (exemplo 1) Esse arquivo conteraacute ajustes de paracirc-metros do kernel Linux para o Postgre-SQL aproveitar melhor os recursos de hardware Seria possiacutevel usar o arquivo etcsysctlconf mas ele natildeo oferece

Exemplo 1 Arquivo tuningsh

01 binbash0203 echo ldquo2rdquo gt procsysvmovercommit_memory0405 kernelshmmax = 447177599906 25 do total da RAM07 echo ldquo17179869184rdquo gt procsyskernelshmmax08 kernelshmmax = 429496729609 echo ldquo17179869184rdquo gt procsyskernelshmall10 echo ldquo300 32500 150 160rdquo gt procsyskernelsem11 echo ldquo65536rdquo gt procsysfsfile-max12 echo ldquodeadlinerdquo gt sysblocksdaqueuescheduler13 echo ldquo16777216rdquo gt procsysnetcorermem_default14 echo ldquo16777216rdquo gt procsysnetcorewmem_default15 echo ldquo16777216rdquo gt procsysnetcorermem_max16 echo ldquo16777216rdquo gt procsysnetcorewmem_max

copy Linux New Media do Brasil Editora Ltda

57

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

a possibilidade de alterar tambeacutem o sistema de arquivos sysfs

Entre os paracircmetros a serem mo-dificados shmmax geralmente deveraacute ser de 25 a 50 do total da memoacute-ria RAM dependendo do tipo de aplicaccedilatildeo e modelagem de dados Nesse caso usamos usamos 50 (16 GB) (linha 7)

Torne o script executaacutevel e crie um link simboacutelico para que ele seja carregado na inicializaccedilatildeo

chmod 0755 usrlocalsbintuningsh ln -s usrlocasbintuningsh etcrcSdS99tuningsh

Em seguida execute-o para efetivar as alteraccedilotildees dos paracircmetros do sis-tema operacional

Ajuste do PostgreSQLCom o sistema operacional pronto eacute hora de ajustar o banco de dados Para isso comece editando o arqui-vo postgresqlconf de acordo com as determinaccedilotildees listen_adresses um asterisco

permite que o PostgreSQL escu-te conexotildees vindas de qualquer rede Ainda eacute necessaacuterio alterar o arquivo pg_hbaconf para que essa alteraccedilatildeo tenha efeito

max_connections nuacutemero total de conexatildeo simultacircneas aceitas pelo PostgreSQL

shared_buffers 20 a 25 do total da memoacuteria RAM

wal_write_delay 500 milisse-gundos

commit_delay 100 checkpoint_segments 128 checkpoint_timeout 30 min checkpoint_completion_

target 07

Exemplo 2 Arquivo postgresqlconf

data_directory = lsquovarlibpostgresql83mainrsquo usar dados em outro diretoacuteriohba_file = lsquoetcpostgresql83mainpg_hbaconfrsquo arquivo de autenticaccedilatildeo por maacutequina (host-based authentication)ident_file = lsquoetcpostgresql83mainpg_identconfrsquo arquivo de configuraccedilatildeo de identexternal_pid_file = lsquovarrunpostgresql83-mainpidrsquo gravar um arquivo extra com o PIDlisten_addresses = lsquorsquo IP(s) para escutarport = 5432 porta (necessaacuterio reiniciar)max_connections = 1000 (necessaacuterio reiniciar)unix_socket_directory = lsquovarrunpostgresqlrsquo (necessaacuterio reiniciar)ssl = false (necessaacuterio reiniciar)shared_buffers = 12GB miacutenimo=128 kB maacuteximo=max_connections16kBmax_fsm_pages = 204800 miacutenimo=max_fsm_relations16 6 bytes cadafsync = on (des)ativa sincronizaccedilatildeo forccediladawal_sync_method = open_sync o padratildeo eacute a primeira opccedilatildeofull_page_writes = on recuperar-se de gravaccedilotildees de paacutegina parciaiswal_writer_delay = 500ms 1-10000 milissegundoscommit_delay = 100 0-100000 em microssegundoscheckpoint_segments = 128 em segmentos de logfile miacutenimo=1 16MB cadacheckpoint_timeout = 30min 30s-1hcheckpoint_completion_target = 07 duraccedilatildeo do alvo do checkpoint 00 - 10effective_cache_size = 48GBdatestyle = lsquoiso dmyrsquolc_messages = lsquopt_BRUTF-8rsquo locale para mensagens de erro do sistemalc_monetary = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo monetaacuterialc_numeric = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo numeacutericalc_time = lsquopt_BRUTF-8rsquo locale para formataccedilatildeo de tempodefault_text_search_config = lsquopg_catalogportuguesersquo

Exemplo 3 Arquivo pg_hbaconf

local all postgres md5local all all md5host all all 12700132 md5host all all 1128 md5host intportal portal 192168103032 md5

copy Linux New Media do Brasil Editora Ltda

58 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

effective_cache_size 75 da memoacuteria RAM

Poreacutem tenha em mente que conforme a base de dados cresce esses e outros paracircmetros do ar-quivo de configuraccedilatildeo precisaratildeo ser alterados

O exemplo 2 mostra o conteuacutedo do arquivo postgresqlconf apoacutes sua ediccedilatildeo

No arquivo pg_hbaconf altere as poliacuteticas de acesso conforme a poliacutetica da instituiccedilatildeo ativando ou desativando a criptografia definindo quais redes podem acessar o banco etc No exemplo 3 o arquivo permite que o usuaacuterio portal acesse a base de dados intportal com o endereccedilo de rede 192168103032 usando cripto-grafia MD5

Para efetivar as al-teraccedilotildees reinicie o PostgreSQL

HeartbeatO hearbeat eacute tido por muitos como si-nocircnimo de alta dis-ponibilidade mas eacute apenas um meio para esse fim e a soluccedilatildeo para alta disponibi-lidade de bancos de dados PostgreSQL proposta neste artigo o utiliza

Apoacutes instalar o pa-cote do heartbeat na distribuiccedilatildeo usada no servidor adicione ao arquivo etchosts os nomes e IPs dos ser-vidores primaacuterio e se-cundaacuterio No exem-plo deste artigo esses valores satildeo

1921681010 pgprimario1921681011 pgsecundario

O arquivo de con-figuraccedilatildeo do heart-beat pode se localizar em etchad ou em etcheartbeat O exemplo 4 mostra o conteuacutedo do arquivo hacf que deve resi-dir no diretoacuterio usa-do pela distribuiccedilatildeo

em questatildeo cujas opccedilotildees tecircm os seguintes efeitos logfacility executar o heart-

beat como serviccedilo logfile local onde seraacute gravado

o registro de atividades do heart-beat

keepalive intervalo de tempo de comunicaccedilatildeo entre os noacutes

deadtime intervalo de tempo para que heartbeat reconheccedila um noacute como morto

bcast forma de comunicaccedilatildeo en-tre os servidores hearbeat neste caso com uma placa exclusiva para comunicaccedilatildeo (eth1)

ping checa se o IP virtual estaacute no ar

auto_failback caso o servi-dor primaacuterio saia do ar quan-do voltar ele natildeo tentaraacute assu-mir como servidor principal no cluster

respawn hacluster usrlibheart-beatipfail serviccedilo do heartbeat para trocar o IP Virtual em caso de falha no noacute principal

Ainda no diretoacuterio de configu-raccedilatildeo do heartbeat crie o arquivo haresources Eacute nesse arquivo que o heartbeat procuraraacute os serviccedilos que precisam ser executados no cluster Tais serviccedilos satildeo scripts que podem ou natildeo ter paracircmetros e estatildeo loca-lizados em etchadresourced Acrescente ao arquivo haresources o seguinte conteuacutedo

pgprimario IPaddr192168105pgprimario PostgreSQL

O paracircmetro IPaddr adiciona o en-dereccedilo de rede virtual (VIP) ao clus-ter e PostgreSQL controla o Postgre-SQL no heartbeat Esse script natildeo eacute distribuiacutedo oficialmente e pode ser personalizado conforme a necessida-de do ambiente

Crie tambeacutem o arquivo authkeys para abrigar a senha (criptografada com SHA1) necessaacuteria agrave comunica-

Exemplo 5 Script PostgreSQL do heartbeat

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 case $1 in07 start)08 etcinitdpostgresql-83 start09 sleep 210 check_pgsqlsh amp11 exit 012 13 14 stop)15 etcinitdpostgresql-83 stop16 kill $(ps a|grep check_pgsql|awk lsquo print $1 rsquo|head -n 1)17 exit 018 19 )20 21 esac

Exemplo 4 Arquivo hacf

logfacility daemonlogfile varloghalognode pgprimario pgsecundariokeepalive 2deadtime 10bcast eth1ping 192168105auto_failback offrespawn hacluster usrlibheartbeatipfail

copy Linux New Media do Brasil Editora Ltda

59

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

ccedilatildeo entre os noacutes do heartbeat Para criar a senha use algo como

echo ldquosuasenhardquo | sha1sum2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53 -

Adicione esse hash ao arquivo authkeys da seguinte forma

auth 11 sha1 2fcaa24bc2673abbfb3d5ddcadccb7be2c28fa53

Em seguida altere as permis-sotildees do arquivo para 600 para que somente o usuaacuterio root possa ler e escrever nele

No diretoacuterio etchadresourced ficam os scripts de interaccedilatildeo dos ser-viccedilos do heartbeat Crie nele o script PostgreSQL referenciado no arquivo haresources que criamos antes com o conteuacutedo mostrado no exemplo 5 Esse arquivo tambeacutem precisaraacute ter suas permissotildees alteradas mas dessa vez para permitir que ele seja executado Portanto recomenda-se usar 755 como permissotildees

Crie tambeacutem um script (usrlo-calsbincheck_pgsqlsh) para verificar se o PostgreSQL continua no ar de acordo com o exemplo 6 Esses satildeo os significados das variaacuteveis HOST endereccedilo de rede do ser-

vidor USER usuaacuterio do PostgreSQL DB banco de dados a ser usado TEST tipo de consulta que serviraacute

como teste REPEAT nuacutemero de repeticcedilotildees do

teste ateacute considerar o servidor como inativo

OTHER endereccedilo de rede do ser-vidor secundaacuterio

Apoacutes tornar esse script executaacutevel eacute necessaacuterio novamente reiniciar o PostgreSQL e o proacuteprio heartbeat Com isso fica concluiacuteda a confi-guraccedilatildeo do servidor PostgreSQL primaacuterio

Servidor secundaacuterioPara o servidor secundaacuterio seratildeo repe-tidos os mesmos passos da instalaccedilatildeo e configuraccedilatildeo do servidor primaacuterio

poreacutem com certas diferenccedilasDepois de instalar o pacote do

PostgreSQL 83 pare o serviccedilo deste e apague o diretoacuterio varlibpostgre-

Exemplo 6 Script check_pgsqlsh no servidor primaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101008 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101114 15 check()16 17 while true18 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull19 if [ $ -eq 0 ]20 then21 break22 do23 sleep 224 25 if [ $COUNTER -eq $REPEAT ]26 then27 etcinitdpostgresql-83 stop28 etcinitdheartbeat stop29 else30 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 gt devnull31 if [ $ -eq 0 ]32 then33 COUNTER=rdquo1rdquo34 else35 let COUNTER=$COUNTER+136 fi37 fi38 39 done40 fi41 42 43 check

copy Linux New Media do Brasil Editora Ltda

60 httpwwwlinuxmagazinecombr

TUTORIAL | PostgreSQL

Exemplo 7 Script check_pgsqlsh no servidor secundaacuterio

01 binbash02 03 unset LC_ALL export LC_ALL04 unset LANGUAGE export LANGUAGE05 06 PSQL=$(which psql)07 HOST=192168101108 USER=rdquopostgresrdquo09 DB=rdquopostgresrdquo10 TEST=rdquoSELECT 1rdquo11 REPEAT=rdquo5rdquo12 COUNTER=rdquo1rdquo13 OTHER=192168101014 15 16 check()17 18 while true19 $PSQL -U $USER -h $OTHER -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull20 if [ $ -eq 0 ]21 then22 break23 do24 sleep 225 26 if [ $COUNTER -eq $REPEAT ]27 then28 etcinitdpostgresql-83 stop29 etcinitdheartbeat stop30 else31 $PSQL -U $USER -h $HOST -c ldquo$TESTrdquo -d $DB 2gtamp1 ampgt devnull32 if [ $ -eq 0 ]33 then34 COUNTER=rdquo1rdquo35 else36 let COUNTER=$COUNTER+137 fi38 fi39 40 done41 fi42 43 44 check

sql83 pois ele usaraacute quando ativo o mesmo cluster de base de dados do servidor primaacuterio que estaacute arma-

zenado no storage Esse passo eacute o primeiro em que os procedimentos dos dois servidores diferem

Com o diretoacuterio apagado eacute ne-cessaacuterio criar um link simboacutelico para que o serviccedilo inicie correta-

mente quando for solicitado pelo heartbeat

ln -s varlibpostgresqlstorage83 varlibpostgresql83

Assim como no servidor primaacuterio crie um arquivo tuningsh com ajustes de per-formance para o PostgreSQL em usrlocalsbin Como os servidores tecircm hardwares semelhantes usaremos os mesmos ajustes de perfor-mance (exemplo 1) Apoacutes salvar o script crie um link simboacutelico para que ele seja carregado ao iniciar os servi-ccedilos do servidor

ln -s usrlocalsbintuningsh etcrcSdS99tuningsh

Execute o script receacutem-criado para efetivar as mo-dificaccedilotildees dos paracircmetros do sistema operacional

Diferentemente do servi-dor primaacuterio natildeo seratildeo neces-saacuterias alteraccedilotildees aos arquivos postgresqlconf e pg_hbaconf pois os arquivos usados seratildeo os mesmos

Assim como no servidor primaacuterio instale o heartbeat e acrescente as seguintes linhas ao arquivo etchosts

1921681011 pgprimario1921681010 pgsecundario

Note que os IPs satildeo inver-tidos com relaccedilatildeo ao con-teuacutedo do arquivo no servidor primaacuterio

Em seguida crie o arquivo de configuraccedilatildeo etchad

copy Linux New Media do Brasil Editora Ltda

61

| TUTORIALPostgreSQL

Linux Magazine 50 | Janeiro de 2009

Mais informaccedilotildees

[1] Linux Magazine 43 httplnmcombrissuelm_43_alta_disponibilidade

[2] Discussatildeo no PGDG sobre replicaccedilatildeo httparchivespostgresqlorgpgsql-hackers2008-05msg00913php

[3] Criaccedilatildeo de clusters PostgreSQL httpwwwpostgresqlorgdocs83interactivecreating-clusterhtml

hacf de acordo com o exemplo 4 e etchadharesources com conteuacutedo igual ao do servidor primaacuterio

pgprimario IPaddr192168105pgprimario PostgreSQL

Todos os procedimentos com o arquivo etchadauthkeys tambeacutem devem ser repetidos assim como os do script etchadresourcedPostgreSQL (exemplo 5) O script diferente entre os servidores primaacute-rio e secundaacuterio eacute o check_pgsqlsh em usrlocalsbin (exemplo 7) pois os valores das variaacuteveis HOST e OTHER devem ter seus valores troca-dos entre si

Ao final no entanto o mesmo procedimento do servidor primaacuterio eacute necessaacuterio permitir a execuccedilatildeo dos scripts criados e reiniciar o Postgre-SQL e o heartbeat

ConsideraccedilotildeesAs atualizaccedilotildees de seguranccedila deveratildeo ser realizadas em ambos os servido-res com diferentes procedimentos para cada No servidor que estiver ativo no cluster deve-se atualizar conforme a liberaccedilatildeo de novas ver-sotildees do pacote do PostgreSQL e os procedimentos de atualizaccedilatildeo da distribuiccedilatildeo em uso Eacute recomendaacute-vel para ambos os servidores fazer a atualizaccedilatildeo em um horaacuterio de pou-co uso ou numa parada programada para manutenccedilatildeo

As atualizaccedilotildees de seguranccedila no servidor secundaacuterio precisam de atenccedilatildeo pois distribuiccedilotildees baseadas em Debian reiniciam o serviccedilo do PostgreSQL Nesse caso esse rei-niacutecio pode afetar o funcionamento do servidor primaacuterio Para contornar esse problema podemos alterar a permissatildeo do arquivo etcinitdpostgresql-83 antes de atualizar o pacote do PostgreSQL

chmod 000 etcinitdpostgresql-83

Depois de atualizar o pacote basta retornar o pacote agraves permis-sotildees anteriores (e corretas para a operaccedilatildeo)

chmod 755 etcinitdpostgresql-83

O quadro 1 oferece ajuda caso ocorra algum problema com o storage durante a operaccedilatildeo do cluster

ConclusatildeoUma soluccedilatildeo de alta disponibilidade como essa natildeo elimina a necessidade de uma poliacutetica de becape e proce-dimentos de melhora contiacutenua de performance O becape pode ser res-taurado a partir de qualquer maacutequina na soluccedilatildeo de alta disponibilidade desde que elas estejam com o serviccedilo do PostgreSQL em execuccedilatildeo Novos procedimentos de becape podem ser adotados como armazenamento dos logs diaacuterios como complemento da poliacutetica existente

O aumento da disponibilidade do banco de dados natildeo significa aban-donar as poliacuteticas de contingecircncia e becape Tambeacutem eacute necessaacuterio plane-jar o aumento da disponibilidade de todo o ambiente (aplicaccedilatildeo e banco de dados) Natildeo desconsidere o uso de storages com iSCSI ou fibra oacutetica para melhor performance

Quadro 1 Problemas no storage

Em caso de problemas no storage o melhor eacute recriar o cluster de banco de dados com o comando initdb e restaurar seu conteuacutedo a partir do becape Dependendo do incidente pode-se optar por criar o cluster localmente ou em outro storage Caso seja local eacute possiacutevel criar um cluster provisoacuterio ateacute que o storage volte a ficar disponiacutevel para o servidor

O comando para isso eacute

pg_createcluster -u postgres -d varlibpostgresqlprovisorio --start-conf=auto 83 provisorio

e suas opccedilotildees satildeo

-u usuaacuterio que seraacute usado pelo cluster

-d diretoacuterio onde ficaraacute o cluster

--start-conf= opccedilatildeo para acrescentar a etcinitdpostgresq-83 o iniacutecio do cluster que estaacute sendo acrescentado

83 versatildeo instalada do PostgreSQL

provisorio identificaccedilatildeo do novo cluster

copy Linux New Media do Brasil Editora Ltda

62 httpwwwlinuxmagazinecombr

Integraccedilatildeo de dados com o ETL Talend

O talento do Talend Quem procura uma soluccedilatildeo ETL para Business Intelligence natildeo deve deixar de conferir o Talend Conectado a diversas fontes de dados ele soacute natildeo faz chover ndash ainda por Miguel Koren OrsquoBrien de Lacy

Um dos componentes essen-ciais de uma soluccedilatildeo para a inteligecircncia de negoacutecios (BI

ndash Business Intelligence ) eacute o moacutedulo de integraccedilatildeo de informaccedilotildees de di-versas fontes de dados Felizmente o mercado de Software Livre e de coacutedigo aberto oferece algumas so-luccedilotildees bastante completas que satildeo usadas dentro dos pacotes de BI ou em modo stand alone As soluccedilotildees de integraccedilatildeo de dados satildeo conheci-das como ETL ( Extract Transform Load ) pois a missatildeo dessas soluccedilotildees eacute integrar informaccedilotildees e preparaacute-las para a formaccedilatildeo de tabelas no data mart Normalmente os dados precisam ser manipulados depois de obtidos e logo inseridos nas tabelas dos bancos de dados em que reside o data mart Ou seja estamos falando em obter os dados aplicar regras de negoacutecios da empresa facilitar as consultas pos-teriores ou validar a qualidade dos dados e entregaacute-los transformados ao destino fi nal Dentre as transfor-maccedilotildees normalmente aplicadas aos dados podemos destacar a seleccedilatildeo de campos importantes para a anaacutelise a fi ltragem dos registros necessaacuterios a limpeza dos dados (ldquoSrrdquo ou ldquoSe-nhorrdquo passam a valer ldquoSrdquo) a geraccedilatildeo dos campos calculados (por exemplo ldquovalor nf = quantidade valor unitaacute-riordquo) etc Mas essas soluccedilotildees tambeacutem podem ser consideradas integradores e manipuladores de dados para outras

necessidades podendo substituir mui-tos sistemas de ldquointerfacesrdquo de dados que satildeo desenvolvidos pelas aacutereas de TI de grandes empresas

Originalmente os sistemas cor-porativos foram desenvolvidos de forma isolada para cumprir alguma funccedilatildeo especiacutefi ca natildeo sendo parte do objetivo de projeto a necessidade de compartilhar dados Quando a quan-tidade desses sistemas comeccedilou a ser mais importante dentro das empresas surgiram as primeiras necessidades de integraccedilatildeo de dados como a carga de pedidos aos sistemas de estoque e fatu-ramento Tais necessidades de integra-ccedilatildeo foram implementadas diretamente por programas ou scripts especiacutefi cos Com a crescente complexidade das integraccedilotildees requeridas iniciou-se um encarecimento do desenvolvimento desses processos Os sistemas tinham manutenccedilatildeo complexa e as loacutegicas de integraccedilatildeo difiacuteceis de documentar auditar e entender Por isso as em-presas comeccedilaram a implementar ferramentas prontas ou semi-pron-tas para essa necessidade Essa foi a origem dos sistemas ETL

Esses sistemas poreacutem natildeo pos-suem a popularidade que merecem em razatildeo de certos fatores que impe-dem sua adoccedilatildeo Entre estes fatores devemos destacar Custo inicial Complexidade no uso com curva de

aprendizado muito empinada

Escalabilidade a necessidades de integraccedilotildees pequenas

A empresa Talend eacute fabricante

do Talend Open Studio [1] apre-sentado como ldquoo sistema ETL mais abrangente no mercado de software livre e coacutedigo abertordquo O modelo de negoacutecios da empresa eacute um dos claacutes-sicos para Software Livre A empresa desenvolve um produto que licencia sem custo usando licenciamento em modalidade livre no caso a GPL [2] e oferece serviccedilos e suporte co-merciais O software licenciado sob a GPL natildeo possui todos os compo-nentes que satildeo oferecidos a clientes sob o licenciamento de subscriccedilatildeo do serviccedilo mas mesmo dessa forma eacute extremamente uacutetil para as neces-sidades ETL de qualquer empresa O Talend Open Studio foi liberado no mercado em 2005 pela empresa Talend com bases na Franccedila paiacutes com uma poliacutetica ofi cial de apoio a Software Livre e Coacutedigo Aberto Analistas de TI como Forrester Rese-arch [3] IDC [4] e Bloor Research [5] posicionam o Talend como o melhor sistema para necessidades de integraccedilatildeo de dados O sistema BI em software livre SpagoBI [6] [7] eacute um exemplo de uso do Talend como seu componente ETL padronizado

O modelo de Software Livre eacute bem apropriado para esse tipo de soluccedilatildeo pois faz bom uso de desen-

AN

AacuteLIS

E

AN

AacuteLIS

E

copy Linux New Media do Brasil Editora Ltda

63

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

volvimento colaborativo em que muitas pessoas contribuem com moacutedulos para conexotildees a fontes de dados variadas Mas o sucesso do Talend tambeacutem mostra que o Software Livre natildeo eacute apenas bem sucedido em soluccedilotildees ldquocomoditiza-dasrdquo como sistemas operacionais e utilitaacuterios de infra-estrutura O Talend mostra que uma soluccedilatildeo livre pode ser muito atrativa num mercado novo em formaccedilatildeo com-petindo com sistemas proprietaacuterios de grandes empresas como IBM SAS e SAP as quais tecircm preccedilos de licenciamento de niacutevel corporativo Empresas como Oracle e Microsoft tambeacutem competem nesse mercado poreacutem com uma visatildeo mais restrita focada nos produtos de base de cada uma banco de dados Oracle e SQL Server respectivamente

Um forte apelo do Talend eacute a disponibilidade de uma ferramenta abrangente em que os proacuteprios usuaacute-rios da informaccedilatildeo podem modelar as regras de negoacutecios (fontes de dados campos requeridos regras de trans-formaccedilatildeo etc) para a integraccedilatildeo dos dados Hoje a aacuterea de TI de qualquer

empresa tem diariamente mais e mais dados e os usuaacuterios tecircm necessida-des de visualizaccedilatildeo que satildeo mais urgentes a cada dia Assim eacute muito uacutetil que os proacute-prios usuaacuterios possam usar o sistema de for-ma natildeo teacutecnica para especificar as regras de integraccedilatildeo

Recurso e TecnologiaO Talend eacute um sistema desenvolvi-do em Java que usa uma arquitetura modular formada por Gerenciador graacutefico de negoacutecios

(visatildeo natildeo teacutecnica de necessida-des de fluxo de dados)

Gerenciador graacutefico de proces-sos ETL

Gerenciador de metadados (repositoacuterio para reutilizaccedilatildeo de objetos)

Repositoacuterio de processos (moacutedulo adicional da versatildeo comercial)

Interface web services a proces-sos ETL

Monitor de processos Componentes modulares (atu-

almente mais de 400) Usando a API do sistema podem ser desenvolvidos componentes personalizados

O gerenciador graacutefico de processos ETL roda dentro do ambiente Eclipse [8][9] seguindo a filosofia de inte-graccedilatildeo de ferramentas dentro desse ambiente para desenvolvimento

Normalmente os primeiros trecircs moacutedulos satildeo usados na ordem listada O gerenciador de negoacutecios eacute usado pelos usuaacuterios do sistema enquanto o gerenciador de processos ETL e o gerenciador de metadados satildeo usados pelos programadores Mesmo que o repositoacuterio de projetos ETL com apoio a equipes de trabalho seja um componente oferecido comer-cialmente o Talend Open Studio inclui a possibilidade de versio-

namento do desenvolvimento dos processos A figura 1 mostra o uso desse recurso

O Talend eacute um sistema ldquogera-dor de coacutedigordquo em oposiccedilatildeo a um sistema de ldquocaixa pretardquo ndash a qual eacute responsaacutevel pela execuccedilatildeo dos pro-cessos ETL ndash ou seja o Talend natildeo requer um servidor de execuccedilatildeo de processos ETL A vantagem da gera-ccedilatildeo de coacutedigo eacute que eacute mais simples integrar os processos ETL dentro de outros aplicativos e os modelos satildeo de portabilidade muito mais flexiacutevel Aleacutem de sistemas como SpagoBI o

Figura 1 Gerenciamento de versotildees

Figura 2 Tela de iniacutecio do Talend

copy Linux New Media do Brasil Editora Ltda

64 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

Talend eacute integrado em sistemas de empresas como Ingres Teradata e JasperSoft O mecanismo de geraccedilatildeo de coacutedigo permite a integraccedilatildeo do coacutedigo gerado pelo Talend dentro de outras soluccedilotildees aleacutem de ter maior portabilidade Outra vantagem de mecanismos de geraccedilatildeo de coacutedigo eacute que mecanismos de integraccedilatildeo ldquoonlinerdquo conhecidos hoje como ldquointegraccedilatildeo operacionalrdquo podem ser implementados com maior fa-cilidade O conceito de geraccedilatildeo de coacutedigo versus ldquocaixa pretardquo de exe-cuccedilatildeo dos processos ETL eacute a maior diferenccedila entre o Talend e muitos outros sistemas O conceito de ge-raccedilatildeo de coacutedigo natildeo foi popular no passado possivelmente por causa do marketing das empresas comerciais destas soluccedilotildees mas as vantagens que o Talend apresenta usando este conceito satildeo importantes

No caso o Talend gera coacutedigo Java ou Perl e SQL para os proces-sos ETL Aleacutem de aplicar o conceito ETL ele aplica tambeacutem o conceito ELT (Extract Load Transform) o que significa que pode aproveitar a eficiecircncia e performance nativas de bancos de dados SQL ou seja os dados satildeo extraiacutedos carregados no destino e somente depois jaacute den-tro do banco de destino eacute aplicada a loacutegica de transformaccedilatildeo usando SQL e linguagem procedural de

cada banco de dados Para a funcio-nalidade ELT satildeo suportados nati-vamente hoje os bancos de dados Oracle MySQL e Teradata

OperaccedilatildeoO sistema estaacute disponiacutevel em versotildees para Linux Unix e Windows Para todas as plataformas eacute necessaacuterio ter Java e Perl no equipamento considerando seu conceito de de-senho que eacute de geraccedilatildeo de coacutedigo ou seja que os processos do Talend satildeo executados pela maacutequina vir-tual Java (JVM) ou pelo interpre-tador Perl

O download do sistema ainda eacute relativamente pesado (235 MB) mas com conexotildees de banda larga cada dia mais confiaacuteveis e raacutepidas pode ser feito em poucas horas Neste artigo exploraremos o Ta-lend Open Studio para Linux em ambiente graacutefico Gnome rodando em OpenSUSE 102 No caso de usaacute-lo em Windows 2000 existe um preacute-requisito adicional que eacute a instalaccedilatildeo do GDI requerido pelo Eclipse [10] A partir do Windows XP essa biblioteca estaacute incluiacuteda nativamente Vale a pena fazer o download tambeacutem do pacote com-pleto de documentaccedilatildeo Referente ao produto e agrave documentaccedilatildeo o Talend apresenta as vantagens de suporte por uma empresa comercial pois a documentaccedilatildeo eacute bastante comple-ta Outro destaque importante do Talend eacute o acesso a um sistema de ajuda online muito completo In-felizmente isso ainda natildeo eacute norma na maioria dos sistemas de coacutedigo aberto O site do Talend oferece um wiki e uma aacuterea de tutoriais

Simplesmente descompacte o pacote obtido por download e atri-bua propriedades de executaacutevel ao binaacuterio de iniacutecio do sistemaFigura 4 Geraccedilatildeo de um novo projeto

Figura 3 Definiccedilatildeo de repositoacuterio local inicial

copy Linux New Media do Brasil Editora Ltda

65

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

chmod a+x TalendOpenStudio-linux-gtk-x86

Selecione o binaacuterio de iniacutecio apropriado para sua arquitetura de CPU Para iniciar o gerenciador de processos execute o binaacuterio

TalendOpenStudio-linux-gtk-x86 amp

Isso exibiraacute a tela de abertura do sistema (figura 2)

Leia e aceite o contrato de licen-ciamento Apareceraacute finalmente a tela de conexatildeo ao repositoacuterio de processos ETL (figura 3) No caso do Talend Open Studio o repositoacuterio somente poderaacute ser local

Com o repositoacuterio local defini-do gere um projeto novo selecio-nando Create a new local project (figura 4)

Ao definir o tiacutetulo e a descriccedilatildeo do projeto deve-se selecionar tambeacutem a linguagem de geraccedilatildeo do coacutedigo No exemplo para o artigo escolhemos coacutedigo em Java A figura 5 mostra as opccedilotildees de definiccedilatildeo do projeto

Finalmente jaacute se pode entrar no projeto escolhido pela tela principal bastando selecionar nela o projeto e pressionar o botatildeo open Apoacutes alguns momentos apareceraacute a tela principal do sistema Na primeira vez seraacute pedido ao usuaacuterio que re-

gistre o uso digitando seu email e selecionando o paiacutes Este passo natildeo eacute obrigatoacuterio mas eacute recomendado para receber notificaccedilotildees de novas versotildees do sistema

Antes de usar o Talend Open Stu-dio deve ser configurada a lista de elementos disponiacuteveis para o dese-nho Isso pode ser feito modifican-do-se as propriedades do projeto na

opccedilatildeo de ldquopalette settingsrdquo A figura 6 mostra a inclusatildeo de conectores para MS SQL Server e PostgreSQL que devem ser selecionados no caso de precisarmos desenhar um processo de integraccedilatildeo de dados entre estes dois bancos de dados

O desenho de um processo ETL requer vaacuterias etapas incluindo de-senho dos componentes de negoacute-cios dos jobs de processamento de conexotildees JDBC acoplamento de moacutedulos de processamento e outros elementos A figura 7 mostra um exemplo de configuraccedilatildeo de cone-xatildeo JDBC ao banco Microsoft SQL Server O driver JDBC utilizado vem junto com a instalaccedilatildeo do Talend no caso o excelente JTDS [11] A figura 8 mostra a tela do Talend Open Studio com a visatildeo da paleta de fer-ramentas componentes tratados e a ediccedilatildeo de um elemento de negoacutecios (business object)

Aleacutem das possibilidades de desen-volvimento loacutegico da soluccedilatildeo dentro do ambiente graacutefico o Talend oferece

Figura 5 Detalhes de um novo projeto ETL

Figura 6 Formaccedilatildeo da lista de ferramentas

copy Linux New Media do Brasil Editora Ltda

66 httpwwwlinuxmagazinecombr

ANAacuteLISE | Talend

ferramentas para preparar diagramas formatados para necessidades de documentaccedilatildeo e apresentaccedilatildeo Por exemplo podem ser escolhidas as fontes as cores e os estilos de linhas para os objetos do diagrama aleacutem de haver a possibilidade de alinhamen-to numa grade e a opccedilatildeo de layout automaacutetico dos componentes

Entre as caracteriacutesticas que mais flexibilidade oferecem ao Talend estaacute a biblioteca de componentes Esses componentes estatildeo divididos em grupos funcionais em que os de maior utilidade para uso corporativo podem ser os componentes prepa-rados para acesso a outros sistemas tais como SugarCRM Salesforce e SAP O Talend apresenta um des-taque no mercado ao oferecer um conector ao SAP A figura 9 mostra alguns componentes do Forge do sistema que podem ser baixados e instalados para aumentar a funcio-nalidade padratildeo do Talend

Um destaque do mecanismo de componentes do Talend eacute a possibili-dade de publicar os processos automa-ticamente por exemplo no servidor de BI SpagoBI Outro componente de uso geral e que incrementa em

muito a complexi-dade de processos que podem ser de-finidos eacute o executor de scripts em Groo-vy Aleacutem de poder desenvolver com-ponentes especiacutefi-cos a possibilidade de gerar scripts em Groovy para trata-mento avanccedilado dos dados permite que as transforma-ccedilotildees sigam regras muito especiais da empresa A figura 10 mostra a definiccedilatildeo de integraccedilatildeo com o SpagoBI

Vale a pena des-tacar algumas ca-

racteriacutesticas conceituais do editor graacutefico que satildeo importantes para uso corporativo do Talend Os desenhos satildeo versionados

com a data de cada versatildeo Cada objeto dos modelos re-

cebe um estado que pode ser ldquonatildeo verificadordquo ldquoverificadordquo ou ldquovalidadordquo por default no caso

dos business objects Entretan-to podem ser definidos outros estados usados na empresa

Existe uma aacuterea em cada proje-to para reunir a documentaccedilatildeo que pode conter objetivos justi-ficativas exemplos de resultados desejados etc O Talend tambeacutem gera documentaccedilatildeo teacutecnica e de processo automaticamente

Separaccedilatildeo de papeacuteis entre usuaacute-rios de negoacutecios que descrevem suas necessidades a niacutevel macro (definindo business objects) e desenvolvedores (definindo jobs e outros elementos)

Notificaccedilatildeo ou atualizaccedilatildeo au-tomaacutetica do sistema quando disponibilizadas novas versotildees Talend ou dos componentes

Facilidade para execuccedilatildeo de testes individuais e integrados de componentes

Importaccedilatildeo e exportaccedilatildeo de pro-jetos completos ou elementos

O Talend eacute um sistema muito completo com o apoio de uma empresa comercial um ecossiste-ma de componentes muito amplo e com um ambiente de definiccedilatildeo

Figura 7 Definiccedilatildeo de conexatildeo JDBC

Figura 8 Tela do Talend Open Studio

copy Linux New Media do Brasil Editora Ltda

67

| ANAacuteLISETalend

Linux Magazine 50 | Janeiro de 2009

e desenvolvimento faacutecil de usar aleacutem de poderoso e visualmente atraente Assim o projeto pode re-solver a questatildeo relatada no iniacutecio do artigo sobre os motivos da falta de popularizaccedilatildeo de sistemas ETL no mercado

ConclusatildeoHoje qualquer empresa tem ne-cessidades de ETL e integraccedilatildeo de dados e em muitos casos eacute caro e complexo desenvolver soluccedilotildees caseiras especiacuteficas O Talend apre-senta uma soluccedilatildeo flexiacutevel com a qual estes processos podem ser

modelados e executados de forma confiaacutevel Podem ser definidos e documentados com a participaccedilatildeo dos usuaacuterios que satildeo os principais interessados no resultado final Naturalmente esse tipo de divisatildeo de atividades ou responsabilidades requer que todos os usuaacuterios in-dependentemente do papel que desempenham no sistema sejam devidamente treinados Em TI eacute cada vez mais comum haver situ-accedilotildees em que os sistemas satildeo sim-ples e poderosos para usar mas os usuaacuterios devem ser treinados nos princiacutepios da tecnologia apresen-

tada Quem usa o Talend deveraacute estar ciente da documentaccedilatildeo em inglecircs ou em francecircs aleacutem do uso do sistema em inglecircs

O uso do Talend dentro de uma empresa eacute facilitado pelas caracte-riacutesticas corporativas do sistema que permitem entre outras possibilida-des ter alta produtividade e visibi-lidade dos processos pelo apoio a componentes especiacuteficos tais como conectores SAP Salesforce ou cus-tomizados e geraccedilatildeo de documen-taccedilatildeo Provavelmente seraacute difiacutecil encontrar um caso de uso que natildeo possa ser atendido com comodidade pelo Talend

Mais informaccedilotildees

[1] Talend httpwwwtalendcom

[2] GPL versatildeo 2 httpwwwgnuorglicensesold-licensesgpl-20html

[3] Forrester Research httpwwwforrestercom

[4] IDC httpwwwidccom

[5] Bloor Research httpwwwbloor-researchcom

[6] SpagoBI httpspagobiengit

[7] Miguel KO de Lacy ldquoNegoacutecio inteligenterdquo httpwwwlnmcombrarticle1747

[8] Eclipse httpwwweclipseorg

[9] Linux Magazine 36 ndash Eclipse httpwwwlnmcombrissue1353

[10] GDI httpwwweclipseorgswtfaqphpnographicslibrary

[11] JTDS httpjtdssourceforgenet

Figura 9 Forge de componentes mostrando aqueles especiacuteficos de algum sistema

Figura 10 Integraccedilatildeo com o SpagoBI Server

copy Linux New Media do Brasil Editora Ltda

eb 20 is not everybodyrsquos idea of a good thing One problem is the multitude of password-

protected websites Personal blogs virtual communities from Xing to Face-book and sites that manage workflow expenses and vacation planning often rely on web-based applications with private user accounts This overload of passwords and login boxes is causing some hapless users to lose track of all the options As long as users work on a single local physical device (or can ac-cess a server in the vicinity) tools such as the password managers offered by most web browsers as well as alterna-

tives such as KDE wallet are useful aids But the Web 20 paradigm assumes the user can move about and log in from different locations

Identity management solutions provide a more mobile and flexible solution for simplifying web login These tools often employ the principle of a trusted third party A few large global players have stepped up with services that offer sin-gle-source trusted third party login solu-tions Microsoftrsquos Passport system was created in line with this belief Today Microsoft markets Passport as ldquoWindows

Live IDrdquo [1] Many users however are wary of becoming dependent on proprie-tary applications

An early alternative known as the Lib-erty Alliance Project [2] offered a more open approach but it was widely re-garded as an overspecified dinosaur and the Liberty Alliance still has not found widespread acceptance despite a seven-year effort The OpenID project under the auspices of the OpenID Foundation [3] relies on simpler functionality that can be integrated more easily into online authentication systems

Users who choose the OpenID alter-native do not enter a user name but instead identify themselves with a URI (Uniform Resource Identificator) that can be displayed in a web browser The URI can be a web address offered by an

OpenID offers an open standard for logging on to closed-door websites

BY NILS MAGNUS

OpenID

35ISSUE 96NOVEMBER 2008

035-037_openidindd 35 11092008 161308 Uhr

68 httpwwwlinuxmagazinecombr

Gerenciamento de identidade na web com o Open ID

Identidade aberta mas segura

O OpenID oferece um padratildeo aberto para login em websites fechadospor Nils Magnus

A Web 20 eacute uma boa coisa como todo mundo imagina Um problema eacute a multiplici-

dade de sites protegidos por senha para acesso Blogs pessoais comu-nidades virtuais do Xing ao Orkut e Facebook e sites que gerenciam fluxo de trabalho despesas plane-jamento de feacuterias frequumlentemente confiam em aplicaccedilotildees baseadas na web com o uso de contas de usuaacuterio privadas Esse excesso de senhas de login estaacute fazendo com que alguns usuaacuterios descontentes percam a pa-ciecircncia Enquanto os usuaacuterios usam um dispositivo fiacutesico uacutenico e local ferramentas como os gerenciadores de senhas oferecidos pela maioria dos navegadores e alternativas como o KDE Wallet satildeo de grande ajuda

Mas o paradigma da Web 20 su-potildee que o usuaacuterio tem a liberdade de se mover e efetuar login de dife-rentes locais

Opccedilatildeo da comunidadeSoluccedilotildees para o gerenciamento de identidades fornecem uma soluccedilatildeo de maior mobilidade e flexibilida-de para simplificar o login via web Essas ferramentas muitas vezes empregam o princiacutepio da idonei-dade com terceiros Alguns grandes

players globais tecircm avanccedilado com serviccedilos que oferecem soluccedilotildees de login confiaacuteveis desenvolvidas por terceiros de uma uacutenica fonte O sis-tema Microsoft Passport foi criado em sintonia com esse sentimento Hoje o mercado do Microsoft Passport eacute o ldquoWindows Live IDrdquo [1] Muitos usuaacuterios no entanto estatildeo receo-sos de se tornarem dependentes de aplicativos proprietaacuterios

Uma recente alternativa conhe-cida como Liberty Alliance Project [2] ofereceu uma abordagem mais aberta mas foi amplamente consi-derada como um exagero de especi-ficaccedilotildees e por isso ainda natildeo obteve grande adoccedilatildeo apesar de seus sete anos de esforccedilo O projeto OpenID sob os auspiacutecios da OpenID Foun-dation [3] se baseia na mais simples funcionalidade podendo ser mais facilmente integrado a sistemas de autenticaccedilatildeo online

Os usuaacuterios que optaram pela alternativa do OpenID natildeo inserem um nome de usuaacuterio mas em vez disso identificam-se com uma URI que pode ser exibida em um navega-dor web A URI pode ser um ende-reccedilo web oferecido por um serviccedilo OpenID como httpnilsmagnusmyopenidcom no MyopenID [4] O tipo de identidade natildeo eacute importan-te contanto que qualquer navegador

consiga acessar a paacutegina A paacutegina teraacute que adicionar uma tag que aponte para o provedor do serviccedilo

ltlink rel=rdquoopenidserverrdquo href=rdquohttpwwwmyopenidcomserverrdquo gtltlink rel=rdquoopeniddelegaterdquo href=rdquohttpnilsmagnusmyopenidcomrdquo gt

O servidor do lado do provedor especifica a primeira relaccedilatildeo a segun-da reafirma o nome da identidade O provedor normalmente cria uma paacutegina para tornar essa informaccedilatildeo disponiacutevel para os sites na Web que requisitem as informaccedilotildees de login Contudo um usuaacuterio poderia de forma alternativa integrar os deta-lhes necessaacuterios em uma paacutegina ou blog pessoal Nesse caso seu proacute-prio endereccedilo poderia servir como sua OpenID

O loginUma aplicaccedilatildeo que suporte o OpenID exibiraacute um campo de login OpenID aleacutem da paacutegina de login tradicional Por exemplo a figura 1 mostra a paacute-gina de autenticaccedilatildeo do OpenID no wiki do Amarok

Quando um usuaacuterio digita seu ID baseado em uma URI a aplica-ccedilatildeo web que eacute conhecida como o

RE

DE

S

RE

DE

S

copy Linux New Media do Brasil Editora Ltda

69

cliente na linguagem do OpenID recupera a porccedilatildeo do servidor da URI O OpenID se refere ao servi-dor como ldquoprovedor de identidaderdquo (identity provider)

O cliente (o wiki do Amarok nes-te caso) solicita ao provedor o nome associado agrave URI Para fazer isso ele redireciona a requisiccedilatildeo para o pro-vedor do site e o provedor indica que foi emitida a solicitaccedilatildeo O usuaacuterio entatildeo concorda com o pedido digi-tando uma senha O provedor redi-reciona o navegador de volta para o site do cliente onde o usuaacuterio estaacute agora logado

Uma praacutetica caracteriacutestica do OpenID eacute a possibilidade de ar-mazenar vaacuterios atributos para uma uacutenica identidade com um provedor por exemplo seu nome completo seu idioma preferido ou sua data de nascimento (ver figura 2) O usuaacuterio que recebe um pedido do cliente pode especificar quais os dados que o prestador deve divulgar para o cliente e quais ele deve conservar como secretos

Esse processo de aprovaccedilatildeo eacute im-portante para evitar o mau uso de

um paracircmetro criacutetico tal como o PIN de um banco que na verdade ateacute pode ser armazenado junto ao seu ID Alguns provedores permitem que o usuaacuterio crie muacuteltiplas identi-dades cada uma com um conjunto distinto de atributos

Essa abordagem tambeacutem eacute co-nhecida como Gerenciamento de Identidade Centrada no Usuaacuterio (do inglecircs User-Centric Identity Mana-gement) em que cada usuaacuterio pode definir individualmente as informa-

ccedilotildees fornecidas pelo provedor para os clientes que pedirem

Alguns provedores de identidade associam-nas gratuitamente Cabe ao usuaacuterio decidir em qual provedor con-fiar Diferentemente da abordagem centralizada utilizada pelo Passport um conjunto descentralizado de pro-vedores OpenID competem entre si na oferta de serviccedilos Os usuaacuterios tecircm ateacute mesmo a liberdade de criar seu proacuteprio provedor

Para quem se interessar pelo desenvolvimento de uma soluccedilatildeo proacutepria haacute pacotes de coacutedigo aberto em vaacuterias linguagens de programa-ccedilatildeo como Perl PHP Ruby Python e Java [5]

Tem seguranccedilaO OpenID pode gerar duacutevidas so-bre sua seguranccedila jaacute que qualquer um pode atuar como provedor Um agressor pode forjar (spoof) ou sequumlestrar uma identidade A primeira questatildeo aponta para um claacutessico problema de seguranccedila se vocecirc pode manipular um site de terceiros vocecirc pode redirecionar os visitantes para o seu proacuteprio prove-dor de identidade ou escrever um para se adequar agrave demanda

Em outras palavras a seguranccedila estaacute nas matildeos das pessoas responsaacuteveis pelo site hospedeiro Considerando-

Linux Magazine 50 | Janeiro de 2009

| REDESOpenID

Figura 2 O provedor especifica os detalhes que pretende enviar para o cliente

Figura 1 O wiki do Amarok permite que seus usuaacuterios efetuem login com o OpenID

copy Linux New Media do Brasil Editora Ltda

70 httpwwwlinuxmagazinecombr

se a qualidade do coacutedigo dos muitos sites escritos nas populares linguagens de script essa eacute uma preocupaccedilatildeo real mas natildeo um argumento funda-mental contra o OpenID

A segunda pergunta eacute complica-da eacute possiacutevel que um hacker capture as comunicaccedilotildees entre o cliente e o provedor de identidade e com isso ar-mazene as sessotildees Afi nal o provedor envia uma confi rmaccedilatildeo de mensagem em caso de sucesso na autenticaccedilatildeo Um agressor poderia tentar apresentar uma sessatildeo gravada na proacutexima ten-tativa de login No entanto isso pode ser evitado com a ativaccedilatildeo do SSL ou do TLS no OpenID para proteger a conexatildeo e adicionar um desafi o para cada solicitaccedilatildeo Essa abordagem

signifi ca que qualquer resposta seraacute vaacutelida apenas uma vez o que exclui a reciclagem trivial

Apesar disso natildeo eacute uma boa ideacuteia subestimar a complexidade do ge-renciamento de sessatildeo baseado em estado ( stateful ) que trafega sobre um protocolo sem base em sessatildeo ( state-less ) como o HTTP que eacute a base do OpenID O fato de vaacuterias aplicaccedilotildees web estarem sendo comprometidas eacute uma indicaccedilatildeo clara dos perigos supondo que vocecirc acredite em pes-quisas e whitepapers [6]

Praacutetico e aberto O OpenID eacute um passo na direccedilatildeo certa para o gerenciamento de iden-tidades Como ele implementa o lo-

gin uacutenico ( single sign-on ) tambeacutem se torna mais con-veniente para os usuaacuterios reduzindo o nuacutemero de senhas a serem lembradas A capacidade de gerenciar atributos eacute muito mais po-derosa do que parece agrave pri-meira vista

O nuacutemero de sites que usam OpenID continua crescendo vertiginosamente mas algumas grandes aplica-ccedilotildees continuaratildeo precisando provar se preenchem todas

as exigecircncias operacionais e concei-tuais no que diz respeito agrave confi anccedila e agrave disponibilidade

Mais informaccedilotildees

[1] Microsoft Passport httpwwwpassportnet

[2] Projeto Liberty Alliance httpwwwprojectlibertyorg

[3] Projeto OpenID httpopenidnet

[4] MyOpenID httpmyopenidcom

[5] Bibliotecas abertas de OpenID httpwikiopenidnetLibraries

[6] Secure Computing ldquoKeeping Customers and Merchants Securerdquo (em inglecircs) httpwwwsecurecomputingcomwebformcfmid=289ampref=pci

[7] Feder ID httpfederidobjectweborg

[8] Extensotildees do Mediawiki para OpenID httpwwwmediawikiorgwikiExtensionOpenID

[9] Suporte a OpenID no Drupal httpdrupalorgprojectopenid

REDES | OpenID

Quadro 1 Gerenciamento de identidade e federaccedilatildeo

O OpenID natildeo eacute soacute um projeto de gerenciamento de identidade O Feder ID [7] por exemplo eacute um projeto de coacutedigo aberto da Franccedila Um dos fi nanciadores do projeto Oudot Cleacutement enfatiza a importacircncia das identidades digitais para o acesso aos recursos da Web em uma recente entrevista com a Linux Magazine

De acordo com Oudot muitos usuaacuterios possuem uma identidade distinta para cada site Isto eacute um grande problema para grandes empresas e organizaccedilotildees jaacute que os usuaacuterios precisam memorizar muacuteltiplas senhas O Feder ID fornece ferramentas para a sincronizaccedilatildeo de repositoacuterios de identidade Estes atributos natildeo estatildeo disponiacuteveis apenas para uma uacutenica organizaccedilatildeo local eles podem ser compartilhados por parceiros confi aacuteveis

As ferramentas do Feder ID satildeo de coacutedigo aberto e respeitam os padrotildees da IETF ( Internet Engineering Task Force ) OASIS ( Organization of Structured Information Standards ) e da Liberty Alliance para a gestatildeo de identidades

Tabela 1 Provedores de identidade para aplicaccedilotildees web

Provedor OpenID

AOL httpopenidaolcomnome_do_usuaacuterio

Blogger httpnome_do_blogblogspotcom

Flickr httpwwwflickrcomphotosusuaacuterio

Livedoor httpprofilelivedoorcomusuaacuterio

Livejournal httpusuaacuteriolivejournalcom

Technorati httptechnoraticompeopletechnoratiusuaacuterio

Wordpress httpusuaacuteriowordpresscom

Yahoo httpopenidyahoocom

copy Linux New Media do Brasil Editora Ltda

71

| SECcedilAtildeOMateacuteria

Linux Magazine XX | Mecircs de 200X

SE

CcedilAtilde

O

LTRindd 67 251108 173039

copy Linux New Media do Brasil Editora Ltda

72 httpwwwlinuxmagazinecombr

Login no Linux pela impressatildeo digital

Autenticaccedilatildeo biomeacutetrica A autenticaccedilatildeo em sistemas Linux por meio da biometria jaacute eacute uma realidade Aprenda a instalar e a confi gurar esse recurso de seguranccedila por Alessandro de Oliveira Faria (Cabelo)

Hoje a autenticaccedilatildeo biomeacute-trica eacute imprescindiacutevel para elevarmos o niacutevel de segu-

ranccedila computacional Na Linux Magazine 48 foram mencionadas as principais tecnologias biomeacutetri-cas de coacutedigo aberto Agora neste documento veremos na praacutetica o uso da biometria para autentica-ccedilatildeo de identidade Esse recurso natildeo faz parte apenas dos fi lmes de

fi cccedilatildeo cientiacutefi ca eacute uma realidade cada vez mais presente no nosso dia-a-dia em diversos segmentos do mercado

Com o crescimento dos equi-pamentos em redes abertas sur-giram problemas de seguranccedila e confi abilidade de autenticaccedilatildeo Uma autenticaccedilatildeo indevida for-nece acesso privilegiado a pessoas natildeo autorizadas dando margem a roubo de informaccedilotildees interrup-ccedilotildees de serviccedilos fraudes sistemaacute-ticas entre outros transtornos do seacuteculo XXI

Neste cenaacuterio surgiu a necessida-de da autenticaccedilatildeo biomeacutetrica ou seja verifi caccedilatildeo da autenticidade do usuaacuterio em operaccedilatildeo Esse me-canismo computacional eacute baseado em caracteriacutesticas (ldquoo que vocecirc eacuterdquo) A biometria aplicada agrave autenticaccedilatildeo de usuaacuterios eacute um meacutetodo automa-tizado para medir as caracteriacutesticas humanas e confrontaacute-las em uma base de dados obtendo assim a au-tenticidade do usuaacuterio

A efi caacutecia da autenticaccedilatildeo biomeacute-trica estaacute diretamente relacionada agrave qualidade dos dados obtidos na fase de cadastramento da caracteriacutestica

biomeacutetrica Nessa etapa a base de dados recebe o template matemaacuteti-co calculado pelo sistema isto eacute a representaccedilatildeo binaacuteria da caracteriacutes-tica humana Essa informaccedilatildeo seraacute utilizada posteriormente na compa-raccedilatildeo biomeacutetrica para autenticaccedilatildeo do sistema obtendo assim um re-sultado positivo ou negativo

Este artigo apresenta um foco teacutecnico e pouco teoacuterico assim obje-

SE

GU

RA

NCcedil

A

Figura 1 Imagem extraiacuteda de um leitor de impressatildeo digital UAreU da Digital Persona

Figura 2 Imagem binarizada (branco e preto)

copy Linux New Media do Brasil Editora Ltda

73

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

tivando configurar ou acrescentar a autenticaccedilatildeo biomeacutetrica como niacutevel adicional de seguranccedila ao login do sistema operacional Linux Para tal operaccedilatildeo utilizaremos a tecnologia de impressatildeo digital e pacotes de coacute-digo aberto (biblioteca fprint)

A tecnologia utilizada para a con-fecccedilatildeo deste artigo foi OpenSuse 103 ndash kernel 26225-

31-bigsmp Notebook Dell Vostro 1510 4 GB de memoacuteria RAM Processador Core 2 Duo Leitor de impressatildeo digital Uare

U Digital Persona 4000B Biblioteca fprint

Fprint conceitosO pacote fprint[1] eacute o sonho de todo desenvolvedor de coacutedigo aberto O kit de integraccedilatildeo permite o desen-volvimento de rotinas para identi-ficaccedilatildeo e verificaccedilatildeo de impressotildees digitais do usuaacuterio Um dos pontos fortes dessa soluccedilatildeo livre eacute a compa-tibilidade com diversos modelos de sensores disponiacuteveis no mercado A lista de aparelhos compatiacuteveis en-contra-se em [2]

A impressatildeo digital eacute composta por linhas formadas pelas elevaccedilotildees da pele A comparaccedilatildeo por impressatildeo digital eacute um meacutetodo utilizado haacute mais de mil anos como forma de identificaccedilatildeo de usuaacuterios Eacute uma caracteriacutestica uacutenica entre os seres humanos inclusive entre irmatildeos gecircmeos univitelinos

Formada ainda quando feto a impressatildeo digital acompanha a pessoa por toda a sua existecircncia sem apresentar grandes mudanccedilas Extraindo os pontos caracteriacutesticos ou ldquopontos de minuacuteciasrdquo de uma impressatildeo digital um papiloscopista ou sistemas computadorizados po-dem identificar pessoas utilizando caacutelculos bastante confiaacuteveis Grande parte dos algoritmos trabalham com o princiacutepio de extraccedilatildeo desses pontos caracteriacutesticos Apoacutes a extraccedilatildeo satildeo calculados a relaccedilatildeo entre as distacircn-cias desses pontos Cada algoritmo possui sua base de caacutelculo seja por anaacutelise dos pontos entre si ou por agrupamentos de pontos para anaacute-lise de semelhanccedilas de triacircngulos com os acircngulos internos

A biblioteca fprint incorpora abstraccedilatildeo de hardware para aces-so ao leitor Com esse recurso natildeo precisamos instalar qualquer moacutedulo do kernel para o funcio-namento de cada modelo de leitor de impressatildeo digital

Na primeira fase a biblioteca extrai a imagem do sensor (figura 1) e logo a seguir a linha da impressatildeo digital eacute realccedilada com a cor preta (figura 2)

Figura 3 Linhas reduzidas para um uacutenico pixel

Figura 4 Pontos de bifurcaccedilatildeo e terminadores

copy Linux New Media do Brasil Editora Ltda

74 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

utilizando algoritmos de extraccedilatildeo com filtros Na proacutexima etapa a imagem jaacute estaacute binarizada (branco e preto figura 3) e as linhas foram reduzidas a um uacutenico pixel de largura Por uacuteltimo a tarefa mais faacutecil ou seja

detectar os pontos de minuacutecias Fa-zendo um exame de cada pixel na imagem se houver um pixel branco sem vizinhos isso significa que en-contramos um ponto terminal Caso um ponto branco possua trecircs pontos

vizinhos significa que en-contramos uma bifurcaccedilatildeo Os pontos de minuacutecias satildeo entatildeo destacados (fi-gura 4) e compotildeem a ver-dadeira identidade da im-pressatildeo digital

As impressotildees digitais satildeo classificadas em cinco grupos conforme mostra a figura 5 ciacuterculo direito ciacuterculo esquerdo espiral arco e arco incompletoA estrutura de uma im-pressatildeo digital eacute forma-da por cruzamentos das linhas core (centro) bi-furcaccedilotildees terminaccedilotildees ilhas deltas (bifurcaccedilotildees inferiores) e poros Os pon-tos terminais assim como os pontos de bifurcaccedilotildees satildeo definidos em funccedilatildeo da distacircncia (coordena-da relativa) para o core Nos pontos terminais eacute co-mum calcular seu acircngulo de inclinaccedilatildeo

InstalaccedilatildeoHaacute pacotes da biblioteca fprint preacute-compilados para OpenSuse [3] e Ubuntu [4] No entanto este artigo sugere a compilaccedilatildeo da biblioteca a partir de seu coacutedigo-fonte que pode ser obtido em [5] Haacute tambeacutem uma demonstraccedilatildeo do software fprint que pode ser baixada a partir de [6]

Apoacutes o download devemos des-compactar os arquivos fontes O exemplo 1 detalha o procedimen-

Exemplo 1 Preparaccedilatildeo da libfprint

$ tar -jxvf libfprint-006tarbz2$ cd libfprint-006$ configure$ make$ suSenha make install ldconfig

Figura 5 Os cinco grupos de impressotildees digitais

Exemplo 3 Arquivo de login do PAM

01 PAM-1002 auth requisite pam_nologinso03 auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securettyso04 auth include common-auth05 auth requisite pam_fprintso06 account include common-account07 password include common-password08 session required pam_loginuidso09 session include common-session10 session required pam_lastlogso nowtmp11 session required pam_resmgrso12 session optional pam_mailso standard13 session optional pam_ck_connectorso

Exemplo 2 Compilaccedilatildeo do pam_fprint

$ wget httpufprdlsourceforgenetsourceforgefprintpam_fprint-02tarbz2$ tar -jxvf pam_fprint-02tarbz2$ cd pam_fprint-02$ configure$ make$ sudo make install

copy Linux New Media do Brasil Editora Ltda

75

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

Exemplo 4 pam_fprint_enroll --help

pam_fprint_enroll --helpUsage pam_fprint_enroll options -h --help Display this usage information -f --enroll-finger index Enroll finger with index Valid indexes are 1 - Left Thumb 2 - Left Index Finger 3 - Left Middle Finger 4 - Left Ring Finger 5 - Left Little Finger 6 - Right Thumb 7 - Right Index Finger 8 - Right Middle Finger 9 - Right Ring Finger 10 - Right Little Finger

Exemplo 5 Cadastramento de digital

pam_fprint_enroll --enroll-finger 7

This program will enroll your finger unconditionally overwriting any selected print that was enrolled previously If you want to continue press enter otherwise hit Ctrl+C Found device claimed by Digital Persona UareU 40004000B driverOpened device Itrsquos now time to enroll your finger You will need to successfully scan your Right Index Finger 1 timesto complete the process Scan your finger nowEnroll completeEnrollment completed

Exemplo 6 Sucesso na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1)lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BUacutetimo loginDom Nov 16 231501 BRST 2008em tty2

Have a lot of fun

copy Linux New Media do Brasil Editora Ltda

76 httpwwwlinuxmagazinecombr

SEGURANCcedilA | Biometria

to de configuraccedilatildeo e compilaccedilatildeo da biblioteca

Execute o comando ldquomakerdquo con-vencional para efetuar a compilaccedilatildeo na iacutentegra do coacutedigo-fonte a seguir transforme-se em super-usuaacuterio (root) para efetuar a instalaccedilatildeo da biblioteca por meio do comando ldquomake installrdquo seguido do ldquoldconfigrdquo conforme as instruccedilotildees a seguir

Autenticaccedilatildeo pam_fprintO moacutedulo biomeacutetrico que trabalha em conjunto com o sistema de au-tenticaccedilatildeo PAM (Pluggable Authen-tication Modules) eacute o pam_fprint Sua base tecnoloacutegica eacute a biblioteca fprint receacutem compilada e instalada O pacote pam_fprint utiliza as fun-ccedilotildees biomeacutetricas para processar e verificar a autenticaccedilatildeo do usuaacuterio Em outras palavras a sua impressatildeo digital eacute utilizada para efetuar o login no sistema operacional

Vale a pena mencionar que o PAM eacute um sistema para autenticaccedilatildeo de usuaacuterios em ambientes Linux e Unix Uma de suas principais vantagens eacute a centralizaccedilatildeo das chamadas e funccedilotildees de login assim facilitando a tarefa do desenvolvedor

Continuando nossa jornada vamos agora baixar descompactar compilar e instalar o pacote pam_fprint como no exemplo 2

Sobre o autorAlessandro Faria eacute soacutecio-proprietaacuterio da NETi TECNOLOGIA fundada em Junho de 1996 (httpwwwnetiteccombr) empre-sa especializada em desenvolvimento de software e soluccedilotildees biomeacutetricas Consultor Biomeacutetrico na tecnologia de reconhecimen-to facial atua na aacuterea de tecnologia desde 1986 propiciando assim ao mercado solu-ccedilotildees em software Leva o Linux a seacuterio des-de 1998 com desenvolvimento de soluccedilotildees open source eacute membro colaborador da co-munidade Viva O Linux e mantenedor da bi-blioteca open source de viacutedeo captura aleacuten de participar entre outros projetos

Mais informaccedilotildees

[1] Fprint httpreactivatednetfprintwikiMain_Page

[2] Dispositivos compatiacuteveis com a fprint httpreactivatednetfprintwikiSupported_devices

[3] Pacotes fprint para OpenSuse httpdownloadopensuseorgrepositorieshomedgege

[4] Pacotes fprint para Ubuntu httpwwwmadman2knetcomments105

[5] Download da biblioteca fprint httpufprdlsourceforgenetsourceforgefprintlibfprint-006tarbz2

[6] Demo do fprint httpufprdlsourceforgenetsourceforgefprintfprint_demo-04tarbz2

[7] Portal Viva o Linux httpwwwvivaolinuxcombr

ConfiguraccedilatildeoNo OpenSuse eacute preciso modi-ficar o arquivo de configuraccedilatildeo para autenticaccedilatildeo no modo conso-le etcpamdlogin Esse arquivo pode ter nome diferente em ou-tras distribuiccedilotildees Seu conteuacutedo eacute mostrado no exemplo 3 e a linha 5 deve ser acrescentada pois eacute a res-ponsaacutevel por requisitar o moacutedulo pam_fprint

Eacute importante notar a utilizaccedilatildeo do modo requisite de autenticaccedilatildeo no PAM Para maiores informaccedilotildees sobre o tipo de autenticaccedilatildeo reco-menda-se consultar a documentaccedilatildeo do PAM

CadastramentoO proacuteximo passo eacute efetuar o cadastra-mento biomeacutetrico da sua impressatildeo digital Se concluiacuteda com sucesso essa tarefa no proacuteximo login o usuaacute-rio deveraacute fornecer aleacutem da senha sua impressatildeo digital para ter acesso ao sistema

O programa pam_fprint_enroll eacute responsaacutevel pelo cadastramento das impressotildees digitais Para en-tender melhor sua sintaxe digite pam_fprint_enroll --help e perceba (exemplo 4) que eacute preciso informar o nuacutemero correspondente ao dedo utilizado para cadastro A numeraccedilatildeo comeccedila em 1 no polegar esquerdo e segue ateacute o dedo mindinho esquerdo (nuacutemero 5) seguindo depois para o polegar direito (6) e terminando no mindinho direito (10)

No meu caso utilizei o nuacutemero 7 representando o dedo indicador da matildeo direita (exemplo 5) Ao exe-cutar o programa pressione [ENTER] encoste o dedo no leitor de impres-satildeo digital e pronto Nessa fase ao efetuar o login o sistema opera-cional solicitaraacute a senha seguida da autenticaccedilatildeo biomeacutetrica como mostram os exemplos 6 (sucesso na autenticaccedilatildeo) e 7 (falha na autenti-caccedilatildeo biomeacutetrica)

ConclusatildeoA biblioteca fprint proporciona inuacute-meros recursos aleacutem dos mencio-nados neste artigo Para um estudo detalhado sobre o assunto sugiro algumas leituras no portal Viva o Linux [7] e tambeacutem no site oficial do projeto

Exemplo 7 Falha na autenticaccedilatildeo biomeacutetrica

Welcome to openSUSE 103 (i586) - Kernel 26225-31-bigsmp (tty1) lapdell01 login rootSenhaScan right index finger on Digital Persona UareU 40004000BLogin incorreto

copy Linux New Media do Brasil Editora Ltda

77

| SEGURANCcedilABiometria

Linux Magazine 50 | Janeiro de 2009

SE

CcedilAtilde

O

Site_LNMindd 55 191208 205243

copy Linux New Media do Brasil Editora Ltda

78

SE

RV

ICcedilO

S

httpwwwlinuxmagazinecombr

Fornecedor de Hardware = 1 Redes e Telefonia PBX = 2 Integrador de Soluccedilotildees = 3

Literatura Editora = 4 Fornecedor de Software = 5

Consultoria Treinamento = 6

Linuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

CearaacuteF13 Tecnologia Fortaleza Rua Coronel Solon 480 ndash Bairro de Faacutetima

Fortaleza - CE - CEP 60040-270 85 3252-3836 wwwf13combr

Espiacuterito SantoLinux Shopp Vila Velha Rua Satildeo Simatildeo (Correspondecircncia) 18 ndash CEP 29113-120 27 3082-0932 wwwlinuxshoppcombr

Megawork Consultoria e Sistemas

Vitoacuteria Rua Chapot Presvot 389 ndash Praia do Can-to ndash CEP 29055-410 sl 201 202

27 3315-2370 wwwmegaworkcombr

Spirit Linux Vitoacuteria Rua Marins Alvarino 150 ndash CEP 29047-660 27 3227-5543 wwwspiritlinuxcombr

Minas GeraisInstituto Online Belo Horizonte Av Bias Fortes 932 Sala 204 ndash CEP 30170-011 31 3224-7920 wwwinstitutoonlinecombr

Linux Place Belo Horizonte Rua do Ouro 136 Sala 301 ndash Serra ndash CEP 30220-000 31 3284-0575 corporatelinuxplacecombr

Microhard Belo Horizonte Rua Repuacuteblica da Argentina 520 ndash Sion ndash CEP 30315-490 31 3281-5522 wwwmicrohardcombr

TurboSite Belo Horizonte Rua Paraiacuteba 966 Sala 303 ndash Savassi ndash CEP 30130-141 0800 702-9004 wwwturbositecombr

ParanaacuteiSolve Curitiba Av Cacircndido de Abreu 526 Cj 1206B ndash CEP 80530-000 41 252-2977 wwwisolvecombr

Mandriva Conectiva Curitiba Rua Tocantins 89 ndash Cristo Rei ndash CEP 80050-430 41 3360-2600 wwwmandrivacombr

Telway Tecnologia Curitiba Rua Francisco Rocha 183071 41 3203-0375 wwwtelwaycombr

Rio de JaneiroMuacuteltipla Tecnologia da Informaccedilatildeo

Rio de Janeiro Av Rio Branco 37 14deg andar ndash CEP 20090-003 21 2203-2622 wwwmultipla-ticombr

NSI Training Rio de Janeiro Rua Arauacutejo Porto Alegre 71 4ordm andar Centro ndash CEP 20030-012 21 2220-7055 wwwnsicombr

Open IT Rio de Janeiro Rua do Mercado 34 Sl 402 ndash Centro ndash CEP 20010-120 21 2508-9103 wwwopenitcombr

Unipi Tecnologias Campos dos Goytacazes

Av Alberto Torres 303 1ordmandar ndash Centro ndash CEP 28035-581 22 2725-1041 wwwunipicombr

Rio Grande do Sul4up Soluccedilotildees Corporativas Novo Hamburgo Pso Calccediladatildeo Osvaldo Cruz 54 sl 301 CEP 93510-015 51 3581-4383 www4upcombr

Definitiva Informaacutetica Novo Hamburgo Rua General Osoacuterio 402 - Hamburgo Velho 51 3594 3140 wwwdefinitivacombr

Solis Lajeado Av 7 de Setembro 184 sala 401 ndash Bairro Moinhos CEP 95900-000

51 3714-6653 wwwsoliscoopbr

DualCon Novo Hamburgo Rua Joaquim Pedro Soares 1099 Sl 305 ndash Centro 51 3593-5437 wwwdualconcombr

Datarecover Porto Alegre Av Carlos Gomes 403 Sala 908 Centro Comer-cial Atrium Center ndash Bela Vista ndash CEP 90480-003

51 3018-1200 wwwdatarecovercombr

LM2 Consulting Porto Alegre Rua Germano Petersen Junior 101-Sl 202 ndash Hi-gienoacutepolis ndash CEP 90540-140

51 3018-1007 wwwlm2combr

Lnx-IT Informaccedilatildeo e Tecnologia Porto Alegre Av Venacircncio Aires 1137 ndash Rio Branco ndash CEP 90040193 51 3331-1446 wwwlnx-itinfbr

Plugin Porto Alegre Av Juacutelio de Castilhos 132 11ordm andar Centro ndash CEP 90030-130 51 4003-1001 wwwplugincombr

TeHospedo Porto Alegre Rua dos Andradas 1234610 ndash Centro ndash CEP 90020-008 51 3286-3799 wwwtehospedocombr

Satildeo PauloWs Host Arthur Nogueira Rua Jerere 36 ndash Vista Alegre ndash CEP 13280-000 19 3846-1137 wwwwshostcombr

DigiVoice Barueri Al Juruaacute 159 Teacuterreo ndash Alphaville ndash CEP 06455-010 11 4195-2557 wwwdigivoicecombr

Dextra Sistemas Campinas Rua Antocircnio Paioli 320 ndash Pq das Universidades ndash CEP 13086-045 19 3256-6722 wwwdextracombr

Insigne Free Software do Brasil Campinas Av Andrades Neves 1579 ndash Castelo ndash CEP 13070-001 19 3213-2100 wwwinsignesoftwarecom

Microcamp Campinas Av Thomaz Alves 20 ndash Centro ndash CEP 13010-160 19 3236-1915 wwwmicrocampcombr

PC2 Consultoria em Software Livre

Carapicuiba Rua Edeia 500 - CEP 06350-080 11 3213-6388 wwwpc2consultoriacom

Savant Tecnologia Diadema Av Senador Vitorino Freire 465 ndash CEP 09910-550 11 5034-4199 wwwsavantcombr

Epopeacuteia Informaacutetica Mariacutelia Rua Goiaacutes 392 ndash Bairro Cascata ndash CEP 17509-140 14 3413-1137 wwwepopeiacombr

Redentor Osasco Rua Costante Piovan 150 ndash Jd Trecircs Montanhas ndash CEP 06263-270 11 2106-9392 wwwredentorindbr

Go-Global Santana de Parnaiacuteba

Av Yojiro Takaoca 4384 Ed Shopping Ser-vice Cj 1013 ndash CEP 06541-038

11 2173-4211 wwwgo-globalcombr

AW2NET Santo Andreacute Rua Edson Soares 59 ndash CEP 09760-350 11 4990-0065 wwwaw2netcombr

Async Open Source Satildeo Carlos Rua Orlando Damiano 2212 ndash CEP 13560-450 16 3376-0125 wwwasynccombr

O maior diretoacuterio de empresas que oferecem produtos soluccedilotildees e serviccedilos 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 anuncioslinuxmagazinecombr

copy Linux New Media do Brasil Editora Ltda

79

| SERVICcedilOSLinuxlocal

Empresa Cidade Endereccedilo Telefone Web 1 2 3 4 5 6

Satildeo Paulo (continuaccedilatildeo)Delix Internet Satildeo Joseacute do

Rio PretoRua Voluntaacuterio de Satildeo Paulo 3066 9ordm ndash Centro ndash CEP 15015-909 11 4062-9889 wwwdelixhostingcombr

4Linux Satildeo Paulo Rua Teixeira da Silva 660 6ordm andar ndash CEP 04002-031 11 2125-4747 www4linuxcombr

A Casa do Linux Satildeo Paulo Al Jauacute 490 ndash Jd Paulista ndash CEP 01420-000 11 3549-5151 wwwacasadolinuxcombr

Accenture do Brasil Ltda Satildeo Paulo Rua Alexandre Dumas 2051 ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 5188-3000 wwwaccenturecombr

ACR Informaacutetica Satildeo Paulo Rua Lincoln de Albuquerque 65 ndashPerdizes ndash CEP 05004-010 11 3873-1515 wwwacrinformaticacombr

Agit Informaacutetica Satildeo Paulo Rua Major Quedinho 111 5ordm andar Cj 508 ndash Centro ndash CEP 01050-030

11 3255-4945 wwwagitcombr

Altbit - Informaacutetica Comeacutercio e Serviccedilos LTDA

Satildeo Paulo Av Francisco Matarazzo 229 Cj 57 ndash Aacutegua Branca ndash CEP 05001-000

11 3879-9390 wwwaltbitcombr

AS2M -WPC Consultoria Satildeo Paulo Rua Trecircs Rios 131 Cj 61A ndash Bom Retiro ndash CEP 01123-001 11 3228-3709 wwwwpccombr

Big Host Satildeo Paulo Rua Dr Miguel Couto 58 ndash Centro ndash CEP 01008-010 11 3033-4000 wwwbighostcombr

Blanes Satildeo Paulo Rua Andreacute Ampeacutere 153 ndash 9ordm andar ndash Conj 91 CEP 04562-907 (proacutex Av L C Berrini)

11 5506-9677 wwwblanescombr

Commlogik do Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 13797 Bloco II 6ordm andar ndash Morumbi ndash CEP 04794-000

11 5503-1011 wwwcommlogikcombr

Computer Consulting Projeto e Consultoria Ltda

Satildeo Paulo Rua Vergueiro 6455 Cj 06 ndash Alto do Ipiranga ndash CEP 04273-100 11 5062-3927 wwwcomputerconsultingcombr

Consist Consultoria Siste-mas e Representaccedilotildees Ltda

Satildeo Paulo Av das Naccedilotildees Unidas 20727 ndash CEP 04795-100 11 5693-7210 wwwconsistcombr

Domiacutenio Tecnologia Satildeo Paulo Rua das Carnaubeiras 98 ndash Metrocirc Conceiccedilatildeo ndash CEP 04343-080 11 5017-0040 wwwdominiotecnologiacombr

EDS do Brasil Satildeo Paulo Av Pres Juscelino Kubistcheck 1830 Torre 4 - 5ordm andar 11 3707-4100 wwwedscom

Eacutetica Tecnologia Satildeo Paulo Rua Nova York 945 ndash Brooklin ndash CEP04560-002 11 5093-3025 wwweticanet

Getronics ICT Solu-tions and Services

Satildeo Paulo Rua Verbo Divino 1207 ndash CEP 04719-002 11 5187-2700 wwwgetronicscombr

Hewlett-Packard Brasil Ltda Satildeo Paulo Av das Naccedilotildees Unidas 12901 25ordm andar ndash CEP 04578-000 11 5502-5000 wwwhpcombr

IBM Brasil Ltda Satildeo Paulo Rua Tutoacuteia 1157 ndash CEP 04007-900 0800-7074 837 wwwbribmcom

iFractal Satildeo Paulo Rua Fiaccedilatildeo da Sauacutede 145 Conj 66 ndash Sauacutede ndash CEP 04144-020 11 5078-6618 wwwifractalcombr

Integral Satildeo Paulo Rua Dr Gentil Leite Martins 295 2ordm andar Jd Prudecircncia ndash CEP 04648-001

11 5545-2600 wwwintegralcombr

Itautec SA Satildeo Paulo Av Paulista 2028 ndash CEP 01310-200 11 3543-5543 wwwitauteccombr

Kenos Consultoria Satildeo Paulo Av Fagundes Filho 13 Conj 53 ndash CEP 04304-000 11 40821305 wwwkenoscombr

Konsultex Informatica Satildeo Paulo Av Dr Guilherme Dumont Villares 1410 6 andar CEP 05640-003 11 3773-9009 wwwkonsultexcombr

Linux Komputer Informaacutetica Satildeo Paulo Av Dr Lino de Moraes Leme 185 ndash CEP 04360-001 11 5034-4191 wwwkomputercombr

Linux Mall Satildeo Paulo Rua Machado Bittencourt 190 Cj 2087 ndash CEP 04044-001 11 5087-9441 wwwlinuxmallcombr

Livraria Tempo Real Satildeo Paulo Al Santos 1202 ndash Cerqueira Ceacutesar ndash CEP 01418-100 11 3266-2988 wwwtemporealcombr

Locasite Internet Service Satildeo Paulo Av Brigadeiro Luiz Antonio 2482 3ordm andar ndash Centro ndash CEP 01402-000

11 2121-4555 wwwlocasitecombr

Microsiga Satildeo Paulo Av Braz Leme 1631 ndash CEP 02511-000 11 3981-7200 wwwmicrosigacombr

Novatec Editora Ltda Satildeo Paulo Rua Luis Antonio dos Santos 110 ndash Santana ndash CEP 02460-000 11 6979-0071 wwwnovateceditoracombr

Novell Ameacuterica Latina Satildeo Paulo Rua Funchal 418 ndash Vila Oliacutempia 11 3345-3900 wwwnovellcombrasil

Oracle do Brasil Sistemas Ltda Satildeo Paulo Av Alfredo Egiacutedio de Souza Aranha 100 ndash Bloco B ndash 5ordm andar ndash CEP 04726-170

11 5189-3000 wwworaclecombr

Proelbra Tecnolo-gia Eletrocircnica Ltda

Satildeo Paulo Av Rouxinol 1041 Cj 204 2ordm andar Moema ndash CEP 04516-001 11 5052- 8044 wwwproelbracombr

Provider Satildeo Paulo Av Cardoso de Melo 1450 6ordm andar ndash Vila Oliacutempia ndash CEP 04548-005

11 2165-6500 wwwe-providercombr

Red Hat Brasil Satildeo Paulo Av Brigadeiro Faria Lima 3900 Cj 81 8ordm andar Itaim Bibi ndash CEP 04538-132

11 3529-6000 wwwredhatcombr

Samurai Projetos Especiais Satildeo Paulo Rua Baratildeo do Triunfo 550 6ordm andar ndash CEP 04602-002 11 5097-3014 wwwsamuraicombr

SAP Brasil Satildeo Paulo Av das Naccedilotildees Unidas 11541 16ordm andar ndash CEP 04578-000 11 5503-2400 wwwsapcombr

Simples Consultoria Satildeo Paulo Rua Mourato Coelho 299 Cj 02 Pinheiros ndash CEP 05417-010 11 3898-2121 wwwsimplesconsultoriacombr

Smart Solutions Satildeo Paulo Av Jabaquara 2940 cj 56 e 57 11 5052-5958 wwwsmart-teccombr

Snap IT Satildeo Paulo Rua Joatildeo Gomes Junior 131 ndash Jd Bonfiglioli ndash CEP 05299-000 11 3731-8008 wwwsnapitcombr

Stefanini IT Solutions Satildeo Paulo Av Brig Faria Lima 1355 19ordm ndash Pinheiros ndash CEP 01452-919 11 3039-2000 wwwstefaninicombr

Sun Microsystems Satildeo Paulo Rua Alexandre Dumas 2016 ndash CEP 04717-004 11 5187-2100 wwwsuncombr

Sybase Brasil Satildeo Paulo Av Juscelino Kubitschek 510 9ordm andar Itaim Bibi ndash CEP 04543-000 11 3046-7388 wwwsybasecombr

The Source Satildeo Paulo Rua Marquecircs de Abrantes 203 ndash Chaacutecara Tatuapeacute ndash CEP 03060-020

11 6698-5090 wwwthesourcecombr

Unisys Brasil Ltda Satildeo Paulo R Alexandre Dumas 1658 ndash 6ordm 7ordm e 8ordm andares ndash Chaacutecara Santo Antocircnio ndash CEP 04717-004

11 3305-7000 wwwunisyscombr

Utah Satildeo Paulo Av Paulista 925 13ordm andar ndash Cerqueira Ceacutesar ndash CEP 01311-916 11 3145-5888 wwwutahcombr

Visuelles Satildeo Paulo Rua Eng Domicio Diele Pacheco e Silva 585 ndash Interlagos ndash CEP 04455-310

11 5614-1010 wwwvisuellescombr

Webnow Satildeo Paulo Av Naccedilotildees Unidas 12995 10ordm andar Ed Plaza Centenaacuterio ndash Chaacutecara Itaim ndash CEP 04578-000

11 5503-6510 wwwwebnowcombr

WRL Informaacutetica Ltda Satildeo Paulo Rua Santa Ifigecircnia 211213 Box 02ndash Centro ndash CEP 01207-001 11 3362-1334 wwwwrlcombr

Systech Taquaritinga Rua Satildeo Joseacute 1126 ndash Centro - Caixa Postal 71 ndash CEP 15900-000 16 3252-7308 wwwsystech-ltdcombr

2MI Tecnologia e Informaccedilatildeo Embu Rua Joseacute Bonifaacutecio 55 ndash Jd Independecircncia ndash SP CEP 06826-080 11 4203-3937 www2micombr

Linuxlocal

Linux Magazine 50 | Janeiro de 2009

copy Linux New Media do Brasil Editora Ltda

80

SERVICcedil

OS

httpwwwlinuxmagazinecombr

Nerdson ndash Os quadrinhos mensais da Linux Magazine

Calendaacuterio de eventos

Evento Data Local Website

Campus Party 15 a 25 de janeiro Satildeo Paulo SP wwwcampus-partycombr

Bossa Conference 08 a 11 de marccediloPorto de Galinhas PE

wwwbossaconferenceorg

FISL 24 a 27 de junho Porto Alegre RS wwwfislsoftwarelivreorg

Interop 02 e 03 de setembro Satildeo Paulo SP wwwinteropsaopaulocombr

Futurecom 2009 13 a 16 de outubro Satildeo Paulo SP wwwfuturecom2009combr

Iacutendice de anunciantes

Empresa Paacuteg

Campus Party 02

Plusserver 07

Insigne 09

UOL 11

Xandros 13

Impacta 15

Linux Pro 33

Pocket Pro 43

Linuz Technical Review 71

Site LNM 77

Guia de TI 81

Bull 83

Ubiquiti 84

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

82 httpwwwlinuxmagazinecombr

Na Linux Magazine 51

PREVIE

W

Na EasyLinux 14 Monitores gigantes Os monitores LCD de 19 polegadas jaacute tecircm preccedilos bem melhores que haacute um ano Seraacute que jaacute chegou o momento de vocecirc comprar aquele monitor cine-matograacutefi co Quais satildeo as vantagens e desvantagens

do LCD em relaccedilatildeo aos antigos monitores de tubo Ateacute onde 21 polegadas va-lem mais que 19 Na Easy Linux 14 vamos comparar marcas modelos e tecno-logias de monitores agrave ven-da no Brasil para orientar suas compras

A melhor parte de todos os sistemas Empresas como Apple e Micro-soft investem pesado em design para deixarem seus sistemas mais atraentes Como resultado tanto o Mac OS quanto o Windows Vista tecircm forte apelo visual Poreacutem engana-se quem pensa que eacute impossiacutevel alcanccedilar um grau de beleza semelhante no Linux Na Easy Linux 14 vamos mostrar o caminho das pedras para deixar seu Linux com a cara do Mac OS X do Vista e do Windows XP seja por pura diversatildeo ou para facilitar o uso do Linux por quem jaacute estaacute habituado a esses sistemas e tem difi culdade de adaptaccedilatildeo ao pinguumlim

DESTAQUE

Seguranccedila com VoIP Verdadeiros administra-dores pensam em segu-ranccedila o tempo inteiro Mesmo que vocecirc seja um usuaacuterio comum eacute importante saber o que os invasores podem fazer Serviccedilos que costumavam ser seguros se tornam brechas de seguranccedila a menos que vocecirc se mantenha atualizado com essas questotildees

Na Linux Magazine 51 vamos examinar algumas estrateacutegias de seguranccedila recomendadas por especialistas Vocecirc jamais teraacute a rede perfeita ou sequer as ferramentas perfeitas ndash o mundo da seguranccedila de redes muda a todo tempo ndash e como eacute impos-siacutevel descartar defi nitivamente os problemas eacute melhor man-ter-se informado

TUTORIAL

Defi cientes visuais O Linux possui muitos ambientes desktop be-liacutessimos incluindo cubos rotativos e janelas que balanccedilam e queimam Poreacutem considere por exemplo uma aacuterea de trabalho com iacutecones cuidadosamente organizados vocecirc conseguiria utilizaacute-la com o monitor desligado

Apesar das vaacuterias ofertas de softwares pro-prietaacuterios cariacutessimos para leitura da tela e teclados sofi sticados que realmente possibi-litam o uso do computador por defi cientes visuais a maioria das ferramentas e extensotildees necessaacuterias para usuaacuterios cegos ou com visatildeo prejudicada aleacutem daqueles com difi culdades motoras ou mentais jaacute estatildeo presentes nos re-positoacuterios da maioria das distribuiccedilotildees Linux Veja como o projeto Adriane une todos esses recursos num uacutenico sistema desktop destinado a defi cientes visuais

os invasores podem fazer

os invasores podem fazer

copy Linux New Media do Brasil Editora Ltda

copy Linux New Media do Brasil Editora Ltda

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRAacuteTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA AacuteREA p36

44 0708

R$ 1390 euro 750

79

08

17

96

40

02

9

44

00

0

A REVISTA DO PROFISSIONAL DE TI

WWWLINUXMAGAZINECOMBR

CASE ALFRESCO p26A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p28Iniciada em Porto Alegre a temporada de seminaacuterios Linux Park de 2008

CEZAR TAURION p34O Coacutedigo Aberto como incentivo agrave inovaccedilatildeo

GOVERNANCcedilA COM

raquo O que dizem os profissionais certificados p24

raquo Cobit CMMI ITIL Quais as melhores praacuteticas p36

raquo ITIL na praacutetica p39

raquo Novidades do ITIL v3 p44

SEGURANCcedilA DNSSEC p69

Com o DNSSEC a resoluccedilatildeo de nomes fica protegida de ataques Mas seupreccedilo vale a pena

REDES IPV6 p64

Conheccedila as vantagens da nova versatildeo do Internet Protocol e veja por queeacute difiacutecil adotaacute-la

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo Relatoacuterios do Squid com o SARG p60

raquo Java Ruby e Rails conheccedila o JRuby on Rails p74

raquo Benchmarks do GCC 43 p58

raquo Becape de bancos de dados com a Libferris p46

raquo LPI niacutevel 2 Servidores NIS e DHCP p52

A REVISTA DO PROFISSIONAL DE TI

AS REDES ATUAIS SAtildeO AMBIENTES HETEROGEcircNEOSO BOM ADMINISTRADOR PRECISA SABER PROMOVER A INTEROPERABILIDADE ENTRE LINUX E WINDOWS p27

raquo Conecte o Linux agrave VPN do Windows p28

raquo MS AD e clientes Linux a soluccedilatildeo definitiva p34

raquo Linux como servidor RDP p40

raquo Agendamento de tarefas livre tambeacutem no Windows p44

Interoperabilidade

Linu

x M

agazin

e

50012009

INTEROPERABILIDADE

VPN

AD

RDP AGEN

DADOR DE TAREFAS BIOM

ETRIA OPEN

ID M

IDS GOOGLE CHARTS

HA POSTGRESQL TALEN

D

WWWLINUXMAGAZINECOMBR

50 Janeiro 2009

SANEADA PELO LINUX P22 Linux na Companhia de Aacuteguas do Maranhatildeo

LEI DOS CALL CENTERS P26 Edgar Silva mostra como a nova lei requer TI

BOCA NO TROMBONE P25 Maddog explica como fazer sua parte nas poliacuteticas puacuteblicas

SEGURANCcedilA BIOMETRIA p72

A autenticaccedilatildeo por impressatildeo digital jaacute eacute realidade Aprenda a implementaacute-la com um especialista

REDES OPENID p68

Uma uacutenica identidade para vaacuterios serviccedilos na Web Mas como fica a seguranccedila

VEJA TAMBEacuteM NESTA EDICcedilAtildeO

raquo MIDs seraacute que a moda pega p17

raquo Faccedila graacuteficos pelo Google p50

raquo HA e PostgreSQL uma oacutetima mistura p54

raquo ETL muito competente com o Talend p62

SUPORTANDO O VISTA

50 0109

R$ 1490 euro 750

9 771806 942009

0 0 0 5 0

copy Linux New Media do Brasil Editora Ltda

Page 9: Interoperabilidade SUPORTANDO O VISTA
Page 10: Interoperabilidade SUPORTANDO O VISTA
Page 11: Interoperabilidade SUPORTANDO O VISTA
Page 12: Interoperabilidade SUPORTANDO O VISTA
Page 13: Interoperabilidade SUPORTANDO O VISTA
Page 14: Interoperabilidade SUPORTANDO O VISTA
Page 15: Interoperabilidade SUPORTANDO O VISTA
Page 16: Interoperabilidade SUPORTANDO O VISTA
Page 17: Interoperabilidade SUPORTANDO O VISTA
Page 18: Interoperabilidade SUPORTANDO O VISTA
Page 19: Interoperabilidade SUPORTANDO O VISTA
Page 20: Interoperabilidade SUPORTANDO O VISTA
Page 21: Interoperabilidade SUPORTANDO O VISTA
Page 22: Interoperabilidade SUPORTANDO O VISTA
Page 23: Interoperabilidade SUPORTANDO O VISTA
Page 24: Interoperabilidade SUPORTANDO O VISTA
Page 25: Interoperabilidade SUPORTANDO O VISTA
Page 26: Interoperabilidade SUPORTANDO O VISTA
Page 27: Interoperabilidade SUPORTANDO O VISTA
Page 28: Interoperabilidade SUPORTANDO O VISTA
Page 29: Interoperabilidade SUPORTANDO O VISTA
Page 30: Interoperabilidade SUPORTANDO O VISTA
Page 31: Interoperabilidade SUPORTANDO O VISTA
Page 32: Interoperabilidade SUPORTANDO O VISTA
Page 33: Interoperabilidade SUPORTANDO O VISTA
Page 34: Interoperabilidade SUPORTANDO O VISTA
Page 35: Interoperabilidade SUPORTANDO O VISTA
Page 36: Interoperabilidade SUPORTANDO O VISTA
Page 37: Interoperabilidade SUPORTANDO O VISTA
Page 38: Interoperabilidade SUPORTANDO O VISTA
Page 39: Interoperabilidade SUPORTANDO O VISTA
Page 40: Interoperabilidade SUPORTANDO O VISTA
Page 41: Interoperabilidade SUPORTANDO O VISTA
Page 42: Interoperabilidade SUPORTANDO O VISTA
Page 43: Interoperabilidade SUPORTANDO O VISTA
Page 44: Interoperabilidade SUPORTANDO O VISTA
Page 45: Interoperabilidade SUPORTANDO O VISTA
Page 46: Interoperabilidade SUPORTANDO O VISTA
Page 47: Interoperabilidade SUPORTANDO O VISTA
Page 48: Interoperabilidade SUPORTANDO O VISTA
Page 49: Interoperabilidade SUPORTANDO O VISTA
Page 50: Interoperabilidade SUPORTANDO O VISTA
Page 51: Interoperabilidade SUPORTANDO O VISTA
Page 52: Interoperabilidade SUPORTANDO O VISTA
Page 53: Interoperabilidade SUPORTANDO O VISTA
Page 54: Interoperabilidade SUPORTANDO O VISTA
Page 55: Interoperabilidade SUPORTANDO O VISTA
Page 56: Interoperabilidade SUPORTANDO O VISTA
Page 57: Interoperabilidade SUPORTANDO O VISTA
Page 58: Interoperabilidade SUPORTANDO O VISTA
Page 59: Interoperabilidade SUPORTANDO O VISTA
Page 60: Interoperabilidade SUPORTANDO O VISTA
Page 61: Interoperabilidade SUPORTANDO O VISTA
Page 62: Interoperabilidade SUPORTANDO O VISTA
Page 63: Interoperabilidade SUPORTANDO O VISTA
Page 64: Interoperabilidade SUPORTANDO O VISTA
Page 65: Interoperabilidade SUPORTANDO O VISTA
Page 66: Interoperabilidade SUPORTANDO O VISTA
Page 67: Interoperabilidade SUPORTANDO O VISTA
Page 68: Interoperabilidade SUPORTANDO O VISTA
Page 69: Interoperabilidade SUPORTANDO O VISTA
Page 70: Interoperabilidade SUPORTANDO O VISTA
Page 71: Interoperabilidade SUPORTANDO O VISTA
Page 72: Interoperabilidade SUPORTANDO O VISTA
Page 73: Interoperabilidade SUPORTANDO O VISTA
Page 74: Interoperabilidade SUPORTANDO O VISTA
Page 75: Interoperabilidade SUPORTANDO O VISTA
Page 76: Interoperabilidade SUPORTANDO O VISTA
Page 77: Interoperabilidade SUPORTANDO O VISTA
Page 78: Interoperabilidade SUPORTANDO O VISTA
Page 79: Interoperabilidade SUPORTANDO O VISTA
Page 80: Interoperabilidade SUPORTANDO O VISTA
Page 81: Interoperabilidade SUPORTANDO O VISTA
Page 82: Interoperabilidade SUPORTANDO O VISTA
Page 83: Interoperabilidade SUPORTANDO O VISTA
Page 84: Interoperabilidade SUPORTANDO O VISTA