Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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